decomp some save stuff

This commit is contained in:
Seth Barberee 2020-10-09 01:34:01 -05:00
parent 86d3dd6797
commit ada5402dc0
7 changed files with 8193 additions and 8200 deletions

File diff suppressed because it is too large Load Diff

7287
asm/code_8094F88.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -412,893 +412,4 @@ sub_80122D0:
_080122F0: .4byte gUnknown_203B47C
thumb_func_end sub_80122D0
thumb_func_start sub_80122F4
sub_80122F4:
push {lr}
bl sub_800135C
pop {r0}
bx r0
thumb_func_end sub_80122F4
thumb_func_start sub_8012300
sub_8012300:
push {lr}
bl sub_80923B8
bl sub_808CE08
bl sub_80909D8
bl sub_8092094
bl sub_80972F4
bl sub_8095118
bl sub_8095900
bl sub_80974E8
movs r0, 0x1
bl sub_8094998
bl sub_8097F74
pop {r0}
bx r0
thumb_func_end sub_8012300
thumb_func_start nullsub_200
nullsub_200:
bx lr
thumb_func_end nullsub_200
thumb_func_start sub_8012334
sub_8012334:
push {lr}
adds r2, r0, 0
ldr r0, _08012390
str r2, [r0]
cmp r2, 0
beq _080123C8
ldr r1, _08012394
ldr r0, [r2]
str r0, [r1]
ldr r1, _08012398
ldr r0, [r2, 0x4]
str r0, [r1]
ldr r1, _0801239C
ldr r0, [r2, 0x8]
str r0, [r1]
ldr r1, _080123A0
ldr r0, [r2, 0xC]
str r0, [r1]
ldr r1, _080123A4
ldr r0, [r2, 0x10]
str r0, [r1]
ldr r1, _080123A8
ldr r0, [r2, 0x14]
str r0, [r1]
ldr r1, _080123AC
ldr r0, [r2, 0x18]
str r0, [r1]
ldr r1, _080123B0
ldr r0, [r2, 0x1C]
str r0, [r1]
ldr r1, _080123B4
ldr r0, [r2, 0x20]
str r0, [r1]
ldr r1, _080123B8
ldr r0, [r2, 0x24]
str r0, [r1]
ldr r1, _080123BC
ldr r0, [r2, 0x28]
str r0, [r1]
ldr r1, _080123C0
ldr r0, [r2, 0x2C]
str r0, [r1]
ldr r1, _080123C4
ldr r0, [r2, 0x30]
b _0801242E
.align 2, 0
_08012390: .4byte gUnknown_203B184
_08012394: .4byte gUnknown_203B460
_08012398: .4byte gUnknown_203B45C
_0801239C: .4byte gUnknown_203B480
_080123A0: .4byte gUnknown_203B484
_080123A4: .4byte gUnknown_203B488
_080123A8: .4byte gUnknown_203B48C
_080123AC: .4byte gUnknown_203B490
_080123B0: .4byte gUnknown_203B464
_080123B4: .4byte gUnknown_203B494
_080123B8: .4byte gUnknown_203B498
_080123BC: .4byte gUnknown_203B468
_080123C0: .4byte gUnknown_203B46C
_080123C4: .4byte gUnknown_203B47C
_080123C8:
bl sub_80909D0
ldr r1, _08012434
str r0, [r1]
bl sub_808CE00
ldr r1, _08012438
str r0, [r1]
bl sub_80950F8
ldr r1, _0801243C
str r0, [r1]
bl sub_8095100
ldr r1, _08012440
str r0, [r1]
bl sub_8095108
ldr r1, _08012444
str r0, [r1]
bl sub_8095110
ldr r1, _08012448
str r0, [r1]
bl sub_80958F8
ldr r1, _0801244C
str r0, [r1]
bl sub_809208C
ldr r1, _08012450
str r0, [r1]
bl sub_8097680
ldr r1, _08012454
str r0, [r1]
bl sub_8097F6C
ldr r1, _08012458
str r0, [r1]
bl sub_80923B0
ldr r1, _0801245C
str r0, [r1]
bl sub_8094990
ldr r1, _08012460
str r0, [r1]
bl sub_8094FA0
ldr r1, _08012464
_0801242E:
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08012434: .4byte gUnknown_203B460
_08012438: .4byte gUnknown_203B45C
_0801243C: .4byte gUnknown_203B480
_08012440: .4byte gUnknown_203B484
_08012444: .4byte gUnknown_203B488
_08012448: .4byte gUnknown_203B48C
_0801244C: .4byte gUnknown_203B490
_08012450: .4byte gUnknown_203B464
_08012454: .4byte gUnknown_203B494
_08012458: .4byte gUnknown_203B498
_0801245C: .4byte gUnknown_203B468
_08012460: .4byte gUnknown_203B46C
_08012464: .4byte gUnknown_203B47C
thumb_func_end sub_8012334
thumb_func_start sub_8012468
sub_8012468:
push {r4,lr}
ldr r4, _08012480
movs r0, 0x8
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
movs r1, 0x1
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012480: .4byte gUnknown_203B188
thumb_func_end sub_8012468
thumb_func_start sub_8012484
sub_8012484:
push {r4,r5,lr}
sub sp, 0x8
ldr r1, _080124A0
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x6
bhi _0801254C
lsls r0, 2
ldr r1, _080124A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080124A0: .4byte gUnknown_203B188
_080124A4: .4byte _080124A8
.align 2, 0
_080124A8:
.4byte _080124C4
.4byte _080124CC
.4byte _080124E8
.4byte _0801251C
.4byte _08012534
.4byte _0801254C
.4byte _08012548
_080124C4:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _0801254C
_080124CC:
movs r0, 0
str r0, [sp]
mov r0, sp
bl sub_8011DAC
ldr r1, _080124E4
ldr r1, [r1]
str r0, [r1, 0x4]
movs r0, 0x2
str r0, [r1]
b _0801254C
.align 2, 0
_080124E4: .4byte gUnknown_203B188
_080124E8:
adds r5, r4, 0
ldr r1, [r5]
ldr r0, [r1, 0x4]
cmp r0, 0
beq _0801253C
bl sub_8011FF8
lsls r0, 24
cmp r0, 0
beq _08012518
ldr r0, _08012510
ldr r3, _08012514
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801254C
.align 2, 0
_08012510: .4byte gUnknown_80D4354
_08012514: .4byte 0x00000301
_08012518:
ldr r1, [r4]
b _0801252A
_0801251C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801254C
ldr r0, _08012530
ldr r1, [r0]
_0801252A:
movs r0, 0x4
str r0, [r1]
b _0801254C
.align 2, 0
_08012530: .4byte gUnknown_203B188
_08012534:
bl sub_8012298
ldr r0, _08012544
ldr r1, [r0]
_0801253C:
movs r0, 0x6
str r0, [r1]
b _0801254C
.align 2, 0
_08012544: .4byte gUnknown_203B188
_08012548:
movs r0, 0
b _0801254E
_0801254C:
movs r0, 0x1
_0801254E:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012484
thumb_func_start sub_8012558
sub_8012558:
push {r4,lr}
ldr r4, _08012570
ldr r0, [r4]
cmp r0, 0
beq _0801256A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801256A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012570: .4byte gUnknown_203B188
thumb_func_end sub_8012558
thumb_func_start sub_8012574
sub_8012574:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
bl sub_80993D8
ldr r5, _080125D4
movs r0, 0x20
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
movs r6, 0
movs r1, 0
strh r4, [r0, 0x1C]
str r1, [r0, 0xC]
str r1, [r0, 0x10]
cmp r4, 0
beq _080125BA
adds r0, r4, 0
bl sub_808DDD0
ldr r1, [r5]
str r0, [r1, 0xC]
ldr r0, [r0, 0x4]
str r0, [r1, 0x10]
strb r6, [r1, 0x18]
ldr r0, [r5]
strb r6, [r0, 0x19]
ldr r0, [r5]
strb r6, [r0, 0x1A]
ldr r1, [r5]
movs r0, 0x2
strh r0, [r1, 0x14]
movs r0, 0x8
strh r0, [r1, 0x16]
_080125BA:
ldr r1, [r5]
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080125DC
adds r2, r1, 0
adds r2, 0xC
ldr r0, _080125D8
movs r1, 0
movs r3, 0x20
bl sub_80141B4
b _080125E8
.align 2, 0
_080125D4: .4byte gUnknown_203B18C
_080125D8: .4byte gUnknown_80D4398
_080125DC:
ldr r0, _080125F8
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080125E8:
ldr r0, _080125FC
ldr r1, [r0]
movs r0, 0x3
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080125F8: .4byte gUnknown_80D4398
_080125FC: .4byte gUnknown_203B18C
thumb_func_end sub_8012574
thumb_func_start sub_8012600
sub_8012600:
push {r4,r5,lr}
sub sp, 0x8
movs r5, 0
ldr r0, _08012628
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _08012616
adds r5, r2, 0
adds r5, 0xC
_08012616:
ldr r0, [r2]
cmp r0, 0x7
bls _0801261E
b _08012738
_0801261E:
lsls r0, 2
ldr r1, _0801262C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08012628: .4byte gUnknown_203B18C
_0801262C: .4byte _08012630
.align 2, 0
_08012630:
.4byte _08012650
.4byte _08012654
.4byte _08012738
.4byte _08012678
.4byte _08012680
.4byte _0801271C
.4byte _08012738
.4byte _08012734
_08012650:
ldr r1, [r4]
b _0801272A
_08012654:
ldr r1, [r4]
ldr r0, [r1, 0x4]
adds r0, 0x1
str r0, [r1, 0x4]
cmp r0, 0x8
ble _08012738
ldr r0, _08012674
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
str r0, [r1]
b _08012738
.align 2, 0
_08012674: .4byte gUnknown_80D43D8
_08012678:
ldr r1, [r4]
movs r0, 0x4
str r0, [r1]
b _08012738
_08012680:
movs r0, 0
str r0, [sp]
bl sub_80140DC
bl sub_8011C1C
adds r1, r0, 0
mov r0, sp
bl sub_801203C
ldr r4, _080126B8
ldr r1, [r4]
str r0, [r1, 0x8]
cmp r0, 0
beq _080126C4
cmp r0, 0x1
beq _080126DC
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126F4
ldr r0, _080126BC
_080126AA:
ldr r3, _080126C0
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
b _08012700
.align 2, 0
_080126B8: .4byte gUnknown_203B18C
_080126BC: .4byte gUnknown_80D44B0
_080126C0: .4byte 0x00000101
_080126C4:
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126D4
ldr r0, _080126D0
b _080126AA
.align 2, 0
_080126D0: .4byte gUnknown_80D4438
_080126D4:
ldr r0, _080126D8
b _080126F6
.align 2, 0
_080126D8: .4byte gUnknown_80D4438
_080126DC:
ldr r0, _080126F0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x6
b _08012706
.align 2, 0
_080126F0: .4byte gUnknown_80D444C
_080126F4:
ldr r0, _08012710
_080126F6:
ldr r3, _08012714
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
_08012700:
ldr r0, _08012718
ldr r1, [r0]
movs r0, 0x5
_08012706:
str r0, [r1]
bl sub_8014114
b _08012738
.align 2, 0
_08012710: .4byte gUnknown_80D44B0
_08012714: .4byte 0x00000101
_08012718: .4byte gUnknown_203B18C
_0801271C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _08012738
ldr r0, _08012730
ldr r1, [r0]
_0801272A:
movs r0, 0x7
str r0, [r1]
b _08012738
.align 2, 0
_08012730: .4byte gUnknown_203B18C
_08012734:
movs r0, 0
b _0801273A
_08012738:
movs r0, 0x1
_0801273A:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012600
thumb_func_start sub_8012744
sub_8012744:
ldr r0, _0801274C
ldr r0, [r0]
ldr r0, [r0, 0x8]
bx lr
.align 2, 0
_0801274C: .4byte gUnknown_203B18C
thumb_func_end sub_8012744
thumb_func_start sub_8012750
sub_8012750:
push {r4,lr}
ldr r4, _08012778
ldr r0, [r4]
cmp r0, 0
beq _0801276E
ldr r0, [r0, 0xC]
cmp r0, 0
beq _08012764
bl CloseFile
_08012764:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801276E:
bl sub_80993E4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012778: .4byte gUnknown_203B18C
thumb_func_end sub_8012750
thumb_func_start sub_801277C
sub_801277C:
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r4, _080127A4
movs r0, 0x10
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0x4]
str r6, [r0, 0x8]
movs r1, 0
strb r1, [r0, 0xC]
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080127A4: .4byte gUnknown_203B190
thumb_func_end sub_801277C
thumb_func_start sub_80127A8
sub_80127A8:
push {r4,r5,lr}
sub sp, 0x8
ldr r5, _080127C0
ldr r2, [r5]
ldr r4, [r2]
cmp r4, 0x1
beq _080127D4
cmp r4, 0x1
bgt _080127C4
cmp r4, 0
beq _080127CE
b _0801281E
.align 2, 0
_080127C0: .4byte gUnknown_203B190
_080127C4:
cmp r4, 0x2
beq _08012808
cmp r4, 0x3
beq _0801281A
b _0801281E
_080127CE:
movs r0, 0x1
str r0, [r2]
b _0801281E
_080127D4:
movs r0, 0x10
str r0, [sp]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
mov r0, sp
bl sub_8011F9C
cmp r0, 0
bne _080127EC
ldr r0, [r5]
strb r4, [r0, 0xC]
b _08012812
_080127EC:
ldr r0, _08012800
ldr r3, _08012804
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x2
str r0, [r1]
b _0801281E
.align 2, 0
_08012800: .4byte gUnknown_80D44C8
_08012804: .4byte 0x00000301
_08012808:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801281E
_08012812:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801281E
_0801281A:
movs r0, 0
b _08012820
_0801281E:
movs r0, 0x1
_08012820:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80127A8
thumb_func_start sub_8012828
sub_8012828:
ldr r0, _08012830
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_08012830: .4byte gUnknown_203B190
thumb_func_end sub_8012828
thumb_func_start sub_8012834
sub_8012834:
push {r4,lr}
ldr r4, _0801284C
ldr r0, [r4]
cmp r0, 0
beq _08012846
bl MemoryFree
movs r0, 0
str r0, [r4]
_08012846:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801284C: .4byte gUnknown_203B190
thumb_func_end sub_8012834
thumb_func_start sub_8012850
sub_8012850:
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
mov r8, r1
lsls r4, r2, 24
lsrs r4, 24
ldr r5, _0801288C
movs r0, 0x14
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x4]
mov r1, r8
str r1, [r0, 0x8]
movs r1, 0
strb r4, [r0, 0xC]
ldr r0, [r5]
str r1, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _08012894
ldr r0, _08012890
movs r2, 0
movs r3, 0x20
bl sub_80141B4
b _080128A0
.align 2, 0
_0801288C: .4byte gUnknown_203B194
_08012890: .4byte gUnknown_80D45AC
_08012894:
ldr r0, _080128AC
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080128A0:
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080128AC: .4byte gUnknown_80D45AC
thumb_func_end sub_8012850
thumb_func_start sub_80128B0
sub_80128B0:
push {r4,lr}
sub sp, 0x8
ldr r1, _080128CC
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x5
bls _080128C2
b _080129F0
_080128C2:
lsls r0, 2
ldr r1, _080128D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080128CC: .4byte gUnknown_203B194
_080128D0: .4byte _080128D4
.align 2, 0
_080128D4:
.4byte _080128EC
.4byte _080128F4
.4byte _0801291C
.4byte _080129C8
.4byte _080129F0
.4byte _080129E0
_080128EC:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _080129F0
_080128F4:
bl sub_80140DC
movs r0, 0x10
str r0, [sp]
ldr r4, _08012918
ldr r0, [r4]
ldr r1, [r0, 0x4]
ldr r2, [r0, 0x8]
mov r0, sp
bl sub_80121D4
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x2
str r0, [r1]
movs r0, 0x1
b _080129F2
.align 2, 0
_08012918: .4byte gUnknown_203B194
_0801291C:
movs r0, 0
str r0, [sp]
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _08012934
mov r0, sp
movs r1, 0x2
bl sub_801203C
ldr r1, [r4]
str r0, [r1, 0x10]
_08012934:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
beq _08012964
cmp r0, 0x1
beq _080129AC
ldr r0, _08012958
bl sub_80121E0
ldr r0, _0801295C
ldr r3, _08012960
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
b _080129BC
.align 2, 0
_08012958: .4byte 0x000f1209
_0801295C: .4byte gUnknown_80D47A0
_08012960: .4byte 0x00000301
_08012964:
ldr r0, _08012980
bl sub_80121E0
ldr r0, [r4]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _0801298C
ldr r0, _08012984
ldr r3, _08012988
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08012998
.align 2, 0
_08012980: .4byte 0x000f1207
_08012984: .4byte gUnknown_80D45F4
_08012988: .4byte 0x00000301
_0801298C:
ldr r0, _080129A0
ldr r3, _080129A4
movs r1, 0
movs r2, 0
bl sub_80141B4
_08012998:
ldr r0, _080129A8
ldr r1, [r0]
movs r0, 0x3
b _080129BC
.align 2, 0
_080129A0: .4byte gUnknown_80D4668
_080129A4: .4byte 0x00000301
_080129A8: .4byte gUnknown_203B194
_080129AC:
ldr r0, _080129C4
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x4
_080129BC:
str r0, [r1]
bl sub_8014114
b _080129F0
.align 2, 0
_080129C4: .4byte gUnknown_80D473C
_080129C8:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _080129F0
ldr r0, _080129DC
ldr r1, [r0]
movs r0, 0x5
str r0, [r1]
b _080129F0
.align 2, 0
_080129DC: .4byte gUnknown_203B194
_080129E0:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _080129EC
movs r0, 0x2
b _080129F2
_080129EC:
movs r0, 0x3
b _080129F2
_080129F0:
movs r0, 0
_080129F2:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80128B0
.align 2, 0 @ Don't pad with nop.

