FPGA Brings Arduboy to the Game Boy Advance

Hackaday readers are perhaps familiar with the Arduboy, an open source handheld gaming system that aims to combine the ease of Arduino development with the seething nostalgia the Internet has towards the original Nintendo Game Boy. While not quite the same as getting one of your games published for a “real” system, the open source nature of the Arduboy platform allows an individual to develop a game playable on a commercially manufactured device.

While the Arduboy hardware itself is actually quite slick, that hasn’t stopped people from trying to bring its games to other pieces of hardware. Now thanks to the efforts of [uXe], the Game Boy Advance is well on its way to becoming Arduboy compatible, in a way bringing the whole project full circle. Assuming this gadget becomes a commercial device (it sounds like that’s still up in the air), Arduboy developers will be able to proudly play their creations on the final and objectively best entry into the Game Boy line.

Getting to this point has been something of an adventure, as documented in a thread from the Arduboy forums. Members of the community wondered what it would take to get Arduboy games running on a real Game Boy, but pretty quickly it was decided that the original beige brick model wasn’t quite up to the task. Eventually its far more capable successor the Game Boy Advance became the development target, and different approaches were considered for getting existing games running on the platform.

While there were some interesting ideas, such as using the GBA’s link port to “feed” the system games over SPI, in the end [uXe] decided to look into creating an FPGA cartridge that would actually run the Arduboy games. In this scenario, the GBA itself is basically just being used as an interface between the FPGA and the human player. In addition to these low-level hardware considerations, there was considerable discussion about the more practical aspects of bringing the games to the new hardware, such as how to best scale the Arduboy’s 128 x 64 output to the GBA’s 240 × 160 screen.

As demonstrated in the videos after the break, [uXe] now as all the elements for playing Arduboy games on the GBA in place, including the ability to disable full screen scaling by using the shoulder buttons. Now he just needs to shrink the hardware down to the point it will fit inside of a standard GBA cartridge. Beyond that, who knows? Perhaps the appeal of being able to run Arduboy games on a real Game Boy is enough to warrant turning this hack into a new commercial product.

Thanks to a hardware swap we’ve seen Arduboy games played on the Dreamcast VMU, and [uXe] himself previously grafted Arduboy-compatible hardware into an original Game Boy, but being able to play these games on an unmodified Game Boy Advance obviously has its own appeal. At the very least, it will be a bit more ergonomic than using a hacked classroom gadget.

7 thoughts on “FPGA Brings Arduboy to the Game Boy Advance

  1. Maybe I’m missing something, but this seems like the absolutely most pointless invention that I’m aware of. There’s an absolute surplus of GBA cartridges that have SD card slots and are basically plug and play with ROMs. There’s also emulators you can load as well, along with modifying or swapping the hardware with a raspberry pi or something. So assuming there somewhat of a technical knowledge requirement to use this, the same person could pull off any other option as well.

    The most marring feature, and again maybe I’m missing something, is that this completely takes away the portability of the GBA console by literally tying it down. So it’s reduced to a fragile table display.

    Is there really a point to this when almost any computer or gaming device can load retro emulators that already exist? The only electronics that would be pushed aside by this is the original pieces of hardware themselves, which you could just play?

    1. Yeah…I don’t think you understand at all what this is. Your comments are so far off the mark, it’s actually kind of hard to believe you even read it.

      Here’s a hint: it has absolutely nothing to do with ROMs or emulators.

    2. Beyond the novelty of playing the library of games on the GBA it gives the ability to develop in C++ natively (although interpreted through the fpga).

      Actually this development allows for any microcontroller to have an easy pipeline to control what is essentially a headless GBA.

      Using ESP32 or other wifi chip would be pretty neat too turning the GBA into an IOT device.

      1. There’s good GBA emulators and there’s toolchains for it. Nothing holding you back from writing C/C++, compiling binaries and even debugging on GBA. Not to diminish the skill and achievement of [uXe] – If this makes it into a cartridge: nice, but still kind of pointless to me. Having a working example of a GBAFPGA connection is definitely nice though (a bit more technical info on GitHub would be cool)

    3. “Maybe I’m missing something”

      Yup.

      The point of this isn’t to play ROMs, it’s so you can develop for it rapidly. Arduboy isn’t the kind of platform you get ROMs for.

      “again maybe I’m missing something”

      Yes. They are working on getting it inside a cart.

  2. “Eventually its far more capable predecessor the Game Boy Advance became the development target”
    I think “successor” is meant, rather than “predecessor”.

Leave a Reply

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