tobiasvl / LADX-Disassembly

My hacks of Legend of Zelda: Links Awakening DX
0 stars 0 forks source link

dump #8

Open tobiasvl opened 1 year ago

tobiasvl commented 1 year ago

bomber kan skade deg bomber er gated

rom.patch(0x03, 0x1FC5, ASM("call $608C"), ASM("call $50B2"))

We use some of the unused chest code space here to remove the bomb if you do not have bombs in your inventory.

rom.patch(0x03, 0x10B2, 0x112A, ASM("""
    ld   e, INV_SIZE
    ld   hl, $DB00
    ld   a, $02

loop: cp [hl] jr z, resume dec e inc hl jr nz, loop jp $3F8D ; unload entity resume: jp $608C

# Always spawn seashells even if you have the L2 sword
rom.patch(0x14, 0x192F, ASM("ld a, $1C"), ASM("ld a, $20"))

# 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 remove powder when it is used up.
rom.patch(0x20, 0x0C59, ASM("jr nz, $12"), ASM("jr $12"))

# Make bomb explosions damage you.
rom.patch(0x03, 0x2618, ASM("""
    ld   hl, $C440
    add  hl, bc
    ld   a, [hl]
    and  a
    jr   nz, $05
"""), ASM("""
    call $6625
"""), fill_nop=True)
# Reduce bomb blast push back on link
rom.patch(0x03, 0x2643, ASM("sla [hl]"), ASM("sra [hl]"), fill_nop=True)
rom.patch(0x03, 0x2648, ASM("sla [hl]"), ASM("sra [hl]"), fill_nop=True)

# Make dropping in water without flippers damage you.
rom.patch(0x02, 0x3722, ASM("ldh a, [$AF]"), ASM("ld a, $06"))

def removeNagMessages(rom):

Remove "this object is heavy, bla bla", and other nag messages when touching an object

rom.patch(0x02, 0x32BB, ASM("ld a, [$C14A]"), ASM("ld a, $01"), fill_nop=True)  # crystal blocks
rom.patch(0x02, 0x32EC, ASM("ld a, [$C5A6]"), ASM("ld a, $01"), fill_nop=True) # cracked blocks
rom.patch(0x02, 0x32D3, ASM("jr nz, $25"), ASM("jr $25"), fill_nop=True)  # stones/pots
rom.patch(0x02, 0x2B88, ASM("jr nz, $0F"), ASM("jr $0F"), fill_nop=True)  # ice blocks

def removeLowHPBeep(rom): rom.patch(2, 0x233A, ASM("ld hl, $FFF3\nld [hl], $04"), b"", fill_nop=True) # Remove health beep

def slowLowHPBeep(rom): rom.patch(2, 0x2338, ASM("ld a, $30"), ASM("ld a, $60")) # slow slow hp beep

def removeFlashingLights(rom):

Remove the switching between two backgrounds at mamu, always show the spotlights.

rom.patch(0x00, 0x01EB, ASM("ldh a, [$E7]\nrrca\nand $80"), ASM("ld a, $80"), fill_nop=True)
# Remove flashing colors from shopkeeper killing you after stealing and the mad batter giving items.
rom.patch(0x24, 0x3B77, ASM("push bc"), ASM("ret"))

def fastText(rom): rom.patch(0x00, 0x24CA, ASM("jp $2485"), ASM("call $2485"))

    ; We use $DB6D to store which tunics we have. This is normally the Dungeon9 instrument, which does not exist.

def slowdownThreeOfAKind(rom): rom.patch(0x06, 0x096B, ASM("ldh a, [$E7]\nand $0F"), ASM("ldh a, [$E7]\nand $3F"))

def fixHorseHeads(rom): rom.patch(0x07, 0x3653, "00010400", "00010000")

def fixDoghouse(rom):

Fix entering the dog house from the back, and ending up out of bounds.

re = RoomEditor(rom, 0x0A1)
re.objects.append(Object(6, 2, 0x0E2))
re.objects.append(re.objects[20])  # Move the flower patch after the warp entry definition so it overrules the tile
re.objects.append(re.objects[3])

re.objects.pop(22)
re.objects.pop(21)
re.objects.pop(20)  # Remove the flower patch at the normal entry index
re.objects.pop(11)  # Duplicate object, we can just remove it, gives room for our custom entry door
re.store(rom)

medicine flamethrower skip

# 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"))
tobiasvl commented 8 months ago

Bomber kan skade deg: https://github.com/daid/LADXR/blob/master/patches/hardMode.py Vann kan skade deg: https://github.com/daid/LADXR/blob/master/patches/hardMode.py