Old game systems are typically the most popular targets for emulation. With huge communities of fans wanting to recreate the good times of yesteryear, most old systems have all been brought back to life in this manner. However, some simply dive into emulation for the technical challenge, and [Austin Appleby] has done just that with GateBoy.
GateBoy is a project to emulate the Game Boy logic gate by logic gate. It’s a lower level approach that builds upon earlier work [Austin] did on a project called MetroBoy, which we featured previously.
The emulator was created by painstakingly reverse-engineering the logic of the Game Boy. This was done by poring over die shots of the actual DMG-01 CPU silicon. GateBoy emulates most of the chip, though avoids the audio hardware at this stage.
Presently, GateBoy runs at roughly 6-8 frames per second on a modern 4GHz CPU. As it turns out, emulating all those gates and the various clock phases at play in the DMG-01 takes plenty of processing power. However, compilation optimizations do a lot of heavy lifting, so in some regards, GateBoy runs impressively quickly for what it is.
[Austin] still has plenty of work to do before GateBoy is completely operational, and there are some strange quirks of the Game Boy hardware that still need to be figured out. Regardless, it’s a fantastic academic exercise and a noble effort indeed. Meanwhile, you might like to check out the Game Boy emulator that runs just one single game.
Starting with a working Game Boy Advance and a donor one with a busted motherboard, the frankenstein-ification could start. A Dremel split one case in half and removed the sides on another, while trusty old car body filler helps fill and smooth the gaps. A particularly clever trick is to use the Dremel to create channels for the filler to adhere easier. Several areas had to be built up with filler and glued in bits of plastic as a base. As you can see in the video below, the countless hours of sanding, priming, sanding, and more priming led to a beautifully smooth finish. The choice of purple paint really sells the impression of a factory-fresh Game Boy Advance.
The working circuit board was desoldered and the donor board was cut into pieces to fit in the extended sides. Using some magnet wire, connections were bridged over to the original motherboard via the test points on the PCB. [Elliot] didn’t opt to swap the screen to an IPS display or add a backlight. These quality of life improvements are nice, but a dead giveaway that Nintendo didn’t make it. The goal is to get the user to wonder, even if just for a second, what if Nintendo just happened to make this wide one-off handheld console.
[Elliot] made it simply because he found it interesting and enjoyed the form of the thing he made. Is it a hack? Is it art? Probably a little bit of both. This isn’t his first modified Nintendo handheld either. He previously made a long Nintendo Gameboy DMG-01. We love seeing all the wild hacks and tweaks made to Game Boy line, such as this Game Boy Color inside the DMG-01.
Light has always been a key part of the classic Game Boy experience. Some of us have fond memories of riding along in the back seat of a car at night, pausing and unpausing the game as the street lights overhead briefly give enough light to see the unlit display. The availability of third party IPS displays for these classic handhelds has largely eradicated this problem today, but as you might expect, the increased power requirements of the more modern screen reduces the system’s runtime.
In the video below, you can see the modification starts by cutting away a large section of the Game Boy’s rear panel to fit the 1000 mAh LiPo battery. The solar panel is then affixed over the back with super glue. A diode is soldered onto the solar cell, and then wired into a charge controller that came with USB-C input. The placement of the charge controller ended up being trickier than expected, but with a little hot glue, it works just fine. Overall this is a simple mod but a brilliant idea.
This isn’t the first solar-powered handheld game system we’ve seen, but it’s nice to see the idea revisited and expanded on, particularly regarding ergonomics. In addition, we love the incredible detail of narration that’s given as this hack slowly takes shape. Video after the break.
[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.
The hack is relatively straightforward. The Game Boy is hooked up to a PC via a Raspberry Pi Pico and a level shifter to handle the different voltage levels. The Game Boy runs custom software off a flash cart, which runs the SHA hash algorithm on incoming data from the PC and reports results back to the PC which communicates with the Bitcoin network.
[stacksmashing] does a great job of explaining the project, covering everything from the Game Boy’s link port protocol to the finer points of the Bitcoin algorithm in explicit detail. For the technically experienced, everything you need to know to recreate the project is there. While the Game Boy manages just 0.8 hashes per second, trillions of times slower than cutting edge hardware, the project nonetheless is amusing and educational, so take that into consideration before firing off hot takes in the comments below. If you’re really interested in the underlying maths, you can try crunching Bitcoin hashes with pen and paper.
Never underestimate the power of nostalgia. In an age when there are more megapixels stuffed in the sensor of a smartphone camera than the average computer display can even represent, why would jagged images from a 20-year-old grayscale camera with pixels numbering in the thousands still grab attention? Maybe what’s old is new again, and the coolness factor of novelty is something that can’t be quantified.
The surprise I had last Monday when I saw my Twitter notifications is maybe only second to the feeling I had when I was invited to become a Hackaday contributor. I’d made a very simple web app which mimics a Game Boy Camera using the camera from your phone or desktop, and it got picked up by people so much that I’m amazed my web host is still holding. Let’s look at why something seemingly so simple gained so much traction.
We always look forward to a new blog post by [Ken Shirriff] and this latest one didn’t cure us of that. His topic this time? Comparing two Game Boy audio chips. People have noticed before that the Game Boy Color sounds very different than a classic Game Boy, and he wanted to find out why. If you know his work, you won’t be surprised to find out the comparison included stripping the die out of the IC packaging.
[Ken’s] explanation of how transistors, resistors, and capacitors appear on the die are helpfully illustrated with photomicrographs. He points out how resistors are notoriously hard to build accurately on a production IC. Many differences can affect the absolute value, so designs try not to count on exact values or, if they do, resort to things like laser trimming or other tricks.
Capacitors, however, are different. The exact value of a capacitor may be hard to guess beforehand, but the ratio of two or more capacitor values on the same chip will be very precise. This is because the dielectric — the oxide layer of the chip — will be very uniform and the photographic process controls the planar area of the capacitor plates with great precision.
We’ve decapsulated chips before, and we have to say that if you are just starting to look at chips at the die level, these big chips with bipolar transistors are much easier to deal with than the fine and dense geometries you’d find even in something like a CPU from the 1980s.