Little Emulators Do 8 Bits At A Time

Have you ever wondered how many, for example, Commodore 64s it would take to equal the processing power in your current PC? This site might not really answer that, but it does show that your machine can easily duplicate all the old 8-bit computers from Commodore, Sinclair, Acorn, and others. By our count, there are 86 emulators on the page, although many of those are a host machine running a particular application such as Forth or Digger.

If you are in the US, you might not recognize all the references to the KC85, this was an East German computer based on a Z80 clone. Very few of these were apparently available for personal purchase, but they were very popular in schools and industry. These were made by Robotron, and there are some other Robotron models on the page, too.

Continue reading “Little Emulators Do 8 Bits At A Time”

SNES Controller Has a Pi Zero in the Trunk

We’re no stranger to seeing people jam a Raspberry Pi into an old gaming console to turn it into a RetroPie system. Frankly, at this point it seems like we’ve got to be getting close to seeing all possible permutations of the concept. According to the bingo card we keep here at Hackaday HQ we’re just waiting for somebody to put one into an Apple Bandai Pippin, creating the PiPi and achieving singularity. Get it done, people.

That being said, we’re still occasionally surprised by what people come up with. The Super GamePad Zero by [Zach Levine] is a fairly compelling take on the Pi-in-the-controller theme that we haven’t seen before, adding a 3D printed “caboose” to the stock Super Nintendo controller. The printed case extension, designed by Thingiverse user [Sigismond0], makes the controller about twice as thick, but that’s still not bad compared to modern game controllers.

In his guide [Zach] walks the reader through installing the Raspberry Pi running RetroPie in the expanded case. This includes putting a power LED where the controller’s cable used to go, and connecting the stock controller PCB to the Pi’s GPIO pins. This is an especially nice touch that not only saves you time and effort, but retains the original feel of the D-Pad and buttons. Just make sure the buttons on your donor controller aren’t shot before you start the build.

Adding a little more breathing room for your wiring isn’t the only reason to use the 3D printed bottom, either. It implements a very clever “shelf” design that exposes the Pi’s USB and HDMI ports on the rear of the controller. This allows you to easily connect power and video to the device without spoiling the overall look. With integrated labels for the connectors and a suitably matching filament color, the overall effect really does look like it could be a commercial product.

The SNES controller is an especially popular target for hacks and modifications. From commercially available kits to the wide array of homebrew builds, it there’s plenty of people who want to keep this legendary piece of gaming gear going strong into the 21st century

Continue reading “SNES Controller Has a Pi Zero in the Trunk”

A New Take On Building A Portable N64

When home consoles go mobile, whether in the form of modded original hardware or emulation, they usually take a pretty standard shape. A screen in the middle, with buttons either on the sides or below it. Basically the same layout Nintendo popularized with born-handheld systems such as the Game & Watch series and original Game Boy. Like the saying goes, if it ain’t broke…

But [Le Nerdarto] had a different idea. He came across a broken N64 and wanted to turn it into a portable console, but not necessarily a handheld one. Noticing the cartridge was about the perfect size to contain a small LCD and in an ideal position, he set out to make what is arguably the most literal interpretation of “portable N64” we’ve ever seen. It might not be the most practical iteration of this concept, but it definitely gets extra points for style.

After he stripped the N64 of its original hardware, he installed a Raspberry Pi 3 and an RC battery eliminator circuit (BEC) to get 5V out of the internal 6200 mAh 7.4V battery. [Le Nerdarto] says this provides power for the Pi, the LCD, and the various lighting systems for up to 10 hours. He’s also added USB ports in the front of the system for controllers, and an HDMI port on the back so he can still connect the system up to a TV when not on the move.

The 3.5 inch LCD in the cartridge is arguably the centerpiece of the build, and while it might be on the small side, we can’t deny it’s a clever idea. [Le Nerdarto] had the good sense to tilt the it back a few degrees to put the display at a more comfortable angle, but otherwise it looks stock since he was able to fit everything in without cutting the back of his donor cartridge out. For those who might be wondering, the “cartridge” can’t be removed, but we’ll admit that would have been a killer feature to add especially with the HDMI port on the back.

Of course, since it’s running emulators on a Raspberry Pi, this isn’t only a portable N64. The front mounted USB ports allow him to plug in all sorts of controllers and emulate classics from pretty much any console that’s older than the N64 itself. Ironically the Raspberry Pi 3 isn’t exactly an ideal choice for N64 emulation, but a good chunk of titles are at least playable.

If you’re more of a purist and want a true portable N64, we’ve covered plenty of those over the years to get you inspired.

Continue reading “A New Take On Building A Portable N64”

Metroid, Zelda, and Castelvania Auto-Mapped with NES Emulation & Heuristics

The NES was one of the flagship consoles of the glorious era that was the 1980s. Many of the most popular games on the platform involved some sort of adventure through scrolling screens — Metroid, Super Mario, and Zelda all used this common technique. For many games, keeping track of the map was a huge chore and meant mapping by hand on graph paper or using the screenshots published in Nintendo Power magazine. These day’s there’s a better way. [Daniel] set out to automatically map these huge two-dimensional worlds, developing software he calls WideNES to do it.

WideNES is an add-on to [Daniel]’s own NES emulator, ANESE. As part of the emulator, WideNES can easily read the various registers of the NES’s Picture Processing Unit, or PPU. The registers of the PPU are used to control the display of the background and sprite layers of NES graphics, and by monitoring these, it is possible to detect and map out the display of levels in various NES games.

It’s an interesting piece of software that relies on a thorough understanding of the NES display hardware, as well as the implementation of some neat tricks to deal with edge cases such as vertical scrolling in The Legend of Zelda or room changes in games like Castlevania — the use of perceptual hashing is particularly genius. There’s source and more available on the project page, including a GitHub link, if you’re interested in getting down to brass tacks.

