10

I have a real PAL NES hooked up to a modern TV with an AV-to-HDMI adapter (yeah, I'm working on finding a CRT). I bought an EverDrive cartridge for it because I'm a poor person who cannot afford to actually collect original video games cartridges, even though I would obviously vastly prefer to be able to do so, just for the feeling of switching cartridges and whatnot.

Skipping a long story about the hardships of finding non-garbage ROM collections, I placed the PAL version of Super Mario Bros., among others, on the EverDrive and ran it as the first game.

The music that played seemed to go too fast. I immediately suspected that either this was a mislabeled NTSC ROM, or the EverDrive was somehow messing with it. However, all the other games seemed to run at the correct speed.

I then spent many hours trying numerous different ROMs of the game from different sources, and trying to hunt down gameplay footage on YouTube of a real PAL NES playing the PAL version of the game, but the latter proved seemingly impossible and none of the ROMs seemed to play the game at the "correct" speed.

But since it's about 30 years since I actually got my NES for my birthday with the game, and both are sadly long gone, I cannot rely on my memory for this. It might very well be that the game does play with faster music on the PAL version, and my memories have just been muddled up over the years from hearing the song played on NTSC NES consoles, or NTSC emulators/ROMs. In fact, this is the most probable explanation IMO.

Nevertheless, Nintendo did go through the trouble to "optimize" the game for PAL after they had made the original NTSC-J and NTSC-USA versions, so why did they (apparently) have the music still play at a noticeably faster pace?

It's important to emphasize that I'm not talking about running an NTSC game on a PAL console or a PAL game on an NTSC console, so that's not the reason it sounds faster. This is a PAL game on a PAL console, yet still has faster music than the NTSC version on an NTSC console.

4 Answers 4

10

Porting a game to PAL while making all actions take the same number of frames would cause the game to perform 20% slower than with NTSC. Some games did this, but other games adjusted the amount of distance objects could move per frame or reduced the number of frames required to perform various actions. Although some games could accommodate fractional-pixel distances or count fractional frames (so an action which is supposed to take 2.5 frames would hapeen twice every five frames, alternating between taking 2 and 3 frames), many games simply rounded durations up or down, sometimes a bit arbitrarily.

Perhaps one of the more notable times this occurred was with NES Tetris. In the NTSC version, blocks move once every two frames on levels 19 through 28, and then once every frame on levels past 29. In the PAL version, blocks move once every frame starting at level 19, which is a 20% slower than the NTSC level 29 speed, but 1.67 times as fast as the NTSC level 19 speed.

Another interesting wrinkle is that the Audio Processing Unit [actually logic integrated onto a die with the main CPU] has a configurable "frame counter" that counts once every 4 or 5 pulses of a roughly-240Hz signal. If SMB uses that rather than video frames to control music timing, the music should play at a consistent speed on both NTSC and PAL machines if it is programmed identically. While SMB was written late enough in the Famicom's history that programmers shouldn't have made a mistake like reducing note durations in software because they expected the player to run at 48Hz rather than 60Hz, but then left the APU configured to count 60 times/second, but it's plausible that they might have erred in such a fashion.

3
  • SMB1 does not use the APU interrupt. The entire game loop, including the sound engine, is synchronized to the video frame rate.
    – BenW
    Jun 30 at 21:07
  • @BenW: Rounding of note durations to whole-frame steps would seem then like the most probable cause of tempo variations, if there are any. NTSC frame divisors would yield 1/30, 1/20, 1/15, 1/12, and 1/10 while PAL divisors would yield 1/25, 1/16.7, 1/12.5, and 1/10. If the music player was expecting 15 events/second, then adapting it to PAL while using whole frames would require either speeding it up to 16.7 or slowing it down to 12.5.
    – supercat
    Jun 30 at 21:40
  • 1. I thought the APU frame counter frequency was also related to the video system (NTSC 240 Hz, PAL 200 Hz): APU Frame Counter, Cycle reference chart, PAL Frame Counter. 2. Nitpick: 50 Hz to 60 Hz is 20% faster, but 60 Hz to 50 Hz is 16 2/3% slower.
    – Bavi_H
    Jul 1 at 2:48
1

Just compared Pal version to Japanese version . All original hardware/carts . Indeed music runs faster on Pal version. Never noticed back in the day , but then not many people played NES where I grew up. It was no where near as dominant as in the States. More of my friends had master systems. Most had home computers rather than consoles until the megadrive and SNES came along. BBC/Electron ,C64, Speccy, Amstrad then Atari ST and Amiga were the main machines people played games on. My cousin had a NES but had lived in the states. I worked in a computer game shop in the 80s and early 90s. We sold a few NES systems but mainly towards the end of its life as a cheaper alternative to 16 machines. Since the internet I was initially surprised how NES-centric America was/is. I played more NeoGeo and PC engine(generally less main stream)than NES back in the day. I love them all now. ;)

1

The reason is that SMB1's sound engine uses the video frame rate for timing, and only tracks time in whole numbers of frames.

So when it came time to make the PAL version of SMB1, the developers knew about the slowdown factor and attempted to compensate by increasing the tempo of the music. However because of limitations of their engine it wasn't possible to match the NTSC speeds exactly. They could only go up to the next faster discrete speed, which ends up being slightly faster than the original.

1
  • As you say, the reason the PAL version has different tempo music is because the sound engine only tracks time in whole numbers of frames. But be aware the developers could have picked a faster or slower tempo for the PAL version, but the choices were limited because of the whole-frame requirement for note durations.
    – Bavi_H
    Jul 1 at 8:04
0

The sound engine in Super Mario Bros. can only represent note durations in whole numbers of video frames.

If a piece of music uses note durations of a quarter beat, third beat, half beat, and a beat, the shortest possible durations for those are 3, 4, 6, and 12 frames respectively. These shortest durations correspond to the fastest tempo possible.

Any other possible durations must be some whole number multiple of the smallest durations. As the durations get longer they correspond to slower tempos.

M multiple; duration in frames of D¼ quarter beat, D third beat, D½ half beat, D1 beat; tempo in beats per minute at T60 60 frames per second, T50 50 frames per second.

M D¼ D D½ D1 T60 T50
1 3 4 6 12 300.00 250.00
2 6 8 12 24 150.00 125.00
3 9 12 18 36 100.00 83.33
4 12 16 24 48 75.00 62.50
5 15 20 30 60 60.00 50.00
6 18 24 36 72 50.00 41.67
7 21 28 42 84 42.86 35.71
8 24 32 48 96 37.50 31.25
9 27 36 54 108 33.33 27.78
10 30 40 60 120 30.00 25.00

How the tempo is calculated:

d is the duration of beat in frames
f is the frame rate in frames per second
t is the tempo in beats per minute

tempo calculation shown using the factor-label method

t = ( f × 60 ) / d

If you plot the available tempos, you can see the gaps between what is possible at the NTSC frame rate and the PAL frame rate.

plot of possible tempos

In the NTSC version of Super Mario Bros., the music is 100 beats per minute, so the closest available PAL tempos are 83.33 beats per minute or 125 beats per minute. The developers decided to use 125 beats per minute for the PAL version.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.