Booting The Game Boy Advance Into Bluetooth

While it might not be quite as revered as its predecessor, the Game Boy Advance is arguably the peak of “classic” handheld gaming, before things got all 3D and dual screen on us. One of its best features is the so-called multiboot mode, which allows the GBA to download a program from its link port. Officially this feature was introduced so you could play multiplayer with your friends even if they didn’t have the game cartridge, but naturally it didn’t take long for hackers to realize you can use it to run arbitrary code on an unmodified system.

[Shyri Villar] has put this capability to excellent use with a plug-in board that allows a stock GBA to be used as a general purpose Bluetooth HID controller. Now you can emulate GBA games on your computer while using the real thing as your input device. Or if that’s a bit too redundant for you, then any 2D game you think could benefit from the classic Game Boy control layout.

An ATmega328P on the board initiates the multiboot sequence when the system powers up, and feeds it the GBA program that’s stored on a W25Q32 chip. Once the code is running on the GBA, it communicates with a common HC-05 Bluetooth module through the same link port. To perform this handoff, [Shyri] uses a HCF4066 switch IC to literally change the pin assignments in the connector from the SPI used to upload the ROM to the UART lines of the Bluetooth module.

With everything powered from the 3.3 V provided by the GBA’s link port, and some software niceties like the ability to store Bluetooth pairing information for subsequent device connections, this is actually a very practical gadget. The fact that you can do this on a completely stock GBA is very compelling, especially considering some of the previous Bluetooth Game Boy modifications we’ve seen. Granted the market might be somewhat limited, but with a custom PCB and a 3D printed enclosure, we could see this potentially being a popular accessory for the classic handheld. It’s not like it can be any more niche than using the GBA as a remote display for your multimeter.

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.

Continue reading “FPGA Brings Arduboy To The Game Boy Advance”

GBA Consolizer Kit RetroRGB

GBA On The Big Screen: FPGA Delivers HDMI And Every Feature Imaginable

The concept of creating a gaming portable out of a home console has been around for some time, but it’s hardly seen the other way around. There have been a few devices that dared to straddle the line (i.e., Sega Nomad, Nintendo Switch, etc.), but the two worlds typically remain separate. [Stephen] looked to explore that space by attempting to turn the Game Boy Advance into a “big boy” console. The FPGA-based mod kit he created does just that, and comes complete with controller support and digital video output in 720p over a mini HDMI cable.

The kit itself was designed specifically for the original model GBAs containing the 40-pin LCD ribbon cable. These original models were the early run of non-backlit screens that are also denoted by a motherboard designation that can be seen by peering into the battery compartment. RGB signals are read directly from the GBA LCD socket by removing the handheld’s screen in favor of a fresh flat flex ribbon cable. This method enables a noise-free digital-to-digital solution as opposed to the digital-to-analog output of Nintendo’s own Game Boy Player add-on for the GameCube.

At an astonishing 240×160 native resolution, GBA video is scaled by the FPGA up to 5x within a 720p frame. Of course some of the image is cutoff in the process, so options for 4x and 4.5x scales were included. As a wise man once said, “Leave no pixel behind”. Since Nintendo designed the GBA clock to run at 59.7276 Hz, [Stephen] removed the oscillator crystal in order to sync the refresh rate to a more HDMI friendly 60 Hz. This means that the mod kit overclocks GBA games ever so slightly, though [Stephen] included a GBA cycle accurate mode as an option if your display can handle it.

The video below is [Stephen]’s initial test using a SNES controller. Tests must have gone well, because he decided to incorporate a SNES controller port in the final design. Now all those Super Nintendo ports on the GBA are back home once again thanks to this “consolizer” kit.

Continue reading “GBA On The Big Screen: FPGA Delivers HDMI And Every Feature Imaginable”

Building A Supersized Game Boy Advance

Unless you really look closely at the image above, you might not realize you aren’t looking at a normal Game Boy Advance; which is sort of the point. Even though it retains the looks of the iconic Nintendo handheld, this version built by [Akira] is supersized for adult hands. How big is it? To give you an idea, that screen is 5 inches, compared to the 2.9 inch screen the original sported.

Unlike most of the portable gaming hacks we’ve covered recently, this big-boy GBA isn’t powered by a Raspberry Pi. Internally it’s packing a genuine GBA motherboard, which has been wired into a portable screen originally intended for the PlayStation.

Though that may be understating things a bit, as getting the round PCB of the original screen into the rectangular shape of the GBA meant it had to be cut down and the traces recreated with jumper wires. The original CCFL backlight of the screen had to go in the name of battery life, and in its place is the backlight system pulled from a Nintendo DSi XL.

But where did [Akira] get a giant GBA case to begin with? No, it isn’t 3D printed. It’s actually a hard carrying case that was sold for the GBA. The carrying case obviously didn’t have a cartridge slot or openings for buttons, so those sections were grafted from a donor GBA case. So despite the system overall being so much bigger than the original, the D-Pad, face buttons, and cartridge slot on the back are at normal GBA scale.

The GBA XL is really a labor of love; browsing through the build log you can see that [Akira] actually started the project back in 2014, but it kept getting shelved until more research could be done on how to pack all the desired features into the final device.

