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

Breaking Out A Game Boy Link Cable

[Samuel] is working on one of the most important electronics projects of our generation. He’s building a device for the Game Boy that will allow Pokemon trades between generation II and III. Yes, This means bringing your Charmander from Pokemon Red to your team in Pokemon Ruby, Sapphire, or Emerald. and finally completing the National Dex you’ve been working on for 20 years. Before he gets to designing this system, he first needs to listen in on the Game Boy Link Cable, and that means creating a breakout board.

The Game Boy Link Cable – sometimes inaccurately referred to as the Zelda cable – is a special proprietary connector. The design is well documented, but unlike the Wii Nunchuck controller, there’s no readily available breakout board available for this piece of obsolete technology.

Together with a his friend [David], [Samuel] loaded up a copy of Eagle and designed a board that will fit on a small piece of copper clad FR4. This design was then sent over to a small CNC mill, The traces were machined away, and a sextet of pins were soldered into the holes.

With a breakout board for the Game Boy Link Cable, [Samuel] now has a great platform for peering into the strange and magical world of Pokemon. He’ll be using a Teensy microcontroller for his trading device, and with several similar projects already completed by others around the Internet, the potential for a Gen II to Gen III Pokemon trader is palpable.

Mythical Game Boy Advance Colors Hacked Into Reality

When it was announced in 2000 at a Nintendo trade show, the Game Boy Advance was clad in beautiful silver plastic, accented with brilliant orange buttons. As is usually the case with product introductions, the first color and style displayed to be public became the most popular. There was one problem with this silver and orange GBA; Nintendo never put it into production. Fast forward fifteen years, and [Michael Choi] decided it was time to make his own silver and orange Game Boy. It’s a great introduction to mold making and very detailed painting, and a useful guide for turning engineering prototypes into beautiful objects.

[Michael]’s build began with an aftermarket shell, painted with Tamiya spray paints. The color is remarkably accurate, considering the only pictures for the silver and orange Game Boy are fifteen years old, and with the right painting technique, these colors are indistinguishable from a properly colored, injection molded piece of plastic.

GBAsquareThe buttons were not as easy as the shell. [Michael] originally decided casting would be the best solution, but after multiple attempts, he couldn’t get the color right. Even with opaque dyes in the resin, the buttons would still come out slightly translucent. In the end, [Michael] decided to paint the original buttons.

This casemod isn’t just about changing the color of the enclosure. [Michael] also wanted is Game Boy to have the backlight found in the second revision clamshell GBA. This was easily acquired on eBay, and with a few slight hardware modifications and a beautiful glass lens to replace the plastic occupying the bezel, [Michael] has a gorgeous Game Boy Advance, taken straight from a press event fifteen years ago.

Use The Internet To Get Your Kadabra To Evolve

If you grew up playing Pokemon Red or Blue, you might have moved far away from your childhood friends by now. If you’re still playing Pokemon Red or Blue, you can now literally reconnect with these friends using [Pepijn]’s new and improved Game Boy link that lets players trade Pokemon over the internet.

Based on [Pepijn]’s previous work building an Arduino-based Pokemon storage system (which was inspired by a separate project that was able to spoof trades), the device allows a Game Boy (including Pocket, Color, and Advance versions) to connect to the Internet via a Teensy shield. The online waiting room software is called TCPoke which facilitates the Internetting of the Game Boys. From there, all you have to do is connect via the project’s wiki!

The TCPoke software is available on the project’s site. Also, be sure to check out the video below which shows a demonstration of how the software works. There is noticeable delay compared to a direct link between Game Boys, but it functions very well. We didn’t see this link system work for a battle, but it would be interesting to see if it is possible. If so, you might never have to go to a Pokemon League meeting again!

Continue reading “Use The Internet To Get Your Kadabra To Evolve”

Hackaday Links Column Banner

Hackaday Links: March 8, 2015

Nintendo is well known for… odd… hardware integration, but this video takes it to a new level. It’s a Gamecube playing Zelda: Four Swords Adventure, a game that can use a Game Boy Advance as a controller. [fibbef] is taking it further by using the Gamecube Game Boy Advance player to play the game, and using another GBA to control the second Gamecube. There’s also a GBA TV tuner, making this entire setup a Gamecube game played across two Gamecubes, controlled with a Game Boy Advance and displayed on a GBA with a TV tuner. The mind reels.

TI just released a great resource for analog design. It’s the Analog Engineer’s Pocket Reference, free for download, if you can navigate TI’s site. There are print copies of this book – I picked one up at Electronica – and it’s a great benchtop reference.

A few months ago, a life-size elephant (baby elephants are pretty small…) was 3D printed at the Amsterdam airport. A model of the elephant was broken up into columns about two meters tall. How did they print something two meters tall? With this add-on for a Ultimaker. It flips an Ultimaker upside down, giving the printer unlimited build height. The guy behind this – [Joris van Tubergen] – is crazy creative.

And you thought TV was bad now. Here’s the pitch: take a show like Storage Wars or American Pickers – you know, the shows that have people go around, lowball collectors, and sell stuff on the Internet – and put a “Tech” spin on it. This is happening. That’s a post from a casting producer on the classic cmp message boards. Here’s the vintage computer forums reaction. To refresh your memory, this is what happens when you get ‘tech’ on Storage Wars. Other examples from Storage Wars that include vastly overpriced video terminals cannot be found on YouTube. Here’s a reminder: just because it’s listed on eBay for $1000 doesn’t mean it’ll sell on eBay for $1000.

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”

The Proper Use For A Gameboy Advance Carrying Case

About a decade ago, Nintendo released a Game Boy Advance carrying case in the shape of a Game Boy Advance. It was the obvious answer to the original brick Game Boy carrying case every eight year old had in 1990. This jumbo-sized Game Boy Advance case also makes a really good platform for a console mod, which is exactly what [frostefires] got when he put an N64 in one.

This isn’t the first time we’ve seen this bit of old Nintendo paraphernalia used to house an N64. A few years ago, [Hailrazer] used the same GBA carrying case as the body of an N64 build. There were a few shortcomings in that build, most importantly the removal of the D pad.  [frostedfires]’ build fixes this oversight.

Inside the GBA enclosure is a 4.3 inch screen, a replacement Gamecube joystick, an SNES D pad, and of course the entire N64 circuit board with a few modifications.

[frostedfires] entered this into a ‘Shark Tank’-ish  competition at school, and this build was so impressive he won first place. Link to the full build thread here.