This NES ROM is a ZIP of its Source

Polyglots, in computing terms, are files have multiple valid meanings. We’ve seen some amazing examples of polyglot files in releases of The International Journal of PoC||GTFO. One example: a PDF that is also a ZIP, HTML file, and BPG image.

[Vi Grey] was inspired by PoC||GTFO’s release of a PDF/ZIP/NES ROM hybrid file for issue 0x14. Using a different method, [Vi] created a file which is both an NES ROM and ZIP, where the full contents of the ZIP are stored in the NES ROM.

When PoC||GTFO created their NES ROM polyglot, they stuck most the information outside the bounds of the NES ROM. While the file is valid, you’d lose the ZIP archive if it was burnt to a cartridge.

[Vi]’s polyglot is different. Rip it from a real NES cartridge and you get a ZIP file. Unzip it, and you get the source. Compile that source, and you get a valid ZIP file containing the source. Burn that to a cartridge and… hopefully you grok the recursion at this point.

The source and scripts to mangle the polyglot together are up on Github.

Reverse Engineering A Pirate Nintendo Arcade Board

The Nintendo VS. System was a coin-op arcade system based on the Nintendo Entertainment System (NES) hardware. By being so closely related to the home console, it made it easy to port games back and forth between the two. Being an arcade system, there was significant financial incentive to pirate the boards and games, and many years later such a pirate board landed on the desk of [kevtris], who decided to reverse engineer it for our viewing pleasure.

The board in question runs Super Mario Brothers, and rather than using actual Nintendo hardware it instead relies on a standard MOS 6502 to recreate all the functions of the of the original CPU. A Z80 is pressed into service to emulate the original audio hardware, too. With much of the functionality recreated in TTL logic chips, the board is power hungry, drawing a ridiculous 3 amps when powered up. We wonder as to the fire safety of such machines all crammed into a hot, sweaty arcade of yesteryear.

[kevtris] does a great job of reverse engineering the system, even providing a full PDF schematic for the bootleg board. An old SEGA controller is hand-wired into the board to provide both game controls and act as a coin switch to allow the game to be played.

We’d love to hear the story of how these machines actually came to be, and the design process involved, but for now that may remain one for the ages. Arcade piracy was something the big companies fought against for years, with varying success – and we’ve seen arcade DRM hacked before.

[Thanks to Jero32 for the tip!]

Continue reading “Reverse Engineering A Pirate Nintendo Arcade Board”

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.

Continue reading “The King of All Game Genies In An Arduino”

An Old Video Game Controller on Even Older Computer

For those of us not old enough to remember, and also probably living in the States, there was a relatively obscure computer built by Microsoft in the early 80s that had the strong Commodore/Atari vibe of computers that were produced before PCs took over. It was known as the MSX and only saw limited release in the US, although was popular in Japan and elsewhere. If you happen to have one of these and you’d like to play some video games on it, though, there’s now a driver (of sorts) for SNES controllers.

While the usefulness of this hack for others may not help too many people, the simplicity of the project is elegant for such “ancient” technology. The project takes advantage of some quirks in BASIC for reading a touch-pad digitizer connected to the joystick port using the SPI protocol. This is similar enough to the protocol used by NES/SNES controllers that it’s about as plug-and-play as 80s and 90s hardware can get. From there, the old game pad can be used for anything that the MSX joystick could be used for.

We’ve seen a handful of projects involving the MSX, so while it’s not as popular as Apple or Commodore, it’s not entirely forgotten, either. In fact, this isn’t even the first time someone has retrofitted a newer gaming controller to an MSX: the Wii Nunchuck already works for these machines.

Hackaday Prize Entry: Gaming Done Tiny with Keymu

The world’s tiniest Game Boy Color, introduced at the 2016 Hackaday SuperConference, is a work of art. This microscopic game console inspired [c.invent] to create how own gaming handheld. His Keymu project on hackaday.io describes an open source, keychain-sized gaming handheld that its builder claims is really the world’s tiniest. How did he make it smaller? It’s a miniature Game Boy Advance SP, and it folds up in a handy clamshell case.

While he’s a Pi fan, [c.invent] felt the Pi Zero was too big and clunky for what he had in mind–a keychain-sized handheld. Only the Intel Edison was compact enough. He began with a custom PCB with a connector for the Edison’s fragile ribbon cable, then added an 1.5″ OLED display and an 11.7mm speaker, all powered by a 220 mAh lithium battery. [c.invent] also created inside a custom folding 3D-printed case that protects the Keymu’s electronics from keys and pocket lint.

Unlike the mini Game Boy Color, [c.invent] aims to create a fully fledged emulation console. The Edison incorporates a Linux distribution that allowing it to install emulators for GameBoy Color, GBA, NES, and SNES.

Radio Decoding Swiss Army Knife in a NES Controller

If you wanted to name a few things that hackers love, you couldn’t go wrong by listing off vintage console controllers, the ESP system-on-chip platform, and pocket tools for signal capture and analysis. Combine all of these, and you get the ESP32Thang.

At its heart, the ESP32Thang is based around a simple concept – take an ESP32, wire up a bunch of interesting sensors and modules, add an LCD, and cram it all in a NES controller which helpfully provides some buttons for input. [Mighty Breadboard] shows off the device’s basic functionality by using an RFM69HW module to allow the recording and replay of simple OOK signals on the 433 MHz band. This is a band typically used by all sorts of unlicenced radio gear – think home IoT devices, wireless doorbells and the like. If you want to debug these systems when you’re out and about, this is the tool for you.

This is a fairly straightforward build at the lower end of complexity, but it gets the job done with style. The next natural step up is a Raspberry Pi with a full software defined radio attached, built into a Nintendo DS. If you build one, be sure to let us know. This project might serve as some inspiration.

With the wide availability of SPI and I2C modules these days, combined with the ease of programming provided by the Arduino environment, this is a project that just about any hacker could tackle after passing the blinking LED stage. The fact that integrating such hardware is so simple these days is truly a testament to the fact that we are standing on the shoulders of giants.

Nintoaster: The Next Generation

The original Nintendo Entertainment System is affectionately called “the toaster” due to the way the cartridge is inserted. [MrBananaHump] decided to take things a bit literally and installed a NES inside an actual toaster. This isn’t [MrBananaHump’s] design, the Nintoaster comes to us from [vomitsaw], who also built the SuperNintoaster. Since [vomitsaw] was kind enough to document his original build, [MrBananaHump] was able to build upon it.

The target toaster for this build was a plastic Sunbeam model found at a thrift store for $5. [MrBananaHump] gutted the toaster and cleaned out years of toast crumbs. The Nintendo mainboard would fit perfectly inside a toaster, except for two things – the RF Modulator and the expansion port. The expansion port was never used in the US version of the NES so it can be desoldered and removed. The RF also needs to be desoldered and relocated.

By far the biggest job in this casemod is hand-wiring each of the 72 pins for the cartridge port. It’s a tedious job, and it probably won’t look pretty. Keep your wires short, and things will probably work thanks to the relatively low clock speed of the NES.

The cartridge goes in one toast slot. [MrBananaHump] mounted his controller ports, power and reset buttons in the second slot. A bit of expanded metal grid completes the slot. Sure, it’s not exactly pretty inside, but with the case on, this becomes a rather nice looking build.

We’ve seen numerous Nintendo casemods over the years, just one other example is this N64 in an N64 controller.