745
asm/save1.s Normal file
View File

@ -0,0 +1,745 @@
.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8012468
sub_8012468:
push {r4,lr}
ldr r4, _08012480
movs r0, 0x8
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
movs r1, 0x1
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012480: .4byte gUnknown_203B188
thumb_func_end sub_8012468
thumb_func_start sub_8012484
sub_8012484:
push {r4,r5,lr}
sub sp, 0x8
ldr r1, _080124A0
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x6
bhi _0801254C
lsls r0, 2
ldr r1, _080124A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080124A0: .4byte gUnknown_203B188
_080124A4: .4byte _080124A8
.align 2, 0
_080124A8:
.4byte _080124C4
.4byte _080124CC
.4byte _080124E8
.4byte _0801251C
.4byte _08012534
.4byte _0801254C
.4byte _08012548
_080124C4:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _0801254C
_080124CC:
movs r0, 0
str r0, [sp]
mov r0, sp
bl sub_8011DAC
ldr r1, _080124E4
ldr r1, [r1]
str r0, [r1, 0x4]
movs r0, 0x2
str r0, [r1]
b _0801254C
.align 2, 0
_080124E4: .4byte gUnknown_203B188
_080124E8:
adds r5, r4, 0
ldr r1, [r5]
ldr r0, [r1, 0x4]
cmp r0, 0
beq _0801253C
bl sub_8011FF8
lsls r0, 24
cmp r0, 0
beq _08012518
ldr r0, _08012510
ldr r3, _08012514
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801254C
.align 2, 0
_08012510: .4byte gUnknown_80D4354
_08012514: .4byte 0x00000301
_08012518:
ldr r1, [r4]
b _0801252A
_0801251C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801254C
ldr r0, _08012530
ldr r1, [r0]
_0801252A:
movs r0, 0x4
str r0, [r1]
b _0801254C
.align 2, 0
_08012530: .4byte gUnknown_203B188
_08012534:
bl sub_8012298
ldr r0, _08012544
ldr r1, [r0]
_0801253C:
movs r0, 0x6
str r0, [r1]
b _0801254C
.align 2, 0
_08012544: .4byte gUnknown_203B188
_08012548:
movs r0, 0
b _0801254E
_0801254C:
movs r0, 0x1
_0801254E:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012484
thumb_func_start sub_8012558
sub_8012558:
push {r4,lr}
ldr r4, _08012570
ldr r0, [r4]
cmp r0, 0
beq _0801256A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801256A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012570: .4byte gUnknown_203B188
thumb_func_end sub_8012558
thumb_func_start sub_8012574
sub_8012574:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
bl sub_80993D8
ldr r5, _080125D4
movs r0, 0x20
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
movs r6, 0
movs r1, 0
strh r4, [r0, 0x1C]
str r1, [r0, 0xC]
str r1, [r0, 0x10]
cmp r4, 0
beq _080125BA
adds r0, r4, 0
bl sub_808DDD0
ldr r1, [r5]
str r0, [r1, 0xC]
ldr r0, [r0, 0x4]
str r0, [r1, 0x10]
strb r6, [r1, 0x18]
ldr r0, [r5]
strb r6, [r0, 0x19]
ldr r0, [r5]
strb r6, [r0, 0x1A]
ldr r1, [r5]
movs r0, 0x2
strh r0, [r1, 0x14]
movs r0, 0x8
strh r0, [r1, 0x16]
_080125BA:
ldr r1, [r5]
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080125DC
adds r2, r1, 0
adds r2, 0xC
ldr r0, _080125D8
movs r1, 0
movs r3, 0x20
bl sub_80141B4
b _080125E8
.align 2, 0
_080125D4: .4byte gUnknown_203B18C
_080125D8: .4byte gUnknown_80D4398
_080125DC:
ldr r0, _080125F8
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080125E8:
ldr r0, _080125FC
ldr r1, [r0]
movs r0, 0x3
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080125F8: .4byte gUnknown_80D4398
_080125FC: .4byte gUnknown_203B18C
thumb_func_end sub_8012574
thumb_func_start sub_8012600
sub_8012600:
push {r4,r5,lr}
sub sp, 0x8
movs r5, 0
ldr r0, _08012628
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _08012616
adds r5, r2, 0
adds r5, 0xC
_08012616:
ldr r0, [r2]
cmp r0, 0x7
bls _0801261E
b _08012738
_0801261E:
lsls r0, 2
ldr r1, _0801262C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08012628: .4byte gUnknown_203B18C
_0801262C: .4byte _08012630
.align 2, 0
_08012630:
.4byte _08012650
.4byte _08012654
.4byte _08012738
.4byte _08012678
.4byte _08012680
.4byte _0801271C
.4byte _08012738
.4byte _08012734
_08012650:
ldr r1, [r4]
b _0801272A
_08012654:
ldr r1, [r4]
ldr r0, [r1, 0x4]
adds r0, 0x1
str r0, [r1, 0x4]
cmp r0, 0x8
ble _08012738
ldr r0, _08012674
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
str r0, [r1]
b _08012738
.align 2, 0
_08012674: .4byte gUnknown_80D43D8
_08012678:
ldr r1, [r4]
movs r0, 0x4
str r0, [r1]
b _08012738
_08012680:
movs r0, 0
str r0, [sp]
bl sub_80140DC
bl sub_8011C1C
adds r1, r0, 0
mov r0, sp
bl sub_801203C
ldr r4, _080126B8
ldr r1, [r4]
str r0, [r1, 0x8]
cmp r0, 0
beq _080126C4
cmp r0, 0x1
beq _080126DC
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126F4
ldr r0, _080126BC
_080126AA:
ldr r3, _080126C0
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
b _08012700
.align 2, 0
_080126B8: .4byte gUnknown_203B18C
_080126BC: .4byte gUnknown_80D44B0
_080126C0: .4byte 0x00000101
_080126C4:
ldr r0, [r1, 0xC]
cmp r0, 0
beq _080126D4
ldr r0, _080126D0
b _080126AA
.align 2, 0
_080126D0: .4byte gUnknown_80D4438
_080126D4:
ldr r0, _080126D8
b _080126F6
.align 2, 0
_080126D8: .4byte gUnknown_80D4438
_080126DC:
ldr r0, _080126F0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x6
b _08012706
.align 2, 0
_080126F0: .4byte gUnknown_80D444C
_080126F4:
ldr r0, _08012710
_080126F6:
ldr r3, _08012714
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
_08012700:
ldr r0, _08012718
ldr r1, [r0]
movs r0, 0x5
_08012706:
str r0, [r1]
bl sub_8014114
b _08012738
.align 2, 0
_08012710: .4byte gUnknown_80D44B0
_08012714: .4byte 0x00000101
_08012718: .4byte gUnknown_203B18C
_0801271C:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _08012738
ldr r0, _08012730
ldr r1, [r0]
_0801272A:
movs r0, 0x7
str r0, [r1]
b _08012738
.align 2, 0
_08012730: .4byte gUnknown_203B18C
_08012734:
movs r0, 0
b _0801273A
_08012738:
movs r0, 0x1
_0801273A:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012600
thumb_func_start sub_8012744
sub_8012744:
ldr r0, _0801274C
ldr r0, [r0]
ldr r0, [r0, 0x8]
bx lr
.align 2, 0
_0801274C: .4byte gUnknown_203B18C
thumb_func_end sub_8012744
thumb_func_start sub_8012750
sub_8012750:
push {r4,lr}
ldr r4, _08012778
ldr r0, [r4]
cmp r0, 0
beq _0801276E
ldr r0, [r0, 0xC]
cmp r0, 0
beq _08012764
bl CloseFile
_08012764:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801276E:
bl sub_80993E4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08012778: .4byte gUnknown_203B18C
thumb_func_end sub_8012750
thumb_func_start sub_801277C
sub_801277C:
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r4, _080127A4
movs r0, 0x10
movs r1, 0x5
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0x4]
str r6, [r0, 0x8]
movs r1, 0
strb r1, [r0, 0xC]
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080127A4: .4byte gUnknown_203B190
thumb_func_end sub_801277C
thumb_func_start sub_80127A8
sub_80127A8:
push {r4,r5,lr}
sub sp, 0x8
ldr r5, _080127C0
ldr r2, [r5]
ldr r4, [r2]
cmp r4, 0x1
beq _080127D4
cmp r4, 0x1
bgt _080127C4
cmp r4, 0
beq _080127CE
b _0801281E
.align 2, 0
_080127C0: .4byte gUnknown_203B190
_080127C4:
cmp r4, 0x2
beq _08012808
cmp r4, 0x3
beq _0801281A
b _0801281E
_080127CE:
movs r0, 0x1
str r0, [r2]
b _0801281E
_080127D4:
movs r0, 0x10
str r0, [sp]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
mov r0, sp
bl sub_8011F9C
cmp r0, 0
bne _080127EC
ldr r0, [r5]
strb r4, [r0, 0xC]
b _08012812
_080127EC:
ldr r0, _08012800
ldr r3, _08012804
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r5]
movs r0, 0x2
str r0, [r1]
b _0801281E
.align 2, 0
_08012800: .4byte gUnknown_80D44C8
_08012804: .4byte 0x00000301
_08012808:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _0801281E
_08012812:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1]
b _0801281E
_0801281A:
movs r0, 0
b _08012820
_0801281E:
movs r0, 0x1
_08012820:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80127A8
thumb_func_start sub_8012828
sub_8012828:
ldr r0, _08012830
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_08012830: .4byte gUnknown_203B190
thumb_func_end sub_8012828
thumb_func_start sub_8012834
sub_8012834:
push {r4,lr}
ldr r4, _0801284C
ldr r0, [r4]
cmp r0, 0
beq _08012846
bl MemoryFree
movs r0, 0
str r0, [r4]
_08012846:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801284C: .4byte gUnknown_203B190
thumb_func_end sub_8012834
thumb_func_start sub_8012850
sub_8012850:
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
mov r8, r1
lsls r4, r2, 24
lsrs r4, 24
ldr r5, _0801288C
movs r0, 0x14
movs r1, 0x5
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x4]
mov r1, r8
str r1, [r0, 0x8]
movs r1, 0
strb r4, [r0, 0xC]
ldr r0, [r5]
str r1, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _08012894
ldr r0, _08012890
movs r2, 0
movs r3, 0x20
bl sub_80141B4
b _080128A0
.align 2, 0
_0801288C: .4byte gUnknown_203B194
_08012890: .4byte gUnknown_80D45AC
_08012894:
ldr r0, _080128AC
movs r1, 0
movs r2, 0
movs r3, 0x20
bl sub_80141B4
_080128A0:
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080128AC: .4byte gUnknown_80D45AC
thumb_func_end sub_8012850
thumb_func_start sub_80128B0
sub_80128B0:
push {r4,lr}
sub sp, 0x8
ldr r1, _080128CC
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x5
bls _080128C2
b _080129F0
_080128C2:
lsls r0, 2
ldr r1, _080128D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080128CC: .4byte gUnknown_203B194
_080128D0: .4byte _080128D4
.align 2, 0
_080128D4:
.4byte _080128EC
.4byte _080128F4
.4byte _0801291C
.4byte _080129C8
.4byte _080129F0
.4byte _080129E0
_080128EC:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
b _080129F0
_080128F4:
bl sub_80140DC
movs r0, 0x10
str r0, [sp]
ldr r4, _08012918
ldr r0, [r4]
ldr r1, [r0, 0x4]
ldr r2, [r0, 0x8]
mov r0, sp
bl sub_80121D4
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x2
str r0, [r1]
movs r0, 0x1
b _080129F2
.align 2, 0
_08012918: .4byte gUnknown_203B194
_0801291C:
movs r0, 0
str r0, [sp]
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _08012934
mov r0, sp
movs r1, 0x2
bl sub_801203C
ldr r1, [r4]
str r0, [r1, 0x10]
_08012934:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
beq _08012964
cmp r0, 0x1
beq _080129AC
ldr r0, _08012958
bl sub_80121E0
ldr r0, _0801295C
ldr r3, _08012960
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x3
b _080129BC
.align 2, 0
_08012958: .4byte 0x000f1209
_0801295C: .4byte gUnknown_80D47A0
_08012960: .4byte 0x00000301
_08012964:
ldr r0, _08012980
bl sub_80121E0
ldr r0, [r4]
ldrb r0, [r0, 0xC]
cmp r0, 0
beq _0801298C
ldr r0, _08012984
ldr r3, _08012988
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08012998
.align 2, 0
_08012980: .4byte 0x000f1207
_08012984: .4byte gUnknown_80D45F4
_08012988: .4byte 0x00000301
_0801298C:
ldr r0, _080129A0
ldr r3, _080129A4
movs r1, 0
movs r2, 0
bl sub_80141B4
_08012998:
ldr r0, _080129A8
ldr r1, [r0]
movs r0, 0x3
b _080129BC
.align 2, 0
_080129A0: .4byte gUnknown_80D4668
_080129A4: .4byte 0x00000301
_080129A8: .4byte gUnknown_203B194
_080129AC:
ldr r0, _080129C4
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x4
_080129BC:
str r0, [r1]
bl sub_8014114
b _080129F0
.align 2, 0
_080129C4: .4byte gUnknown_80D473C
_080129C8:
add r0, sp, 0x4
bl sub_80144A4
cmp r0, 0
bne _080129F0
ldr r0, _080129DC
ldr r1, [r0]
movs r0, 0x5
str r0, [r1]
b _080129F0
.align 2, 0
_080129DC: .4byte gUnknown_203B194
_080129E0:
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
bne _080129EC
movs r0, 0x2
b _080129F2
_080129EC:
movs r0, 0x3
b _080129F2
_080129F0:
movs r0, 0
_080129F2:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80128B0
.align 2,0

