From f3d1e99421fd1a96b7f872f6e28e976af4c57dcc Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 19 Jan 2022 19:52:01 +0100 Subject: [PATCH 1/2] Fix Tower of Hera boss music bug --- hooks.asm | 4 ++-- music.asm | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hooks.asm b/hooks.asm index f0534dd..f0fa654 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1858,12 +1858,12 @@ NOP #8 ;JSL.l OnLoadMap ;================================================================================ org $028B8F ; <- 10B8F - Bank02.asm:2236 (LDA $7EF374 : LSR A : BCS BRANCH_BETA) -LDA $7EF00F : BNE + : NOP +JSL CheckHeraBossDefeated : BNE + : NOP LDX.b #$F1 : STX $012C + ;================================================================================ org $029090 ; <- 11090 - Bank02.asm:3099 (LDA $7EF374 : LSR A : BCS BRANCH_GAMMA) -LDA $7EF00F : BNE + : NOP +JSL CheckHeraBossDefeated : BNE + : NOP STX $012C ; DON'T MOVE THIS FORWARD OR MADNESS AWAITS + ;================================================================================ diff --git a/music.asm b/music.asm index 7973a49..f418dde 100644 --- a/music.asm +++ b/music.asm @@ -283,3 +283,10 @@ Overworld_MosaicDarkWorldChecks: .done RTL ;-------------------------------------------------------------------------------- + +;-------------------------------------------------------------------------------- +; Check if the boss in ToH has been defeated (16-bit accumulator) +CheckHeraBossDefeated: + LDA $7EF00F : AND #$00FF + RTL +;-------------------------------------------------------------------------------- From 78148fb4f3cdbc8df8d0c00b2de71f4ac69dcbbb Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Thu, 20 Jan 2022 01:30:21 +0100 Subject: [PATCH 2/2] Fix witch item bug --- LTTP_RND_GeneralBugfixes.asm | 3 ++- bugfixes.asm | 7 +++++++ hooks.asm | 16 ++++++++++++++++ stats.asm | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 20030f6..1b5b6ea 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -343,7 +343,8 @@ warnpc $B08000 ;$3B reserved for downstream use ;$3F reserved for internal debugging ;================================================================================ -;RAM +;RAM +;$7E021B[0x1]: Used by race game instead of $0ABF to avoid witch item conflict ;$7EC900[0x1F00]: BIGRAM buffer ;$7EF000[0x500]: SRAM mirror First 0x500 bytes of SRAM ;$7F5000[0x800]: Rando's main free ram region diff --git a/bugfixes.asm b/bugfixes.asm index 0b50407..d438755 100644 --- a/bugfixes.asm +++ b/bugfixes.asm @@ -214,3 +214,10 @@ FixJingleGlitch: .exit RTL + +;-------------------------------------------------------------------------------- +SetOverworldTransitionFlags: + LDA #$01 + STA $0ABF ; used by witch + STA $021B ; used by race game + RTL diff --git a/hooks.asm b/hooks.asm index f0fa654..a04d542 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2525,6 +2525,22 @@ JSL ParadoxCaveGfxFix NOP ;================================================================================ +;================================================================================ +; Resolve conflict between race game and witch item +;-------------------------------------------------------------------------------- +; Change race game to use $021B instead of $0ABF for detecting cheating +org $0DCB9D ; STZ.w $0ABF +STZ $021B + +org $0DCBFE ; LDA.w $0ABF +LDA $021B + +org $02BFE0 ; LDA.b #$01 : STA.w $0ABF +JSL SetOverworldTransitionFlags +NOP +; For mirroring, the new flag is set in IncrementOWMirror in stats.asm +;================================================================================ + ;================================================================================ ; Player Sprite Fixes ;-------------------------------------------------------------------------------- diff --git a/stats.asm b/stats.asm index 40df03a..f8fc983 100644 --- a/stats.asm +++ b/stats.asm @@ -428,6 +428,7 @@ IncrementMagicUseCounterOne: !OW_MIRROR_COUNTER = "$7EF43A" IncrementOWMirror: PHA + LDA #$08 : STA $021B ; fail race game LDA !LOCK_STATS : BNE + LDA $7EF3CA : BEQ + ; only do this for DW->LW LDA !OW_MIRROR_COUNTER : INC : STA !OW_MIRROR_COUNTER