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.

Continue reading “Porting NES to the ESP32”

Hackaday Prize Entry: Making A Book Reader That Can Survive Kindergarten

[atomicthomas] is a dedicated teacher. One only has to look at the work he’s been putting into book readers for for the past sixteen years. With hardware like the Pi Zero threatening cheap computers just over the supply chain horizon, he’s begun to set his sights higher.

It all started with headphones and audio tapes. For all of us who got to use tapes and school headphones, we know the flaws with this plan. Nothing lasted the sticky and violent hands of children for long. When video recordings of book became available, DVD players suffered similar fates.

So, he began to rip his tapes and DVDs to his computer. However, the mouse has a warning about small parts on it for a reason, and didn’t last long either. So, he built a computer with arcade buttons and a Raspberry Pi. This one ran a heavily simplified version of a media manager and worked well. Even the special needs children had no problem navigating. A second exploration with an iMac and a Nintendo controller worked even better. Apparently all five year olds instinctively understand how to use a Nintendo controller.

Using the user test data, in his most recent iteration he’s working on a sub-twenty-dollar reading computer in a Nintendo controller. It’s not the most technically in depth hack we’ve ever covered, but it certainly ranks up there for harsh environments.

NES Zapper: Improved with Lasers

The Zapper gun from the original Nintendo was ahead of its time. That time, though, was around 30 years ago and the iconic controller won’t even work with most modern televisions. With a little tinkering they can be made to work, but if you want to go in a different direction they can be made to do all kinds of other things, too. For example, this one can shoot green lasers and be used as a mouse.

The laser pointer was installed in the gun using a set of 3D printed rings to make sure the alignment was correct. It’s powered with a Sparkfun battery pack and control board which all fit into the gun’s case. The laser isn’t where the gun really shines, though. There’s a Wiimote shoved in there too that allows the gun to be used as a mouse pointer when using it with a projector. Be sure to check out the video below to see it in action. Nothing like mixing a little bit of modern Nintendo with a classic!

The Wiimote is a great platform for interacting with a computer. Since the Wii was released it’s been relatively easy to interface with them via Bluetooth. One of the classic Wiimote hacks is using an IR pen and projector to create a Smart Board of sorts for a fraction of the price. They’ve also been used with some pretty interesting VR displays.

Continue reading “NES Zapper: Improved with Lasers”

Nintendo Wields DMCA Ax On Fan Games

In a move that may sadden many but should surprise nobody, Nintendo of America has issued a DMCA takedown notice for 562 fan-created games created in homage to Nintendo originals and hosted on the popular Game Jolt site. Games affected include Mario, Zelda, and Pokémon based creations among others, and Game Jolt have responded, as they are required to, by locking the pages of the games in question. They state that they believe their users and developers should have the right to know what content has been removed from their site and why the action has been taken, so they have begun posting any notices they receive in their GitHub repository.

It is likely that this action won’t be appreciated within our community, however it’s important to note that while there are numerous examples of DMCA abuse this is not one of them. Nintendo are completely within their rights over the matter, if you use any of the copyrighted Nintendo properties outside the safe harbor of fair use then you will put yourself legitimately in their sights.

Something that is difficult to escape though is a feeling that DMCA takedowns on fan-created games are rather a low-hanging fruit. An easy way for corporate legal executives to be seen to be doing something by their bosses, though against a relatively defenseless target and without really tackling the problem.

To illustrate this, take a walk through a shopping mall, motorway service station, or street market almost anywhere in the world, and it’s very likely that you will pass significant numbers of counterfeit toys and games copying major franchises including those of Nintendo. A lot of these dollar store and vending machine specials are so hilariously awful that their fakeness must be obvious to even the most out-of-touch purchaser, but their ready availability speaks volumes. Unlike the fan-created games which are free, people are buying these toys in huge numbers with money that never reaches Nintendo, and also unlike the fan-created games there’s not a Nintendo lawyer in sight. Corporate end-of-year bonuses are delivered on the numbers of violations dealt with, and those come easiest by piling up the simple cases rather than chasing the difficult ones that are costing the company real sales.

We’ve covered many DMCA stories over the years, and some of them have been pretty shocking. Questions over its use in the Volkswagen emissions scandal, or keeping John Deere tractor servicing in the hands of dealers. Let’s hope that the EFF and Bunnie Huang’s efforts pay off and dismantle section 1201, one of the most nonsensical parts of the law.

Via Engadget. Dendy Junior unauthorised Nintendo Famicom clone image, By Nzeemin (Own work) [CC BY-SA 3.0], via Wikimedia Commons.

Tricking Duck Hunt to See A Modern LCD TV as CRT

A must-have peripheral for games consoles of the 1980s and 1990s was the light gun. A lens and photo cell mounted in a gun-like plastic case, the console could calculate where on the screen it was pointing when its trigger was pressed by flashing the screen white and sensing the timing at which the on-screen flying spot triggered the photo cell.

Unfortunately light gun games hail from the era of CRT TVs, they do not work with modern LCDs as my colleague [Will Sweatman] eloquently illustrated late last year. Whereas a CRT displayed the dot on its screen in perfect synchronization with the console output, an LCD captures a whole frame, processes it and displays it in one go. All timing is lost, and the console can no longer sense position.

