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.
Reference for the kids who have NF clue what a Game Genie is…
https://en.wikipedia.org/wiki/Game_Genie
Well.. They can’t be as bad as the pretentious little shits whom pretend to know what they are because they watch talent-less hacks in gaming on youtube.
Was expecting article about a Game Genie cloned with an Arduino :(
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.
How long until this can be built into an NES cartridge?
Quite a while since the snes has considerable more memory. Dualport ram is more expensive then normal sram. Perhaps an fpga as gluelogic can do it affordable.
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.
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.
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.
Wonder if a pi has enough horse power to learn to play the game on it’s own with some sort of genetic algorithm. Possibly even fit the pi into a cartridge form factor.
Similar to this: http://www.happydaze.se/wolf/
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.
Was reported a year ago (with an appropriate title then): https://hackaday.com/2016/11/09/diy-coprocessors-for-the-game-boy-color/
Indeed similar dynamic tilemap served on dual-port memory, nice project presentation and explanations, but not a DIY project with any released material (at least not another praised closed-source “retro-gaming” product,.. yet)
All these years later, the MM3 code ZAKGNIPA is still burned into my brain. I loved that thing.
IDDQD… IDKFA…
think you mean ‘port’ here: “.. to the other post while ..”