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 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!

8 thoughts on “ESP8266 Based WiFi Game Boy Cartridge Browses WikiPedia

  1. I’m not a gaming fan. The first “game” I had was a Fairchild box and then I got an Atari 5200. Both were OK, but didn’t keep my interest. Both also had serious problems with reliability of their joysticks which is probably why I walked away from them. While I can’t say I find this effort to WiFi an old Gameboy a good idea to focus engineering talent on, I can say that ANY effort to explore and modify ANYTHING is a good thing. It can lead to insights that one didn’t have before and add to the tool-kit of knowledge, insight, and techniques that can be of great benefit in later efforts. As the author confessed, there are much better platforms for gaming or web browsing, it’s the discovery process and subsequent development processes that are the true rewards here, not the final product. We wouldn’t advance at all if we didn’t just try stuff, even stuff that seemed “stupid”.

    1. grateful for this perspective.

      personally it appears as a great opportunity to hone skills of integration, while also creating a hardware meditation on internet connectivity in every day devices :)

      usability clearly seems quite low, but hey, it doesn’t even have a backlight.

      when originally using a gameboy, it was difficult to see the screen contents, and link cable wasn’t really a thing yet, so all games felt confined existentially to the handheld itself.

      perhaps opening the device corrupts it in a way, the example with wikipedia seems rather wholesome to me.

      can imagine a younger version of myself enjoying the ability to “go to the library” with my gameboy in addition to playing pokémon.

      anyways, cheers

    1. At the end of the video, he explains that the power consumption of the ESP8266 is almost too much for the system to handle. If the batteries are not completely fresh, there are graphical and memory errors when the MCU activates the WiFi.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.