From 6e3b4a6b2d171234111a69dd4908d39b0a2b510d Mon Sep 17 00:00:00 2001 From: codemann8 Date: Thu, 20 Oct 2022 10:29:59 -0500 Subject: [PATCH] Cato fixes for Free Terrain transitions --- Rom.py | 2 +- asm/owrando.asm | 39 ++++++++++++++++++++------------------- data/base2current.bps | Bin 104763 -> 104770 bytes 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/Rom.py b/Rom.py index 03e14ef2..570cfbe3 100644 --- a/Rom.py +++ b/Rom.py @@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127 JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '4657087846e24d65cd69ff61241601fe' +RANDOMIZERBASEHASH = '10c74317eecc403488d1a6e7e3d8f49f' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index 812cec20..2863b0d5 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -107,7 +107,7 @@ org $0ABA99 WorldMap_LoadDarkWorldMap: LDA.b $10 : CMP.b #$14 ; attract module BEQ .vanilla_light - LDA.l OWMode+1 : AND.b #$04 : BNE .mixed + LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BNE .mixed LDA.b $8A : AND.b #$40 BEQ .vanilla_light .mixed @@ -343,7 +343,7 @@ OWOldManSpeed: LoadMapDarkOrMixed: { - CMP.b #$04 : REP #$30 : BEQ .mixed + CMP.b #!FLAG_OW_MIXED : REP #$30 : BEQ .mixed LDX.w #$03FE ; draw vanilla Dark World (what we wrote over) .copy_next LDA.w $D739,X : STA.w $1000,X ; DB is $0A @@ -400,7 +400,7 @@ OWBonkDrops: { CMP.b #$D8 : BEQ + RTL - + LDA.l OWFlags+1 : AND.b #$02 : BNE + + + LDA.l OWFlags+1 : AND.b #!FLAG_OW_CROSSED : BNE + JSL.l Sprite_TransmuteToBomb : RTL + @@ -529,10 +529,10 @@ org $aa9000 OWDetectEdgeTransition: { STZ.w $06FC - LDA.l OWMode : ORA.l OWMode+1 : BEQ .normal + LDA.l OWMode : ORA.l OWMode+1 : BEQ .vanilla JSR OWShuffle LDA.w $06FA : BMI .special - .normal + .vanilla REP #$31 : LDX.b $02 : LDA.b $84 ; what we wrote over RTL .special @@ -586,9 +586,9 @@ OWDetectSpecialTransition: } OWEdgeTransition: { - LDA.l OWMode : ORA.l OWMode+1 : BEQ .normal + LDA.l OWMode : ORA.l OWMode+1 : BEQ .vanilla LDY.w $06FA : CPY.b #$7F - BEQ .normal + BEQ .vanilla REP #$10 LDX.w $06F8 PHB : PHK : PLB @@ -596,7 +596,7 @@ OWEdgeTransition: PLB SEP #$30 RTL - .normal + .vanilla LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over RTL } @@ -835,9 +835,9 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water, ; toggle bunny mode lda MoonPearlEquipment : bne .nobunny lda.l InvertedMode : bne .inverted - lda CurrentWorld : and.b #$40 : bra + - .inverted lda CurrentWorld : and.b #$40 : eor #$40 - + cmp #$40 : bne .nobunny + 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 @@ -865,8 +865,9 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water, .whirlpool PLX : RTS .to_bunny_reset_swim - JSL Link_ResetSwimmingState - STZ.w $0345 + LDA.b $5D : CMP.b #$04 : BNE .to_bunny ; check if swimming + JSL Link_ResetSwimmingState + STZ.w $0345 .to_bunny LDA.b #$17 : STA.b $5D .to_pseudo_bunny @@ -886,7 +887,7 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water, .end_forced_whirlpool STZ.w $0703 CMP.b #$02 : BNE + - DEC : STA.w $0345 + DEC : STA.w $0345 : STZ.w $0340 LDA.b #$04 : BRA .set_state + CMP.b #$03 : BNE ++ @@ -897,17 +898,17 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water, RTS .not_forced CPY.b #$02 : BNE + ; check if going from water to land - JSL Link_ResetSwimmingState - STZ.w $0345 - LDA.b $5D : CMP.b #$04 : BNE + ; check if swimming + LDA.b $5D : CMP.b #$04 : BNE .return ; check if swimming + JSL Link_ResetSwimmingState + STZ.w $0345 STZ.b $5D + CPY.b #$01 : BNE .return ; check if going from land to water - LDA.b #$01 : STA.w $0345 LDA.b $5D : CMP.b #$04 : BEQ .return ; check if swimming + LDA.b #$01 : STA.w $0345 LDA.l FlippersEquipment : BEQ .no_flippers ; check if flippers obtained LDA.b $5D : CMP.b #$17 : BEQ .no_flippers ; check if bunny - LDA.b #$04 : STA.b $5D : RTS + LDA.b #$04 : STA.b $5D : STZ.w $0340 : RTS .no_flippers PHX INC : STA.w $0703 diff --git a/data/base2current.bps b/data/base2current.bps index 50533c485865ff8e844c92191b67c16bacbc8da6..33d00fd368d02ccf043f17787a4167cd1469ec16 100644 GIT binary patch delta 366 zcmdnJiS5uPwhf7lEcvn%9&Ju#v}cw(JarXA^F$@#7WG$uCMxLzDTbzAC94*7gO*;U z-_3_uwjW|)TwulMK0Vok=CuB0`CeU2;h>YBo3{U18TFEGs(Em_73GW3HA&<@s=NKc^j9A@^DOc%JV zdVx#_=9MfBY$us7u=GD$nQ(yV0zcR!kJ)m?%hsmE9$>s+4HEcZI{D~iRbI}9vwT3V z_y>-aEUmFX%?Y-ch*W=rh5T4cTk{uzg@T`-d(2e%V1L@$+tZ zd=2w8)0?kX76~`3&eNVZo8Pc+euBuX=`rqovqcP7p2}3;e#L2T8FLc&^R_75Tlm_HP) z&MjQV*Z|}<#2#S$z;%G>gU-^}lPni>Z>?lp7W;tZ0;5zfGy8#Q8aeF`U76QOuy868o!x_g8|F)(rMJuFR`hik8hx0O}LJz%*O67-HZDMWFetK`EX<1#_6$PcmKL zub%7