ESP8266 Based WiFi Game Boy Cartridge Browses WikiPedia

[Sebastian Staacks] came across his old Game Boy and was wondering (as you do) what happened to recent attempts at getting a WiFi interface wedged into a standard cartridge. After a while the conclusion was that people had been scuppered by approaching the problem in a way that made it too hard. Obviously that meant it was necessary to follow through and build something, which is precisely what he did with his WiFi Game Boy Cartridge.

A trend lately has been to hook up a fast microcontroller to a bus, then move the whole interfacing shenanigans into software. This works fine in some circumstances, but for the GB interface, it’s not so easy. The GB is powered by the Sharp LR35902, running at a smidge over 4 MHz, but its machine cycle takes four clocks giving an instruction rate of only 1 MHz. The cartridge interface presents the raw CPU bus directly. This is both good and bad. It’s good, because it enables all kinds of expansion modules, like cameras, printers, and other custom peripherals, but it’s bad because the burden of interfacing with the CPU, at its full speed, lies squarely in the cartridge’s remit.

Rather than trying to hook this bus directly to a fast microcontroller, [Staacks] has taken a different approach; by decoding the address bus with discrete logic, it was easy to derive chip selects for an embedded ESP8266 as well as a socketed EEPROM. The clock for the former was also gated and sent into the ESP8266, generating an interrupt to wake it up. The EEPROM stores a simple application whose job is to present an OSD keyboard and send requests to Wikipedia, via the ESP8266 WiFi stack. The resulting text is then displayed on the 160×144 dot matrix display. The interrupt latency of the ESP8266 was mitigated by the application simply discarding the first data byte sent to it, and retrying the access. This way the ESP8266 could spend the majority of its time dealing with wireless duties, only pausing to swap a byte now-and-then with the application. A simple solution which appears to actually work! If you’re up for building one of these and writing your own applications, you can wander over to GitHub, clone yourself a copy and crack on!

We’ve seen a few attempts at doing this before, [davedarko] tried with this project, and if you search hackaday.io you’ll get loads of GB hacks to browse. Finally a recent twitter thread also points to another effort to do something similar with Wi-Fi, but development is still ongoing. We’ll check back later!

Continue reading “ESP8266 Based WiFi Game Boy Cartridge Browses WikiPedia”

An Open Source Game Boy Printer That Doesn’t Print

While we’ll admit seeing your Game Boy Camera shots come out on a little slip of thermal paper was pretty neat back in 1998, anyone who’s still using the Game Boy Printer these days is probably more interested in getting their images in digital form. Which is why the open source NeoGB Printer is so exciting.

A collaborative effort between [Rafael Zenaro], [Raphaël BOICHOT], and [Brian Khuu], the project combines an ESP32 development board and some common components with their GPLv3 firmware to fully emulate the Game Boy Printer hardware. Once plugged into your Game Boy, any of the 110 titles that support Nintendo’s paper-pushing peripheral will recognize the NeoGB Printer as the real deal and happily send along the image.

But rather than committing it to paper, the NeoGB Printer saves the image to an SD card. From there, you can put the card in your computer and do whatever you wish with the captured files. Incidentally, it turns out there’s already a commercial gadget on the market that does something very similar, but this DIY approach comes well under its $99 USD price tag. In fact, if you’ve got a Game Boy Link Cable you don’t mind cutting up, you’ve probably got everything you need to pull this off in the parts bin right now.

We particularly like how the team has went out of their way to support different hardware configurations for the NeoGB Printer. If you want to go all out and add status LEDs and an OLED display, go for it. But if you just plan on using the thing once to grab a copy of the Pokémon diploma you earned 20 years ago, then you can skip the bells and whistles.

If you’re only worried about getting your snaps out of the Game Boy Camera, we’ve covered projects that will extract them directly from the cartridge. But this approach certainly has its appeal, as works with a much wider variety of games. We’re glad this project exists, as it means a whole new generation can explore all the wacky ways developers came up with to utilize the Game Boy Printer back in the day.

A Game Boy connected to a monitor while playing Super Mario Land 2

FPGA Boards Add VGA And HDMI Interfaces To The Original Game Boy

The classic Game Boy remains a firm favorite in the realm of retrocomputing. Revolutionary as it was at the time, by today’s standards its display is rather primitive, with no backlight and a usable area measuring only 47 mm x 44 mm. [Martoni] figured out a way to solve this, by developing GbVGA and GbHdmi, two projects that enable the Game Boy to connect to an external monitor. This way, you can play Super Mario Land without straining your eyes, and we can also image potential uses for those who stream their gameplay online.

A Game Boy connected to a monitor while playing Super Mario Land 2 Getting the image data out of the Game Boy is surprisingly straightforward, and has been done a few times before. Basically, the connection between the CPU and the LCD screen is a serial interface with a 4 MHz clock, two data lines and two sync lines. [Martoni] uses pin headers sticking out of the Game Boy’s plastic case to connect these to a small FPGA board. The board in question is a Fireant for the VGA version and a Tang Nano 4K for the HMDI model. In either case the FPGA reads out each frame from the Game Boy’s LCD interface and draws the extracted image onto the monitor, using the same four shades of green as used on the original screen.

