From 5780adfcec5c4a3ab0c9d36f708ebd7654de1815 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sat, 26 Sep 2026 18:31:50 +0900 Subject: [PATCH] GT Exit fight mid-palette-change fix. This fix modifies X to add 3 iterations to the loop, it ensures the palette timer is always at 0 for the door transition. It adds 51 cycles and requires no hooks. If you could activate BT without closing the door (currently not possible in MapRando) then the same issue would likely arise, this fixes both. --- patches/ips/vanilla_bugfixes.ips | Bin 328 -> 336 bytes patches/src/vanilla_bugfixes.asm | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/patches/ips/vanilla_bugfixes.ips b/patches/ips/vanilla_bugfixes.ips index 3a5f2768900505f31c3fb8ec4e074fc624c15a0e..9a82fef23579fe224e6f7dced4f670bff42ca84d 100644 GIT binary patch delta 18 acmX@Xbb)C?EeB)bLk8wWEQ}LtPXhowDh7A} delta 9 Qcmcb>bb@I@?Znp802Mg|ivR!s diff --git a/patches/src/vanilla_bugfixes.asm b/patches/src/vanilla_bugfixes.asm index 750034770..9083a1e45 100644 --- a/patches/src/vanilla_bugfixes.asm +++ b/patches/src/vanilla_bugfixes.asm @@ -272,4 +272,18 @@ bootstable: dw $0040 ; boots - blue booster dw $0080 ; boots - spark booster -assert pc() <= !bank_82_free_space_end \ No newline at end of file +assert pc() <= !bank_82_free_space_end + +;; GT: Exit fight mid-palette-change fix. + +; The door transition code assumes the palette counter/timer is 0. +; If the GT fight is exited while GT is changing color, the counter +; can be non-zero, causing the transition to start at the wrong timer +; index. If the index is high enough, this can corrupt the graphics +; during the transition. + +; Include the palette counter/timer in the door transition zero-loop +; counter so the transition starts from the correct index. + +org $82e1e1 ; (Game state Ah (door transition - setup) ;;;) + ldx #$0104