mirror of
https://github.com/pret/pokefirered.git
synced 2026-06-02 22:04:27 -05:00
through sub_815E5C4
This commit is contained in:
parent
4b459cd460
commit
1e699465bd
|
|
@ -5,494 +5,6 @@
|
|||
|
||||
.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
|
||||
sub_815E5F0: @ 815E5F0
|
||||
push {lr}
|
||||
|
|
@ -1450,4 +962,59 @@ _0815EDD4: .4byte gUnknown_83FE998
|
|||
_0815EDD8: .4byte gUnknown_83FE9C4
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -5,61 +5,6 @@
|
|||
|
||||
.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
|
||||
sub_815EE3C: @ 815EE3C
|
||||
ldr r1, _0815EE50 @ =gSaveBlock2Ptr
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#include "constants/items.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "constants/misc_constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
|
|
@ -562,7 +564,21 @@ gUnknown_847A284:: @ 847A284
|
|||
.2byte 0x0131, 0x0175, 0x017d
|
||||
|
||||
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
|
||||
.2byte 0x011d
|
||||
|
|
|
|||
|
|
@ -714,6 +714,14 @@ struct TrainerTowerLog
|
|||
u32 unk0;
|
||||
u32 unk4;
|
||||
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
|
||||
|
|
|
|||
|
|
@ -63,5 +63,6 @@ u16 itemid_get_market_price(u16 itemId);
|
|||
void sub_809A2DC(void);
|
||||
void sub_809A2A4(void);
|
||||
void sub_8099E90(u16, u8 *);
|
||||
bool8 sub_809A084(u16 itemId, u16 amount);
|
||||
|
||||
#endif // ITEM_H
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ void DoSoftReset(void);
|
|||
void ClearPokemonCrySongs(void);
|
||||
void RestoreSerialTimer3IntrHandlers(void);
|
||||
void SetVBlankCounter1Ptr(u32 *ptr);
|
||||
void DisableVBlankCounter1(void);
|
||||
|
||||
extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "battle.h"
|
||||
#include "battle_2.h"
|
||||
#include "overworld.h"
|
||||
#include "item.h"
|
||||
|
||||
struct UnkStruct_8479D34
|
||||
{
|
||||
|
|
@ -42,7 +43,8 @@ struct UnkSubstruct_203F458_000C_004
|
|||
|
||||
struct UnkSubstruct_203F458_000C
|
||||
{
|
||||
/* 0x000 */ u8 filler_000[2];
|
||||
/* 0x000 */ u8 unk_000;
|
||||
/* 0x000 */ u8 unk_001;
|
||||
/* 0x002 */ u8 unk_002;
|
||||
/* 0x003 */ u8 unk_003;
|
||||
/* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3];
|
||||
|
|
@ -128,14 +130,17 @@ void sub_815E948(void);
|
|||
void sub_815E9C8(void);
|
||||
void sub_815E9FC(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_8479ED8 gUnknown_8479ED8[83];
|
||||
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
|
||||
extern void (*const gUnknown_847A230[])(void);
|
||||
extern const struct Unk_203F458_Header gUnknown_84827AC;
|
||||
extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8];
|
||||
extern const u16 gUnknown_847A284[8][3];
|
||||
extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83];
|
||||
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
|
||||
extern const u16 gUnknown_847A2B4[];
|
||||
|
||||
bool32 sub_815D7BC(void * dest, void * buffer)
|
||||
{
|
||||
|
|
@ -771,3 +776,85 @@ void sub_815E1F0(void)
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user