What do you do with a broken Gameboy, a 3″ LCD, a pile of wires, a USB SNES controller, a 32gb SD card, and a Raspberry Pi? You make a pocket emulator, of course!
[Anton] decided he wanted to build an emulator awhile ago. He had a few specific goals in mind: it had to be hand-held, portable, child safe, and usable without a keyboard. He started by stripping the broken Gameboy down to its external shell, then removing all of the internal plastic mounting features with a hot soldering iron. Next was the challenge of fitting everything into the case and powering it. Because his 3″ LCD runs off 12V, [Anton] needed a way to get 5V to the Pi. Lucky for him, it turned out that his LCD’s controller board had a 5V test point/expansion pin-out!
From there it was just a matter of reusing the original Gameboy’s speaker, closing up the case, and loading the emulator! As always, there’s a demo video after the break.
Continue reading “The PiBoy”
[Adan] had an old Game Boy sitting around, and without anything better to do decided to investigate the link cable protocol with a microcontroller. He had a Stellaris Launchpad for the task, but initially had no project in mind. What he came up for this adventure in serial protocols is a first gen Pokemon trade spoofer that allows him to obtain pokemon without having two Game Boys, or for the weird ones out there, “friends.”
The Game Boy link protocol is extremely well documented, so getting data from the Game Boy to the Launchpad was as simple as a soldering up an old link cable connector to a piece of perf board. After figuring out the electronics, [Adan] looked at what happened when two Pokemon games tried to trade pokemon. When two Game Boys are linked, there are two in-game options: trade or battle. Looking at the data coming after the ‘trade’ option, [Adan] found something that could possibly be the data structure of the Pokemon being sent. He reverse-engineered this all by himself before discovering this is also well documented.
Bringing everything together, [Adan] figured out how to trade non-existent Pokemon with a small dev board. Right now he’s only transmitting Pokemon that are hard-coded on the Launchpad, but it’s very possible to transmit the Pokemon values in real-time over USB.
Thanks [Dan] for sending this in, and no, we don’t know what’s up with the influx of Pokemon posts over the last week. Video of the spoof below.
Continue reading “Spoofing Pokemon Trades”
[Dave] has a Game Boy Printer and loves the Mario-themed Easter egg that prints while holding the feed button during power-up. When he heard that Microchip gave us some Fubarino boards for our Easter Egg Contest, this hardware immediately came to mind and he set out to add a Hackaday Easter egg to the printer.
To tinker with the hardware, [Dave] built on the work of [Furrtek]—featured here a few years ago—which simplified the process of printing directly from an Arduino board. Connecting the TX and RX lines of the Arduino triggers the new Easter egg. He demonstrates printing both of the hidden messages in the video below.
Continue reading “Fubarino Contest: Game Boy Printer”
With WiFi, Wonder Trade, and new Pokemon that are freakin’ keys, you’d think the latest generation of everyone’s reason to own a Nintendo portable is where all the action is, right? Apparently not, because Pokemon Blue just became a development tool for the Game Boy.
Despite all notions of sanity, this isn’t the first time we’ve seen someone program a Game Boy from inside a first generation Pokemon game. Around this time last year, [bortreb] posted a tool assisted run that deposited and threw away in-game items to write to the Game Boy’s RAM. Using this method, [bortreb] was able to craft a chiptune version of the My Little Pony theme inside Pokemon Yellow.
A year later, [TheZZAZZGlitch] has gone above and beyond what [bortreb] did. Instead of a tool assisted run, [ZZAZZ]’s hack can be done manually on a real Game Boy. This trick works by using an underflow glitch to obtain item ‘8F’ in the player’s inventory. Here’s a great tutorial for doing that. With this 8F item, a few items can be tossed and a ‘programming’ mode is activated where code can be written to RAM by walking to an X Y position on the map, using the 8F item, and writing a program byte by byte.
The maximum amount of code that can be written to the Game Boy RAM is 254 bytes, just large enough for [TheZZAZZGlitch] to write a very, very simple version of Akranoid, Breakout, or one-player Pong. Not much, but very, very impressive.
Video of [ZZAZZ] ‘jailbreaking’ his copy of Pokemon Blue available below.
Continue reading “Pokemon Blue Becomes An IDE”
Synth heads and electronic music aficionados the world over love a good rackmount synth. These days, though, synthesis tends more toward small, digital, and ‘retro’ rather than the monstrous hulking behemoths of the 60s and 70s. [gieskes] might be ahead of the curve, here, as he’s built a Game Boy module for his eurorack synthesizer.
The software running on [gieskes]’s Game Boy is the venerable Little Sound DJ (LSDJ), the last word in creating chiptunes on everyone’s favorite 8-bit handheld. As with any proper Game Boy used in chiptunes, there are a few modifications to the 1980s era hardware. [gieskes] tapped into the cartridge connector with a ‘repeat’ signal that provides slowed down, noisy signals for LSDJ. There’s also pitch control via CV, and the audio output is brought up to 10Vpp
In the video below, you can see [gieskes]’ euroboy in action with a few Doepfer synth modules. There’s also a very cool pulse generator made from an old hard drive in there, so it’s certainly worth the watch.
Continue reading “A Modular Game Boy Synthesizer”
In case you’re not up to speed with the world of Pokemon, nearly every species of this game’s titular creatures have a ‘shiny’ variety – a differently colored sprite for each pokemon. As far as gameplay goes, they’re exactly the same as their non-shiny brethren, but the shiny varieties are so impossibly rare not many players have seen them. [dekuNukem] over on Youtube has come up with a great way to find these shiny Pokemon automatically with the Hackaday reader’s favorite tools – an Arduino and a few parts from Sparkfun.
The build hinges on the fact that all shiny pokemon have a short animation whenever the player encounters them in the wild. This setup uses a fishing rod, so an Arduino Micro first presses the Y button to cast the rod, while the ‘duinos ADC listens to the audio signal until a bite is indicated.
A light sensor taped to the bottom screen of the 3DS then measures the amount of time the screen is blacked out. The extra animation for every shiny pokemon means this blackout period is about half a second longer. If the Arduino doesn’t see a shiny, it ‘runs away’, but if a shiny is detected a buzzer sounds to tell the extremely lazy pokemon trainer they have a shiny on their line.
From the video, it took about 36 minutes to find a single shiny pokemon, and about 8 shinies in the three hours of testing this rig has under its belt.
Continue reading “Finding Shiny Pokemon Automatically”
After seeing a Game Boy emulator for the first time, [Thijs] was amazed. A small box with just a handful of electronics that turns a Game Boy cartridge into a file able to be run on an emulator is simply magical. [Thijs] has learned a lot about GB and GBC cartridges in the mean time, but still thinks the only way to really learn something is to roll up your sleeves and get your hands dirty. Thus was born [Thijs]’ Game Boy cartridge dumper, powered by a pair of I2C port expanders and a Raspberry Pi.
Inspired by a build to dump ROMs off Super Nintendo games with the help of a Raspberry Pi, [Thijs] grabbed all the hardware necessary to create his own GB cart dumper. A DS Lite cartridge adapter provided the physical connection and a pair of MCP23017 I/O expanders – one soldered to a Slice of PI/O board – provided the electrical connections.
In the end, [Thijs] managed to dump the ROMs off the Japanese editions of Pokemon Yellow and Gold in about 13 minutes. This is a much slower transfer rate of 26 minutes per SNES cart in the post that gave [Thijs] the inspiration for this build. Still, [Thijs] will probably be the first to say he’s learned a lot from this build, especially after some problems with dumping the right banks from the cartridge.