These days, if you want to code a game for the original Nintendo Entertainment System, it’s about as easy as downloading an assembler, firing up Notepad, and running the ROMs you cook up in any one of a variety of emulators. In the 1980s none of those things existed, and the process was a little more complicated – as demonstrated by [Tyler Barnes] in the video embedded below.
[Tyler] has put together a 40-minute guide on what it takes to get to “Hello World” – or more accurately, a simple pink screen – on the NES, using period-correct hardware. He starts the process by formatting some floppy disks and whipping up some basic assembly code on an Apple IIe, which gets run through the Merlin assembler for the 6502. It’s particularly convenient as the Apple II line and the NES both run the same CPU. From there it’s a case of using a standalone EPROM programmer to verify some appropriately-datecoded chips are empty, before programming them in a special add-on card for the Apple II. From there, the EPROMs are loaded into a cart custom modified with chip sockets, where it can be inserted into a NES for testing.
It’s a tedious process, with just the programming side of things taking on the order of ten to twenty minutes with a few fiddly steps along the way. While there are likely some efficiency gains to be had that were used by studios back in the day, it remains clear that development in this era was a much slower process.
At least by today’s standards, some of the early chips were really, really big. They may have been revolutionary and they certainly did shrink the size of electronic devices, but integrating a 40-pin DIP into a modern design can be problematic. The solution: cut off all the extra plastic and just work with the die within.
It will come as no surprise to the average Hackaday reader that what we’re looking at here is a pocket-sized NES emulator, but until [stacksmashing] cracked his open, nobody was quite sure what kind of hardware is was running on. Thankfully there wasn’t an epoxy blob in sight, and all of the chips were easily identifiable. Armed with the knowledge that the Game & Watch is running on a STM32H7B0 microcontroller with a nearby SPI flash chip holding the firmware, it was just a matter of figuring out how the software worked.
But he was able to dump the RAM through SWD, which allowed him to identify where the Super Mario Bros NES ROM lived. By connecting the SPI flash chip to a reader and comparing its contents with what the system had in RAM, [stacksmashing] was able to figure out the XOR encryption scheme and come up with a tool that will allow you to insert a modified ROM into an image that can be successfully flashed to the chip.
So does that mean you can put whatever NES ROM you want on the new Game & Watch? Unfortunately, we’re not quite there yet. The emulator running on the device has a few odd quirks, and it will take some additional coaxing before its ready to run Contra. But we’ve seen enough of these devices get hacked to know that it’s just a matter of time.
It’s easy to dismiss the original Nintendo Entertainment System as just, well, an entertainment system. But in reality the 6502 based console wasn’t so far removed from early home computers like the Apple II and Commodore 64, and Nintendo even briefly flirted with creating software and accessories geared towards general purpose computing. Though in the end, Mario and friends obviously won out.
Still, we’re willing to bet that nobody at Nintendo ever imagined their plucky little game system would one day be used to track the course of a space station in low Earth orbit. But that’s precisely what [Vi Grey] has done with his latest project, which is part of his overall effort to demonstrate the unexpected capabilities of the iconic NES. While you’ll need a bit of extra hardware to run the program on a real console, there’s no fundamental trickery that would have kept some developer from doing this in 1985 if they’d wanted to.
If you want to see your own 8-bit view of the International Space Station, the easiest way is with an emulator. In that case, [Vi] explains how you can load up his Lua script in Mesen or FCEUX to provide the ROM with the necessary tracking data from the Internet.
To run it on a real NES you’ll not only need some type of flash cart to get the ROM loaded, but also a TAStm32 board that’s used for tool-assisted speedruns. This allows the computer to essentially “type” the orbital data into the NES by emulating rapid controller button presses. That might seem like a tall order, but it’s important to note that neither device requires you to modify the original console; the code itself runs on a 100% stock NES.
Lego is an entry into the world of engineering for many a youngster, and an enjoyable pursuit for many more. These days, high quality kits are available to make everything from the Tower of Pisa to Nintendo’s venerated NES console. [TronicsFix] picked up the latter set, and decided it needed to be fully functional.
Consisting of 2646 pieces, the official Lego NES is a faithful recreation of the original, albeit at approximately 80% of the size. After building the kit to spec, [TronicsFix] noted that there was no way a cartridge would fit in the slot.
Given this failing, a ground-up rebuild was in order. Starting with the internals from an original NES, [TronicsFix] set about building an appropriately sized base and working from there. Supports were built to mount the various components, with the controller ports being particularly well done, and the video output and power switches being a little more tricky. The many cosmetic pieces from the official kit came in handy here, giving the final product the aesthetic touches it needed to fit the bill.
The final result is an authentic, functional NES in a LEGO case. [TronicsFix] demonstrates as such, showing the console playing Super Mario 3. Nintendo consoles remain a favorite amongst modders; some going so far as to build fire-breathing creations. Video after the break.
[Greg] loves hacking his bow ties. Back in high school, he added some bright RGB LEDs to the bow tie he wore to prom and even won the male best-dressed award. Recently he decided to try another bow tie hack, this time giving his tie some retro arcade game feels.
He decided to use an ATtiny85 and to experiment doing some more lower-level programming to refresh his skills. He wrote all his libraries from scratch which really helped him learn a lot about the ATtiny in the process. This also helped him make sure his code was as efficient as possible since he had quite a bit of memory constraints using the ATtiny85 (only 512 bytes of RAM).
He designed the body of the bow tie with wood. He fit all the electronics inside the body while allowing the ATtiny to protrude out of the body giving his bow tie some wanted hacker aesthetic. Of course, he needed to access the toggle switch to play the game, so he made a slot for that as well.
Watching the advancement of technology is interesting enough by looking at improved specifications for various components as the years go by. But clock speeds, memory size, and power consumption are all fairly intangible compared to actual implementation of modern technology when compared to days of yore. For example, this $40 microcontroller can do what a video game console was able to do in the 80s for a tenth of the (inflation adjusted) price.
The NESDUE is an emulator for NES games which runs completely on an Arduino Due. The Arduino does have some limitations that have to be worked around to get the Nintendo to work, though. For one, it needs to be overclocked to be playable and it also needs a workaround to get past the memory limit of 96 kB of RAM. From there, a small screen is wired up along with a controller (from a Super Nintendo) and the gaming can begin.
This is an impressive feat for an Arduino platform to accomplish, especially with the amount of memory tweaking that has to happen. This might be the most advanced gaming system available that runs everything on an Arduino, right up there with the Arduinocade which can provide an arcade-like experience straight from the Arduino as well.