From cb0d0cd4d04e1a6c6bd6c3f603a5c306828ec3fd Mon Sep 17 00:00:00 2001 From: Kevin Cathcart Date: Tue, 13 Mar 2018 02:47:22 -0400 Subject: [PATCH] Fix Graphical Corruption. Also fix possible latent bug from lack of indoors checking. --- LTTP_RND_GeneralBugfixes.asm | 1 + compression.asm | 29 +++++++++++++++++++++++++++++ hooks.asm | 2 +- shopkeeper.asm | 27 --------------------------- 4 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 compression.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 3ed51ba..95a05ce 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -159,6 +159,7 @@ incsrc openmode.asm incsrc quickswap.asm incsrc endingsequence.asm incsrc cuccostorm.asm +incsrc compression.asm incsrc retro.asm incsrc dpadinvert.asm warnpc $A58000 diff --git a/compression.asm b/compression.asm new file mode 100644 index 0000000..454e96a --- /dev/null +++ b/compression.asm @@ -0,0 +1,29 @@ +;-------------------------------------------------------------------------------- +ParadoxCaveGfxFix: + ; Always upload line unless you're moving into paradox cave (0x0FF) from above (0x0EF) + LDA $1B : BEQ .uploadLine + LDX $A0 : CPX #$00FF : BNE .uploadLine + LDX $A2 : CPX #$00EF : BNE .uploadLine + + ;Ignore uploading four specific lines of tiles to VRAM + LDX $0118 + ; Line 1 + CPX #$1800 : BEQ .skipMostOfLine + ; Line 2 + CPX #$1A00 : BEQ .skipMostOfLine + ; Line 3 + CPX #$1C00 : BEQ .uploadLine + ; Line 4 + CPX #$1E00 : BEQ .uploadLine + +.uploadLine + LDA.b #$01 : STA $420B + +.skipLine + RTL + +.skipMostOfLine + ; Set line length to 192 bytes (the first 6 8x8 tiles in the line) + LDX.w #$00C0 : STX $4305 + BRA .uploadLine +;-------------------------------------------------------------------------------- diff --git a/hooks.asm b/hooks.asm index 48eac74..b9433ae 100644 --- a/hooks.asm +++ b/hooks.asm @@ -2152,6 +2152,6 @@ Overworld_Entrance_BRANCH_RHO: ; branch here to continue into door ;================================================================================ ; Paradox Cave Shopkeeper Fixes ;-------------------------------------------------------------------------------- -org $008C1B ; Bank00.asm@1633 (LDA.b #$01 : STA $420B) +org $008C19 ; Bank00.asm@1633 (LDA.b #$01 : STA $420B) JSL ParadoxCaveGfxFix NOP diff --git a/shopkeeper.asm b/shopkeeper.asm index 729b376..3150dfd 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -827,30 +827,3 @@ RTS ;dw 64, 56 : db $30, $02, $00, $00 ;dw 72, 56 : db $31, $02, $00, $00 ;-------------------------------------------------------------------------------- -ParadoxCaveGfxFix: - ; Always upload line unless you're moving into paradox cave (0x0FF) from above (0x0EF) - LDX $A0 : CPX #$00FF : BNE .uploadLine - LDX $A2 : CPX #$00EF : BNE .uploadLine - - ;Ignore uploading four specific lines of tiles to VRAM - LDX $0118 - ; Line 1 - CPX #$1800 : BEQ .skipMostOfLine - ; Line 2 - CPX #$1A00 : BEQ .skipMostOfLine - ; Line 3 - CPX #$1C00 : BEQ .uploadLine - ; Line 4 - CPX #$1E00 : BEQ .uploadLine - -.uploadLine - LDA.b #$01 : STA $420B - -.skipLine - RTL - -.skipMostOfLine - ; Set line length to 192 bytes (the first 6 8x8 tiles in the line) - LDX.w #$00C0 : STX $4305 - BRA .uploadLine -;--------------------------------------------------------------------------------