Custom NES cartridge – Harambe’s revenge

Troy Denton and Brad Taylor made a USB reprogrammable NES cartridge:

Initially, Brad and I wanted to make a PCB that could do some very ambitious things, requiring either a very capable processor, or an FPGA device. We began down this path, but soon realized that we were biting off much more than we could chew for something we had never done before. So, we decided to take a step back, and make a smaller project to verify the foundations of our design. Our final design goals were:
*Be programmable via USB
*Be able to play NROM format games
*Feature nonvolatile storage (no battery required)
*Be as cheap and easy to manufacture as possible

Check out the video after the break.

Project info at troydenton.ca.

How To Add More Games to the NES Classic

The hype around the NES Classic in 2016 was huge, and as expected, units are already selling for excessively high prices on eBay. The console shipped with 30 games pre-installed, primarily first-party releases from Nintendo. But worry not — there’s now a way to add more games to your NES Classic!

Like many a good hack, this one spawned from a forum community. [madmonkey] posted on GBX.ru about their attempts to load extra games into the console. The first step is using the FEL subroutine of the Allwinner SOC’s boot ROM to dump the unit’s flash memory. From there, it’s a matter of using custom tools to inject extra game ROMs before reburning the modified image to the console. The original tool used, named hakchi, requires a Super Mario savegame placed into a particular slot to work properly, though new versions have already surfaced eliminating this requirement.

While this is only a software modification, it does come with several risks. In addition to bricking your console, virus scanners are reporting the tools as potentially dangerous. There is confusion in the community as to whether these are false positives or not. As with anything you find lurking on a forum, your mileage may vary. But if you just have to beat Battletoads for the umpteenth time, load up a VM for the install process and have at it. This Reddit thread (an expansion from the original pastebin instructions) acts as a good starting point for the brave.

Only months after release, the NES Classic is already a fertile breeding ground for hacks — last year we reported on this controller mod and how to install Linux. Video of this ROM injection hack after the break.


Filed under: nintendo hacks

Anti-Emulation Tricks on GBA-Ported NES Games

Emulation is a difficult thing to do, particularly when you’re trying to emulate a complex platform like a game console, with little to no public documentation available. Often, you’ll have to figure things out by brute force and dumb luck, and from time to time everything will come unstuck when a random piece of software throws up an edge case that brings everything screeching to a halt.

The Classic NES series was a handful of Nintendo Entertainment System games ported to the Game Boy Advance in the early 2000s. What makes them unique is a series of deliberately obtuse programming decisions that make them operate very differently from other titles. These tricks utilize advanced knowledge of the way the Game Boy Advance hardware operates and appear to have been used to make the games difficult to copy or emulate.

The games use a variety of techniques to confuse and bamboozle — from “mirrored memory” techniques that exploit addressing anomalies, to putting executable code in video RAM and writing to the audio buffers in unusual manners.

Even more confusingly, these techniques only appear to have been used in the Classic NES series of games, and not other Game Boy Advance titles. It’s not obvious why Nintendo went to special effort to protect these ports over other titles; perhaps the techniques used were for other reasons than just an attempt at copy protection. Speculate amongst yourselves in the comments.

This isn’t the first time we’ve discussed emulation of Nintendo systems — check out this effort to reverse engineer the Sony Pocketstation.

[Thanks to [[[Codifies]]] for sending this in!]


Filed under: handhelds hacks, nintendo gameboy hacks

NES Classic Edition – Controller Mod

The Nintendo Classic Mini took the world by storm this year — finally, an NES in a cute, tiny package that isn’t 3D printed and running off a Raspberry Pi! It’s resoundingly popular and the nostalgic set are loving it. But what do you do when you’re two hours deep into a hardcore Metroid session and you realize you need to reboot and reload. Get off the couch? Never!

[gyromatical] had already bought an Emio Edge gamepad for his NES Mini. A little poking around inside revealed some unused pads on the PCB. Further investigation revealed that one pad can be used to wire up a reset button, and two others can be used to create a home switch. Combine this with the turbo features already present on the Emio Edge, and you’ve got a pretty solid upgrade over the stock NES Mini pad. Oftentimes, there’s extra functionality lurking inside products that manufacturers have left inactive for the sake of saving a few dollars on switches & connectors. It’s always worth taking a look inside.

Now, back in 2006, the coolest hack was running Linux on everything — and somebody’s already trying to get Linux on the NES Mini.

Instagram Photo


Filed under: nintendo hacks

Learn Some Plastic Techniques With This SNES WiiMote Mod

Not all hacks have to be deeply technical. Sometimes a good show of skill is just as impressive. [lyberty5] takes two completely different hunks of plastic and somehow epoxies them into a convincing and, most impressively, reliable chimera.

