mirror of
https://github.com/zeldaret/tmc
synced 2026-06-08 04:17:19 -04:00
Disassemble functions
This commit is contained in:
+247
-1
@@ -23,7 +23,253 @@ _08089D18: .4byte gUnk_08120DF4
|
||||
thumb_func_start sub_08089D1C
|
||||
sub_08089D1C: @ 0x08089D1C
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x089620, 0x00001E0 @TODO disassemble
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0x19]
|
||||
movs r4, #0x3f
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r6, #0x80
|
||||
orrs r0, r6
|
||||
strb r0, [r5, #0x19]
|
||||
ldrb r1, [r5, #0x1b]
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x1b]
|
||||
adds r0, r5, #0
|
||||
movs r1, #4
|
||||
bl sub_0805E3A0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #7
|
||||
bne _08089688
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0808966C
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0808966C
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _08089662
|
||||
b _080897FE
|
||||
_08089662:
|
||||
ldrb r1, [r5, #0x1b]
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
orrs r0, r6
|
||||
strb r0, [r5, #0x1b]
|
||||
_0808966C:
|
||||
ldr r4, _08089684 @ =gUnk_08120E3C
|
||||
ldrb r0, [r5, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldrb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r5, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
b _080896C6
|
||||
.align 2, 0
|
||||
_08089684: .4byte gUnk_08120E3C
|
||||
_08089688:
|
||||
cmp r0, #0
|
||||
beq _080896A4
|
||||
ldr r0, _080896A0 @ =gUnk_08120E14
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
b _080896BE
|
||||
.align 2, 0
|
||||
_080896A0: .4byte gUnk_08120E14
|
||||
_080896A4:
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
movs r2, #2
|
||||
bl sub_080AE008
|
||||
ldr r0, _08089700 @ =gUnk_08120E14
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r1, [r1]
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_080896BE:
|
||||
ldr r1, _08089700 @ =gUnk_08120E14
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
_080896C6:
|
||||
ldrb r0, [r0, #1]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r5, #0x18]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
bge _080896F4
|
||||
b _080897F8
|
||||
_080896F4:
|
||||
cmp r0, #6
|
||||
ble _08089704
|
||||
cmp r0, #7
|
||||
beq _08089714
|
||||
b _080897F8
|
||||
.align 2, 0
|
||||
_08089700: .4byte gUnk_08120E14
|
||||
_08089704:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
movs r2, #0
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #1
|
||||
strh r1, [r0]
|
||||
strb r2, [r5, #0xe]
|
||||
b _080897F8
|
||||
_08089714:
|
||||
ldrb r1, [r5, #0xb]
|
||||
cmp r1, #3
|
||||
bgt _08089724
|
||||
cmp r1, #2
|
||||
bge _080897E4
|
||||
cmp r1, #0
|
||||
beq _0808972A
|
||||
b _080897F8
|
||||
_08089724:
|
||||
cmp r1, #4
|
||||
beq _080897F0
|
||||
b _080897F8
|
||||
_0808972A:
|
||||
movs r0, #0x10
|
||||
str r0, [r5, #0x6c]
|
||||
strb r1, [r5, #0xe]
|
||||
_08089730:
|
||||
movs r0, #0x2c
|
||||
movs r1, #7
|
||||
movs r2, #1
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
str r1, [r5, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080897C0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r2, [r5, #0x54]
|
||||
ldr r1, [r5, #0x6c]
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xf]
|
||||
_08089754:
|
||||
ldrb r0, [r5, #0xe]
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080897DC @ =gUnk_08120DFC
|
||||
adds r4, r0, r1
|
||||
ldrb r2, [r4]
|
||||
subs r2, #2
|
||||
movs r0, #0x2c
|
||||
movs r1, #7
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
str r1, [r5, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080897A2
|
||||
movs r0, #1
|
||||
ldrsb r0, [r4, r0]
|
||||
ldrh r2, [r5, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x2e]
|
||||
ldr r2, [r5, #0x54]
|
||||
ldr r1, [r5, #0x6c]
|
||||
ldrh r0, [r5, #0x32]
|
||||
subs r0, r0, r1
|
||||
movs r1, #2
|
||||
ldrsb r1, [r4, r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
ldr r3, [r5, #0x54]
|
||||
ldrb r2, [r4, #3]
|
||||
movs r0, #1
|
||||
ands r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldrb r0, [r3, #0x18]
|
||||
movs r4, #0x41
|
||||
rsbs r4, r4, #0
|
||||
adds r1, r4, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x18]
|
||||
_080897A2:
|
||||
ldrb r0, [r5, #0xe]
|
||||
adds r2, r0, #1
|
||||
strb r2, [r5, #0xe]
|
||||
ldrb r0, [r5, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _08089754
|
||||
lsls r0, r2, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #5
|
||||
bls _080897C0
|
||||
strb r1, [r5, #0xe]
|
||||
_080897C0:
|
||||
ldr r0, [r5, #0x6c]
|
||||
adds r0, #0x38
|
||||
str r0, [r5, #0x6c]
|
||||
ldrh r1, [r5, #0x32]
|
||||
subs r1, r1, r0
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
ldr r0, _080897E0 @ =gRoomControls
|
||||
ldrh r0, [r0, #8]
|
||||
cmp r1, r0
|
||||
bge _08089730
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
b _080897F8
|
||||
.align 2, 0
|
||||
_080897DC: .4byte gUnk_08120DFC
|
||||
_080897E0: .4byte gRoomControls
|
||||
_080897E4:
|
||||
ldrb r0, [r5, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #0x19]
|
||||
_080897F0:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
_080897F8:
|
||||
adds r0, r5, #0
|
||||
bl sub_08089F08
|
||||
_080897FE:
|
||||
pop {r4, r5, r6, pc}
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
|
||||
+309
-2
@@ -1728,7 +1728,279 @@ _080269C8: .4byte 0xFFFFFF00
|
||||
thumb_func_start sub_080269CC
|
||||
sub_080269CC: @ 0x080269CC
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0269B0, 0x218 @ TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r6, r0, #0
|
||||
movs r7, #0
|
||||
ldr r5, [r6, #0x54]
|
||||
ldr r0, [r6, #0x68]
|
||||
mov sl, r0
|
||||
ldr r1, [r6, #0x50]
|
||||
mov sb, r1
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #2
|
||||
mov r8, r1
|
||||
cmp r0, #0
|
||||
beq _080269DC
|
||||
ldr r0, _080269FC @ =0xFFFFFD00
|
||||
mov r8, r0
|
||||
_080269DC:
|
||||
mov r0, sl
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x20
|
||||
lsls r0, r4, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x3f
|
||||
bhi _08026A00
|
||||
mov r1, sl
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A02
|
||||
.align 2, 0
|
||||
_080269FC: .4byte 0xFFFFFD00
|
||||
_08026A00:
|
||||
movs r7, #1
|
||||
_08026A02:
|
||||
mov r0, sb
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x44
|
||||
lsls r0, r4, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x87
|
||||
bhi _08026A20
|
||||
mov r1, sb
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A22
|
||||
_08026A20:
|
||||
adds r7, #1
|
||||
_08026A22:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
adds r4, r0, #0
|
||||
adds r4, #0x40
|
||||
adds r0, #0x20
|
||||
cmp r0, #0x40
|
||||
bls _08026A62
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08026A50
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #6
|
||||
beq _08026A62
|
||||
adds r0, r5, #0
|
||||
movs r1, #6
|
||||
bl InitAnimationForceUpdate
|
||||
b _08026A62
|
||||
_08026A50:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #5
|
||||
beq _08026A62
|
||||
adds r0, r5, #0
|
||||
movs r1, #5
|
||||
bl InitAnimationForceUpdate
|
||||
_08026A62:
|
||||
lsls r0, r4, #0x18
|
||||
cmp r0, #0
|
||||
blt _08026A74
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x82
|
||||
ldrh r0, [r1]
|
||||
add r0, r8
|
||||
strh r0, [r1]
|
||||
b _08026A76
|
||||
_08026A74:
|
||||
adds r7, #1
|
||||
_08026A76:
|
||||
cmp r7, #3
|
||||
beq _08026A7C
|
||||
b _08026B98
|
||||
_08026A7C:
|
||||
ldrb r1, [r6, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r6, #0x10]
|
||||
ldrb r1, [r5, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x76
|
||||
ldrh r0, [r1]
|
||||
adds r0, #3
|
||||
strh r0, [r1]
|
||||
movs r0, #0x20
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
ldr r0, _08026B24 @ =0x0000010B
|
||||
bl SoundReq
|
||||
adds r0, r6, #0
|
||||
movs r1, #0x15
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08026B2E
|
||||
movs r0, #0xc9
|
||||
strh r0, [r4, #0x12]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r1, [r6, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #0x10
|
||||
strh r0, [r4, #0x32]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r2, [r5, #0x19]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r3, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r5, #0x1b]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x1b]
|
||||
ldrb r1, [r6, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08026B28
|
||||
ldrh r0, [r4, #0x2e]
|
||||
subs r0, #0x38
|
||||
b _08026B2C
|
||||
.align 2, 0
|
||||
_08026B24: .4byte 0x0000010B
|
||||
_08026B28:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #0x38
|
||||
_08026B2C:
|
||||
strh r0, [r4, #0x2e]
|
||||
_08026B2E:
|
||||
ldr r3, [r6, #0x50]
|
||||
ldr r2, [r6, #0x54]
|
||||
ldr r0, [r6, #0x68]
|
||||
adds r0, #0x84
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
adds r2, #0x84
|
||||
strb r1, [r2]
|
||||
adds r3, #0x84
|
||||
strb r1, [r3]
|
||||
mov r0, sb
|
||||
adds r0, #0x7a
|
||||
movs r1, #0x98
|
||||
strh r1, [r0]
|
||||
mov r0, sl
|
||||
adds r0, #0x7a
|
||||
strh r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x7a
|
||||
strh r1, [r0]
|
||||
bl Random
|
||||
ldr r2, _08026B94 @ =gUnk_080CC278
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r1]
|
||||
adds r7, r6, #0
|
||||
adds r7, #0x7c
|
||||
strb r0, [r7]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, #3]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #3]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x49
|
||||
movs r2, #0xa
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08026BB4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
ldrb r0, [r7]
|
||||
str r0, [r1]
|
||||
b _08026BB4
|
||||
.align 2, 0
|
||||
_08026B94: .4byte gUnk_080CC278
|
||||
_08026B98:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x76
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xef
|
||||
bhi _08026BB4
|
||||
ldr r0, [r5, #0x74]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xb
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #0x74]
|
||||
ldr r0, [r5, #0x78]
|
||||
ldr r1, _08026BC4 @ =0xFFFF8000
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #0x78]
|
||||
_08026BB4:
|
||||
adds r0, r6, #0
|
||||
bl sub_08027870
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08026BC4: .4byte 0xFFFF8000
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
@@ -4289,7 +4561,42 @@ _08027D1E:
|
||||
thumb_func_start sub_08027D20
|
||||
sub_08027D20: @ 0x08027D20
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x027D00, 0x48 @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x15
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _08027D44
|
||||
movs r0, #0xc9
|
||||
strh r0, [r3, #0x12]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r1, [r4, #0x1a]
|
||||
lsls r1, r1, #0x1c
|
||||
lsrs r1, r1, #0x1c
|
||||
ldrb r2, [r3, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1a]
|
||||
ldrh r0, [r3, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r3, #0x32]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #8
|
||||
strb r0, [r1]
|
||||
_08027D44:
|
||||
adds r0, r3, #0
|
||||
pop {r4, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
|
||||
+35
-1
@@ -6,7 +6,41 @@
|
||||
.text
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x000118, 0x38 @TODO disassemble
|
||||
thumb_func_start sub_08000118
|
||||
sub_08000118: @ 0x08000118
|
||||
add r0, pc, #0x28
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800011C:
|
||||
subs r2, #4
|
||||
str r1, [r2]
|
||||
cmp r2, r3
|
||||
bgt _0800011C
|
||||
bx lr
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08000126
|
||||
sub_08000126: @ 0x08000126
|
||||
add r0, pc, #0x1C
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800012A:
|
||||
ldr r0, [r3]
|
||||
adds r3, #4
|
||||
cmp r0, r1
|
||||
beq _0800012A
|
||||
subs r2, #0xa0
|
||||
_08000134:
|
||||
ldr r0, [r2]
|
||||
adds r2, #4
|
||||
cmp r0, r1
|
||||
beq _08000134
|
||||
subs r1, r2, #4
|
||||
subs r0, r3, #4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08000144EU:
|
||||
.byte 0x33, 0x5A, 0x43, 0x4D
|
||||
.4byte gUnk_03007FA0
|
||||
.4byte gUnk_03006C14
|
||||
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_08000108
|
||||
|
||||
+137
-2
@@ -2191,10 +2191,145 @@ _0801E8D2:
|
||||
thumb_func_start sub_0801E8D4
|
||||
sub_0801E8D4: @ 0x0801E8D4
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x01E8B8, 0x90 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
movs r4, #0xa
|
||||
_0801E8BC:
|
||||
adds r0, r4, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801E93A
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E810
|
||||
cmp r0, #0
|
||||
bne _0801E93A
|
||||
ldr r1, _0801E8F4 @ =0x080C9A5C
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #4]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E8F8 @ =0x080FDFD0
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r2, #0x10]
|
||||
cmp r0, #4
|
||||
bhi _0801E926
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E8FC @ =_0801E900
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801E8F4: .4byte 0x080C9A5C
|
||||
_0801E8F8: .4byte 0x080FDFD0
|
||||
_0801E8FC: .4byte _0801E900
|
||||
_0801E900: @ jump table
|
||||
.4byte _0801E914 @ case 0
|
||||
.4byte _0801E918 @ case 1
|
||||
.4byte _0801E91C @ case 2
|
||||
.4byte _0801E920 @ case 3
|
||||
.4byte _0801E924 @ case 4
|
||||
_0801E914:
|
||||
movs r5, #0
|
||||
b _0801E926
|
||||
_0801E918:
|
||||
ldrb r5, [r2, #0x11]
|
||||
b _0801E926
|
||||
_0801E91C:
|
||||
movs r5, #0xf
|
||||
b _0801E926
|
||||
_0801E920:
|
||||
movs r5, #0x10
|
||||
b _0801E926
|
||||
_0801E924:
|
||||
movs r5, #0x11
|
||||
_0801E926:
|
||||
ldrh r1, [r2, #0x12]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807CB24
|
||||
cmp r0, #0
|
||||
beq _0801E93A
|
||||
ldr r0, _0801E944 @ =0x02002C8E
|
||||
adds r1, r4, #0
|
||||
bl WriteBit
|
||||
_0801E93A:
|
||||
adds r4, #1
|
||||
cmp r4, #0x64
|
||||
bls _0801E8BC
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801E944: .4byte 0x02002C8E
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x01E90C, 0x90 @TODO probably the same as JP?
|
||||
push {r4, r5, lr}
|
||||
movs r4, #0xa
|
||||
_0801E910:
|
||||
adds r0, r4, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801E98E
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E810
|
||||
cmp r0, #0
|
||||
bne _0801E98E
|
||||
ldr r1, _0801E948 @ =gUnk_080C9CBC
|
||||
lsls r0, r4, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0, #4]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E94C @ =gUnk_080FE320
|
||||
adds r2, r0, r1
|
||||
ldrb r0, [r2, #0x10]
|
||||
cmp r0, #4
|
||||
bhi _0801E97A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801E950 @ =_0801E954
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0801E948: .4byte gUnk_080C9CBC
|
||||
_0801E94C: .4byte gUnk_080FE320
|
||||
_0801E950: .4byte _0801E954
|
||||
_0801E954: @ jump table
|
||||
.4byte _0801E968 @ case 0
|
||||
.4byte _0801E96C @ case 1
|
||||
.4byte _0801E970 @ case 2
|
||||
.4byte _0801E974 @ case 3
|
||||
.4byte _0801E978 @ case 4
|
||||
_0801E968:
|
||||
movs r5, #0
|
||||
b _0801E97A
|
||||
_0801E96C:
|
||||
ldrb r5, [r2, #0x11]
|
||||
b _0801E97A
|
||||
_0801E970:
|
||||
movs r5, #0xf
|
||||
b _0801E97A
|
||||
_0801E974:
|
||||
movs r5, #0x10
|
||||
b _0801E97A
|
||||
_0801E978:
|
||||
movs r5, #0x11
|
||||
_0801E97A:
|
||||
ldrh r1, [r2, #0x12]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807CB24
|
||||
cmp r0, #0
|
||||
beq _0801E98E
|
||||
ldr r0, _0801E998 @ =gUnk_02002C8E
|
||||
adds r1, r4, #0
|
||||
bl WriteBit
|
||||
_0801E98E:
|
||||
adds r4, #1
|
||||
cmp r4, #0x64
|
||||
bls _0801E910
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801E998: .4byte gUnk_02002C8E
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
movs r5, #0xa
|
||||
|
||||
+532
-3
@@ -545,7 +545,99 @@ _080A407C: .4byte gUnk_02019EE0
|
||||
thumb_func_start sub_080A4080
|
||||
sub_080A4080: @ 0x080A4080
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0A3898, 0x00000CC @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _080A394C @ =gOamCmd
|
||||
movs r0, #0
|
||||
strh r0, [r4, #4]
|
||||
strh r0, [r4, #6]
|
||||
ldr r5, _080A3950 @ =gChooseFileState
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x2f
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0xfd
|
||||
lsls r0, r0, #1
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0x94
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x50
|
||||
strh r0, [r4]
|
||||
movs r0, #0x90
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
ldr r7, _080A3954 @ =0x000001F9
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0xb8
|
||||
strh r0, [r4]
|
||||
movs r0, #0x94
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A3958 @ =gMain
|
||||
ldrh r0, [r0, #0xc]
|
||||
lsrs r0, r0, #2
|
||||
movs r1, #0xe
|
||||
ands r0, r1
|
||||
ldr r1, _080A395C @ =gUnk_08128110
|
||||
adds r6, r0, r1
|
||||
ldrb r1, [r6]
|
||||
movs r0, #0xa
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4, #8]
|
||||
bl sub_080A3B48
|
||||
subs r0, #1
|
||||
cmp r0, #0
|
||||
ble _080A3948
|
||||
ldr r1, [r5, #0x10]
|
||||
cmp r1, #0
|
||||
bge _080A3920
|
||||
ldr r2, _080A3960 @ =0x0000FFFF
|
||||
adds r1, r1, r2
|
||||
_080A3920:
|
||||
asrs r5, r1, #0x10
|
||||
cmp r5, r0
|
||||
beq _080A3934
|
||||
ldrb r0, [r6, #1]
|
||||
adds r0, #0x77
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A3934:
|
||||
cmp r5, #0
|
||||
beq _080A3948
|
||||
ldrb r1, [r6, #1]
|
||||
movs r0, #0x27
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #2
|
||||
bl sub_080ADA14
|
||||
_080A3948:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A394C: .4byte gOamCmd
|
||||
_080A3950: .4byte gChooseFileState
|
||||
_080A3954: .4byte 0x000001F9
|
||||
_080A3958: .4byte gMain
|
||||
_080A395C: .4byte gUnk_08128110
|
||||
_080A3960: .4byte 0x0000FFFF
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r4, _080A4134 @ =gOamCmd
|
||||
@@ -1712,7 +1804,224 @@ _080A4974: .4byte gSave
|
||||
thumb_func_start sub_080A4978
|
||||
sub_080A4978: @ 0x080A4978
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0A4190, 0x00001CC @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r5, _080A432C @ =gOamCmd
|
||||
movs r0, #0
|
||||
strh r0, [r5, #4]
|
||||
strh r0, [r5, #6]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r5, #8]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r5]
|
||||
movs r0, #0x48
|
||||
strh r0, [r5, #2]
|
||||
ldr r7, _080A4330 @ =0x000001FB
|
||||
adds r0, r7, #0
|
||||
movs r1, #0
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A4334 @ =gSave
|
||||
ldrb r0, [r0, #6]
|
||||
movs r2, #0x88
|
||||
cmp r0, #0
|
||||
bne _080A41C2
|
||||
movs r2, #0x82
|
||||
_080A41C2:
|
||||
ldr r3, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r3, #1]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A4226
|
||||
ldrb r4, [r3, #0x1c]
|
||||
cmp r2, r4
|
||||
blt _080A4226
|
||||
movs r6, #0xe8
|
||||
strh r6, [r5]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #7
|
||||
adds r1, r2, #0
|
||||
bl __divsi3
|
||||
subs r1, r4, #1
|
||||
muls r0, r1, r0
|
||||
cmp r0, #0
|
||||
bge _080A41EC
|
||||
adds r0, #0xff
|
||||
_080A41EC:
|
||||
asrs r0, r0, #8
|
||||
adds r0, #0x20
|
||||
strh r0, [r5, #2]
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldr r0, _080A433C @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
movs r4, #2
|
||||
cmp r0, #0
|
||||
beq _080A420A
|
||||
movs r4, #4
|
||||
_080A420A:
|
||||
strh r6, [r5]
|
||||
movs r0, #0x1a
|
||||
strh r0, [r5, #2]
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080ADA14
|
||||
strh r6, [r5]
|
||||
movs r0, #0x76
|
||||
strh r0, [r5, #2]
|
||||
adds r1, r4, #1
|
||||
adds r0, r7, #0
|
||||
bl sub_080ADA14
|
||||
_080A4226:
|
||||
ldr r0, _080A433C @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r2, #0x10
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldr r5, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r5, #1]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldrb r0, [r5, #0x1e]
|
||||
cmp r0, #0
|
||||
beq _080A427C
|
||||
ldr r4, _080A432C @ =gOamCmd
|
||||
strh r2, [r4, #2]
|
||||
movs r0, #0x1f
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
ble _080A4262
|
||||
movs r0, #6
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A4330 @ =0x000001FB
|
||||
movs r1, #6
|
||||
bl sub_080ADA14
|
||||
_080A4262:
|
||||
ldrb r1, [r5, #0x1e]
|
||||
movs r0, #0x1f
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r1, r0
|
||||
ble _080A427C
|
||||
movs r0, #0xea
|
||||
strh r0, [r4]
|
||||
movs r0, #0x9c
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A4330 @ =0x000001FB
|
||||
movs r1, #7
|
||||
bl sub_080ADA14
|
||||
_080A427C:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _080A42D0
|
||||
ldr r2, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r2, #1]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A42D0
|
||||
ldr r1, _080A432C @ =gOamCmd
|
||||
movs r0, #0x10
|
||||
strh r0, [r1, #2]
|
||||
ldrb r4, [r2, #0x1c]
|
||||
movs r6, #2
|
||||
adds r7, r1, #0
|
||||
movs r5, #0x6b
|
||||
_080A42A0:
|
||||
strh r5, [r7]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl __modsi3
|
||||
lsls r0, r0, #1
|
||||
movs r2, #0x9e
|
||||
lsls r2, r2, #4
|
||||
adds r1, r2, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r7, #8]
|
||||
movs r0, #0
|
||||
movs r1, #9
|
||||
bl sub_080ADA14
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r4, r0, #0
|
||||
subs r5, #7
|
||||
subs r6, #1
|
||||
cmp r6, #0
|
||||
bge _080A42A0
|
||||
_080A42D0:
|
||||
ldr r4, _080A4338 @ =gChooseFileState
|
||||
ldrb r1, [r4, #1]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A4352
|
||||
ldrb r0, [r4, #0x1c]
|
||||
bl sub_080A4948
|
||||
cmp r0, #0
|
||||
beq _080A4352
|
||||
ldr r1, _080A432C @ =gOamCmd
|
||||
movs r0, #0x2c
|
||||
strh r0, [r1]
|
||||
movs r0, #0x48
|
||||
strh r0, [r1, #2]
|
||||
movs r0, #0xd4
|
||||
lsls r0, r0, #7
|
||||
strh r0, [r1, #8]
|
||||
ldr r0, _080A4340 @ =0x000001F7
|
||||
ldrb r1, [r4, #0x1c]
|
||||
subs r1, #1
|
||||
bl sub_080ADA14
|
||||
ldrb r1, [r4, #0x1c]
|
||||
ldrb r0, [r4, #0x1d]
|
||||
cmp r0, r1
|
||||
beq _080A4352
|
||||
strb r1, [r4, #0x1d]
|
||||
ldrb r4, [r4, #0x1c]
|
||||
lsls r4, r4, #4
|
||||
ldr r0, _080A4344 @ =gUnk_081281A8
|
||||
adds r4, r4, r0
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x16
|
||||
movs r2, #9
|
||||
bl LoadPalettes
|
||||
ldr r0, [r4, #4]
|
||||
ldr r2, [r4, #8]
|
||||
cmp r2, #0
|
||||
bge _080A434CEU
|
||||
ldr r1, _080A4348EU @ =0x06014000
|
||||
bl LZ77UnCompVram
|
||||
b _080A4352
|
||||
.align 2, 0
|
||||
_080A432C: .4byte gOamCmd
|
||||
_080A4330: .4byte 0x000001FB
|
||||
_080A4334: .4byte gSave
|
||||
_080A4338: .4byte gChooseFileState
|
||||
_080A433C: .4byte gMain
|
||||
_080A4340: .4byte 0x000001F7
|
||||
_080A4344: .4byte gUnk_081281A8
|
||||
_080A4348EU: .4byte 0x06014000
|
||||
_080A434CEU:
|
||||
ldr r1, _080A4358EU @ =0x06014000
|
||||
bl LoadResourceAsync
|
||||
_080A4352:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4358EU: .4byte 0x06014000
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
@@ -3007,7 +3316,227 @@ _080A5380:
|
||||
thumb_func_start sub_080A5384
|
||||
sub_080A5384: @ 0x080A5384
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0A4B98, 0x00001C8 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _080A4C14EU @ =gOamCmd
|
||||
movs r2, #0
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
strh r1, [r0, #4]
|
||||
strh r2, [r0, #6]
|
||||
strh r2, [r0, #8]
|
||||
movs r5, #0
|
||||
ldr r4, _080A4C18 @ =gSave
|
||||
movs r0, #0xb6
|
||||
adds r0, r0, r4
|
||||
mov sl, r0
|
||||
movs r1, #0xac
|
||||
adds r1, r1, r4
|
||||
mov sb, r1
|
||||
movs r2, #0xad
|
||||
adds r2, r2, r4
|
||||
mov r8, r2
|
||||
movs r6, #0
|
||||
_080A4BC8:
|
||||
ldr r0, _080A4C1C @ =gChooseFileState
|
||||
adds r0, #0x10
|
||||
adds r2, r5, r0
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080A4C68
|
||||
ldr r0, _080A4C20 @ =gUnk_08128B64
|
||||
adds r1, r6, r0
|
||||
ldrb r0, [r1, #6]
|
||||
ldr r3, _080A4C14EU @ =gOamCmd
|
||||
strh r0, [r3]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r3, #2]
|
||||
ldrb r3, [r2]
|
||||
cmp r3, #0x1f
|
||||
bhi _080A4BF4
|
||||
cmp r3, #0x1c
|
||||
blo _080A4BF4
|
||||
adds r0, r3, #0
|
||||
subs r0, #0x1c
|
||||
add r0, sl
|
||||
ldrb r3, [r0]
|
||||
_080A4BF4:
|
||||
movs r2, #3
|
||||
cmp r3, #7
|
||||
blo _080A4C42
|
||||
cmp r3, #8
|
||||
bhi _080A4C28
|
||||
ldr r0, _080A4C24 @ =gBombBagSizes
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xae
|
||||
ldrb r1, [r1]
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
mov r7, sb
|
||||
ldrb r7, [r7]
|
||||
cmp r0, r7
|
||||
bhi _080A4C42
|
||||
b _080A4C40
|
||||
.align 2, 0
|
||||
_080A4C14EU: .4byte gOamCmd
|
||||
_080A4C18: .4byte gSave
|
||||
_080A4C1C: .4byte gChooseFileState
|
||||
_080A4C20: .4byte gUnk_08128B64
|
||||
_080A4C24: .4byte gBombBagSizes
|
||||
_080A4C28:
|
||||
cmp r3, #0xa
|
||||
bhi _080A4C42
|
||||
ldr r0, _080A4D40 @ =gQuiverSizes
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xaf
|
||||
ldrb r1, [r1]
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
mov r1, r8
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bhi _080A4C42
|
||||
_080A4C40:
|
||||
movs r2, #4
|
||||
_080A4C42:
|
||||
lsls r2, r2, #0xc
|
||||
movs r7, #0xd8
|
||||
lsls r7, r7, #2
|
||||
adds r0, r6, r7
|
||||
movs r7, #0x80
|
||||
lsls r7, r7, #4
|
||||
adds r1, r7, #0
|
||||
orrs r0, r1
|
||||
orrs r2, r0
|
||||
ldr r0, _080A4D44 @ =gOamCmd
|
||||
strh r2, [r0, #8]
|
||||
ldr r1, _080A4D48 @ =gUnk_080FDFD8
|
||||
lsls r0, r3, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _080A4D4C @ =0x00000141
|
||||
bl sub_080ADA14
|
||||
_080A4C68:
|
||||
adds r6, #8
|
||||
adds r5, #1
|
||||
cmp r5, #0x10
|
||||
bls _080A4BC8
|
||||
ldr r0, _080A4D44 @ =gOamCmd
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
strh r1, [r0, #8]
|
||||
ldr r1, _080A4D50EU @ =gChooseFileState
|
||||
ldrb r1, [r1, #3]
|
||||
mov sb, r0
|
||||
cmp r1, #0x10
|
||||
bne _080A4C8E
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _080A4C8E
|
||||
movs r1, #0x11
|
||||
_080A4C8E:
|
||||
lsls r0, r1, #3
|
||||
ldr r1, _080A4D54EU @ =gUnk_08128B64
|
||||
mov r8, r1
|
||||
adds r1, r0, r1
|
||||
mov r4, sb
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
ldrb r2, [r1, #4]
|
||||
ldr r0, _080A4D58 @ =gMain
|
||||
ldrh r1, [r0, #0xc]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
adds r1, r2, #4
|
||||
cmp r0, #0
|
||||
beq _080A4CB2EU
|
||||
adds r1, r2, #3
|
||||
_080A4CB2EU:
|
||||
movs r6, #0xfd
|
||||
lsls r6, r6, #1
|
||||
adds r0, r6, #0
|
||||
bl sub_080ADA14
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
movs r1, #0x11
|
||||
cmp r0, #0
|
||||
beq _080A4CCA
|
||||
movs r1, #0x10
|
||||
_080A4CCA:
|
||||
lsls r0, r1, #3
|
||||
mov r2, r8
|
||||
adds r1, r0, r2
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0x22
|
||||
bl sub_080ADA14
|
||||
ldr r7, _080A4D5C @ =gSave
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xb4
|
||||
ldrb r0, [r0]
|
||||
bl sub_080A554C
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0x10
|
||||
bhi _080A4D0E
|
||||
lsls r0, r5, #3
|
||||
mov r3, r8
|
||||
adds r1, r0, r3
|
||||
ldrb r0, [r1, #6]
|
||||
strh r0, [r4]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r4, #2]
|
||||
adds r0, r6, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A4D0E:
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xb5
|
||||
ldrb r0, [r0]
|
||||
bl sub_080A554C
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0x10
|
||||
bhi _080A4D36
|
||||
lsls r0, r5, #3
|
||||
mov r7, r8
|
||||
adds r1, r0, r7
|
||||
ldrb r0, [r1, #6]
|
||||
mov r2, sb
|
||||
strh r0, [r2]
|
||||
ldrb r0, [r1, #7]
|
||||
strh r0, [r2, #2]
|
||||
adds r0, r6, #0
|
||||
movs r1, #3
|
||||
bl sub_080ADA14
|
||||
_080A4D36:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4D40: .4byte gQuiverSizes
|
||||
_080A4D44: .4byte gOamCmd
|
||||
_080A4D48: .4byte gUnk_080FDFD8
|
||||
_080A4D4C: .4byte 0x00000141
|
||||
_080A4D50EU: .4byte gChooseFileState
|
||||
_080A4D54EU: .4byte gUnk_08128B64
|
||||
_080A4D58: .4byte gMain
|
||||
_080A4D5C: .4byte gSave
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
|
||||
+1052
-10
File diff suppressed because it is too large
Load Diff
+145
-3
@@ -44,7 +44,53 @@ _080ADD6C: .4byte gUnk_02024490
|
||||
thumb_func_start sub_080ADD70
|
||||
sub_080ADD70: @ 0x080ADD70
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0AD514, 0x0000058 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080AD540 @ =gUnk_02024490
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080AD56A
|
||||
movs r4, #0
|
||||
movs r5, #0
|
||||
_080AD522:
|
||||
ldr r0, _080AD544 @ =gUnk_02024494
|
||||
adds r2, r5, r0
|
||||
ldrb r1, [r2]
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #2
|
||||
bne _080AD548
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
b _080AD562
|
||||
.align 2, 0
|
||||
_080AD540: .4byte gUnk_02024490
|
||||
_080AD544: .4byte gUnk_02024494
|
||||
_080AD548:
|
||||
cmp r0, #2
|
||||
blt _080AD562
|
||||
cmp r0, #6
|
||||
bgt _080AD562
|
||||
cmp r0, #4
|
||||
blt _080AD562
|
||||
movs r0, #0xf0
|
||||
ands r0, r1
|
||||
cmp r0, #0x30
|
||||
bne _080AD562
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADE74
|
||||
_080AD562:
|
||||
adds r5, #0xc
|
||||
adds r4, #1
|
||||
cmp r4, #0x2b
|
||||
bls _080AD522
|
||||
_080AD56A:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080ADD88 @ =gUnk_02024490
|
||||
@@ -322,7 +368,63 @@ _080ADF7C:
|
||||
thumb_func_start LoadFixedGFX
|
||||
LoadFixedGFX: @ 0x080ADF80
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0AD714, 0x0000070 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r5, r1, #0
|
||||
cmp r5, #0
|
||||
bne _080AD726
|
||||
movs r0, #1
|
||||
b _080AD77E
|
||||
_080AD726:
|
||||
movs r4, #4
|
||||
ldr r0, _080AD774 @ =gUnk_02024490
|
||||
adds r0, #0x30
|
||||
_080AD72C:
|
||||
ldrh r1, [r0, #8]
|
||||
cmp r5, r1
|
||||
beq _080AD766
|
||||
adds r0, #0xc
|
||||
adds r4, #1
|
||||
cmp r4, #0x2b
|
||||
bls _080AD72C
|
||||
ldr r0, _080AD778 @ =gUnk_08132B30
|
||||
lsls r1, r5, #2
|
||||
adds r1, r1, r0
|
||||
ldr r7, [r1]
|
||||
movs r0, #0xfe
|
||||
lsls r0, r0, #0x17
|
||||
ands r0, r7
|
||||
lsrs r6, r0, #0x18
|
||||
adds r0, r6, #0
|
||||
bl sub_080AE174
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _080AD77C
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl sub_080AE104
|
||||
adds r0, r4, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080ADDD8
|
||||
_080AD766:
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
movs r2, #4
|
||||
bl sub_080AE0C8
|
||||
movs r0, #1
|
||||
b _080AD77E
|
||||
.align 2, 0
|
||||
_080AD774: .4byte gUnk_02024490
|
||||
_080AD778: .4byte gUnk_08132B30
|
||||
_080AD77C:
|
||||
movs r0, #0
|
||||
_080AD77E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
@@ -394,7 +496,47 @@ _080AE004: .4byte gUnk_08132B30
|
||||
thumb_func_start sub_080AE008
|
||||
sub_080AE008: @ 0x080AE008
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0AD784, 0x0000050 @TODO disassemble
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r4, r2, #0
|
||||
cmp r4, #0
|
||||
bne _080AD79C
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE174
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _080AD7C4
|
||||
_080AD79C:
|
||||
ldr r0, _080AD7D0 @ =gUnk_02024490
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r4
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1, #4]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r2, r0, #0x1c
|
||||
cmp r2, #6
|
||||
beq _080AD7BC
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_080AE104
|
||||
movs r2, #5
|
||||
_080AD7BC:
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_080AE0C8
|
||||
_080AD7C4:
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
beq _080AD7CC
|
||||
movs r0, #1
|
||||
_080AD7CC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080AD7D0: .4byte gUnk_02024490
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
|
||||
+1
-1
@@ -35,5 +35,5 @@ sp_usr: .4byte gUnk_03007F00
|
||||
INTR_VECTOR_BUF: .4byte 0x03007FFC
|
||||
intr_main: .4byte IntrMain
|
||||
.ifdef EU
|
||||
unk_function: .4byte 0x08000119 @ TODO ptr
|
||||
unk_function: .4byte sub_08000118
|
||||
.endif
|
||||
|
||||
+41
-1
@@ -10,7 +10,47 @@
|
||||
thumb_func_start Enemy50
|
||||
Enemy50: @ 0x08040B2C
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x040a2c, 0x5c @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
bne _08040A5E
|
||||
ldr r0, [r5, #0x50]
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _08040A5E
|
||||
ldrb r0, [r5, #0xc]
|
||||
subs r0, #8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bhi _08040A50
|
||||
adds r0, r5, #0
|
||||
bl sub_0803F6EC
|
||||
_08040A50:
|
||||
adds r0, r5, #0
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
bl DeleteThisEntity
|
||||
_08040A5E:
|
||||
ldr r4, _08040A84 @ =gUnk_080D0DC4
|
||||
adds r0, r5, #0
|
||||
bl GetNextFunction
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldr r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl _call_via_r1
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08040A84: .4byte gUnk_080D0DC4
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
|
||||
+665
-7
@@ -365,7 +365,118 @@ _08087E5A:
|
||||
thumb_func_start sub_08087E5C
|
||||
sub_08087E5C: @ 0x08087E5C
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x087838, 0x00000E0 @TODO disassemble
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r1, [r5]
|
||||
cmp r1, #1
|
||||
beq _08087888
|
||||
cmp r1, #1
|
||||
bgt _08087850
|
||||
cmp r1, #0
|
||||
beq _08087856
|
||||
b _0808790C
|
||||
_08087850:
|
||||
cmp r1, #2
|
||||
beq _080878EA
|
||||
b _0808790C
|
||||
_08087856:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bne _08087880
|
||||
movs r0, #1
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0808790C
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
strb r0, [r1]
|
||||
bl ClearRoomFlag
|
||||
adds r0, r4, #0
|
||||
bl sub_0808826C
|
||||
b _080878E2
|
||||
_08087880:
|
||||
adds r0, r4, #0
|
||||
bl sub_080880D8
|
||||
b _0808790C
|
||||
_08087888:
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08087892
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_08087892:
|
||||
ldr r2, _080878B0 @ =gInput
|
||||
ldrh r0, [r2, #2]
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _080878B4
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
movs r0, #2
|
||||
strb r0, [r5]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xe]
|
||||
bl sub_08050384
|
||||
b _0808790C
|
||||
.align 2, 0
|
||||
_080878B0: .4byte gInput
|
||||
_080878B4:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r6, [r0]
|
||||
ldrh r1, [r2, #4]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0x40
|
||||
beq _080878C8
|
||||
cmp r1, #0x80
|
||||
beq _080878D2
|
||||
b _080878DC
|
||||
_080878C8:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08087F94
|
||||
b _080878DC
|
||||
_080878D2:
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08087F94
|
||||
_080878DC:
|
||||
ldrb r5, [r5]
|
||||
cmp r6, r5
|
||||
beq _0808790C
|
||||
_080878E2:
|
||||
adds r0, r4, #0
|
||||
bl sub_080882A8
|
||||
b _0808790C
|
||||
_080878EA:
|
||||
movs r0, #0
|
||||
strb r0, [r5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7b
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
movs r0, #3
|
||||
bl SetRoomFlag
|
||||
ldr r0, _08087910 @ =0x0000431A
|
||||
bl TextboxNoOverlapFollow
|
||||
ldr r1, _08087914 @ =gTextBox
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
str r0, [r1, #0x10]
|
||||
_0808790C:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08087910: .4byte 0x0000431A
|
||||
_08087914: .4byte gTextBox
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
@@ -538,10 +649,181 @@ _08087F90: .4byte 0x00004022
|
||||
thumb_func_start sub_08087F94
|
||||
sub_08087F94: @ 0x08087F94
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x087dac, 0xb0 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
movs r0, #0x5f
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _08087E3E
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
movs r7, #0
|
||||
ldrsb r7, [r0, r7]
|
||||
adds r3, r7, r4
|
||||
mov ip, r0
|
||||
cmp r4, #0
|
||||
bge _08087E0A
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x82
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r3, r0
|
||||
bge _08087DF4
|
||||
mov r0, ip
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
ldrb r3, [r2]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r1, r0
|
||||
beq _08087E3E
|
||||
mov r2, ip
|
||||
strb r3, [r2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
b _08087E00
|
||||
_08087DF4:
|
||||
mov r0, ip
|
||||
strb r3, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r0, [r1]
|
||||
adds r0, r0, r4
|
||||
_08087E00:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _08087E58
|
||||
_08087E0A:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r6, [r1]
|
||||
adds r2, r6, r4
|
||||
ldr r0, _08087E2C @ =0x02002A40
|
||||
adds r0, #0xc2
|
||||
ldrh r0, [r0]
|
||||
cmp r2, r0
|
||||
ble _08087E30
|
||||
cmp r0, r6
|
||||
beq _08087E3E
|
||||
adds r2, r0, #0
|
||||
subs r4, r2, r6
|
||||
adds r3, r7, r4
|
||||
cmp r3, #0x64
|
||||
ble _08087E4C
|
||||
b _08087E46
|
||||
.align 2, 0
|
||||
_08087E2C: .4byte 0x02002A40
|
||||
_08087E30:
|
||||
cmp r3, #0x64
|
||||
ble _08087E4C
|
||||
mov r2, ip
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0x64
|
||||
bne _08087E46
|
||||
_08087E3E:
|
||||
adds r0, r5, #0
|
||||
bl sub_08088034
|
||||
b _08087E58
|
||||
_08087E46:
|
||||
movs r3, #0x64
|
||||
subs r4, r3, r7
|
||||
adds r2, r6, r4
|
||||
_08087E4C:
|
||||
mov r0, ip
|
||||
strb r3, [r0]
|
||||
strb r2, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
_08087E58:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x087954, 0x000009C @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x83
|
||||
ldrb r0, [r7]
|
||||
adds r4, r0, r6
|
||||
movs r0, #0x5f
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _080879CE
|
||||
cmp r6, #0
|
||||
bge _0808799E
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x82
|
||||
ldrb r1, [r0]
|
||||
cmp r4, r1
|
||||
bhs _0808798A
|
||||
ldrb r0, [r7]
|
||||
cmp r0, r1
|
||||
beq _080879CE
|
||||
strb r1, [r7]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
b _08087994
|
||||
_0808798A:
|
||||
strb r4, [r7]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r0, [r1]
|
||||
adds r0, r0, r6
|
||||
_08087994:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080879EC
|
||||
_0808799E:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
ldrb r3, [r1]
|
||||
adds r2, r3, r6
|
||||
ldr r0, _080879C0 @ =gSave
|
||||
adds r0, #0xc2
|
||||
ldrh r0, [r0]
|
||||
cmp r2, r0
|
||||
bls _080879C4
|
||||
cmp r0, r3
|
||||
beq _080879CE
|
||||
adds r2, r0, #0
|
||||
subs r0, r2, r3
|
||||
ldrb r7, [r7]
|
||||
adds r4, r0, r7
|
||||
b _080879DE
|
||||
.align 2, 0
|
||||
_080879C0: .4byte gSave
|
||||
_080879C4:
|
||||
cmp r4, #0x64
|
||||
bls _080879DE
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0x64
|
||||
bne _080879D6
|
||||
_080879CE:
|
||||
adds r0, r5, #0
|
||||
bl sub_08088034
|
||||
b _080879EC
|
||||
_080879D6:
|
||||
movs r4, #0x64
|
||||
ldrb r0, [r7]
|
||||
subs r6, r4, r0
|
||||
adds r2, r3, r6
|
||||
_080879DE:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
strb r4, [r0]
|
||||
strb r2, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
_080879EC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
@@ -813,10 +1095,237 @@ _0808815C: .4byte gSave
|
||||
thumb_func_start sub_08088160
|
||||
sub_08088160: @ 0x08088160
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x087f88, 0xe8 @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087FB0 @ =0x080FC094
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08088068
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087FC6
|
||||
cmp r0, #0x10
|
||||
bgt _08087FB4
|
||||
cmp r0, #8
|
||||
beq _08087FBC
|
||||
b _0808806A
|
||||
.align 2, 0
|
||||
_08087FB0: .4byte 0x080FC094
|
||||
_08087FB4:
|
||||
cmp r0, #0x20
|
||||
beq _08087FCA
|
||||
cmp r0, #0x40
|
||||
bne _0808806A
|
||||
_08087FBC:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByOffset
|
||||
b _08088064EU
|
||||
_08087FC6:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08088060EU
|
||||
_08087FCA:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _0808806A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087FDC @ =_08087FE0
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087FDC: .4byte _08087FE0
|
||||
_08087FE0: @ jump table
|
||||
.4byte _08087FF4 @ case 0
|
||||
.4byte _0808800C @ case 1
|
||||
.4byte _0808801A @ case 2
|
||||
.4byte _08088032 @ case 3
|
||||
.4byte _0808804A @ case 4
|
||||
_08087FF4:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x19
|
||||
b _08088060EU
|
||||
_0808800C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _0808806A
|
||||
movs r0, #0x28
|
||||
b _08088060EU
|
||||
_0808801A:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3d
|
||||
b _08088060EU
|
||||
_08088032:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0xd
|
||||
b _08088060EU
|
||||
_0808804A:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3c
|
||||
_08088060EU:
|
||||
bl CheckKinstoneFused
|
||||
_08088064EU:
|
||||
cmp r0, #0
|
||||
beq _0808806A
|
||||
_08088068:
|
||||
movs r4, #1
|
||||
_0808806A:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x087B1C, 0x00000E8 @ TODO same as JP
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087B44 @ =gUnk_080FC3E4
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08087BFC
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087B5A
|
||||
cmp r0, #0x10
|
||||
bgt _08087B48
|
||||
cmp r0, #8
|
||||
beq _08087B50
|
||||
b _08087BFE
|
||||
.align 2, 0
|
||||
_08087B44: .4byte gUnk_080FC3E4
|
||||
_08087B48:
|
||||
cmp r0, #0x20
|
||||
beq _08087B5E
|
||||
cmp r0, #0x40
|
||||
bne _08087BFE
|
||||
_08087B50:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByOffset
|
||||
b _08087BF8
|
||||
_08087B5A:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08087BF4
|
||||
_08087B5E:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _08087BFE
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087B70 @ =_08087B74
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087B70: .4byte _08087B74
|
||||
_08087B74: @ jump table
|
||||
.4byte _08087B88 @ case 0
|
||||
.4byte _08087BA0 @ case 1
|
||||
.4byte _08087BAE @ case 2
|
||||
.4byte _08087BC6 @ case 3
|
||||
.4byte _08087BDE @ case 4
|
||||
_08087B88:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x19
|
||||
b _08087BF4
|
||||
_08087BA0:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _08087BFE
|
||||
movs r0, #0x28
|
||||
b _08087BF4
|
||||
_08087BAE:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3d
|
||||
b _08087BF4
|
||||
_08087BC6:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0xd
|
||||
b _08087BF4
|
||||
_08087BDE:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3c
|
||||
_08087BF4:
|
||||
bl CheckKinstoneFused
|
||||
_08087BF8:
|
||||
cmp r0, #0
|
||||
beq _08087BFE
|
||||
_08087BFC:
|
||||
movs r4, #1
|
||||
_08087BFE:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
@@ -1049,7 +1558,132 @@ _08088324: .4byte gScreen
|
||||
thumb_func_start sub_08088328
|
||||
sub_08088328: @ 0x08088328
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x087CBC, 0x00000F8 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
movs r4, #0x7f
|
||||
_08087CC6:
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
ands r5, r4
|
||||
cmp r5, #0x63
|
||||
bhi _08087CC6
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl sub_080542C0
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
adds r4, r1, #1
|
||||
adds r7, r4, #0
|
||||
adds r0, r6, #0
|
||||
bl sub_08088424
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
cmp r5, r0
|
||||
bhs _08087D34EU
|
||||
movs r5, #0
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D02EU:
|
||||
cmp r5, #0
|
||||
bne _08087D72
|
||||
cmp r4, #0x88
|
||||
bls _08087D0C
|
||||
movs r4, #1
|
||||
_08087D0C:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D2C
|
||||
ldr r0, _08087D28 @ =gUnk_02002B0E
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
bne _08087D2C
|
||||
movs r5, #1
|
||||
b _08087D2E
|
||||
.align 2, 0
|
||||
_08087D28: .4byte gUnk_02002B0E
|
||||
_08087D2C:
|
||||
adds r4, #1
|
||||
_08087D2E:
|
||||
cmp r7, r4
|
||||
bne _08087D02EU
|
||||
b _08087D6E
|
||||
_08087D34EU:
|
||||
movs r5, #1
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D3C:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
cmp r4, #0x88
|
||||
bls _08087D46
|
||||
movs r4, #1
|
||||
_08087D46:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
ldr r0, _08087D64 @ =gUnk_02002B0E
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
movs r5, #0
|
||||
b _08087D6A
|
||||
.align 2, 0
|
||||
_08087D64: .4byte gUnk_02002B0E
|
||||
_08087D68:
|
||||
adds r4, #1
|
||||
_08087D6A:
|
||||
cmp r7, r4
|
||||
bne _08087D3C
|
||||
_08087D6E:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
_08087D72:
|
||||
ldr r0, _08087D94 @ =gSave
|
||||
adds r0, #0xb0
|
||||
ldrb r1, [r0]
|
||||
adds r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _08087D98
|
||||
movs r0, #7
|
||||
bl SetRoomFlag
|
||||
b _08087DA4
|
||||
.align 2, 0
|
||||
_08087D94: .4byte gSave
|
||||
_08087D98:
|
||||
movs r0, #0x5f
|
||||
bl SetLocalFlag
|
||||
movs r0, #8
|
||||
bl SetRoomFlag
|
||||
_08087DA4:
|
||||
mov r0, r8
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x7e
|
||||
strb r4, [r0]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
@@ -1473,7 +2107,31 @@ _08088618: .4byte gSave
|
||||
thumb_func_start sub_0808861C
|
||||
sub_0808861C: @ 0x0808861C
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x088420, 0x34 @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
movs r0, #0xa8
|
||||
movs r1, #0x54
|
||||
movs r2, #0xc
|
||||
movs r3, #8
|
||||
bl CheckPlayerInRegion
|
||||
str r0, [r4, #0x14]
|
||||
ldr r0, _0808844C @ =0x03001160
|
||||
ldrb r0, [r0, #0x14]
|
||||
cmp r0, #0
|
||||
beq _0808843E
|
||||
movs r0, #0
|
||||
str r0, [r4, #0x14]
|
||||
_0808843E:
|
||||
ldr r2, _08088450 @ =0x02033280
|
||||
ldrb r1, [r2, #7]
|
||||
movs r0, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #7]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0808844C: .4byte 0x03001160
|
||||
_08088450: .4byte 0x02033280
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r1, #0
|
||||
|
||||
+91
-6
@@ -39,10 +39,10 @@ HandleGameplayScreen: @ 08051A28
|
||||
_08051A64:
|
||||
pop {r4, pc}
|
||||
.byte 0x00, 0x00
|
||||
_08051A68: .4byte 0x030010A0 @TODO ptr
|
||||
_08051A6C: .4byte 0x080FC55C @TODO ptr
|
||||
_08051A70x: .4byte 0x03001000 @TODO ptr
|
||||
_08051A74x: .4byte 0x02002A40 @TODO ptr
|
||||
_08051A68: .4byte gUnk_030010A0
|
||||
_08051A6C: .4byte gUnk_080FC9D8
|
||||
_08051A70x: .4byte gMain
|
||||
_08051A74x: .4byte gUnk_02002A40
|
||||
.else
|
||||
thumb_func_start HandleGameplayScreen
|
||||
HandleGameplayScreen: @ 0x08051988
|
||||
@@ -201,7 +201,83 @@ _08051AEC: .4byte gScreenTransition
|
||||
thumb_func_start sub_08051AF0
|
||||
sub_08051AF0: @ 0x08051AF0
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x05172C, 0x00000D0 @TODO disassemble
|
||||
push {r4, lr}
|
||||
bl sub_0805E5C0
|
||||
bl sub_0805BBBC
|
||||
cmp r0, #0
|
||||
bne _0805173E
|
||||
bl UpdateScroll
|
||||
_0805173E:
|
||||
bl UpdateBgAnim
|
||||
bl sub_08000108
|
||||
bl sub_0801C344
|
||||
bl sub_0805E5F8
|
||||
bl FlushSprites
|
||||
bl sub_0801C208
|
||||
bl sub_08078CB4
|
||||
bl sub_080AD9B0
|
||||
bl sub_080AD918
|
||||
ldr r0, _080517E0 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
ldr r0, _080517E4 @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
bl sub_08052F1C
|
||||
ldr r0, _080517E8 @ =gArea
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #4
|
||||
adds r3, r0, r1
|
||||
adds r1, #4
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r3]
|
||||
ldr r2, [r0]
|
||||
cmp r1, r2
|
||||
beq _08051796
|
||||
str r2, [r3]
|
||||
ldr r0, _080517EC @ =0x800B0000
|
||||
orrs r2, r0
|
||||
adds r0, r2, #0
|
||||
bl SoundReq
|
||||
_08051796:
|
||||
bl sub_0805E9F4
|
||||
bl sub_0805BC04
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _080517DC
|
||||
bl sub_08052C5C
|
||||
bl sub_0805E5B4
|
||||
bl sub_08051E04
|
||||
bl sub_080300C4
|
||||
ldr r1, _080517F0 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #4]
|
||||
movs r0, #0
|
||||
bl sub_08078A90
|
||||
ldr r0, _080517F4 @ =gUnk_02034490
|
||||
strb r4, [r0]
|
||||
bl sub_08053178
|
||||
bl sub_0801855C
|
||||
ldr r0, _080517F8 @ =gRoomVars
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080517DC
|
||||
movs r0, #0
|
||||
movs r1, #1
|
||||
bl sub_0805E4E0
|
||||
_080517DC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080517E0: .4byte gFadeControl
|
||||
_080517E4: .4byte gRoomControls
|
||||
_080517E8: .4byte gArea
|
||||
_080517EC: .4byte 0x800B0000
|
||||
_080517F0: .4byte gMain
|
||||
_080517F4: .4byte gUnk_02034490
|
||||
_080517F8: .4byte gRoomVars
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
bl sub_0805E5C0
|
||||
@@ -448,7 +524,16 @@ _08051D28: .4byte gScreenTransition
|
||||
thumb_func_start sub_08051D2C
|
||||
sub_08051D2C: @ 0x08051D2C
|
||||
.ifdef DEMO
|
||||
.incbin "baserom_demo.gba", 0x051df4, 0x14 @TODO disassemble
|
||||
push {lr}
|
||||
ldr r0, _08051E04 @ =0x03000FD0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08051E02
|
||||
bl DoSoftReset
|
||||
_08051E02:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08051E04: .4byte 0x03000FD0
|
||||
.else
|
||||
push {lr}
|
||||
movs r0, #7
|
||||
|
||||
+85
-1
@@ -993,7 +993,91 @@ _0802D7B0: .4byte gScreenTransition
|
||||
thumb_func_start sub_0802D7B4
|
||||
sub_0802D7B4: @ 0x0802D7B4
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x02d73c, 0xb0 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xe]
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
bne _0802D7ACEU
|
||||
ldr r4, _0802D780 @ =gUnk_080CD7F8
|
||||
ldrb r3, [r5, #0xf]
|
||||
adds r0, r3, r4
|
||||
ldrb r1, [r0]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
bne _0802D790
|
||||
strb r2, [r5, #0xf]
|
||||
strb r2, [r5, #0xe]
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
strb r2, [r5, #0xd]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r0, #0x50]
|
||||
movs r0, #0x18
|
||||
strb r0, [r1, #0xe]
|
||||
ldr r1, _0802D784 @ =gRoomControls
|
||||
ldr r0, _0802D788 @ =gPlayerEntity
|
||||
str r0, [r1, #0x30]
|
||||
ldr r0, _0802D78C @ =gUnk_02034490
|
||||
strb r2, [r0]
|
||||
movs r0, #0x2e
|
||||
bl SoundReq
|
||||
b _0802D7E8
|
||||
.align 2, 0
|
||||
_0802D780: .4byte gUnk_080CD7F8
|
||||
_0802D784: .4byte gRoomControls
|
||||
_0802D788: .4byte gPlayerEntity
|
||||
_0802D78C: .4byte gUnk_02034490
|
||||
_0802D790:
|
||||
strb r1, [r5, #0xe]
|
||||
adds r0, r3, #1
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r5, #0x15]
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #2
|
||||
strb r0, [r5, #0xf]
|
||||
ldr r0, _0802D7A8 @ =0x00000127
|
||||
bl SoundReq
|
||||
b _0802D7B0EU
|
||||
.align 2, 0
|
||||
_0802D7A8: .4byte 0x00000127
|
||||
_0802D7ACEU:
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
_0802D7B0EU:
|
||||
ldrb r0, [r5, #0x15]
|
||||
cmp r0, #1
|
||||
bhi _0802D7C8
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
ldr r0, [r4]
|
||||
ldrb r3, [r5, #0x15]
|
||||
movs r1, #5
|
||||
movs r2, #0x40
|
||||
bl sub_0802EA48
|
||||
b _0802D7DC
|
||||
_0802D7C8:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
cmp r0, #0xff
|
||||
beq _0802D7DC
|
||||
ldr r0, [r4]
|
||||
ldrb r3, [r5, #0x15]
|
||||
movs r1, #5
|
||||
movs r2, #0x40
|
||||
bl sub_0802EA68
|
||||
_0802D7DC:
|
||||
ldr r0, [r4]
|
||||
bl sub_0802E768
|
||||
adds r0, r5, #0
|
||||
bl sub_0802E518
|
||||
_0802D7E8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
|
||||
+178
-3
@@ -472,7 +472,6 @@ _08046494:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
@ TODO move inside, if EU no longer references this function
|
||||
thumb_func_start sub_08046498
|
||||
sub_08046498: @ 0x08046498
|
||||
.ifndef EU
|
||||
@@ -708,7 +707,33 @@ _0804665A:
|
||||
thumb_func_start sub_08046668
|
||||
sub_08046668: @ 0x08046668
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x046438, 0x38 @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x45
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08046468EU
|
||||
bl Random
|
||||
ldr r2, _0804646C @ =gUnk_080D1AF8
|
||||
movs r1, #3
|
||||
ands r1, r0
|
||||
adds r1, r1, r2
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
movs r2, #0
|
||||
strb r1, [r0]
|
||||
adds r0, #7
|
||||
strb r2, [r0]
|
||||
adds r0, #3
|
||||
strb r2, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
_08046468EU:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0804646C: .4byte gUnk_080D1AF8
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
@@ -745,7 +770,157 @@ _080466A4: .4byte gUnk_080D1AF8
|
||||
thumb_func_start sub_080466A8
|
||||
sub_080466A8: @ 0x080466A8
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x046470, 0x12c @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _08046514EU
|
||||
adds r0, #1
|
||||
ldrb r1, [r0]
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
ldrb r1, [r4, #0xe]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0
|
||||
bne _08046498
|
||||
subs r0, #5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _08046498
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xe]
|
||||
_08046498:
|
||||
ldrb r0, [r5]
|
||||
bl sub_08000E62
|
||||
cmp r0, #2
|
||||
bls _08046514EU
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r0, [r5]
|
||||
adds r7, r4, #0
|
||||
adds r7, #0x78
|
||||
subs r0, #1
|
||||
adds r6, r0, #0
|
||||
movs r0, #0xff
|
||||
strb r0, [r7]
|
||||
adds r0, #0x28
|
||||
bl SoundReq
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x45
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0804650E
|
||||
movs r0, #8
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
ands r0, r6
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0xc
|
||||
bhi _080464E6
|
||||
ldrb r0, [r5]
|
||||
subs r0, #1
|
||||
strb r0, [r5]
|
||||
_080464E6:
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
bne _080464F8
|
||||
strb r0, [r7]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7a
|
||||
movs r0, #0xa5
|
||||
lsls r0, r0, #3
|
||||
b _0804650CEU
|
||||
_080464F8:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7f
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0804650E
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
subs r1, #5
|
||||
movs r0, #0x87
|
||||
lsls r0, r0, #3
|
||||
_0804650CEU:
|
||||
strh r0, [r1]
|
||||
_0804650E:
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
_08046514EU:
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
beq _0804658C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x78
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _0804658C
|
||||
subs r0, r1, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0
|
||||
bne _0804658C
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x7d
|
||||
ldrb r0, [r2]
|
||||
ldrb r1, [r3]
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
strb r5, [r3]
|
||||
adds r0, r4, #0
|
||||
bl sub_080467DC
|
||||
ldr r2, _08046598 @ =gPlayerEntity
|
||||
ldr r0, [r4, #0x64]
|
||||
adds r0, #0x3c
|
||||
ldrb r0, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x3e
|
||||
strb r0, [r1]
|
||||
subs r1, #1
|
||||
movs r0, #0xf4
|
||||
strb r0, [r1]
|
||||
adds r1, #5
|
||||
movs r0, #0xa
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x2c
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0804658C
|
||||
ldr r0, [r4, #0x64]
|
||||
ldrh r0, [r0, #0x38]
|
||||
strh r0, [r2, #0x2e]
|
||||
ldr r0, [r4, #0x64]
|
||||
ldrh r0, [r0, #0x3a]
|
||||
strh r0, [r2, #0x32]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
_0804658C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08046598: .4byte gPlayerEntity
|
||||
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+65
-1
@@ -45,7 +45,71 @@ _080489C8: .4byte gUnk_080D1F7C
|
||||
thumb_func_start sub_080489CC
|
||||
sub_080489CC: @ 0x080489CC
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x048788, 0x84 @TODO disassemble
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x45
|
||||
adds r0, r0, r5
|
||||
mov ip, r0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xff
|
||||
beq _080487F4
|
||||
ldr r3, [r5, #0x50]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x7c
|
||||
movs r0, #1
|
||||
ldrb r1, [r5, #0xa]
|
||||
lsls r0, r1
|
||||
ldrb r1, [r2]
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r4, [r3, #0x64]
|
||||
ldrb r0, [r5, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x18
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r5, #0x4c]
|
||||
str r0, [r1]
|
||||
ldr r2, _08048804 @ =gPlayerEntity
|
||||
movs r6, #0x2e
|
||||
ldrsh r0, [r2, r6]
|
||||
movs r6, #0x2e
|
||||
ldrsh r1, [r5, r6]
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x1f
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
strh r0, [r4, #0x38]
|
||||
ldr r4, [r3, #0x64]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
adds r0, r0, r1
|
||||
lsrs r1, r0, #0x1f
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
strh r0, [r4, #0x3a]
|
||||
ldr r2, [r3, #0x64]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x3e
|
||||
ldrb r0, [r3]
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
strb r0, [r3]
|
||||
adds r2, #0x3c
|
||||
strb r0, [r2]
|
||||
_080487F4:
|
||||
movs r0, #0xff
|
||||
mov r6, ip
|
||||
strb r0, [r6]
|
||||
ldr r1, _08048808 @ =gUnk_080D1F64
|
||||
adds r0, r5, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08048804: .4byte gPlayerEntity
|
||||
_08048808: .4byte gUnk_080D1F64
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
mov ip, r0
|
||||
|
||||
+290
-5
@@ -815,7 +815,54 @@ _080B23EC: .4byte gUnk_0800464E
|
||||
arm_func_start sub_080B23F0
|
||||
sub_080B23F0: @ 0x080B23F0
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0B1950, 0x00000A8 @TODO disassemble
|
||||
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr fp, _080B2A30 @ =gUnk_03000000
|
||||
ldrb r2, [fp, #3]
|
||||
cmp r2, #0x80
|
||||
bhs _080B19C0EU
|
||||
add r0, pc, #0x54 @ =_080B19C0
|
||||
str r0, [fp, #0x18]
|
||||
str sp, [fp, #0x14]
|
||||
ldrb r0, [fp, #0xf]
|
||||
cmp r0, #0xff
|
||||
bne _080B1984
|
||||
bl _080B1FBC
|
||||
_080B1980:
|
||||
mov r0, #0x0
|
||||
_080B1984:
|
||||
ldr r1, _080B2154 @ =0x03006958
|
||||
ldr r1, [r1, r0, lsl #2]
|
||||
str r1, [fp, #0x1c]
|
||||
ldr r0, _080B2A34 @ =gUnk_081326EC
|
||||
ldr r0, [r0]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A38 @ =gUnk_081326EC
|
||||
ldr r0, [r0, #4]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A3C @ =gUnk_081326EC
|
||||
ldr r0, [r0, #8]
|
||||
bl sub_080B19C8
|
||||
ldr r0, _080B2A40 @ =gUnk_081326EC
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_080B19C8
|
||||
_080B19C0EU:
|
||||
pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bx lr
|
||||
|
||||
arm_func_start sub_080B19C8
|
||||
sub_080B19C8: @ 0x080B19C8
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bxeq lr
|
||||
ldr r1, _080B2A44 @ =0x08131D3C
|
||||
ldr r1, [r1, #0x10]
|
||||
mov r2, #0
|
||||
strb r2, [r1]
|
||||
stmdb sp!, {lr}
|
||||
bl sub_080B2478
|
||||
bl sub_080B2534
|
||||
ldm sp!, {lr}
|
||||
b _080B1C40EU
|
||||
.else
|
||||
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
ldr fp, _080B2A30 @ =gUnk_03000000
|
||||
@@ -932,7 +979,131 @@ _080B2540:
|
||||
arm_func_start sub_080B255C
|
||||
sub_080B255C: @ 0x080B255C
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0B1ADC, 0x00001C8 @TODO disassemble
|
||||
stmdb sp!, {lr}
|
||||
mov r4, r0
|
||||
bl sub_080B299C
|
||||
ldr r3, [fp, #0x1c]
|
||||
mov lr, pc
|
||||
bxne r3
|
||||
mov r5, #0
|
||||
strb r5, [fp, #0x12]
|
||||
ldrsb r2, [r4, #0x29]
|
||||
ands r2, r2, #8
|
||||
beq _080B1BB8
|
||||
ldrsh r3, [r4, #0x36]
|
||||
cmp r3, #0
|
||||
bmi _080B1BA4
|
||||
mov r1, #0
|
||||
mov r2, #0
|
||||
bl sub_080B1BCC
|
||||
ldrb r1, [r4, #0x18]
|
||||
and r1, r1, #0x30
|
||||
mov r1, r1
|
||||
cmp r0, #0x19
|
||||
beq _080B1B98
|
||||
cmp r0, #0x2f
|
||||
beq _080B1B64
|
||||
cmp r0, #0xf
|
||||
bne _080B1BA4
|
||||
mov r5, #2
|
||||
strb r5, [fp, #0x12]
|
||||
add r7, r7, r5
|
||||
ldrb r2, [fp, #1]
|
||||
and r2, r2, #0x18
|
||||
add r2, r2, #0x80
|
||||
lsr r2, r2, #2
|
||||
b _080B1B74
|
||||
_080B1B64:
|
||||
ldrb r2, [r4, #0x2e]
|
||||
ldrb r3, [r4, #0x32]
|
||||
eor r2, r2, r3
|
||||
and r2, r2, #6
|
||||
_080B1B74:
|
||||
ldr r3, _080B2A48 @ =gUnk_030068CC
|
||||
add r2, r1, r2, lsl #1
|
||||
ldr sl, [r3, r2]
|
||||
push {r4, r8, sb}
|
||||
mov r8, #0
|
||||
and sb, sb, #0xc00
|
||||
bl _080B2874
|
||||
pop {r4, r8, sb, lr}
|
||||
b _080B2718
|
||||
_080B1B98:
|
||||
mov r5, #2
|
||||
strb r5, [fp, #0x12]
|
||||
add r7, r7, r5
|
||||
_080B1BA4:
|
||||
stmdb sp!, {r4}
|
||||
mov r0, r4
|
||||
bl _080B2718
|
||||
pop {r4, lr}
|
||||
b _080B1BC0
|
||||
_080B1BB8:
|
||||
ldm sp!, {lr}
|
||||
b _080B2718
|
||||
_080B1BC0:
|
||||
ldrsh r1, [r4, #0x36]
|
||||
ldrb r0, [r4, #0x29]
|
||||
tst r0, #0x10
|
||||
beq _080B1BD8
|
||||
cmp r1, #0
|
||||
bxpl lr
|
||||
_080B1BD8:
|
||||
tst r0, #0x20
|
||||
beq _080B1BEC
|
||||
ldrb r0, [fp, #1]
|
||||
tst r0, #1
|
||||
bxne lr
|
||||
_080B1BEC:
|
||||
mov r2, r7
|
||||
cmp r1, #0
|
||||
submi r2, r2, r1
|
||||
ldr r3, _080B2A4C @ =gUnk_081326EC
|
||||
ldr r3, [r3, #0x10]
|
||||
ldrb r0, [r3]
|
||||
cmp r0, #0x40
|
||||
bxhs lr
|
||||
add r0, r0, #1
|
||||
strb r0, [r3]
|
||||
add r3, r3, r0, lsl #2
|
||||
lsr r0, sb, #0xa
|
||||
and r0, r0, #3
|
||||
orr r0, r0, r2, lsl #6
|
||||
strh r0, [r3, #2]
|
||||
ldrb r0, [r4, #0x18]
|
||||
and r0, r0, #0x30
|
||||
lsr r0, r0, #4
|
||||
orr r0, r0, r6, lsl #6
|
||||
strh r0, [r3]
|
||||
bx lr
|
||||
_080B1C40EU:
|
||||
ldr r4, _080B2A50 @ =gUnk_081326EC
|
||||
ldr r4, [r4, #0x10]
|
||||
ldrb r5, [r4]
|
||||
cmp r5, #0
|
||||
bxeq lr
|
||||
stmdb sp!, {lr}
|
||||
add r4, r4, #4
|
||||
_080B1C5C:
|
||||
ldrsh r0, [r4]
|
||||
asr r6, r0, #6
|
||||
and r1, r0, #7
|
||||
ldr sl, _080B2A54 @ =gUnk_0300694C
|
||||
ldr sl, [sl, r1, lsl #2]
|
||||
ldrsh r0, [r4, #2]
|
||||
asr r7, r0, #6
|
||||
and r1, r0, #3
|
||||
lsl sb, r1, #0xa
|
||||
mov r8, #0
|
||||
push {r4, r5}
|
||||
bl _080B2874
|
||||
pop {r4, r5}
|
||||
add r4, r4, #4
|
||||
subs r5, r5, #1
|
||||
bgt _080B1C5C
|
||||
ldm sp!, {lr}
|
||||
bx lr
|
||||
|
||||
.else
|
||||
stmdb sp!, {lr}
|
||||
mov r4, r0
|
||||
@@ -1057,6 +1228,8 @@ _080B26D0:
|
||||
bx lr
|
||||
|
||||
.endif
|
||||
|
||||
|
||||
_080B2718:
|
||||
ldrsb r0, [r4, #0x28]
|
||||
cmp r0, #0
|
||||
@@ -1282,12 +1455,124 @@ _080B2A0C:
|
||||
.align 2, 0
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0B1FBC, 0x0000194 @TODO disassemble
|
||||
_080B1FBC:
|
||||
mov sl, lr
|
||||
ldrsh r0, [fp, #0x1c]
|
||||
ldrsh r1, [fp, #0x1e]
|
||||
ldrsh r2, [fp, #4]
|
||||
sub r0, r0, r2
|
||||
ldrsh r3, [fp, #6]
|
||||
sub r1, r1, r3
|
||||
mov r2, #0
|
||||
mov r3, #0
|
||||
bl sub_080B20ECEU
|
||||
mov r5, #0
|
||||
ldr r4, _080B2194 @ =0x03003DF8
|
||||
_080B1FECEU:
|
||||
ldr r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
beq _080B2074EU
|
||||
ldrsh r6, [r0, #0x2e]
|
||||
ldrsh r7, [r0, #0x32]
|
||||
ldr r3, [r4, #4]
|
||||
cmp r3, #0
|
||||
beq _080B2024
|
||||
ldrsb r0, [r3]
|
||||
add r6, r6, r0
|
||||
ldrsb r0, [r3, #1]
|
||||
add r7, r7, r0
|
||||
add r3, r3, #2
|
||||
b _080B202C
|
||||
_080B2024:
|
||||
ldr r3, [r0, #0x48]
|
||||
add r3, r3, #6
|
||||
_080B202C:
|
||||
ldrsh r0, [fp, #4]
|
||||
sub r6, r6, r0
|
||||
ldrsh r0, [fp, #6]
|
||||
sub r7, r7, r0
|
||||
ldrb r0, [r3]
|
||||
ldrb r1, [r3, #1]
|
||||
ldr r2, [fp, #1]
|
||||
and r2, r2, #3
|
||||
lsl r3, r2, #0x1c
|
||||
lsrs r2, r2, #1
|
||||
rsblo r0, r0, #0
|
||||
subhs r0, r0, #8
|
||||
rsbeq r1, r1, #0
|
||||
subne r1, r1, #8
|
||||
add r0, r0, r6
|
||||
add r1, r1, r7
|
||||
mov r2, #0
|
||||
bl sub_080B20ECEU
|
||||
_080B2074EU:
|
||||
add r4, r4, #0xc
|
||||
add r5, r5, #1
|
||||
cmp r5, #0x1f
|
||||
bls _080B1FECEU
|
||||
bx sl
|
||||
arm_func_start sub_080B2088
|
||||
sub_080B2088: @ 0x080B2088
|
||||
ldr r5, [r4, #0x48]
|
||||
cmp r5, #0
|
||||
bxeq lr
|
||||
ldrb r0, [r5, #6]
|
||||
ldrb r1, [r5, #7]
|
||||
ldr r2, [fp, #1]
|
||||
and r2, r2, #3
|
||||
lsl r3, r2, #0x1c
|
||||
lsrs r2, r2, #1
|
||||
rsblo r0, r0, #0
|
||||
subhs r0, r0, #8
|
||||
rsbeq r1, r1, #0
|
||||
subne r1, r1, #8
|
||||
ldrsb r2, [r5]
|
||||
add r0, r6, r0
|
||||
add r0, r0, r2
|
||||
ldrsb r2, [r5, #1]
|
||||
add r1, r7, r1
|
||||
add r1, r1, r2
|
||||
mov r2, sb
|
||||
b sub_080B20ECEU
|
||||
_080B20DC:
|
||||
mov r0, r6
|
||||
mov r1, r7
|
||||
mov r2, r9
|
||||
mov r3, #0x0
|
||||
|
||||
arm_func_start sub_080B20ECEU
|
||||
sub_080B20ECEU: @ 0x080B20EC
|
||||
add ip, r1, #7
|
||||
cmp ip, #0xa8
|
||||
bxhs lr
|
||||
add ip, r0, #7
|
||||
cmp ip, #0xf8
|
||||
bxhs lr
|
||||
and r1, r1, #0xff
|
||||
lsl r0, r0, #0x17
|
||||
orr r0, r1, r0, lsr #7
|
||||
eor r0, r0, r3
|
||||
and r1, r2, #0xc00
|
||||
add r1, r1, #0xff
|
||||
ldrb r3, [fp, #3]
|
||||
add ip, fp, #0x20
|
||||
add ip, ip, r3, lsl #3
|
||||
str r0, [ip]
|
||||
strh r1, [ip, #4]
|
||||
add r3, r3, #1
|
||||
cmp r3, #0x80
|
||||
bhs _080B298C
|
||||
strb r3, [fp, #3]
|
||||
bx lr
|
||||
_080B2144:
|
||||
.4byte gUnk_03006954
|
||||
.4byte gUnk_030068F0
|
||||
.4byte gUnk_0300689C
|
||||
.endif
|
||||
|
||||
_080B2A30: .4byte gUnk_03000000
|
||||
.ifdef EU
|
||||
.4byte 0x03006958 @TODO make pointer?
|
||||
_080B2154: .4byte 0x03006958 @TODO make pointer?
|
||||
.endif
|
||||
_080B2A34: .4byte gUnk_081326EC
|
||||
_080B2A38: .4byte gUnk_081326EC
|
||||
@@ -1305,5 +1590,5 @@ _080B2A64: .4byte gUnk_03000000
|
||||
_080B2A68: .4byte gUnk_0300695C
|
||||
_080B2A6C: .4byte 0x3E003F00
|
||||
.ifdef EU
|
||||
.4byte 0x03003DF8 @TODO pointer?
|
||||
_080B2194: .4byte 0x03003DF8 @TODO pointer?
|
||||
.endif
|
||||
|
||||
+56
-1
@@ -119,7 +119,62 @@ _08075AD8: .4byte gUnk_08126EEC
|
||||
thumb_func_start sub_08075ADC
|
||||
sub_08075ADC: @ 0x08075ADC
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x07550C, 0x0000074 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldrb r1, [r4, #0xe]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08075532
|
||||
ldr r0, _08075570 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x88
|
||||
lsls r1, r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08075532
|
||||
bl sub_08079D48
|
||||
cmp r0, #0
|
||||
bne _08075578
|
||||
_08075532:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r4, #4]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #4]
|
||||
ldr r3, _08075570 @ =gPlayerState
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x10
|
||||
orrs r0, r1
|
||||
str r0, [r3, #0x30]
|
||||
movs r2, #8
|
||||
asrs r2, r5
|
||||
lsls r1, r2, #4
|
||||
orrs r1, r2
|
||||
ldrb r0, [r3, #4]
|
||||
bics r0, r1
|
||||
strb r0, [r3, #4]
|
||||
mvns r2, r2
|
||||
ldrb r1, [r3, #0xa]
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
strb r0, [r3, #0xa]
|
||||
ldrb r0, [r3, #0xb]
|
||||
ands r2, r0
|
||||
strb r2, [r3, #0xb]
|
||||
ldr r0, _08075574 @ =0x0000013D
|
||||
bl SoundReq
|
||||
b _0807557E
|
||||
.align 2, 0
|
||||
_08075570: .4byte gPlayerState
|
||||
_08075574: .4byte 0x0000013D
|
||||
_08075578:
|
||||
adds r0, r4, #0
|
||||
bl UpdateItemAnim
|
||||
_0807557E:
|
||||
pop {r4, r5, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+179
-1
@@ -27,7 +27,185 @@ _08075334: .4byte gUnk_0811BD44
|
||||
thumb_func_start sub_08075338
|
||||
sub_08075338: @ 0x08075338
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x074D74, 0x0000174 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _08074DA8 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08074DAC
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074DA8: .4byte gPlayerState
|
||||
_08074DAC:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _08074E22
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _08074E18
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08074E18
|
||||
ldr r3, _08074E10 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _08074E14 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _08074E18
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074E10: .4byte gPlayerEntity
|
||||
_08074E14: .4byte 0x00017FFF
|
||||
_08074E18:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _08074EE2
|
||||
_08074E22:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08074EAE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _08074E4C
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _08074EE2
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _08074EE2
|
||||
_08074E4C:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
_08074EAE:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08074EC0
|
||||
strb r6, [r4, #0x1b]
|
||||
ldr r0, _08074EE4 @ =gPlayerEntity
|
||||
bl sub_0806F948
|
||||
_08074EC0:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _08074ED4
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _08074ED4
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_08074ED4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_08074EE2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08074EE4: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
|
||||
+250
-1
@@ -10,7 +10,256 @@
|
||||
thumb_func_start LadderUp
|
||||
LadderUp: @ 0x0808DB54
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x08D44C, 0x0000200 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, #0
|
||||
ldrb r0, [r7, #0xc]
|
||||
cmp r0, #1
|
||||
beq _0808D4D8
|
||||
cmp r0, #1
|
||||
bgt _0808D518
|
||||
cmp r0, #0
|
||||
bne _0808D518
|
||||
ldrb r0, [r7, #0xe]
|
||||
movs r1, #2
|
||||
cmp r0, #0
|
||||
beq _0808D46C
|
||||
movs r1, #1
|
||||
_0808D46C:
|
||||
strb r1, [r7, #0xc]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x63
|
||||
ldrb r0, [r1]
|
||||
adds r0, #8
|
||||
strb r0, [r1]
|
||||
adds r0, r7, #0
|
||||
movs r1, #0xa
|
||||
bl InitializeAnimation
|
||||
ldrb r0, [r7, #0xc]
|
||||
cmp r0, #1
|
||||
bne _0808D48A
|
||||
ldr r0, _0808D4CC @ =0x0000FF80
|
||||
strh r0, [r7, #0x36]
|
||||
_0808D48A:
|
||||
ldrb r0, [r7, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808D492
|
||||
b _0808D642
|
||||
_0808D492:
|
||||
ldrh r1, [r7, #0x32]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
adds r0, #0xc
|
||||
strh r0, [r7, #0x32]
|
||||
ldr r0, _0808D4D0 @ =0x00004023
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r7, r2]
|
||||
ldr r3, _0808D4D4 @ =gRoomControls
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r5, #0x32
|
||||
ldrsh r2, [r7, r5]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r4
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r7, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D4CC: .4byte 0x0000FF80
|
||||
_0808D4D0: .4byte 0x00004023
|
||||
_0808D4D4: .4byte gRoomControls
|
||||
_0808D4D8:
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
adds r0, r7, #0
|
||||
bl sub_08003FC4
|
||||
cmp r0, #0
|
||||
beq _0808D4E8
|
||||
b _0808D642
|
||||
_0808D4E8:
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x46
|
||||
movs r2, #0x40
|
||||
bl CreateFx
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0808D4FE
|
||||
ldrh r0, [r1, #0x32]
|
||||
adds r0, #8
|
||||
strh r0, [r1, #0x32]
|
||||
_0808D4FE:
|
||||
movs r0, #0x1e
|
||||
movs r1, #0
|
||||
bl sub_08080964
|
||||
ldr r0, _0808D514 @ =0x0000010B
|
||||
bl SoundReq
|
||||
movs r0, #2
|
||||
strb r0, [r7, #0xc]
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D514: .4byte 0x0000010B
|
||||
_0808D518:
|
||||
ldrb r0, [r7, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0808D520
|
||||
b _0808D642
|
||||
_0808D520:
|
||||
ldr r0, _0808D598 @ =gPlayerEntity
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r7, r3]
|
||||
cmp r1, r0
|
||||
bge _0808D5AC
|
||||
ldr r0, _0808D59C @ =gPlayerState
|
||||
ldrb r0, [r0, #0x12]
|
||||
cmp r0, #0x1e
|
||||
bne _0808D538
|
||||
b _0808D642
|
||||
_0808D538:
|
||||
adds r0, r7, #0
|
||||
bl GetTileTypeByEntity
|
||||
ldr r1, _0808D5A0 @ =0x00004017
|
||||
cmp r0, r1
|
||||
beq _0808D546
|
||||
b _0808D642
|
||||
_0808D546:
|
||||
ldr r0, _0808D5A4 @ =0x00004023
|
||||
movs r5, #0x2e
|
||||
ldrsh r1, [r7, r5]
|
||||
ldr r4, _0808D5A8 @ =gRoomControls
|
||||
ldrh r2, [r4, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
movs r5, #0x3f
|
||||
ands r1, r5
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
ldrh r3, [r4, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r5
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r6, r7, #0
|
||||
adds r6, #0x38
|
||||
ldrb r2, [r6]
|
||||
bl SetTile
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r7, r1]
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r5
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r7, r2]
|
||||
ldrh r2, [r4, #8]
|
||||
adds r2, #0x10
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r5
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldrb r1, [r6]
|
||||
bl sub_0807BA8C
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D598: .4byte gPlayerEntity
|
||||
_0808D59C: .4byte gPlayerState
|
||||
_0808D5A0: .4byte 0x00004017
|
||||
_0808D5A4: .4byte 0x00004023
|
||||
_0808D5A8: .4byte gRoomControls
|
||||
_0808D5AC:
|
||||
adds r0, r7, #0
|
||||
bl GetTileTypeByEntity
|
||||
ldr r3, _0808D614 @ =0x00004017
|
||||
mov r8, r3
|
||||
cmp r0, r8
|
||||
beq _0808D642
|
||||
movs r5, #0x2e
|
||||
ldrsh r1, [r7, r5]
|
||||
ldr r5, _0808D618 @ =gRoomControls
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r6, #0x3f
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r7, r2]
|
||||
ldrh r2, [r5, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r4, r7, #0
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl SetTile
|
||||
ldrb r0, [r7, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0808D61C
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r7, r2]
|
||||
ldrh r2, [r5, #8]
|
||||
adds r2, #0x10
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl SetTile
|
||||
b _0808D642
|
||||
.align 2, 0
|
||||
_0808D614: .4byte 0x00004017
|
||||
_0808D618: .4byte gRoomControls
|
||||
_0808D61C:
|
||||
ldr r0, _0808D648 @ =0x00004014
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r7, r3]
|
||||
ldrh r2, [r5, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r7, r3]
|
||||
ldrh r3, [r5, #8]
|
||||
adds r3, #0x10
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
ands r2, r6
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
ldrb r2, [r4]
|
||||
bl SetTile
|
||||
_0808D642:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0808D648: .4byte 0x00004014
|
||||
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
|
||||
+57
-2
@@ -35,10 +35,65 @@ _0805DE64: .4byte gUnk_08108DC4
|
||||
thumb_func_start sub_0805DE68
|
||||
sub_0805DE68: @ 0x0805DE68
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x05dcbc, 0x3c @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0805DCCE
|
||||
bl DeleteThisEntity
|
||||
_0805DCCE:
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0805DCF4 @ =0x030010A0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0xf
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3a
|
||||
movs r1, #0x20
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805DCF4: .4byte gScreenTransition
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x05D904, 0x3c @TODO same as JP
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _0805D916
|
||||
bl DeleteThisEntity
|
||||
_0805D916:
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r2, _0805D93C @ =gScreenTransition
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0xf
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3a
|
||||
movs r1, #0x20
|
||||
strb r1, [r0]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805D93C: .4byte gScreenTransition
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+1
-2
@@ -805,10 +805,9 @@ _080594D2:
|
||||
_080594D4: .4byte gUnk_08108380
|
||||
_080594D8: .4byte gPlayerEntity
|
||||
|
||||
@TODO move down once EU pointers are fixed
|
||||
.ifndef EU
|
||||
thumb_func_start sub_080594DC
|
||||
sub_080594DC: @ 0x080594DC
|
||||
.ifndef EU
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080170E4 @ =gUnk_0200AF00
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x2f
|
||||
movs r1, #0
|
||||
strb r1, [r2]
|
||||
subs r2, #2
|
||||
strb r1, [r2]
|
||||
adds r0, #0x2e
|
||||
strb r1, [r0]
|
||||
ldr r2, _080170E8 @ =gPlayerEntity
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017072
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08017072
|
||||
movs r0, #0x86
|
||||
bl SoundReq
|
||||
_08017072:
|
||||
ldr r4, _080170EC @ =gPlayerState
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _080170F0 @ =0xFDFFFDFF
|
||||
ands r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801708A
|
||||
bl ResetPlayer
|
||||
_0801708A:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080170A4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080170A4
|
||||
bl sub_0807A108
|
||||
_080170A4:
|
||||
bl sub_08079B24
|
||||
cmp r0, #0
|
||||
bne _080170B2
|
||||
adds r0, r5, #0
|
||||
bl sub_08079708
|
||||
_080170B2:
|
||||
ldr r0, _080170F4 @ =gUnk_03003DF0
|
||||
movs r4, #0
|
||||
strb r4, [r0]
|
||||
ldr r2, _080170EC @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170C8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_080170C8:
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
adds r3, r2, #0
|
||||
adds r3, #0xa9
|
||||
strb r0, [r3]
|
||||
strb r4, [r1]
|
||||
subs r1, #0x1e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170F8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080170E4: .4byte gUnk_0200AF00
|
||||
_080170E8: .4byte gPlayerEntity
|
||||
_080170EC: .4byte gPlayerState
|
||||
_080170F0: .4byte 0xFDFFFDFF
|
||||
_080170F4: .4byte gUnk_03003DF0
|
||||
_080170F8:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x8b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08017104
|
||||
b _08017222
|
||||
_08017104:
|
||||
ldr r0, _08017160 @ =gTextBox
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017112
|
||||
b _08017222
|
||||
_08017112:
|
||||
ldr r0, _08017164 @ =gUnk_0200AF00
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r0, _08017168 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x5a
|
||||
bl __modsi3
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r2, _0801716C @ =gSave
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xab
|
||||
ldrb r0, [r0]
|
||||
lsrs r1, r0, #2
|
||||
cmp r1, #0x18
|
||||
bls _08017138
|
||||
movs r1, #0x18
|
||||
_08017138:
|
||||
cmp r1, #7
|
||||
bhi _0801713E
|
||||
movs r1, #8
|
||||
_0801713E:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
bhi _0801714E
|
||||
ldr r0, _08017170 @ =0x0000011F
|
||||
bl EnqueueSFX
|
||||
_0801714E:
|
||||
ldr r0, _0801716C @ =gSave
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xb2
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0
|
||||
bne _08017174
|
||||
adds r0, #0xc4
|
||||
strh r1, [r0]
|
||||
b _08017192
|
||||
.align 2, 0
|
||||
_08017160: .4byte gTextBox
|
||||
_08017164: .4byte gUnk_0200AF00
|
||||
_08017168: .4byte gScreenTransition
|
||||
_0801716C: .4byte gSave
|
||||
_08017170: .4byte 0x0000011F
|
||||
_08017174:
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xc4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08017188
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08017192
|
||||
_08017188:
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r0, _080171A4 @ =0x000001B3
|
||||
bl SoundReq
|
||||
_08017192:
|
||||
ldr r0, _080171A8 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xb3
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171AC
|
||||
adds r0, #0xc6
|
||||
strh r1, [r0]
|
||||
b _080171DC
|
||||
.align 2, 0
|
||||
_080171A4: .4byte 0x000001B3
|
||||
_080171A8: .4byte gSave
|
||||
_080171AC:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc6
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080171C0
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _080171CE
|
||||
_080171C0:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _080171DC
|
||||
_080171CE:
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _080171DC
|
||||
adds r0, r5, #0
|
||||
bl CreateSparkle
|
||||
_080171DC:
|
||||
ldr r0, _080171F0 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xba
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171F4
|
||||
adds r0, #0xc8
|
||||
strh r1, [r0]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080171F0: .4byte gSave
|
||||
_080171F4:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc8
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _08017208
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _0801720E
|
||||
_08017208:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
b _08017222
|
||||
_0801720E:
|
||||
movs r0, #0x3f
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08017222
|
||||
ldrb r1, [r3]
|
||||
adds r1, #0x55
|
||||
adds r0, r5, #0
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_08017222:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,95 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080578C4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
ldr r1, _0805791C @ =sub_080582F8
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_08052D74
|
||||
_080578C4:
|
||||
ldr r0, _08057920 @ =gRoomControls
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08057960
|
||||
adds r0, r4, #0
|
||||
bl sub_08057E40
|
||||
cmp r0, #0
|
||||
beq _080578E8
|
||||
ldr r0, _08057924 @ =gRoomVars
|
||||
ldrb r6, [r0, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r6
|
||||
beq _080578E8
|
||||
strb r6, [r1]
|
||||
strb r5, [r4, #0xe]
|
||||
_080578E8:
|
||||
lsls r1, r6, #6
|
||||
ldr r0, _08057928 @ =gUnk_081080A4
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
bne _08057938
|
||||
ldr r1, _0805792C @ =gUnk_02034490
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08057930 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r2, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldr r0, _08057934 @ =gUnk_081081E4
|
||||
adds r0, r6, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _08057960
|
||||
.align 2, 0
|
||||
_0805791C: .4byte sub_08057E30
|
||||
_08057920: .4byte gRoomControls
|
||||
_08057924: .4byte gRoomVars
|
||||
_08057928: .4byte gUnk_081080A4
|
||||
_0805792C: .4byte gUnk_02034490
|
||||
_08057930: .4byte gGlobalGfxAndPalettes
|
||||
_08057934: .4byte gUnk_081081E4
|
||||
_08057938:
|
||||
cmp r1, #0
|
||||
blt _08057960
|
||||
cmp r1, #7
|
||||
bgt _08057960
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08057964 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r1, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r0, _08057968 @ =gUnk_02034490
|
||||
strb r1, [r0]
|
||||
_08057960:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057964: .4byte gGlobalGfxAndPalettes
|
||||
_08057968: .4byte gUnk_02034490
|
||||
.syntax divided
|
||||
@@ -0,0 +1,153 @@
|
||||
.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
|
||||
ldr r0, _08056570 @ =gUnk_02024030
|
||||
movs r7, #3
|
||||
ldrsb r7, [r0, r7]
|
||||
ldr r0, _08056574 @ =gInput
|
||||
ldrh r0, [r0, #2]
|
||||
cmp r0, #8
|
||||
beq _08056582
|
||||
cmp r0, #8
|
||||
bgt _08056578
|
||||
cmp r0, #1
|
||||
beq _08056582
|
||||
b _080565EA
|
||||
.align 2, 0
|
||||
_08056570: .4byte gUnk_02024030
|
||||
_08056574: .4byte gInput
|
||||
_08056578:
|
||||
cmp r0, #0x10
|
||||
beq _080565E8
|
||||
cmp r0, #0x20
|
||||
beq _080565E4
|
||||
b _080565EA
|
||||
_08056582:
|
||||
ldr r0, _08056598EU @ =gUnk_02024030
|
||||
lsls r1, r7, #1
|
||||
adds r0, #0x10
|
||||
adds r1, r1, r0
|
||||
ldrh r1, [r1]
|
||||
cmp r1, #0
|
||||
bne _080565A0EU
|
||||
ldr r1, _0805659CEU @ =gUnk_08107C14
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x20
|
||||
b _080565B0EU
|
||||
.align 2, 0
|
||||
_08056598EU: .4byte gUnk_02024030
|
||||
_0805659CEU: .4byte gUnk_08107C14
|
||||
_080565A0EU:
|
||||
strh r1, [r6, #8]
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x20
|
||||
adds r0, r4, #0
|
||||
bl sub_0805EEB4
|
||||
ldr r1, _080565D8 @ =gUnk_08107C0F
|
||||
adds r0, r4, #0
|
||||
_080565B0EU:
|
||||
bl sub_0805EF40
|
||||
ldr r2, _080565DC @ =gUnk_02000040
|
||||
ldr r0, _080565E0 @ =gUnk_02024030
|
||||
ldrb r1, [r0, #3]
|
||||
strb r1, [r2, #1]
|
||||
movs r1, #3
|
||||
strb r1, [r2]
|
||||
movs r1, #0x18
|
||||
bl MemClear
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x89
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
b _080565EA
|
||||
.align 2, 0
|
||||
_080565D8: .4byte gUnk_08107C0F
|
||||
_080565DC: .4byte gUnk_02000040
|
||||
_080565E0: .4byte gUnk_02024030
|
||||
_080565E4:
|
||||
subs r7, #1
|
||||
b _080565EA
|
||||
_080565E8:
|
||||
adds r7, #1
|
||||
_080565EA:
|
||||
ldr r4, _0805660C @ =gUnk_02024030
|
||||
movs r1, #2
|
||||
ldrsb r1, [r4, r1]
|
||||
adds r0, r7, r1
|
||||
bl __modsi3
|
||||
adds r7, r0, #0
|
||||
movs r5, #3
|
||||
ldrsb r5, [r4, r5]
|
||||
cmp r7, r5
|
||||
beq _08056610
|
||||
strb r7, [r4, #3]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
movs r1, #1
|
||||
b _08056612
|
||||
.align 2, 0
|
||||
_0805660C: .4byte gUnk_02024030
|
||||
_08056610:
|
||||
movs r1, #0
|
||||
_08056612:
|
||||
ldr r2, _08056674 @ =gUnk_02000040
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #1
|
||||
bne _08056624
|
||||
ldr r1, _08056678 @ =gUnk_02024030
|
||||
movs r0, #2
|
||||
strb r0, [r2]
|
||||
strb r0, [r1]
|
||||
movs r1, #1
|
||||
_08056624:
|
||||
cmp r1, #0
|
||||
beq _0805666A
|
||||
ldr r0, _0805667C @ =gCurrentTextBox
|
||||
mov sl, r0
|
||||
movs r1, #0x56
|
||||
add r1, sl
|
||||
mov sb, r1
|
||||
ldrh r0, [r1]
|
||||
mov r8, r0
|
||||
ldr r4, _08056678 @ =gUnk_02024030
|
||||
lsls r0, r5, #1
|
||||
adds r4, #8
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
adds r6, #0x50
|
||||
movs r0, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_0805F8E4
|
||||
lsls r0, r7, #1
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
mov r1, sb
|
||||
strh r0, [r1]
|
||||
movs r0, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0805F8E4
|
||||
mov r1, r8
|
||||
mov r0, sb
|
||||
strh r1, [r0]
|
||||
movs r0, #1
|
||||
ldr r1, _08056680 @ =0x0202281D
|
||||
strb r0, [r1]
|
||||
_0805666A:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08056674: .4byte gUnk_02000040
|
||||
_08056678: .4byte gUnk_02024030
|
||||
_0805667C: .4byte gCurrentTextBox
|
||||
_08056680: .4byte 0x0202281D
|
||||
.syntax divided
|
||||
@@ -0,0 +1,47 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_0804A720
|
||||
movs r4, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
bl Random
|
||||
strb r0, [r5, #0xe]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x45
|
||||
ldrb r1, [r0]
|
||||
adds r0, #0x3b
|
||||
strb r1, [r0]
|
||||
adds r0, #2
|
||||
strb r4, [r0]
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0801F484
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xc]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r5, #0xf]
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl sub_08049F84
|
||||
strb r0, [r5, #0x15]
|
||||
ldrb r0, [r5, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x10]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r5, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
_0801F484:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,101 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802AAB4
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802AD1C
|
||||
_0802AAB4:
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x81
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0802AB38
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _0802AAC8
|
||||
strb r5, [r6]
|
||||
b _0802AB56
|
||||
_0802AAC8:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _0802AAD4
|
||||
strb r0, [r6]
|
||||
str r0, [r4, #0x54]
|
||||
b _0802AB56
|
||||
_0802AAD4:
|
||||
ldrb r0, [r5, #0xe]
|
||||
mov r8, r0
|
||||
cmp r0, #0
|
||||
bne _0802AB56
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _0802AB24 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r4, r7]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #0
|
||||
bne _0802AB2C
|
||||
ldr r1, _0802AB28 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x10
|
||||
movs r3, #0x10
|
||||
bl sub_080041A0
|
||||
cmp r0, #0
|
||||
beq _0802AB56
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x50
|
||||
bhi _0802AB56
|
||||
mov r0, r8
|
||||
strb r0, [r6]
|
||||
b _0802AB56
|
||||
.align 2, 0
|
||||
_0802AB24: .4byte gRoomControls
|
||||
_0802AB28: .4byte gPlayerEntity
|
||||
_0802AB2C:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x13
|
||||
bhi _0802AB56
|
||||
mov r1, r8
|
||||
strb r1, [r6]
|
||||
b _0802AB56
|
||||
_0802AB38:
|
||||
movs r1, #4
|
||||
strb r1, [r4, #0xc]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_0802AB56:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,50 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0802ABA6
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bhi _0802AB90
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0802ABBA
|
||||
_0802AB90:
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
b _0802ABBA
|
||||
_0802ABA6:
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0802ABBA
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802ACDC
|
||||
_0802ABBA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,43 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F69C
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0802AC26
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
bne _0802AC44
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
b _0802AC42
|
||||
_0802AC26:
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AC44
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x3a
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
_0802AC42:
|
||||
strb r0, [r2]
|
||||
_0802AC44:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,38 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0xa]
|
||||
adds r1, #2
|
||||
movs r0, #0x1b
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0802AD92
|
||||
adds r0, r5, #0
|
||||
bl sub_0802B234
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x1f
|
||||
strb r1, [r4, #0xb]
|
||||
str r5, [r4, #0x50]
|
||||
str r4, [r5, #0x54]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0802AD92
|
||||
subs r1, #7
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0802AD92:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,78 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802ADFA
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0802ADFA:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802AE1E
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0802AE68
|
||||
_0802AE1E:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AE54
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802AE62
|
||||
_0802AE54:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802AE62:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802AE68:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,71 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0802B17A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_0802B17A:
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802B190
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0802B190:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802B1AA
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
b _0802B1EC
|
||||
_0802B1AA:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802B1D8
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #0x39
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #0x18
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
b _0802B1E6
|
||||
_0802B1D8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802B1E6:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802B1EC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,207 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _08054138 @ =gRoomVars
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #1
|
||||
bne _08054126
|
||||
b _080542CC
|
||||
_08054126:
|
||||
ldr r2, _0805413C @ =gUnk_08001A1C
|
||||
movs r4, #0
|
||||
cmp r3, #0x18
|
||||
bhi _080541BC
|
||||
lsls r0, r3, #2
|
||||
ldr r1, _08054140 @ =_08054144
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08054138: .4byte gRoomVars
|
||||
_0805413C: .4byte gUnk_08001A1C
|
||||
_08054140: .4byte _08054144
|
||||
_08054144: @ jump table
|
||||
.4byte _080541BC @ case 0
|
||||
.4byte _080541A8 @ case 1
|
||||
.4byte _080541A8 @ case 2
|
||||
.4byte _080541A8 @ case 3
|
||||
.4byte _080541A8 @ case 4
|
||||
.4byte _080541A8 @ case 5
|
||||
.4byte _080541A8 @ case 6
|
||||
.4byte _080541A8 @ case 7
|
||||
.4byte _080541A8 @ case 8
|
||||
.4byte _080541A8 @ case 9
|
||||
.4byte _080541A8 @ case 10
|
||||
.4byte _080541A8 @ case 11
|
||||
.4byte _080541A8 @ case 12
|
||||
.4byte _080541BC @ case 13
|
||||
.4byte _080541BC @ case 14
|
||||
.4byte _080541BA @ case 15
|
||||
.4byte _080541B4 @ case 16
|
||||
.4byte _080541B4 @ case 17
|
||||
.4byte _080541B4 @ case 18
|
||||
.4byte _080541B4 @ case 19
|
||||
.4byte _080541B4 @ case 20
|
||||
.4byte _080541B4 @ case 21
|
||||
.4byte _080541B4 @ case 22
|
||||
.4byte _080541B4 @ case 23
|
||||
.4byte _080541B4 @ case 24
|
||||
_080541A8:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541B0 @ =gUnk_0800137C
|
||||
adds r4, r1, r0
|
||||
b _080541BC
|
||||
.align 2, 0
|
||||
_080541B0: .4byte gUnk_0800137C
|
||||
_080541B4:
|
||||
lsls r1, r3, #5
|
||||
ldr r0, _080541D0 @ =gUnk_0800161C
|
||||
adds r2, r1, r0
|
||||
_080541BA:
|
||||
ldr r4, _080541D4 @ =gUnk_02034398
|
||||
_080541BC:
|
||||
cmp r4, #0
|
||||
bne _080541C2
|
||||
b _080542CC
|
||||
_080541C2:
|
||||
ldr r0, _080541D8 @ =gSave
|
||||
adds r0, #0xb3
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _080541E0
|
||||
ldr r3, _080541DC @ =gUnk_08001A1C
|
||||
b _080541E6
|
||||
.align 2, 0
|
||||
_080541D0: .4byte gUnk_0800161C
|
||||
_080541D4: .4byte gUnk_02034398
|
||||
_080541D8: .4byte gSave
|
||||
_080541DC: .4byte gUnk_08001A1C
|
||||
_080541E0:
|
||||
lsls r1, r1, #5
|
||||
ldr r0, _080542BC @ =0x080014E4
|
||||
adds r3, r1, r0
|
||||
_080541E6:
|
||||
mov r0, sp
|
||||
adds r1, r4, #0
|
||||
bl sub_08000F14
|
||||
ldr r4, _080542C0 @ =gSave
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #8
|
||||
bhi _08054204
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #8]
|
||||
adds r0, #5
|
||||
strh r0, [r1, #8]
|
||||
_08054204:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08054218
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xc]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xc]
|
||||
_08054218:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xad
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805422C
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #0xe]
|
||||
adds r0, #3
|
||||
strh r0, [r1, #0xe]
|
||||
_0805422C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xa
|
||||
bhi _08054240
|
||||
mov r1, sp
|
||||
mov r0, sp
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, #1
|
||||
strh r0, [r1, #4]
|
||||
_08054240:
|
||||
ldr r2, _080542C4 @ =gUnk_08001A1C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xbb
|
||||
ldrb r0, [r0]
|
||||
adds r3, r2, #0
|
||||
cmp r0, #0
|
||||
beq _08054250
|
||||
adds r2, #0x20
|
||||
_08054250:
|
||||
movs r1, #0x8b
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805425E
|
||||
adds r3, #0x40
|
||||
_0805425E:
|
||||
mov r0, sp
|
||||
mov r1, sp
|
||||
bl sub_08000F2C
|
||||
adds r4, r0, #0
|
||||
bl Random
|
||||
adds r2, r0, #0
|
||||
asrs r5, r2, #0x18
|
||||
movs r0, #0xf
|
||||
ands r5, r0
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl __modsi3
|
||||
adds r2, r0, #0
|
||||
movs r3, #0
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r4, #0
|
||||
ldrsh r1, [r0, r4]
|
||||
cmp r1, r2
|
||||
bgt _080542A6
|
||||
movs r4, #0xf
|
||||
_0805428E:
|
||||
adds r3, #1
|
||||
adds r5, #1
|
||||
ands r5, r4
|
||||
cmp r3, #0xf
|
||||
bhi _080542A6
|
||||
lsls r0, r5, #1
|
||||
add r0, sp
|
||||
movs r7, #0
|
||||
ldrsh r0, [r0, r7]
|
||||
adds r1, r1, r0
|
||||
cmp r1, r2
|
||||
ble _0805428E
|
||||
_080542A6:
|
||||
ldr r0, _080542C8 @ =gUnk_080FE1B4
|
||||
adds r0, r5, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _080542CC
|
||||
adds r0, r6, #0
|
||||
movs r2, #0
|
||||
bl CreateItemDrop
|
||||
b _080542CE
|
||||
.align 2, 0
|
||||
_080542BC: .4byte 0x080014E4
|
||||
_080542C0: .4byte gSave
|
||||
_080542C4: .4byte gUnk_08001A1C
|
||||
_080542C8: .4byte gUnk_080FE1B4
|
||||
_080542CC:
|
||||
movs r0, #0
|
||||
_080542CE:
|
||||
add sp, #0x20
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
@@ -0,0 +1,56 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
bl sub_0805E5A8
|
||||
ldr r5, _080575E8 @ =gUnk_03004030
|
||||
ldrb r0, [r5, #9]
|
||||
strb r0, [r5, #0xa]
|
||||
ldr r3, _080575EC @ =gRoomControls
|
||||
ldrb r0, [r3, #4]
|
||||
strb r0, [r5, #9]
|
||||
ldr r1, _080575F0 @ =gScreenTransition
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r1, #0xd]
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r3, #4]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r3, #5]
|
||||
str r4, [r5]
|
||||
ldr r6, _080575F4 @ =gPlayerEntity
|
||||
ldrh r1, [r6, #0x2e]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
lsls r0, r0, #4
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #4]
|
||||
ldrh r1, [r6, #0x32]
|
||||
ldrh r0, [r3, #8]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r2
|
||||
lsrs r0, r0, #2
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #6]
|
||||
ldrb r0, [r4, #3]
|
||||
bl sub_08080930
|
||||
mov r0, r8
|
||||
bl DeleteManager
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080575E8: .4byte gUnk_03004030
|
||||
_080575EC: .4byte gRoomControls
|
||||
_080575F0: .4byte gScreenTransition
|
||||
_080575F4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,37 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080579F0 @ =gUnk_081081E4
|
||||
adds r0, r4, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
lsls r1, r4, #6
|
||||
ldr r0, _080579F4 @ =gUnk_081080A4
|
||||
adds r1, r1, r0
|
||||
movs r3, #0
|
||||
ldr r2, _080579F8 @ =0x040000D4
|
||||
ldr r6, _080579FC @ =gGlobalGfxAndPalettes
|
||||
ldr r5, _08057A00 @ =0x84000400
|
||||
_080579D4:
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r6
|
||||
str r0, [r2]
|
||||
ldr r0, [r1, #4]
|
||||
str r0, [r2, #4]
|
||||
str r5, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r3, #1
|
||||
adds r1, #8
|
||||
cmp r3, #7
|
||||
bls _080579D4
|
||||
ldr r0, _08057A04 @ =gRoomVars
|
||||
strb r4, [r0, #0x10]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080579F0: .4byte gUnk_081081E4
|
||||
_080579F4: .4byte gUnk_081080A4
|
||||
_080579F8: .4byte 0x040000D4
|
||||
_080579FC: .4byte gGlobalGfxAndPalettes
|
||||
_08057A00: .4byte 0x84000400
|
||||
_08057A04: .4byte gRoomVars
|
||||
.syntax divided
|
||||
@@ -0,0 +1,24 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08050384
|
||||
adds r4, #0x68
|
||||
movs r1, #0
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r1, _0806E520 @ =gUnk_020227E8
|
||||
ldr r2, _0806E524 @ =0x00202020
|
||||
bl sub_08057044
|
||||
ldr r0, _0806E528 @ =0x00003302
|
||||
ldr r1, _0806E52C @ =gUnk_081146B8
|
||||
bl sub_0805F46C
|
||||
ldr r1, _0806E530 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0806E520: .4byte gUnk_020227E8
|
||||
_0806E524: .4byte 0x00202020
|
||||
_0806E528: .4byte 0x00003302
|
||||
_0806E52C: .4byte gUnk_081146B8
|
||||
_0806E530: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,98 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _080A984A
|
||||
bl DeleteThisEntity
|
||||
_080A984A:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _080A9856
|
||||
bl DeleteThisEntity
|
||||
b _080A989A
|
||||
_080A9856:
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A9884
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
rsbs r2, r2, #0
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
b _080A989A
|
||||
_080A9884:
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
_080A989A:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A98F8
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _080A98B0
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _080A98F8
|
||||
_080A98B0:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A98F8
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r2, #0x40
|
||||
movs r0, #0x40
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsls r1, r0, #2
|
||||
strb r1, [r4, #0x15]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1a
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldr r0, _080A98FC @ =gUnk_080FD150
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_080AA3E0
|
||||
_080A98F8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A98FC: .4byte gUnk_080FD150
|
||||
.syntax divided
|
||||
@@ -1,7 +1,154 @@
|
||||
.syntax unified
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x06E3DC, 0x000011C @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r2, r1, #0
|
||||
ldr r4, _0806E3F8 @ =gInput
|
||||
ldrh r1, [r4, #2]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E3FC
|
||||
bl sub_08050384
|
||||
b _0806E4EA
|
||||
.align 2, 0
|
||||
_0806E3F8: .4byte gInput
|
||||
_0806E3FC:
|
||||
ldrb r0, [r2, #0x18]
|
||||
adds r1, r0, #0
|
||||
mov r6, r8
|
||||
adds r6, #0x6c
|
||||
cmp r1, #0
|
||||
bne _0806E414
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0x18]
|
||||
strh r1, [r6]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
_0806E414:
|
||||
ldrh r2, [r4, #4]
|
||||
movs r0, #0xc0
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0806E466
|
||||
mov r1, r8
|
||||
adds r1, #0x68
|
||||
movs r0, #0
|
||||
ldrsh r4, [r1, r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r2
|
||||
adds r7, r1, #0
|
||||
cmp r0, #0
|
||||
beq _0806E434
|
||||
adds r4, #1
|
||||
b _0806E436
|
||||
_0806E434:
|
||||
subs r4, #1
|
||||
_0806E436:
|
||||
cmp r4, #0
|
||||
bgt _0806E43C
|
||||
movs r4, #1
|
||||
_0806E43C:
|
||||
movs r5, #0x1c
|
||||
movs r0, #0x55
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _0806E44A
|
||||
movs r5, #0x34
|
||||
_0806E44A:
|
||||
cmp r4, r5
|
||||
ble _0806E450
|
||||
adds r4, r5, #0
|
||||
_0806E450:
|
||||
strh r4, [r7]
|
||||
mov r0, r8
|
||||
bl sub_0806EABC
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E466
|
||||
subs r0, r1, #1
|
||||
strh r0, [r6]
|
||||
_0806E466:
|
||||
ldr r0, _0806E4B4 @ =gInput
|
||||
ldrh r1, [r0, #2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806E4C6
|
||||
mov r5, r8
|
||||
adds r5, #0x68
|
||||
mov r7, r8
|
||||
adds r7, #0x6a
|
||||
movs r0, #0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r7, r2]
|
||||
cmp r1, r0
|
||||
bne _0806E48E
|
||||
movs r1, #0
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, #0
|
||||
bne _0806E4BC
|
||||
_0806E48E:
|
||||
ldr r4, _0806E4B8 @ =gUnk_081145E4
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
bl SoundReq
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r7]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r5, r2]
|
||||
lsls r0, r0, #2
|
||||
adds r4, #2
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r6]
|
||||
b _0806E4C6
|
||||
.align 2, 0
|
||||
_0806E4B4: .4byte gInput
|
||||
_0806E4B8: .4byte gUnk_081145E4
|
||||
_0806E4BC:
|
||||
ldr r0, _0806E4F0 @ =0x80010000
|
||||
bl SoundReq
|
||||
movs r0, #0
|
||||
strh r0, [r7]
|
||||
_0806E4C6:
|
||||
ldrh r1, [r6]
|
||||
movs r2, #0
|
||||
ldrsh r0, [r6, r2]
|
||||
cmp r0, #0
|
||||
ble _0806E4E4
|
||||
subs r0, r1, #1
|
||||
movs r1, #0
|
||||
strh r0, [r6]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bgt _0806E4E4
|
||||
mov r0, r8
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
strh r1, [r6]
|
||||
_0806E4E4:
|
||||
ldr r1, _0806E4F4 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_0806E4EA:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0806E4F0: .4byte 0x80010000
|
||||
_0806E4F4: .4byte gActiveScriptInfo
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
|
||||
@@ -1,7 +1,184 @@
|
||||
.syntax unified
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x064DE8, 0x0000164 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r4, r0, #0
|
||||
mov r8, r1
|
||||
movs r6, #1
|
||||
ldr r0, _08064E14 @ =gRoomVars
|
||||
ldrb r5, [r0, #6]
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
cmp r5, #0x66
|
||||
beq _08064E8E
|
||||
cmp r5, #0x66
|
||||
bhi _08064E1E
|
||||
cmp r5, #0x61
|
||||
beq _08064E94
|
||||
cmp r5, #0x61
|
||||
bhi _08064E18
|
||||
cmp r5, #0xd
|
||||
beq _08064E44
|
||||
b _08064EAA
|
||||
.align 2, 0
|
||||
_08064E14: .4byte gRoomVars
|
||||
_08064E18:
|
||||
cmp r5, #0x64
|
||||
beq _08064E88
|
||||
b _08064EAA
|
||||
_08064E1E:
|
||||
cmp r5, #0x6c
|
||||
blo _08064EAA
|
||||
cmp r5, #0x6d
|
||||
bls _08064E60
|
||||
cmp r5, #0x6f
|
||||
bhi _08064EAA
|
||||
ldr r2, _08064E3C @ =gQuiverSizes
|
||||
ldr r1, _08064E40 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xaf
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
adds r1, #0xad
|
||||
b _08064E6E
|
||||
.align 2, 0
|
||||
_08064E3C: .4byte gQuiverSizes
|
||||
_08064E40: .4byte gSave
|
||||
_08064E44:
|
||||
movs r0, #0xd
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _08064E58
|
||||
movs r0, #0xe
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08064EAA
|
||||
_08064E58:
|
||||
ldr r0, _08064E5C @ =0x00002C0B
|
||||
b _08064F32
|
||||
.align 2, 0
|
||||
_08064E5C: .4byte 0x00002C0B
|
||||
_08064E60:
|
||||
ldr r2, _08064E7C @ =gBombBagSizes
|
||||
ldr r1, _08064E80 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xae
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
adds r1, #0xac
|
||||
_08064E6E:
|
||||
ldrb r0, [r0]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bhi _08064EAA
|
||||
ldr r0, _08064E84 @ =0x00002C0E
|
||||
b _08064F32
|
||||
.align 2, 0
|
||||
_08064E7C: .4byte gBombBagSizes
|
||||
_08064E80: .4byte gSave
|
||||
_08064E84: .4byte 0x00002C0E
|
||||
_08064E88:
|
||||
movs r1, #0x55
|
||||
mov sb, r1
|
||||
b _08064EAA
|
||||
_08064E8E:
|
||||
movs r0, #0x56
|
||||
mov sb, r0
|
||||
b _08064EAA
|
||||
_08064E94:
|
||||
ldr r0, _08064F04 @ =gSave
|
||||
adds r0, #0xc2
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _08064F08 @ =0x000003E6
|
||||
cmp r1, r0
|
||||
bls _08064EAA
|
||||
ldr r0, _08064F0C @ =0x00002C0E
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
movs r6, #0
|
||||
_08064EAA:
|
||||
cmp r6, #0
|
||||
beq _08064F38
|
||||
adds r0, r5, #0
|
||||
bl GetItemPrice
|
||||
adds r6, r0, #0
|
||||
ldr r7, _08064F04 @ =gSave
|
||||
adds r0, r7, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r6, r0
|
||||
bhi _08064F30
|
||||
rsbs r0, r6, #0
|
||||
bl ModRupees
|
||||
ldr r4, _08064F10 @ =gRoomVars
|
||||
ldrb r1, [r4, #7]
|
||||
adds r0, r5, #0
|
||||
movs r2, #2
|
||||
bl sub_080A7C18
|
||||
movs r0, #0
|
||||
strb r0, [r4, #6]
|
||||
strb r0, [r4, #7]
|
||||
movs r0, #1
|
||||
mov r1, r8
|
||||
str r0, [r1, #0x14]
|
||||
mov r0, sb
|
||||
cmp r0, #0
|
||||
beq _08064EEA
|
||||
bl SetLocalFlag
|
||||
_08064EEA:
|
||||
ldr r1, [r7, #0x5c]
|
||||
movs r0, #2
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bhi _08064EF8
|
||||
adds r0, r1, #1
|
||||
str r0, [r7, #0x5c]
|
||||
_08064EF8:
|
||||
ldr r0, [r7, #0x5c]
|
||||
cmp r0, #9
|
||||
bls _08064F18
|
||||
ldr r0, _08064F14 @ =0x00002C11
|
||||
b _08064F26
|
||||
.align 2, 0
|
||||
_08064F04: .4byte gSave
|
||||
_08064F08: .4byte 0x000003E6
|
||||
_08064F0C: .4byte 0x00002C0E
|
||||
_08064F10: .4byte gRoomVars
|
||||
_08064F14: .4byte 0x00002C11
|
||||
_08064F18:
|
||||
cmp r6, #0x63
|
||||
bls _08064F24
|
||||
ldr r0, _08064F20 @ =0x00002C10
|
||||
b _08064F26
|
||||
.align 2, 0
|
||||
_08064F20: .4byte 0x00002C10
|
||||
_08064F24:
|
||||
ldr r0, _08064F2C @ =0x00002C0F
|
||||
_08064F26:
|
||||
mov r1, r8
|
||||
str r0, [r1, #4]
|
||||
b _08064F3E
|
||||
.align 2, 0
|
||||
_08064F2C: .4byte 0x00002C0F
|
||||
_08064F30:
|
||||
ldr r0, _08064F48 @ =0x00002C0D
|
||||
_08064F32:
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
_08064F38:
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
str r0, [r1, #0x14]
|
||||
_08064F3E:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08064F48: .4byte 0x00002C0D
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
|
||||
+100
-1
@@ -31,7 +31,106 @@ _08089870: .4byte gUnk_08120D90
|
||||
thumb_func_start sub_08089874
|
||||
sub_08089874: @ 0x08089874
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x089184, 0x00000C4 @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x38
|
||||
movs r2, #3
|
||||
strb r2, [r0]
|
||||
ldrb r1, [r4, #0xb]
|
||||
cmp r1, #0
|
||||
bne _08089200
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x80
|
||||
bne _080891B4
|
||||
strb r2, [r4, #0xc]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08089AE0
|
||||
b _08089246
|
||||
_080891B4:
|
||||
str r1, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x29
|
||||
movs r2, #0
|
||||
movs r3, #0xff
|
||||
bl CreateObjectWithParent
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _080891FA
|
||||
_080891C8:
|
||||
ldrb r3, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x29
|
||||
movs r2, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _080891EE
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
ldr r1, [r4, #0x50]
|
||||
cmp r1, #0
|
||||
beq _080891EA
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r1, #0x54]
|
||||
_080891EA:
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r4, #0x50]
|
||||
_080891EE:
|
||||
ldrb r0, [r4, #0xa]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xa]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080891C8
|
||||
_080891FA:
|
||||
bl DeleteThisEntity
|
||||
b _08089246
|
||||
_08089200:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, [r4, #0x50]
|
||||
cmp r0, #0
|
||||
bne _08089214
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
b _0808921C
|
||||
_08089214:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_0808921C:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0xff
|
||||
bne _0808923A
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08016A30
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x15
|
||||
bl sub_0801D2B4
|
||||
b _08089246
|
||||
_0808923A:
|
||||
ldrb r1, [r4, #0xb]
|
||||
lsls r0, r1, #3
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
rsbs r0, r0, #0
|
||||
strh r0, [r4, #0x36]
|
||||
_08089246:
|
||||
pop {r4, pc}
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+81
-1
@@ -729,7 +729,87 @@ sub_08094F98: @ 0x08094F98
|
||||
thumb_func_start sub_08094FA8
|
||||
sub_08094FA8: @ 0x08094FA8
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x09487C, 0x000009C @TODO disassemble
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #1
|
||||
beq _080948B4
|
||||
cmp r1, #1
|
||||
bgt _08094890
|
||||
cmp r1, #0
|
||||
beq _0809489A
|
||||
b _08094912
|
||||
_08094890:
|
||||
cmp r1, #2
|
||||
beq _080948E0
|
||||
cmp r1, #3
|
||||
beq _080948FC
|
||||
b _08094912
|
||||
_0809489A:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0x1e]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_080787B4
|
||||
b _08094912
|
||||
_080948B4:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
beq _08094912
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
bl sub_080788E0
|
||||
ldr r0, _080948DC @ =gPlayerState
|
||||
movs r1, #0xc
|
||||
strb r1, [r0, #0xc]
|
||||
adds r0, #0x38
|
||||
movs r1, #0x36
|
||||
strb r1, [r0]
|
||||
b _08094912
|
||||
.align 2, 0
|
||||
_080948DC: .4byte gPlayerState
|
||||
_080948E0:
|
||||
movs r0, #0x36
|
||||
bl GetInventoryValue
|
||||
cmp r0, #2
|
||||
bne _08094912
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _08094912
|
||||
_080948FC:
|
||||
ldr r0, _08094914 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0xc
|
||||
beq _08094912
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x1c
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl CreateItemEntity
|
||||
_08094912:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08094914: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+139
-1
@@ -29,7 +29,145 @@ _080A1700: .4byte gUnk_08124ED0
|
||||
thumb_func_start sub_080A1704
|
||||
sub_080A1704: @ 0x080A1704
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0A0F40, 0x0000128 @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov sl, r0
|
||||
movs r0, #0x7b
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080A0F5A
|
||||
bl DeleteThisEntity
|
||||
_080A0F5A:
|
||||
ldr r0, _080A1050 @ =gEntCount
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x45
|
||||
bhi _080A1044
|
||||
movs r0, #0x40
|
||||
bl zMalloc
|
||||
adds r7, r0, #0
|
||||
cmp r7, #0
|
||||
beq _080A1044
|
||||
movs r6, #0
|
||||
movs r0, #1
|
||||
mov sb, r0
|
||||
mov r2, sb
|
||||
mov r1, sl
|
||||
strb r2, [r1, #0xc]
|
||||
str r7, [r1, #0x64]
|
||||
adds r1, #0x6e
|
||||
movs r3, #0
|
||||
mov r8, r3
|
||||
movs r0, #0x96
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r1]
|
||||
mov r0, sl
|
||||
adds r0, #0x6c
|
||||
strh r6, [r0]
|
||||
mov r0, sl
|
||||
str r0, [r7]
|
||||
movs r0, #0x5c
|
||||
movs r1, #0
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #4]
|
||||
movs r0, #0x5d
|
||||
movs r1, #0
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
ldr r4, _080A1054 @ =gRoomControls
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #2
|
||||
adds r5, r2, #0
|
||||
ldrh r3, [r4, #6]
|
||||
adds r0, r5, r3
|
||||
strh r0, [r1, #0x2e]
|
||||
movs r2, #0xe0
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #8]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x32]
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #8]
|
||||
movs r0, #0x5d
|
||||
movs r1, #1
|
||||
bl CreateEnemy
|
||||
adds r1, r0, #0
|
||||
movs r2, #0x98
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #6]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x2e]
|
||||
movs r2, #0xd8
|
||||
lsls r2, r2, #2
|
||||
adds r0, r2, #0
|
||||
ldrh r3, [r4, #8]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r1, #0x32]
|
||||
str r7, [r1, #0x64]
|
||||
str r1, [r7, #0xc]
|
||||
ldr r2, _080A1058 @ =gScreen
|
||||
ldr r0, _080A105C @ =0x00001E07
|
||||
strh r0, [r2, #0x2c]
|
||||
ldrh r0, [r2]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #4
|
||||
adds r1, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
mov r0, sl
|
||||
adds r0, #0x70
|
||||
strh r6, [r0]
|
||||
adds r0, #2
|
||||
strh r6, [r0]
|
||||
adds r0, #2
|
||||
mov r1, r8
|
||||
strb r1, [r0]
|
||||
adds r0, #6
|
||||
strb r1, [r0]
|
||||
subs r0, #4
|
||||
movs r1, #0xc0
|
||||
strh r1, [r0]
|
||||
adds r0, #2
|
||||
strh r1, [r0]
|
||||
ldr r0, _080A1060 @ =gScreenTransition
|
||||
adds r0, #0x39
|
||||
mov r2, sb
|
||||
strb r2, [r0]
|
||||
ldr r2, _080A1064 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xa
|
||||
orrs r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldrh r3, [r4, #6]
|
||||
adds r5, r5, r3
|
||||
strh r5, [r2, #0x16]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
ldrh r4, [r4, #8]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r2, #0x18]
|
||||
_080A1044:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A1050: .4byte gEntCount
|
||||
_080A1054: .4byte gRoomControls
|
||||
_080A1058: .4byte gScreen
|
||||
_080A105C: .4byte 0x00001E07
|
||||
_080A1060: .4byte gScreenTransition
|
||||
_080A1064: .4byte gPlayerState
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
|
||||
+492
-2
@@ -177,10 +177,500 @@ _080352FA:
|
||||
thumb_func_start sub_080352FC
|
||||
sub_080352FC: @ 0x080352FC
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x0352a0, 0x1fc @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
movs r6, #1
|
||||
adds r4, r6, #0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
bne _08035390
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldr r1, [r1, #0xc]
|
||||
adds r1, #0x7d
|
||||
ldrb r2, [r1]
|
||||
mov sb, r0
|
||||
cmp r2, #0
|
||||
beq _080352D0
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
_080352D0:
|
||||
ldr r3, _08035334 @ =gRoomControls
|
||||
movs r0, #0x84
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r3, #6]
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
subs r1, r1, r0
|
||||
adds r1, #4
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
ldrh r0, [r3, #8]
|
||||
ldrh r2, [r5, #0x32]
|
||||
subs r0, r0, r2
|
||||
adds r0, #0x8c
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r1, #8
|
||||
bhi _080352FAJP
|
||||
cmp r0, #8
|
||||
bls _08035338
|
||||
_080352FAJP:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r6, [r0, #2]
|
||||
ldrh r0, [r3, #6]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, [r5, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldrh r1, [r3, #8]
|
||||
adds r1, #0x88
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, [r5, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl sub_080045DA
|
||||
asrs r0, r0, #3
|
||||
strb r0, [r5, #0x15]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
adds r0, r5, #0
|
||||
bl ProcessMovement
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
b _080353FA
|
||||
.align 2, 0
|
||||
_08035334: .4byte gRoomControls
|
||||
_08035338:
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0803537C
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #1
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #2
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #3
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #4
|
||||
bl CreateObjectWithParent
|
||||
strb r6, [r5, #0xb]
|
||||
_0803537C:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r4, [r0, #2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r7, r1, #0
|
||||
b _080353FA
|
||||
_08035390:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, #1]
|
||||
subs r4, r1, #1
|
||||
mov sb, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
cmp r4, #0
|
||||
beq _080353DC
|
||||
mov ip, sb
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
lsls r0, r4, #2
|
||||
subs r6, r0, #4
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
_080353B2:
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r0, #0xc
|
||||
adds r0, r0, r6
|
||||
ldr r3, [r0]
|
||||
ldrb r2, [r3, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
mov r0, sl
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
ands r1, r0
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
subs r6, #4
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _080353B2
|
||||
_080353DC:
|
||||
ldr r1, _08035450 @ =gScreenTransition
|
||||
ldr r0, [r1]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080353F4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #6
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080353F4:
|
||||
ldrb r0, [r7]
|
||||
subs r0, #1
|
||||
strb r0, [r7]
|
||||
_080353FA:
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _0803548C
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xd]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x7c
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE068
|
||||
ldrb r1, [r4]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08035454
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x5f
|
||||
strb r0, [r1]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
b _08035480
|
||||
.align 2, 0
|
||||
_08035450: .4byte gScreenTransition
|
||||
_08035454:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x61
|
||||
strb r0, [r1]
|
||||
ldr r1, _08035498 @ =0x00000109
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf3
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #2
|
||||
bl InitAnimationForceUpdate
|
||||
_08035480:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #8
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_0803548C:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08035498: .4byte 0x00000109
|
||||
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x03527C, 0x1fc @TODO disassemble same as JP
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
movs r6, #1
|
||||
adds r4, r6, #0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
bne _0803536C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldr r1, [r1, #0xc]
|
||||
adds r1, #0x7d
|
||||
ldrb r2, [r1]
|
||||
mov sb, r0
|
||||
cmp r2, #0
|
||||
beq _080352AC
|
||||
subs r0, r2, #1
|
||||
strb r0, [r1]
|
||||
_080352AC:
|
||||
ldr r3, _08035310 @ =gRoomControls
|
||||
movs r0, #0x84
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r3, #6]
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r5, #0x2e]
|
||||
subs r1, r1, r0
|
||||
adds r1, #4
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
ldrh r0, [r3, #8]
|
||||
ldrh r2, [r5, #0x32]
|
||||
subs r0, r0, r2
|
||||
adds r0, #0x8c
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r1, #8
|
||||
bhi _080352D6
|
||||
cmp r0, #8
|
||||
bls _08035314
|
||||
_080352D6:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r6, [r0, #2]
|
||||
ldrh r0, [r3, #6]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
ldr r1, [r5, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldrh r1, [r3, #8]
|
||||
adds r1, #0x88
|
||||
lsls r1, r1, #0x10
|
||||
ldr r2, [r5, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl sub_080045DA
|
||||
asrs r0, r0, #3
|
||||
strb r0, [r5, #0x15]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r5, #0x24]
|
||||
adds r0, r5, #0
|
||||
bl ProcessMovement
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
b _080353D6
|
||||
.align 2, 0
|
||||
_08035310: .4byte gRoomControls
|
||||
_08035314:
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08035358
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #1
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #2
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #3
|
||||
bl CreateObjectWithParent
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #5
|
||||
movs r3, #4
|
||||
bl CreateObjectWithParent
|
||||
strb r6, [r5, #0xb]
|
||||
_08035358:
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
strb r4, [r0, #2]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r7, r1, #0
|
||||
b _080353D6
|
||||
_0803536C:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, #1]
|
||||
subs r4, r1, #1
|
||||
mov sb, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0x79
|
||||
cmp r4, #0
|
||||
beq _080353B8
|
||||
mov ip, sb
|
||||
movs r0, #1
|
||||
mov sl, r0
|
||||
lsls r0, r4, #2
|
||||
subs r6, r0, #4
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
_0803538E:
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r0, #0xc
|
||||
adds r0, r0, r6
|
||||
ldr r3, [r0]
|
||||
ldrb r2, [r3, #0x18]
|
||||
lsls r1, r2, #0x1e
|
||||
lsrs r1, r1, #0x1e
|
||||
mov r0, sl
|
||||
orrs r1, r0
|
||||
mov r0, r8
|
||||
ands r1, r0
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x18]
|
||||
subs r6, #4
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _0803538E
|
||||
_080353B8:
|
||||
ldr r1, _0803542C @ =gScreenTransition
|
||||
ldr r0, [r1]
|
||||
movs r1, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080353D0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #6
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_080353D0:
|
||||
ldrb r0, [r7]
|
||||
subs r0, #1
|
||||
strb r0, [r7]
|
||||
_080353D6:
|
||||
ldrb r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _08035468
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xd]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x7c
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080AE068
|
||||
ldrb r1, [r4]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08035430
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x5f
|
||||
strb r0, [r1]
|
||||
movs r1, #0x84
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xef
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
b _0803545C
|
||||
.align 2, 0
|
||||
_0803542C: .4byte gScreenTransition
|
||||
_08035430:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x61
|
||||
strb r0, [r1]
|
||||
ldr r1, _08035474 @ =0x00000109
|
||||
adds r0, r5, #0
|
||||
bl LoadFixedGFX
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xf3
|
||||
bl sub_08036F14
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, #0xc]
|
||||
movs r1, #2
|
||||
bl InitAnimationForceUpdate
|
||||
_0803545C:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x87
|
||||
movs r2, #8
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
_08035468:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08035474: .4byte 0x00000109
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
|
||||
@@ -206,19 +206,448 @@ _080A3200:
|
||||
// DEMO only functions
|
||||
|
||||
.ifdef DEMO
|
||||
thumb_func_start HandleChooseDemoScreen
|
||||
thumb_func_start HandleChooseDemoScreen
|
||||
HandleChooseDemoScreen: @ 0x080A2E18
|
||||
.incbin "baserom_demo.gba", 0x0a2e18, 0x28 @TODO disassemble
|
||||
push {lr}
|
||||
bl FlushSprites
|
||||
ldr r1, _080A2E38 @ =demoFunctions
|
||||
ldr r0, _080A2E3C @ =gMain
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
bl sub_080A30AC
|
||||
bl sub_080AD918
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2E38: .4byte demoFunctions
|
||||
_080A2E3C: .4byte gMain
|
||||
|
||||
thumb_func_start sub_080A2E40
|
||||
sub_080A2E40: @ 0x080A2E40
|
||||
.incbin "baserom_demo.gba", 0x0a2e40, 0x14c @TODO disassemble
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6}
|
||||
movs r0, #1
|
||||
bl DispReset
|
||||
bl InitSoundPlayingInfo
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x13
|
||||
mov sb, r0
|
||||
movs r1, #0x80
|
||||
bl MemClear
|
||||
bl MessageInitialize
|
||||
bl EraseAllEntities
|
||||
bl sub_080ADD30
|
||||
movs r0, #0
|
||||
bl sub_0801CFA8
|
||||
ldr r0, _080A2F4C @ =gUnk_02032EC0
|
||||
movs r1, #0xed
|
||||
lsls r1, r1, #2
|
||||
bl MemClear
|
||||
ldr r0, _080A2F50 @ =gChooseFileState
|
||||
movs r1, #0x30
|
||||
bl MemClear
|
||||
ldr r0, _080A2F54 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
mov r8, r1
|
||||
bl MemClear
|
||||
bl sub_08053320
|
||||
movs r0, #0xb5
|
||||
bl LoadPaletteGroup
|
||||
movs r0, #0x56
|
||||
bl LoadGfxGroup
|
||||
ldr r5, _080A2F58 @ =0x089FD1B4
|
||||
ldr r4, _080A2F5C @ =0x02017760
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #1
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
adds r4, r4, r0
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
ldr r4, _080A2F60 @ =0x089FD2F4
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #8
|
||||
adds r0, r4, #0
|
||||
mov r1, sb
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
ldr r1, _080A2F64 @ =0x06010000
|
||||
adds r0, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
ldr r4, _080A2F68 @ =0x08A05751
|
||||
ldr r1, _080A2F6C @ =gBG1Buffer
|
||||
adds r0, r4, #0
|
||||
mov r2, r8
|
||||
bl MemCopy
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
adds r4, r4, r1
|
||||
ldr r1, _080A2F70 @ =gBG2Buffer
|
||||
adds r0, r4, #0
|
||||
mov r2, r8
|
||||
bl MemCopy
|
||||
ldr r1, _080A2F74 @ =gScreen
|
||||
movs r2, #0
|
||||
movs r0, #0xf8
|
||||
lsls r0, r0, #5
|
||||
strh r0, [r1]
|
||||
ldr r0, _080A2F78 @ =0x00001C81
|
||||
strh r0, [r1, #0x14]
|
||||
ldr r0, _080A2F7C @ =0x00001D82
|
||||
strh r0, [r1, #0x20]
|
||||
adds r0, #0x89
|
||||
strh r0, [r1, #0x2c]
|
||||
movs r4, #1
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0x1a]
|
||||
strh r0, [r1, #0x26]
|
||||
strh r0, [r1, #0x32]
|
||||
adds r3, r1, #0
|
||||
adds r3, #0x66
|
||||
ldr r0, _080A2F80 @ =0x00001044
|
||||
strh r0, [r3]
|
||||
adds r1, #0x68
|
||||
ldr r0, _080A2F84 @ =0x00000B04
|
||||
strh r0, [r1]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
strb r2, [r0, #4]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
ldr r0, _080A2F88 @ =gMain
|
||||
strb r4, [r0, #3]
|
||||
movs r0, #7
|
||||
bl SoundReq
|
||||
movs r0, #4
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A2F4C: .4byte gUnk_02032EC0
|
||||
_080A2F50: .4byte gChooseFileState
|
||||
_080A2F54: .4byte gBG0Buffer
|
||||
_080A2F58: .4byte gUnk_089FD1B4
|
||||
_080A2F5C: .4byte 0x02017760
|
||||
_080A2F60: .4byte gUnk_089FD2F4
|
||||
_080A2F64: .4byte 0x06010000
|
||||
_080A2F68: .4byte gUnk_08A05751
|
||||
_080A2F6C: .4byte gBG1Buffer
|
||||
_080A2F70: .4byte gBG2Buffer
|
||||
_080A2F74: .4byte gScreen
|
||||
_080A2F78: .4byte 0x00001C81
|
||||
_080A2F7C: .4byte 0x00001D82
|
||||
_080A2F80: .4byte 0x00001044
|
||||
_080A2F84: .4byte 0x00000B04
|
||||
_080A2F88: .4byte gMain
|
||||
|
||||
thumb_func_start sub_080A2F8C
|
||||
|
||||
thumb_func_start sub_080A2F8C
|
||||
sub_080A2F8C: @ 0x080A2F8C
|
||||
.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 @TODO disassemble
|
||||
push {lr}
|
||||
ldr r0, _080A2FA4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A2FCC
|
||||
ldr r2, _080A2FA8 @ =gMain
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
beq _080A2FAC
|
||||
cmp r0, #1
|
||||
beq _080A2FC6
|
||||
b _080A2FCC
|
||||
.align 2, 0
|
||||
_080A2FA4: .4byte gFadeControl
|
||||
_080A2FA8: .4byte gMain
|
||||
_080A2FAC:
|
||||
movs r0, #1
|
||||
strb r0, [r2, #4]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x12
|
||||
strb r0, [r1, #5]
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #2
|
||||
strb r0, [r2, #3]
|
||||
movs r0, #5
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
b _080A2FCC
|
||||
_080A2FC6:
|
||||
movs r0, #2
|
||||
bl InitScreen
|
||||
_080A2FCC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A2FD0
|
||||
|
||||
thumb_func_start sub_080A2FD0
|
||||
sub_080A2FD0: @ 0x080A2FD0
|
||||
.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A2FF4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A30A8
|
||||
movs r5, #0
|
||||
ldr r0, _080A2FF8 @ =gInput
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0x10
|
||||
beq _080A3020
|
||||
cmp r0, #0x10
|
||||
bgt _080A2FFC
|
||||
cmp r0, #1
|
||||
beq _080A303C
|
||||
cmp r0, #8
|
||||
beq _080A303C
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A2FF4: .4byte gFadeControl
|
||||
_080A2FF8: .4byte gInput
|
||||
_080A2FFC:
|
||||
cmp r0, #0x40
|
||||
beq _080A3052
|
||||
cmp r0, #0x40
|
||||
bgt _080A3052
|
||||
cmp r0, #0x20
|
||||
bne _080A3052
|
||||
ldr r1, _080A301C @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
rsbs r5, r5, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xfc
|
||||
b _080A302E
|
||||
.align 2, 0
|
||||
_080A301C: .4byte gChooseFileState
|
||||
_080A3020:
|
||||
ldr r1, _080A3038 @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
adds r1, #0x20
|
||||
movs r0, #4
|
||||
_080A302E:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A3038: .4byte gChooseFileState
|
||||
_080A303C:
|
||||
ldr r0, _080A3090 @ =gChooseFileState
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _080A3052
|
||||
ldr r1, _080A3094 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #3]
|
||||
strb r2, [r1, #4]
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
_080A3052:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0x12
|
||||
ldrb r0, [r4, #4]
|
||||
adds r1, r5, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #4]
|
||||
ldr r5, _080A3090 @ =gChooseFileState
|
||||
movs r0, #0x10
|
||||
ldrsh r2, [r5, r0]
|
||||
ldrb r1, [r4, #4]
|
||||
movs r0, #0x68
|
||||
muls r0, r1, r0
|
||||
cmp r0, r2
|
||||
beq _080A3098
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r0, r2, r0
|
||||
movs r1, #0x9c
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl __modsi3
|
||||
strh r0, [r5, #0x10]
|
||||
movs r0, #1
|
||||
b _080A309A
|
||||
.align 2, 0
|
||||
_080A3090: .4byte gChooseFileState
|
||||
_080A3094: .4byte gMain
|
||||
_080A3098:
|
||||
movs r0, #0
|
||||
_080A309A:
|
||||
strb r0, [r5]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #4]
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
_080A30A8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A30AC
|
||||
sub_080A30AC: @ 0x080A30AC
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
ldr r4, _080A3188 @ =gOamCmd
|
||||
movs r1, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
strh r0, [r4, #4]
|
||||
strh r1, [r4, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A318C @ =gChooseFileState
|
||||
movs r1, #0x10
|
||||
ldrsh r6, [r0, r1]
|
||||
ldr r1, _080A3190 @ =0xFFFFFED8
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r0, _080A3194 @ =0x08A068BF
|
||||
mov r8, r0
|
||||
ldr r1, [r0]
|
||||
mov r5, r8
|
||||
subs r5, #0xc
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xc0
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x58
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x78
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0xe0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xa4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xd8
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A3188: .4byte gOamCmd
|
||||
_080A318C: .4byte gChooseFileState
|
||||
_080A3190: .4byte 0xFFFFFED8
|
||||
_080A3194: .4byte gUnk_08A068BF
|
||||
|
||||
thumb_func_start sub_080A3198
|
||||
sub_080A3198: @ 0x080A3198
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080A31D0 @ =0x08127CC8
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r4, [r0]
|
||||
ldr r1, _080A31D4 @ =gChooseFileState
|
||||
ldrh r0, [r1, #0x12]
|
||||
cmp r0, r4
|
||||
beq _080A31CC
|
||||
strh r4, [r1, #0x12]
|
||||
ldr r5, _080A31D8 @ =something2
|
||||
ldr r0, [r5]
|
||||
subs r0, #0x1e
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #1
|
||||
bl MemClear
|
||||
cmp r4, #0
|
||||
beq _080A31C6DEMO
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F46C
|
||||
_080A31C6DEMO:
|
||||
ldr r1, _080A31DC @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
_080A31CC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A31D0: .4byte gUnk_08127CC8
|
||||
_080A31D4: .4byte gChooseFileState
|
||||
_080A31D8: .4byte gUnk_08127C98
|
||||
_080A31DC: .4byte gScreen
|
||||
|
||||
.endif
|
||||
|
||||
@@ -67,7 +67,107 @@ _0801B4C4: .4byte 0xFFFFE000
|
||||
thumb_func_start sub_0801B4C8
|
||||
sub_0801B4C8: @ 0x0801B4C8
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x01B4F4, 0xc8 @ TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r3, _0801B564 @ =gPlayerState
|
||||
str r4, [r3, #0x2c]
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r0, _0801B568 @ =gUnk_081271CC
|
||||
str r0, [r4, #0x48]
|
||||
movs r0, #0xff
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r2, [r0]
|
||||
ldr r5, _0801B56C @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x60
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
movs r0, #0xb
|
||||
strb r0, [r1]
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r4, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801B550
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
lsrs r0, r0, #0x1f
|
||||
movs r1, #1
|
||||
bics r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0801B550:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x68
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0801B570
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x3c
|
||||
b _0801B578
|
||||
.align 2, 0
|
||||
_0801B564: .4byte gPlayerState
|
||||
_0801B568: .4byte gUnk_081271CC
|
||||
_0801B56C: .4byte gPlayerEntity
|
||||
_0801B570:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r4, #0x24]
|
||||
movs r0, #0x1e
|
||||
_0801B578:
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r3, #0xd]
|
||||
movs r0, #0xd
|
||||
ldrsb r0, [r3, r0]
|
||||
cmp r0, #0
|
||||
blt _0801B588
|
||||
strb r1, [r4, #0x15]
|
||||
b _0801B58E
|
||||
_0801B588:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r4, #0x15]
|
||||
_0801B58E:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0801B5A4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xb]
|
||||
_0801B5A4:
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #3
|
||||
bl sub_080AE008
|
||||
adds r0, r4, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+5
-5
@@ -107,13 +107,13 @@ _0807CA04:
|
||||
str r0, [r2, #0x00]
|
||||
movs r0, #0x01
|
||||
pop {r4, r5, r6, pc}
|
||||
_0807CA38: .4byte 0x02002A40 @TODO ptr
|
||||
_0807CA3C: .4byte 0x0811DFF4 @TODO ptr
|
||||
_0807CA40: .4byte 0x0811EF10 @TODO ptr
|
||||
_0807CA38: .4byte gSave
|
||||
_0807CA3C: .4byte gUnk_0811E470
|
||||
_0807CA40: .4byte demoPointers
|
||||
_0807CA44: .4byte 0x000004B4
|
||||
_0807CA48: .4byte 0xFFFFD8F1
|
||||
_0807CA4C: .4byte 0x02000010 @TODO ptr
|
||||
_0807CA50: .4byte 0x0811DFF9 @TODO ptr
|
||||
_0807CA4C: .4byte gUnk_02000010
|
||||
_0807CA50: .4byte demoUnknown1
|
||||
.else
|
||||
thumb_func_start sub_0807CA18
|
||||
sub_0807CA18: @ 0x0807CA18
|
||||
|
||||
+34
-2
@@ -3165,10 +3165,42 @@ _08043C8C:
|
||||
thumb_func_start sub_08043C98
|
||||
sub_08043C98: @ 0x08043C98
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x043BB0, 0x20 @TODO disassemble
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #0x64]
|
||||
ldr r0, [r0, #0xc]
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x9d
|
||||
beq _08043BC4JP
|
||||
movs r0, #0
|
||||
b _08043BCC
|
||||
_08043BC4JP:
|
||||
adds r0, r1, #0
|
||||
bl sub_08043D08
|
||||
movs r0, #1
|
||||
_08043BCC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x043AC4, 0x20 @TODO same as JP
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #0x64]
|
||||
ldr r0, [r0, #0xc]
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x9d
|
||||
beq _08043AD8
|
||||
movs r0, #0
|
||||
b _08043AE0
|
||||
_08043AD8:
|
||||
adds r0, r1, #0
|
||||
bl sub_08043D08
|
||||
movs r0, #1
|
||||
_08043AE0:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
|
||||
+78
-2
@@ -52,7 +52,57 @@ _0803E0D8: .4byte gUnk_080D0660
|
||||
thumb_func_start sub_0803E0DC
|
||||
sub_0803E0DC: @ 0x0803E0DC
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x03E038, 0x68 @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x80
|
||||
bne _0803E08E
|
||||
movs r0, #5
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r2, [r5, #0x10]
|
||||
movs r1, #0x7f
|
||||
adds r0, r1, #0
|
||||
ands r0, r2
|
||||
strb r0, [r5, #0x10]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
ldrb r2, [r3]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r3]
|
||||
ldr r3, _0803E098 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x10]
|
||||
ands r1, r0
|
||||
strb r1, [r3, #0x10]
|
||||
ldrb r2, [r5, #0x1b]
|
||||
lsrs r2, r2, #6
|
||||
lsls r2, r2, #6
|
||||
ldrb r4, [r3, #0x1b]
|
||||
movs r1, #0x3f
|
||||
adds r0, r1, #0
|
||||
ands r0, r4
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x1b]
|
||||
ldrb r0, [r5, #0x19]
|
||||
lsrs r0, r0, #6
|
||||
lsls r0, r0, #6
|
||||
ldrb r2, [r3, #0x19]
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r3, #0x19]
|
||||
adds r0, r5, #0
|
||||
bl sub_0803E444
|
||||
_0803E08E:
|
||||
ldr r1, _0803E09C @ =gUnk_080D0648
|
||||
adds r0, r5, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0803E098: .4byte gPlayerEntity
|
||||
_0803E09C: .4byte gUnk_080D0648
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
@@ -560,7 +610,33 @@ _0803E49E:
|
||||
thumb_func_start sub_0803E4A0
|
||||
sub_0803E4A0: @ 0x0803E4A0
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x03e3b8, 0x30 @TODO disassemble
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0803E3CCEU @ =gScreenTransition
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0803E3D0EU
|
||||
movs r0, #1
|
||||
b _0803E3E6
|
||||
.align 2, 0
|
||||
_0803E3CCEU: .4byte gScreenTransition
|
||||
_0803E3D0EU:
|
||||
ldr r0, [r1, #0x50]
|
||||
cmp r0, #0
|
||||
bne _0803E3DA
|
||||
movs r0, #0
|
||||
b _0803E3E6
|
||||
_0803E3DA:
|
||||
movs r1, #0
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _0803E3E4EU
|
||||
movs r1, #1
|
||||
_0803E3E4EU:
|
||||
adds r0, r1, #0
|
||||
_0803E3E6:
|
||||
pop {pc}
|
||||
.else
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
|
||||
+110
-3
@@ -65,10 +65,28 @@ _0804139C: .4byte gUnk_080D0E1C
|
||||
thumb_func_start sub_080413A0
|
||||
sub_080413A0: @ 0x080413A0
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x041344, 0x18 @TODO disassemble
|
||||
push {lr}
|
||||
ldr r2, _08041358 @ =gUnk_080D0E2C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08041358: .4byte gUnk_080D0E2C
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x041274, 0x18 @TODO same as JP
|
||||
push {lr}
|
||||
ldr r2, _08041288 @ =gUnk_080D0E2C
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08041288: .4byte gUnk_080D0E2C
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
@@ -1126,7 +1144,96 @@ _08041BE4: .4byte gUnk_080D0E68
|
||||
thumb_func_start sub_08041BE8
|
||||
sub_08041BE8: @ 0x08041BE8
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x041AB4, 0xCA @TODO disassemble
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
bl sub_08079F8C
|
||||
cmp r0, #0
|
||||
beq _08041B72
|
||||
movs r5, #0
|
||||
movs r0, #1
|
||||
strb r0, [r6, #0xd]
|
||||
movs r0, #0x78
|
||||
strb r0, [r6, #0xe]
|
||||
ldrb r1, [r6, #0x11]
|
||||
movs r4, #0x10
|
||||
rsbs r4, r4, #0
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
mov r8, r1
|
||||
mov r1, r8
|
||||
orrs r0, r1
|
||||
strb r0, [r6, #0x11]
|
||||
adds r0, r6, #0
|
||||
movs r1, #0xa
|
||||
bl InitAnimationForceUpdate
|
||||
ldr r0, [r6, #0x64]
|
||||
ldr r7, [r0, #4]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #4]
|
||||
ldr r7, [r0, #8]
|
||||
ldrb r0, [r7, #0x11]
|
||||
ands r4, r0
|
||||
mov r0, r8
|
||||
orrs r4, r0
|
||||
strb r4, [r7, #0x11]
|
||||
adds r0, r7, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _08041B78 @ =0x000001F5
|
||||
adds r0, r7, #0
|
||||
bl LoadFixedGFX
|
||||
ldr r1, _08041B7C @ =0x0000016B
|
||||
adds r0, r7, #0
|
||||
bl sub_0801D2B4
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x1a
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r6, #0x64]
|
||||
ldr r7, [r0, #0xc]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0xc]
|
||||
ldr r7, [r0, #0x1c]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x1c]
|
||||
ldr r7, [r0, #0x20]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x20]
|
||||
ldr r7, [r0, #0x24]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x24]
|
||||
ldr r7, [r0, #0x28]
|
||||
str r5, [r7, #0x64]
|
||||
adds r0, r7, #0
|
||||
bl DeleteEntity
|
||||
ldr r0, [r6, #0x64]
|
||||
str r5, [r0, #0x28]
|
||||
movs r0, #2
|
||||
bl sub_08078A90
|
||||
_08041B72:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08041B78: .4byte 0x000001F5
|
||||
_08041B7C: .4byte 0x0000016B
|
||||
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
|
||||
+158
-1
@@ -10,7 +10,164 @@
|
||||
thumb_func_start WaterfallOpening
|
||||
WaterfallOpening: @ 0x0809FF68
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x09F7C8, 0x000013C @TODO disassemble
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xc]
|
||||
cmp r1, #0
|
||||
bne _0809F802
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0xc0
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r0, [r2]
|
||||
movs r1, #7
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _0809F824 @ =gUnk_08124868
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0x78
|
||||
strh r0, [r1]
|
||||
_0809F802:
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
beq _0809F8BC
|
||||
movs r0, #0xff
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
beq _0809F8FE
|
||||
ldrb r2, [r4, #0xd]
|
||||
cmp r2, #1
|
||||
beq _0809F85A
|
||||
cmp r2, #1
|
||||
bgt _0809F828
|
||||
cmp r2, #0
|
||||
beq _0809F82E
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F824: .4byte gUnk_08124868
|
||||
_0809F828:
|
||||
cmp r2, #2
|
||||
beq _0809F88C
|
||||
b _0809F8AE
|
||||
_0809F82E:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x20
|
||||
strh r0, [r1]
|
||||
movs r1, #1
|
||||
strb r1, [r4, #0xe]
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0xf]
|
||||
strb r1, [r4, #0xd]
|
||||
strb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
movs r1, #0xc6
|
||||
lsls r1, r1, #1
|
||||
b _0809F87E
|
||||
_0809F85A:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #0x2d
|
||||
strh r0, [r1]
|
||||
strb r2, [r4, #0xe]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xd]
|
||||
strb r0, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _0809F888 @ =0x0000018D
|
||||
_0809F87E:
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
b _0809F8AE
|
||||
.align 2, 0
|
||||
_0809F888: .4byte 0x0000018D
|
||||
_0809F88C:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0809F8AE
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r1, _0809F8B8 @ =gChooseFileState
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #0x73
|
||||
bl SoundReq
|
||||
_0809F8AE:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
b _0809F8FE
|
||||
.align 2, 0
|
||||
_0809F8B8: .4byte gChooseFileState
|
||||
_0809F8BC:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
beq _0809F8F8
|
||||
cmp r0, #2
|
||||
bne _0809F8F8
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
bne _0809F8F8
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r4, r0]
|
||||
ldr r2, _0809F900 @ =gRoomControls
|
||||
ldrh r0, [r2, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r1, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0x39
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0809F8F8:
|
||||
adds r0, r4, #0
|
||||
bl sub_080A00B0
|
||||
_0809F8FE:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0809F900: .4byte gRoomControls
|
||||
|
||||
.else
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
+223
-2
@@ -116,10 +116,231 @@ _080A0FFE:
|
||||
thumb_func_start sub_080A1000
|
||||
sub_080A1000: @ 0x080A1000
|
||||
.ifdef JP
|
||||
.incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 @TODO disassemble
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0DF2
|
||||
cmp r2, #1
|
||||
bgt _080A0DDC
|
||||
cmp r2, #0
|
||||
beq _080A0DE6
|
||||
b _080A0E50
|
||||
_080A0DDC:
|
||||
cmp r2, #2
|
||||
beq _080A0E00
|
||||
cmp r2, #3
|
||||
beq _080A0E2C
|
||||
b _080A0E50
|
||||
_080A0DE6:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0E8C
|
||||
_080A0DF2:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
b _080A0E38
|
||||
_080A0E00:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E1E
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0E8C
|
||||
_080A0E1E:
|
||||
ldr r0, _080A0E28 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A0E7A
|
||||
.align 2, 0
|
||||
_080A0E28: .4byte 0x030010A0
|
||||
_080A0E2C:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E44
|
||||
_080A0E38:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0E8C
|
||||
_080A0E44:
|
||||
ldr r0, _080A0E4C @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0E7C
|
||||
.align 2, 0
|
||||
_080A0E4C: .4byte 0x030010A0
|
||||
_080A0E50:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0E74
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A0E70 @ =0x0813AA18
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0E8C
|
||||
.align 2, 0
|
||||
_080A0E70: .4byte 0x0813AA18
|
||||
_080A0E74:
|
||||
ldr r0, _080A0E90 @ =0x030010A0
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A0E7A:
|
||||
ands r0, r1
|
||||
_080A0E7C:
|
||||
cmp r0, #0
|
||||
bne _080A0E8C
|
||||
ldr r0, _080A0E94 @ =0x03001160
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0E8C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0E90: .4byte 0x030010A0
|
||||
_080A0E94: .4byte 0x03001160
|
||||
.else
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0x0A084C, 0xd0 @TODO same as JP
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r2, [r1, #0xd]
|
||||
cmp r2, #1
|
||||
beq _080A0876
|
||||
cmp r2, #1
|
||||
bgt _080A0860
|
||||
cmp r2, #0
|
||||
beq _080A086A
|
||||
b _080A08D4
|
||||
_080A0860:
|
||||
cmp r2, #2
|
||||
beq _080A0884
|
||||
cmp r2, #3
|
||||
beq _080A08B0
|
||||
b _080A08D4
|
||||
_080A086A:
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080A0910
|
||||
_080A0876:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
b _080A08BC
|
||||
_080A0884:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08A2
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
adds r0, #0xf5
|
||||
bl SoundReq
|
||||
b _080A0910
|
||||
_080A08A2:
|
||||
ldr r0, _080A08AC @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
b _080A08FE
|
||||
.align 2, 0
|
||||
_080A08AC: .4byte gScreenTransition
|
||||
_080A08B0:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08C8
|
||||
_080A08BC:
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
movs r0, #0x1e
|
||||
strb r0, [r1, #0xe]
|
||||
b _080A0910
|
||||
_080A08C8:
|
||||
ldr r0, _080A08D0 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
ands r0, r2
|
||||
b _080A0900
|
||||
.align 2, 0
|
||||
_080A08D0: .4byte gScreenTransition
|
||||
_080A08D4:
|
||||
ldrb r0, [r1, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080A08F8
|
||||
ldrb r1, [r1, #0xb]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080A08F4 @ =gUnk_0813ADEC
|
||||
adds r0, r0, r1
|
||||
bl DoExitTransition
|
||||
b _080A0910
|
||||
.align 2, 0
|
||||
_080A08F4: .4byte gUnk_0813ADEC
|
||||
_080A08F8:
|
||||
ldr r0, _080A0914 @ =gScreenTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
_080A08FE:
|
||||
ands r0, r1
|
||||
_080A0900:
|
||||
cmp r0, #0
|
||||
bne _080A0910
|
||||
ldr r0, _080A0918 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r1, #2
|
||||
movs r2, #6
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x14]
|
||||
_080A0910:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A0914: .4byte gScreenTransition
|
||||
_080A0918: .4byte gPlayerEntity
|
||||
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
|
||||
@@ -13,13 +13,15 @@ gUnk_08127278:: @ 08127278
|
||||
|
||||
.ifdef DEMO
|
||||
@ TODO choose demo screen
|
||||
something:
|
||||
demoFunctions::
|
||||
.4byte sub_080A2E40
|
||||
.4byte sub_080A2FD0
|
||||
.4byte sub_080A2F8C
|
||||
|
||||
something2::
|
||||
.incbin "baserom_demo.gba", 0x127c98, 0x38
|
||||
gUnk_08127C98::
|
||||
.incbin "baserom_demo.gba", 0x127c98, 0x30
|
||||
gUnk_08127CC8::
|
||||
.incbin "baserom_demo.gba", 0x127CC8, 0x8
|
||||
.endif
|
||||
|
||||
|
||||
|
||||
@@ -420,7 +420,7 @@ gUnk_08109230:: @ 08109230
|
||||
gUnk_08109244:: @ 08109244
|
||||
.incbin "baserom.gba", 0x109244, 0x0000004
|
||||
|
||||
gUnk_08109248:: @ 08109248 TODO might be a pointer array?
|
||||
gUnk_08109248:: @ 08109248
|
||||
.4byte gUnk_08692F60
|
||||
.4byte gUnk_08692F60
|
||||
.4byte gUnk_086978E0
|
||||
|
||||
@@ -2237,7 +2237,6 @@ ENUM_12AED0_LV1_CLEAR_MES:
|
||||
.4byte gUnk_0812AC84
|
||||
.endif
|
||||
|
||||
.ifndef JP
|
||||
gUnk_0812B604:: @ 0812B604
|
||||
.incbin "baserom.gba", 0x12B604, 0x0000008
|
||||
|
||||
@@ -2249,12 +2248,6 @@ gUnk_0812B614:: @ 0812B614
|
||||
|
||||
gUnk_0812B61C:: @ 0812B61C
|
||||
.incbin "baserom.gba", 0x12B61C, 0x0000008
|
||||
.else
|
||||
gUnk_0812B61C::
|
||||
.space 0x3c
|
||||
.endif
|
||||
|
||||
|
||||
|
||||
|
||||
gUnk_0812B624:: @ 0812B624
|
||||
|
||||
@@ -3955,8 +3955,6 @@ gAreaRoomMap_TempleOfDroplets_31:: @ 08105EAC
|
||||
map_bottom 0x20A614+0x154, 0x1BA, 1
|
||||
map_top 0x20A64C+0x1CC, 0x1BA, 1, 1
|
||||
.else
|
||||
@nocheckin map_bottom 0x20A614, 0x186, 1
|
||||
@nocheckin map_top 0x20A64C, 0x186, 1, 1
|
||||
map_bottom 0x20A784, 0x1BA, 1
|
||||
map_top 0x20A834, 0x1BA, 1, 1
|
||||
.endif
|
||||
|
||||
+91
-8
@@ -3840,7 +3840,32 @@ bgmDarkHyruleCastle:: @ 08DD6BFC
|
||||
|
||||
bgmSecretCastleEntrance_track0:: @ 08DD6C20
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEE2278, 0x0000073 @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEE2278, 0x000000B
|
||||
gUnk_08EE2283::
|
||||
.incbin "baserom_eu.gba", 0xEE2283, 0x000000D
|
||||
gUnk_08EE2290::
|
||||
.incbin "baserom_eu.gba", 0xEE2290, 0x000000F
|
||||
.4byte gUnk_08EE2290
|
||||
.byte 0xB3
|
||||
.4byte gUnk_08EE2290
|
||||
.byte 0xB3
|
||||
.4byte gUnk_08EE2290
|
||||
.byte 0xB3
|
||||
.4byte gUnk_08EE2290
|
||||
.incbin "baserom_eu.gba", 0xEE22B2, 0x0000010
|
||||
.4byte gUnk_08EE2290
|
||||
gUnk_08EE22C6::
|
||||
.incbin "baserom_eu.gba", 0xEE22C6, 0x000000F
|
||||
.4byte gUnk_08EE22C6
|
||||
.byte 0xB3
|
||||
.4byte gUnk_08EE22C6
|
||||
.byte 0xB3
|
||||
.4byte gUnk_08EE22C6
|
||||
.byte 0xBB
|
||||
.byte 0x3C
|
||||
.byte 0xB2
|
||||
.4byte gUnk_08EE2283
|
||||
.byte 0xB1
|
||||
.else
|
||||
.incbin "baserom.gba", 0xDD6C20, 0x000000B
|
||||
gUnk_08DD6C2B:: @ 08DD6C2B
|
||||
@@ -3865,7 +3890,32 @@ gUnk_08DD6C85:: @ 08DD6C85
|
||||
|
||||
bgmSecretCastleEntrance_track1:: @ 08DD6CB6
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEE22EB, 0x0000063 @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEE22EB, 0x0000007
|
||||
gUnk_08EE22F2:: @ 08EE22F2
|
||||
.incbin "baserom_eu.gba", 0xEE22F2, 0x000000D
|
||||
gUnk_08EE22FF:: @ 08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE22FF, 0x000000F
|
||||
.4byte gUnk_08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE2312, 0x0000001
|
||||
.4byte gUnk_08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE2317, 0x0000001
|
||||
.4byte gUnk_08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE231C, 0x0000001
|
||||
.4byte gUnk_08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE2321, 0x0000001
|
||||
.4byte gUnk_08EE22FF
|
||||
.incbin "baserom_eu.gba", 0xEE2326, 0x0000001
|
||||
.4byte gUnk_08EE22FF
|
||||
gUnk_08EE232B:: @ 08EE232B
|
||||
.incbin "baserom_eu.gba", 0xEE232B, 0x000000F
|
||||
.4byte gUnk_08EE232B
|
||||
.incbin "baserom_eu.gba", 0xEE233E, 0x0000001
|
||||
.4byte gUnk_08EE232B
|
||||
.incbin "baserom_eu.gba", 0xEE2343, 0x0000001
|
||||
.4byte gUnk_08EE232B
|
||||
.incbin "baserom_eu.gba", 0xEE2348, 0x0000001
|
||||
.4byte gUnk_08EE22F2
|
||||
.incbin "baserom_eu.gba", 0xEE234D, 0x0000001
|
||||
.else
|
||||
.incbin "baserom.gba", 0xDD6CB6, 0x0000007
|
||||
gUnk_08DD6CBD:: @ 08DD6CBD
|
||||
@@ -3980,7 +4030,11 @@ gUnk_08DD6ECD:: @ 08DD6ECD
|
||||
|
||||
bgmSecretCastleEntrance_track7:: @ 08DD6F8A
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEE259D, 0x000003B @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEE259D, 0x0000003
|
||||
gUnk_08EE25A0:: @ 08EE25A0
|
||||
.incbin "baserom_eu.gba", 0xEE25A0, 0x0000030
|
||||
.4byte gUnk_08EE25A0
|
||||
.incbin "baserom_eu.gba", 0xEE25D4, 0x0000004
|
||||
.else
|
||||
.incbin "baserom.gba", 0xDD6F8A, 0x0000003
|
||||
gUnk_08DD6F8D:: @ 08DD6F8D
|
||||
@@ -6058,7 +6112,11 @@ bgmDiggingCave:: @ 08DDC394
|
||||
|
||||
bgmSwiftbladeDojo_track0:: @ 08DDC3B4
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEE79C8, 0x000002B @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEE79C8, 0x000000B
|
||||
gUnk_08EE79D3:: @ 08EE79D3
|
||||
.incbin "baserom_eu.gba", 0xEE79D3, 0x000001B
|
||||
.4byte gUnk_08EE79D3
|
||||
.incbin "baserom_eu.gba", 0xEE79F2, 0x0000001
|
||||
.else
|
||||
.incbin "baserom.gba", 0xDDC3B4, 0x000000B
|
||||
gUnk_08DDC3BF:: @ 08DDC3BF
|
||||
@@ -6068,7 +6126,12 @@ gUnk_08DDC3BF:: @ 08DDC3BF
|
||||
.endif
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEE79F3, 0x000009D @TODO pointers inside
|
||||
gUnk_08EE79F3:: @ 08EE79F3
|
||||
.incbin "baserom_eu.gba", 0xEE79F3, 0x0000007
|
||||
gUnk_08EE79FA:: @ 08EE79FA
|
||||
.incbin "baserom_eu.gba", 0xEE79FA, 0x000008E
|
||||
.4byte gUnk_08EE79FA
|
||||
.incbin "baserom_eu.gba", 0xEE7A8C, 0x0000004
|
||||
.else
|
||||
bgmSwiftbladeDojo_track1:: @ 08DDC3E2
|
||||
.incbin "baserom.gba", 0xDDC3E2, 0x0000007
|
||||
@@ -6092,7 +6155,10 @@ gUnk_08DDC423:: @ 08DDC423
|
||||
|
||||
bgmSwiftbladeDojo:: @ 08DDC4B4
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba",0xEE7A90, 0x0000010 @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEE7A90, 0x0000004
|
||||
.4byte gUnk_08A0CF44
|
||||
.4byte bgmSwiftbladeDojo_track0
|
||||
.4byte gUnk_08EE79F3
|
||||
.else
|
||||
sound_header 4 0 0 0x9e gUnk_08A0CF44 bgmSwiftbladeDojo_track0 bgmSwiftbladeDojo_track1 bgmSwiftbladeDojo_track2 bgmSwiftbladeDojo_track3
|
||||
.endif
|
||||
@@ -7142,7 +7208,20 @@ bgmWindRuins:: @ 08DDEC38
|
||||
sound_header 7 0 0 0xa8 gUnk_08A0F014 bgmWindRuins_track0 bgmWindRuins_track1 bgmWindRuins_track2 bgmWindRuins_track3 bgmWindRuins_track4 bgmWindRuins_track5 bgmWindRuins_track6
|
||||
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEEA230, 0x00000DC @TODO pointers inside
|
||||
gUnk_08EEA230:: @ 08EEA230
|
||||
.incbin "baserom_eu.gba", 0xEEA230, 0x000000E
|
||||
gUnk_08EEA23E:: @ 08EEA23E
|
||||
.incbin "baserom_eu.gba", 0xEEA23E, 0x000001B
|
||||
.4byte gUnk_08EEA23E
|
||||
.incbin "baserom_eu.gba", 0xEEA25D, 0x0000001
|
||||
gUnk_08EEA25E:: @ 08EEA25E
|
||||
.incbin "baserom_eu.gba", 0xEEA25E, 0x000000B
|
||||
gUnk_08EEA269:: @ 08EEA269
|
||||
.incbin "baserom_eu.gba", 0xEEA269, 0x0000010
|
||||
gUnk_08EEA279:: @ 08EEA279
|
||||
.incbin "baserom_eu.gba", 0xEEA279, 0x000008E
|
||||
.4byte gUnk_08EEA279
|
||||
.incbin "baserom_eu.gba", 0xEEA30B, 0x0000001
|
||||
.else
|
||||
bgmLearnScroll_track0:: @ 08DDEC5C
|
||||
.incbin "baserom.gba", 0xDDEC5C, 0x000000C
|
||||
@@ -7174,7 +7253,11 @@ gUnk_08DDECDA:: @ 08DDECDA
|
||||
|
||||
bgmLearnScroll:: @ 08DDED6C
|
||||
.ifdef EU
|
||||
.incbin "baserom_eu.gba", 0xEEA30C, 0x0000014 @TODO pointers inside
|
||||
.incbin "baserom_eu.gba", 0xEEA30C, 0x0000004
|
||||
.4byte gUnk_08A0CF44
|
||||
.4byte gUnk_08EEA230
|
||||
.4byte gUnk_08EEA25E
|
||||
.4byte gUnk_08EEA269
|
||||
.else
|
||||
sound_header 5 0 0 0x9e gUnk_08A0CF44 bgmLearnScroll_track0 bgmLearnScroll_track1 bgmLearnScroll_track2 bgmLearnScroll_track3 bgmLearnScroll_track4
|
||||
.endif
|
||||
|
||||
+9
-1
@@ -15,5 +15,13 @@ gUnk_089FB780:: @ 089FB780
|
||||
.endif
|
||||
@ More sprites in demo
|
||||
.ifdef DEMO
|
||||
.incbin "baserom_demo.gba", 0x9FD0F4, 0x984c
|
||||
.incbin "baserom_demo.gba", 0x9FD0F4, 0xC0
|
||||
gUnk_089FD1B4::
|
||||
.incbin "baserom_demo.gba", 0x9FD1B4, 0x140
|
||||
gUnk_089FD2F4::
|
||||
.incbin "baserom_demo.gba", 0x9FD2F4, 0x845D
|
||||
gUnk_08A05751::
|
||||
.incbin "baserom_demo.gba", 0xA05751, 0x116e
|
||||
gUnk_08A068BF::
|
||||
.incbin "baserom_demo.gba", 0xA068BF, 0x81
|
||||
.endif
|
||||
|
||||
@@ -32,6 +32,7 @@ SECTIONS {
|
||||
. = 0x00001A40; gBG3Buffer = .;
|
||||
. = 0x00001B40; gUnk_02001B40 = .;
|
||||
. = 0x00002A40; gSave = .;
|
||||
. = 0x00002A40; gUnk_02002A40 = .;
|
||||
. = 0x00002AA0; gUnk_02002AA0 = .;
|
||||
. = 0x00002AC0; gUnk_02002AC0 = .;
|
||||
. = 0x00002AC8; gUnk_02002AC8 = .;
|
||||
@@ -192,6 +193,7 @@ SECTIONS {
|
||||
. = 0x00001010; gOamCmd = .;
|
||||
. = 0x00001020; gUnk_03001020 = .;
|
||||
. = 0x000010A0; gScreenTransition = .;
|
||||
. = 0x000010A0; gUnk_030010A0 = .;
|
||||
. = 0x000010AC; gUnk_030010AC = .;
|
||||
. = 0x000010EC; gUnk_030010EC = .;
|
||||
. = 0x0000110C; gUnk_0300110C = .;
|
||||
@@ -283,10 +285,14 @@ SECTIONS {
|
||||
#ifdef EU
|
||||
. = 0x000065AC; gUnk_03006580 = .;
|
||||
. = 0x000065C8; gUnk_0300659C = .;
|
||||
. = 0x0000689C; gUnk_0300689C = .;
|
||||
. = 0x000068F0; gUnk_030068F0 = .;
|
||||
. = 0x00006954; gUnk_03006954 = .;
|
||||
. = 0x000069AC; gUnk_030067E4 = .;
|
||||
. = 0x00006A94; gUnk_030068CC = .;
|
||||
. = 0x00006B14; gUnk_0300694C = .;
|
||||
. = 0x00006B24; gUnk_0300695C = .;
|
||||
. = 0x00006C14; gUnk_03006C14 = .;
|
||||
#else
|
||||
. = 0x00006580; gUnk_03006580 = .;
|
||||
. = 0x0000659C; gUnk_0300659C = .;
|
||||
|
||||
+1
-3
@@ -158,9 +158,7 @@ void PlayerUpdate(Entity* this) {
|
||||
|
||||
// Responsible for some life things like low health beep and initiating the death sequence
|
||||
#ifdef EU
|
||||
NAKED void HandlePlayerLife(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x017038, 0x1f0"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/HandlePlayerLife.inc", void HandlePlayerLife(Entity* this));
|
||||
#else
|
||||
void HandlePlayerLife(Entity* this) {
|
||||
u32 temp;
|
||||
|
||||
+1
-3
@@ -173,9 +173,7 @@ void sub_08054570(void) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED u32 sub_0805457C(u32 arg0, u32 arg1) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x054114, 0x1c0"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1));
|
||||
#else
|
||||
ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1));
|
||||
#endif
|
||||
|
||||
+6
-18
@@ -189,9 +189,7 @@ void sub_0802AA40(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0802AAC0(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02aa94, 0xc8"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AAC0.inc", void sub_0802AAC0(Entity* this))
|
||||
#else
|
||||
void sub_0802AAC0(Entity* this) {
|
||||
sub_0802AC40(this);
|
||||
@@ -223,9 +221,7 @@ void sub_0802AAC0(Entity* this) {
|
||||
#endif
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0802AB40(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02ab5c, 0x60"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AB40.inc", void sub_0802AB40(Entity* this));
|
||||
#else
|
||||
void sub_0802AB40(Entity* this) {
|
||||
sub_0802AC40(this);
|
||||
@@ -280,9 +276,7 @@ void sub_0802AC08(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0802AC40(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02ABF4, 0x54"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this))
|
||||
#else
|
||||
void sub_0802AC40(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
@@ -364,9 +358,7 @@ void sub_0802AD54(Entity* this) {
|
||||
|
||||
#ifdef EU
|
||||
// TODO regalloc in EU version
|
||||
NAKED void sub_0802ADDC(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802ADDC.inc", void sub_0802ADDC(Entity* this))
|
||||
#else
|
||||
void sub_0802ADDC(Entity* this) {
|
||||
Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2);
|
||||
@@ -400,9 +392,7 @@ void sub_0802AE24(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0802AE68(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02add8, 0x94"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AE68.inc", void sub_0802AE68(Entity* this))
|
||||
#else
|
||||
void sub_0802AE68(Entity* this) {
|
||||
Entity* ent = sub_0802B250(this);
|
||||
@@ -579,9 +569,7 @@ void sub_0802B1A0(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0802B1BC(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x02b16c, 0x84"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802B1BC.inc", void sub_0802B1BC(Entity* this))
|
||||
#else
|
||||
void sub_0802B1BC(Entity* this) {
|
||||
Entity* ent;
|
||||
|
||||
+1
-3
@@ -333,9 +333,7 @@ void sub_0801F3AC(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0801F428(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x01F428, 0x60"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0801F428.inc", void sub_0801F428(Entity* this))
|
||||
#else
|
||||
void sub_0801F428(Entity* this) {
|
||||
sub_0804A720(this);
|
||||
|
||||
@@ -97,9 +97,7 @@ END_NONMATCH
|
||||
extern void sub_08080930();
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr))
|
||||
#else
|
||||
void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
u16 tmp;
|
||||
|
||||
@@ -56,9 +56,7 @@ const u32 gUnk_081080A4[0x50] = {
|
||||
const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
|
||||
|
||||
#ifdef EU
|
||||
NAKED void Manager7_Main(Manager7* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/Manager7_Main.inc", void Manager7_Main(Manager7* this))
|
||||
#else
|
||||
void Manager7_Main(Manager7* this) {
|
||||
u32 tmp;
|
||||
@@ -133,9 +131,7 @@ void sub_08057E64() {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_08057E7C(u32 unk1) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_08057E7C.inc", void sub_08057E7C(u32 unk1))
|
||||
#else
|
||||
void sub_08057E7C(u32 unk1) {
|
||||
u32 tmp;
|
||||
|
||||
@@ -26,9 +26,7 @@ ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc",
|
||||
void sub_0806E964(Entity* this, ScriptExecutionContext* context))
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_0806EABC(Entity* this, u32 param) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0806EABC.inc", void sub_0806EABC(Entity* this, u32 param))
|
||||
#else
|
||||
void sub_0806EABC(Entity* this, u32 param) {
|
||||
sub_08050384();
|
||||
|
||||
@@ -124,9 +124,7 @@ void sub_080A9FD0(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
NAKED void sub_080AA044(Entity* this) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/sub_080AA044.inc", void sub_080AA044(Entity* this))
|
||||
#else
|
||||
void sub_080AA044(Entity* this) {
|
||||
u32 uVar1;
|
||||
|
||||
+12
-2
@@ -44,7 +44,8 @@ const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500,
|
||||
const char gUnk_0811E470[4] = "LINK";
|
||||
|
||||
#ifdef DEMO
|
||||
const u8 unknown[] = { 0x0, 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 };
|
||||
const u8 demoUnknown0 = 0x0;
|
||||
const u8 demoUnknown1[] = { 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 };
|
||||
#else
|
||||
const u8 padding[2] = { 0, 0 };
|
||||
#endif
|
||||
@@ -52,7 +53,16 @@ const u8 padding[2] = { 0, 0 };
|
||||
static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone };
|
||||
|
||||
#ifdef DEMO
|
||||
asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO disassemble
|
||||
asm("demoPointer1: .incbin \"baserom_demo.gba\", 0x11e010, 0x500");
|
||||
asm("demoPointer2: .incbin \"baserom_demo.gba\", 0x11e510, 0x500");
|
||||
asm("demoPointer3: .incbin \"baserom_demo.gba\", 0x11ea10, 0x500");
|
||||
|
||||
extern const u32 demoPointer1;
|
||||
extern const u32 demoPointer2;
|
||||
extern const u32 demoPointer3;
|
||||
|
||||
const u32 demoPointers[] = { (u32)&demoPointer1, (u32)&demoPointer2, (u32)&demoPointer3 };
|
||||
|
||||
#else
|
||||
|
||||
#if defined(JP) || defined(EU)
|
||||
|
||||
+1
-3
@@ -477,9 +477,7 @@ extern u8 gUnk_08107C14;
|
||||
extern u8 gUnk_08107C0F;
|
||||
|
||||
#ifdef EU
|
||||
NAKED void TextBoxHandlerQuestion(CurrentTextBox* ctb) {
|
||||
asm(".incbin \"baserom_eu.gba\", 0x05654c, 0x138"); // TODO disassemble
|
||||
}
|
||||
ASM_FUNC("asm/non_matching/eu/TextBoxHandlerQuestion.inc", void TextBoxHandlerQuestion(CurrentTextBox* ctb))
|
||||
#else
|
||||
|
||||
void TextBoxHandlerQuestion(CurrentTextBox* ctb) {
|
||||
|
||||
Reference in New Issue
Block a user