The many polygons of Solid Snake on an ESP-driven LCD

Metal Gear Solid Moves From PlayStation To ESP32

If you haven’t heard of Metal Gear, you probably haven’t played video games these last few decades. The original Metal Gear dates back to 1987 and launched on the MSX, but the real rise to fame probably started with Metal Gear Solid on the original PlayStation in 1998. What needed a hefty console in 1998 can comfortably fit on a microcontroller in 2026, though, as [David Montero Crespo] demonstrates with his port of MGS to the ESP32-S3.

[David] is — as we always are — standing on the shoulders of giants with this hack. Most specifically, the project relies entirely on the [FoxdieTeam] MGS Reversing decompliation project. Of course what one team decompiles, another can recompile, and in this case [David] chose to recompile the game for Expressif’s exceptional ESP32. It wasn’t quite as easy as just forking the repo and compiling with the ESP32 as a target though, as the blog post explains.

We won’t spoil it, but [David] did have to make some changes to account for the different quirks the MIPS processor in the PlayStation has compared to the Xtensa cores on the microcontroller. Then to make it playable, he put the ESP32-S3 module onto some perfboard with an analog stick from a drone controller, an ILI9341 LCD panel, and a resistor ladder to run the buttons for a barebones handheld.

Fans of MSG and its many sequels may appreciate this replica of the codex communicator. Fans of the ESP32 may remember the Wipeout clone we featured earlier, which already proved the popular microcontroller could handle PlayStation-level graphics. If you were hoping for actual solid metal gears, you can cut your own at home.

a beauty shot of the 3D-printed version

This PICO-8 Handheld Is No Fantasy

The PICO-8 is what is known as a ‘fantasy console’– you can program it, and there are oodles of games, but it’s not actually the 8-bit console it pretends to be. It’s a virtual machine, one that can run on top of any modern OS. When [UncleStem] got into PICO-8, he decided that he liked the PICO-8’s portability, he wanted a different kind of portability– so he took the ‘fantasy’ out of ‘fantasy console’ with his GameBoy-esqe handheld build, the build/dev video of which is embedded below.

At its core, it’s a Raspberry Pi Zero2W. That’s rather overkill for an 8-bit virtual machine, but it’s what he had on hand, and it makes for an easy build. The real hero of the build is the 720 by 720 pixel IPS display that matches the PICO-8’s square aspect ratio and takes up most of the real estate on the handheld. Even better, it has HDMI in and sound support, so with some buttons and a battery the hardware is all there after [UncleStem] designs a handsome 3D printed case, and also has a go milling it out of aluminum before giving up and having a pro do it.

Since it’s so easy to do these days, everything lives on a custom PCB from his sponsor that gives the handheld good mechanical stability. He’s also using the full-colour silkscreen option to make a very pretty PCB. If that part of the project appeals, we’ve covered guides to PCB art before. He’s shared the PCB and everything else he can on a google drive, though note that the fantasy console itself is not open source, and would need purchased to finish the project.

Oddly enough, this is not the first handheld we’ve seen based on the PICO-8. That would be this project that uses a single-button camcorder form-factor. As unique as that is, this project has the benefit of working with the whole library of PICO-8 games.

Continue reading “This PICO-8 Handheld Is No Fantasy” →

A grid of screenshots of various applications on the CYD PDA

Cheap Yellow Display Dreams Of PDA

Everybody loves the Cheap Yellow Display (CYD) ESP32 dev boards, so why not treat yours to a little PDA? That’s right: turn it into a Portable Digital Assistant and relive the glory days of Palm with this project from [sau412].

For those readers who are too young to remember, a PDA was basically a phoneless and cameraless smart-phone, and devices running Palm Corporation’s Palm OS ruled the roost for most of the 90s and early 2000s. [sau412] hasn’t written an emulator or port of Palm OS; rather he’s created his own firmware for the ESP32-based CYD that is inspired by the PDAs of yore, and has many features you’d have expected back in the day. That includes a Gopher browser, to let you check out the undying alternative to the World Wide Web. There isn’t a general-purpose web browser, but there are RSS and Wikipedia readers, and what else do you need? At least you won’t end up doomscrolling.

There are also a passel of games and a BASIC interpreter, and the usual practical things like a calendar, calculator and contact list. Everything from ebook readers to translators, all of it by [sau421]. If you’ve got a CYD kicking around, you could do worse than give it a little PDA. Using the web-based flasher, we had it up and running in five minutes or so, but without an SD card we couldn’t test all the apps.

This is hardly the first ESP32 PDA that we’ve featured, but leaning into the CYD means it’s the simplest project to replicate.  If you’re jonesing for the original Palm OS experience on more modern hardware, Pumpkin OS can get you going on x86 or ARM.

FPGA For All — CERN Releases “colibri” VHDL Library

Since you’re reading Hackaday, we’re pretty sure CERN needs no introduction, so we’ll get right to it– they’re giving back again, this time with a VHDL library called “colibri” containing over 100 components, functions, and procedures to help jumpstart your next FPGA project.

Like a lot of what CERN gives away under its CERN Open Hardware Licence, this library and the functions in it were developed in house to make CERN run better– specifically to streamline the development of gateway devices. As you might imagine, with the prodigious amount of data CERN’s various experiments spit out, FPGAs have become a key part of many of them. The best part is that because the fine folks at CERN don’t want to get locked in, everything here is vendor-independent and has been tested on multiple platforms. Speaking of tested, you get self-checking testbenches in there to make sure everything’s working, and there’s even formal verification, at least for some things. We’ve seen formal verification in software compilers, but its not common in the FPGA world. The whole thing is on GitLab if you want to take a look.

While CERN’s library might not have much to help you make a ternary processor or bus controller with everyone’s favourite programmable silicon, much like software libraries you can save some time at least not implementing say, SPI or i2c– both of which are in colibri, along with a whole lot more.

Thanks to [Alberto Perro] for the tip!

Modern USB Controllers On Win98 (and Up)

[Yeo Kheng Meng] has a problem: he likes Windows 98, but he also likes his 2020 ThinkPad, which only has an xHCI USB controller– you know, the kind needed for USB 3.0, something that post-dates Windows 98 by a full decade. Drivers? Finding none existed, he decided to do it himself, or at least guide the process of using  LLMs to produce drivers for Windows 98 and up.

Some of you just stopped reading, but can you blame him for making a demonic pact for this project? Driver development isn’t really a one-man show, especially as a part-time hobby project you’re not sure anyone else will ever use. If you do want to use it, you can find the code on GitHub.

It does work, though, he admits it might be buggy. Unlike purely vibe-coded projects, [Meng] intends to address bugs put forth in the repo, at least. If you want to know how he did it, check out the link to [Meng]’s blog– which is human-authored, we can tell– and the videos embedded therein. He demonstrates it working on a 2020 ThinkPad, which should be usable even with Windows 11, and another model from 2016– neither of which have any old-style USB ports. Older laptops might, while any desktop can just use a PCI card with a USB2.0 controller– or you can do like [Meng] did prior to this project, and use the PCI card via adapters. 

[Yeo Kheng Meng] evidently gets as much of a kick out of joining old and new as we do, like running DOS a modern ThinkPad X13, and running Slack on Windows 3.11 For Workgroups on a slightly-less-modern but still 21st Century Thinkpad T400.

How Pixar Stopped Worrying And Learned To Love Linux

If you weren’t already aware, it will probably come as no surprise to hear that the pioneering computer-animation studio Pixar built its early workflow on Silicon Graphics SGI workstations. These were beefy Unix machines that, as the name implied, were developed for graphical work. When the age of the RISC workstation came to a close, many Unix users were pushed onto Windows NT — but not at Pixar. At Pixar, they learned to love the penguin.

It comes down to hardware rather than software. You know the story: PCs got faster and cheaper with different vendors competing for a giant market, while the world of RISC workstations couldn’t keep its lead. Pixar would have been happy staying on Unix workstations, even SGIs if that had been a practical option — but with every project increasing the load on the render farms, it wasn’t. Yet Pixar’s entire workflow was predicated on a Unix environment. They had written a couple million lines of code for their internal use, and really didn’t want to port it over to Windows, even after a mistaken rm command nearly cost the world Toy Story 2.

The path of least resistance would be to port to something more similar to IRIX’s Unix environment, something POSIX compliant. That path led Linux, and by 2001, the port was done. By 2003, a new render farm using Xeon processors brought the whole studio to Linux and x86, which has since become an industry standard.

We’re left with only two questions: one, why didn’t more industries — like the CAD/CAM world — that were also reliant on Unix Workstations follow Pixar and Hollywood onto Linux, and two, why did Pixar go with Linux instead of some variety of BSD? [Crierlon] doesn’t address either question, but we’re betting some of you might have an idea. Let us know in the comments if you have the inside scoop; inquiring minds want to know!

Continue reading “How Pixar Stopped Worrying And Learned To Love Linux” →

Dumpster-dived Window A/C Becomes Ground-Source Heat Pump

Heat pumps are great, because they pump heat around, and we often don’t want heat where it is. Need it somewhere else? Pump it! It’s great. It’s also a bit pricey if you’re buying new, but [Craftsman Chris] over on YouTube realized that the window air conditioning unit he found in a dumpster is, in fact, a heat pump. Normally it’s an air-source heat pump, but with a delightful series of hacks, he gets it automated and hooked into a ground loop in his latest YouTube video.

The heat sink is provided by a bunch of PEX tubing [Chris] buried in his back yard. After experimenting with using the water loop for cooling directly, he realized that pumping heat out of his house into the cold ground would go much better with a heat pump. That’s where the window A/C came in. After cleaning and servicing it, it was time to convert it to dump heat into water rather than outside air. To do that, [Chris] welded up a tank made of scrap metal around the existing heat exchanger. It’s designed for air, sure, but water takes its heat just fine. The nice thing about this is that by keeping the internals of the air conditioner mostly stock, he doesn’t let out any of the tasty, tasty CFCs that may be hiding inside.

Connecting this unit to his thermostat is equally hacky– he takes an old Programmable Logic Controller that looks fit to run a small factory, and hooks it to a single linear actuator to poke the A/C unit’s stock power button. Is it elegant? No. Does it work? Yes. Is it a hack? Indubitably!

We’ve seen window units pressed into whole-house A/C service before, but adding the water loop is a great hack. We saw a window A/C used as a ground-source pump before, too, but that was a Canadian project and so sensibly turned the machine around to provide heating for the maple mansion.

Continue reading “Dumpster-dived Window A/C Becomes Ground-Source Heat Pump” →