Reflecting On The State Of Game Boy Emulation In 2024

Considering the decades that have passed since Nintendo’s Game Boy was considered the state-of-the-art in mobile gaming, you’d imagine that the community would have pretty much perfected the emulation of the legendary family of handhelds — and on the whole, you’d be right. Today, you can get open source emulators for your computer or even smartphone that can play the vast majority of games that were released between the introduction of the original DMG-1 “brick” Game Boy in 1989 through to the final games published for the Game Boy Advance in the early 2000s.

But not all of them. While all the big name games are handled at this point, there’s still a number of obscure titles (not all of which are games) that require specialized hardware accessories to properly function. To bring the community up to speed on where work is still required, [Shonumi] recently provided a rundown on the emulation status of every commercial Game Boy accessory.

Continue reading “Reflecting On The State Of Game Boy Emulation In 2024”

Exploring The World Of Nintendo 3DS Homebrew

When Nintendo officially ended production of the 3DS in September 2020, it wasn’t exactly a surprise. For one thing, some variation of the handheld system had been on the market since 2011. Which is not to say the product line had become stagnant: the system received a considerable mid-generation refresh, and there was even a more affordable variant introduced that dropped the eponymous stereoscopic 3D effect, but nearly a decade is still a fairly long life in the gaming industry. Of course Nintendo’s focus on the Switch, a hybrid device that blurs the line between console and handheld games, undoubtedly played a part in the decision to retire what could effectively be seen as a competing product.

While putting the 3DS out to pasture might have been the logical business move, a quick check on eBay seems to tell a different story. Whether it’s COVID keeping people indoors and increasing the demand for at-home entertainment, or the incredible library of classic and modern games the system has access to, the fact is that a used 3DS in good condition is worth more today than it was when it was brand new on the shelf this time last year.

I’ve certainly made more expensive mistakes.

In short, this was the worst possible time for me to decide that I finally wanted to buy a 3DS. Then one day I noticed the average price for a Japanese model was far lower than that of its American counterpart. I knew the hardware was identical, but could the firmware be changed?

An evening’s worth of research told me the swap was indeed possible, but inadvisable due to the difficulty and potential for unexpected behavior. Of course, that’s never stopped me before.

So after waiting the better part of a month for my mint condition 3DS to arrive from the land of the rising sun, I set out to explore the wide and wonderful world of Nintendo 3DS hacking.

Continue reading “Exploring The World Of Nintendo 3DS Homebrew”

A Wii Playing The GameCube, Disguised As A Game Boy SP

It may be hard to believe, but thanks to the expert work of Nintendo aficionado [Bill Paxton], the Game Boy Advance SP and GameCube lovechild that you see before you started its life as a Wii. That means not only can it play commercial GameCube and Wii games, but also has access to the wide library of homebrew games and emulators available for those systems.

To create this marvel, [Bill] first had to expertly cut away extraneous components from the Wii’s motherboard. He then mated the “trimmed” PCB to a new board that holds the controls as well as some other ancillary components such as the audio amplifier and USB port. He even managed to squeeze a battery in there, as demonstrated in the video after the break.

Finally, he designed a 3D printed enclosure that incorporates GameCube-style controls (complete with printed buttons) into the classic clamshell Game Boy SP shape. Because of the complexity of the design, [Bill] decided to have it professionally printed at Shapeways rather than trying to run it off of his home printer, which he says helps sells the professional look. It did take him some trial and error before he got the hang of painting the printed material to his satisfaction, but we think the end result was certainly worth the effort.

It probably won’t come as a huge surprise to find that this isn’t the first time [Bill] has pulled off a stunt like this. A few years back he created a very similar “GameCube SP”, but by the looks of it, this revised attempt improves on the original version in every way possible.

Continue reading “A Wii Playing The GameCube, Disguised As A Game Boy SP”

Circuit-Level Game Boy: Upping Emulation Ante By Simulating Every Cycle

Usually when writing emulation software for a system like the Game Boy, one makes sure to take as many shortcuts as possible in order to reduce the resources required for the emulation. This has however the unfortunate side-effect that it reduces the overall accuracy of the emulation and with it the compatibility with games on the system.

This is the basic reasoning behind projects which seek to abandon simplistic abstractions in favor of cycle-accurate, full compatibility approaches, of which MetroBoy is probably the most extreme one. Instead of abstracting away the hardware, it instead does the emulation at the circuit level. As with such other projects, this means that the emulator requires a lot more CPU cycles to get things just right. On the bright side, one can likely still run this emulator on any modern system.

As the MetroBoy author explains, he implemented code in C++ which allowed him to construct circuits in an HDL-style manner, which should theoretically also allow him to generate a Verilog (or VHDL) softcore out of the project. As a demonstration of implementing HDL in C++ it’s decidedly interesting.

