PAL vs NTSC

2023-02-11

In the retro gaming community, there seems to be an overall consensus that NTSC is vastly superior to PAL due to the higher frame rate of NTSC, which is 60 FPS compared to PAL's 50 FPS. In some cases PAL is even thrown up. An example is Digital Foundry Retro that often complains about PAL versions of games. However, there is much more to it than simply more frames per second, and I would like to argue that PAL has advantages compared to NTSC. What it boils down to is that most games never took advantage of PAL.

When developing games for old consoles such as NES or SNES, one of the main challenges is that you normally cannot update any graphics while the graphics chip is rendering to the screen as it corrupts the state of the graphics. The only safe time for updates is during something called HBLANK or VBLANK.

But what is HBLANK and VBLANK? Old consoles renders a frame line by line by moving the TV raster beam from left to right, top to bottom. The duration the beam moves from the right edge of the screen down to the left edge to begin a new line is called HBLANK, or horizontal blank. The duration the beam moves from the bottom right corner to the top left corner to start a completely new frame is called VBLANK, or vertical blank.

As old consoles generally have extremely slow CPUs, it's often not possible to do anything meaningful during HBLANK, especially not on something like the NES. This leaves VBLANK as the only option to update graphics for the upcoming next frame. But how long is VLBANK and what does it have to do with PAL vs NTSC?

If we look at the NES, NTSC has 240 lines compare to PAL's 288 lines. This means in terms of VLBANK time ~2273 CPU cycles for NTSC and ~7459 CPU cycles for PAL. Even if we factor in the CPU clock speed difference (which is ~1.79 MHz for NTSC and ~1.66 MHz for PAL), PAL has much more VBLANK time than NTSC meaning more things can be updated during a frame.

If we look at the SNES, the same applies. The amount of data that can be updated in VRAM during VLBANK for an upcoming frame is ~6,14KB for NTSC and a staggering ~14,65KB for PAL.

From a pure technical perspective, if you only target PAL, you could do more graphic updates per frame. Of course, most games never took advantage of this and limited themselves to whatever NTSC could handle. Especially when it came to console games.

The fact that PAL games often tend to run slower than their NTSC counterpart is just badly done ports, as most games where done with NTSC in mind and often released in PAL without any modifications (an example of a disastrous PAL port is Sonic 1 for Mega Drive).

So which is better, PAL or NTSC? I would argue PAL is superior. As a developer, giving up a few frames per second but gaining more time to update graphics for upcoming frames is a no brainer. It just feels quite annoying to have to limit yourself because of NTSC. Personally I really don't mind 50 fps either if a game is optimised for it.

But perhaps that is due to the fact that I come from a PAL country.