jojobear13 / shinpokered

Mostly-vanilla hack of Pokémon Red/Blue focused on bugfixes and trainer ai
209 stars 42 forks source link

Compatibility error with Yellow #254

Closed DiabloStorm closed 1 year ago

DiabloStorm commented 1 year ago

bgb00006 bgb00007 bgb00008

FYI name was not Originally GEY.

Traded with yellow, it even changed the OT and ID. Seems like a major bug. First noticed it when I tried to walk around and was out of usable pokemon. Yellow's game doesn't recover after blacking out. Can't use potion on it either, this essentially borks the entire save file. (unless i can manage to trade back, luckily i'm on the square i need to be standing on)

Here is the pikachu received. bgb00006 (2) Name deleted from default "PIKACHU" bgb00007 (2) OT completely missing, ID intact tho.

This is retail Yellow Pikachu <-> Shin Red Pidgey

Anyway, good luck with this one, maybe it's because yellow's pikachu has special data attached that nobody here anticipated, but I wouldn't know. If you want to reproduce, I traded a sacrificial level 3 pidgey for yellow's pikachu at the earliest point you can trade in yellow.

jojobear13 commented 1 year ago

I just ran an experiment with my latest local build and didn't run into any issues. Here is a video (zipped and 7zipped due to github's file restrictions) that shows what I did. 2023-01-26 18-12-11.zip

Here is the test folder with the files I used in case you want to try and replicate the video. test.zip

To me, it almost looks a little like packet loss. Like data is being dropped mid-communication. The pidgey didn't transfer the first three characters of its name, so the receiving game loads data in the wrong place and then asks for three more bytes worth of garbage data to fill the whole request.

It's also possible this might be a bug with BGB's link functionality. I don't really know of an emulator that does it perfectly because most game boy games that use the link cable had zero data integrity checks.

DiabloStorm commented 1 year ago

Yeah, BGB is a possibility.

Though, I trade evolved a bunch of other pokemon with a randomized retail red version and didn't encounter this.

DiabloStorm commented 1 year ago

I'll attempt this again with my backup saves in a bit. And then see if there is any difference with the files you used.

DiabloStorm commented 1 year ago

This was likely BGB.

Selecting Listen + Connect on both BGB windows reproduces error.

Selecting Listen on one and Connect on the other trades normally.

image