summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-06-23 17:35:37 -0500
committerSeth Barberee <seth.barberee@gmail.com>2021-06-23 17:35:37 -0500
commitd1685379681008d41f78fa4a6ae17ace5ee2dbfa (patch)
tree22645f079beea40333e7e822f055c063781ef806 /asm
parentf1fdcc2b0ade13ad1a4cc7360eac70f27396d26a (diff)
Finish out game options and FatalError
Some data cleanup as well. Thanks pika for the noreturn tip for FatalError.
Diffstat (limited to 'asm')
-rw-r--r--asm/code_2.s4
-rw-r--r--asm/code_8009804.s30
-rw-r--r--asm/code_800D090.s2
-rw-r--r--asm/code_803B050.s8
-rw-r--r--asm/code_809017C.s992
-rw-r--r--asm/code_8090208.s922
-rw-r--r--asm/code_8094D28.s314
-rw-r--r--asm/code_8097670.s4
-rw-r--r--asm/debug.s30
-rw-r--r--asm/game_options.s801
10 files changed, 1245 insertions, 1862 deletions
diff --git a/asm/code_2.s b/asm/code_2.s
index 23a31d1..2fca8d0 100644
--- a/asm/code_2.s
+++ b/asm/code_2.s
@@ -193,7 +193,7 @@ _080007CC:
movs r0, 0x3F
str r0, [sp]
mov r0, sp
- bl sub_8097688
+ bl SetDungeonLocationInfo
bl sub_80140DC
cmp r5, 0x3
bhi _080007EC
@@ -1160,7 +1160,7 @@ _08000FAC:
_08000FB8:
adds r0, r4, 0
adds r0, 0x80
- bl sub_8097688
+ bl SetDungeonLocationInfo
bl sub_8011924
movs r1, 0
ldrsh r0, [r7, r1]
diff --git a/asm/code_8009804.s b/asm/code_8009804.s
index ba1173b..4167e80 100644
--- a/asm/code_8009804.s
+++ b/asm/code_8009804.s
@@ -5,36 +5,6 @@
.text
- thumb_func_start sub_80099F0
-sub_80099F0:
- push {lr}
- adds r2, r0, 0
- ldr r0, _08009A0C
- movs r1, 0x7
- movs r3, 0xE2
- lsls r3, 1
- adds r0, r3
-_080099FE:
- str r2, [r0]
- subs r0, 0x40
- subs r1, 0x1
- cmp r1, 0
- bge _080099FE
- pop {r0}
- bx r0
- .align 2, 0
-_08009A0C: .4byte gUnknown_202D038
- thumb_func_end sub_80099F0
-
- thumb_func_start sub_8009A10
-sub_8009A10:
- push {lr}
- ldr r0, [r0, 0x4]
- bl sub_8009A1C
- pop {r0}
- bx r0
- thumb_func_end sub_8009A10
-
thumb_func_start sub_8009A1C
sub_8009A1C:
push {r4-r6,lr}
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index a451e00..fc0455f 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -7711,7 +7711,7 @@ _08010BD0:
bl sub_80073B8
ldr r0, _08010C08
adds r1, r5, 0
- bl sub_809027C
+ bl CopyDungeonName1toBuffer
ldr r2, _08010C0C
movs r0, 0
str r0, [sp]
diff --git a/asm/code_803B050.s b/asm/code_803B050.s
index ff10300..c9ff87c 100644
--- a/asm/code_803B050.s
+++ b/asm/code_803B050.s
@@ -1156,7 +1156,7 @@ _0803B916:
add r4, sp, 0xE0
ldr r1, [r7, 0x8]
adds r0, r4, 0
- bl sub_8090228
+ bl PrintDungeonLocationtoBuffer
ldr r1, _0803B938
add r0, sp, 0x4
adds r2, r4, 0
@@ -1167,7 +1167,7 @@ _0803B938: .4byte gUnknown_80E8884
_0803B93C:
ldr r1, [r7, 0x8]
add r0, sp, 0x4
- bl sub_8090228
+ bl PrintDungeonLocationtoBuffer
_0803B944:
ldr r1, [r7, 0x48]
adds r1, 0xC
@@ -1819,7 +1819,7 @@ _0803BEC8:
add r4, sp, 0x180
ldr r1, [r7, 0x8]
adds r0, r4, 0
- bl sub_8090228
+ bl PrintDungeonLocationtoBuffer
ldr r1, _0803BF00
add r0, sp, 0x4
adds r2, r4, 0
@@ -1832,7 +1832,7 @@ _0803BF00: .4byte gUnknown_80E8884
_0803BF04:
ldr r1, [r7, 0x8]
add r0, sp, 0x4
- bl sub_8090228
+ bl PrintDungeonLocationtoBuffer
_0803BF0C:
ldr r3, [r7]
movs r0, 0
diff --git a/asm/code_809017C.s b/asm/code_809017C.s
index 4c72eb6..3ef1c2c 100644
--- a/asm/code_809017C.s
+++ b/asm/code_809017C.s
@@ -86,996 +86,4 @@ _08090202:
bx r0
thumb_func_end sub_80901D8
- thumb_func_start sub_8090208
-sub_8090208:
- push {lr}
- ldr r3, _08090220
- ldr r2, _08090224
- ldrb r1, [r1]
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- adds r1, r3, 0
- bl ExpandPlaceholdersBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08090220: .4byte gUnknown_8108F10
-_08090224: .4byte gDungeonNames
- thumb_func_end sub_8090208
-
- thumb_func_start sub_8090228
-sub_8090228:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _08090250
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809025C
- ldr r1, _08090254
- ldr r2, _08090258
- lsls r0, r3, 3
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r4, 0x1]
- adds r0, r5, 0
- bl ExpandPlaceholdersBuffer
- b _0809026E
- .align 2, 0
-_08090250: .4byte gDungeons
-_08090254: .4byte gUnknown_8108F18
-_08090258: .4byte gDungeonNames
-_0809025C:
- ldr r1, _08090274
- ldr r2, _08090278
- lsls r0, r3, 3
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r4, 0x1]
- adds r0, r5, 0
- bl ExpandPlaceholdersBuffer
-_0809026E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08090274: .4byte gUnknown_8108F2C
-_08090278: .4byte gDungeonNames
- thumb_func_end sub_8090228
-
- thumb_func_start sub_809027C
-sub_809027C:
- push {lr}
- ldr r2, _08090294
- ldrb r1, [r1]
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x50
- bl strncpy
- pop {r0}
- bx r0
- .align 2, 0
-_08090294: .4byte gDungeonNames
- thumb_func_end sub_809027C
-
- thumb_func_start sub_8090298
-sub_8090298:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bhi _080902AE
- movs r0, 0x4
- b _080902C2
-_080902AE:
- cmp r1, 0x3E
- bhi _080902C0
- ldr r0, _080902BC
- adds r0, r1, r0
- ldrb r0, [r0]
- b _080902C2
- .align 2, 0
-_080902BC: .4byte gUnknown_81077A8
-_080902C0:
- movs r0, 0x1
-_080902C2:
- pop {r1}
- bx r1
- thumb_func_end sub_8090298
-
- thumb_func_start sub_80902C8
-sub_80902C8:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bls _080902EC
- cmp r1, 0x3E
- bhi _080902EC
- ldr r0, _080902E8
- adds r0, r1, r0
- ldrb r0, [r0]
- b _080902EE
- .align 2, 0
-_080902E8: .4byte gUnknown_81077E8
-_080902EC:
- movs r0, 0
-_080902EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80902C8
-
- thumb_func_start sub_80902F4
-sub_80902F4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x7
- bl sub_809488C
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80902F4
-
- thumb_func_start sub_8090314
-sub_8090314:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- movs r2, 0x7
- bl sub_8094924
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8090314
-
- thumb_func_start sub_809033C
-sub_809033C:
- lsls r0, 24
- ldr r1, _08090348
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x1]
- bx lr
- .align 2, 0
-_08090348: .4byte gDungeons
- thumb_func_end sub_809033C
-
- thumb_func_start sub_809034C
-sub_809034C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xF8
- adds r7, r2, 0
- ldr r2, [sp, 0x118]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- asrs r1, 16
- str r1, [sp, 0xE0]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xE4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xE8]
- bl sub_8090A34
- str r0, [sp, 0xEC]
- movs r5, 0
- movs r0, 0
- str r0, [sp, 0xF4]
- mov r8, r0
- add r4, sp, 0xC8
- movs r0, 0xA
- strb r0, [r4]
- add r1, sp, 0xF4
- ldrb r1, [r1]
- strb r1, [r4, 0x1]
- ldr r1, _0809040C
- adds r0, r7, 0
- bl strcpy
- movs r2, 0
- str r2, [sp, 0xF0]
- movs r3, 0
- ldr r0, _08090410
- ldr r6, [r0]
- movs r4, 0x1
-_080903A2:
- movs r0, 0x58
- muls r0, r3
- adds r2, r6, r0
- ldrh r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080903D0
- lsrs r0, r1, 1
- ands r0, r4
- cmp r0, 0
- beq _080903D0
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- beq _080903CA
- ldr r0, [sp, 0xF0]
- adds r0, 0x1
- str r0, [sp, 0xF0]
-_080903CA:
- adds r5, 0x1
- cmp r5, 0x4
- beq _080903DA
-_080903D0:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _080903A2
-_080903DA:
- ldr r0, _08090414
- mov r2, r9
- lsls r1, r2, 4
- adds r0, r1, r0
- ldrb r0, [r0, 0x5]
- mov r9, r1
- ldr r1, [sp, 0xE4]
- cmp r1, 0
- bne _080903F2
- cmp r0, 0x3
- ble _080903F2
- movs r0, 0x3
-_080903F2:
- cmp r5, r0
- ble _0809043C
- cmp r0, 0x1
- bne _0809041C
- ldr r0, _08090418
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- b _08090430
- .align 2, 0
-_0809040C: .4byte gUnknown_8108F40
-_08090410: .4byte gRecruitedPokemonRef
-_08090414: .4byte gDungeons
-_08090418: .4byte gUnknown_8115A2C
-_0809041C:
- ldr r1, _08090464
- subs r0, r5, r0
- str r0, [r1]
- ldr r0, _08090468
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
-_08090430:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r2, 0x1
- mov r8, r2
-_0809043C:
- ldr r0, _0809046C
- mov r2, r9
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809048E
- ldr r1, [sp, 0xEC]
- cmp r0, r1
- bge _0809048E
- ldr r1, _08090464
- str r0, [r1]
- ldr r2, [sp, 0xEC]
- subs r0, r2, r0
- str r0, [r1, 0x4]
- mov r0, r8
- cmp r0, 0
- bne _08090474
- ldr r0, _08090470
- b _08090476
- .align 2, 0
-_08090464: .4byte gUnknown_202DE30
-_08090468: .4byte gUnknown_81159DC
-_0809046C: .4byte gDungeons
-_08090470: .4byte gUnknown_8115A80
-_08090474:
- ldr r0, _080904AC
-_08090476:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_0809048E:
- ldr r2, [sp, 0xE0]
- cmp r2, 0
- beq _0809054E
- ldr r0, _080904B0
- adds r1, r2, 0
- bl CopyCyanSpeciesNametoBuffer
- cmp r5, 0x3
- ble _080904D2
- mov r0, r8
- cmp r0, 0
- bne _080904B8
- ldr r0, _080904B4
- b _080904BA
- .align 2, 0
-_080904AC: .4byte gUnknown_8115ADC
-_080904B0: .4byte gAvailablePokemonNames
-_080904B4: .4byte gUnknown_8115B3C
-_080904B8:
- ldr r0, _08090528
-_080904BA:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_080904D2:
- ldr r0, [sp, 0xE0]
- bl GetPokemonSize
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r2, _0809052C
- mov r10, r2
- movs r6, 0x1
-_080904E4:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08090510
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _08090510
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- bl GetPokemonSize
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0
-_08090510:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _080904E4
- cmp r5, 0x6
- ble _0809054E
- mov r2, r8
- cmp r2, 0
- bne _08090534
- ldr r0, _08090530
- b _08090536
- .align 2, 0
-_08090528: .4byte gUnknown_8115BA4
-_0809052C: .4byte gRecruitedPokemonRef
-_08090530: .4byte gUnknown_8115BF4
-_08090534:
- ldr r0, _080905D0
-_08090536:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r0, 0x1
- mov r8, r0
-_0809054E:
- ldr r1, [sp, 0xE4]
- cmp r1, 0
- beq _08090602
- add r5, sp, 0xCC
- ldr r1, _080905D4
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- add r4, sp, 0xD4
- ldr r1, _080905D8
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- movs r6, 0
- mov r10, r4
- ldr r0, _080905DC
- add r0, r9
- ldrb r5, [r0, 0xB]
- add r4, sp, 0xCC
-_08090578:
- adds r0, r5, 0
- asrs r0, r6
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809059E
- ldrh r0, [r4]
- bl sub_8090820
- lsls r0, 24
- cmp r0, 0
- bne _0809059E
- mov r2, r10
- adds r0, r2, r6
- ldrb r0, [r0]
- bl sub_80911A4
- cmp r0, 0
- beq _080905A6
-_0809059E:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08090578
-_080905A6:
- cmp r6, 0x3
- bgt _08090602
- add r4, sp, 0xD8
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0xCC
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_8092A88
- ldr r0, _080905E0
- adds r1, r4, 0
- movs r2, 0
- bl sub_80928C0
- mov r0, r8
- cmp r0, 0
- bne _080905E8
- ldr r0, _080905E4
- b _080905EA
- .align 2, 0
-_080905D0: .4byte gUnknown_8115C4C
-_080905D4: .4byte gUnknown_8108F42
-_080905D8: .4byte gUnknown_8108F4A
-_080905DC: .4byte gDungeons
-_080905E0: .4byte gUnknown_202DE58
-_080905E4: .4byte gUnknown_8115CB8
-_080905E8:
- ldr r0, _080906A0
-_080905EA:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_08090602:
- ldr r0, _080906A4
- add r0, r9
- ldrb r1, [r0, 0xB]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080906CE
- ldr r5, _080906A8
- ldr r2, [sp, 0xE0]
- cmp r2, 0
- beq _0809063A
- adds r0, r2, 0
- movs r1, 0
- bl GetPokemonType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090638
- ldr r0, [sp, 0xE0]
- movs r1, 0x1
- bl GetPokemonType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0809063A
-_08090638:
- movs r5, 0
-_0809063A:
- ldr r0, _080906A8
- cmp r5, r0
- bne _080906CE
- movs r5, 0
- movs r6, 0x1
-_08090644:
- ldr r2, _080906AC
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldrh r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08090686
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _08090686
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl GetPokemonType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090690
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r1, 0x1
- bl GetPokemonType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090690
-_08090686:
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _08090644
-_08090690:
- ldr r0, _080906A8
- cmp r5, r0
- bne _080906CE
- mov r0, r8
- cmp r0, 0
- bne _080906B4
- ldr r0, _080906B0
- b _080906B6
- .align 2, 0
-_080906A0: .4byte gUnknown_8115D14
-_080906A4: .4byte gDungeons
-_080906A8: .4byte 0x0000019d
-_080906AC: .4byte gRecruitedPokemonRef
-_080906B0: .4byte gUnknown_8115D5C
-_080906B4:
- ldr r0, _080906D8
-_080906B6:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_080906CE:
- mov r2, r8
- cmp r2, 0
- beq _080906DC
- movs r0, 0x1
- b _0809080E
- .align 2, 0
-_080906D8: .4byte gUnknown_8115D94
-_080906DC:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _080906EC
- ldr r0, [sp, 0xE8]
- cmp r0, 0
- beq _0809071A
-_080906EC:
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _08090708
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r2, 0x1
- str r2, [sp, 0xF4]
-_08090708:
- ldr r0, _080907F4
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_0809071A:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- beq _08090752
- ldr r0, [sp, 0xF4]
- cmp r0, 0
- bne _08090740
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r1, 0x1
- str r1, [sp, 0xF4]
-_08090740:
- ldr r0, _080907F8
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_08090752:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08090792
- ldr r2, [sp, 0xEC]
- ldr r0, [sp, 0xF0]
- cmn r2, r0
- beq _08090792
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _08090780
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r2, 0x1
- str r2, [sp, 0xF4]
-_08090780:
- ldr r0, _080907FC
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_08090792:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _080907DA
- ldr r0, _08090800
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080907DA
- ldr r2, [sp, 0xF4]
- cmp r2, 0
- bne _080907C8
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r0, 0x1
- str r0, [sp, 0xF4]
-_080907C8:
- ldr r0, _08090804
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_080907DA:
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _0809080C
- ldr r1, _08090808
- adds r0, r7, 0
- bl ExpandPlaceholdersBuffer
- movs r0, 0
- b _0809080E
- .align 2, 0
-_080907EC: .4byte gDungeons
-_080907F0: .4byte gUnknown_8115DD4
-_080907F4: .4byte gUnknown_8115E00
-_080907F8: .4byte gUnknown_8115E28
-_080907FC: .4byte gUnknown_8115E54
-_08090800: .4byte gUnknown_203B460
-_08090804: .4byte gUnknown_8115E80
-_08090808: .4byte gUnknown_8108F50
-_0809080C:
- movs r0, 0x2
-_0809080E:
- add sp, 0xF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809034C
-
- thumb_func_start sub_8090820
-sub_8090820:
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
- ldr r0, _08090868
- ldr r0, [r0]
- mov r12, r0
- movs r7, 0x1
-_08090830:
- movs r0, 0x58
- muls r0, r4
- mov r2, r12
- adds r1, r2, r0
- ldrh r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- beq _08090874
- lsrs r0, r2, 1
- ands r0, r7
- cmp r0, 0
- beq _08090874
- movs r3, 0
- movs r5, 0x1
- adds r2, r1, 0
- adds r2, 0x2C
-_08090852:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809086C
- ldrh r0, [r2, 0x2]
- cmp r0, r6
- bne _0809086C
- movs r0, 0x1
- b _08090880
- .align 2, 0
-_08090868: .4byte gRecruitedPokemonRef
-_0809086C:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- ble _08090852
-_08090874:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08090830
- movs r0, 0
-_08090880:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090820
-
- thumb_func_start sub_8090888
-sub_8090888:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r6, 0
- b _0809089C
-_08090892:
- ldrb r0, [r4]
- cmp r0, 0xA
- bne _0809089A
- adds r6, 0x1
-_0809089A:
- adds r4, 0x1
-_0809089C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08090892
- ldrb r7, [r5]
- b _080908AE
-_080908A6:
- movs r0, 0xA
- strb r0, [r4]
- adds r4, 0x1
- adds r6, 0x1
-_080908AE:
- adds r0, r6, 0
- movs r1, 0x3
- bl __modsi3
- cmp r0, 0
- bne _080908A6
- adds r1, r7, 0
- lsls r0, r1, 24
- cmp r0, 0
- beq _080908CE
-_080908C2:
- strb r1, [r4]
- adds r4, 0x1
- adds r5, 0x1
- ldrb r1, [r5]
- cmp r1, 0
- bne _080908C2
-_080908CE:
- movs r0, 0
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090888
-
- thumb_func_start sub_80908D8
-sub_80908D8:
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0x3E
- bhi _08090908
- ldr r0, _08090900
- ldrb r3, [r2]
- adds r0, r3, r0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08090908
- ldr r1, _08090904
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r2, 0x1]
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- b _0809090A
- .align 2, 0
-_08090900: .4byte gUnknown_81077A8
-_08090904: .4byte gUnknown_8108084
-_08090908:
- movs r0, 0x1
-_0809090A:
- pop {r1}
- bx r1
- thumb_func_end sub_80908D8
-
- thumb_func_start sub_8090910
-sub_8090910:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldr r4, _0809094C
- adds r0, r4, 0
- bl RandomCapped
- adds r6, r0, 0
- adds r0, r4, 0
- bl RandomCapped
- adds r2, r0, 0
- ldrb r0, [r5]
- cmp r0, 0x3E
- bhi _08090954
- ldr r0, _08090950
- ldrb r1, [r5]
- adds r1, r0
- ldrb r0, [r5, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08090954
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- b _08090956
- .align 2, 0
-_0809094C: .4byte 0x0000270f
-_08090950: .4byte gUnknown_81077A8
-_08090954:
- movs r0, 0x46
-_08090956:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090910
-
- thumb_func_start sub_809095C
-sub_809095C:
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3E
- bls _0809096A
-_08090966:
- movs r0, 0x1
- b _0809098C
-_0809096A:
- movs r2, 0
- ldr r0, _08090994
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3F
- beq _0809098A
- adds r1, r4, 0
-_08090978:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, r3
- beq _08090966
- adds r2, 0x1
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0x3F
- bne _08090978
-_0809098A:
- movs r0, 0
-_0809098C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090994: .4byte gUnknown_810A350
- thumb_func_end sub_809095C
-
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_8090208.s b/asm/code_8090208.s
new file mode 100644
index 0000000..56fef8f
--- /dev/null
+++ b/asm/code_8090208.s
@@ -0,0 +1,922 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8090298
+sub_8090298:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bhi _080902AE
+ movs r0, 0x4
+ b _080902C2
+_080902AE:
+ cmp r1, 0x3E
+ bhi _080902C0
+ ldr r0, _080902BC
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ b _080902C2
+ .align 2, 0
+_080902BC: .4byte gUnknown_81077A8
+_080902C0:
+ movs r0, 0x1
+_080902C2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090298
+
+ thumb_func_start sub_80902C8
+sub_80902C8:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bls _080902EC
+ cmp r1, 0x3E
+ bhi _080902EC
+ ldr r0, _080902E8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ b _080902EE
+ .align 2, 0
+_080902E8: .4byte gUnknown_81077E8
+_080902EC:
+ movs r0, 0
+_080902EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80902C8
+
+ thumb_func_start sub_80902F4
+sub_80902F4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x7
+ bl sub_809488C
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80902F4
+
+ thumb_func_start sub_8090314
+sub_8090314:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ movs r2, 0x7
+ bl sub_8094924
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090314
+
+ thumb_func_start sub_809033C
+sub_809033C:
+ lsls r0, 24
+ ldr r1, _08090348
+ lsrs r0, 20
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_08090348: .4byte gDungeons
+ thumb_func_end sub_809033C
+
+ thumb_func_start sub_809034C
+sub_809034C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xF8
+ adds r7, r2, 0
+ ldr r2, [sp, 0x118]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ asrs r1, 16
+ str r1, [sp, 0xE0]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xE4]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xE8]
+ bl sub_8090A34
+ str r0, [sp, 0xEC]
+ movs r5, 0
+ movs r0, 0
+ str r0, [sp, 0xF4]
+ mov r8, r0
+ add r4, sp, 0xC8
+ movs r0, 0xA
+ strb r0, [r4]
+ add r1, sp, 0xF4
+ ldrb r1, [r1]
+ strb r1, [r4, 0x1]
+ ldr r1, _0809040C
+ adds r0, r7, 0
+ bl strcpy
+ movs r2, 0
+ str r2, [sp, 0xF0]
+ movs r3, 0
+ ldr r0, _08090410
+ ldr r6, [r0]
+ movs r4, 0x1
+_080903A2:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r6, r0
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080903D0
+ lsrs r0, r1, 1
+ ands r0, r4
+ cmp r0, 0
+ beq _080903D0
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080903CA
+ ldr r0, [sp, 0xF0]
+ adds r0, 0x1
+ str r0, [sp, 0xF0]
+_080903CA:
+ adds r5, 0x1
+ cmp r5, 0x4
+ beq _080903DA
+_080903D0:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _080903A2
+_080903DA:
+ ldr r0, _08090414
+ mov r2, r9
+ lsls r1, r2, 4
+ adds r0, r1, r0
+ ldrb r0, [r0, 0x5]
+ mov r9, r1
+ ldr r1, [sp, 0xE4]
+ cmp r1, 0
+ bne _080903F2
+ cmp r0, 0x3
+ ble _080903F2
+ movs r0, 0x3
+_080903F2:
+ cmp r5, r0
+ ble _0809043C
+ cmp r0, 0x1
+ bne _0809041C
+ ldr r0, _08090418
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ b _08090430
+ .align 2, 0
+_0809040C: .4byte gUnknown_8108F40
+_08090410: .4byte gRecruitedPokemonRef
+_08090414: .4byte gDungeons
+_08090418: .4byte gUnknown_8115A2C
+_0809041C:
+ ldr r1, _08090464
+ subs r0, r5, r0
+ str r0, [r1]
+ ldr r0, _08090468
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+_08090430:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r2, 0x1
+ mov r8, r2
+_0809043C:
+ ldr r0, _0809046C
+ mov r2, r9
+ adds r1, r2, r0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809048E
+ ldr r1, [sp, 0xEC]
+ cmp r0, r1
+ bge _0809048E
+ ldr r1, _08090464
+ str r0, [r1]
+ ldr r2, [sp, 0xEC]
+ subs r0, r2, r0
+ str r0, [r1, 0x4]
+ mov r0, r8
+ cmp r0, 0
+ bne _08090474
+ ldr r0, _08090470
+ b _08090476
+ .align 2, 0
+_08090464: .4byte gUnknown_202DE30
+_08090468: .4byte gUnknown_81159DC
+_0809046C: .4byte gDungeons
+_08090470: .4byte gUnknown_8115A80
+_08090474:
+ ldr r0, _080904AC
+_08090476:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_0809048E:
+ ldr r2, [sp, 0xE0]
+ cmp r2, 0
+ beq _0809054E
+ ldr r0, _080904B0
+ adds r1, r2, 0
+ bl CopyCyanSpeciesNametoBuffer
+ cmp r5, 0x3
+ ble _080904D2
+ mov r0, r8
+ cmp r0, 0
+ bne _080904B8
+ ldr r0, _080904B4
+ b _080904BA
+ .align 2, 0
+_080904AC: .4byte gUnknown_8115ADC
+_080904B0: .4byte gAvailablePokemonNames
+_080904B4: .4byte gUnknown_8115B3C
+_080904B8:
+ ldr r0, _08090528
+_080904BA:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_080904D2:
+ ldr r0, [sp, 0xE0]
+ bl GetPokemonSize
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r2, _0809052C
+ mov r10, r2
+ movs r6, 0x1
+_080904E4:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08090510
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _08090510
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ bl GetPokemonSize
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0
+_08090510:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _080904E4
+ cmp r5, 0x6
+ ble _0809054E
+ mov r2, r8
+ cmp r2, 0
+ bne _08090534
+ ldr r0, _08090530
+ b _08090536
+ .align 2, 0
+_08090528: .4byte gUnknown_8115BA4
+_0809052C: .4byte gRecruitedPokemonRef
+_08090530: .4byte gUnknown_8115BF4
+_08090534:
+ ldr r0, _080905D0
+_08090536:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r0, 0x1
+ mov r8, r0
+_0809054E:
+ ldr r1, [sp, 0xE4]
+ cmp r1, 0
+ beq _08090602
+ add r5, sp, 0xCC
+ ldr r1, _080905D4
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ add r4, sp, 0xD4
+ ldr r1, _080905D8
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ movs r6, 0
+ mov r10, r4
+ ldr r0, _080905DC
+ add r0, r9
+ ldrb r5, [r0, 0xB]
+ add r4, sp, 0xCC
+_08090578:
+ adds r0, r5, 0
+ asrs r0, r6
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809059E
+ ldrh r0, [r4]
+ bl sub_8090820
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809059E
+ mov r2, r10
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ bl sub_80911A4
+ cmp r0, 0
+ beq _080905A6
+_0809059E:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08090578
+_080905A6:
+ cmp r6, 0x3
+ bgt _08090602
+ add r4, sp, 0xD8
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0xCC
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_8092A88
+ ldr r0, _080905E0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_80928C0
+ mov r0, r8
+ cmp r0, 0
+ bne _080905E8
+ ldr r0, _080905E4
+ b _080905EA
+ .align 2, 0
+_080905D0: .4byte gUnknown_8115C4C
+_080905D4: .4byte gUnknown_8108F42
+_080905D8: .4byte gUnknown_8108F4A
+_080905DC: .4byte gDungeons
+_080905E0: .4byte gUnknown_202DE58
+_080905E4: .4byte gUnknown_8115CB8
+_080905E8:
+ ldr r0, _080906A0
+_080905EA:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_08090602:
+ ldr r0, _080906A4
+ add r0, r9
+ ldrb r1, [r0, 0xB]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080906CE
+ ldr r5, _080906A8
+ ldr r2, [sp, 0xE0]
+ cmp r2, 0
+ beq _0809063A
+ adds r0, r2, 0
+ movs r1, 0
+ bl GetPokemonType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090638
+ ldr r0, [sp, 0xE0]
+ movs r1, 0x1
+ bl GetPokemonType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0809063A
+_08090638:
+ movs r5, 0
+_0809063A:
+ ldr r0, _080906A8
+ cmp r5, r0
+ bne _080906CE
+ movs r5, 0
+ movs r6, 0x1
+_08090644:
+ ldr r2, _080906AC
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08090686
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _08090686
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl GetPokemonType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090690
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r1, 0x1
+ bl GetPokemonType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090690
+_08090686:
+ adds r5, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _08090644
+_08090690:
+ ldr r0, _080906A8
+ cmp r5, r0
+ bne _080906CE
+ mov r0, r8
+ cmp r0, 0
+ bne _080906B4
+ ldr r0, _080906B0
+ b _080906B6
+ .align 2, 0
+_080906A0: .4byte gUnknown_8115D14
+_080906A4: .4byte gDungeons
+_080906A8: .4byte 0x0000019d
+_080906AC: .4byte gRecruitedPokemonRef
+_080906B0: .4byte gUnknown_8115D5C
+_080906B4:
+ ldr r0, _080906D8
+_080906B6:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_080906CE:
+ mov r2, r8
+ cmp r2, 0
+ beq _080906DC
+ movs r0, 0x1
+ b _0809080E
+ .align 2, 0
+_080906D8: .4byte gUnknown_8115D94
+_080906DC:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _080906EC
+ ldr r0, [sp, 0xE8]
+ cmp r0, 0
+ beq _0809071A
+_080906EC:
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _08090708
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r2, 0x1
+ str r2, [sp, 0xF4]
+_08090708:
+ ldr r0, _080907F4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_0809071A:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _08090752
+ ldr r0, [sp, 0xF4]
+ cmp r0, 0
+ bne _08090740
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r1, 0x1
+ str r1, [sp, 0xF4]
+_08090740:
+ ldr r0, _080907F8
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_08090752:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08090792
+ ldr r2, [sp, 0xEC]
+ ldr r0, [sp, 0xF0]
+ cmn r2, r0
+ beq _08090792
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _08090780
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r2, 0x1
+ str r2, [sp, 0xF4]
+_08090780:
+ ldr r0, _080907FC
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_08090792:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080907DA
+ ldr r0, _08090800
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080907DA
+ ldr r2, [sp, 0xF4]
+ cmp r2, 0
+ bne _080907C8
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r0, 0x1
+ str r0, [sp, 0xF4]
+_080907C8:
+ ldr r0, _08090804
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_080907DA:
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _0809080C
+ ldr r1, _08090808
+ adds r0, r7, 0
+ bl ExpandPlaceholdersBuffer
+ movs r0, 0
+ b _0809080E
+ .align 2, 0
+_080907EC: .4byte gDungeons
+_080907F0: .4byte gUnknown_8115DD4
+_080907F4: .4byte gUnknown_8115E00
+_080907F8: .4byte gUnknown_8115E28
+_080907FC: .4byte gUnknown_8115E54
+_08090800: .4byte gUnknown_203B460
+_08090804: .4byte gUnknown_8115E80
+_08090808: .4byte gUnknown_8108F50
+_0809080C:
+ movs r0, 0x2
+_0809080E:
+ add sp, 0xF8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809034C
+
+ thumb_func_start sub_8090820
+sub_8090820:
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+ ldr r0, _08090868
+ ldr r0, [r0]
+ mov r12, r0
+ movs r7, 0x1
+_08090830:
+ movs r0, 0x58
+ muls r0, r4
+ mov r2, r12
+ adds r1, r2, r0
+ ldrh r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08090874
+ lsrs r0, r2, 1
+ ands r0, r7
+ cmp r0, 0
+ beq _08090874
+ movs r3, 0
+ movs r5, 0x1
+ adds r2, r1, 0
+ adds r2, 0x2C
+_08090852:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809086C
+ ldrh r0, [r2, 0x2]
+ cmp r0, r6
+ bne _0809086C
+ movs r0, 0x1
+ b _08090880
+ .align 2, 0
+_08090868: .4byte gRecruitedPokemonRef
+_0809086C:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08090852
+_08090874:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08090830
+ movs r0, 0
+_08090880:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090820
+
+ thumb_func_start sub_8090888
+sub_8090888:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r6, 0
+ b _0809089C
+_08090892:
+ ldrb r0, [r4]
+ cmp r0, 0xA
+ bne _0809089A
+ adds r6, 0x1
+_0809089A:
+ adds r4, 0x1
+_0809089C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08090892
+ ldrb r7, [r5]
+ b _080908AE
+_080908A6:
+ movs r0, 0xA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r6, 0x1
+_080908AE:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __modsi3
+ cmp r0, 0
+ bne _080908A6
+ adds r1, r7, 0
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080908CE
+_080908C2:
+ strb r1, [r4]
+ adds r4, 0x1
+ adds r5, 0x1
+ ldrb r1, [r5]
+ cmp r1, 0
+ bne _080908C2
+_080908CE:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090888
+
+ thumb_func_start sub_80908D8
+sub_80908D8:
+ push {lr}
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r0, 0x3E
+ bhi _08090908
+ ldr r0, _08090900
+ ldrb r3, [r2]
+ adds r0, r3, r0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08090908
+ ldr r1, _08090904
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrb r1, [r2, 0x1]
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0809090A
+ .align 2, 0
+_08090900: .4byte gUnknown_81077A8
+_08090904: .4byte gUnknown_8108084
+_08090908:
+ movs r0, 0x1
+_0809090A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80908D8
+
+ thumb_func_start sub_8090910
+sub_8090910:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldr r4, _0809094C
+ adds r0, r4, 0
+ bl RandomCapped
+ adds r6, r0, 0
+ adds r0, r4, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0x3E
+ bhi _08090954
+ ldr r0, _08090950
+ ldrb r1, [r5]
+ adds r1, r0
+ ldrb r0, [r5, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08090954
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ b _08090956
+ .align 2, 0
+_0809094C: .4byte 0x0000270f
+_08090950: .4byte gUnknown_81077A8
+_08090954:
+ movs r0, 0x46
+_08090956:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090910
+
+ thumb_func_start sub_809095C
+sub_809095C:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3E
+ bls _0809096A
+_08090966:
+ movs r0, 0x1
+ b _0809098C
+_0809096A:
+ movs r2, 0
+ ldr r0, _08090994
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x3F
+ beq _0809098A
+ adds r1, r4, 0
+_08090978:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _08090966
+ adds r2, 0x1
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bne _08090978
+_0809098A:
+ movs r0, 0
+_0809098C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090994: .4byte gUnknown_810A350
+ thumb_func_end sub_809095C
+
+ .align 2,0
diff --git a/asm/code_8094D28.s b/asm/code_8094D28.s
new file mode 100644
index 0000000..10991a1
--- /dev/null
+++ b/asm/code_8094D28.s
@@ -0,0 +1,314 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8094D28
+sub_8094D28:
+ push {r4-r7,lr}
+ ldr r2, _08094D64
+ str r0, [r2]
+ ldr r1, _08094D68
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r7, _08094D6C
+ adds r5, r2, 0
+ adds r4, r1, 0
+ ldr r6, _08094D70
+_08094D3C:
+ ldr r2, [r4]
+ lsls r3, r2, 2
+ adds r3, r5
+ subs r0, r2, 0x1
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsrs r1, r0, 30
+ eors r0, r1
+ muls r0, r6
+ adds r0, r2
+ str r0, [r3]
+ adds r2, 0x1
+ str r2, [r4]
+ cmp r2, r7
+ ble _08094D3C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094D64: .4byte gUnknown_3001198
+_08094D68: .4byte gUnknown_203B470
+_08094D6C: .4byte 0x0000026f
+_08094D70: .4byte 0x6c078965
+ thumb_func_end sub_8094D28
+
+ thumb_func_start sub_8094D74
+sub_8094D74:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ adds r7, r1, 0
+ ldr r0, _08094E34
+ bl sub_8094D28
+ movs r4, 0x1
+ movs r5, 0
+ adds r3, r7, 0
+ movs r0, 0x9C
+ lsls r0, 2
+ cmp r3, r0
+ bge _08094D96
+ adds r3, r0, 0
+_08094D96:
+ ldr r6, _08094E38
+ cmp r3, 0
+ beq _08094DE2
+ mov r9, r6
+ ldr r0, _08094E3C
+ adds r0, r6
+ mov r12, r0
+ adds r2, r6, 0
+_08094DA6:
+ ldr r1, [r2]
+ lsrs r0, r1, 30
+ eors r1, r0
+ ldr r0, _08094E40
+ muls r0, r1
+ ldr r1, [r2, 0x4]
+ eors r1, r0
+ lsls r0, r5, 2
+ add r0, r8
+ ldr r0, [r0]
+ adds r1, r0
+ adds r1, r5
+ str r1, [r2, 0x4]
+ adds r2, 0x4
+ adds r4, 0x1
+ adds r5, 0x1
+ ldr r0, _08094E44
+ cmp r4, r0
+ ble _08094DD6
+ mov r1, r12
+ ldr r0, [r1]
+ str r0, [r6]
+ mov r2, r9
+ movs r4, 0x1
+_08094DD6:
+ cmp r5, r7
+ blt _08094DDC
+ movs r5, 0
+_08094DDC:
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08094DA6
+_08094DE2:
+ ldr r3, _08094E44
+ ldr r5, _08094E38
+ ldr r0, _08094E3C
+ adds r0, r5
+ mov r8, r0
+ lsls r0, r4, 2
+ subs r0, 0x4
+ adds r2, r0, r5
+ ldr r1, _08094E48
+ mov r12, r1
+ adds r7, r3, 0
+_08094DF8:
+ ldr r0, [r2]
+ lsrs r1, r0, 30
+ eors r0, r1
+ mov r1, r12
+ muls r1, r0
+ ldr r0, [r2, 0x4]
+ eors r0, r1
+ subs r0, r4
+ str r0, [r2, 0x4]
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r7
+ ble _08094E1C
+ mov r1, r8
+ ldr r0, [r1]
+ str r0, [r6]
+ adds r2, r5, 0
+ movs r4, 0x1
+_08094E1C:
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08094DF8
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r6]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094E34: .4byte 0x012bd6aa
+_08094E38: .4byte gUnknown_3001198
+_08094E3C: .4byte 0x000009bc
+_08094E40: .4byte 0x0019660d
+_08094E44: .4byte 0x0000026f
+_08094E48: .4byte 0x5d588b65
+ thumb_func_end sub_8094D74
+
+ thumb_func_start sub_8094E4C
+sub_8094E4C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08094F54
+ ldr r2, [r0]
+ ldr r1, _08094F58
+ mov r8, r0
+ cmp r2, r1
+ ble _08094F1C
+ ldr r0, _08094F5C
+ cmp r2, r0
+ bne _08094E6C
+ ldr r0, _08094F60
+ bl sub_8094D28
+_08094E6C:
+ movs r3, 0
+ ldr r0, _08094F64
+ mov r9, r0
+ ldr r7, _08094F68
+ mov r12, r9
+ adds r5, r7, 0
+_08094E78:
+ ldr r4, [r5]
+ movs r6, 0x80
+ lsls r6, 24
+ ands r4, r6
+ ldr r0, [r5, 0x4]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ ldr r1, _08094F70
+ adds r0, r3, r1
+ lsls r0, 2
+ adds r0, r7
+ lsrs r2, r4, 1
+ ldr r1, [r0]
+ eors r1, r2
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r12
+ ldr r0, [r0]
+ eors r1, r0
+ stm r5!, {r1}
+ adds r3, 0x1
+ cmp r3, 0xE2
+ ble _08094E78
+ ldr r5, _08094F74
+ cmp r3, r5
+ bgt _08094EE6
+ ldr r1, _08094F68
+ ldr r4, _08094F64
+ mov r12, r4
+ lsls r0, r3, 2
+ adds r2, r0, r1
+ ldr r4, _08094F78
+ adds r0, r4
+ adds r7, r0, r1
+_08094EC0:
+ ldr r4, [r2]
+ ands r4, r6
+ ldr r0, [r2, 0x4]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ lsrs r0, r4, 1
+ ldm r7!, {r1}
+ eors r1, r0
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r12
+ ldr r0, [r0]
+ eors r1, r0
+ stm r2!, {r1}
+ adds r3, 0x1
+ cmp r3, r5
+ ble _08094EC0
+_08094EE6:
+ ldr r2, _08094F68
+ ldr r0, _08094F7C
+ adds r3, r2, r0
+ ldr r4, [r3]
+ movs r0, 0x80
+ lsls r0, 24
+ ands r4, r0
+ ldr r0, [r2]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r2, r1
+ lsrs r0, r4, 1
+ ldr r1, [r2]
+ eors r1, r0
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r9
+ ldr r0, [r0]
+ eors r1, r0
+ str r1, [r3]
+ movs r0, 0
+ mov r4, r8
+ str r0, [r4]
+_08094F1C:
+ ldr r2, _08094F68
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r2
+ ldr r4, [r0]
+ adds r1, 0x1
+ mov r0, r8
+ str r1, [r0]
+ lsrs r0, r4, 11
+ eors r4, r0
+ lsls r0, r4, 7
+ ldr r1, _08094F80
+ ands r0, r1
+ eors r4, r0
+ lsls r0, r4, 15
+ ldr r1, _08094F84
+ ands r0, r1
+ eors r4, r0
+ lsrs r0, r4, 18
+ eors r4, r0
+ adds r0, r4, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094F54: .4byte gUnknown_203B470
+_08094F58: .4byte 0x0000026f
+_08094F5C: .4byte 0x00000271
+_08094F60: .4byte 0x00001571
+_08094F64: .4byte gUnknown_203B474
+_08094F68: .4byte gUnknown_3001198
+_08094F6C: .4byte 0x7fffffff
+_08094F70: .4byte 0x0000018d
+_08094F74: .4byte 0x0000026e
+_08094F78: .4byte 0xfffffc74
+_08094F7C: .4byte 0x000009bc
+_08094F80: .4byte 0x9d2c5680
+_08094F84: .4byte 0xefc60000
+ thumb_func_end sub_8094E4C
+
+ .align 2,0
diff --git a/asm/code_8097670.s b/asm/code_8097670.s
index d7266df..288edc3 100644
--- a/asm/code_8097670.s
+++ b/asm/code_8097670.s
@@ -609,7 +609,7 @@ sub_8097D60:
adds r1, r3, 0
bl sub_809486C
mov r0, sp
- bl WriteSaveOptions
+ bl WriteGameOptions
mov r0, sp
bl WritePlayTime
mov r0, sp
@@ -634,7 +634,7 @@ sub_8097D98:
adds r1, r3, 0
bl sub_809485C
mov r0, sp
- bl ReadSaveOptions
+ bl ReadGameOptions
mov r0, sp
bl ReadPlayTime
mov r0, sp
diff --git a/asm/debug.s b/asm/debug.s
deleted file mode 100644
index e0f194d..0000000
--- a/asm/debug.s
+++ /dev/null
@@ -1,30 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start FatalError
-FatalError:
- push {r1-r3}
- push {r4,lr}
- sub sp, 0x100
- adds r1, r0, 0
- ldr r4, [sp, 0x108]
- ldr r0, _08011C14
- bl FatalErrorPrintFuncFileLine
- add r2, sp, 0x10C
- mov r0, sp
- adds r1, r4, 0
- bl vsprintf
- ldr r0, _08011C18
- mov r1, sp
- bl FatalErrorFormatMessage
- bl FatalErrorHang
- .align 2, 0
-_08011C14: .4byte gFatalText
-_08011C18: .4byte gUnknown_80D42D4
- thumb_func_end FatalError
-
- .align 2,0
diff --git a/asm/game_options.s b/asm/game_options.s
deleted file mode 100644
index aed77bf..0000000
--- a/asm/game_options.s
+++ /dev/null
@@ -1,801 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GameOptionsNotChange
-GameOptionsNotChange:
- push {lr}
- adds r2, r0, 0
- ldr r0, _08094A38
- ldr r1, [r0]
- ldrb r0, [r1, 0x8]
- ldrb r3, [r2, 0x8]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x9]
- ldrb r3, [r2, 0x9]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xA]
- ldrb r3, [r2, 0xA]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xB]
- ldrb r3, [r2, 0xB]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1]
- ldrb r3, [r2]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x1]
- ldrb r3, [r2, 0x1]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x2]
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x3]
- ldrb r3, [r2, 0x3]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x4]
- ldrb r3, [r2, 0x4]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xC]
- ldrb r2, [r2, 0xC]
- cmp r0, r2
- bne _08094A3C
- movs r0, 0x1
- b _08094A3E
- .align 2, 0
-_08094A38: .4byte gUnknown_203B46C
-_08094A3C:
- movs r0, 0
-_08094A3E:
- pop {r1}
- bx r1
- thumb_func_end GameOptionsNotChange
-
- thumb_func_start WriteSaveOptions
-WriteSaveOptions:
- push {r4-r7,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xFF
- mov r0, sp
- strb r1, [r0]
- mov r7, sp
- adds r7, 0x1
- movs r0, 0
- strb r0, [r7]
- ldr r5, _08094B14
- ldr r1, [r5]
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x9]
- mov r1, sp
- adds r6, r7, 0
- cmp r0, 0
- bne _08094A74
- adds r1, r6, 0
-_08094A74:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0xA]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094A88
- mov r1, sp
-_08094A88:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0xB]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094A9C
- mov r1, sp
-_08094A9C:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AB0
- mov r1, sp
-_08094AB0:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AC4
- mov r1, sp
-_08094AC4:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x2]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AD8
- mov r1, sp
-_08094AD8:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- adds r1, r7, 0
- cmp r0, 0
- beq _08094AEC
- mov r1, sp
-_08094AEC:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r1, [r5]
- adds r1, 0x4
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_809488C
- ldr r1, [r5]
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_809488C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094B14: .4byte gUnknown_203B46C
- thumb_func_end WriteSaveOptions
-
- thumb_func_start ReadSaveOptions
-ReadSaveOptions:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- mov r1, sp
- movs r2, 0x2
- bl sub_8094924
- ldr r5, _08094C10
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x3
- mov r8, r0
- ands r0, r1
- strb r0, [r2, 0x8]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x9]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xA]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xB]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x2]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [r5]
- mov r0, sp
- ldrb r0, [r0]
- ands r4, r0
- strb r4, [r1, 0x3]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x3
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x7
- ands r0, r1
- strb r0, [r2, 0x4]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x2
- bl sub_8094924
- ldr r1, [r5]
- mov r0, sp
- ldrb r0, [r0]
- mov r2, r8
- ands r2, r0
- strb r2, [r1, 0xC]
- bl sub_8094C14
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C10: .4byte gUnknown_203B46C
- thumb_func_end ReadSaveOptions
-
- thumb_func_start sub_8094C14
-sub_8094C14:
- push {r4,lr}
- sub sp, 0x10
- mov r1, sp
- ldr r0, _08094C40
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, _08094C44
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- bl sub_80099F0
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C40: .4byte gUnknown_8109954
-_08094C44: .4byte gUnknown_203B46C
- thumb_func_end sub_8094C14
-
- thumb_func_start sub_8094C48
-sub_8094C48:
- push {lr}
- ldr r0, _08094C5C
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08094C60
- cmp r0, 0x3
- beq _08094C60
- movs r0, 0x1
- b _08094C62
- .align 2, 0
-_08094C5C: .4byte gUnknown_203B46C
-_08094C60:
- movs r0, 0
-_08094C62:
- pop {r1}
- bx r1
- thumb_func_end sub_8094C48
-
- thumb_func_start sub_8094C68
-sub_8094C68:
- push {lr}
- ldr r0, _08094C7C
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- beq _08094C80
- cmp r0, 0x5
- beq _08094C80
- movs r0, 0x1
- b _08094C82
- .align 2, 0
-_08094C7C: .4byte gUnknown_203B46C
-_08094C80:
- movs r0, 0
-_08094C82:
- pop {r1}
- bx r1
- thumb_func_end sub_8094C68
-
- thumb_func_start sub_8094C88
-sub_8094C88:
- push {lr}
- ldr r0, _08094C98
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- cmp r0, 0x2
- bhi _08094C9C
- movs r0, 0x1
- b _08094CA8
- .align 2, 0
-_08094C98: .4byte gUnknown_203B46C
-_08094C9C:
- subs r0, 0x3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08094CAA
- movs r0, 0x4
-_08094CA8:
- strb r0, [r1, 0x4]
-_08094CAA:
- pop {r0}
- bx r0
- thumb_func_end sub_8094C88
-
- thumb_func_start sub_8094CB0
-sub_8094CB0:
- ldr r1, _08094CBC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CBC: .4byte 0x0000ffff
- thumb_func_end sub_8094CB0
-
- thumb_func_start sub_8094CC0
-sub_8094CC0:
- ldr r1, _08094CCC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CCC: .4byte 0x0000ffff
- thumb_func_end sub_8094CC0
-
- thumb_func_start sub_8094CD0
-sub_8094CD0:
- ldr r1, _08094CDC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CDC: .4byte 0x0000ffff
- thumb_func_end sub_8094CD0
-
- thumb_func_start sub_8094CE0
-sub_8094CE0:
- ldr r1, _08094CEC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CEC: .4byte 0x0000ffff
- thumb_func_end sub_8094CE0
-
- thumb_func_start sub_8094CF0
-sub_8094CF0:
- ldr r1, _08094CFC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CFC: .4byte 0x0000ffff
- thumb_func_end sub_8094CF0
-
- thumb_func_start sub_8094D00
-sub_8094D00:
- ldr r1, _08094D0C
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094D0C: .4byte 0x0000ffff
- thumb_func_end sub_8094D00
-
- thumb_func_start sub_8094D10
-sub_8094D10:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D10
-
- thumb_func_start sub_8094D14
-sub_8094D14:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D14
-
- thumb_func_start sub_8094D18
-sub_8094D18:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D18
-
- thumb_func_start sub_8094D1C
-sub_8094D1C:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D1C
-
- thumb_func_start sub_8094D20
-sub_8094D20:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D20
-
- thumb_func_start sub_8094D24
-sub_8094D24:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D24
-
- thumb_func_start sub_8094D28
-sub_8094D28:
- push {r4-r7,lr}
- ldr r2, _08094D64
- str r0, [r2]
- ldr r1, _08094D68
- movs r0, 0x1
- str r0, [r1]
- ldr r7, _08094D6C
- adds r5, r2, 0
- adds r4, r1, 0
- ldr r6, _08094D70
-_08094D3C:
- ldr r2, [r4]
- lsls r3, r2, 2
- adds r3, r5
- subs r0, r2, 0x1
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- lsrs r1, r0, 30
- eors r0, r1
- muls r0, r6
- adds r0, r2
- str r0, [r3]
- adds r2, 0x1
- str r2, [r4]
- cmp r2, r7
- ble _08094D3C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094D64: .4byte gUnknown_3001198
-_08094D68: .4byte gUnknown_203B470
-_08094D6C: .4byte 0x0000026f
-_08094D70: .4byte 0x6c078965
- thumb_func_end sub_8094D28
-
- thumb_func_start sub_8094D74
-sub_8094D74:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- adds r7, r1, 0
- ldr r0, _08094E34
- bl sub_8094D28
- movs r4, 0x1
- movs r5, 0
- adds r3, r7, 0
- movs r0, 0x9C
- lsls r0, 2
- cmp r3, r0
- bge _08094D96
- adds r3, r0, 0
-_08094D96:
- ldr r6, _08094E38
- cmp r3, 0
- beq _08094DE2
- mov r9, r6
- ldr r0, _08094E3C
- adds r0, r6
- mov r12, r0
- adds r2, r6, 0
-_08094DA6:
- ldr r1, [r2]
- lsrs r0, r1, 30
- eors r1, r0
- ldr r0, _08094E40
- muls r0, r1
- ldr r1, [r2, 0x4]
- eors r1, r0
- lsls r0, r5, 2
- add r0, r8
- ldr r0, [r0]
- adds r1, r0
- adds r1, r5
- str r1, [r2, 0x4]
- adds r2, 0x4
- adds r4, 0x1
- adds r5, 0x1
- ldr r0, _08094E44
- cmp r4, r0
- ble _08094DD6
- mov r1, r12
- ldr r0, [r1]
- str r0, [r6]
- mov r2, r9
- movs r4, 0x1
-_08094DD6:
- cmp r5, r7
- blt _08094DDC
- movs r5, 0
-_08094DDC:
- subs r3, 0x1
- cmp r3, 0
- bne _08094DA6
-_08094DE2:
- ldr r3, _08094E44
- ldr r5, _08094E38
- ldr r0, _08094E3C
- adds r0, r5
- mov r8, r0
- lsls r0, r4, 2
- subs r0, 0x4
- adds r2, r0, r5
- ldr r1, _08094E48
- mov r12, r1
- adds r7, r3, 0
-_08094DF8:
- ldr r0, [r2]
- lsrs r1, r0, 30
- eors r0, r1
- mov r1, r12
- muls r1, r0
- ldr r0, [r2, 0x4]
- eors r0, r1
- subs r0, r4
- str r0, [r2, 0x4]
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, r7
- ble _08094E1C
- mov r1, r8
- ldr r0, [r1]
- str r0, [r6]
- adds r2, r5, 0
- movs r4, 0x1
-_08094E1C:
- subs r3, 0x1
- cmp r3, 0
- bne _08094DF8
- movs r0, 0x80
- lsls r0, 24
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094E34: .4byte 0x012bd6aa
-_08094E38: .4byte gUnknown_3001198
-_08094E3C: .4byte 0x000009bc
-_08094E40: .4byte 0x0019660d
-_08094E44: .4byte 0x0000026f
-_08094E48: .4byte 0x5d588b65
- thumb_func_end sub_8094D74
-
- thumb_func_start sub_8094E4C
-sub_8094E4C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08094F54
- ldr r2, [r0]
- ldr r1, _08094F58
- mov r8, r0
- cmp r2, r1
- ble _08094F1C
- ldr r0, _08094F5C
- cmp r2, r0
- bne _08094E6C
- ldr r0, _08094F60
- bl sub_8094D28
-_08094E6C:
- movs r3, 0
- ldr r0, _08094F64
- mov r9, r0
- ldr r7, _08094F68
- mov r12, r9
- adds r5, r7, 0
-_08094E78:
- ldr r4, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r4, r6
- ldr r0, [r5, 0x4]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- ldr r1, _08094F70
- adds r0, r3, r1
- lsls r0, 2
- adds r0, r7
- lsrs r2, r4, 1
- ldr r1, [r0]
- eors r1, r2
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r12
- ldr r0, [r0]
- eors r1, r0
- stm r5!, {r1}
- adds r3, 0x1
- cmp r3, 0xE2
- ble _08094E78
- ldr r5, _08094F74
- cmp r3, r5
- bgt _08094EE6
- ldr r1, _08094F68
- ldr r4, _08094F64
- mov r12, r4
- lsls r0, r3, 2
- adds r2, r0, r1
- ldr r4, _08094F78
- adds r0, r4
- adds r7, r0, r1
-_08094EC0:
- ldr r4, [r2]
- ands r4, r6
- ldr r0, [r2, 0x4]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- lsrs r0, r4, 1
- ldm r7!, {r1}
- eors r1, r0
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r12
- ldr r0, [r0]
- eors r1, r0
- stm r2!, {r1}
- adds r3, 0x1
- cmp r3, r5
- ble _08094EC0
-_08094EE6:
- ldr r2, _08094F68
- ldr r0, _08094F7C
- adds r3, r2, r0
- ldr r4, [r3]
- movs r0, 0x80
- lsls r0, 24
- ands r4, r0
- ldr r0, [r2]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- movs r1, 0xC6
- lsls r1, 3
- adds r2, r1
- lsrs r0, r4, 1
- ldr r1, [r2]
- eors r1, r0
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r9
- ldr r0, [r0]
- eors r1, r0
- str r1, [r3]
- movs r0, 0
- mov r4, r8
- str r0, [r4]
-_08094F1C:
- ldr r2, _08094F68
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r1, 2
- adds r0, r2
- ldr r4, [r0]
- adds r1, 0x1
- mov r0, r8
- str r1, [r0]
- lsrs r0, r4, 11
- eors r4, r0
- lsls r0, r4, 7
- ldr r1, _08094F80
- ands r0, r1
- eors r4, r0
- lsls r0, r4, 15
- ldr r1, _08094F84
- ands r0, r1
- eors r4, r0
- lsrs r0, r4, 18
- eors r4, r0
- adds r0, r4, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08094F54: .4byte gUnknown_203B470
-_08094F58: .4byte 0x0000026f
-_08094F5C: .4byte 0x00000271
-_08094F60: .4byte 0x00001571
-_08094F64: .4byte gUnknown_203B474
-_08094F68: .4byte gUnknown_3001198
-_08094F6C: .4byte 0x7fffffff
-_08094F70: .4byte 0x0000018d
-_08094F74: .4byte 0x0000026e
-_08094F78: .4byte 0xfffffc74
-_08094F7C: .4byte 0x000009bc
-_08094F80: .4byte 0x9d2c5680
-_08094F84: .4byte 0xefc60000
- thumb_func_end sub_8094E4C
-
- .align 2,0