NES PAL/NTSC differences (rev 0.2 6-Aug-97) ------------------------ Only material relevant to emulators is covered here. Other hardware differences (e.g. controller differences) are not included. The PAL NES, as mentioned in Y0SHi's technical document, displays all 240 lines, compared with 224 for NTSC versions of the NES. The PAL TV system runs at 50Hz, compared with 60Hz for NTSC. Each field has 312 lines, versus 262 for NTSC. To summarise: Field Lines per Line rate rate (Hz) field (kHz) NTSC 59.94 262 15.75 PAL 50 312 15.625 Using a real PAL NES, or most other PAL consoles, you will notice that there are black borders at the top and bottom of the screen. Due to the greater number of lines in the PAL system, the graphics appear squashed - there's a "letterbox" effect. I am not sure whether the PAL NES actually uses the "real" PAL line rate of 15.625kHz, or whether it uses the NTSC line rate of 15.75kHz. Someone with an oscilloscope or other test equipment needs to check this. The exact line rate is important to determine. A console using the device detailed in the patent mentioned below would have a line rate of 15.75kHz. Also, the actual field rate for an NTSC NES may be 60Hz exactly. Again, someone with access to suitable test equipment needs to measure this. (The 59.94 figure is used in NTSC colour broadcast television, apparently to reduce artefacts from the colour signal subcarrier which appear on monochrome receivers.) We can work out the number of raster lines in the vertical blanking period for both PAL and NTSC consoles: vbl lines = field lines - active lines For NTSC, vblNTSC = 262 - 224 = 38 lines For PAL, vblPAL = 312 - 240 = 72 lines So there at least three differences: 1. The PAL NES has 34 extra raster lines in the vertical blanking period. 2. The vertical blanking period effectively ends 8 lines earlier and begins 8 lines later, relative to the displayed image on a PAL NES, due to the larger number of lines displayed (240 vs 224). (This may not affect most titles.) 3. Due to the lower field rate, games typically run 16 2/3% slower on PAL consoles than the designer intended. 4. (This needs to be confirmed.) The line rates differ slightly, which affects games which loop to wait for a given raster position. These differences are important! Some PAL games rely on them, and will either not work at all, or have corrupted graphics when run on an NTSC console. Some PAL games which do not work at all on an NTSC console: High Speed, Pin Bot (both by Rare). Both these lock up shortly after starting. Some examples of games which have corrupted graphics: Battletoads, Cobra Triangle, Digger T. Rock, Elite, Rad Racer, Rush n Attack, Time Lord. PAL NES games can be split into various categories: 1. Almost completely unchanged from the NTSC version. So the music and game- play are 16 2/3% slower than the designer intended when played on a PAL console. Examples: Castlevania, Mega Man II. 2. Music adjusted for PAL, game-play unchanged. Examples: Blue Shadow, Shadow Warriors (Ninja Gaiden), Shatterhand. 3. Both music and game-play adjusted for PAL. Both are at (almost) the correct speed. Only very few titles are like this. Examples: Super Mario Bros. (later release), Super Mario Bros. 3, Tetris. To my knowledge, no games have redrawn graphics to compensate for the squashing effect. This is very noticeable on games which use large circular shapes, like Castlevania III and Blue Shadow (known as Shadow of the Ninja in the USA). However, the game Parodius does seem to position its score panels right at the edge of the screen; this is easily visible on a PAL console, but partially off screen on an NTSC console. Categories 2 and 3 above are important for emulators. If the owner of a PAL Super Mario Bros. 3 cartridge were to dump it to disk and load the ROM image into an emulator, the game would play 20% too quickly since most current emulators only support NTSC. Adding support for PAL games in emulators should be quite easy: - allow the user to switch between PAL and NTSC modes; - for PAL, there are 34 extra lines in the vertical blanking period, and the field rate is 50Hz; - a new bit needs to be added to the iNES header format, to specify whether the cartridge is PAL or not; - it is not necessary to emulate the squashed graphics. There may be other issues, but I am not aware of them yet. Emulators should always allow the user to switch between PAL and NTSC emulation modes. Games in categories 1 and 2 above are best played in NTSC mode. Here is an example of a minor problem which can occur when using a PAL game on an NTSC console or emulator. Internally, the NES maintains 240 lines of picture. However, in NTSC consoles the top and bottom 8 are not displayed - so only 224 lines are displayed, as mentioned above. This is because the vertical blanking period would be too short to get much useful done otherwise. These "missing" 16 lines on NTSC consoles are not noticeable, as they are usually off the screen anyway. The real PAL NES displays all 240 lines, which in combination with the longer blanking period causes some games which use extra hardware in the cartridge, or certain programming techniques, to behave differently. In particular, the vertical blanking period finishes 8 lines "earlier" on a real PAL NES. Some games might have a routine which does something like this: main: loop for (say) 10,000 instructions write to a register to change the character ROM bank do some more stuff The main routine would be called at the end of every vertical blanking period (i.e., at the start of displaying the "active" picture lines). The wait loop at the start is calculated to wait until the raster beam is at a certain point down the screen. Then the character ROM bank is changed. This might be used for a game title screen: --- Top of screen --- _______________________________ | | | | | | | Picture here | | | | | | | |_______________________________| [Bank change happens when raster beam is here] Game name or other text here --- Bottom of screen --- The reason this is done is that without additional hardware, the NES can only display 256 different characters on screen at once (only 1 byte is used to designate a character number). The picture might "use up" all 256 characters. The bank change is done so that this 1-byte-per-character can be re-used by referring to characters in a different bank. So it's possible to have the text below the picture displayed properly, with no additional hardware needed. A good example of this behaviour is the title screen of "Castelian". Earlier I said that the PAL blanking period ends 8 lines earlier. This obviously has an impact on any code which uses a wait loop similar to that given above. The loop will finish 8 lines earlier, and the bank change will occur too early. Maybe the bottom few lines of the picture are corrupted. This is exactly what happens when I play my PAL Castelian cartridge on an NTSC console. Some cartridges contain additional hardware, one function of which may be to generate interrupts based on counting scanlines. So the programmer can say "I'd like to be interrupted in 20 lines time please", and this will happen. Using this method, it's possible to perform bank switches in many different positions down the screen, without tying up the CPU with lots of wait loops. Depending on the hardware, it may work by counting the number of lines (or an equivalent number of clock cycles) from the *start* of the vertical blanking period. Here's where the big problem occurs. On a real PAL NES, that blanking period is 72 - 38 = 34 lines longer than for NTSC. So there can be a very large difference between when an interrupt occurs on real PAL and NTSC consoles. In practice, this means severely corrupted graphics, often to the point that the game is unplayable. If you are developing a NES emulator, and don't own both PAL and NTSC NES consoles, you might like to check out http://www.netcomuk.co.uk/~markk/Consoles/NES_Lockout.txt This details how to disable the lockout chip on your NES. By doing this, you will be able to play both PAL and NTSC games from any country on your console, without needing a hard-to-obtain universal adapter. If you have access to some PAL cartridges, you can check whether they work correctly on your NTSC console, or vice versa. Games developed by Rare Ltd are particularly likely to exhibit problems, as are racing games (e.g. Rad Racer, F-1 Race). I would recommend getting hold of both types of console - PAL ones in particular can be picked up for very little, in the UK at least. If you have any additional information or corrections for this document, please send it to me at markk@netcomuk.co.uk. I would be especially pleased to hear from ex-NES developers. Reference: European patent application EP 0 512 861 A2, "Color video signal standard conversion apparatus", Nintendo Co. Ltd. This patent has no US equivalent. The circuitry it details is probably *not* included in PAL NES models. It may have been used in e.g. PAL versions of the Famicom for the Asian market. These were probably designed to be 100% compatible with Famicom (i.e., NTSC) software. So the PPU is halted during the "extra" time in each frame, and only 224 lines would be displayed. Revision history ---------------- --- 22-Jul-97 Initial release (but only given to Y0SHi on this date). 0.2 6-Aug-97 Various changes, added description of a real problem and a pointer to my lockout-disabling document. -- Mark Knibbs