We’re impressed by the manner in which WideNES is able to so neatly map out these games of yesteryear, and can’t wait to see where the project goes next. [Daniel] notes that it should be possible to integrate into more popular emulators without too much trouble. If that’s not enough, check out this reverse-emulation Nintendo hack.

[Thanks to Michael for the tip!]

Reverse-Emulating NES: Nintendception!

This is a stellar hack, folks. [Tom7] pulled off both full-motion video and running a Super Nintendo game on a regular old Nintendo with one very cute trick. And he gives his presentation of how he did it on the Nintendo itself — Nintendo Power(point)! The “whats” and the “hows” are explained over the course of two videos, also embedded below.

In the first, he shows it all off and gives you the overview. It’s as simple as this: Nintendo systems store 8×8 pixel blocks of graphics for games on their ROM cartridges, and the running program pulls these up and displays them. If you’re not constrained to have these blocks stored in ROM, say if you replaced the cartridge with a Raspberry Pi, you could send your own graphics to be displayed.

He demos a video of a familiar red-haired English soul-pop singer by doing just that — every time through the display loop, the “constant” image block is recalculated by the Raspberry Pi to make a video. And then he ups the ante, emulating an SNES on the Pi, playing a game that could never have been played on an NES in emulation, and sending the graphics block by block back to the Nintendo. Sweet!

The second video talks about how he pulled this off in detail. We especially liked his approach to an epic hack: spend at least a day trying to prove that it’s impossible, and when you’ve eliminated all of the serious show-stoppers, you know that there’s a good chance that it’ll work. Then, get to work. We also learned that there were capacitors that looked identical to resistors used in mid-80s Japan.

These are long videos, and the first one ends with some wild speculation about how a similar human-brain augmentation could take a similar approach, replacing our “memories” with computed data on the fly. (Wait, what?!? But a cool idea, nonetheless.) There’s also another theme running through the first video about humor, but frankly we didn’t get the joke. Or maybe we just don’t know what’s funny. Comments?

None of that matters. A SNES game was played in an NES by pushing modified graphics from a “ROM” cartridge in real-time. And that’s awesome!

If you want more Nintendo-in-Nintendo goodness, check out this NES ROM that’s also a zip file that contains its own source code. If you compile the source, you get the zip file, which if you unzip gives you the source to compile. Right?

Continue reading “Reverse-Emulating NES: Nintendception!”

Tiny Pinball Emulator is Hugely Impressive

We were wondering what [Circuitbeard] has been up to lately. Turns out he’s been building a mini pinball cabinet to add to his arcade of self-built games.

[Circuitbeard] was forced to break out of his Raspi comfort zone this time. We’re glad he did because this is one impressive build. Finding the pinball emulation community lacking for Linux, he turned to the LattePanda, a tiny Windows 10 SBC with a built-in Arduino Leonardo. This was really the perfect board because he needed to support multiple displays with a minimum of fuss. That Leonardo comes in handy for converting button presses to key presses inside the Visual Pinball emulator.

The 3mm laser-cut plywood cabinet was designed entirely in Inkscape and sized around the two screens: a genuine 7″ LattePanda display for the playfield, and a 5″ HDMI for the back glass. The main box holds the Lattepanda, two Pimoroni mini speakers, and a fan to keep the board cool.

There’s a lot to like about this little cabinet thanks to [Circuitbeard]’s fantastic attention to detail, which you can see for yourself in the slew of pictures. Look closer at the coin drop—it’s really an illuminated button with a custom graphic. If you want to have a go at emulating this emulator, all the code is up on GitHub. Tilt past the break to watch some modern pinball wizardry in action, and then check out his mini Outrun machine.

If pinball emulators don’t score any points with you, here’s one that’s all wood and rubber bands.

Continue reading “Tiny Pinball Emulator is Hugely Impressive”

Emulating OBD-II on the ESP32

It used to be that you could pop the hood and with nothing more than flat head screwdriver, some baling wire, and tongue held at the optimal angle, you could fix anything that ailed your car. But today, for better or for worse, the average automobile is a rolling computer that runs on gasoline and hope (if it even still has a gasoline engine, that is). DIY repairs and maintenance on a modern car is still possible of course, but the home mechanic’s toolbox has needed to evolve with the times. If you want to do anything more advanced than changing a tire, you’ll really want to have the gear to interface with the vehicle’s computer via the OBD-II port.

But for some, even that isn’t enough. [limiter121] recently wrote in to tell us of an interesting project which doesn’t read the OBD-II port in a vehicle, but actually emulates one. Like so many others this hack was born out of necessity, as a way to test an OBD-II project without having to sit out in the driveway all day. It allows you to create fictitious speed and engine RPM values for the OBD-II device or software under test to read, complete with a slick web interface to control the “car”.

So what makes it tick? Surprisingly little, actually. At the most basic level, an ESP32-WROOM-32 is connected up to a SN65HVD230 CAN transceiver chip. You’ll also need a 3.3V power supply, as well as a USB to serial adapter to do the initial programming on the ESP32. From there it’s just a matter of compiling and flashing the code [limiter121] has made available in the GitHub repo.

If you’re wondering if such products don’t already exist on the commercial market, they do. But like so many other niche projects, the price is a bit hard to swallow for the home hacker. Compared to the nearly $300 USD list price of commercial offerings such as the Freematics OBD-II Emulator, building one of these ESP32 based emulators should only cost you around $20.

Unless you’re developing an OBD-II reader, you probably don’t have much use for an OBD-II emulator. But this project could still be useful for anyone who wants to learn more about OBD from the comfort of their couch.