While the WiiMote’s motion controls certainly caused a lot of wordy debate on the Internet when it was debuted. While everyone and their grandmother who owned a game company rushed out to copy and out-innovate it once they saw Nintendo’s hoard of dragon gold. Most game designers had other thoughts about the concept, mostly that it wouldn’t do for a platformer. So the gamer caught in the middle of it all had to rotate their grip-optimized rectangle 90 degrees and blister their thumbs on tiny buttons to play.

[lyberty5] remembered a time where controllers were optimized  for human hands to time jumps precisely. If only there was some way to glue that portion of history to the WiiMote! Which is exactly what he did. He cut the top off a SNES controller, borrowed the button portions of the circuit board, soldered, glued, bonded, and generally kludged it together. Skills that could definitely be applied to other projects.

After some painting the new controller works very well. Since the mechanical portions were borrowed from the original hardware it retains that good old school feel. Nicely done. Video after the break.


Filed under: nintendo hacks, nintendo wii hacks

Learn Some Plastic Techniques With This SNES WiiMote Mod

Not all hacks have to be deeply technical. Sometimes a good show of skill is just as impressive. [lyberty5] takes two completely different hunks of plastic and somehow epoxies them into a convincing and, most impressively, reliable chimera.

While the WiiMote’s motion controls certainly caused a lot of wordy debate on the Internet when it was debuted. While everyone and their grandmother who owned a game company rushed out to copy and out-innovate it once they saw Nintendo’s hoard of dragon gold. Most game designers had other thoughts about the concept, mostly that it wouldn’t do for a platformer. So the gamer caught in the middle of it all had to rotate their grip-optimized rectangle 90 degrees and blister their thumbs on tiny buttons to play.

[lyberty5] remembered a time where controllers were optimized  for human hands to time jumps precisely. If only there was some way to glue that portion of history to the WiiMote! Which is exactly what he did. He cut the top off a SNES controller, borrowed the button portions of the circuit board, soldered, glued, bonded, and generally kludged it together. Skills that could definitely be applied to other projects.

After some painting the new controller works very well. Since the mechanical portions were borrowed from the original hardware it retains that good old school feel. Nicely done. Video after the break.


Filed under: nintendo hacks, nintendo wii hacks

Linux On Your NES Classic Edition

Nintendo look as though they may have something of a hit on their hands with their latest console offering. It’s not the next in the line of high-end consoles with immersive VR or silicon that wouldn’t have looked out of place in last year’s supercomputer, instead it’s an homage to one of their past greats. The NES Classic Edition is a reboot of the 1980s console with the familiar styling albeit a bit smaller, and 30 of the best NES games included.

You do not, however, get an original NES with a 6502 derived processor, and a stack of game cartridges. In the Classic Edition is a modern emulator, running on very modern hardware. We’re told it contains an Allwinner R16 quad-core Cortex A7 SoC, 256Mb of RAM, and 512Mb of Flash. That’s a capable system, and unsurprisingly any hacking potential it may have has attracted some interest. Reddit user [freenesclassic] for example has been investigating its potential as a Linux machine, and has put up a post showing the progress so far. It is known that there is already some form of Linux underpinning the console because Nintendo have released a set of sources as part of their compliance with the terms of the relevant open-source licences. That and the availability of a serial port via pads on the PCB gives hope that a more open distro can be installed on it.

We’re taken through the process of starting the machine up with the serial port connected to a PC, and getting it into the Allwinner FEL mode for low-level flashing work. Then we’re shown the process of loading a custom U-Boot, from which in theory a kernel of your choice can be loaded.

Of course, it’s not quite that simple. There is still some way to go before the device’s Flash can be accessed so for now, all that is possible is to use the RAM, and the current state of play has a kernel panic as it is unable to mount a filesystem. However this is a new piece of hardware in its first few days after launch, so this is very much a work in progress. We are sure that this device will in time be opened up as a fully hackable piece of hardware, and we look forward to covering the interesting things people do with it when that has happened.

If you are interested in the NES Classic, take a look at it on Nintendo’s web site. Meanwhile, here at Hackaday as a quick look at our past stories tagged “nes” shows, we’ve covered a huge number of projects involving the platform in the past.

Thanks [Doc Oct] for the tip.

Original NES console header image: Evan-Amos [Public domain], via Wikimedia Commons.


Filed under: nintendo hacks

Pi Cart: 2,400 Games In One

What’s the quickest way to turn one game into 2,400? Cram a Raspberry Pi Zero running RetroPie into an NES cartridge and call it Pi Cart.

This elegant little build requires no soldering — provided you have good cable management skills and the right parts. To this end, [Zach] remarks that finding a USB adapter — the other main component — small enough to fit inside the cartridge required tedious trial and error, so he’s helpfully linked one he assures will work. One could skip this step, but the potential for couch co-op is probably worth the effort.

Another sticking point might be Nintendo’s use of security screws; if you have the appropriate bit or screwdriver, awesome, otherwise you might have to improvise. Cutting back some of the plastic to widen the cartridge opening creates enough room to hot glue in the USB hub, a micro USB port for power, and an HDMI port in the resulting gap. If you opted to shorten the cables, fitting it all inside should be simple, but you may have to play a bit of Tetris with the layout to ensure everything fits.

