through sub_815E5C4
This commit is contained in:
+55
-488
@@ -5,494 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_815E218
|
|
||||||
sub_815E218: @ 815E218
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _0815E260 @ =gMapHeader
|
|
||||||
ldrh r0, [r0, 0x12]
|
|
||||||
mov r12, r0
|
|
||||||
ldr r3, _0815E264 @ =0xfffffed6
|
|
||||||
add r3, r12
|
|
||||||
ldr r0, _0815E268 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, _0815E26C @ =0x00003d34
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
movs r0, 0xF5
|
|
||||||
lsls r0, 6
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
cmp r3, r1
|
|
||||||
bne _0815E27C
|
|
||||||
ldr r3, _0815E270 @ =0xfffffed7
|
|
||||||
add r3, r12
|
|
||||||
ldr r0, _0815E274 @ =gUnknown_203F458
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrb r2, [r1]
|
|
||||||
lsls r0, r2, 5
|
|
||||||
subs r0, r2
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1, 0xD]
|
|
||||||
cmp r3, r1
|
|
||||||
bgt _0815E27C
|
|
||||||
ldr r1, _0815E278 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0
|
|
||||||
b _0815E280
|
|
||||||
.align 2, 0
|
|
||||||
_0815E260: .4byte gMapHeader
|
|
||||||
_0815E264: .4byte 0xfffffed6
|
|
||||||
_0815E268: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E26C: .4byte 0x00003d34
|
|
||||||
_0815E270: .4byte 0xfffffed7
|
|
||||||
_0815E274: .4byte gUnknown_203F458
|
|
||||||
_0815E278: .4byte gSpecialVar_Result
|
|
||||||
_0815E27C:
|
|
||||||
ldr r1, _0815E288 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x1
|
|
||||||
_0815E280:
|
|
||||||
strh r0, [r1]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E288: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end sub_815E218
|
|
||||||
|
|
||||||
thumb_func_start sub_815E28C
|
|
||||||
sub_815E28C: @ 815E28C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r8
|
|
||||||
push {r6}
|
|
||||||
ldr r4, _0815E2D0 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r5, _0815E2D4 @ =0x00003d34
|
|
||||||
adds r1, r0, r5
|
|
||||||
ldr r0, _0815E2D8 @ =gSpecialVar_0x8005
|
|
||||||
ldrh r0, [r0]
|
|
||||||
str r0, [r1]
|
|
||||||
cmp r0, 0x3
|
|
||||||
bls _0815E2A8
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r1]
|
|
||||||
_0815E2A8:
|
|
||||||
bl sub_815EC0C
|
|
||||||
bl sub_815D834
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0815E2E0
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r0, r1, r5
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0815E2DC @ =0x00003d42
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r2, 0x20
|
|
||||||
orrs r0, r2
|
|
||||||
b _0815E2FA
|
|
||||||
.align 2, 0
|
|
||||||
_0815E2D0: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E2D4: .4byte 0x00003d34
|
|
||||||
_0815E2D8: .4byte gSpecialVar_0x8005
|
|
||||||
_0815E2DC: .4byte 0x00003d42
|
|
||||||
_0815E2E0:
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r0, r1, r5
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0815E384 @ =0x00003d42
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r2, [r1]
|
|
||||||
movs r0, 0x21
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r2
|
|
||||||
_0815E2FA:
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r6, _0815E388 @ =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r6]
|
|
||||||
ldr r5, _0815E38C @ =0x00003d34
|
|
||||||
adds r0, r2, r5
|
|
||||||
ldr r1, [r0]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r2, r0
|
|
||||||
movs r0, 0xF5
|
|
||||||
lsls r0, 6
|
|
||||||
adds r2, r0
|
|
||||||
movs r0, 0
|
|
||||||
mov r8, r0
|
|
||||||
mov r0, r8
|
|
||||||
strb r0, [r2]
|
|
||||||
ldr r0, [r6]
|
|
||||||
adds r1, r0, r5
|
|
||||||
ldr r2, [r1]
|
|
||||||
lsls r1, r2, 1
|
|
||||||
adds r1, r2
|
|
||||||
lsls r1, 2
|
|
||||||
ldr r4, _0815E390 @ =0x00003d38
|
|
||||||
adds r1, r4
|
|
||||||
adds r0, r1
|
|
||||||
bl SetVBlankCounter1Ptr
|
|
||||||
ldr r2, [r6]
|
|
||||||
adds r3, r2, r5
|
|
||||||
ldr r1, [r3]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r4, r2, r4
|
|
||||||
adds r4, r0
|
|
||||||
mov r0, r8
|
|
||||||
str r0, [r4]
|
|
||||||
ldr r1, [r3]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r2, r0
|
|
||||||
ldr r3, _0815E384 @ =0x00003d42
|
|
||||||
adds r2, r3
|
|
||||||
ldrb r1, [r2]
|
|
||||||
movs r0, 0x5
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r2]
|
|
||||||
ldr r1, [r6]
|
|
||||||
adds r5, r1, r5
|
|
||||||
ldr r2, [r5]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, r3
|
|
||||||
ldrb r2, [r1]
|
|
||||||
movs r0, 0x3
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E384: .4byte 0x00003d42
|
|
||||||
_0815E388: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E38C: .4byte 0x00003d34
|
|
||||||
_0815E390: .4byte 0x00003d38
|
|
||||||
thumb_func_end sub_815E28C
|
|
||||||
|
|
||||||
thumb_func_start sub_815E394
|
|
||||||
sub_815E394: @ 815E394
|
|
||||||
push {lr}
|
|
||||||
bl DisableVBlankCounter1
|
|
||||||
ldr r3, _0815E3F8 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r3]
|
|
||||||
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldr r1, _0815E400 @ =0x00003d34
|
|
||||||
adds r0, r2, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r2, r0
|
|
||||||
ldr r0, _0815E404 @ =0x00003d42
|
|
||||||
adds r2, r0
|
|
||||||
ldrb r0, [r2]
|
|
||||||
lsls r0, 29
|
|
||||||
cmp r0, 0
|
|
||||||
bge _0815E3C2
|
|
||||||
movs r0, 0x1
|
|
||||||
strh r0, [r3]
|
|
||||||
_0815E3C2:
|
|
||||||
ldrb r2, [r2]
|
|
||||||
lsls r0, r2, 31
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0815E3D6
|
|
||||||
lsls r0, r2, 30
|
|
||||||
cmp r0, 0
|
|
||||||
bge _0815E3D6
|
|
||||||
ldrh r0, [r3]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r3]
|
|
||||||
_0815E3D6:
|
|
||||||
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, _0815E400 @ =0x00003d34
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0815E404 @ =0x00003d42
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r2, 0x4
|
|
||||||
orrs r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E3F8: .4byte gSpecialVar_Result
|
|
||||||
_0815E3FC: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E400: .4byte 0x00003d34
|
|
||||||
_0815E404: .4byte 0x00003d42
|
|
||||||
thumb_func_end sub_815E394
|
|
||||||
|
|
||||||
thumb_func_start sub_815E408
|
|
||||||
sub_815E408: @ 815E408
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
ldr r1, _0815E444 @ =gUnknown_847A2B4
|
|
||||||
ldr r0, _0815E448 @ =gUnknown_203F458
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrb r0, [r0, 0xF]
|
|
||||||
lsls r0, 1
|
|
||||||
adds r0, r1
|
|
||||||
ldrh r4, [r0]
|
|
||||||
ldr r0, _0815E44C @ =gSaveBlock1Ptr
|
|
||||||
mov r8, r0
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldr r7, _0815E450 @ =0x00003d34
|
|
||||||
adds r0, r2, r7
|
|
||||||
ldr r1, [r0]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r2, r0
|
|
||||||
ldr r6, _0815E454 @ =0x00003d42
|
|
||||||
adds r2, r6
|
|
||||||
ldrb r0, [r2]
|
|
||||||
lsls r0, 31
|
|
||||||
lsrs r5, r0, 31
|
|
||||||
cmp r5, 0
|
|
||||||
beq _0815E45C
|
|
||||||
ldr r1, _0815E458 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x2
|
|
||||||
b _0815E4A0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E444: .4byte gUnknown_847A2B4
|
|
||||||
_0815E448: .4byte gUnknown_203F458
|
|
||||||
_0815E44C: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E450: .4byte 0x00003d34
|
|
||||||
_0815E454: .4byte 0x00003d42
|
|
||||||
_0815E458: .4byte gSpecialVar_Result
|
|
||||||
_0815E45C:
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_809A084
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0815E49C
|
|
||||||
ldr r1, _0815E494 @ =gStringVar2
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_8099E90
|
|
||||||
mov r0, r8
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r0, r1, r7
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, r6
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r2, 0x1
|
|
||||||
orrs r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r0, _0815E498 @ =gSpecialVar_Result
|
|
||||||
strh r5, [r0]
|
|
||||||
b _0815E4A2
|
|
||||||
.align 2, 0
|
|
||||||
_0815E494: .4byte gStringVar2
|
|
||||||
_0815E498: .4byte gSpecialVar_Result
|
|
||||||
_0815E49C:
|
|
||||||
ldr r1, _0815E4AC @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x1
|
|
||||||
_0815E4A0:
|
|
||||||
strh r0, [r1]
|
|
||||||
_0815E4A2:
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E4AC: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end sub_815E408
|
|
||||||
|
|
||||||
thumb_func_start sub_815E4B0
|
|
||||||
sub_815E4B0: @ 815E4B0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
ldr r6, _0815E4D8 @ =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r6]
|
|
||||||
ldr r1, _0815E4DC @ =0x00003d34
|
|
||||||
adds r0, r2, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r0, r2, r1
|
|
||||||
ldr r3, _0815E4E0 @ =0x00003d42
|
|
||||||
adds r0, r3
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 30
|
|
||||||
lsrs r5, r0, 31
|
|
||||||
cmp r5, 0
|
|
||||||
beq _0815E4E8
|
|
||||||
ldr r1, _0815E4E4 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x2
|
|
||||||
b _0815E534
|
|
||||||
.align 2, 0
|
|
||||||
_0815E4D8: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E4DC: .4byte 0x00003d34
|
|
||||||
_0815E4E0: .4byte 0x00003d42
|
|
||||||
_0815E4E4: .4byte gSpecialVar_Result
|
|
||||||
_0815E4E8:
|
|
||||||
ldr r4, _0815E520 @ =0x00003d38
|
|
||||||
adds r0, r1, r4
|
|
||||||
adds r0, r2, r0
|
|
||||||
adds r0, 0x4
|
|
||||||
bl sub_815EDDC
|
|
||||||
ldr r3, [r6]
|
|
||||||
ldr r2, _0815E524 @ =0x00003d34
|
|
||||||
adds r1, r3, r2
|
|
||||||
ldr r2, [r1]
|
|
||||||
lsls r1, r2, 1
|
|
||||||
adds r1, r2
|
|
||||||
lsls r1, 2
|
|
||||||
adds r4, r3, r4
|
|
||||||
adds r4, r1
|
|
||||||
ldr r4, [r4]
|
|
||||||
cmp r0, r4
|
|
||||||
bls _0815E530
|
|
||||||
adds r0, r1, r3
|
|
||||||
ldr r3, _0815E528 @ =0x00003d3c
|
|
||||||
adds r0, r3
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl sub_815EDF4
|
|
||||||
ldr r0, _0815E52C @ =gSpecialVar_Result
|
|
||||||
strh r5, [r0]
|
|
||||||
b _0815E536
|
|
||||||
.align 2, 0
|
|
||||||
_0815E520: .4byte 0x00003d38
|
|
||||||
_0815E524: .4byte 0x00003d34
|
|
||||||
_0815E528: .4byte 0x00003d3c
|
|
||||||
_0815E52C: .4byte gSpecialVar_Result
|
|
||||||
_0815E530:
|
|
||||||
ldr r1, _0815E55C @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x1
|
|
||||||
_0815E534:
|
|
||||||
strh r0, [r1]
|
|
||||||
_0815E536:
|
|
||||||
ldr r0, _0815E560 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, _0815E564 @ =0x00003d34
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r3, _0815E568 @ =0x00003d42
|
|
||||||
adds r1, r3
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r2, 0x2
|
|
||||||
orrs r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E55C: .4byte gSpecialVar_Result
|
|
||||||
_0815E560: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E564: .4byte 0x00003d34
|
|
||||||
_0815E568: .4byte 0x00003d42
|
|
||||||
thumb_func_end sub_815E4B0
|
|
||||||
|
|
||||||
thumb_func_start sub_815E56C
|
|
||||||
sub_815E56C: @ 815E56C
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r0, _0815E5A0 @ =gSaveBlock1Ptr
|
|
||||||
ldr r4, [r0]
|
|
||||||
ldr r1, _0815E5A4 @ =0x00003d34
|
|
||||||
adds r0, r4, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r3, r0, 2
|
|
||||||
adds r0, r4, r3
|
|
||||||
ldr r1, _0815E5A8 @ =0x00003d42
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, 29
|
|
||||||
cmp r0, 0
|
|
||||||
blt _0815E5BA
|
|
||||||
subs r1, 0xA
|
|
||||||
adds r0, r4, r1
|
|
||||||
adds r2, r0, r3
|
|
||||||
ldr r1, [r2]
|
|
||||||
ldr r0, _0815E5AC @ =0x00034bbe
|
|
||||||
cmp r1, r0
|
|
||||||
bls _0815E5B0
|
|
||||||
adds r0, 0x1
|
|
||||||
str r0, [r2]
|
|
||||||
b _0815E5BA
|
|
||||||
.align 2, 0
|
|
||||||
_0815E5A0: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E5A4: .4byte 0x00003d34
|
|
||||||
_0815E5A8: .4byte 0x00003d42
|
|
||||||
_0815E5AC: .4byte 0x00034bbe
|
|
||||||
_0815E5B0:
|
|
||||||
ldr r1, _0815E5C0 @ =0x00003d38
|
|
||||||
adds r0, r3, r1
|
|
||||||
adds r0, r4, r0
|
|
||||||
bl SetVBlankCounter1Ptr
|
|
||||||
_0815E5BA:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815E5C0: .4byte 0x00003d38
|
|
||||||
thumb_func_end sub_815E56C
|
|
||||||
|
|
||||||
thumb_func_start sub_815E5C4
|
|
||||||
sub_815E5C4: @ 815E5C4
|
|
||||||
ldr r0, _0815E5E4 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r2, _0815E5E8 @ =0x00003d34
|
|
||||||
adds r0, r1, r2
|
|
||||||
ldr r2, [r0]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _0815E5EC @ =0x00003d42
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
movs r2, 0x8
|
|
||||||
orrs r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0815E5E4: .4byte gSaveBlock1Ptr
|
|
||||||
_0815E5E8: .4byte 0x00003d34
|
|
||||||
_0815E5EC: .4byte 0x00003d42
|
|
||||||
thumb_func_end sub_815E5C4
|
|
||||||
|
|
||||||
thumb_func_start sub_815E5F0
|
thumb_func_start sub_815E5F0
|
||||||
sub_815E5F0: @ 815E5F0
|
sub_815E5F0: @ 815E5F0
|
||||||
push {lr}
|
push {lr}
|
||||||
@@ -1450,4 +962,59 @@ _0815EDD4: .4byte gUnknown_83FE998
|
|||||||
_0815EDD8: .4byte gUnknown_83FE9C4
|
_0815EDD8: .4byte gUnknown_83FE9C4
|
||||||
thumb_func_end sub_815EC8C
|
thumb_func_end sub_815EC8C
|
||||||
|
|
||||||
|
thumb_func_start sub_815EDDC
|
||||||
|
sub_815EDDC: @ 815EDDC
|
||||||
|
ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
|
||||||
|
ldr r1, [r1]
|
||||||
|
movs r2, 0xF2
|
||||||
|
lsls r2, 4
|
||||||
|
adds r1, r2
|
||||||
|
ldr r0, [r0]
|
||||||
|
ldr r1, [r1]
|
||||||
|
eors r0, r1
|
||||||
|
bx lr
|
||||||
|
.align 2, 0
|
||||||
|
_0815EDF0: .4byte gSaveBlock2Ptr
|
||||||
|
thumb_func_end sub_815EDDC
|
||||||
|
|
||||||
|
thumb_func_start sub_815EDF4
|
||||||
|
sub_815EDF4: @ 815EDF4
|
||||||
|
ldr r2, _0815EE08 @ =gSaveBlock2Ptr
|
||||||
|
ldr r2, [r2]
|
||||||
|
movs r3, 0xF2
|
||||||
|
lsls r3, 4
|
||||||
|
adds r2, r3
|
||||||
|
ldr r2, [r2]
|
||||||
|
eors r2, r1
|
||||||
|
str r2, [r0]
|
||||||
|
bx lr
|
||||||
|
.align 2, 0
|
||||||
|
_0815EE08: .4byte gSaveBlock2Ptr
|
||||||
|
thumb_func_end sub_815EDF4
|
||||||
|
|
||||||
|
thumb_func_start sub_815EE0C
|
||||||
|
sub_815EE0C: @ 815EE0C
|
||||||
|
push {r4-r6,lr}
|
||||||
|
ldr r6, _0815EE30 @ =gSaveBlock1Ptr
|
||||||
|
ldr r5, _0815EE34 @ =0x00003d38
|
||||||
|
movs r4, 0x3
|
||||||
|
_0815EE14:
|
||||||
|
ldr r0, [r6]
|
||||||
|
adds r0, r5
|
||||||
|
adds r0, 0x4
|
||||||
|
ldr r1, _0815EE38 @ =0x00034bbf
|
||||||
|
bl sub_815EDF4
|
||||||
|
adds r5, 0xC
|
||||||
|
subs r4, 0x1
|
||||||
|
cmp r4, 0
|
||||||
|
bge _0815EE14
|
||||||
|
pop {r4-r6}
|
||||||
|
pop {r0}
|
||||||
|
bx r0
|
||||||
|
.align 2, 0
|
||||||
|
_0815EE30: .4byte gSaveBlock1Ptr
|
||||||
|
_0815EE34: .4byte 0x00003d38
|
||||||
|
_0815EE38: .4byte 0x00034bbf
|
||||||
|
thumb_func_end sub_815EE0C
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
.align 2, 0 @ Don't pad with nop.
|
||||||
|
|||||||
@@ -5,61 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_815EDDC
|
|
||||||
sub_815EDDC: @ 815EDDC
|
|
||||||
ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
|
|
||||||
ldr r1, [r1]
|
|
||||||
movs r2, 0xF2
|
|
||||||
lsls r2, 4
|
|
||||||
adds r1, r2
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, [r1]
|
|
||||||
eors r0, r1
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0815EDF0: .4byte gSaveBlock2Ptr
|
|
||||||
thumb_func_end sub_815EDDC
|
|
||||||
|
|
||||||
thumb_func_start sub_815EDF4
|
|
||||||
sub_815EDF4: @ 815EDF4
|
|
||||||
ldr r2, _0815EE08 @ =gSaveBlock2Ptr
|
|
||||||
ldr r2, [r2]
|
|
||||||
movs r3, 0xF2
|
|
||||||
lsls r3, 4
|
|
||||||
adds r2, r3
|
|
||||||
ldr r2, [r2]
|
|
||||||
eors r2, r1
|
|
||||||
str r2, [r0]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_0815EE08: .4byte gSaveBlock2Ptr
|
|
||||||
thumb_func_end sub_815EDF4
|
|
||||||
|
|
||||||
thumb_func_start sub_815EE0C
|
|
||||||
sub_815EE0C: @ 815EE0C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
ldr r6, _0815EE30 @ =gSaveBlock1Ptr
|
|
||||||
ldr r5, _0815EE34 @ =0x00003d38
|
|
||||||
movs r4, 0x3
|
|
||||||
_0815EE14:
|
|
||||||
ldr r0, [r6]
|
|
||||||
adds r0, r5
|
|
||||||
adds r0, 0x4
|
|
||||||
ldr r1, _0815EE38 @ =0x00034bbf
|
|
||||||
bl sub_815EDF4
|
|
||||||
adds r5, 0xC
|
|
||||||
subs r4, 0x1
|
|
||||||
cmp r4, 0
|
|
||||||
bge _0815EE14
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815EE30: .4byte gSaveBlock1Ptr
|
|
||||||
_0815EE34: .4byte 0x00003d38
|
|
||||||
_0815EE38: .4byte 0x00034bbf
|
|
||||||
thumb_func_end sub_815EE0C
|
|
||||||
|
|
||||||
thumb_func_start sub_815EE3C
|
thumb_func_start sub_815EE3C
|
||||||
sub_815EE3C: @ 815EE3C
|
sub_815EE3C: @ 815EE3C
|
||||||
ldr r1, _0815EE50 @ =gSaveBlock2Ptr
|
ldr r1, _0815EE50 @ =gSaveBlock2Ptr
|
||||||
|
|||||||
+18
-2
@@ -1,5 +1,7 @@
|
|||||||
|
#include "constants/items.h"
|
||||||
.include "asm/macros.inc"
|
.include "asm/macros.inc"
|
||||||
.include "constants/constants.inc"
|
.include "constants/gba_constants.inc"
|
||||||
|
.include "constants/misc_constants.inc"
|
||||||
|
|
||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
@@ -562,7 +564,21 @@ gUnknown_847A284:: @ 847A284
|
|||||||
.2byte 0x0131, 0x0175, 0x017d
|
.2byte 0x0131, 0x0175, 0x017d
|
||||||
|
|
||||||
gUnknown_847A2B4:: @ 847A2B4
|
gUnknown_847A2B4:: @ 847A2B4
|
||||||
.2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda
|
.2byte ITEM_HP_UP
|
||||||
|
.2byte ITEM_PROTEIN
|
||||||
|
.2byte ITEM_IRON
|
||||||
|
.2byte ITEM_CARBOS
|
||||||
|
.2byte ITEM_CALCIUM
|
||||||
|
.2byte ITEM_ZINC
|
||||||
|
.2byte ITEM_BRIGHT_POWDER
|
||||||
|
.2byte ITEM_WHITE_HERB
|
||||||
|
.2byte ITEM_MENTAL_HERB
|
||||||
|
.2byte ITEM_CHOICE_BAND
|
||||||
|
.2byte ITEM_KINGS_ROCK
|
||||||
|
.2byte ITEM_SCOPE_LENS
|
||||||
|
.2byte ITEM_METAL_COAT
|
||||||
|
.2byte ITEM_DRAGON_SCALE
|
||||||
|
.2byte ITEM_UP_GRADE
|
||||||
|
|
||||||
gUnknown_847A2D2:: @ 847A2D2
|
gUnknown_847A2D2:: @ 847A2D2
|
||||||
.2byte 0x011d
|
.2byte 0x011d
|
||||||
|
|||||||
@@ -714,6 +714,14 @@ struct TrainerTowerLog
|
|||||||
u32 unk0;
|
u32 unk0;
|
||||||
u32 unk4;
|
u32 unk4;
|
||||||
u8 unk8;
|
u8 unk8;
|
||||||
|
u8 unk9;
|
||||||
|
u8 unkA_0:1;
|
||||||
|
u8 unkA_1:1;
|
||||||
|
u8 unkA_2:1;
|
||||||
|
u8 unkA_3:1;
|
||||||
|
u8 unkA_4:1;
|
||||||
|
u8 unkA_5:1;
|
||||||
|
u8 unkA_6:2;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SaveBlock1
|
struct SaveBlock1
|
||||||
|
|||||||
@@ -63,5 +63,6 @@ u16 itemid_get_market_price(u16 itemId);
|
|||||||
void sub_809A2DC(void);
|
void sub_809A2DC(void);
|
||||||
void sub_809A2A4(void);
|
void sub_809A2A4(void);
|
||||||
void sub_8099E90(u16, u8 *);
|
void sub_8099E90(u16, u8 *);
|
||||||
|
bool8 sub_809A084(u16 itemId, u16 amount);
|
||||||
|
|
||||||
#endif // ITEM_H
|
#endif // ITEM_H
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ void DoSoftReset(void);
|
|||||||
void ClearPokemonCrySongs(void);
|
void ClearPokemonCrySongs(void);
|
||||||
void RestoreSerialTimer3IntrHandlers(void);
|
void RestoreSerialTimer3IntrHandlers(void);
|
||||||
void SetVBlankCounter1Ptr(u32 *ptr);
|
void SetVBlankCounter1Ptr(u32 *ptr);
|
||||||
|
void DisableVBlankCounter1(void);
|
||||||
|
|
||||||
extern const char RomHeaderGameCode[4];
|
extern const char RomHeaderGameCode[4];
|
||||||
extern const char RomHeaderSoftwareVersion;
|
extern const char RomHeaderSoftwareVersion;
|
||||||
|
|||||||
+90
-3
@@ -17,6 +17,7 @@
|
|||||||
#include "battle.h"
|
#include "battle.h"
|
||||||
#include "battle_2.h"
|
#include "battle_2.h"
|
||||||
#include "overworld.h"
|
#include "overworld.h"
|
||||||
|
#include "item.h"
|
||||||
|
|
||||||
struct UnkStruct_8479D34
|
struct UnkStruct_8479D34
|
||||||
{
|
{
|
||||||
@@ -42,7 +43,8 @@ struct UnkSubstruct_203F458_000C_004
|
|||||||
|
|
||||||
struct UnkSubstruct_203F458_000C
|
struct UnkSubstruct_203F458_000C
|
||||||
{
|
{
|
||||||
/* 0x000 */ u8 filler_000[2];
|
/* 0x000 */ u8 unk_000;
|
||||||
|
/* 0x000 */ u8 unk_001;
|
||||||
/* 0x002 */ u8 unk_002;
|
/* 0x002 */ u8 unk_002;
|
||||||
/* 0x003 */ u8 unk_003;
|
/* 0x003 */ u8 unk_003;
|
||||||
/* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3];
|
/* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3];
|
||||||
@@ -128,14 +130,17 @@ void sub_815E948(void);
|
|||||||
void sub_815E9C8(void);
|
void sub_815E9C8(void);
|
||||||
void sub_815E9FC(void);
|
void sub_815E9FC(void);
|
||||||
void sub_815EC0C(void);
|
void sub_815EC0C(void);
|
||||||
|
u32 sub_815EDDC(u32 *);
|
||||||
|
void sub_815EDF4(u32 *, u32);
|
||||||
|
|
||||||
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
|
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
|
||||||
|
extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83];
|
||||||
|
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
|
||||||
extern void (*const gUnknown_847A230[])(void);
|
extern void (*const gUnknown_847A230[])(void);
|
||||||
extern const struct Unk_203F458_Header gUnknown_84827AC;
|
extern const struct Unk_203F458_Header gUnknown_84827AC;
|
||||||
extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8];
|
extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8];
|
||||||
extern const u16 gUnknown_847A284[8][3];
|
extern const u16 gUnknown_847A284[8][3];
|
||||||
extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83];
|
extern const u16 gUnknown_847A2B4[];
|
||||||
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
|
|
||||||
|
|
||||||
bool32 sub_815D7BC(void * dest, void * buffer)
|
bool32 sub_815D7BC(void * dest, void * buffer)
|
||||||
{
|
{
|
||||||
@@ -771,3 +776,85 @@ void sub_815E1F0(void)
|
|||||||
{
|
{
|
||||||
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++;
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_815E218(void)
|
||||||
|
{
|
||||||
|
u16 mapDataId = gMapHeader.mapDataId;
|
||||||
|
if (mapDataId - 0x12A == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - 0x129 <= gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_001)
|
||||||
|
gSpecialVar_Result = FALSE;
|
||||||
|
else
|
||||||
|
gSpecialVar_Result = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E28C(void)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->unkArrayIdx = gSpecialVar_0x8005;
|
||||||
|
if (gSaveBlock1Ptr->unkArrayIdx >= NELEMS(gSaveBlock1Ptr->unkArray))
|
||||||
|
gSaveBlock1Ptr->unkArrayIdx = 0;
|
||||||
|
sub_815EC0C();
|
||||||
|
if (!sub_815D834())
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = TRUE;
|
||||||
|
else
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = FALSE;
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 = 0;
|
||||||
|
SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 0;
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = FALSE;
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E394(void)
|
||||||
|
{
|
||||||
|
DisableVBlankCounter1();
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2)
|
||||||
|
gSpecialVar_Result++;
|
||||||
|
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 && gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1)
|
||||||
|
gSpecialVar_Result++;
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E408(void)
|
||||||
|
{
|
||||||
|
u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.unk_0008->unk_003];
|
||||||
|
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0)
|
||||||
|
gSpecialVar_Result = 2;
|
||||||
|
else if (sub_809A084(itemId, 1) == 1)
|
||||||
|
{
|
||||||
|
sub_8099E90(itemId, gStringVar2);
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE;
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gSpecialVar_Result = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E4B0(void)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1)
|
||||||
|
gSpecialVar_Result = 2;
|
||||||
|
else if (sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4) > gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0)
|
||||||
|
{
|
||||||
|
sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gSpecialVar_Result = 1;
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E56C(void)
|
||||||
|
{
|
||||||
|
if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999)
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999;
|
||||||
|
else
|
||||||
|
SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_815E5C4(void)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = 1;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user