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
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"))
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"))
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.
loop: cp [hl] jr z, resume dec e inc hl jr nz, loop jp $3F8D ; unload entity resume: jp $608C
def removeNagMessages(rom):
Remove "this object is heavy, bla bla", and other nag messages when touching an object
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.
def fastText(rom): rom.patch(0x00, 0x24CA, ASM("jp $2485"), ASM("call $2485"))
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.
medicine flamethrower skip