[Charlie] has attacked this problem with some more recent technology and a bit of lateral thinking, and has successfully brought light gun games back to life. He senses where the gun is pointing using a Wiimote with its sensor bar on top of the TV through a Raspberry Pi, and feeds the positional information to an Arduino. He then takes the video signal from the console and strips out its sync pulses which also go to the Arduino. Knowing both position and timing, the Arduino can then flash a white LED stuck to the end of the light gun barrel at the exact moment that part of the CRT would have been lit up, and as far as the game is concerned it has received the input it is expecting.

He explains the timing problem and his solution in the video below the break. He then shows us gameplay on a wide variety of consoles from the era using the device. More information and his code can be found on his GitHub repository.

Continue reading “Tricking Duck Hunt to See A Modern LCD TV as CRT”

HoloLens NES Emulator For Augmented Retro Gaming

[Andrew Peterson] was looking for a way to indulge in his retro gaming passions in a more contemporary manner. His 3D NES emulator “N3S” for Windows brings Nintendo classics to the HoloLens, turning pixels into voxels, and Super Mario into an augmented reality gingerbread man.

To run NES games on the HoloLens, [Andrew’s] emulator uses the Nestopia libretro core. Since AR glasses cry for an augmentation of the game itself, the N3S re-emulates the NES’ picture processing unit (PPU), allowing it to interpret a Nintendo game’s graphics in a 3D space. [Andrew] also put together a comprehensive explanation of how the original Nintendo PPU works, and how he re-implemented it for the HoloLens.

The current version of the N3S PPU emulator automatically generates voxels by simply extruding the original pattern data from the game’s ROM, but [Andrew] is thinking about more features. Users could sculpt their own 3D versions of the original graphic elements in an inbuilt editor, and model sets could then be made available in an online database. From there, players would just download 3D mods for their favorite games and play them on the HoloLens.

According to [Andrew], the emulator reaches the limits of what the current pre-production version of the HoloLens can render fluently, so the future of this project may depend on future hardware generations. Nevertheless, the HoloLens screen capture [Andrew] recorded makes us crave for more augmented retro gaming. Enjoy the video!

Hacklet 119 – Retrogaming Console Hacks

If you haven’t heard, retrogaming is a thing. 40-somethings are playing the games of their youth alongside millennials who are just discovering these classic games. There are even folks developing new homebrew games for consoles as far back as the Nintendo Entertainment System and the Atari 2600. This week on the Hacklet, we’re highlighting some of the best retrogaming console hardware hacks on Hackaday.io. Note that I did say hardware hacks. The focus this week is on games played on the original hardware. Don’t worry though, I’ll give emulated projects some love in a future Hacklet.

bankerWe start with [danjovic] and Atari 2600 Bankswitch Cartridge. The Atari 2600 is a legendary system. Millions of hackers’ first exposure to gaming came through its one button joystick. To make the unit affordable, Atari used a MOS Technology 6507 processor. Essentially it’s a 6502 in a 28-pin package. This meant several features got nerfed, most notably the address space. The 6507 can only address 8KB of RAM. In the Atari, only 4KB is available to the cartridge. Games got around the 4KB limit by bank switching – write a value to a magic address, and the bank switching logic would swap in a whole different section of cartridge ROM. There were several different bank switching schemes used over the years. [Danjovic] has created his own version of this bank switching logic, using only classic 74 series logic chips.


nesmodNext up is [ThunderSqueak] with Top Loader NES composite mod. Toward the end of the NES’s life, Nintendo introduced a cost-reduced version known as the “top loader”. This version had a top loading cartridge and no DRM lock-out chip. Unfortunately it also did away with composite AV ports. The only way to hook this NES to your TV was through the RF modulated output. [ThunderSqueak] and a number of other intrepid hackers have fixed this problem. All it takes is a 2N3906 PNP transistor and a few jellybean parts. The video and audio outputs are pulled from the motherboard before they enter the RF modulator. One nice feature is the clean connectors. [ThunderSqueak] used connectors from modular in-wall AV boxes for a setup that looks as good as it works.

segaNext we have [makestuff] with USB MegaDrive DevKit. Sega’s MegaDrive, or Genesis as it was known here in the USA, was a groundbreaking console. It used a Motorola 68000 16-bit CPU while most other systems were still running a Z80 or a 6502. People loved this console, and there are plenty who still want to develop software for it. Enter [makestuff] with his development kit. On a card with a $40 USD bill of materials, he’s managed to fit SDRAM, an FPGA, and a USB interface. This is everything you need to load and debug software on an unmodified console. The FPGA had enough logic left over that [makestuff] was able to implement a continuous bus cycle tracer over USB. Nice work!

robbbFinally, we have our own [Joshua Vasquez] with R.O.B. 2.0. The original NES came in a deluxe version with a special pack in – a robot. Robotic Operating Buddy, or ROB for short, would play games with the player. Unfortunately ROB was a bit of a flop. It only worked with two games, Gyromite and Stack-Up Ice Climber. Most ROB units eventually found their way to the recycling bin. [Joshua] is building a new version of the ROB, with modern controls. He’s already modeled and 3D printed ROB’s head. I can’t wait to see this project come together!

If you want to see more retrogaming goodness, check out our new retrogaming hardware hacks list. See a project I might have missed? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!