/PokemonGB_Online_Trades

Adds support for Online trading to Pokémon RBY, GSC and RSEFRLG

Primary LanguagePythonMIT LicenseMIT

PokemonGB_Online_Trades

This is an overlay for Pokémon Red/Blue/Yellow, Gold/Silver/Crystal and Ruby/Sapphire/Emerald/Fire Red/Leaf Green which aims at adding Online Trading support.

Two interfaces are currently available. One for a GB Link Cable to USB Adapter, and the other for BGB.

It focuses on safety for the end Device's data (more on that later) and speed (by having some optimizations put in place).

Features

2-Player Trade

Register to a server's room and trade with another player, just like you would in person!

Comunication Modes

The program supports both a Synchronized mode, in which a single byte at a time is exchanged (just like when using the original Link Cable), and a Buffered mode.

When using Buffered mode, the players have to initialize a fake trade (which the program will automatically close) in order to prepare their own data. Once the data is ready, a single transfer will send it to the other player, who will be able to start the actual trade using it. This comunication mode, although slower, can be safer if one of the players has connectivity issues.

Pool Trade

Exchange your Pokémon with one at random from the Server's Pool, and make it available for other players!

Safety First

Each byte which is sent to your Device is cleaned using Sanity Checks. They make sure your game doesn't crash due to another player's actions.

Said checks can also be removed, if one so chooses.

Installing the prerequisite packages

Python >= 3.6 is required in order to run this.

Run pip install websockets.

If you are using the USB adapter, also run:

pip install pyserial, pip install pyUSB and pip install winusbcdc.

Using the GB Link Cable to USB Adapter

Run python ./usb_trading.py. If the adapter is inserted, it should be detected.

Using BGB

Run python ./emulator_trading.py. Once you're out of the program's menu, and you have started BGB, you can then left click on the actively running BGB window, and click Link->Connect->Ok. It should connect to the emulator, once that is done.

Trading using Gen3 games

The software currently makes use of the Pokemon-Gen3-to-GenX project to add support to trading using Pokémon Ruby/Sapphire/Emerald/Fire Red/Leaf Green.

As such, you must first multiboot into it using the "m" option. Then, you can select the Gen 3 option to trade.

If you're using the GB Link Cable to USB Adapter, updating to a reconfigurable firmware is EXTREMELY suggested for trading using Gen 3 games. One is available here.