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” →

Arduino Engine Runs Many Games

A few years ago, [Smashcat] ported a ZX Spectrum game called Manic Miner to the Arduino Uno. The Arduino has less memory than the original Spectrum did, so doing all this on an 8-bit microcontroller was no easy lift. Since then, parts of this original port have been adapted to produce a game engine, allowing [Smashcat] to port several other games to the Arduino Uno as well.

The engine is able to host a 2D map with the ability to scroll, at a resolution of 256×256, as well as up to nine sprites at the same time. The graphics are locked to 50 FPS, but only with a real Arduino Uno that has a crystal oscillator. Some replica boards do not have a timekeeping chip accurate enough to replicate the video signal, which is done without a framebuffer. That signal, as well as two PWM audio channels, are still generated directly as well, with only a few resistors needed to hook everything up to a monitor and a controller, including the option of using an NES controller.

With all of that running on the Arduino and it hooked up to the daughterboard that provides the controller interface as well as the resistors for the video signal to function and a driver for a speaker, the system now runs the original Manic Miner as well as three other games: Scramble, Space Invaders, and Pac Man.

The engine and the rest of the code are available on a GitHub page as well, and there’s even a WebAssembly version available to run various pieces of the software without the specific hardware. The original ZX Spectrum was an interesting machine too that still inspires builds like this, despite it being well over 40 years old now.

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” →

You’ve All Seen A Hackintosh, But Have You Seen One On A Wii?

The Intel era of Apple Macs led to so-called “Hackintoshes”, more normal PCs running x86 MacOS X. Now Bryan Keller proves that a Hackintosh isn’t restricted to the x86 era, not by doing it with a modern ARM version, but by going back to PowerPC, and the Nintendo Wii.

The Wii can be thought of in hardware terms as not too far from a Mac G3 with a little less memory, having a PowerPC 750-family processor, a close relative as those in the first generation of MacOS X capable Macs. Since the roots of MacOS X are shared with its open-source equivalent Darwin, he reasons it should be possible to port just enough Darwin to the Wii to enable the closed-source OS X to run on top of it. He’s running OS X 10.0, the earliest version from 2001.

The write-up is a fascinating path through writing a bootloader and running a patched kernel that flashes the Wii LEDs, and then the process of making the Wii’s very different hardware from a Mac, accessible to the OS. It boots from an SD card and uses a framebuffer for display so perhaps it’s not as fast as you might hope, but he gets it working. Even for someone not versed in MacOS or the Wii, it’s a good write-up that makes its points accessible.

Something that makes us happy about this piece of work is its place in the greater picture, after all the Wii has found itself running classic MacOS too.

Graphing Calculator Gets USB-C Upgrade

Unlike Texas Instruments, whose graphing calculators have famously not made technological improvements in decades despite keeping the same price tag, HP has made a few more modern graphing calculators in the last few years. One of which is the HP Prime which boasts hardware from the mid-2010s including an ARM processor, a color screen, and rechargeable lithium battery. But despite this updated hardware it’s still using micro-USB for data and charging. [David] wanted to fix that by giving this calculator a USB-C port.

The first steps were disassembling the calculator case and removing the micro-USB port. The PCB is glued to the LCD screen which isn’t ideal, but he was able to work on it with everything attached. The parts are small enough to need a microscope, and with a hot air station he was quickly able to remove the USB port. His replacements from a generic online retailer were able to be soldered without much effort, but there was one major complication. The new USB-C ports didn’t account for the “On The Go” mode supported by micro-USB and were shorting a pin to ground which put the calculator into “host” mode instead of acting as a device. But using the microscope and cutting a trace on the PCB disabled this mode permanently and got the calculator working properly.

As far as modernizing calculators go, it seems like the HP Prime checks a lot of boxes, with the major downside that the LCD screen and more powerful processor means that the battery needs to be charged more often than the old TI calculators. Rather than carry a dongle around everywhere, [David] found this to be a much more efficient change to his trusty HP. If you’re still stuck using TI calculators, though, there are a few ways to modernize those as well like this build which adds a lithium battery or this one which ports a few Game Boy games to the platform.

A New Golden Age Of Browser Games

Arguably, the golden age of browser gaming occurred in the 00s mostly revolving around Adobe Flash. This was an era with high creativity and a low barrier of entry, and also decentralized from gatekeeping app stores. Sadly, these times have passed us by as the security concerns around Flash led to its discontinuation and most casual gamers have migrated to the app store for their fix. But that doesn’t stop some from continuing to bring gaming to the browser, even if those games were never intended for it in the first place like this browser port of Celeste.

Celeste is an indie platformer where the player climbs a mysterious mountain while confronting her inner struggles. Originally meant for consoles and PC, a group of friends including [velzie], [bomberfish], and [Toshit] aka [r58Playz] took this as a challenge especially after seeing someone else’s half finished web port of this game. Most of the build revolves around WebAssembly (wasm) and around “cursed” .NET runtime hacks which also allow the port to run the community-made Everest mod loader. It uses a multithreaded and JIT compiling version of mono-wasm backported from .NET 10 to .NET 9 to maximize performance. The team actually first started by porting Terraria to the browser, and then moved on to this Celeste port from there.

The port of Celeste can be played here, and their port of Terraria is also available, although may not support a ton of Hackaday traffic so some patience is advised. There are also GitHub repositories for Celeste and Terraria as well.  With impressive ports of relatively modern games moving into the browser, perhaps we’re entering a new golden age of browser gaming; we’ve also seen things like Minecraft implemented in only HTML and CSS lately as well.

Factorio Running On Mobile

As a video game, DOOM has achieved cult status not just for its legendary gameplay and milestone developments but also because it’s the piece of software that’s likely been ported to the most number of platforms. Almost everything with a processor can run the 1993 shooter, but as it ages, this becomes less of a challenge. More modern games are starting to move into this position, and Factorio may be taking a leading position. [Point Substantial] has gotten this game to run on a mobile phone.

The minimum system requirements for Factorio are enough to make this a challenge, especially compared to vintage title like DOOM. For Linux systems a dual-core processor and 8 GB of memory are needed, as well as something with at least 1 GB of VRAM. [Point_Substantial]’s Xiaomi Mi 9T almost meets these official minimum requirements, with the notable exception of RAM. This problem was solved by adding 6 GB of swap space to make up for the difference.

The real key to getting this running is that this phone doesn’t run Android, it runs the Linux-only postmarketOS. Since it’s a full-fledged Linux distribution rather than Android, it can run any software any other Linux computer can, including Steam. And it can also easily handle inputs for periphreals including a Switch Pro controller, which is important because this game doesn’t have touch inputs programmed natively.

The other tool that [Point_Substantial] needed was box86/box64, a translation layer to run x86 code on ARM. But with all the pieces in place it’s quite possible to run plenty of games semi-natively on a system like this. In fact, we’d argue it’s a shame that more phones don’t have support for Linux distributions like postmarketOS based on the latest news about Android.

Thanks to [Keith] for the tip!