While this may be the most historically accurate attempt at making a bigger Game Boy, it certainly isn’t the first. There seems to be a fascination with turning the quintessential pocket game system into something that’s quite the opposite.

Continue reading “Building A Supersized Game Boy Advance”

Game Boy Advance SP in ECG device

Game Boy Advance Hiding In A Medical Device

It turns out that medical manufacturers also do hacking once in a while. [Jana Marie Hemsing] recently tweeted a photo of an ECG-Trigger-Unit that she’d opened up. Inside she found that the LCD screen was that of a Game Boy Advance (GBA) and the reason she could tell was that the screen’s original case was still there, complete with GAME BOY ADVANCE SP written on it.

In the manufacturer’s defense, this device was likely made around the year 2000 when gaming products were some of the best sources for high speed, high quality, small LCDs displays.  This design document for a portable ECG measurement instrument from as recently as 2013 cites reasons for using a GBA as:

  • impressive plotting results,
  • no serious transmission delays, and
  • fine graphics processing capability.

The Verge had even turned up this US patent from 1997 that has the diagnostic medical device be a cartridge for plugging into a Game Boy. At the time, PCs were frequently used for medical displays but this patent cites issues such as the higher cost of PCs, software installation issues, and crashing. However, they talk about the crashing being due to running word processing and spreadsheet software on the same PC, something not likely to happen if the PC is dedicated to bedside monitoring.

But despite all those pros, wouldn’t you feel surprise and alarm when you first glimpse the Game Boy inside the device that’s monitoring your heart? We also have to wonder what licensing these products went through in the countries in which they were used. This particular device was made by German company Medical Imaging Electronics.

Game Boy hacks aren’t limited to the medical industry though. Here on Hackaday, we’ve seen them turned into remote controls for flying drones and we’ve seen Game Boy cartridge emulators that use STM32. Finally, if you’re wondering where you saw [Jana Marie]’s name before, she was one of the two hackers driving the motorized armchair in a photo in our [Jenny List]’s SHACamp 2017 write-up.

Our thanks to [geonomad] for the tip!

HDMI Out On The Gameboy Advance

The Gameboy line of handheld systems from Nintendo have been wildly popular, but lack one major thing – a video output. This can be troublesome if you’d like to view the games on a bigger screen, for more comfortable gaming sessions or detail work like producing chiptunes. One option is to use the Gameboy Player for the Gamecube, however that system’s age means you’re out of luck if you want a crisp, clear picture on a modern digital display. Wouldn’t it be great if you could get HDMI output from a Gameboy Advance Instead?

A family resemblance?

When it comes to working with video signals, FPGAs can’t be beat. [Stephen] leverages an FPGA in this project to read the GBA’s video signals and convert them to the modern digital format. Unfortunately, it’s not a seamless install – limited space means the GBA’s screen must be entirely removed, replaced with the adapter in a manner resembling the terrifying Facehugger.

Packaging aside, the output from the device is nothing short of stunning – the graphics are absolutely crystal clear when displayed on a modern HDMI television. This is because the FPGA is capturing the exact digital output from the GBA, and piping it out as HDMI – there’s no analog fuzziness, conversions or noise to spoil the image. Output is a tasty 1280×720, upscaled from the GBA’s original resolution. For more details, check out the forum thread where [Stephen] runs through the build.

The only thing missing  is details – we’d love to know more about the exact hardware used, and any trials and tribulations during the build! As far as we can tell, the build doesn’t stop at just video – a SNES controller is used instead of the original buttons, and we have a feeling sound is being passed over the HDMI channel as well sound is piped to the TV from the GBA’s headphone port.

It’s great to see these projects for old hardware come out – modern hardware has the muscle to achieve things previously unthinkable on retro consoles. We’ve seen similar projects before – like adding VGA to an original Game Boy.

Continue reading “HDMI Out On The Gameboy Advance”

Anti-Emulation Tricks On GBA-Ported NES Games

Emulation is a difficult thing to do, particularly when you’re trying to emulate a complex platform like a game console, with little to no public documentation available. Often, you’ll have to figure things out by brute force and dumb luck, and from time to time everything will come unstuck when a random piece of software throws up an edge case that brings everything screeching to a halt.

The Classic NES series was a handful of Nintendo Entertainment System games ported to the Game Boy Advance in the early 2000s. What makes them unique is a series of deliberately obtuse programming decisions that make them operate very differently from other titles. These tricks utilize advanced knowledge of the way the Game Boy Advance hardware operates and appear to have been used to make the games difficult to copy or emulate.

The games use a variety of techniques to confuse and bamboozle — from “mirrored memory” techniques that exploit addressing anomalies, to putting executable code in video RAM and writing to the audio buffers in unusual manners.

Even more confusingly, these techniques only appear to have been used in the Classic NES series of games, and not other Game Boy Advance titles. It’s not obvious why Nintendo went to special effort to protect these ports over other titles; perhaps the techniques used were for other reasons than just an attempt at copy protection. Speculate amongst yourselves in the comments.

This isn’t the first time we’ve discussed emulation of Nintendo systems — check out this effort to reverse engineer the Sony Pocketstation.

[Thanks to [[[Codifies]]] for sending this in!]