shonumi / gbe-plus

DMG/GBC/GBA emulator and experimental NDS emulator.
GNU General Public License v2.0
527 stars 79 forks source link

Pokemon Trading Card Game 2 (and the original?) IR Issues #62

Open ChrisMcMahon123 opened 6 years ago

ChrisMcMahon123 commented 6 years ago

After reading through the documentation and configuring everything correctly, I'm unable to trade cards or card pop between two instances of the emulator. These two features of the game require the IR port.

Just curious if I'm missing something or if there are still limitations with the IR feature

shonumi commented 6 years ago

The manual mentions a few incompatibilities, however I forgot to add Pokemon TCG 2 to the list. It's in the same category as non-Japanese versions of TCG 1 and the two Bomberman Max games. You're not doing anything wrong, it's just these games are special cases among GBC IR capable titles.

The issue is that both sides need to press the A button at almost the same time (with one side being slightly faster or slower than the other) and then they sync up. Even when the input timings are correct, the games get stuck in a loop, so I began debugging all the code in TCG 1's Card Pop assembly. There's a lot to go through and more tests to run.

The current theory is that these games are designing their internal IR protocol around the HuC-1 memory bank controller (i.e. Hudson's "GB KISS"). The protocol was probably ported over to the GBC without much change, which explains why these select games are so different.

Anyways, once I tackle the HuC-1 later, I'll have a clearer view of what's going on, and the Card Pop disassembly should be complete later this year with any luck. If you're curious for more info on these 4 games, wait for the next Edge of Emulation article to come out sometime tomorrow. I'm putting the finishing details on it, and it goes in more depth about Pokemon TCG 1&2.