mirror of https://github.com/zeldaret/tmc.git
455 lines
7.0 KiB
PHP
455 lines
7.0 KiB
PHP
.syntax unified
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r6, r0, #0
|
|
mov sl, r1
|
|
cmp r6, #0
|
|
bne _0801A58C
|
|
ldr r0, _0801A588 @ =0x0000FFFF
|
|
b _0801A8C2
|
|
.align 2, 0
|
|
_0801A588: .4byte 0x0000FFFF
|
|
_0801A58C:
|
|
adds r4, r6, #0
|
|
adds r4, #0x38
|
|
ldrb r0, [r4]
|
|
bl GetLayerByIndex
|
|
mov r8, r0
|
|
ldr r0, _0801A668 @ =0x00005004
|
|
add r0, r8
|
|
mov ip, r0
|
|
movs r5, #4
|
|
movs r7, #2
|
|
ldrb r0, [r6, #0x14]
|
|
lsrs r0, r0, #1
|
|
mov sb, r4
|
|
cmp r0, #1
|
|
beq _0801A678
|
|
cmp r0, #1
|
|
ble _0801A5BC
|
|
cmp r0, #2
|
|
bne _0801A5B6
|
|
b _0801A73C
|
|
_0801A5B6:
|
|
cmp r0, #3
|
|
bne _0801A5BC
|
|
b _0801A7FC
|
|
_0801A5BC:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r6, r1]
|
|
ldr r2, _0801A66C @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r0, r0, r1
|
|
asrs r4, r0, #4
|
|
movs r3, #0x3f
|
|
ands r4, r3
|
|
movs r1, #0x32
|
|
ldrsh r0, [r6, r1]
|
|
ldrh r1, [r2, #8]
|
|
adds r1, #0xa
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
mov r2, r8
|
|
adds r2, #4
|
|
movs r3, #0xdc
|
|
lsls r3, r3, #2
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A5EA:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, ip
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
beq _0801A600
|
|
subs r1, #2
|
|
subs r4, #1
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bne _0801A5EA
|
|
_0801A600:
|
|
subs r4, #0x40
|
|
movs r3, #0xdd
|
|
lsls r3, r3, #2
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A60A:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, ip
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bne _0801A620
|
|
adds r7, #1
|
|
subs r1, #0x80
|
|
subs r4, #0x40
|
|
cmp r7, #3
|
|
bls _0801A60A
|
|
_0801A620:
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
bne _0801A628
|
|
b _0801A8C0
|
|
_0801A628:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl GetMetaTileType
|
|
adds r5, r0, #0
|
|
ldr r1, _0801A670 @ =0xFFFFFC97
|
|
adds r0, r5, r1
|
|
cmp r0, #1
|
|
bls _0801A63E
|
|
b _0801A8B4
|
|
_0801A63E:
|
|
ldr r2, _0801A674 @ =0x00001FC4
|
|
adds r0, r4, r2
|
|
mov r2, r8
|
|
adds r1, r2, r0
|
|
movs r5, #0
|
|
cmp r5, r7
|
|
blo _0801A64E
|
|
b _0801A8B6
|
|
_0801A64E:
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _0801A656
|
|
b _0801A8B4
|
|
_0801A656:
|
|
adds r5, #1
|
|
cmp r5, r7
|
|
blo _0801A65E
|
|
b _0801A8B6
|
|
_0801A65E:
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0801A656
|
|
b _0801A8B4
|
|
.align 2, 0
|
|
_0801A668: .4byte 0x00005004
|
|
_0801A66C: .4byte gRoomControls
|
|
_0801A670: .4byte 0xFFFFFC97
|
|
_0801A674: .4byte 0x00001FC4
|
|
_0801A678:
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r6, r0]
|
|
ldr r3, _0801A730 @ =gRoomControls
|
|
ldrh r0, [r3, #6]
|
|
subs r0, #0xa
|
|
subs r1, r1, r0
|
|
asrs r4, r1, #4
|
|
movs r2, #0x3f
|
|
ands r4, r2
|
|
movs r1, #0x32
|
|
ldrsh r0, [r6, r1]
|
|
ldrh r1, [r3, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r2
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
mov r2, r8
|
|
adds r2, #4
|
|
mov r3, ip
|
|
movs r6, #0xdc
|
|
lsls r6, r6, #2
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A6A8:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
beq _0801A6BE
|
|
adds r1, #0x80
|
|
adds r4, #0x40
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bne _0801A6A8
|
|
_0801A6BE:
|
|
subs r4, #0x40
|
|
movs r3, #0xdd
|
|
lsls r3, r3, #2
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A6C8:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, ip
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bne _0801A6DE
|
|
adds r7, #1
|
|
subs r1, #0x80
|
|
subs r4, #0x40
|
|
cmp r7, #3
|
|
bls _0801A6C8
|
|
_0801A6DE:
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
bne _0801A6E6
|
|
b _0801A8C0
|
|
_0801A6E6:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl GetMetaTileType
|
|
adds r5, r0, #0
|
|
ldr r0, _0801A734 @ =0x00000369
|
|
cmp r5, r0
|
|
beq _0801A700
|
|
adds r0, #4
|
|
cmp r5, r0
|
|
beq _0801A700
|
|
b _0801A8B4
|
|
_0801A700:
|
|
adds r0, r4, r7
|
|
ldr r1, _0801A738 @ =0x00002004
|
|
adds r0, r0, r1
|
|
mov r2, r8
|
|
adds r1, r2, r0
|
|
movs r5, #0
|
|
cmp r5, r7
|
|
blo _0801A712
|
|
b _0801A8B6
|
|
_0801A712:
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _0801A71A
|
|
b _0801A8B4
|
|
_0801A71A:
|
|
adds r5, #1
|
|
cmp r5, r7
|
|
blo _0801A722
|
|
b _0801A8B6
|
|
_0801A722:
|
|
lsls r0, r5, #6
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0801A71A
|
|
b _0801A8B4
|
|
.align 2, 0
|
|
_0801A730: .4byte gRoomControls
|
|
_0801A734: .4byte 0x00000369
|
|
_0801A738: .4byte 0x00002004
|
|
_0801A73C:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r6, r1]
|
|
ldr r2, _0801A7E8 @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r0, r0, r1
|
|
asrs r4, r0, #4
|
|
movs r3, #0x3f
|
|
ands r4, r3
|
|
movs r1, #0x32
|
|
ldrsh r0, [r6, r1]
|
|
ldrh r1, [r2, #8]
|
|
subs r1, #0xa
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
mov r2, r8
|
|
adds r2, #4
|
|
mov r3, ip
|
|
ldr r6, _0801A7EC @ =0x0000036F
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A76A:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
beq _0801A780
|
|
adds r1, #2
|
|
adds r4, #1
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bne _0801A76A
|
|
_0801A780:
|
|
subs r4, #1
|
|
ldr r3, _0801A7F0 @ =0x00000372
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A788:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, ip
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bne _0801A79E
|
|
adds r7, #1
|
|
subs r1, #2
|
|
subs r4, #1
|
|
cmp r7, #3
|
|
bls _0801A788
|
|
_0801A79E:
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
bne _0801A7A6
|
|
b _0801A8C0
|
|
_0801A7A6:
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl GetMetaTileType
|
|
adds r5, r0, #0
|
|
ldr r0, _0801A7F4 @ =0x00000369
|
|
cmp r5, r0
|
|
beq _0801A7BE
|
|
adds r0, #2
|
|
cmp r5, r0
|
|
bne _0801A8B4
|
|
_0801A7BE:
|
|
lsls r0, r7, #6
|
|
adds r0, r4, r0
|
|
ldr r1, _0801A7F8 @ =0x00002004
|
|
adds r0, r0, r1
|
|
mov r2, r8
|
|
adds r1, r2, r0
|
|
movs r5, #0
|
|
cmp r5, r7
|
|
bhs _0801A8B6
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _0801A8B4
|
|
_0801A7D6:
|
|
adds r5, #1
|
|
cmp r5, r7
|
|
bhs _0801A8B6
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0801A7D6
|
|
b _0801A8B4
|
|
.align 2, 0
|
|
_0801A7E8: .4byte gRoomControls
|
|
_0801A7EC: .4byte 0x0000036F
|
|
_0801A7F0: .4byte 0x00000372
|
|
_0801A7F4: .4byte 0x00000369
|
|
_0801A7F8: .4byte 0x00002004
|
|
_0801A7FC:
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r6, r0]
|
|
ldr r3, _0801A890 @ =gRoomControls
|
|
ldrh r0, [r3, #6]
|
|
adds r0, #0xa
|
|
subs r1, r1, r0
|
|
asrs r4, r1, #4
|
|
movs r2, #0x3f
|
|
ands r4, r2
|
|
movs r1, #0x32
|
|
ldrsh r0, [r6, r1]
|
|
ldrh r1, [r3, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r2
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
mov r2, r8
|
|
adds r2, #4
|
|
mov r3, ip
|
|
ldr r6, _0801A894 @ =0x0000036F
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A82A:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
beq _0801A840
|
|
subs r1, #0x80
|
|
subs r4, #0x40
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bne _0801A82A
|
|
_0801A840:
|
|
subs r4, #1
|
|
ldr r3, _0801A898 @ =0x00000372
|
|
lsls r0, r4, #1
|
|
adds r1, r0, r2
|
|
_0801A848:
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #1
|
|
add r0, ip
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bne _0801A85E
|
|
adds r7, #1
|
|
subs r1, #2
|
|
subs r4, #1
|
|
cmp r7, #3
|
|
bls _0801A848
|
|
_0801A85E:
|
|
mov r2, sl
|
|
cmp r2, #0
|
|
beq _0801A8C0
|
|
mov r0, sb
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl GetMetaTileType
|
|
adds r5, r0, #0
|
|
ldr r0, _0801A89C @ =0x00000369
|
|
cmp r5, r0
|
|
beq _0801A87C
|
|
adds r0, #3
|
|
cmp r5, r0
|
|
bne _0801A8B4
|
|
_0801A87C:
|
|
ldr r1, _0801A8A0 @ =0x00002003
|
|
adds r0, r4, r1
|
|
mov r2, r8
|
|
adds r1, r2, r0
|
|
movs r5, #0
|
|
cmp r5, r7
|
|
bhs _0801A8B6
|
|
ldrb r0, [r1]
|
|
b _0801A8B0
|
|
.align 2, 0
|
|
_0801A890: .4byte gRoomControls
|
|
_0801A894: .4byte 0x0000036F
|
|
_0801A898: .4byte 0x00000372
|
|
_0801A89C: .4byte 0x00000369
|
|
_0801A8A0: .4byte 0x00002003
|
|
_0801A8A4:
|
|
adds r5, #1
|
|
cmp r5, r7
|
|
bhs _0801A8B6
|
|
lsls r0, r5, #6
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
_0801A8B0:
|
|
cmp r0, #0
|
|
beq _0801A8A4
|
|
_0801A8B4:
|
|
ldr r4, _0801A8CC @ =0x0000FFFF
|
|
_0801A8B6:
|
|
mov r0, sl
|
|
cmp r0, #0
|
|
beq _0801A8C0
|
|
lsls r0, r7, #0xc
|
|
orrs r4, r0
|
|
_0801A8C0:
|
|
adds r0, r4, #0
|
|
_0801A8C2:
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0801A8CC: .4byte 0x0000FFFF
|
|
.syntax divided
|