Cheap FPGA Board Becomes Retro-Style Computer

The Tang Nano 9K is a cheap FPGA development board that can usually be acquired for around $15 or so. [ThePartsBin] has been experimenting with this hardware and figured out how to set it up as a retro-style computer.

The board is based around the Gowin GW1NR-9C FPGA which only has 8,640 LUTs. However, that’s enough to spin up a 36 MHz RISC-V CPU, and there’s 8 MB of RAM on tap, along with HDMI, 48 kHz stereo audio output, two USB ports, and an SD card reader. Combine all that together, and you’ve got a machine capable of playing a whole raft of classic 1990s games.

[ThePartsBin] ported Doom, Tyrian, System Shock and Ultima VII, all of which run at a playable speed at a tasty 720 x 480 resolution. The writeup does a great job of explaining what it took to actually implement these classic games on the platform. Tons of compromises were made along the way, but that’s the engineering challenge, isn’t it?

If you’re looking to play retro games, this is not really the fastest or cheapest way to do it. You could probably just emulate them on the machine you’re using to read this very website. If you’re trying to get to grips with a new FPGA board for the first time, though, projects like this can be a very useful learning experience indeed.

2026 Retrocomputing Challenge: Custom RISC-V Processor For Retro System

Although once little more than an academic endeavor, the RISC-V architecture is slowly supplanting applications that would have normally gone to ARM. Even a few microcontrollers have chips running this open-source instruction set now, and we expect it to grow in the future since it doesn’t require the licensing of an ARM or x86 chip. [M_Jagadeesh97] is getting ahead of the curve with this retro gaming system built on a custom-designed RISC-V system.

Most of us, presumably including [M_Jagadeesh97], don’t have access to chip fabrication tools, but what we can get is any of various FPGAs. This RISC-V CPU is built on a Terasic DE0-Nano board with 32 MB of RAM available to it, and boots to a launcher with 32 games available. There are a few limitations with this low-power system which was largely solved by limiting the display to 64×32, which lets it maintain the same aspect ratio as the original DOOM as well as the same aspect ratio for many of the older games, while still maintaining 45 FPS.

The project writeup goes deep into the design of a system like this, from the bare metal, the CPU design, the timing of the video signals, and how to implement a Wolfenstein-like raycaster. After adding a small display it looks to be fairly portable as well and is an excellent demonstration of how powerful inexpensive boards like this  FPGA can be with the proper amount of effort.

Hacking The Modern Tamagotchi With UART

Although not technically the first virtual pet, the Tamagotchi handhelds certainly popularized the idea and made it a worldwide phenomenon. In the late 90s it was hard to go out in public and not see them dangling from backpacks and belt loops. They turned out to be more than a passing fad, too. There have been Tamagotchis in various forms since then, and one of the latest, the Tamagotchi Paradise, is uniquely hackable thanks to this custom UART interface.

The build starts with a simple and inexpensive CH340G UART adapter with a built-in USB interface. A custom 3D printed enclosure is used to house the adapter and also help to expose the interface to the Tamagotchi. This is done by wiring three pins to nickel strips, which are threaded through slits in the case and looped back around to create a pogo-style adapter for the Tamagotchi’s custom dock. Normally this would be used to link to other Tamagotchis, but in this case the USB-to-UART adapter mimics it, allowing for all kinds of in-game shenanigans. The project’s creator [Squalius] shows it off by connecting it directly to a browser tool in Google Chrome.

Not only that, but this can also be used to modify the software running on the handheld entirely, with the video showing demos playing not only Super Mario but also DOOM (of course). This isn’t too surprising given that these games are built with modern 32-bit ARM microcontrollers. For the 90s purists, though, it probably won’t surprise anyone to know that these devices have been the subject of various hacks almost since they came out.

Continue reading “Hacking The Modern Tamagotchi With UART” →

DOOM Ported To A $30 Clamp Meter

DOOM. Boil it, mash it, stick it in a stew, it’s the game that runs on anything and everything. Now, the classic shooter is running on a rather unlikely target—a cheap clamp meter of very limited resources, thanks to the work of [Artur Bieniek].

The clamp meter in question is the FNIRSI DMC-100, which can be had for the low price of just $30 or so if you know where to look. It’s a far cry from the many thousands of dollars you’d pay for a heavy old 486-based machine back in 1993. [Artur] got the doomgeneric engine running on the Artery AT32F415 chip that runs the clamp meter.

The chip is pretty capable, with its 150 MHz clock speed, though the 32 KB of RAM posed rather a big limitation to the project. It may be one of the lowest RAM DOOM ports out there. Even with this limit, [Artur] was able to get Episode 1 of Freedoom: Phase 1 loaded on to the thing, including E1M1 to E1M9 along with the title screen, intermissions, the finale, the menu, and four save slots. Color graphics are displayed on the meter’s 320 x 240 screen, and there are even sound effects on the built-in buzzer. Controls are mapped to the rather curious choice of a DJI RC-N1 drone controller.

