Switching rom buffer writes to function call

This commit is contained in:
codemann8
2021-06-29 01:07:14 -05:00
parent cd16b8c60b
commit f62a165353

35
Rom.py
View File

@@ -596,17 +596,16 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
if world.owShuffle[player] != 'vanilla' or world.owSwap[player] != 'vanilla':
rom.write_byte(0x18004C, 0x01) #patch for allowing Frogsmith to enter multi-entrance caves
#patches map data specific for OW Shuffle
rom.buffer[0x153B03] = rom.buffer[0x153B03] | 0x2 #convenient portal on WDM
rom.buffer[0x153B1A] = rom.buffer[0x153B1A] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B1B] = rom.buffer[0x153B1B] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B22] = rom.buffer[0x153B22] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B3F] = rom.buffer[0x153B3F] | 0x2 #added C to terrain
rom.buffer[0x153B43] = rom.buffer[0x153B43] | 0x2 #convenient portal on WDDM
rom.buffer[0x153B5A] = rom.buffer[0x153B5A] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B5B] = rom.buffer[0x153B5B] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B62] = rom.buffer[0x153B62] | 0x2 #rocks added to prevent OWG hardlock
rom.buffer[0x153B7F] = rom.buffer[0x153B7F] | 0x2 #added C to terrain
rom.write_byte(0x153B03, rom.buffer[0x153B03] | 0x2) #convenient portal on WDM
rom.write_byte(0x153B1A, rom.buffer[0x153B1A] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B1B, rom.buffer[0x153B1B] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B22, rom.buffer[0x153B22] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B3F, rom.buffer[0x153B3F] | 0x2) #added C to terrain
rom.write_byte(0x153B43, rom.buffer[0x153B43] | 0x2) #convenient portal on WDDM
rom.write_byte(0x153B5A, rom.buffer[0x153B5A] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B5B, rom.buffer[0x153B5B] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B62, rom.buffer[0x153B62] | 0x2) #rocks added to prevent OWG hardlock
rom.write_byte(0x153B7F, rom.buffer[0x153B7F] | 0x2) #added C to terrain
owMode = 0
if world.owShuffle[player] == 'parallel':
@@ -636,12 +635,12 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
# load inverted maps
v = rom.buffer[0x153B00 + b]
v = (v & 0xFE) | ((v + 1) % 2)
rom.buffer[0x153B00 + b] = v
rom.write_byte(0x153B00 + b, v)
# set world flag
v = rom.buffer[0x153A00 + b]
v = (v & 0xBF) | ((((v >> 6) + 1) % 2) << 6)
rom.buffer[0x153A00 + b] = v
rom.write_byte(0x153A00 + b, v)
for edge in world.owedges:
if edge.dest is not None and isinstance(edge.dest, OWEdge) and edge.player == player:
@@ -673,10 +672,10 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
write_int16(rom, snes_to_pc(0x02E97B + (o * 2)), data[9]) # unknown 2
# flute menu blips
rom.buffer[snes_to_pc(0x0AB783 + o)] = data[11] & 0xff # X low byte
rom.buffer[snes_to_pc(0x0AB78B + o)] = data[11] // 0x100 # X high byte
rom.buffer[snes_to_pc(0x0AB793 + o)] = data[10] & 0xff # Y low byte
rom.buffer[snes_to_pc(0x0AB79B + o)] = data[10] // 0x100 # Y high byte
rom.write_byte(snes_to_pc(0x0AB783 + o), data[11] & 0xff) # X low byte
rom.write_byte(snes_to_pc(0x0AB78B + o), data[11] // 0x100) # X high byte
rom.write_byte(snes_to_pc(0x0AB793 + o), data[10] & 0xff) # Y low byte
rom.write_byte(snes_to_pc(0x0AB79B + o), data[10] // 0x100) # Y high byte
# patch entrance/exits/holes
@@ -2280,7 +2279,7 @@ def set_inverted_mode(world, player, rom):
# load inverted maps
for b in range(0x00, 0x82):
v = rom.buffer[0x153B00 + b]
rom.buffer[0x153B00 + b] = (v & 0xFE) | ((v + 1) % 2)
rom.write_byte(0x153B00 + b, (v & 0xFE) | ((v + 1) % 2))
rom.write_byte(snes_to_pc(0x0283E0), 0xF0) # residual portals
rom.write_byte(snes_to_pc(0x02B34D), 0xF0)