Using a Back To The Future game cartridge encapsulates the essence of this project, considering its contents would be nearly science fiction back in the 1980’s — a nice touch. We’ve featured plenty of RetroPie setups — each with their own unique flair — but if you’re looking for a more period appropriate gaming station, you could simply gut an NES for the purpose.


Filed under: how-to, Raspberry Pi

One Home Made NES To Rule Them All

The Nintendo Entertainment System, or Famicom depending on where in the world you live, is a console that occupies a special place in the hearts of people of a certain age. If you lived in a country that Nintendo didn’t ship its consoles to in the late ’80s and early ’90s though, you might think that it would be an experience that would have passed you by. Eastern Europeans for instance didn’t officially meet Mario for years.

A Pegasus NES clone. Ktoso the Ryba [Public domain], via Wikimedia Commons.
A Pegasus NES clone. Ktoso the Ryba [Public domain], via Wikimedia Commons.
Fortunately for them there was an industry of Chinese and Taiwanese clone makers whose products were readily available in those markets. For the countries without official Nintendo products it is these consoles and their brand names that have achieved cult gaming status rather than the real thing.

In Poland, [phanick] wanted to recreate his youth by building his own clone console (Polish Language, English translation via Google Translate). His chosen target was the Pegasus, the Taiwanese NES clone that was the must-have console for early ’90s Poles.

But he wasn’t just satisfied with building a Pegasus clone. Along the way the project expanded to include support for 72-pin NES cartridges as well as the 60-pin Pegasus ones, and the ability to play both PAL and NTSC games. For this dual-system support he had to include both sets of processor and graphics chip variants, along with logic to switch between them. He goes into some detail on the tribulations of achieving this switch.

The result is a very impressive and well-executed piece of work. The PAL games have a letterbox effect with black bars at top and bottom of the screen, while the NTSC games have slightly washed-out colours. But if you were a gamer of the day you’ll see these as simply part of the genuine experience.

He’s posted a descriptive video which we’ve embedded below the break, but with non-English commentary. It is however still worth watching even without understanding the audio, for its view of the completed board and gameplay.

We’ve featured a lot of console projects over the years, but many of them have been emulators like this Nintendo-inspired example based on a Raspberry Pi. This project stands apart from the emulators, as far as we can find in our archives nobody else has cloned the original, and certainly not with support for so many variants.

[Thanks pmilian]


Filed under: nintendo hacks

Porting NES to the ESP32

There’s an elephant in the room when it comes to the Raspberry Pi Zero. The Pi Zero is an immensely popular single board computer, but out of stock issues for the first year may be due to one simple fact: you can run a Nintendo emulator on it. Instead of cool projects like clusters, CNC controllers, and Linux-based throwies, all the potential for the Pi Zero was initially wasted on rescuing the princess.

Espressif has a new chip coming out, the ESP32, and it’s a miraculous Internet of Things thing. It’s cheap, exceptionally powerful, and although we expect the stock issues to be fixed faster than the Pi Zero, there’s still a danger: if the ESP32 can emulate an NES, it may be too popular. This was the hypothetical supply issue I posited in this week’s Hackaday Links post just twenty-four hours ago.

Hackaday fellow, Hackaday Supercon speaker, Espressif employee, and generally awesome dude [Sprite_tm] just ported an NES emulator to the ESP32. It seems Espressif really knows how to sell chips: just give one of your engineers a YouTube channel.

This build began when [Sprite] walked into his office yesterday and found a new board waiting for him to test. This board features the ESP-WROOM-32 module and breaks out a few of the pins to a microSD card, an FT2232 USB/UART module, JTAG support, a bunch of GPIOs, and a 320×240 LCD on the back. [Sprite]’s job for the day was to test this board, but he reads Hackaday with a cup of coffee every morning (like any civilized hacker) and took the links post as a challenge. The result is porting an NES emulator to the ESP32.

The ESP-32-NESEMU is built on the Nofrendo emulator, and when it comes to emulation, the ESP32 is more than capable of keeping the frame rate up. According to [Sprite], the display is the bottleneck; the SPI-powered display doesn’t quite update fast enough. [Sprite] didn’t have enough time to work on the sound, either, but the source for the project is available, even if this dev board isn’t.

Right now, you can order an ESP32; mine are stuck on a container ship a few miles from the port of Long Beach. Supply is still an issue, and now [Sprite] has ensured the ESP32 will be the most popular embedded development platform in recent memory. All of this happened in the space of 24 hours. This is awesome.

Get yourself up to speed while you wait for a dev board to travel ashore. [Elliot Williams] has already posted the first in what will surely be a series of ESP32 tutorials.


Filed under: Microcontrollers, nintendo hacks