From 111ce66962b405c07c3752d40a2c783335498bd0 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sat, 22 Oct 2022 09:22:26 -0500 Subject: [PATCH] Fixed glitched fake world and OOB behavior --- Rom.py | 7 ++++--- asm/owrando.asm | 14 ++++++++++---- data/base2current.bps | Bin 104770 -> 104809 bytes 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Rom.py b/Rom.py index 570cfbe3..02219958 100644 --- a/Rom.py +++ b/Rom.py @@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127 JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '10c74317eecc403488d1a6e7e3d8f49f' +RANDOMIZERBASEHASH = 'cb04e9b67920dcc8103f1e7a7fe86fe2' class JsonRom(object): @@ -914,9 +914,10 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False): return region.is_light_world and not region.is_dark_world # dark world spawns - sanc_region = world.get_region('Sanctuary', player) + sanc_name = 'Sanctuary' if world.mode[player] != 'inverted' else 'Dark Sanctuary Hint' + sanc_region = world.get_region(sanc_name, player) if should_be_bunny(sanc_region, world.mode[player]): - rom.write_bytes(0x13fff2, [0x12, 0x00]) + rom.write_bytes(0x13fff2, [0x12, 0x00 if sanc_name == 'Sanctuary' else 0x01]) lh_name = 'Links House' if not world.is_bombshop_start(player) else 'Big Bomb Shop' links_house = world.get_region(lh_name, player) diff --git a/asm/owrando.asm b/asm/owrando.asm index 2863b0d5..3472bfae 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -586,9 +586,9 @@ OWDetectSpecialTransition: } OWEdgeTransition: { - LDA.l OWMode : ORA.l OWMode+1 : BEQ .vanilla + LDA.l OWMode : ORA.l OWMode+1 : BEQ .unshuffled LDY.w $06FA : CPY.b #$7F - BEQ .vanilla + BEQ .unshuffled REP #$10 LDX.w $06F8 PHB : PHK : PLB @@ -596,9 +596,15 @@ OWEdgeTransition: PLB SEP #$30 RTL - .vanilla + + .unshuffled LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over - RTL + TAX : LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BEQ .vanilla + LDA.l OWTileWorldAssoc,X : CMP.l CurrentWorld : BEQ .vanilla ; if dest screen mismatches the current world + TXA : EOR #$40 : RTL + + .vanilla + TXA : RTL } OWSpecialExit: { diff --git a/data/base2current.bps b/data/base2current.bps index 33d00fd368d02ccf043f17787a4167cd1469ec16..ac1a5a02a429ff34144ed8a4d6e185bff031e9f1 100644 GIT binary patch delta 546 zcmV+-0^R+>vIgn02C!iP1oH+A`LksKKLa1zm8t-Pks=d>C+hr>A}@p|>Hva`B07X8 zFocaF6PA<11WN(^gAWC_4+R0EC0Y%DdSD2JppA|MB9oaXukimT#h~yIuk!yV#h~yA zuk`;X#h}n3uN!ZVnXd(aCn*B(mPAQ{u?MLag>2&k*)d$Fb9?`PO;5v!Z0ZV0H_M8seb^C`UW6tmw!6}k76Q{tKu+go-}}gs+VVc zqnYpyzp%Ng&yy=?fB}JuNkD6gYg(WHtr!GK&;_gn2Y?5y1P9OppaLM2lzP8F{eElO zP5=kHzW|7;jTi(9!XPRC07&8>rHUy)7;OLtn{Y*$msvakEdh#`hdcqg0e+W4Jpp+E zQ3f%tz=!m0nj_8UC9LSHIv1YRSgM%%?_nq$rtblsRV^xoInF$+8T`m2ct@tTtERr k0uMr$pg;i?2{+D0ZVrH-d1kl1KmmMM2zwnU9mwMe3o(JzuK)l5 delta 522 zcmV+l0`>jrvIfGk2C!iP1aBRX;C+hr>A}@p|>Hva`B07X8 zFocaF`<0W!1WN(sgAWC_4+R0EB}SQgV1=NKjs%x-2Z@OS@G_bpHL$JFDX;MVC&i%f z5U=u+G?Ix3uk??Gsn8MPFsT=XUGCrlmwSGig~BjTl30C#mmw{`mkcWbJ_B<%v$stv z0qqO{e3v^o0i6pufC;ZkfH3d^sX&+DH~};QAc40RIRRY)9RrcA`UWrumMu=P&1=Fi zDFXng3aY7p0FC+vAXAr-I{}YN3X-ehFl(MPfE|EqTA%=}7z9et1*`-IfCsGv2hakb z0w8>pdcQ#ZerwuJ00+Cj0EnuOYJig=3OKKG0SlKVKLH{Ee3wZ- z0WK(flwg}&D;ztFm5<8ve#rpv0;vJdN`NrX3ZH_Poj(C~3w&{= zkMM~X&;pwkmmWX?H!dD?rmbXMzyZ)ZrCrGc@HLaglO+uafXxo2UC9^l2&n{xU7SDz zVA>ju0|%oTmxDk7LLgs36M)6$5oEAyto#P>1kL;gYu|Rk0vFFlZVrH-DQCCkKmmMM M2xt*S!SXz|rx8ZZr2qf`