diff --git a/hooks.asm b/hooks.asm index 525fdbd..1148e9e 100644 --- a/hooks.asm +++ b/hooks.asm @@ -2135,3 +2135,10 @@ org $1BBD55 ; <- DBD55 - Bank1B.asm: 290 (CPX.w #$0076 : BCC BRANCH_LAMBDA) JML.l SmithDoorCheck : NOP Overworld_Entrance_BRANCH_RHO: ; branch here to continue into door ;================================================================================ + +;================================================================================ +; Paradox Cave Shopkeeper Fixes +;-------------------------------------------------------------------------------- +org $008C1B ; Bank00.asm@1633 (LDA.b #$01 : STA $420B) +JSL ParadoxCaveGfxFix +NOP \ No newline at end of file diff --git a/shopkeeper.asm b/shopkeeper.asm index a7686a6..b7009ee 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -818,3 +818,30 @@ 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 .skipLine + ; Line 4 + CPX #$1E00 : BEQ .skipLine + +.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 \ No newline at end of file