From cf614e4dffc1ca50620e3124fdac924f40673472 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sat, 20 Nov 2021 00:35:37 -0600 Subject: [PATCH] Fixed mirror portals getting erased when changing worlds --- Rom.py | 2 +- asm/owrando.asm | 15 +++++++++++++++ data/base2current.bps | Bin 141325 -> 141366 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Rom.py b/Rom.py index d17fc0c4..b0b92b22 100644 --- a/Rom.py +++ b/Rom.py @@ -33,7 +33,7 @@ from source.classes.SFX import randomize_sfx JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '9dfff0f3d093eb9adce053e9773f523e' +RANDOMIZERBASEHASH = 'f51b9d3d5d995d55c111af82570d8f04' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index f244cb79..b781b81b 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -391,6 +391,21 @@ OWWorldUpdate: ; x = owid of destination screen { lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return sta.l $7ef3ca ; change world + + ; activate mirror portal sprite + phx : cmp #0 : beq + : lda #1 + + cmp.l InvertedMode : bne + + lda #$09 : pha : bra .setPortalSpriteState + + lda #$07 : pha ; some state that allows the portal to persist without it getting overwritten + + .setPortalSpriteState + ldx #$0f + - lda $0e20,x : cmp #$6C : bne + + pla : sta $0dd0,x : plx : bra .playSfx + + dex : bpl - + pla : plx + + .playSfx lda #$38 : sta $012f ; play sfx - #$3b is an alternative ; toggle bunny mode diff --git a/data/base2current.bps b/data/base2current.bps index 53c32fda396138439e597846c3178e30e8c92eb7..d4ddf56e4c0c0a29fbfd6a8a749dc80a2867b1d2 100644 GIT binary patch delta 178 zcmV;j08Rgm&31i|}01cOZhw@m>7f&~H%fS1q)0Th38kIM6Y+Q|U$0;vJd zN`Nqq#g#~a1E~i{mO4k8{cO+&Xr0gv`hW$>5btREsW^=<0k2o{e$XwiN`NrX2$yGJ zrGbE(LJy{$NkGX!&=aLyk_errF?pt)fDNTx$rsQ9p9_F*-gJ72wk9i`pA0~f*LiXi gfU8nel$&!|grA2y2LZP`2Lj3<2$31aS_I@q7f&~Hfm(d0R6h%po%JY7yIE^m>k|na4 zEw4&|Fwh8>XJMs*fSYa(rmaap$w1H(rCrGc@C2)0c&43z4W(Vl7tjKq3xF5kAbN?m ZTtvBtQU?LIQU?OuAPAmp{iQKgVjp