Archipelago/worlds/ladx/LADXR/patches/weapons.py

64 lines
2.2 KiB
Python

from ..assembler import ASM
from ..roomEditor import RoomEditor
def patchSuperWeapons(rom):
# Feather jump height
rom.patch(0x00, 0x1508, ASM("ld a, $20"), ASM("ld a, $2C"))
# Boots charge speed
rom.patch(0x00, 0x1731, ASM("cp $20"), ASM("cp $01"))
# Power bracelet pickup speed
rom.patch(0x00, 0x2121, ASM("ld e, $08"), ASM("ld e, $01"))
# Throwing speed (of pickups and bombs)
rom.patch(0x14, 0x1313, "30D0000018E80000", "60A0000040C00000")
rom.patch(0x14, 0x1323, "0000D0300000E818", "0000A0600000C040")
# Allow as many bombs to be placed as you want!
rom.patch(0x00, 0x135F, ASM("ret nc"), "", fill_nop=True)
# Maximum amount of arrows in the air
rom.patch(0x00, 0x13C5, ASM("cp $02"), ASM("cp $05"))
# Delay between arrow shots
rom.patch(0x00, 0x13C9, ASM("ld a, $10"), ASM("ld a, $01"))
# Maximum amount of firerod fires
rom.patch(0x00, 0x12E4, ASM("cp $02"), ASM("cp $05"))
# Projectile speed (arrows, firerod)
rom.patch(0x00, 0x13AD,
"30D0000040C00000" "0000D0300000C040",
"60A0000060A00000" "0000A0600000A060")
# Hookshot shoot speed
rom.patch(0x02, 0x024C,
"30D00000" "0000D030",
"60A00000" "0000A060")
# Hookshot retract speed
rom.patch(0x18, 0x3C41, ASM("ld a, $30"), ASM("ld a, $60"))
# Hookshot pull speed
rom.patch(0x18, 0x3C21, ASM("ld a, $30"), ASM("ld a, $60"))
# Super shovel, always price!
rom.patch(0x02, 0x0CC6, ASM("jr nz, $57"), "", fill_nop=True)
# Unlimited boomerangs!
rom.patch(0x00, 0x1387, ASM("ret nz"), "", fill_nop=True)
# Increase shield push power
rom.patch(0x03, 0x2FC5, ASM("ld a, $08"), ASM("ld a, $10"))
rom.patch(0x03, 0x2FCA, ASM("ld a, $20"), ASM("ld a, $40"))
# Decrease link pushback of shield
rom.patch(0x03, 0x2FB9, ASM("ld a, $12"), ASM("ld a, $04"))
rom.patch(0x03, 0x2F9A, ASM("ld a, $0C"), ASM("ld a, $03"))
# Super charge the ocarina
rom.patch(0x02, 0x0AD8, ASM("cp $38"), ASM("cp $08"))
rom.patch(0x02, 0x0B05, ASM("cp $14"), ASM("cp $04"))
re = RoomEditor(rom, 0x23D)
tiles = re.getTileArray()
tiles[11] = 0x0D
tiles[12] = 0xA7
tiles[22] = 0x98
re.buildObjectList(tiles)
re.store(rom)