We’ve seen DOOM running on everything from desk phones to completely custom CPUs. These days you have to try pretty hard to find something it hasn’t already been ported to.

Continue reading “DOOM Ported To A $30 Clamp Meter” →

Clotty The Custom Period Tracker Can, Of Course, Run DOOM

[kati]’s Clotty might run DOOM and game-ify the menstrual tracking process with a playful Tamagotchi-like aspect, but don’t let that distract you. It is, at its heart, a personal menstrual cycle tracking device that is defined as much by what it does do as what it doesn’t.

Clotty brings a Tamagotchi-like playfulness to the table.

What doesn’t it do? Well, it will never quietly upload one’s menstrual tracking data to a remote server. Nor will it harvest, mishandle, disclose, or sell that same data. Shamefully, that alone sets it far apart from the wide range of period tracking services and apps out there. Also setting it apart is its cheerful lack of discretion. As [kati] puts it, she wanted Clotty’s design to scream “HELLO I AM A PERIOD TRACKING DEVICE” and at this she absolutely succeeded.

Clotty uses an RP2040, color LCD display, and a small variety of sensors built into a palm-sized, uterus-shaped PCB complete with touchpad ovaries. Right now it’s still in its early stages, and basically at the point that everything works hardware-wise and the essentials are there for software, but it’s still in active development. Keep an eye on Clotty’s GitHub repository for updates as features get fleshed out.

Of course, as [kati] observes, the core validity of a device can be defined by whether it can run DOOM, which of course Clotty can. You can find [kati]’s fork of RP2040-DOOM here.

[kati] has a knack for designing effective hardware that gamifies functions and incorporates a playfulness to the design that’s a delight to see. Take a moment to check out her Slightly Sentient D20 which is another excellent example of the kind of work she does.

Running DOOM (Sort Of) On A Sonoff Smart Switch

It’s often said in this community that DOOM can be made to run on anything, and as time goes on, that’s becoming more and more accurate. We’re at the point now that every “normal” device seems to have some version of the iconic 1993 shooter, so now there’s nothing left but to start working on the more oddball targets.

As a perfect example, [piuppi] recently wrote in to share their efforts to get DOOM — or at least something that looks like it — running on the Sonoff Basic R2 smart switch. We say something that looks like it because the game you’re seeing in the video below isn’t actually DOOM. In fact, it’s not even really a full game. It’s essentially a tech demo that’s capable of rendering graphical data pulled from the game, but only within the confines of simplistic map. Still, not bad for something designed to turn lamps on and off.

The GitHub repo includes excellent documentation should you want to rip and tear on your own Sonoff device. As you might expect the process is a bit involved, and does require you to provide your own copy of DOOM for the script to extract the necessary data from. After it’s setup, you can hit the switch from any browser on the local network and take out your frustrations on the state of modern home automation on some imps. The best part is, even after the game is installed and running on the switch, the device still actually works as a switch.

But don’t worry. Even in the unlikely event that we run out of devices that can be hacked to run DOOM, there’s still a whole world of gadgets out there that need their own port of Duke Nukem 3D.

Continue reading “Running DOOM (Sort Of) On A Sonoff Smart Switch” →

Abusing SQL To Play DOOM

Most laypeople who encounter SQL think of it purely as a tool for managing large datasets. While that is certainly what it was designed for, SQL is still a programming language at its core. It includes many of the features found in general-purpose languages like C or Python, and although it wasn’t built for general-purpose work, it can handle a surprising range of tasks that programmers might not expect to use it for. To demonstrate its capabilities, and perhaps to show off their skills with SQL, a group at CedarDB ported the original DOOM to this language.

The project stores the WAD data (essentially everything except the engine) in a series of tables, which was fairly straightforward compared to the rest of the project. Where it gets more complicated is managing the timing that ties the game to 35 fps, and of course rendering the images. Their rendering process takes up 1300 lines of SQL across 89 common table expressions (CTEs) which is certainly advanced for this language. The rest of the project is another 4000 lines of SQL, with a bit of Python to handle the keyboard inputs, timing, and display of the generated bitmap.

Perhaps counterintuitively, DOOM might be the perfect game to run on SQL. It was built in an era before dedicated graphics cards and isn’t truly 3D, meaning that the programmers had to do a lot of tricks to get it to look as if it is 3D. This results in a lot of data transformations uniquely suited to SQL. It’s almost like DOOM‘s original renderer was built by someone with extensive SQL knowledge in the first place. For those looking to try this out, the source code for the project is available on a GitHub page, and for some other unique implementations of DOOM there’s also this version built in regular expressions and this one in Microsoft Word.