From 61846c0f816a19f313828f739971980f73615c69 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Thu, 16 Mar 2023 06:31:05 -0500 Subject: [PATCH] Load correct Link/Bunny palette on transition --- Rom.py | 2 +- asm/owrando.asm | 32 ++++++++++++++++++++++---------- data/base2current.bps | Bin 105866 -> 105904 bytes 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Rom.py b/Rom.py index 5c1c2ced..6bdff514 100644 --- a/Rom.py +++ b/Rom.py @@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127 JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '8e95ee70d7afec407016449e86439550' +RANDOMIZERBASEHASH = '8862307c3bdf3ae838f7e07b5df6596b' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index 614fffd0..25eb1fc9 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -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 ; toggle bunny mode - lda MoonPearlEquipment : bne .nobunny - lda.l InvertedMode : bne .inverted + lda MoonPearlEquipment : beq + : jmp .nobunny + + lda.l InvertedMode : bne .inverted lda CurrentWorld : bra + .inverted lda CurrentWorld : eor #$40 + and #$40 : beq .nobunny - LDA.w $0703 : BEQ + ; check if forced transition - CPY.b #$03 : BEQ .end_forced_whirlpool - LDA.b #$17 : STA.b $5D - LDA.b #$01 : STA.w $02E0 : STA.b $56 - LDA.w $0703 : BRA .end_forced_edge + CPY.b #$03 : BEQ ++ + LDA.b #$17 : STA.b $5D + LDA.b #$01 : STA.w $02E0 : STA.b $56 + 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 #$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 PLX BRA .to_pseudo_bunny - .whirlpool - PLX : RTS + .whirlpool + PLX : JMP OWLoadGearPalettes .to_bunny_reset_swim LDA.b $5D : CMP.b #$04 : BNE .to_bunny ; check if swimming 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 .to_pseudo_bunny LDA.b #$01 : STA.w $02E0 : STA.b $56 - RTS + JMP OWLoadGearPalettes .nobunny 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 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: { LDA.w $06FC : CMP.b #$60 : BEQ .stone_bridge diff --git a/data/base2current.bps b/data/base2current.bps index 9ddd927b64f3e3b5fba5e9fdd002f1b1f72f4d04..80b9ff4c47ccae58a2488fd7c379e255ff6ee04e 100644 GIT binary patch delta 361 zcmeC$&9(uEQW;s2g6FQ;oXJ?j%%nJN@^cmq#>i#?*6jkUj8p9DyQlV_`doLC;RDl3 z#`9hc1{b*IThD83Sj^loaivACKI8OEVeW>FK6O*qgCyD30~Jr#5#esw>FJ>9@S$ie zGy4ab1I!Sbm> zFij(;ow31{S$CZT%YL(tRjr;WvA-HbfBCRa11o1&(wf0O$CY_?PSLXI3=N&)7no*C zmQJ^JVKfU?Dp|HRCH4U01#6Jf52lk(PFCgPY&gpYJ*=>dV`zzdQO&Fl9sbnm=qG wSkC@o%f4TBkV*cGTOMD-{M^*(jINB*%)A-h+vQyulOs4dzP~J6=jL=60RE1Ung9R* delta 344 zcmdn6o2_d%+lEv|7L}yib2n!))-W^um^%46iw2`XvjFRM0anH-cJ(z=`%itYJIU~Y zX(i)%uLgq)T=T8xH8w0}ZrHohqF0}Befa0P3pMLOGLtV&@7?L?py}`-Z7nnV2ayBJ zA1YS!Ixk~v0CF3W4={e7WnXKCz7mJ7zWRx&P&eZX>oQL2}j{lGMhoc5ot%M?uJ{Lzl`O5Xa~zlxZh4Y87Pzz zJN>2$qrRP|lW@b)XM!mkve*1!`@nMc4_o&AvV%;{XWjDn8s^)lHD9kR5^h+Xr#){r nzhU3}1d&