Load correct Link/Bunny palette on transition

This commit is contained in:
codemann8
2023-03-16 06:31:05 -05:00
parent 7b939a9166
commit 61846c0f81
3 changed files with 23 additions and 11 deletions

2
Rom.py
View File

@@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '8e95ee70d7afec407016449e86439550' RANDOMIZERBASEHASH = '8862307c3bdf3ae838f7e07b5df6596b'
class JsonRom(object): class JsonRom(object):

View File

@@ -985,17 +985,17 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
lda #$38 : sta $012f ; play sfx - #$3b is an alternative lda #$38 : sta $012f ; play sfx - #$3b is an alternative
; toggle bunny mode ; toggle bunny mode
lda MoonPearlEquipment : bne .nobunny lda MoonPearlEquipment : beq + : jmp .nobunny
lda.l InvertedMode : bne .inverted + lda.l InvertedMode : bne .inverted
lda CurrentWorld : bra + lda CurrentWorld : bra +
.inverted lda CurrentWorld : eor #$40 .inverted lda CurrentWorld : eor #$40
+ and #$40 : beq .nobunny + and #$40 : beq .nobunny
LDA.w $0703 : BEQ + ; check if forced transition LDA.w $0703 : BEQ + ; check if forced transition
CPY.b #$03 : BEQ .end_forced_whirlpool CPY.b #$03 : BEQ ++
LDA.b #$17 : STA.b $5D LDA.b #$17 : STA.b $5D
LDA.b #$01 : STA.w $02E0 : STA.b $56 LDA.b #$01 : STA.w $02E0 : STA.b $56
LDA.w $0703 : BRA .end_forced_edge LDA.w $0703 : JSR OWLoadGearPalettes : BRA .end_forced_edge
++ JSR OWLoadGearPalettes : BRA .end_forced_whirlpool
+ +
CPY.b #$01 : BEQ .auto ; check if going from land to water CPY.b #$01 : BEQ .auto ; check if going from land to water
CPY.b #$02 : BEQ .to_bunny_reset_swim ; bunny state if swimming to land CPY.b #$02 : BEQ .to_bunny_reset_swim ; bunny state if swimming to land
@@ -1014,8 +1014,8 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
STZ.b $5D STZ.b $5D
PLX PLX
BRA .to_pseudo_bunny BRA .to_pseudo_bunny
.whirlpool .whirlpool
PLX : RTS PLX : JMP OWLoadGearPalettes
.to_bunny_reset_swim .to_bunny_reset_swim
LDA.b $5D : CMP.b #$04 : BNE .to_bunny ; check if swimming LDA.b $5D : CMP.b #$04 : BNE .to_bunny ; check if swimming
JSL Link_ResetSwimmingState JSL Link_ResetSwimmingState
@@ -1024,7 +1024,7 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
LDA.b #$17 : STA.b $5D LDA.b #$17 : STA.b $5D
.to_pseudo_bunny .to_pseudo_bunny
LDA.b #$01 : STA.w $02E0 : STA.b $56 LDA.b #$01 : STA.w $02E0 : STA.b $56
RTS JMP OWLoadGearPalettes
.nobunny .nobunny
lda $5d : cmp #$17 : bne + ; retain current state unless bunny lda $5d : cmp #$17 : bne + ; retain current state unless bunny
@@ -1073,6 +1073,18 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
.return .return
RTS RTS
} }
OWLoadGearPalettes:
{
PHX : PHY : LDA $00 : PHA
LDA.w $02E0 : BEQ +
JSL LoadGearPalettes_bunny
BRA .return
+
JSL LoadGearPalettes_link
.return
PLA : STA $00 : PLY : PLX
RTS
}
OWAdjustExitPosition: OWAdjustExitPosition:
{ {
LDA.w $06FC : CMP.b #$60 : BEQ .stone_bridge LDA.w $06FC : CMP.b #$60 : BEQ .stone_bridge

Binary file not shown.