def METHOD_NAME(rom):
    # Show marin outside, even without a sword.
    rom.patch(0x05, 0x0E78, ASM("ld a, [$DB4E]"), ASM("ld a, $01"), fill_nop=True)
    # Make marin ignore the fact that you did not save the tarin yet, and allowing getting her song
    rom.patch(0x05, 0x0E87, ASM("ld a, [$D808]"), ASM("ld a, $10"), fill_nop=True)
    rom.patch(0x05, 0x0F73, ASM("ld a, [$D808]"), ASM("ld a, $10"), fill_nop=True)
    rom.patch(0x05, 0x0FB0, ASM("ld a, [$DB48]"), ASM("ld a, $01"), fill_nop=True)
    # Show marin in the animal village
    rom.patch(0x03, 0x0A86, ASM("ld a, [$DB74]"), ASM("ld a, $01"), fill_nop=True)
    rom.patch(0x05, 0x3F2E, ASM("ld a, [$DB74]"), ASM("ld a, $01"), fill_nop=True)  # animal d0
    rom.patch(0x15, 0x3F96, ASM("ld a, [$DB74]"), ASM("ld a, $01"), fill_nop=True)  # animal d1
    rom.patch(0x18, 0x11B0, ASM("ld a, [$DB74]"), ASM("ld a, $01"), fill_nop=True)  # animal d2
    # Instead of checking if we have the ballad, check if we have a specific room flag set
    rom.patch(0x05, 0x0F89, ASM("""
        ld   a, [$DB49]
        and  $04
    """), ASM("""
        ld   a, [$D892]
        and  $10
    """), fill_nop=True)
    rom.patch(0x05, 0x0FDF, ASM("""
        ld   a, [$DB49]
        and  $04
    """), ASM("""
        ld   a, [$D892]
        and  $10
    """), fill_nop=True)
    rom.patch(0x05, 0x1042, ASM("""
        ld   a, [$DB49]
        and  $04
    """), ASM("""
        ld   a, [$D892]
        and  $10
    """), fill_nop=True)
    # Patch that we call our specific handler instead of giving the song
    rom.patch(0x05, 0x1170, ASM("""
        ld   hl, $DB49
        set  2, [hl]
        xor  a
        ld   [$DB4A], a
    """), ASM("""
        ; Mark Marin as done.
        ld   a, [$D892]
        or   $10
        ld   [$D892], a
    """), fill_nop=True)
    # Show the right item instead of the ocerina
    rom.patch(0x05, 0x11B3, ASM("""
        ld   de, $515F
        xor  a
        ldh  [$F1], a
        jp   $3C77
    """), ASM("""
        ld   a, $0C
        rst  8
        ret
    """), fill_nop=True)
    # Patch the message that tells we got the song, to give the item and show the right message
    rom.patch(0x05, 0x119C, ASM("""
        ld   a, $13
        call $2385
    """), ASM("""
        ld   a, $0E
        rst  8
    """), fill_nop=True)