Cato fixes for Free Terrain transitions
This commit is contained in:
2
Rom.py
2
Rom.py
@@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127
|
|||||||
|
|
||||||
|
|
||||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||||
RANDOMIZERBASEHASH = '4657087846e24d65cd69ff61241601fe'
|
RANDOMIZERBASEHASH = '10c74317eecc403488d1a6e7e3d8f49f'
|
||||||
|
|
||||||
|
|
||||||
class JsonRom(object):
|
class JsonRom(object):
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ org $0ABA99
|
|||||||
WorldMap_LoadDarkWorldMap:
|
WorldMap_LoadDarkWorldMap:
|
||||||
LDA.b $10 : CMP.b #$14 ; attract module
|
LDA.b $10 : CMP.b #$14 ; attract module
|
||||||
BEQ .vanilla_light
|
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
|
LDA.b $8A : AND.b #$40
|
||||||
BEQ .vanilla_light
|
BEQ .vanilla_light
|
||||||
.mixed
|
.mixed
|
||||||
@@ -343,7 +343,7 @@ OWOldManSpeed:
|
|||||||
|
|
||||||
LoadMapDarkOrMixed:
|
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)
|
LDX.w #$03FE ; draw vanilla Dark World (what we wrote over)
|
||||||
.copy_next
|
.copy_next
|
||||||
LDA.w $D739,X : STA.w $1000,X ; DB is $0A
|
LDA.w $D739,X : STA.w $1000,X ; DB is $0A
|
||||||
@@ -400,7 +400,7 @@ OWBonkDrops:
|
|||||||
{
|
{
|
||||||
CMP.b #$D8 : BEQ +
|
CMP.b #$D8 : BEQ +
|
||||||
RTL
|
RTL
|
||||||
+ LDA.l OWFlags+1 : AND.b #$02 : BNE +
|
+ LDA.l OWFlags+1 : AND.b #!FLAG_OW_CROSSED : BNE +
|
||||||
JSL.l Sprite_TransmuteToBomb : RTL
|
JSL.l Sprite_TransmuteToBomb : RTL
|
||||||
+
|
+
|
||||||
|
|
||||||
@@ -529,10 +529,10 @@ org $aa9000
|
|||||||
OWDetectEdgeTransition:
|
OWDetectEdgeTransition:
|
||||||
{
|
{
|
||||||
STZ.w $06FC
|
STZ.w $06FC
|
||||||
LDA.l OWMode : ORA.l OWMode+1 : BEQ .normal
|
LDA.l OWMode : ORA.l OWMode+1 : BEQ .vanilla
|
||||||
JSR OWShuffle
|
JSR OWShuffle
|
||||||
LDA.w $06FA : BMI .special
|
LDA.w $06FA : BMI .special
|
||||||
.normal
|
.vanilla
|
||||||
REP #$31 : LDX.b $02 : LDA.b $84 ; what we wrote over
|
REP #$31 : LDX.b $02 : LDA.b $84 ; what we wrote over
|
||||||
RTL
|
RTL
|
||||||
.special
|
.special
|
||||||
@@ -586,9 +586,9 @@ OWDetectSpecialTransition:
|
|||||||
}
|
}
|
||||||
OWEdgeTransition:
|
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
|
LDY.w $06FA : CPY.b #$7F
|
||||||
BEQ .normal
|
BEQ .vanilla
|
||||||
REP #$10
|
REP #$10
|
||||||
LDX.w $06F8
|
LDX.w $06F8
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
@@ -596,7 +596,7 @@ OWEdgeTransition:
|
|||||||
PLB
|
PLB
|
||||||
SEP #$30
|
SEP #$30
|
||||||
RTL
|
RTL
|
||||||
.normal
|
.vanilla
|
||||||
LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over
|
LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -835,9 +835,9 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
|
|||||||
; toggle bunny mode
|
; toggle bunny mode
|
||||||
lda MoonPearlEquipment : bne .nobunny
|
lda MoonPearlEquipment : bne .nobunny
|
||||||
lda.l InvertedMode : bne .inverted
|
lda.l InvertedMode : bne .inverted
|
||||||
lda CurrentWorld : and.b #$40 : bra +
|
lda CurrentWorld : bra +
|
||||||
.inverted lda CurrentWorld : and.b #$40 : eor #$40
|
.inverted lda CurrentWorld : eor #$40
|
||||||
+ cmp #$40 : bne .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 .end_forced_whirlpool
|
||||||
@@ -865,8 +865,9 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
|
|||||||
.whirlpool
|
.whirlpool
|
||||||
PLX : RTS
|
PLX : RTS
|
||||||
.to_bunny_reset_swim
|
.to_bunny_reset_swim
|
||||||
JSL Link_ResetSwimmingState
|
LDA.b $5D : CMP.b #$04 : BNE .to_bunny ; check if swimming
|
||||||
STZ.w $0345
|
JSL Link_ResetSwimmingState
|
||||||
|
STZ.w $0345
|
||||||
.to_bunny
|
.to_bunny
|
||||||
LDA.b #$17 : STA.b $5D
|
LDA.b #$17 : STA.b $5D
|
||||||
.to_pseudo_bunny
|
.to_pseudo_bunny
|
||||||
@@ -886,7 +887,7 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
|
|||||||
.end_forced_whirlpool
|
.end_forced_whirlpool
|
||||||
STZ.w $0703
|
STZ.w $0703
|
||||||
CMP.b #$02 : BNE +
|
CMP.b #$02 : BNE +
|
||||||
DEC : STA.w $0345
|
DEC : STA.w $0345 : STZ.w $0340
|
||||||
LDA.b #$04 : BRA .set_state
|
LDA.b #$04 : BRA .set_state
|
||||||
+
|
+
|
||||||
CMP.b #$03 : BNE ++
|
CMP.b #$03 : BNE ++
|
||||||
@@ -897,17 +898,17 @@ OWWorldTerrainUpdate: ; x = owid of destination screen, y = 1 for land to water,
|
|||||||
RTS
|
RTS
|
||||||
.not_forced
|
.not_forced
|
||||||
CPY.b #$02 : BNE + ; check if going from water to land
|
CPY.b #$02 : BNE + ; check if going from water to land
|
||||||
JSL Link_ResetSwimmingState
|
LDA.b $5D : CMP.b #$04 : BNE .return ; check if swimming
|
||||||
STZ.w $0345
|
JSL Link_ResetSwimmingState
|
||||||
LDA.b $5D : CMP.b #$04 : BNE + ; check if swimming
|
STZ.w $0345
|
||||||
STZ.b $5D
|
STZ.b $5D
|
||||||
+
|
+
|
||||||
CPY.b #$01 : BNE .return ; check if going from land to water
|
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 $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.l FlippersEquipment : BEQ .no_flippers ; check if flippers obtained
|
||||||
LDA.b $5D : CMP.b #$17 : BEQ .no_flippers ; check if bunny
|
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
|
.no_flippers
|
||||||
PHX
|
PHX
|
||||||
INC : STA.w $0703
|
INC : STA.w $0703
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user