[Martoni] states that the ultimate goal of these projects is to make a Switch-like docking station for the original Game Boy, which is definitely something we’re looking forward to. Although adding external monitors to the Game Boy is not entirely new, we like the simplicity of this implementation and the fact that anyone can improve upon it thanks to the full source code being available. Similar hacks have been performed on the newer Game Boy Pocket and Game Boy Advance as well.

Interactive Clips For Game Boy: Sit Back And Watch Or Take Control

How often does this happen to you? You find yourself describing something that happened in a game to someone, and they’re not sure they know what part of the map you’re talking about, or they’ve never gotten that far. Wouldn’t it be cool to make a bookmark in a video game so you can jump right to the beginning of the action and show your friend what you mean using the actual game?

That’s the idea behind [Joël Franusic] and [Adam Smith]’s fantastic Playable Quotes for Game Boy — clip-making that creates a 4-D nugget of gameplay that can either be viewed as a video, or played live within the bounds of the clip. The system is built on a modified version of the PyBoy emulator.

Game Boy game ROM -- complete and partial
Left: the full game ROM. Right: a bookmarked slice of the game ROM with the rest set to zero.

Basically, a Playable Quote is made up of a save state and all that entails, plus a slice of the game’s ROM that includes just enough game data to recreate an interactive clip. Everything is zipped up and steganographically encoded into a PNG file. Here’s a Tetris quote you can play (or watch) right now — you might recognize it from the post thumbnail. You’ll find the others on the games site, which allows people to create and share and build on each other’s work.

There’s so much more that can be done with this type of immersive and interactive tool outside the realm of games, and we’re excited to see where this leads and what people do with it.

Haven’t heard of PyBoy before? Let us introduce you.

Bringing A Ruined Game Boy Cart Back To Life With Tons Of Soldering

Retro consoles and handhelds are full of nostalgia and happy memories for many. However, keeping these machines and their media going can be a difficult job at times. [Taylor] was challenged to rescue a copy of Kirby’s Dream Land for the original Game Boy, and set about the task.

The cartridge was badly corroded, with many of the traces eaten through, rendering the game inoperable. First, all the components were removed, and the board was cleaned. This allowed easy access to the traces across the whole board. Then, the job was to delicately remove some solder mask from the parts of the traces still remaining, and bridge the gaps with fine copper wire. Even worse, several vias were damaged, which [Taylor] tackled by feeding jumper wires through the board and executing a repair on each side.

It’s a simple enough repair for the experienced hand, but virtually magic to a retro gaming fan that doesn’t know how to solder. [Taylor] has given us a great example of how to deal with corroded carts properly, with enough detail to be quite educational to the beginner.

We’ve seen other great work in this vein too, like an Amiga 2000 brought back from a horrible creeping green death. If you’ve done your own retro rescue, be sure to drop us a line!

Continue reading “Bringing A Ruined Game Boy Cart Back To Life With Tons Of Soldering”

GateBoy Is A Game Boy Emulated At Gate Level

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.

Pokemon Time Machine Lets You Really Catch ‘Em All

Since 1996 the Pokemon series of games has moved through eight distinct generations, which roughly parallel the lineage of Nintendo’s handheld gaming systems. While the roster of “pocket monsters” has been updated steadily, players have had the option of bringing captured Pokemon from the older games into the newer releases. But there’s always been a gap in this capability. Due to hardware differences, the Game Boy and Game Boy Color generations of games were physically unable to communicate with the titles released for the Game Boy Advance.

But soon, that may no longer be the case. [Selim] is hard at work on Lanette’s Poke Transporter, a hardware and software solution for bringing Pokemon from the first and second generation games onto the third generation GBA games. Once they’ve been loaded there, players can move the creatures all the way up into the contemporary Pokemon games via official means.

The first Pokemon to make the generational leap.

The project was started in July of 2020, with [Selim] first focusing on the logistical challenges of bringing such early Pokemon into the newer games. Because so much changed between the different generations, there are many sanity checks that need to be made during the transfer. For example, the moves and techniques that the creatures are able to learn isn’t necessarily consistent between these early entries into the series. But after about a year of effort, the software side worked reliably on emulated games, and it was time to start thinking about the hardware.

Ultimately, [Selim] wants to create a physical device into which players can insert their Pokemon cartridges and trigger an automatic transfer. The code is already able to read and write to the cartridges, and has been ported over to Arduino so it doesn’t need a computer to run. A few prototype PCBs have been created, and beyond the inevitable bodges, it seems like they’re functional. There’s still breadboards and jumpers for as far as the eye can see, but this is the first step towards producing a dedicated Pokemon “time machine” that can transport them from the late 1990s to the present day.

With [stacksmashing] recently showing that the Raspberry Pi Pico is fast enough to emulate the Game Boy’s “Link Cable” accessory, and the protocol for trading Pokemon over the wire fairly well understood, we wonder if one day this technique couldn’t be done in real-time between linked handhelds. If you can make two copies of Tetris connect to each other over the Internet, it seems like you’d have enough time to fiddle with a Charizard’s stats.