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