View File

@ -77,6 +77,8 @@ SECTIONS {
asm/fatal_system.o(.text);
src/save.o(.text);
asm/save.o(.text);
src/save_mid.o(.text);
asm/save1.o(.text);
src/save1.o(.text);
asm/code_8012A18.o(.text);
src/code_8027C84_pre.o(.text);
@ -100,6 +102,8 @@ SECTIONS {
asm/code_809017C.o(.text);
src/code_8092334.o(.text);
asm/code_8092334.o(.text);
src/code_8094F88.o(.text);
asm/code_8094F88.o(.text);
asm/code_8098468.o(.text);
asm/code_809D148.o(.text);
asm/code_80A26CC.o(.text);

35
src/code_8094F88.c Normal file
View File

@ -0,0 +1,35 @@
#include "global.h"
struct unkTimeStruct
{
u16 unk0;
u8 unk2;
u8 unk3;
u8 unk4;
};
extern struct unkTimeStruct *gUnknown_203B47C;
extern struct unkTimeStruct gPlayTime;
// Forward Declaration
void sub_8094FA8(struct unkTimeStruct *Time);
void sub_8094F88(void)
{
gUnknown_203B47C = &gPlayTime;
sub_8094FA8(&gPlayTime);
}
struct unkTimeStruct *sub_8094FA0(void)
{
return &gPlayTime;
}
void sub_8094FA8(struct unkTimeStruct *Time)
{
Time->unk4 = 0;
Time->unk3 = 0;
Time->unk2 = 0;
Time->unk0 = 0;
}

122
src/save_mid.c Normal file
View File

@ -0,0 +1,122 @@
#include "global.h"
// TODO unify with UnkStruct_203B184 in save.c
struct unkSaveStruct
{
/* 0x0 */ u32 unk0;
/* 0x4 */ u32 unk4;
/* 0x8 */ u32 unk8;
/* 0xC */ u32 unkC;
/* 0x10 */ u32 unk10;
/* 0x14 */ u32 unk14;
/* 0x18 */ u32 unk18;
/* 0x1C */ u32 unk1C;
/* 0x20 */ u32 unk20;
/* 0x24 */ u32 unk24;
/* 0x28 */ u32 unk28;
/* 0x2C */ u32 unk2C;
/* 0x30 */ u32 unk30;
};
extern struct unkSaveStruct *gUnknown_203B184;
extern u32 gUnknown_203B460;
extern u32 gUnknown_203B45C;
extern u32 gUnknown_203B480;
extern u32 gUnknown_203B484;
extern u32 gUnknown_203B488;
extern u32 gUnknown_203B48C;
extern u32 gUnknown_203B490;
extern u32 gUnknown_203B464;
extern u32 gUnknown_203B494;
extern u32 gUnknown_203B498;
extern u32 gUnknown_203B468;
extern u32 gUnknown_203B46C;
extern u32 gUnknown_203B47C;
extern void sub_800135C(void);
extern u32 sub_808CE00(void);
extern void sub_808CE08(void);
extern u32 sub_80909D0(void);
extern void sub_80909D8(void);
extern u32 sub_809208C(void);
extern void sub_8092094(void);
extern u32 sub_80923B0(void);
extern void sub_80923B8(void);
extern u32 sub_8094990(void);
extern void sub_8094998(u8 r0);
extern u32 sub_8094FA0(void);
extern u32 sub_80950F8(void);
extern u32 sub_8095100(void);
extern u32 sub_8095108(void);
extern u32 sub_8095110(void);
extern void sub_8095118(void);
extern u32 sub_80958F8(void);
extern void sub_8095900(void);
extern u32 sub_8097680(void);
extern void sub_80972F4(void);
extern void sub_80974E8(void);
extern u32 sub_8097F6C(void);
extern void sub_8097F74(void);
void sub_80122F4(void)
{
sub_800135C();
}
void sub_8012300(void)
{
sub_80923B8();
sub_808CE08();
sub_80909D8();
sub_8092094();
sub_80972F4();
sub_8095118();
sub_8095900();
sub_80974E8();
sub_8094998(1);
sub_8097F74();
}
// Unused
void nullsub_200(u32 r0)
{
}
// Unused
void sub_8012334(struct unkSaveStruct *r0)
{
gUnknown_203B184 = r0;
if(r0 != NULL)
{
gUnknown_203B460 = r0->unk0;
gUnknown_203B45C = r0->unk4;
gUnknown_203B480 = r0->unk8;
gUnknown_203B484 = r0->unkC;
gUnknown_203B488 = r0->unk10;
gUnknown_203B48C = r0->unk14;
gUnknown_203B490 = r0->unk18;
gUnknown_203B464 = r0->unk1C;
gUnknown_203B494 = r0->unk20;
gUnknown_203B498 = r0->unk24;
gUnknown_203B468 = r0->unk28;
gUnknown_203B46C = r0->unk2C;
gUnknown_203B47C = r0->unk30;
return;
}
gUnknown_203B460 = sub_80909D0();
gUnknown_203B45C = sub_808CE00();
gUnknown_203B480 = sub_80950F8();
gUnknown_203B484 = sub_8095100();
gUnknown_203B488 = sub_8095108();
gUnknown_203B48C = sub_8095110();
gUnknown_203B490 = sub_80958F8();
gUnknown_203B464 = sub_809208C();
gUnknown_203B494 = sub_8097680();
gUnknown_203B498 = sub_8097F6C();
gUnknown_203B468 = sub_80923B0();
gUnknown_203B46C = sub_8094990();
gUnknown_203B47C = sub_8094FA0();
}