Disarm EG glitch on mirror in most modes

Added a check flag for the disarm on most transitions so if can be armed when wanted
This commit is contained in:
aerinon
2021-10-05 14:13:24 -06:00
parent 035621e420
commit a23315f783
6 changed files with 19 additions and 4 deletions

View File

@@ -2044,7 +2044,7 @@ class DROptions(Flag):
Town_Portal = 0x02 # If on, Players will start with mirror scroll Town_Portal = 0x02 # If on, Players will start with mirror scroll
Map_Info = 0x04 Map_Info = 0x04
Debug = 0x08 Debug = 0x08
# Rails = 0x10 # Unused bit now Fix_EG = 0x10 # used to be Rails = 0x10 # Unused bit now
OriginalPalettes = 0x20 OriginalPalettes = 0x20
# Open_PoD_Wall = 0x40 # No longer pre-opening pod wall - unused # Open_PoD_Wall = 0x40 # No longer pre-opening pod wall - unused
# Open_Desert_Wall = 0x80 # No longer pre-opening desert wall - unused # Open_Desert_Wall = 0x80 # No longer pre-opening desert wall - unused

View File

@@ -17,6 +17,7 @@ CLI: ```--bombbag```
* 0.5.1.3 * 0.5.1.3
* Certain lobbies forbidden in standard when rupee bow is enabled * Certain lobbies forbidden in standard when rupee bow is enabled
* PoD EG disarmed when mirroring (except in nologic)
* Fixed issue with key logic * Fixed issue with key logic
* 0.5.1.2 * 0.5.1.2
* Allowed Blind's Cell to be shuffled anywhere if Blind is not the boss of Thieves Town * Allowed Blind's Cell to be shuffled anywhere if Blind is not the boss of Thieves Town

4
Rom.py
View File

@@ -32,7 +32,7 @@ from source.classes.SFX import randomize_sfx
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '11f4f494e999a919aafd7d2624e67679' RANDOMIZERBASEHASH = '1b937c39f026f9a687391488b7386542'
class JsonRom(object): class JsonRom(object):
@@ -688,6 +688,8 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
dr_flags |= DROptions.OriginalPalettes dr_flags |= DROptions.OriginalPalettes
if world.experimental[player]: if world.experimental[player]:
dr_flags |= DROptions.DarkWorld_Spawns dr_flags |= DROptions.DarkWorld_Spawns
if world.logic[player] != 'nologic':
dr_flags |= DROptions.Fix_EG
# fix hc big key problems (map and compass too) # fix hc big key problems (map and compass too)

View File

@@ -125,6 +125,11 @@ org $07a955 ; <- Bank07.asm : around 6564 (JP is a bit different) (STZ $05FC : S
jsl BlockEraseFix jsl BlockEraseFix
nop #2 nop #2
org $02A0A8
Mirror_SaveRoomData:
org $07A95B ; < bank_07.asm ; #_07A95B: JSL Mirror_SaveRoomData
jsl EGFixOnMirror
org $02b82a org $02b82a
jsl FixShopCode jsl FixShopCode

View File

@@ -73,8 +73,9 @@ TrapDoorFixer:
rts rts
Cleanup: Cleanup:
stz $047a lda.l DRFlags : and #$10 : beq +
inc $11 stz $047a
+ inc $11
lda $ef lda $ef
rts rts

View File

@@ -47,6 +47,12 @@ MirrorCheckOverride:
rtl rtl
+ lda.l DRScroll : rtl + lda.l DRScroll : rtl
EGFixOnMirror:
lda.l DRFlags : and #$10 : beq +
stz $047a
+ jsl Mirror_SaveRoomData
rtl
BlockEraseFix: BlockEraseFix:
lda $7ef353 : and #$02 : beq + lda $7ef353 : and #$02 : beq +
stz $05fc : stz $05fd stz $05fc : stz $05fd