Merge remote-tracking branch 'codemann/OWMain' into overworld_kara

This commit is contained in:
2022-01-01 15:30:19 -08:00
3 changed files with 37 additions and 1 deletions

View File

@@ -134,4 +134,21 @@ protectff:
.spow .spow
db $80, $81, $81, $FF, $FF, $FF, $FF, $FF db $80, $81, $81, $FF, $FF, $FF, $FF, $FF
db $FF, $81, $81, $FF, $FF, $FF, $FF, $FF db $FF, $81, $81, $FF, $FF, $FF, $FF, $FF
FlipperScrollWarp:
STZ $00 : STZ $02 ; what we wrote over
LDA $308358 : BEQ .checkX : RTL
.checkX
LDA $22 : CMP.w $0604 : BCC +
CMP.w $0616 : BCS +
BRA .checkY
+ LDA $7EC186
STA $22
.checkY
LDA $20 : CMP.w $0600 : BCC +
CMP.w $0612 : BCS +
RTL
+ LDA $7EC184
STA $20
RTL

View File

@@ -2322,6 +2322,9 @@ FakeFlipperProtection:
JSL protectff JSL protectff
RTS RTS
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $02B46C ; <- bank_02.asm:9722 (STZ.b $00 : STZ.b $02)
JSL FlipperScrollWarp
;--------------------------------------------------------------------------------
;org $078F27 ; <- 38F27 ;org $078F27 ; <- 38F27
;JSL.l FlipperReset ;JSL.l FlipperReset
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -2368,6 +2371,7 @@ JML.l MirrorBonk
MirrorBonk_NormalReturn: MirrorBonk_NormalReturn:
org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:) org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:)
MirrorBonk_BranchGamma: MirrorBonk_BranchGamma:
JML.l OWMirrorSpriteMove
;================================================================================ ;================================================================================
;================================================================================ ;================================================================================

View File

@@ -146,6 +146,7 @@ OWPreserveMirrorSprite:
{ {
lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .vanilla lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .vanilla
rtl ; if OW Crossed, skip world check and continue rtl ; if OW Crossed, skip world check and continue
.vanilla .vanilla
lda InvertedMode : beq + lda InvertedMode : beq +
lda $7ef3ca : beq .deleteMirror lda $7ef3ca : beq .deleteMirror
@@ -157,6 +158,12 @@ OWPreserveMirrorSprite:
pla : lda #$de : pha ; in vanilla, if in dark world, jump to $05afdf pla : lda #$de : pha ; in vanilla, if in dark world, jump to $05afdf
rtl rtl
} }
OWMirrorSpriteMove:
{
lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq +
lda $1acf : eor #$80 : sta $1acf
+ lda #$2c : jml.l $07A985 ; what we wrote over
}
OWFluteCancel: OWFluteCancel:
{ {
@@ -402,6 +409,14 @@ OWWorldUpdate: ; x = owid of destination screen
{ {
lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return
sta.l $7ef3ca ; change world sta.l $7ef3ca ; change world
; moving mirror portal off screen when in DW
cmp #0 : beq + : lda #1
+ cmp.l InvertedMode : bne +
lda $1acf : and #$0f : sta $1acf : bra .playSfx ; bring portal back into position
+ lda $1acf : eor #$80 : sta $1acf ; move portal off screen
.playSfx
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