Unlocking Achievements on the NES

Have you ever scored 50,000 points on Double Dragon? Then you need the NES RA Adapter to brag about your exploits on RetroAchievements.

Nick Bild
2 months agoRetro Tech
Achievement unlocked! (📷: Fábio Toledo)

Got some mad retro gaming skills worth bragging about? Maybe you have scored 50,000 points on Double Dragon? Have you ever beat Mecha-Turtle at the end of level three? Do you *gasp* play Rad Racer with a Power Glove (if you know, you know)? If you have the thumbs of an Olympic athlete, it might seem like a shame that when you turn off your NES console, all memory of your glorious achievement has been lost. And of course when you tell your buddies about your exploits, they will take you about as seriously as a certain Donkey Kong high score that is not to be spoken of.

The RetroAchievements platform is a fantastic way to track (and brag about) your retro gaming accomplishments. It monitors your progress in games, and when certain accomplishments have been unlocked it records that fact. It includes leaderboards and all of the other modern touches you might expect. However, recording these achievements typically relies on the use of game console emulators. These are great and all — but they are not the real thing. That matters to a lot of retro gaming purists.

But now, Fábio Toledo has come up with a solution to this problem, at least for the NES. Toledo built what is called the NES RA Adapter. It turns an original NES console into an interactive, Internet-connected machine, which allows for real-time achievement unlocking through the RetroAchievements platform. It handles all of the things necessary to make this happen in a secure way, like identifying the game via a CRC check and monitoring the console’s memory to detect when a specific achievement has occurred.

The NES RA Adapter sits between a game cartridge and the console, something like a Game Genie. It uses a pair of microcontroller development boards to carry out its functions. A Raspberry Pi Pico is used to check which game is inserted into the NES, and it also monitors the system’s memory to look for the telltale signs of certain achievements having been reached. An ESP32 C3 Supermini handles Internet connectivity and communication with the RetroAchievements platform. It also drives a small TFT display that shows achievements and box art.

The project is still under development, so while it is pretty excellent, it is not yet perfect. It has been tested with about 50 games so far and worked correctly with 48 of them — so be sure to check out the game compatibility list before going for a record. Also, unlike emulator-based detection of events, everything is not laid quite so bare. This means that some heuristics had to be used to detect events. While things generally look good with this approach, there is no guarantee that every event will be detected.

The current design of the hardware requires that the case of the NES be opened up for it to fit. Toledo plans to shrink it down in the future so that it can fit in a package the size of a traditional cartridge. Some code optimizations are also in the works to make the NES RA Adapter even better.

All of the work has been released on GitHub under a permissive license.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles