From 92f17e88120b01ff57f02fe13696556419b4221c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 30 Jun 2019 19:19:26 -0400 Subject: Document pokemon_animations sprite ptr bug --- src/pokemon_animation.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index a6d57b7de..340327475 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -867,6 +867,11 @@ u8 GetSpeciesBackAnimSet(u16 species) #define tSaved0 data[4] #define tSaved2 data[5] +// BUG: In vanilla, tPtrLo is read as an s16, so if bit 15 of the +// address were to be set it would cause the pointer to be read +// as 0xFFFFXXXX instead of the desired 0x02YYXXXX. +// By dumb luck, this is not an issue in vanilla. However, +// changing the link order revealed this bug. #if MODERN #define ANIM_SPRITE(taskId) ((struct Sprite *)((gTasks[taskId].tPtrHi << 16) | ((u16)gTasks[taskId].tPtrLo))) #else -- cgit v1.2.3