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”

There’s A Mew Underneath The Truck Next To The SS Anne

Before we dig into this, I need to spend a paragraph or two conveying the knowledge of a twelve-year-old in 1996. Of course, most Hackaday readers were twelve at least once, but we’re just going to do this anyway. The payoff? This is an arbitrary-code-execution virus for Pokemon, and maybe the most amazing Game Boy hack of all time.

In the first generation of Pokemon games, there is a spectacularly rare Pokemon. Mew, the 151st Pokemon, could learn every move in the game. It was a psychic type, which was overpowered in the first gen. You could not acquire a Mew except by taking your Game Boy to a special event (or to Toys R Us that one time). If someone on the playground had a Mew, they really only had a GameShark.

There was a mythos surrounding Mew. Legend said if you went to the SS Anne and used Strength to move a truck sprite that appeared nowhere else in the game, a Mew would appear. Due to the storyline of the game, you didn’t have the ability to get to this truck the first time you passed it. However, if you started a new game – thus losing all your progress and your entire roster of Pokemon – you could test this theory out. Don’t worry, you can just trade me all your good Pokemon. I’ll give them back once you have a Mew. Screw you, Dylan. Screw you.

Now the Mew truck trick is real. You can do it on a copy of Red or Blue on an original Game Boy. If this hack existed in 1998, kids would have lost their god damned minds.

The basis for this hack comes from [MrCheeze], who created a ‘virus’ of sorts for the first generation of Pokemon games. Basically, given the ability to manually edit a save file, it is possible to replicate this save file over a Game Link cable. The result is a glitchy mess, but each Pokemon game has the same save file when it’s done.

Combine this virus with arbitrary code execution, and you have something remarkable. [MrCheeze] created a save file that allows you to move the truck next to the SS Anne. When the truck is moved, a Mew appears. It’s exactly what everyone was talking about over the sound of their sister’s Backstreet Boys marathon.

The new ‘Mew Truck virus’ is not as glitchy as the first attempt at a self-replicating save file. In fact, except for the music glitching for a few seconds, nothing appears abnormal about this Pokemon virus. It’s only when the Mew truck trick is attempted does something seem weird, and it’s only weird because we know it shouldn’t happen. Combine the self-replicating nature of this virus, and you have something that would have drawn the attention of Big N. This is a masterpiece of Pokemon-based arbitrary code execution and a hack that may never be equaled.

You can check out the video below.

Continue reading “There’s A Mew Underneath The Truck Next To The SS Anne”

Neural Nets And Game Boy Cameras

Released in 1998, the Game Boy camera was perhaps the first digital camera many young hackers got their hands on. Around the time Sony Mavica cameras were shoving VGA resolution pictures onto floppy drives, the Game Boy camera was snapping 256×224 resolution pictures and displaying them on a 190×144 resolution display. The picture quality was terrible, but [Roland Meertens] recently had an idea. Why not use neural networks to turn these Game Boy Camera pictures into photorealistic images?

Neural networks, deep learning, machine learning, or whatever other buzzwords we’re using require training data. In this case, the training data would be a picture from a Game Boy Camera and a full-color, high-resolution image of the same scene. This dataset obviously does not exist so [Roland] took a few close up head shots of celebrities and reduced the color to four shades of gray.

[Roland]'s face captured with the Game Boy Camera (left), and turned into a photorealistic image (right)
[Roland]’s face captured with the Game Boy Camera (left), and turned into a photorealistic image (right)
For the deep machine artificial neural learning part of this experiment, [Roland] turned to a few papers on converting photographs to sketches and back again, real-time style transfer. After some work, this neural network turned the test data back into images reasonably similar to the original images. This is what you would expect from a trained neural network, but [Roland] also sent a few pics from the Game Boy Camera through this deep machine artificial learning minsky. These images turned out surprisingly well – a bit washed out, but nearly lomographic in character.