An approach like this is pretty much the exact opposite of a project like the UltraHLE (ultra high-level emulator) Nintendo 64 emulator, which used the knowledge that Nintendo 64 games are written in C as a first step to creating libraries that the code in the Nintendo 64 ROMs would call instead of the native (Nintendo) libraries. This allowed N64 games to directly run on the target system, with the graphic and system calls translated by UltraHLE into native OS calls, using the 3dfx Glide API for accelerated graphics.

While an approach like UltraHLE took allows for the most minimal use of system resources by essentially foregoing emulation completely, for retro systems like the Game Boy where games were implemented in assembly on bare hardware, using this circuit-level emulation ensures that one gets the most accurate match with the original handheld console experience.

As a word of caution to those who are now itching to try out MetroBoy, its Github site notes that it currently lacks support for game saves, uses a mixture of original Game Boy (DMG) and Game Boy Advance SP (AGS) hardware that confuses some games and has rather buggy sound support.

If playing around with software-defined Game Boy circuits isn’t enough and would like to literally look inside a real Game Boy, the X-ray image from the top of the article is something Chris over at Elektronaut pulled off several years ago.

Use Your Game Boy As A Wireless Controller

Like many retro favourites, the Game Boy is in no way dead — development continues apace through its many fans.But what about the hardware side? This is a particularly interesting one: [Alex] wondered if a Game Boy could be readily used as a wireless controller. Set out to make it happen, the final product is a game cartridge that makes the classic handheld a wireless controller.

It’s achieved quite elegantly, with a custom cartridge used to turn the Game Boy into a controller while requiring no modification to the handheld. The cartridge contains a flash chip to store the ROM, along with an ATmega48PA microcontroller and an NRF24L01 to do the talking. Upon powerup, the Game Boy runs code from the ROM, and the microcontroller is in charge of reading button states and sending them to the NRF24L01 for transmission. The program stored on the ROM also allows configuration changes to be made from the Game Boy itself, such as choosing the appropriate wireless channel.

The cartridge transmitter can be used with a variety of receivers. [Andy] has developed a USB HID joystick emulator to allow the Game Boy to be used with PCs, as well as a receiver for the GameCube, too. Yes, that’s right — you can now play Super Smash Bros. with a weirder controller than all your friends. A Super Nintendo version is also in the works. Perhaps the coolest feature, however, is that the cart can use its radio link to communicate with another Game Boy running the same cartridge. [Andy] demonstrates this with a basic game of Pong being played between two Game Boy Advances.

Working on retro hardware can be great fun — things are well documented, parts are cheap, and there’ll be plenty of fans cheering you on, too. [Andy] has even made the hardware available for purchase on Tindie and his website if you’re not quite comfortable rolling your own.

The Game Boy platform remains ripe for hacking – you can even take screenshots with a logic analyzer these days. Video after the break.

Continue reading “Use Your Game Boy As A Wireless Controller”

Tiny Game Boy (That Plays Witcher 3) And Other Things That Blew My Mind

For years Sprite_TM has been my favorite hacker, and yet he continues to have an uncanny ability to blow my mind with the hacks that he pulls off even though I’m ready for it. This weekend at the Hackaday SuperConference he threw down an amazing talk on his tiny, scratch-built, full-operational Game Boy. He stole the badge hacking show with a Rick Roll, disassembled the crypto challenge in one hour by cutting right to the final answer, and managed to be everywhere at once. You’re a wizard Harry Sprite!

Here’s what’s crazy: these are the antics of just one person of hundreds who I found equally amazing at the conference. It feels impossible to convey to you the absolute sincerity I have when I say that SuperCon was far and away the best conference I’ve ever been to or have even heard about. It managed to outpace any hyperbole I constructed leading up to the weekend. This morning felt like I was waking up from a dream and desperately wanted to fall asleep again.

Continue reading “Tiny Game Boy (That Plays Witcher 3) And Other Things That Blew My Mind”

BeagleSNES For Game Boy, Game Boy Advance, NES, And – Yes – SNES

By far the most common use for the Raspberry Pi is shoving a few dozen emulators on an SD card and calling it a day. Everybody’s got to start somewhere, right? There are other tiny, credit card-sized Linux boards out there, and [Andrew] is bringing the same functionality of the Raspi to the BeagleBone Black and BeagleBoard with BeagleSNES, an emulator for all the sane pre-N64 consoles.

BeagleSNES started as a class project in embedded system design, but the performance of simply porting SNES9X wasn’t very good by default. [Andrew] ended up hacking the bootloader and kernel, profiling the emulator, and slowly over the course of three years of development making this the best emulator possible.

After a few months of development, [Andrew] recently released a new version of BeagleSNES that includes OpenGL ES, native gamepad support through the BeagleBone’s PRU, and support for all the older Nintendo consoles and portables. Video demos below.

Continue reading “BeagleSNES For Game Boy, Game Boy Advance, NES, And – Yes – SNES”