Nintendo has dealt with unauthorized, legal emulators running their products in places and ways that the company disapproves for decades now. From the first basic freeware Nintendo Entertainment System emulators for DOS to simple gray-market handheld devices made to run emulation software to fully functional third-party products on the shelf at your neighborhood Best Buy, there have been many ways to drop Super Mario Bros. somewhere that Nintendo doesn't want it to be. The company has been creative and clever over the years when it comes to preventing its products from working on unauthorized hardware. The creator of an up-and-coming open source Game Boy Advance emulator called mGBA, Jeffrey Pfau, has been working to make his program run the 2004 Classic NES Series of GBA game paks and has discovered that these games have their own unique ways of discouraging emulators from running them successfully.
From a GBA emulation perspective, the games were especially interesting. The average Game Boy Advance game is extremely buggy, and the platform itself contains a number of safeguards to prevent games from crashing. As a result, emulators tend to need to be bug-compatible with the original hardware to ensure that the games actually work. However, the Classic NES Series goes above and beyond the average game in an attempt to ensure they don’t work in emulators.
If you’ve tried to load one in some older emulators, you’ve probably been confronted with a Game Pak Error screen, as seen above. As it turns out, these games exploit several tricks and undefined behaviors that make emulating them challenging. This appears to be a deliberate attempt to dissuade copying these games. In the interest of accuracy, I have painstakingly investigated, implemented and chronicled all of the unusual things I’ve found these games to do.
At first glance it seems kind of pointless in retrospect; why lock out compromised, scaled-down versions of Super Mario Bros. and The Legend of Zelda from running in a GBA emulator when the NES originals were working flawlessly in the emulators of the day even back in 2004? Over at Reddit, there's some interesting discussion regarding Nintendo's reasons for making the Classic NES Series so difficult to emulate and my favorite proposed explanation involves Datel's unlicensed GBA add-on for the GameCube that competed with Nintendo's own Game Boy Player. The Classic NES Series does not work with Datel's product, but it does run on the Game Boy Player. Was all of this trouble just to keep products like Datel's solution from working with what Nintendo projected to be a popular product line? That makes just as much sense to me as anything else. Nintendo can be just as spiteful as it is creative.