Pokemon Artificial Intellegence

Pokemon Artificial Intelligence Is Smarter Than You

Who out there hasn’t angrily thrown a game controller across the room after continually getting killed by some stupid game-controlled villain? That is such a bummer! You probably wished there was some way to ‘just get past that point’. To take a step in that direction, [Ben] created an Artificial Intelligence program that will win at Pokemon Blue for Game Boy Advance.

The game is run in a Game Boy Advance emulator known as Visual Boy Tracer, which itself is a modified version of the most common GBA emulator, Visual Boy Advance. What sets Visual Boy Advance apart from the rest is that it has a memory dump feature which allows the user to send both the RAM and the ROM out of the emulator. The RAM holds all values currently needed by the emulator, this includes everything from text arrow flash times to details about currently battling Pokemon to the players position in the currently loaded map. The memory dump feature is key to allow the AI to understand what is happening in the game.

Continue reading “Pokemon Artificial Intelligence Is Smarter Than You”

Game Boy Vs. Electronic Shelf Labels

SANYO DIGITAL CAMERAWhile they’re probably rare as hen’s teeth in the US, there have been a few major stores around the world that have started rolling out electronic shelf labels for every item in the store. These labels ensure every item on a shelf has the same price as what’s in the store’s computer, and they’re all controlled by an infrared transceiver hanging on the store’s ceiling. After studying one of these base stations, [furrtek] realized they’re wide open if you have the right equipment. The right equipment, it turns out, is a Game Boy Color.

The shelf labels in question are controlled by a base station with a decidedly non-standard carrier frequency and a proprietary protocol. IR driver chips found in phones are too slow to communicate with these labels, and old PDAs like Palm Pilots, Zauruses, and Pocket PCs only have an IrDA chip. There is one device that has an active development scene and an IR LED connected directly to a CPU pin, though, so [furrtek] started tinkering around with the hardware.

The Game Boy needed to be overclocked to get the right carrier frequency of 1.25 MHz. With a proof of concept already developed on a FPGA board, [furrtek] started coding for the Game Boy, developing an interface that allows him to change the ‘pages’ of these electronic labels, or display customized data on a particular label.

There’s also a much, much more facepalming implication of this build: these electronic labels’ firmware is able to be updated through IR. All [furrtek] needs is the development tools for the uC inside one of these labels.

There’s a great video [furrtek] put together going over this one. Check that out below.

Continue reading “Game Boy Vs. Electronic Shelf Labels”

Twitch Plays Pokémon: Better Than Prime Time TV

What do you get when you put together a classic Game Boy game, some glue code, a streaming video website and 1 internet? Twitch Plays Pokémon (TPP), a social experiment where thousands of people “cooperatively” play a game of Pokémon Red/Blue. TPP was created by an anonymous Australian programmer who enjoyed the SaltyBet interactive channel on twitch.tv. Rather than use SaltyBet’s method of having users interact via an external website, [TPP’s creator] decided to use twitch’s own IRC based chat servers. Starting with VisualBoyAdvance, a popular C/C++ based Game Boy emulator, [TPP’s creator] began building the system. [TPP’s creator] went with python to create the web-to-emulator interface. A JavaScript app displays the live moves on the right side of the screen.

Gameplay is simple – users type their command (Up, Down, A, B) into their IRC or web client. In the original configuration, commands were processed in the order they arrived at the game. The system worked until the whole thing went viral. With thousands of people entering commands at any given time, poor “RED” would often be found spinning in place, or doing other odd things. The effect is so compelling that even [Randal Munroe] has written an XKCD entry about it. To help the players get through some of the tricky parts of the game, [TPP’s creator] added a game mode selection. Users can play in “Democracy” where the system takes votes for several seconds, then issues the highest voted command. The original anything goes game mode was renamed “Anarchy”. Switching from one mode to the other is determined by the users themselves in real-time.

[Devon], one of our readers, has been busy as well. He’s written up a tutorial on turning a Raspberry Pi into a dedicated TPP viewer. We’d love to see a TPP battlestation – a Game Boy modified to display TPP, as well as send commands to the IRC servers when buttons are pressed. Who will be the first reader to knock that hack out?

The PiBoy

piboy

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”

Spoofing Pokemon Trades

[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 (dead link, try Internet Archive), 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”

Fubarino Contest: Game Boy Printer

fubarino-contest-gameboy-printer

[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”

Pokemon Blue Becomes An IDE

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”