This Is A Super NES Game, Running On An NES
Hacker Tom Murphy has pulled off the unthinkable: he’s gotten Super Mario World, a Super NES game, to run on an NES console — a real one.
How’d he pull it off? Did he cheat? …..Yeah, kinda — but it still took significant effort to get to the point where he could cheat. The NES is very limited graphically: it can render 64 colors, but it can only put 13 of them on one screen at a time, and only three colors are allowed in every 16×16 block of graphics. Murphy figured out a way to feed data into the NES so that a different color palette is allowed every eight pixels — but that still wasn’t enough.
All the graphical data for an NES game is stored in a cartridge chip called the Picture Processing Unit, or PPU. Murphy created a custom circuit board and replaced the PPU with a soldered-on Raspberry Pi. The Pi computes the data — in this case an emulated Super Mario World — and feeds that data to the NES one bit at a time. Through this method, Murphy made it possible to play Super NES games on an NES.
It’s not perfect, though no one would expect it to be. You’re limited to two buttons instead of four, so Mario can only spin jump. The whole process also creates weird glitches in the form of errant lines on the screen. And there’s no music because Murphy hasn’t invented a way to scale down and transfer it yet in a form the NES could understand. But still, it’s amazing to look at.
If you’d like to know more about how this works, the demonstration video below goes into great brainy detail — and if that isn’t enough, Murphy pieced together a second video that gets really technical.