jojobear13 / shinpokered

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

Bug: 'Spinner' tiles don't animate properly #294

Closed wrulfy closed 10 months ago

wrulfy commented 10 months ago

The spinner tiles in rocket hideout don't animate properly.

Tried both floors. Didn't test yet if the tiles in Viridian Gym do the same, in case this is an issue with the factory tileset and not the gym tileset.

Only tile $20 animates properly. Tiles $21, $30, and $31 remain static.

Found out after trying to implement the ld a, $1 in .asm_45001 to speed up spinners in my hack and testing it, that only one of the four spinner tiles animated, then tried on shinpokered to make sure it wasnt an issue on my end.

Due the spinners being even faster in shinpokered, the issue is a bit harder to see, but it still happens. Just try to ride some of the lengthier spinners and is more vissible.

Tried to emulate it on the most recent 64bit BGB for windows just for good measure, the issue happens with that emulator as well.

Used pokered.gbc from Pret as the base and the shin_pokemon_red_v1.24.0.bps as patch, patched with MarcRobledo's online patcher.

jojobear13 commented 10 months ago

Gonna think on this one for a bit. The reason the spinner tiles animate is the same reason they are unbearably slow. The game is hot-swapping the tiles on the fly between the gym/facility tileset and the loaded spinner tiles, taking 4 whole frames per single world update to accomplish. There has to be a more efficient way to do this. Might have to re-write some stuff from scratch.

EDIT: Hooray! Now it updates the tiles without needing vblank.