We’ve seen a lot of hacks with the Game Boy Camera over the years. Everything from dumping the raw images with a microcontroller to turning the sensor into a camcorder has been done. Although [Roland]’s technique will only work on faces, it is an excellent example of what neural networks can do.

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

Smartphone Case For The Retro Gamer

A well-designed phone case will protect your phone from everyday bumps with only as much style flair as you’d like. While protection is usually the only real function of a case, some designs — like [Gabbelago]’s Emucase — add specific utility that you might not have known you needed.

Contrary to most cases, the Emucase fits over your phone’s screen, and the resulting facelift emulates the appearance of a Game Boy for easier — you guessed it — Game Boy emulation play on your smartphone.

Cannibalizing a USB SNES gamepad for its buttons and rubber contact pads, Gabbelago then threaded some wire through the contacts, securing it with copper tape and glue; this provides a measurable level of capacitance to register on the touchscreen. Using heat to bend the sides of the 3D printed case so it can attach to the phone is probably the trickiest part of this cool project. Check out his build instructions for any pointers you need.

Continue reading “Smartphone Case For The Retro Gamer”

Tiniest Game Boy Hides In Your Pocket

This is likely the world’s smallest fully-functional Game Boy Color, able to play all of the games using the tiny direction pad and buttons, with onboard display and battery and in the original form factor. This is an incredible hack which presents a tour de force in hardware and software. This will easily rank in the top five hacks you’ve seen this year.

keychain-redactedI’m sure that many of you have fond memories of your first handheld games. This will be Game Boy for most, and we admit they had fairly decent portability and battery life that puts many smart phones to shame. Despite this, Sprite_TM always dreamed of an eminently more portable version and to his adolescent delight he discovered a key chain version of the Game Boy. Unfortunately, he was duped. The keychain looked like a Game Boy but only functioned as a clock.

But now, decades later, technology has progressed as have his own skills. For his talk at the 2016 Hackaday SuperConference, Sprite_TM actually built his childhood dream.

Continue reading “Tiniest Game Boy Hides In Your Pocket”

DIY Coprocessors For The Game Boy Color

Back in the olden days, when video games still came on cartridges, the engineers and programmers making these carts had a lot of options. One of the most inventive, brilliant, and interesting cartridges to come out of the 90s was Star Fox for the Super Nintendo. Star Fox featured a coprocessor chip, the Super FX, that was effectively a GPU used to draw polygons in the frame buffer. Without this, Star Fox wouldn’t be 3D, Yoshi’s Island wouldn’t be as cute, and there wouldn’t be an always-on processor in your computer with the potential to spy on everything you do.

gameboy-coprocessor-cartridgeThe Super FX chip, the Capcom-developed Cx4 coprocessor, and the Nintendo DSP all lived in a cartridge, but the technology to put a better computer in a cartridge never made it to Nintendo’s handheld devices. Cheap, powerful microcontrollers are everywhere now, and it’s not that hard to make a board with card edge connectors, leading [Anders] to build a Super FX for the Game Boy Color.

Game Boy cartridges are simple — just a memory controller and some memory is all you need. Drop in a microcontroller, and you have a Game Boy coprocessor. This cartridge features the MBC1 memory bank controller, 512kB of Flash, and 8KB SRAM. These are fairly standard parts, but there’s one last trick up the sleeve of this board: a KE04 from NXP, an ARM Cortex-M0+ microcontroller running at 48MHz . This microcontroller is, effectively, the GPU for the Game Boy.

This ARM-powered coprocessor is able to convert the framebuffer into tiles in just 2ms, giving the system plenty of time for image processing and rendering. Due to the limitations of the Game Boy, the best resolution offered by this coprocessor is either 160×96 or 128×128 pixels, short of the complete 160×144 pixel display in the Game Boy Color.

Even though [Anders] is still working on programming this thing to show off the power of his Game Boy coprocessor, he has a few demos to show off. The most impressive is a Wolfenstein-like clone. That’s extremely impressive and categorically impossible on a stock Game Boy Color.

Continue reading “DIY Coprocessors For The Game Boy Color”