Machine Inside Of A Chip: How Sprite_TM Built The FPGA Game Boy Badge

Kids of the 1990’s would call you a liar if you told them that within thirty years you’d go to a conference and be handed a Super Nintendo Entertainment System to wear around your neck. But that’s what happened with the badge Jeroen Domburg, aka [Sprite_TM], designed for the 2019 Hackaday Superconference. It’s built in the Game Boy form factor, complete with a cartridge slot, beautiful screen, and the familiar button layout. But there’s so much more here, like the HDMI port on the bottom and the ability to completely reconfigure the device by dropping a binary file onto it over USB.

Of course what makes this possible is the FPGA at the heart of the design. The story of how the badge was developed is shared in great detail during Sprite’s Supercon talk. The timeline, the hardware choices, and the oopses along the way make for a great story. But what you really don’t want to miss is how he built the machine inside of the FPGA — the collection of Verilog code known as “gateware” that brings together the System-on-a-Chip (SoC). From his delight at being able to spawn more processor cores by changing a single variable, to the fascinating SNES-inspired graphics subsystem, the inside story shared below is even more interesting than the physical device itself.

Continue reading “Machine Inside Of A Chip: How Sprite_TM Built The FPGA Game Boy Badge”

Gigantic FPGA In A Game Boy Form Factor, 2019 Supercon Badge Is A Hardware Siren Song

Look upon this conference badge and kiss your free time goodbye. The 2019 Hackaday Superconference badge is an ECP5 FPGA running a RISC-V core in a Game Boy form factor complete with cartridge slot that is more open than anything we’ve ever seen before: multiple open-source CPU designs were embedded in an open system, developed using the cutting-edge in open-source FPGA tools, and running (naturally) open-source software on top. It’s a 3,000-in-one activity kit for hardware people, software people, and everyone in between.

The brainchild of Jeroen Domburg (aka Sprite_TM), this design has been in the works since the beginning of this year. For more than 500 people headed to Supercon next week, this is a source of both geeky entertainment and learning for three action-packed days and well beyond. Let’s take a look at what’s on the badge, what you need to know to hack it, and how the design serves as a powerful development tool long after the badge hacking ceremonies have wrapped up.

Continue reading “Gigantic FPGA In A Game Boy Form Factor, 2019 Supercon Badge Is A Hardware Siren Song”

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.

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”

Novice Coders Can Create Classic Game Boy Games

It takes a lot of work to build a modern video game. Typically an entire company will spend months (at least) developing the gameplay, selecting or programming an engine, and working out the bugs. This amount of effort isn’t strictly necessary for older video game systems though, and homebrew developers are quite often able to develop entire games singlehandedly for classic systems. In the past it would have taken some special software, programming knowledge, and possibly hardware, but now anyone can build games for the original Game Boy with minimal barriers of entry.

The project is known as GB Studio and allows people to develop homebrew games for the 8-bit handheld system without programming knowledge. Once built, the games can be played on any emulator or even loaded onto a cartridge and played on original hardware if a flash cart is available. Graphics can be created with anything that can create a .png image, and there are also some features that allow the game to be played over a web browser or on a mobile device.

While it seems like the gameplay is limited to RPG-style games, this is still an impressive feat, and highly useful for anyone curious about game development. It could also be an entry into more involved game programming if it makes the code of the games available to the user. It could even lead to things like emulating entire cartridges on the original hardware.

Thanks to [Thomas] for the tip!

Continue reading “Novice Coders Can Create Classic Game Boy Games”

Super Mario Land DX Game Boy

Super Mario Land DX ROM Hack Shows What Game Boy Could Have Looked Like

It was about time (Mario Time) that Super Mario Land for the original Game Boy was revisited. The game served as the entry point into the world of portable gaming for millions, and it was an early example of the type of adventure players could expect from a handful of AA batteries. The original Game Boy system itself may have only been able to display four shades of grey, however, that never stopped players of Super Mario Land from imagining what the game would have looked like in stunning color. Now thanks to [toruzz] we no longer have to imagine, because their Super Mario Land DX ROM Hack does just that…and then some.

The Super Mario Land DX ROM hack adheres to the Game Boy Color’s 16-bit color palette, so it actually runs on real hardware. No changes to the gameplay were made and it also runs in the native 10:9 aspect ratio for the Game Boy. According to the patch readme file, it is recommended to use a legally sourced dump of the 1.0 version of Super Mario Land and utilize Lunar IPS to apply the patch. Additionally a CRC check sum is provided to ensure everyone is working from the same starting point.

Super Mario Land was a launch title for the Game Boy in 1989, but there was another handheld game system that released that year as well (the Atari Lynx). The Lynx featured a full color backlit LCD display, so it was not as if handheld game systems of the era were restricted to being monochromatic. Granted the Lynx came with a price tag nearly twice that of the Game Boy, but a transformative ROM hack such as the Super Mario Land DX one can serve almost as an alternate history. An alternate history that we all can experience now be it on a desktop or in true portable form.

To see the Super Mario Land DX ROM Hack in motion, there is the gameplay video from YouTube user Vincent Hernandez below:

Continue reading “Super Mario Land DX ROM Hack Shows What Game Boy Could Have Looked Like”

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.