The King of All Game Genies In An Arduino

While Nintendo is making a killing on nostalgic old consoles, there is a small but dedicated group of hackers still working with the original equipment. Since the original NES was rolled out in the 80s, though, there are a few shortcomings with the technology. Now, though, we have Arduinos, cheap memory, and interesting toolchains. What can we do with this? Absolutely anything we want, like playing modern video games on this antiquated system. [uXe] added dual-port memory to his ancient NES console, opening up the door to using the NES as a sort of video terminal for an Arduino. Of course, this is now also the King of All Game Genies and an interesting weekend project to boot.

Most NES cartridges have two bits of memory, the PRG and CHR ROMs. [uXe] is breaking out the cartridge connector onto an exceptionally wide rainbow ribbon cable, and bringing it into a custom Arduino Mega shield loaded up with two 16K dual-port RAM chips. These RAM chips effectively replace the PRG and CHR ROMs Since these are dual-port RAM chips, they can be written to by the Arduino and read by the NES simultaneously.

The NES sees one port of the RAM and can read and write from it while the Arduino still has access to make changes to the other post while that’s happening. A trick like this opens up a whole world of possibilities, most obviously with tiling and other graphics tricks that can push beyond the console’s original capabilities. [uXe] is currently playing Arduboy games on the NES — a really neat trick to pull off. Well done [uXe]!

Be sure to check out the video below of the NES running some games from the Arduboy system. It seems to integrate seamlessly into the hardware, so if you’ve always had a burning desire to fix crappy graphics on some of your favorite games, or run some special piece of software on an NES, now might just be your time to shine.

16 thoughts on “The King of All Game Genies In An Arduino

    1. More importantly, that should be a reference for Hackaday’s reporter too !
      A “Game Genie” acts as a man-in-the-middle between the console and the game cartridge, so it can patch an original game’s rom on-the-fly with different values or instructions when they are adressed.

      Ok, as many mcu or fpga-based “rom images” readers do, while acting as a regular game rom, this one has enough processing power to provide dynamic content, but a “game genie”-like functionnality is nowhere to be found…

      So how can this ends up with a title as totally pompous and misleading than “KING of ALL” of a thing that it is even not ?? Sadly, drinking his own kool-aid when reporting poorly documented and deja-vu “retro-gaming” projects seems to become the norm here, probably a matter of priority.

      1. He was asking about an NES cartridge. I think he just wondered if it could fit inside the console instead of hanging out like that. It already only connects to the NES through the cartridge connector, so the only hurdle is just physically fitting it into a cartridge. It may fit now, or throw together a purpose-built atmega2560 board with the ram chips included.

        The cartridge slot even provides 5v, but I don’t know what the current limitation is.

    1. Looking at current memory densities you could probably make some sort of “server” inside the cartridge with every NES game ever. It would have the game genie built in and and you could talk to it via wifi to load games and generally be useful.

    2. There’s plenty of room in a non-Japanese cart for an integrated version. Safely getting enough power from the console is probably the biggest hurdle.

      This is basically just a homebrew microcontroller implementing a fancy mapper.

    1. Now that’s genius!

      Just to let people know what it is, a very smart chap has produced his own Gameboy Colour cart, with an ARM micro on board. The ARM renders what’s presumably a custom version of Wolfenstein 3D, then feeds it via shared RAM to the Gameboy. Each frame of Wolfenstein’s gameplay is broken up into tiles suitable for the Gameboy’s display, also done on the ARM. I think the GBC itself handles the enemy sprites.

      Anyway it’s extremely clever, and with an arbitrarily powerful ARM chip, you could fairly simply put Quake on there! For complicated values of “fairly”.

      And it all runs off the GBC’s ordinary batteries, and presumably doesn’t load them much more than an original cartridge ROM would.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s