13

I have an original PAL NES console. To the best of my knowledge, it is entirely unmodified.

I have an EverDrive N8 Pro inside on which I've put a bunch of European/PAL ROMs, but also a few NTSC/American ones. For example, Bugs Bunny Crazy Castle, The (USA).nes.

The NTSC/American ones surprisingly run perfectly, and I don't even notice anything weird with the speed/sound.

But the NES was region-locked, and a vanilla PAL NES should not be able to run NTSC/American cartridges. So how come mine does?

Is this only due to it being run on the EverDrive? Is the EverDrive doing some sort of automatic region unlocking as a feature which I was unaware of? If I had an actual NTSC/American NES game and put it inside my PAL NES, would it just "blink" and show nothing, or would it say something on the screen such as this?

Sorry, but this game cartridge is not designed to run in your region.

"Region unlocking" is not listed as a feature of the EverDrive N8 Pro.

2
  • Thanks for the quality question. Could you try to keep comments constructive, though?
    – wizzwizz4
    May 27 at 13:12
  • It wouldn't surprise me if the ROM for the different regions is essentially the same (save for translation stuff). It might compensate for running on a slower TV. Or you could be used to how it runs on PAL TVs. (While 60hz PAL exists, I doubt the NES used that.)
    – trlkly
    May 27 at 20:56
28

The NES's region lock is implemented in hardware, not software, with the CIC chip. The NES contains a CIC, and each authentic cartridge contains an identical CIC. When the console is powered on, the two chips communicate via a challenge-response handshake protocol, and if the cartridge fails to provide the correct responses, the CIC on the NES resets the system every second (hence the red blinking light). CICs manufactured for different regions use different keys, so that you can't play an American game on a European console (for example).

This means that if you tried to put an American game in your European console, the CIC check would fail and you'd get the blinking light. But because region-locking is a part of the cartridge hardware and not the game's software, you can swap out the ROM chip in an authentic European cartridge in order to play whatever game you want (whether European, American, Japanese, or unlicensed) since the cartridge still has a European CIC.


So how does your Everdrive defeat the CIC protection? Well, under the hood, the CIC is really just a simple four-bit microcontroller manufactured by Sharp, and the firmware has been dumped and reverse-engineered. I haven't found any detailed documentation of the protocol, but I have found that krikzz, the creator of the Everdrive, has also published an open-source AVR-based CIC clone. I don't have time right now to read through the source code and figure out how it works, but this line in the README stuck out to me:

Push the reset 4-8 times after than system region was changed, or if cic used at first time

The manual for your Everdrive mentions a similar procedure in the "Initial setup" section:

Configure CIC chip. Hit reset 7 times if red indicator is blinking on your system (NES only).

This strongly indicates that the Everdrive includes keys for all CIC regions, and during this initial setup process it simply tries each key until your NES accepts one of them. Once it has learned to spoof your console's CIC, your Everdrive is able to load and run ROMs from any region.

6
  • 1
    Good info, but this still leaves the speed question unanswered. One would expect a PAL NES to run at 50 fps.
    – trlkly
    May 27 at 20:54
  • 2
    @trlkly: Software which is designed for an NTSC NES would be unlikely to run at the correct speed on a PAL NES, but it would be likely to work, except for the fact that it would be at 80% speed, provided that it writes to the Object Attribute Memory early enough in the vertical blanking interval. Software designed for a PAL NES would likely run 20% faster than it should but otherwise work if it can accomplish everything it needs to within each vertical blanking interval, but the NTSC vertical blanking interval is only about a third as long as the PAL one.
    – supercat
    May 28 at 2:38
  • 2
    @trlkly supercat is correct; an NTSC game will (in general) run fine on a PAL NES -- except at a slower speed and with slightly out-of-tune music, and games requiring complex raster effects (e.g. Battletoads) may break. This is not something that the Everdrive could work around as it would require extensive modification to the game's software. It would be possible for a game to detect the region at runtime by measuring frame timings and adapt accordingly, but I don't know if any commercial games actually did this in practice.
    – NobodyNada
    May 28 at 3:28
  • 1
    @nick012000 I know you're joking, but the choice to play the NTSC or PAL version of a game can have implications for speedrunning. For instance, Super Metroid has a glitch which skips a boss by escaping the boss room before the door finishes closing. In the NTSC version of the game, the glitch requires several dozen frame-perfect inputs and therefore is only possible with tool assistance. In the PAL version, the trick is possible to pull off in real-time because of slight differences in the game's physics when running at 50Hz.
    – NobodyNada
    May 28 at 4:28
  • 1
    However, the leaderboards are segregated by region so that players from Europe don't gain an unfair advantage. Regardless, if someone played the game on the wrong type of console, anyone familiar with the game would instantly notice that it's "sped up", and the run would be disqualified.
    – NobodyNada
    May 28 at 4:31

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.