65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
from ..assembler import ASM
|
|
|
|
|
|
def fixSeashell(rom):
|
|
# Do not unload if we have the lvl2 sword.
|
|
rom.patch(0x03, 0x1FD3, ASM("ld a, [$DB4E]\ncp $02\njp nc, $3F8D"), "", fill_nop=True)
|
|
# Do not unload in the ghost house
|
|
rom.patch(0x03, 0x1FE8, ASM("ldh a, [$F8]\nand $40\njp z, $3F8D"), "", fill_nop=True)
|
|
|
|
# Call our special rendering code
|
|
rom.patch(0x03, 0x1FF2, ASM("ld de, $5FD1\ncall $3C77"), ASM("ld a, $05\nrst 8"), fill_nop=True)
|
|
|
|
# Call our special handlers for messages and pickup
|
|
rom.patch(0x03, 0x2368, 0x237C, ASM("""
|
|
ld a, $0A ; showMessageMultiworld
|
|
rst 8
|
|
ld a, $06 ; giveItemMultiworld
|
|
rst 8
|
|
call $512A
|
|
ret
|
|
"""), fill_nop=True)
|
|
|
|
|
|
def upgradeMansion(rom):
|
|
rom.patch(0x19, 0x38EC, ASM("""
|
|
ld hl, $78DC
|
|
jr $03
|
|
"""), "", fill_nop=True)
|
|
rom.patch(0x19, 0x38F1, ASM("""
|
|
ld hl, $78CC
|
|
ld c, $04
|
|
call $3CE6
|
|
"""), ASM("""
|
|
ld a, $0C
|
|
rst 8
|
|
"""), fill_nop=True)
|
|
rom.patch(0x19, 0x3718, ASM("sub $13"), ASM("sub $0D"))
|
|
rom.patch(0x19, 0x3697, ASM("""
|
|
cp $70
|
|
jr c, $15
|
|
ld [hl], $70
|
|
"""), ASM("""
|
|
cp $73
|
|
jr c, $15
|
|
ld [hl], $73
|
|
"""))
|
|
rom.patch(0x19, 0x36F5, ASM("""
|
|
ld a, $02
|
|
ld [$DB4E], a
|
|
"""), ASM("""
|
|
ld a, $0E ; give item and message for current room multiworld
|
|
rst 8
|
|
"""), fill_nop=True)
|
|
rom.patch(0x19, 0x36E6, ASM("""
|
|
ld a, $9F
|
|
call $2385
|
|
"""), "", fill_nop=True)
|
|
rom.patch(0x19, 0x31E8, ASM("""
|
|
ld a, [$DB4E]
|
|
and $02
|
|
"""), ASM("""
|
|
ld a, [$DAE9]
|
|
and $10
|
|
"""))
|