
Catch 'em All: Using an Arduino to Trade Pokemon - luu
http://pepijndevos.nl/2015/02/13/catch-em-all.html
======
kaoD
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](http://www.devrs.com/gb/files/gb2pp7.gif)

~~~
im3w1l
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?

~~~
kaoD
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.

------
silveira
I wonder if he can create a Missingno this way.

~~~
kaoD
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!

~~~
slipstream-
"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).

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

~~~
sliverstorm
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](http://en.wikipedia.org/wiki/MissingNo.#Characteristics)

------
slipstream-
Somewhat relevant:
[https://news.ycombinator.com/item?id=9046789](https://news.ycombinator.com/item?id=9046789)

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

