mirror of https://github.com/zeldaret/tmc.git
dampe.c OK
This commit is contained in:
parent
c5897e647c
commit
f9e9fe0141
|
|
@ -0,0 +1,372 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start CellOverwriteSet
|
||||
CellOverwriteSet: @ 0x0801BEF8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov r8, r0
|
||||
ldr r7, _0801BFF0 @ =gLinkEntity
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0801BF62
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
|
||||
ldrb r1, [r7, #0x14]
|
||||
movs r2, #0xe
|
||||
ands r2, r1
|
||||
adds r1, r2, r5
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
ldr r4, _0801BFF8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r6, #0x32
|
||||
ldrsh r1, [r7, r6]
|
||||
adds r2, #1
|
||||
adds r2, r2, r5
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xc]
|
||||
_0801BF62:
|
||||
ldr r2, _0801BFFC @ =gLinkState
|
||||
mov sb, r2
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1a]
|
||||
ldr r6, _0801C000 @ =gUnk_03000FF0
|
||||
ldrh r1, [r6]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
mov sl, r3
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C074
|
||||
ldrh r1, [r6, #2]
|
||||
mov r0, sl
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801BFDA
|
||||
movs r4, #0x2e
|
||||
ldrsh r0, [r7, r4]
|
||||
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
|
||||
mov sb, r5
|
||||
ldrb r1, [r7, #0x14]
|
||||
movs r2, #0xe
|
||||
ands r2, r1
|
||||
adds r1, r2, r5
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
ldr r4, _0801BFF8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r7, r5]
|
||||
adds r2, #1
|
||||
add r2, sb
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
_0801BFDA:
|
||||
ldrh r3, [r6]
|
||||
mov r0, sl
|
||||
ands r0, r3
|
||||
adds r4, r3, #0
|
||||
cmp r0, #0
|
||||
beq _0801C004
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
b _0801C0D4
|
||||
.align 2, 0
|
||||
_0801BFF0: .4byte gLinkEntity
|
||||
_0801BFF4: .4byte gUnk_080B7B6C
|
||||
_0801BFF8: .4byte gRoomControls
|
||||
_0801BFFC: .4byte gLinkState
|
||||
_0801C000: .4byte gUnk_03000FF0
|
||||
_0801C004:
|
||||
ldrh r2, [r6, #2]
|
||||
movs r6, #0x10
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0801C01A
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C01A:
|
||||
movs r5, #0x20
|
||||
adds r0, r5, #0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0801C02E
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C02E:
|
||||
movs r0, #0x30
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0801C06E
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x1e
|
||||
bls _0801C0D4
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xf]
|
||||
adds r0, r6, #0
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0801C05A
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C05A:
|
||||
adds r0, r5, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _0801C0D4
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
b _0801C0D4
|
||||
_0801C06E:
|
||||
mov r2, r8
|
||||
strb r0, [r2, #0xf]
|
||||
b _0801C0D4
|
||||
_0801C074:
|
||||
mov r0, r8
|
||||
adds r0, #0x6c
|
||||
ldrh r0, [r0]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldr r4, _0801C1C8 @ =gUnk_080B7B6C
|
||||
mov sl, r4
|
||||
ldrb r2, [r7, #0x14]
|
||||
movs r3, #0xe
|
||||
ands r3, r2
|
||||
adds r2, r3, r4
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldr r5, _0801C1CC @ =gRoomControls
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r7, r6]
|
||||
adds r3, #1
|
||||
add r3, sl
|
||||
ldrb r3, [r3]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r2, r8
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
mov r0, sb
|
||||
ldrb r1, [r0, #0x1a]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
mov r1, sb
|
||||
strb r0, [r1, #0x1a]
|
||||
bl DeleteThisEntity
|
||||
_0801C0D4:
|
||||
ldr r0, _0801C1D0 @ =gUnk_03000FF0
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C1BE
|
||||
movs r2, #0x6c
|
||||
add r2, r8
|
||||
mov sb, r2
|
||||
ldrh r0, [r2]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldr r6, _0801C1C8 @ =gUnk_080B7B6C
|
||||
movs r2, #0
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldr r5, _0801C1CC @ =gRoomControls
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #1
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
movs r2, #0x38
|
||||
add r8, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #2
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #3
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #4
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #5
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #6
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #7
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r4, r8
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
_0801C1BE:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801C1C8: .4byte gUnk_080B7B6C
|
||||
_0801C1CC: .4byte gRoomControls
|
||||
_0801C1D0: .4byte gUnk_03000FF0
|
||||
|
|
@ -694,7 +694,7 @@ _08017352:
|
|||
bl sub_0805E3B0
|
||||
cmp r0, #0
|
||||
bne _08017398
|
||||
ldr r1, _08017390 @ =gUnk_080B2CE8
|
||||
ldr r1, _08017390 @ =gPlayerItemFunctions
|
||||
ldrb r0, [r4, #9]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
|
|
@ -719,7 +719,7 @@ _08017352:
|
|||
subs r0, #1
|
||||
b _08017396
|
||||
.align 2, 0
|
||||
_08017390: .4byte gUnk_080B2CE8
|
||||
_08017390: .4byte gPlayerItemFunctions
|
||||
_08017394:
|
||||
adds r0, #1
|
||||
_08017396:
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ sub_08019468: @ 0x08019468
|
|||
_0801947E:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08019480
|
||||
sub_08019480: @ 0x08019480
|
||||
thumb_func_start SwordBeam
|
||||
SwordBeam: @ 0x08019480
|
||||
push {lr}
|
||||
ldr r2, _08019494 @ =gUnk_080B43F4
|
||||
ldrb r1, [r0, #0xc]
|
||||
|
|
@ -5027,8 +5027,8 @@ sub_0801B9F0: @ 0x0801B9F0
|
|||
bl sub_08017744
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0801BA00
|
||||
sub_0801BA00: @ 0x0801BA00
|
||||
thumb_func_start SwordSpin
|
||||
SwordSpin: @ 0x0801BA00
|
||||
push {lr}
|
||||
ldr r2, _0801BA14 @ =gUnk_080B7870
|
||||
ldrb r1, [r0, #0xc]
|
||||
|
|
@ -5620,558 +5620,4 @@ _0801BEEE:
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801BEF0: .4byte gLinkEntity
|
||||
_0801BEF4: .4byte gUnk_080B7878
|
||||
|
||||
thumb_func_start sub_0801BEF8
|
||||
sub_0801BEF8: @ 0x0801BEF8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov r8, r0
|
||||
ldr r7, _0801BFF0 @ =gLinkEntity
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0801BF62
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
|
||||
ldrb r1, [r7, #0x14]
|
||||
movs r2, #0xe
|
||||
ands r2, r1
|
||||
adds r1, r2, r5
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
ldr r4, _0801BFF8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r6, #0x32
|
||||
ldrsh r1, [r7, r6]
|
||||
adds r2, #1
|
||||
adds r2, r2, r5
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xc]
|
||||
_0801BF62:
|
||||
ldr r2, _0801BFFC @ =gLinkState
|
||||
mov sb, r2
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1a]
|
||||
ldr r6, _0801C000 @ =gUnk_03000FF0
|
||||
ldrh r1, [r6]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
mov sl, r3
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C074
|
||||
ldrh r1, [r6, #2]
|
||||
mov r0, sl
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801BFDA
|
||||
movs r4, #0x2e
|
||||
ldrsh r0, [r7, r4]
|
||||
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
|
||||
mov sb, r5
|
||||
ldrb r1, [r7, #0x14]
|
||||
movs r2, #0xe
|
||||
ands r2, r1
|
||||
adds r1, r2, r5
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
ldr r4, _0801BFF8 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r7, r5]
|
||||
adds r2, #1
|
||||
add r2, sb
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
strh r0, [r1]
|
||||
_0801BFDA:
|
||||
ldrh r3, [r6]
|
||||
mov r0, sl
|
||||
ands r0, r3
|
||||
adds r4, r3, #0
|
||||
cmp r0, #0
|
||||
beq _0801C004
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
b _0801C0D4
|
||||
.align 2, 0
|
||||
_0801BFF0: .4byte gLinkEntity
|
||||
_0801BFF4: .4byte gUnk_080B7B6C
|
||||
_0801BFF8: .4byte gRoomControls
|
||||
_0801BFFC: .4byte gLinkState
|
||||
_0801C000: .4byte gUnk_03000FF0
|
||||
_0801C004:
|
||||
ldrh r2, [r6, #2]
|
||||
movs r6, #0x10
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0801C01A
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C01A:
|
||||
movs r5, #0x20
|
||||
adds r0, r5, #0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0801C02E
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C02E:
|
||||
movs r0, #0x30
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0801C06E
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x1e
|
||||
bls _0801C0D4
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xf]
|
||||
adds r0, r6, #0
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0801C05A
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
_0801C05A:
|
||||
adds r0, r5, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _0801C0D4
|
||||
mov r1, r8
|
||||
adds r1, #0x6c
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
b _0801C0D4
|
||||
_0801C06E:
|
||||
mov r2, r8
|
||||
strb r0, [r2, #0xf]
|
||||
b _0801C0D4
|
||||
_0801C074:
|
||||
mov r0, r8
|
||||
adds r0, #0x6c
|
||||
ldrh r0, [r0]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldr r4, _0801C1C8 @ =gUnk_080B7B6C
|
||||
mov sl, r4
|
||||
ldrb r2, [r7, #0x14]
|
||||
movs r3, #0xe
|
||||
ands r3, r2
|
||||
adds r2, r3, r4
|
||||
ldrb r2, [r2]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldr r5, _0801C1CC @ =gRoomControls
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r2, [r7, r6]
|
||||
adds r3, #1
|
||||
add r3, sl
|
||||
ldrb r3, [r3]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r2, r8
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
mov r0, sb
|
||||
ldrb r1, [r0, #0x1a]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
mov r1, sb
|
||||
strb r0, [r1, #0x1a]
|
||||
bl DeleteThisEntity
|
||||
_0801C0D4:
|
||||
ldr r0, _0801C1D0 @ =gUnk_03000FF0
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C1BE
|
||||
movs r2, #0x6c
|
||||
add r2, r8
|
||||
mov sb, r2
|
||||
ldrh r0, [r2]
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldr r6, _0801C1C8 @ =gUnk_080B7B6C
|
||||
movs r2, #0
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldr r5, _0801C1CC @ =gRoomControls
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #1
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
movs r2, #0x38
|
||||
add r8, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #2
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #3
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #4
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #5
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r3, r8
|
||||
ldrb r2, [r3]
|
||||
bl sub_0807B7D8
|
||||
mov r1, sb
|
||||
ldrh r0, [r1]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
movs r2, #6
|
||||
ldrsb r2, [r6, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
movs r3, #7
|
||||
ldrsb r3, [r6, r3]
|
||||
adds r2, r2, r3
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
mov r4, r8
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
_0801C1BE:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801C1C8: .4byte gUnk_080B7B6C
|
||||
_0801C1CC: .4byte gRoomControls
|
||||
_0801C1D0: .4byte gUnk_03000FF0
|
||||
|
||||
thumb_func_start sub_0801C1D4
|
||||
sub_0801C1D4: @ 0x0801C1D4
|
||||
push {r4, lr}
|
||||
movs r4, #0
|
||||
_0801C1D8:
|
||||
lsls r1, r4, #5
|
||||
ldr r0, _0801C200 @ =gUnk_0200AF34
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C1F8
|
||||
ldrb r0, [r2, #1]
|
||||
lsls r0, r0, #4
|
||||
ldr r1, _0801C204 @ =gUnk_080C8F8C
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0, #8]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_0801C1F8:
|
||||
adds r4, #1
|
||||
cmp r4, #0x17
|
||||
bls _0801C1D8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801C200: .4byte gUnk_0200AF34
|
||||
_0801C204: .4byte gUnk_080C8F8C
|
||||
|
||||
thumb_func_start sub_0801C208
|
||||
sub_0801C208: @ 0x0801C208
|
||||
push {r4, r5, lr}
|
||||
movs r5, #0
|
||||
ldr r4, _0801C250 @ =gUnk_03001010
|
||||
_0801C20E:
|
||||
lsls r1, r5, #5
|
||||
ldr r0, _0801C254 @ =gUnk_0200AF34
|
||||
adds r3, r1, r0
|
||||
ldrb r1, [r3]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #3
|
||||
bne _0801C248
|
||||
ldrh r0, [r3, #0xc]
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r3, #0xe]
|
||||
strh r0, [r4, #2]
|
||||
ldrb r2, [r3, #1]
|
||||
lsls r2, r2, #4
|
||||
ldr r0, _0801C258 @ =gUnk_080C8F8C
|
||||
adds r2, r2, r0
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r4, #4]
|
||||
ldrh r0, [r2, #2]
|
||||
strh r0, [r4, #6]
|
||||
ldrb r0, [r3, #0x18]
|
||||
lsls r0, r0, #0xc
|
||||
ldrh r1, [r3, #0x1a]
|
||||
orrs r0, r1
|
||||
strh r0, [r4, #8]
|
||||
ldrh r0, [r2, #6]
|
||||
ldrb r1, [r3, #0x10]
|
||||
bl sub_080ADA14
|
||||
_0801C248:
|
||||
adds r5, #1
|
||||
cmp r5, #0x17
|
||||
bls _0801C20E
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801C250: .4byte gUnk_03001010
|
||||
_0801C254: .4byte gUnk_0200AF34
|
||||
_0801C258: .4byte gUnk_080C8F8C
|
||||
|
||||
thumb_func_start sub_0801C25C
|
||||
sub_0801C25C: @ 0x0801C25C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
movs r4, #0
|
||||
ldr r5, _0801C2E4 @ =gUnk_0200AF34
|
||||
adds r6, r5, #0
|
||||
subs r6, #0x34
|
||||
movs r7, #0xd
|
||||
rsbs r7, r7, #0
|
||||
ldr r3, _0801C2E8 @ =0x040000D4
|
||||
_0801C26C:
|
||||
lsls r0, r4, #5
|
||||
adds r2, r0, r5
|
||||
ldrb r1, [r2]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #3
|
||||
bne _0801C2A8
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1e
|
||||
cmp r0, #1
|
||||
bne _0801C2A8
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r2, #0x1c]
|
||||
str r0, [r3]
|
||||
ldrh r0, [r2, #0x1a]
|
||||
lsls r0, r0, #5
|
||||
ldr r1, _0801C2EC @ =0x06010000
|
||||
adds r0, r0, r1
|
||||
str r0, [r3, #4]
|
||||
ldrb r0, [r2, #0x19]
|
||||
lsls r0, r0, #3
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #0x18
|
||||
orrs r0, r1
|
||||
str r0, [r3, #8]
|
||||
ldr r0, [r3, #8]
|
||||
_0801C2A8:
|
||||
adds r4, #1
|
||||
cmp r4, #0x17
|
||||
ble _0801C26C
|
||||
adds r2, r6, #0
|
||||
ldrb r3, [r2, #0x13]
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0
|
||||
bge _0801C2C8
|
||||
movs r1, #0x7f
|
||||
ands r1, r3
|
||||
strb r1, [r2, #0x13]
|
||||
movs r0, #0x8d
|
||||
lsls r0, r0, #1
|
||||
bl sub_0801C2F0
|
||||
_0801C2C8:
|
||||
ldrb r2, [r6, #0x14]
|
||||
movs r0, #0x14
|
||||
ldrsb r0, [r6, r0]
|
||||
cmp r0, #0
|
||||
bge _0801C2E0
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r6, #0x14]
|
||||
movs r0, #0x93
|
||||
lsls r0, r0, #1
|
||||
bl sub_0801C2F0
|
||||
_0801C2E0:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801C2E4: .4byte gUnk_0200AF34
|
||||
_0801C2E8: .4byte 0x040000D4
|
||||
_0801C2EC: .4byte 0x06010000
|
||||
|
||||
thumb_func_start sub_0801C2F0
|
||||
sub_0801C2F0: @ 0x0801C2F0
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, r1, #0
|
||||
lsls r5, r4, #5
|
||||
ldr r1, _0801C330 @ =0x06010000
|
||||
adds r4, r5, r1
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
cmp r0, #9
|
||||
bls _0801C308
|
||||
movs r0, #9
|
||||
_0801C308:
|
||||
ldr r2, _0801C334 @ =0x040000D4
|
||||
lsls r0, r0, #5
|
||||
ldr r3, _0801C338 @ =gUnk_085C4620
|
||||
adds r0, r0, r3
|
||||
str r0, [r2]
|
||||
str r4, [r2, #4]
|
||||
ldr r4, _0801C33C @ =0x84000008
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r1, #0xa
|
||||
lsls r1, r1, #5
|
||||
adds r1, r1, r3
|
||||
str r1, [r2]
|
||||
ldr r1, _0801C340 @ =0x06010020
|
||||
adds r0, r5, r1
|
||||
str r0, [r2, #4]
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801C330: .4byte 0x06010000
|
||||
_0801C334: .4byte 0x040000D4
|
||||
_0801C338: .4byte gUnk_085C4620
|
||||
_0801C33C: .4byte 0x84000008
|
||||
_0801C340: .4byte 0x06010020
|
||||
_0801BEF4: .4byte gUnk_080B7878
|
||||
|
|
@ -0,0 +1,196 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0801C1D4
|
||||
sub_0801C1D4: @ 0x0801C1D4
|
||||
push {r4, lr}
|
||||
movs r4, #0
|
||||
_0801C1D8:
|
||||
lsls r1, r4, #5
|
||||
ldr r0, _0801C200 @ =gUnk_0200AF34
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801C1F8
|
||||
ldrb r0, [r2, #1]
|
||||
lsls r0, r0, #4
|
||||
ldr r1, _0801C204 @ =gUnk_080C8F8C
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0, #8]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_0801C1F8:
|
||||
adds r4, #1
|
||||
cmp r4, #0x17
|
||||
bls _0801C1D8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801C200: .4byte gUnk_0200AF34
|
||||
_0801C204: .4byte gUnk_080C8F8C
|
||||
|
||||
thumb_func_start sub_0801C208
|
||||
sub_0801C208: @ 0x0801C208
|
||||
push {r4, r5, lr}
|
||||
movs r5, #0
|
||||
ldr r4, _0801C250 @ =gUnk_03001010
|
||||
_0801C20E:
|
||||
lsls r1, r5, #5
|
||||
ldr r0, _0801C254 @ =gUnk_0200AF34
|
||||
adds r3, r1, r0
|
||||
ldrb r1, [r3]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #3
|
||||
bne _0801C248
|
||||
ldrh r0, [r3, #0xc]
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r3, #0xe]
|
||||
strh r0, [r4, #2]
|
||||
ldrb r2, [r3, #1]
|
||||
lsls r2, r2, #4
|
||||
ldr r0, _0801C258 @ =gUnk_080C8F8C
|
||||
adds r2, r2, r0
|
||||
ldrh r0, [r2]
|
||||
strh r0, [r4, #4]
|
||||
ldrh r0, [r2, #2]
|
||||
strh r0, [r4, #6]
|
||||
ldrb r0, [r3, #0x18]
|
||||
lsls r0, r0, #0xc
|
||||
ldrh r1, [r3, #0x1a]
|
||||
orrs r0, r1
|
||||
strh r0, [r4, #8]
|
||||
ldrh r0, [r2, #6]
|
||||
ldrb r1, [r3, #0x10]
|
||||
bl sub_080ADA14
|
||||
_0801C248:
|
||||
adds r5, #1
|
||||
cmp r5, #0x17
|
||||
bls _0801C20E
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801C250: .4byte gUnk_03001010
|
||||
_0801C254: .4byte gUnk_0200AF34
|
||||
_0801C258: .4byte gUnk_080C8F8C
|
||||
|
||||
thumb_func_start sub_0801C25C
|
||||
sub_0801C25C: @ 0x0801C25C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
movs r4, #0
|
||||
ldr r5, _0801C2E4 @ =gUnk_0200AF34
|
||||
adds r6, r5, #0
|
||||
subs r6, #0x34
|
||||
movs r7, #0xd
|
||||
rsbs r7, r7, #0
|
||||
ldr r3, _0801C2E8 @ =0x040000D4
|
||||
_0801C26C:
|
||||
lsls r0, r4, #5
|
||||
adds r2, r0, r5
|
||||
ldrb r1, [r2]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #3
|
||||
bne _0801C2A8
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1e
|
||||
cmp r0, #1
|
||||
bne _0801C2A8
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r2, #0x1c]
|
||||
str r0, [r3]
|
||||
ldrh r0, [r2, #0x1a]
|
||||
lsls r0, r0, #5
|
||||
ldr r1, _0801C2EC @ =0x06010000
|
||||
adds r0, r0, r1
|
||||
str r0, [r3, #4]
|
||||
ldrb r0, [r2, #0x19]
|
||||
lsls r0, r0, #3
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #0x18
|
||||
orrs r0, r1
|
||||
str r0, [r3, #8]
|
||||
ldr r0, [r3, #8]
|
||||
_0801C2A8:
|
||||
adds r4, #1
|
||||
cmp r4, #0x17
|
||||
ble _0801C26C
|
||||
adds r2, r6, #0
|
||||
ldrb r3, [r2, #0x13]
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0
|
||||
bge _0801C2C8
|
||||
movs r1, #0x7f
|
||||
ands r1, r3
|
||||
strb r1, [r2, #0x13]
|
||||
movs r0, #0x8d
|
||||
lsls r0, r0, #1
|
||||
bl sub_0801C2F0
|
||||
_0801C2C8:
|
||||
ldrb r2, [r6, #0x14]
|
||||
movs r0, #0x14
|
||||
ldrsb r0, [r6, r0]
|
||||
cmp r0, #0
|
||||
bge _0801C2E0
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r6, #0x14]
|
||||
movs r0, #0x93
|
||||
lsls r0, r0, #1
|
||||
bl sub_0801C2F0
|
||||
_0801C2E0:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801C2E4: .4byte gUnk_0200AF34
|
||||
_0801C2E8: .4byte 0x040000D4
|
||||
_0801C2EC: .4byte 0x06010000
|
||||
|
||||
thumb_func_start sub_0801C2F0
|
||||
sub_0801C2F0: @ 0x0801C2F0
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, r1, #0
|
||||
lsls r5, r4, #5
|
||||
ldr r1, _0801C330 @ =0x06010000
|
||||
adds r4, r5, r1
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
cmp r0, #9
|
||||
bls _0801C308
|
||||
movs r0, #9
|
||||
_0801C308:
|
||||
ldr r2, _0801C334 @ =0x040000D4
|
||||
lsls r0, r0, #5
|
||||
ldr r3, _0801C338 @ =gUnk_085C4620
|
||||
adds r0, r0, r3
|
||||
str r0, [r2]
|
||||
str r4, [r2, #4]
|
||||
ldr r4, _0801C33C @ =0x84000008
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r1, #0xa
|
||||
lsls r1, r1, #5
|
||||
adds r1, r1, r3
|
||||
str r1, [r2]
|
||||
ldr r1, _0801C340 @ =0x06010020
|
||||
adds r0, r5, r1
|
||||
str r0, [r2, #4]
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801C330: .4byte 0x06010000
|
||||
_0801C334: .4byte 0x040000D4
|
||||
_0801C338: .4byte gUnk_085C4620
|
||||
_0801C33C: .4byte 0x84000008
|
||||
_0801C340: .4byte 0x06010020
|
||||
|
|
@ -434,8 +434,8 @@ _08056324:
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08056328
|
||||
sub_08056328: @ 0x08056328
|
||||
thumb_func_start NulledItem
|
||||
NulledItem: @ 0x08056328
|
||||
push {lr}
|
||||
bl DeleteThisEntity
|
||||
pop {pc}
|
||||
|
|
|
|||
|
|
@ -4331,8 +4331,8 @@ sub_080752E8: @ 0x080752E8
|
|||
.align 2, 0
|
||||
_080752FC: .4byte gItemFunctions
|
||||
|
||||
thumb_func_start CellOverwriteSet
|
||||
CellOverwriteSet: @ 0x08075300
|
||||
thumb_func_start DebugItem
|
||||
DebugItem: @ 0x08075300
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
|
|
|
|||
245
asm/dampe.s
245
asm/dampe.s
|
|
@ -1,245 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Dampe
|
||||
Dampe: @ 0x0806BDAC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #1
|
||||
beq _0806BDE6
|
||||
cmp r0, #1
|
||||
bgt _0806BDC0
|
||||
cmp r0, #0
|
||||
beq _0806BDC6
|
||||
b _0806BE3A
|
||||
_0806BDC0:
|
||||
cmp r0, #2
|
||||
beq _0806BE26
|
||||
b _0806BE3A
|
||||
_0806BDC6:
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0805E3A0
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
b _0806BE3A
|
||||
_0806BDE6:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x39
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r1, #2
|
||||
bne _0806BE1C
|
||||
movs r0, #0
|
||||
strb r1, [r4, #0xc]
|
||||
strb r0, [r2]
|
||||
ldr r1, _0806BE18 @ =gLinkEntity
|
||||
adds r0, r4, #0
|
||||
bl sub_080045C4
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r1, #4
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F118
|
||||
b _0806BE3A
|
||||
.align 2, 0
|
||||
_0806BE18: .4byte gLinkEntity
|
||||
_0806BE1C:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DD94
|
||||
b _0806BE3A
|
||||
_0806BE26:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
bl UpdateFuseInteraction
|
||||
cmp r0, #0
|
||||
beq _0806BE3A
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0806BE3A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806BE3C
|
||||
sub_0806BE3C: @ 0x0806BE3C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08078784
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start Dampe_Fusion
|
||||
Dampe_Fusion: @ 0x0806BE54
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldrb r0, [r2, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0806BE7A
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
ldrb r1, [r2, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x18]
|
||||
adds r0, r2, #0
|
||||
movs r1, #2
|
||||
bl InitAnimationForceUpdate
|
||||
b _0806BE80
|
||||
_0806BE7A:
|
||||
adds r0, r2, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
_0806BE80:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0806BE84
|
||||
sub_0806BE84: @ 0x0806BE84
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x14]
|
||||
movs r5, #1
|
||||
movs r0, #0x69
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0806BEA6
|
||||
movs r5, #0
|
||||
movs r0, #0x69
|
||||
bl SetLocalFlag
|
||||
movs r0, #1
|
||||
str r0, [r4, #0x14]
|
||||
_0806BEA6:
|
||||
movs r0, #0x3c
|
||||
bl GetInventoryValue
|
||||
cmp r0, #1
|
||||
bls _0806BEB2
|
||||
movs r5, #2
|
||||
_0806BEB2:
|
||||
ldr r0, _0806BEC4 @ =gUnk_08113344
|
||||
lsls r1, r5, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r6, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806BEC4: .4byte gUnk_08113344
|
||||
|
||||
thumb_func_start sub_0806BEC8
|
||||
sub_0806BEC8: @ 0x0806BEC8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
movs r4, #0
|
||||
str r4, [r5, #0x14]
|
||||
movs r0, #0x3c
|
||||
bl GetInventoryValue
|
||||
cmp r0, #1
|
||||
bne _0806BEE2
|
||||
movs r4, #1
|
||||
str r4, [r5, #0x14]
|
||||
b _0806BEE8
|
||||
_0806BEE2:
|
||||
cmp r0, #1
|
||||
bls _0806BEE8
|
||||
movs r4, #2
|
||||
_0806BEE8:
|
||||
ldr r0, _0806BEF8 @ =gUnk_0811334A
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r6, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0806BEF8: .4byte gUnk_0811334A
|
||||
|
||||
thumb_func_start sub_0806BEFC
|
||||
sub_0806BEFC: @ 0x0806BEFC
|
||||
push {lr}
|
||||
movs r0, #0xbf
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _0806BF2C @ =0x0000058E
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
ldr r0, _0806BF30 @ =0x0000017F
|
||||
ldr r1, _0806BF34 @ =0x0000058F
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _0806BF38 @ =0x000005CE
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
ldr r0, _0806BF3C @ =0x00000181
|
||||
ldr r1, _0806BF40 @ =0x000005CF
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806BF2C: .4byte 0x0000058E
|
||||
_0806BF30: .4byte 0x0000017F
|
||||
_0806BF34: .4byte 0x0000058F
|
||||
_0806BF38: .4byte 0x000005CE
|
||||
_0806BF3C: .4byte 0x00000181
|
||||
_0806BF40: .4byte 0x000005CF
|
||||
|
||||
thumb_func_start sub_0806BF44
|
||||
sub_0806BF44: @ 0x0806BF44
|
||||
push {r4, r5, lr}
|
||||
adds r2, r0, #0
|
||||
adds r4, r1, #0
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x14]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r2, r1]
|
||||
ldr r3, _0806BF78 @ =gRoomControls
|
||||
movs r5, #0xa
|
||||
ldrsh r1, [r3, r5]
|
||||
subs r0, r0, r1
|
||||
adds r0, #0x10
|
||||
ldr r1, _0806BF7C @ =0x0000010F
|
||||
cmp r0, r1
|
||||
bhi _0806BF76
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r2, #0xc
|
||||
ldrsh r1, [r3, r2]
|
||||
subs r0, r0, r1
|
||||
adds r0, #0x18
|
||||
cmp r0, #0xcf
|
||||
bhi _0806BF76
|
||||
movs r0, #1
|
||||
str r0, [r4, #0x14]
|
||||
_0806BF76:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0806BF78: .4byte gRoomControls
|
||||
_0806BF7C: .4byte 0x0000010F
|
||||
|
|
@ -8,7 +8,4 @@ gUnk_080B2A70:: @ 080B2A70
|
|||
.incbin "baserom.gba", 0x0B2A70, 0x0000268
|
||||
|
||||
gUnk_080B2CD8:: @ 080B2CD8
|
||||
.incbin "baserom.gba", 0x0B2CD8, 0x0000010
|
||||
|
||||
gUnk_080B2CE8:: @ 080B2CE8
|
||||
.incbin "baserom.gba", 0x0B2CE8, 0x0000064
|
||||
.incbin "baserom.gba", 0x0B2CD8, 0x0000010
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gPlayerItemFunctions:: @ gPlayerItemFunctions
|
||||
@ replacing .incbin "baserom.gba", 0x000b2ce8, 0x64
|
||||
/*0x00*/ .4byte DeleteEntity
|
||||
/*0x01*/ .4byte sub_080A7544
|
||||
/*0x02*/ .4byte sub_0801B188
|
||||
/*0x03*/ .4byte sub_0801B45C
|
||||
/*0x04*/ .4byte sub_08018FCC
|
||||
/*0x05*/ .4byte sub_080A2D74
|
||||
/*0x06*/ .4byte sub_08054A40
|
||||
/*0x07*/ .4byte sub_08056330
|
||||
/*0x08*/ .4byte sub_080ADA30
|
||||
/*0x09*/ .4byte sub_080704BC
|
||||
/*0x0a*/ .4byte DeleteEntity
|
||||
/*0x0b*/ .4byte DeleteEntity
|
||||
/*0x0c*/ .4byte sub_0801B898
|
||||
/*0x0d*/ .4byte CellOverwriteSet
|
||||
/*0x0e*/ .4byte SwordSpin
|
||||
/*0x0f*/ .4byte SwordBeam
|
||||
/*0x10*/ .4byte sub_080ACBCC
|
||||
/*0x11*/ .4byte sub_08018C88
|
||||
/*0x12*/ .4byte sub_080700E8
|
||||
/*0x13*/ .4byte sub_080ACF14
|
||||
/*0x14*/ .4byte sub_0805FBD0
|
||||
/*0x15*/ .4byte sub_080A306C
|
||||
/*0x16*/ .4byte SwordBeam
|
||||
/*0x17*/ .4byte NulledItem
|
||||
/*0x18*/ .4byte CellOverwriteSet
|
||||
|
||||
/*
|
||||
.4byte DeleteEntity
|
||||
.4byte sub_080A7544
|
||||
.4byte sub_0801B188
|
||||
.4byte sub_0801B45C
|
||||
.4byte sub_08018FCC
|
||||
.4byte sub_080A2D74
|
||||
.4byte sub_08054A40
|
||||
.4byte sub_08056330
|
||||
.4byte sub_080ADA30
|
||||
.4byte sub_080704BC
|
||||
.4byte DeleteEntity
|
||||
.4byte DeleteEntity
|
||||
.4byte sub_0801B898
|
||||
.4byte CellOverwriteSet
|
||||
.4byte SwordSpin
|
||||
.4byte SwordBeam
|
||||
.4byte sub_080ACBCC
|
||||
.4byte sub_08018C88
|
||||
.4byte sub_080700E8
|
||||
.4byte sub_080ACF14
|
||||
.4byte sub_0805FBD0
|
||||
.4byte sub_080A306C
|
||||
.4byte SwordBeam
|
||||
.4byte NulledItem
|
||||
.4byte CellOverwriteSet
|
||||
*/
|
||||
|
|
@ -16,7 +16,7 @@ typedef struct {
|
|||
u8 unk5;
|
||||
} ItemBehavior;
|
||||
|
||||
void extern CellOverwriteSet(ItemBehavior*, u32);
|
||||
void extern DebugItem(ItemBehavior*, u32);
|
||||
void extern Sword(ItemBehavior*, u32);
|
||||
void extern Sword(ItemBehavior*, u32);
|
||||
void extern Sword(ItemBehavior*, u32);
|
||||
|
|
@ -38,11 +38,11 @@ void extern PacciCane(ItemBehavior*, u32);
|
|||
void extern MoleMitts(ItemBehavior*, u32);
|
||||
void extern RocsCape(ItemBehavior*, u32);
|
||||
void extern sub_08076800(ItemBehavior*, u32);
|
||||
void extern CellOverwriteSet(ItemBehavior*, u32);
|
||||
void extern DebugItem(ItemBehavior*, u32);
|
||||
void Ocarina(ItemBehavior*, u32);
|
||||
void extern CellOverwriteSet(ItemBehavior*, u32);
|
||||
void extern CellOverwriteSet(ItemBehavior*, u32);
|
||||
void extern CellOverwriteSet(ItemBehavior*, u32);
|
||||
void extern DebugItem(ItemBehavior*, u32);
|
||||
void extern DebugItem(ItemBehavior*, u32);
|
||||
void extern DebugItem(ItemBehavior*, u32);
|
||||
void extern TryPickupObject(ItemBehavior*, u32);
|
||||
void extern JarEmpty(ItemBehavior*, u32);
|
||||
void extern JarEmpty(ItemBehavior*, u32);
|
||||
|
|
|
|||
|
|
@ -303,6 +303,8 @@ SECTIONS {
|
|||
asm/bowUse.o(.text);
|
||||
asm/sub_08019410.o(.text);
|
||||
asm/code_08019444.o(.text);
|
||||
asm/cellOverwriteSet.o(.text);
|
||||
asm/code_0801C1D4.o(.text);
|
||||
asm/drawUI.o(.text);
|
||||
asm/code_0801C370.o(.text);
|
||||
asm/drawRupees.o(.text);
|
||||
|
|
@ -591,7 +593,7 @@ SECTIONS {
|
|||
asm/librarians.o(.text);
|
||||
asm/farmers.o(.text);
|
||||
asm/carlov.o(.text);
|
||||
asm/dampe.o(.text);
|
||||
src/dampe.o(.text);
|
||||
asm/drLeft.o(.text);
|
||||
asm/kingGustaf.o(.text);
|
||||
asm/gina.o(.text);
|
||||
|
|
@ -640,7 +642,7 @@ SECTIONS {
|
|||
src/sub_0807B930.o(.text);
|
||||
asm/code_0807B9B8.o(.text);
|
||||
src/sub_0807C998.o(.text);
|
||||
src/sub_0801D754.o(.text);
|
||||
src/sub_0801D754.o(.text); /* ??? */
|
||||
asm/sub_0807CA18.o(.text);
|
||||
asm/getInventoryValue.o(.text);
|
||||
asm/code_0807CAA0.o(.text);
|
||||
|
|
@ -886,6 +888,7 @@ SECTIONS {
|
|||
asm/intr.o(.text);
|
||||
/* data */
|
||||
data/data_080B2A70.o(.rodata);
|
||||
data/playerItemFunctions.o(.rodata);
|
||||
src/object.o(.rodata);
|
||||
data/data_080B3054.o(.rodata);
|
||||
src/npc.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,132 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "link.h"
|
||||
#include "room.h"
|
||||
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_080045C4(Entity*, Entity*);
|
||||
extern void InitAnimationForceUpdate(Entity*, u32);
|
||||
extern u32 sub_0806F5A4(void);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern void UpdateAnimationSingleFrame(Entity*);
|
||||
extern u32 UpdateFuseInteraction(Entity*);
|
||||
extern u32 sub_0801E99C(void);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern u32 CheckLocalFlag(u32);
|
||||
extern void SetLocalFlag(u32);
|
||||
extern u32 GetInventoryValue(u32);
|
||||
extern void TextboxNoOverlap(u16, Entity*);
|
||||
extern void SetTileType(u32, u32, u32);
|
||||
|
||||
extern u16 gUnk_08113344[];
|
||||
extern u16 gUnk_0811334A[];
|
||||
|
||||
typedef struct {
|
||||
u8 filler[18];
|
||||
u32 unk;
|
||||
} struct_0806BE84;
|
||||
|
||||
void Dampe(Entity* this) {
|
||||
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
sub_0805E3A0(this, 2);
|
||||
sub_0807DD50(this);
|
||||
return;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
sub_080045C4(this, &gLinkEntity);
|
||||
InitAnimationForceUpdate(this, sub_0806F5A4() + 4);
|
||||
sub_0806F118(this);
|
||||
} else {
|
||||
sub_0807DD94(this, 0);
|
||||
}
|
||||
return;
|
||||
case 2:
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if (UpdateFuseInteraction(this)) {
|
||||
this->action = 1;
|
||||
}
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806BE3C(Entity *this)
|
||||
{
|
||||
this->field_0x68 = sub_0801E99C();
|
||||
sub_08078784(this, this->field_0x68);
|
||||
}
|
||||
|
||||
void Dampe_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.ss0 = 1;
|
||||
InitAnimationForceUpdate(this, 2);
|
||||
}
|
||||
else {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806BE84(Entity *this, struct_0806BE84* r1)
|
||||
{
|
||||
u32 iVar3;
|
||||
|
||||
r1->unk = 0;
|
||||
iVar3 = 1;
|
||||
if (!CheckLocalFlag(0x69)) {
|
||||
iVar3 = 0;
|
||||
SetLocalFlag(0x69);
|
||||
r1->unk = 1;
|
||||
}
|
||||
// Graveyard key
|
||||
if (2 <= GetInventoryValue(0x3C)) {
|
||||
iVar3 = 2;
|
||||
}
|
||||
TextboxNoOverlap(gUnk_08113344[iVar3], this);
|
||||
}
|
||||
|
||||
void sub_0806BEC8(Entity *this, struct_0806BE84* r1)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 iVar2;
|
||||
|
||||
iVar2 = 0;
|
||||
r1->unk = 0;
|
||||
uVar1 = GetInventoryValue(0x3C);
|
||||
if (uVar1 == 1) {
|
||||
iVar2 = 1;
|
||||
r1->unk = 1;
|
||||
}
|
||||
else {
|
||||
if (1 < uVar1) {
|
||||
iVar2 = 2;
|
||||
}
|
||||
}
|
||||
|
||||
TextboxNoOverlap(gUnk_0811334A[iVar2], this);
|
||||
}
|
||||
|
||||
void sub_0806BEFC(void)
|
||||
{
|
||||
SetTileType(0x17E, 0x58E, 1);
|
||||
SetTileType(0x17F, 0x58F, 1);
|
||||
SetTileType(0x180, 0x5cE, 1);
|
||||
SetTileType(0x181, 0x5cF, 1);
|
||||
}
|
||||
|
||||
void sub_0806BF44(Entity *this, struct_0806BE84 *r1)
|
||||
{
|
||||
r1->unk = 0;
|
||||
if (((this->x.HALF.HI - gRoomControls.roomScrollX) + 0x10U < 0x110) &&
|
||||
((this->y.HALF.HI - gRoomControls.roomScrollY) + 0x18U < 0xd0)) {
|
||||
r1->unk = 1;
|
||||
}
|
||||
}
|
||||
12
src/item.c
12
src/item.c
|
|
@ -2,8 +2,10 @@
|
|||
#include "entity.h"
|
||||
#include "item.h"
|
||||
|
||||
|
||||
// TODO - How does this relate to PlayerItemFunctions? Is this just a lookup table?
|
||||
void (*const gItemFunctions[])(ItemBehavior*, u32) = {
|
||||
CellOverwriteSet,
|
||||
DebugItem,
|
||||
Sword,
|
||||
Sword,
|
||||
Sword,
|
||||
|
|
@ -25,11 +27,11 @@ void (*const gItemFunctions[])(ItemBehavior*, u32) = {
|
|||
MoleMitts,
|
||||
RocsCape,
|
||||
sub_08076800,
|
||||
CellOverwriteSet,
|
||||
DebugItem,
|
||||
Ocarina,
|
||||
CellOverwriteSet,
|
||||
CellOverwriteSet,
|
||||
CellOverwriteSet,
|
||||
DebugItem,
|
||||
DebugItem,
|
||||
DebugItem,
|
||||
TryPickupObject,
|
||||
JarEmpty,
|
||||
JarEmpty,
|
||||
|
|
|
|||
Loading…
Reference in New Issue