From abdf019719aaad14ac697578ab874e1dda25a0c2 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sat, 15 Jan 2022 12:15:39 -0600 Subject: [PATCH] Changed Inverted Flute Spot 1 to Top of DDM --- OverworldShuffle.py | 4 ++-- Rom.py | 38 +++++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/OverworldShuffle.py b/OverworldShuffle.py index f298d87f..7f18f8c1 100644 --- a/OverworldShuffle.py +++ b/OverworldShuffle.py @@ -1872,10 +1872,10 @@ isolated_regions = [ ] flute_data = { - #Slot LW Region DW Region OWID VRAM BG Y BG X Link Y Link X Cam Y Cam X Unk1 Unk2 IconY IconX AltY AltX + #Slot LW Region DW Region OWID VRAM BG Y BG X Link Y Link X Cam Y Cam X Unk1 Unk2 IconY IconX AltY AltX AltVRAM AltBGY AltBGX AltCamY AltCamX AltUnk1 AltUnk2 AltIconY AltIconX 0x09: (['Lost Woods East Area', 'Skull Woods Forest'], 0x00, 0x1042, 0x022e, 0x0202, 0x0290, 0x0288, 0x029b, 0x028f, 0xfff2, 0x000e, 0x0290, 0x0288, 0x0290, 0x0290), 0x02: (['Lumberjack Area', 'Dark Lumberjack Area'], 0x02, 0x059c, 0x00d6, 0x04e6, 0x0138, 0x0558, 0x0143, 0x0563, 0xfffa, 0xfffa, 0x0138, 0x0550), - 0x0b: (['West Death Mountain (Bottom)', 'West Dark Death Mountain (Bottom)'], 0x03, 0x1600, 0x02ca, 0x060e, 0x0328, 0x0678, 0x0337, 0x0683, 0xfff6, 0xfff2, 0x035b, 0x0680), + 0x0b: (['West Death Mountain (Bottom)', 'West Dark Death Mountain (Top)'], 0x03, 0x1600, 0x02ca, 0x060e, 0x0328, 0x0678, 0x0337, 0x0683, 0xfff6, 0xfff2, 0x035b, 0x0680, 0x0118, 0x0860, 0x05c0, 0x00b8, 0x07ec, 0x0127, 0x086b, 0xfff8, 0x0004, 0x0148, 0x0850), 0x0e: (['East Death Mountain (Bottom)', 'East Dark Death Mountain (Bottom)'], 0x05, 0x1860, 0x031e, 0x0d00, 0x0388, 0x0da8, 0x038d, 0x0d7d, 0x0000, 0x0000, 0x0388, 0x0da8), 0x07: (['Death Mountain TR Pegs', 'Turtle Rock Area'], 0x07, 0x0804, 0x0102, 0x0e1a, 0x0160, 0x0e90, 0x016f, 0x0e97, 0xfffe, 0x0006, 0x0160, 0x0f20), 0x0a: (['Mountain Entry Area', 'Bumper Cave Area'], 0x0a, 0x0180, 0x0220, 0x0406, 0x0280, 0x0488, 0x028f, 0x0493, 0x0000, 0xfffa, 0x0280, 0x0488), diff --git a/Rom.py b/Rom.py index 484b990e..d6bf0452 100644 --- a/Rom.py +++ b/Rom.py @@ -629,21 +629,33 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False): offset = 0x40 write_int16(rom, snes_to_pc(0x02E849 + (o * 2)), data[1] + offset) # owid - write_int16(rom, snes_to_pc(0x02E86B + (o * 2)), data[2]) #vram - write_int16(rom, snes_to_pc(0x02E88D + (o * 2)), data[3]) # BG scroll Y - write_int16(rom, snes_to_pc(0x02E8AF + (o * 2)), data[4]) # BG scroll X write_int16(rom, snes_to_pc(0x02E8D1 + (o * 2)), data[13] if offset > 0 and len(data) > 13 else data[5]) # link Y write_int16(rom, snes_to_pc(0x02E8F3 + (o * 2)), data[14] if offset > 0 and len(data) > 13 else data[6]) # link X - write_int16(rom, snes_to_pc(0x02E915 + (o * 2)), data[7]) # cam Y - write_int16(rom, snes_to_pc(0x02E937 + (o * 2)), data[8]) # cam X - write_int16(rom, snes_to_pc(0x02E959 + (o * 2)), data[9]) # unknown 1 - write_int16(rom, snes_to_pc(0x02E97B + (o * 2)), data[10]) # unknown 2 - - # flute menu blips - rom.write_byte(snes_to_pc(0x0AB783 + o), data[12] & 0xff) # X low byte - rom.write_byte(snes_to_pc(0x0AB78B + o), data[12] // 0x100) # X high byte - rom.write_byte(snes_to_pc(0x0AB793 + o), data[11] & 0xff) # Y low byte - rom.write_byte(snes_to_pc(0x0AB79B + o), data[11] // 0x100) # Y high byte + + if offset == 0 or len(data) <= 15: + write_int16(rom, snes_to_pc(0x02E86B + (o * 2)), data[2]) # vram + write_int16(rom, snes_to_pc(0x02E88D + (o * 2)), data[3]) # BG scroll Y + write_int16(rom, snes_to_pc(0x02E8AF + (o * 2)), data[4]) # BG scroll X + write_int16(rom, snes_to_pc(0x02E915 + (o * 2)), data[7]) # cam Y + write_int16(rom, snes_to_pc(0x02E937 + (o * 2)), data[8]) # cam X + write_int16(rom, snes_to_pc(0x02E959 + (o * 2)), data[9]) # unknown 1 + write_int16(rom, snes_to_pc(0x02E97B + (o * 2)), data[10]) # unknown 2 + rom.write_byte(snes_to_pc(0x0AB783 + o), data[12] & 0xff) # flute menu blip - X low byte + rom.write_byte(snes_to_pc(0x0AB78B + o), data[12] // 0x100) # flute menu blip - X high byte + rom.write_byte(snes_to_pc(0x0AB793 + o), data[11] & 0xff) # flute menu blip - Y low byte + rom.write_byte(snes_to_pc(0x0AB79B + o), data[11] // 0x100) # flute menu blip - Y high byte + else: # use alternate flute data + write_int16(rom, snes_to_pc(0x02E86B + (o * 2)), data[15]) # vram + write_int16(rom, snes_to_pc(0x02E88D + (o * 2)), data[16]) # BG scroll Y + write_int16(rom, snes_to_pc(0x02E8AF + (o * 2)), data[17]) # BG scroll X + write_int16(rom, snes_to_pc(0x02E915 + (o * 2)), data[18]) # cam Y + write_int16(rom, snes_to_pc(0x02E937 + (o * 2)), data[19]) # cam X + write_int16(rom, snes_to_pc(0x02E959 + (o * 2)), data[20]) # unknown 1 + write_int16(rom, snes_to_pc(0x02E97B + (o * 2)), data[21]) # unknown 2 + rom.write_byte(snes_to_pc(0x0AB783 + o), data[23] & 0xff) # flute menu blip - X low byte + rom.write_byte(snes_to_pc(0x0AB78B + o), data[23] // 0x100) # flute menu blip - X high byte + rom.write_byte(snes_to_pc(0x0AB793 + o), data[22] & 0xff) # flute menu blip - Y low byte + rom.write_byte(snes_to_pc(0x0AB79B + o), data[22] // 0x100) # flute menu blip - Y high byte # patch whirlpools if world.owWhirlpoolShuffle[player]: