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

View File

@@ -146,6 +146,7 @@ OWPreserveMirrorSprite:
{
lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .vanilla
rtl ; if OW Crossed, skip world check and continue
.vanilla
lda InvertedMode : beq +
lda $7ef3ca : beq .deleteMirror
@@ -157,6 +158,12 @@ OWPreserveMirrorSprite:
pla : lda #$de : pha ; in vanilla, if in dark world, jump to $05afdf
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:
{
@@ -402,6 +409,14 @@ OWWorldUpdate: ; x = owid of destination screen
{
lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return
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
; toggle bunny mode