When [Michael Gardi] finished his scaled down DEC VT100 replica a few months ago, he made it very clear that the project was only meant to look like a vintage terminal on the outside. A peek into the case revealed nothing more exotic than a Raspberry Pi running its default operating system, making the terminal just as well suited to emulating classic games as it was dialing into a remote system. But as any hacker knows, some projects end up developing a life of their own.
It started simply enough. The addition of an RS-232 Serial HAT to the Raspberry Pi meant that the 3D printed VT100 could actually operate as a serial terminal using software such as minicom. Then [Lars Brinkhoff] got involved. He loved the look of the printed VT100, and thought it deserved better than a generic terminal emulator. So he went ahead and started developing a custom terminal simulator for it to run.
The idea here is that an an 8080 emulator actually runs an original VT100 firmware ROM, warts and all. It makes all the beeps and chirps you’d expect from the real hardware, and there’s even some OpenGL trickery used to mimic an old CRT display, complete with scan lines and a soft glow around characters.
Naturally the visual effects consume a fair amount of processing power, so [Lars] cautions that anything lower than the Pi 4 will likely experience slowdowns. Of course, nothing is stopping you from running the simulator on your desktop machine if you’re looking for that classic terminal experience.
Did this gorgeous recreation of the VT100 need to have a true serial interface or a simulator that recreates the unique menu system of the original? Not at all. Even without those additions, it blew us away when [Michael] first sent it in. But are we happy that these guys have put in the time to perfect this already stellar project? We think you already know the answer.
[Ben Smith] had previously implemented a GameBoy Color emulator but decided to make a new emulator that to play just one game called pokegb. The game is, of course, the popular blue edition of Pokemon. While this emulator could play other GameBoy games, the way it was implemented was to support only the opcodes and features that Pokemon Blue used. What’s perhaps even more amazing is that this full emulator is just 582 lines of C++ (using SDL for graphics and input). There is also an obfuscated version that comes in at just 68 lines and in the shape of three Pokeballs. All the code for pokegb can be found on GitHub.
[Ben] goes through a detailed listing of each opcode of the processor, memory, the graphics unit (PPU), and how it interacts with a modern operating system. We love the idea of implementing each opcode one by one and gradually seeing the emulator make it farther and farther through the ROM. The only feature that’s noticeably absent is sound, which would require a significant amount of code to emulate properly.
What to do when developing an RP2040 emulator but validating the emulator instruction by instruction is a slow and tedious process? Why, automatically compare it against the real hardware if you’re [Uri Shaked], of course. This is the purpose of gdbdiff. This project uses the GDB remote serial protocol via OpenOCD to run test firmware step by step.
During a livestream (video linked via the above link), this allowed [Uri] to find a number of instruction bugs in the emulator this way. These issues involved issues such as incorrect flags in the APSR register and an edge case in the LSRS register. This gdbdiff livestream is part of an entire series of live-coding sessions during which [Uri] writes an RP2040 emulator from scratch.
We applaud [Uri] for creative thinking here, and assume that this way the livestream was probably more entertaining to watch than when doing instruction-level debugging purely by hand :)
The first Playstation is quickly approaching three decades since its release, and while this might make some of us who were around for that event feel a little aged, the hardware inside these machines isn’t getting any younger either. Plenty of people are replacing the optical drive in the original hardware with an optical drive emulator as they begin to fail, and with that comes the option for several other modifications to the hardware like this in-game reset mod.
In-game reset is a function that allows a console to be reset via a controller button combination rather than pressing the console’s reset button directly. Especially for devices modified with either the XStation or PSIO drive emulators, this can be a handy feature to have as this method can more easily take the user back to the emulator menu as well as physically reset the device. The modification is a small PCB which attaches to the controller port and, unlike previous versions, only requires a single pin to be soldered to the Playstation’s control board.
If you’re someone who enjoys playing games on original hardware rather than a patchwork of emulators, this could be an excellent addition to your PS1 that still allows most of the original feel and experience the PS1 offered. The drive emulator can greatly expand the range of the hardware as well, much like this NES cartridge which similarly expands the capabilities of that much older system.
NeoPixels and other addressable LED strings are a technology that have made vibrant, glowing LED projects accessible to all. Of course, it’s nice to be able to simulate your new glowy project in software before you actually set up your LED strings in practice. [Randy Elwin]’s NeoPill simulator can help with that!
The NeoPill consists of an STM32F103 development board, into which one simply hooks up a NeoPixel data line. The microcontroller then decodes the data using a combination of its onboard timers and SPI hardware. This data is then passed to a PC over the onboard USB serial connection, where it’s decoded by a custom Python app. The app takes the data and displays the pixels on screen, so you can verify they operate as expected before you hook up a single real LED.
It’s a great tool, one that costs very little and yet does the job well. It can even be used with LEDs in circuit to verify if problems are related to the data output or the hardware itself. [Randy] demonstrates the software working with strings of up to 256 LEDs at once; we’d love to see how far it can be pushed before breaking. Code is available on Github for those keen to get their own NeoPill operational.
It’s not the only NeoPixel simulator out there, but it is the first one we’ve seen that can be used to debug actual signals from real hardware, and that’s an incredibly useful thing to have in your toolbelt. Video after the break.
We love seeing Linux run on basically anything with a processor. It’s a classic hack at this point. Nintendo has traditionally kept its consoles fairly locked down, though, even in the face of some truly impressive efforts; so it’s always a treat to see the open-source OS run relatively smoothly on the console. This Ubuntu install is based on NVIDIA’s Linux for Tegra (L4T) package, which affords some performance gains over Android installations on the same hardware. As we’ve seen with those Android hacks, however, this software mod also makes use of the Switchroot project and, of course, it only works with specific, unpatched hardware. But if you’ve won the serial number lottery and you’re willing to risk your beloved console, [LOE TECH] also has a video detailing the process he used to get Ubuntu up and running.
Check out the video below for a medley of Gamecube game test runs. Some appear to run great, and others, well… not so much. But we truly appreciate how he doesn’t edit out the games that stutter and lag. This way, we get a more realistic, more comprehensive overview of unofficial emulation performance on the Switch. Plus, it’s almost fun to watch racing games go by in slow motion; almost, that is, if we couldn’t empathize with how frustrating it must have been to play.
Sometimes we are vaguely aware of the inexorable march of technological progress. Other times it thrums steadily under the surface while we go about our lives. And sometimes, just sometimes, it smacks us right in the face.
Honestly, sometimes we just have to sit back and be amazed at the kind of computer power that can be packed into such tiny packages. The Pi Zero isn’t the smallest or the most powerful of options, but it is far more capable than the computer it is emulating here. So whether they’re hiding inside outdated storage formats or powering a stock-looking sleeper PSP, we just can’t help but be impressed.