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 33d00fd3..ac1a5a02 100644 Binary files a/data/base2current.bps and b/data/base2current.bps differ