64 lines
2.2 KiB
Python
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) |