tmc/asm/code_0801606C.s

207 lines
4.9 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
gUnk_0801606C:: @ 0801606C
.incbin "baserom.gba", 0x01606C, 0x000003C
gUnk_080160A8:: @ 080160A8
.incbin "baserom.gba", 0x0160A8, 0x0000042
gUnk_080160EA:: @ 080160EA
.incbin "baserom.gba", 0x0160EA, 0x0000052
gUnk_0801613C:: @ 0801613C
.incbin "baserom.gba", 0x01613C, 0x0000054
gUnk_08016190:: @ 08016190
.incbin "baserom.gba", 0x016190, 0x0000058
gUnk_080161E8:: @ 080161E8
.incbin "baserom.gba", 0x0161E8, 0x0000174
gUnk_0801635C:: @ 0801635C
.incbin "baserom.gba", 0x01635C, 0x0000021
gUnk_0801637D:: @ 0801637D
.incbin "baserom.gba", 0x01637D, 0x0000007
gUnk_08016384:: @ 08016384
.incbin "baserom.gba", 0x016384, 0x0000084
gUnk_08016408:: @ 08016408
.incbin "baserom.gba", 0x016408, 0x00001F0
gUnk_080165F8:: @ 080165F8
.incbin "baserom.gba", 0x0165F8, 0x0000014
gUnk_0801660C:: @ 0801660C
.incbin "baserom.gba", 0x01660C, 0x000001C
gUnk_08016628:: @ 08016628
.incbin "baserom.gba", 0x016628, 0x000001C
gUnk_08016644:: @ 08016644
.incbin "baserom.gba", 0x016644, 0x0000028
gUnk_0801666C:: @ 0801666C
.incbin "baserom.gba", 0x01666C, 0x000004C
gUnk_080166B8:: @ 080166B8
.incbin "baserom.gba", 0x0166B8, 0x0000044
gUnk_080166FC:: @ 080166FC
.incbin "baserom.gba", 0x0166FC, 0x000009C
gUnk_08016798:: @ 08016798
.incbin "baserom.gba", 0x016798, 0x00000AC
gUnk_08016844:: @ 08016844
.incbin "baserom.gba", 0x016844, 0x000009C
gUnk_080168E0:: @ 080168E0
.incbin "baserom.gba", 0x0168E0, 0x0000014
gUnk_080168F4:: @ 080168F4
.incbin "baserom.gba", 0x0168F4, 0x0000090
gUnk_08016984:: @ 08016984
.incbin "baserom.gba", 0x016984, 0x0000002
.text
non_word_aligned_thumb_func_start GetNextScriptCommandHalfword
GetNextScriptCommandHalfword: @ 0x08016986
ldrh r0, [r0]
bx lr
non_word_aligned_thumb_func_start GetNextScriptCommandHalfwordAfterCommandMetadata
GetNextScriptCommandHalfwordAfterCommandMetadata: @ 0x0801698A
ldrh r0, [r0, #2]
bx lr
non_word_aligned_thumb_func_start GetNextScriptCommandWord
GetNextScriptCommandWord: @ 0x0801698E
ldrh r1, [r0]
ldrh r0, [r0, #2]
lsls r0, r0, #0x10
orrs r0, r1
bx lr
thumb_func_start GetNextScriptCommandWordAfterCommandMetadata
GetNextScriptCommandWordAfterCommandMetadata: @ 0x08016998
ldrh r1, [r0, #2]
ldrh r0, [r0, #4]
lsls r0, r0, #0x10
orrs r0, r1
bx lr
.align 2, 0
gUnk_080169A4::
.byte 0x01, 0xFF, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x01, 0x00
.byte 0xFF, 0x01, 0x00, 0x00, 0x02, 0xFF, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0x02
.byte 0x00, 0x00, 0x01, 0x01, 0x02, 0xFF, 0x02, 0xFE, 0xFE, 0x02, 0xFF, 0x03, 0xFD, 0xFF, 0xFE, 0x01
.byte 0x01, 0xFD, 0xFF, 0xFF, 0x03, 0xFE, 0x02, 0x00, 0x00, 0xFF, 0xFE, 0x03, 0xFD, 0x02, 0xFF, 0x00
.byte 0x00, 0xFD, 0x02, 0x00, 0x00, 0xFF, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02
.byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00
.byte 0x00, 0x00, 0x01, 0x00
thumb_func_start UpdateSpriteForCollisionLayer
UpdateSpriteForCollisionLayer: @ 0x08016A04
movs r1, #0x38
ldrb r1, [r0, r1]
lsls r1, r1, #1
add r3, pc, #0x1C
adds r1, r1, r3
movs r3, #0xc0
ldrb r2, [r0, #0x19]
bics r2, r3
ldrb r3, [r1]
orrs r2, r3
strb r2, [r0, #0x19]
movs r3, #0xc0
ldrb r2, [r0, #0x1b]
bics r2, r3
ldrb r3, [r1, #1]
orrs r2, r3
strb r2, [r0, #0x1b]
bx lr
_08016A28:
.byte 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40
thumb_func_start sub_08016A30
sub_08016A30: @ 0x08016A30
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0x38
ldrb r0, [r4, r5]
cmp r0, #0
bne _08016A64
ldrh r0, [r4, #0x2e]
ldrh r1, [r4, #0x32]
movs r2, #2
bl GetTileTypeByPos
movs r3, #1
cmp r0, #0
beq _08016A62
bl sub_080002E4
movs r3, #2
add r1, pc, #0x40
_08016A54:
adds r1, #4
ldrh r2, [r1]
cmp r2, #0
beq _08016A62
cmp r0, r2
bne _08016A54
ldrb r3, [r1, #3]
_08016A62:
strb r3, [r4, r5]
_08016A64:
adds r0, r4, #0
bl UpdateSpriteForCollisionLayer
pop {r4, r5, pc}
thumb_func_start sub_08016A6C
sub_08016A6C: @ 0x08016A6C
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080002B8
add r1, pc, #0x38
_08016A76:
adds r1, #4
ldrh r2, [r1]
cmp r2, #0
beq _08016A90
cmp r2, r0
bne _08016A76
movs r2, #0x38
ldrb r3, [r4, r2]
ldrb r5, [r1, #2]
cmp r3, r5
beq _08016A90
ldrb r5, [r1, #3]
strb r5, [r4, r2]
_08016A90:
pop {r4, r5, pc}
.align 2, 0
_08016A94:
.byte 0x2A, 0x00, 0x03, 0x03, 0x2D, 0x00, 0x03, 0x03, 0x2B, 0x00, 0x03, 0x03
.byte 0x2C, 0x00, 0x03, 0x03, 0x4C, 0x00, 0x03, 0x03, 0x4E, 0x00, 0x03, 0x03, 0x4D, 0x00, 0x03, 0x03
.byte 0x4F, 0x00, 0x03, 0x03, 0x0A, 0x00, 0x02, 0x01, 0x09, 0x00, 0x02, 0x01, 0x0C, 0x00, 0x01, 0x02
.byte 0x0B, 0x00, 0x01, 0x02, 0x52, 0x00, 0x03, 0x03, 0x27, 0x00, 0x03, 0x03, 0x26, 0x00, 0x03, 0x03
.byte 0x00, 0x00
non_word_aligned_thumb_func_start sub_08016AD2
sub_08016AD2: @ 0x08016AD2
push {r4, lr}
adds r4, r0, #0
bl sub_08016A6C
push {r0}
adds r0, r4, #0
bl UpdateSpriteForCollisionLayer
pop {r0, r4, pc}