Hacker News new | past | comments | ask | show | jobs | submit login
Catch 'em All: Using an Arduino to Trade Pokemon (pepijndevos.nl)
72 points by luu on Feb 13, 2015 | hide | past | favorite | 11 comments



This brought back some memories.

In the GBA days I saw a schematic to link the GB classic to a parallel port[0] and asked my older brother (I was still a child) to build it because I dreamed of trading my Pokémon online, just tunneling the data over the internet.

Unfortunately the GB link was engineered to work under low latencies only and my dream was crushed. I'm not sure if it was the games lacking support for lagged packets or if it was the hardware, but it just didn't work. It worked for local communication with an emulator, though!

Maybe now, with low-latency fiber all around, my dream is feasible? Contemporary Pokémon games are internet-ready so I guess it's not worth the effort, but it might be fun to live that dream again :)

[0] http://www.devrs.com/gb/files/gb2pp7.gif


BGB has link over tcp/ip. I have only tried it locally so I don't know about latency problems. Maybe you could lower the emulation speed?


You've hit the nail :) Indeed, modern emulators seem to lower the emulation speed: the game varies its speed and stutters (I guess depending on each packet's actual latency) when using the link over Bluetooth in an Android emulator.

IIRC, the connection was lost when the GB couldn't synchronize with its peer. I wanted it to work with the real GB, hit that wall and unfortunately lost interest.


I wonder if he can create a Missingno this way.


Definitely. You can fill the data structures to make any Pokémon imaginable (Missingno was just particularly odd data), store it in the Arduino ROM (instead of grabbing the traded Pokémon) and let the magic happen.

This made me think of real-life Pokémon vending machines :) Or even recreating a physical Bill's PC!


"particularly odd data"?

MISSINGNO. is basically just a certain species value (decimal 31, 32, 50, 52, 56, 61, 62, 63, 67, 68, 69, 79, 80, 81, 86, 87, 94, 95, 115, 121, 122, 127, 134, 135, 137, 140, 146, 156, 159, 160, 161, 162, 172, 174, 175 or 181).


Which is particularly odd because those values shouldn't happen in regular gameplay (although they did!)


It was a pretty normal corner-case bug surrounding the shared use of memory space.

In short, the address used to specify creature ID served double-duty, and in a certain case does not get cleared properly.

http://en.wikipedia.org/wiki/MissingNo.#Characteristics


I accidentally created some of them when building this.



You also can, in some emulators, simulate two GameBoys with a link cable.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: