summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
-rw-r--r--charmap.txt2
-rw-r--r--data/data_80D47B8.s26
-rw-r--r--data/data_80F4278.s143
-rw-r--r--include/pokemon.h36
-rw-r--r--include/trade_items_menu.h5
-rwxr-xr-xld_script.txt5
-rw-r--r--src/code_8009804.c26
-rw-r--r--src/code_8090208.c36
-rw-r--r--src/code_8097670.c28
-rw-r--r--src/code_809D148.c10
-rw-r--r--src/debug.c6
-rw-r--r--src/game_options.c271
-rw-r--r--src/load_screen.c18
-rw-r--r--src/main_menu.c13
-rw-r--r--src/save.c6
-rw-r--r--src/trade_items_menu.c4
-rw-r--r--src/wonder_mail_main_menu.c20
27 files changed, 1783 insertions, 1979 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
diff --git a/charmap.txt b/charmap.txt
index f1d932b..5827d5b 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -256,7 +256,9 @@ RED = 32 @ C2
BLACK = 33 @ C3
GREEN = 34 @ C4
CYAN = 35 @ C5
+CYAN_ALT = 63 05 @ c5 (used in #c5%s#r)
YELLOW = 36 @ C6
+YELLOW_ALT = 63 06 @ c6 (used in #c6%s#r)
WHITE_2 = 37 @ C7
DARKER_GRAY = 38 @ C8
DARK_GRAY = 39 @ C9
diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s
index 6dd541f..2a662f9 100644
--- a/data/data_80D47B8.s
+++ b/data/data_80D47B8.s
@@ -623,15 +623,30 @@ gUnknown_80DB7D0: @ 80DB7D0
.global gUnknown_80DB7E8
gUnknown_80DB7E8: @ 80DB7E8
-.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x14, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DB800
gUnknown_80DB800: @ 80DB800
-.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x09, 0x00, 0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x14, 0x00, 0x09, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DB818
gUnknown_80DB818: @ 80DB818
-.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x0e, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x14, 0x00, 0x0e, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DB830
gUnknown_80DB830: @ 80DB830
@@ -1062,7 +1077,9 @@ gUnknown_80DBE98: @ 80DBE98
.global gUnknown_80DBEB0
gUnknown_80DBEB0: @ 80DBEB0
- .incbin "baserom.gba", 0xDBEB0, 0x60
+ .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x0c, 0x00, 0x04, 0x00, 0x10, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gMenuItems
gMenuItems: @ 80DBF10
@@ -1455,6 +1472,7 @@ gUnknown_80DC34C: @ 80DC34C
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x0e, 0x00
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index 9203841..37482ec 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -1789,15 +1789,15 @@ gUnknown_80F6DF8: @ 80F6DF8
.global gUnknown_80F7AE8
gUnknown_80F7AE8: @ 80F7AE8
- .incbin "baserom.gba", 0xF7AE8, 0x2
+ .byte 0x00, 0x00
.global gUnknown_80F7AEA
gUnknown_80F7AEA: @ 80F7AEA
- .incbin "baserom.gba", 0xF7AEA, 0xE
+ .byte 0x0d, 0x03, 0x0d, 0x01, 0x0d, 0x03, 0x0d, 0x01, 0x01, 0x03, 0x01, 0x00, 0x11, 0x00
.global gUnknown_80F7AF8
gUnknown_80F7AF8: @ 80F7AF8
- .incbin "baserom.gba", 0xF7AF8, 0x4
+ .byte 0x3f, 0x3f, 0x00, 0x00
.global gUnknown_80F7AFC
gUnknown_80F7AFC: @ 80F7AFC
@@ -7339,11 +7339,11 @@ gUnknown_8106A1C: @ 8106A1C
.global gUnknown_8106A4C
gUnknown_8106A4C: @ 8106A4C
- .incbin "baserom.gba", 0x106A4C, 0x4
+ .4byte 0
.global gUnknown_8106A50
gUnknown_8106A50: @ 8106A50
- .incbin "baserom.gba", 0x106A50, 0x4
+ .4byte 1
.global gUnknown_8106A54
gUnknown_8106A54: @ 8106A54
@@ -7359,7 +7359,7 @@ gUnknown_8106AC8: @ 8106AC8
.global gUnknown_8106AE8
gUnknown_8106AE8: @ 8106AE8
- .incbin "baserom.gba", 0x106AE8, 0x4
+ .byte 0x00, 0x00, 0x01, 0x00
.global gUnknown_8106AEC
gUnknown_8106AEC: @ 8106AEC
@@ -7374,7 +7374,7 @@ gUnknown_8106B50: @ 8106B50
.global gUnknown_8106B60
gUnknown_8106B60: @ 8106B60
- .incbin "baserom.gba", 0x106B60, 0xC
+ .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0x01, 0x00, 0x00, 0x00
.global gUnknown_8106B6C
gUnknown_8106B6C: @ 8106B6C
@@ -7425,31 +7425,57 @@ gUnknown_8106BD0: @ 8106BD0
.global gUnknown_8106BD4
gUnknown_8106BD4: @ 8106BD4
- .incbin "baserom.gba", 0x106BD4, 0xC
+ .byte 0x87, 0x42, 0x24, 0x6d, 0x30, 0x23, 0x3d, 0x59, 0x24, 0x6d, 0x31, 0x00
.global gUnknown_8106BE0
gUnknown_8106BE0: @ 8106BE0
- .incbin "baserom.gba", 0x106BE0, 0xC
+ .byte 0x87, 0x40, 0x24, 0x6d, 0x30, 0x23, 0x3d, 0x59, 0x24, 0x6d, 0x31, 0x00
.global gUnknown_8106BEC
gUnknown_8106BEC: @ 8106BEC
- .incbin "baserom.gba", 0x106BEC, 0x8
+ .byte 0x87, 0x42, 0x24, 0x6d, 0x30, 0x00, 0x00, 0x00
.global gUnknown_8106BF4
gUnknown_8106BF4: @ 8106BF4
- .incbin "baserom.gba", 0x106BF4, 0xC
+ .byte 0x87, 0x40, 0x24, 0x6d, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0f, 0x00
.global gUnknown_8106C00
gUnknown_8106C00: @ 8106C00
- .incbin "baserom.gba", 0x106C00, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0xfc, 0x6b, 0x10, 0x08
.global gUnknown_8106C18
gUnknown_8106C18: @ 8106C18
- .incbin "baserom.gba", 0x106C18, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0xfc, 0x6b, 0x10, 0x08
.global gUnknown_8106C30
gUnknown_8106C30: @ 8106C30
- .incbin "baserom.gba", 0x106C30, 0x60
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x0e, 0x00, 0x02, 0x00
+ .byte 0x0e, 0x00, 0x10, 0x00
+ .byte 0x10, 0x00, 0x00, 0x00
+ .byte 0x70, 0xf2, 0x02, 0x02
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0a, 0x00, 0x02, 0x00
+ .byte 0x02, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106C90
gUnknown_8106C90: @ 8106C90
@@ -7513,11 +7539,14 @@ gUnknown_8106CF4: @ 8106CF4
.global gUnknown_8106D08
gUnknown_8106D08: @ 8106D08
- .incbin "baserom.gba", 0x106D08, 0x60
+ .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x12, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x02, 0x00, 0x3c, 0xb4, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106D68
gUnknown_8106D68: @ 8106D68
- .incbin "baserom.gba", 0x106D68, 0x24
+ .byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106D8C
gUnknown_8106D8C: @ 8106D8C
@@ -7530,11 +7559,14 @@ gUnknown_8106D8C: @ 8106D8C
.global gUnknown_8106DA4
gUnknown_8106DA4: @ 8106DA4
- .incbin "baserom.gba", 0x106DA4, 0x24
+ .byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106DC8
gUnknown_8106DC8: @ 8106DC8
- .incbin "baserom.gba", 0x106DC8, 0x60
+ .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x02, 0x00, 0x08, 0xf3, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x04, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8106E28
gUnknown_8106E28: @ 8106E28
@@ -7666,8 +7698,7 @@ gUnknown_8106F7C: @ 8106F7C
.global gUnknown_8106FA4
gUnknown_8106FA4: @ 8106FA4
-@ replacing .incbin "baserom.gba", 0x00106fa4, 0x9
- .byte 0x23, 0x63, 0x25, 0x63, 0x25, 0x73, 0x23, 0x72, 0x00
+ .string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0"
.global gUnknown_8106FAD
gUnknown_8106FAD: @ 8106FAD
@@ -7787,16 +7818,12 @@ gUnknown_81075F4: @ 81075F4
.global gUnknown_8107600
gUnknown_8107600: @ 8107600
- .string "#c"
- .byte 0x06
- .string "%s#r"
+ .string "#{YELLOW_ALT}%s#r"
.align 2,0
.global gUnknown_8107608
gUnknown_8107608: @ 8107608
- .string "#c"
- .byte 0x05
- .string "%s#r"
+ .string "#{CYAN_ALT}%s#r"
.align 2,0
.global gUnownLetters
@@ -7820,11 +7847,12 @@ gUnknown_810763C: @ 810763C
.global gUnknown_8107645
gUnknown_8107645: @ 8107645
- .incbin "baserom.gba", 0x107645, 0xF
+ .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107654
gUnknown_8107654: @ 8107654
- .incbin "baserom.gba", 0x107654, 0x30
+ .byte 0x9d, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00
+ .byte 0x33, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107684
gUnknown_8107684: @ 8107684
@@ -7847,11 +7875,36 @@ gUnknown_81076BC: @ 81076BC
.global gUnknown_81076C4
gUnknown_81076C4: @ 81076C4
- .incbin "baserom.gba", 0x1076C4, 0x20
+.byte 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00
.global gUnknown_81076E4
gUnknown_81076E4: @ 81076E4
- .incbin "baserom.gba", 0x1076E4, 0x70
+ .4byte 9999
+ .4byte 4
+ .4byte 1
+ .4byte 2
+ .4byte 4
+ .4byte 4
+ .4byte 6
+ .4byte 7
+ .4byte 8
+ .4byte 9
+ .4byte 9
+ .4byte 9
+ .4byte 10
+ .4byte 10
+ .4byte 11
+ .4byte 11
+ .4byte 14
+ .4byte 14
+ .4byte 14
+ .4byte 16
+ .4byte 16
+ .4byte 9
+ .4byte 17
+ .4byte 6
+ .string "pksdir0\0"
+ .string "pksdir0\0"
.global gUnknown_8107754
gUnknown_8107754: @ 8107754
@@ -7973,11 +8026,11 @@ gUnknown_8108F40: @ 8108F40
.global gUnknown_8108F42
gUnknown_8108F42: @ 8108F42
- .incbin "baserom.gba", 0x108F42, 0x8
+ .byte 0x99, 0x00, 0x9c, 0x00, 0x9e, 0x00, 0xdb, 0x00
.global gUnknown_8108F4A
gUnknown_8108F4A: @ 8108F4A
- .incbin "baserom.gba", 0x108F4A, 0x6
+ .byte 0xe1, 0xe7, 0xe6, 0xe2, 0x00, 0x00
.global gUnknown_8108F50
gUnknown_8108F50: @ 8108F50
@@ -8007,27 +8060,37 @@ gUnknown_8109778: @ 8109778
.global gUnknown_810977C
gUnknown_810977C: @ 810977C
- .incbin "baserom.gba", 0x10977C, 0x8
+ @ replacing .incbin "baserom.gba", 0x0010977c, 0x8
+ .string "%d {POKE}\0"
.global gUnknown_8109784
gUnknown_8109784: @ 8109784
- .incbin "baserom.gba", 0x109784, 0x8
+ @ replacing .incbin "baserom.gba", 0x00109784, 0x8
+ .byte 0x87, 0x44
+ .asciz "%s\0"
+ .align 2,0
.global gUnknown_810978C
gUnknown_810978C: @ 810978C
- .incbin "baserom.gba", 0x10978C, 0x8
+ @ replacing .incbin "baserom.gba", 0x0010978c, 0x8
+ .byte 0x87, 0x41
+ .asciz "%s\0"
+ .align 2,0
.global gUnknown_8109794
gUnknown_8109794: @ 8109794
- .incbin "baserom.gba", 0x109794, 0x10
+ @ replacing .incbin "baserom.gba", 0x00109794, 0x10
+ .byte 0x25, 0x73, 0x23, 0x3d, 0x25, 0x63, 0x23, 0x43, 0x04, 0x25, 0x73, 0x23, 0x52, 0x00, 0x00, 0x00
.global gUnknown_81097A4
gUnknown_81097A4: @ 81097A4
- .incbin "baserom.gba", 0x1097A4, 0xC
+ @ replacing .incbin "baserom.gba", 0x001097a4, 0xc
+ .byte 0x25, 0x73, 0x23, 0x43, 0x04, 0x25, 0x73, 0x23, 0x52, 0x00, 0x00, 0x00
.global gUnknown_81097B0
gUnknown_81097B0: @ 81097B0
- .incbin "baserom.gba", 0x1097B0, 0x14
+ @ replacing .incbin "baserom.gba", 0x001097b0, 0x14
+ .byte 0xa0, 0x86, 0x01, 0x00, 0x10, 0x27, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00
.global gUnknown_81097C4
gUnknown_81097C4: @ 81097C4
@@ -8066,7 +8129,6 @@ gUnknown_81097F8: @ 81097F8
.global gRescueRankMaxPoints
gRescueRankMaxPoints: @ 8109810
- @ replacing .incbin "baserom.gba", 0x00109810, 0x1c
.4byte 50
.4byte 500
.4byte 1500
@@ -8077,8 +8139,7 @@ gRescueRankMaxPoints: @ 8109810
.global gTeamNamePlaceholder
gTeamNamePlaceholder: @ 810982C
- @ replacing .incbin "baserom.gba", 0x0010982c, 0x10
- .byte 0x50, 0x6f, 0x6b, 0xe9, 0x6d, 0x6f, 0x6e, 0x00
+ .string "Pokémon\0"
.string "pksdir0\0"
.global gUnknown_810983C
diff --git a/include/pokemon.h b/include/pokemon.h
index 363b24d..7658425 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -2,7 +2,6 @@
#define POKEMON_H
#include "file_system.h"
-#include "constants/species.h"
struct PokemonStruct
{
@@ -10,22 +9,29 @@ struct PokemonStruct
u16 unk0; // recruited??
u8 unk2;
u8 unk3;
- u8 fill4[0x8 - 0x4];
- s16 unk8; // species #
- u8 fillA[0x14 - 0xA];
+ u8 unk4;
+ u8 unk5;
+ u8 fill6[0x8 - 0x6];
+ /* 0x8 */ s16 speciesNum; // species #
+ u8 fillA[0xC - 0xA];
+ u8 unkC;
+ u8 fillD[0x10 - 0xD];
+ u8 unk10;
+ u8 fill11[0x14 - 0x11];
u16 unk14;
- u16 unk16; // HP
- u8 unk18; // attack
- u8 unk19; // sp attack
- u8 unk1A; // def
- u8 unk1B; // spdef
+ /* 0x16 */ u16 pokeHP; // HP
+ /* 0x18 */ u8 pokeAtt; // attack
+ /* 0x19 */ u8 pokeSPAtt; // sp attack
+ /* 0x1A */ u8 pokeDef; // def
+ /* 0x1B */ u8 pokeSPDef; // spdef
u32 unk1C;
- u32 unk20;
+ u8 unk20[4];
u8 unk24;
u8 fill25[3];
u8 unk28;
- u8 fill29[3];
- u32 unk2C;
+ u8 unk29;
+ u8 fill2A[2];
+ u8 unk2C[4];
u8 fill30[0x4C - 0x30];
/* 0x4C */ u8 name[0xA];
};
@@ -50,9 +56,9 @@ struct PokemonStruct3
struct unkStruct_203B45C
{
- struct PokemonStruct pokemon[NUM_SPECIES];
- struct PokemonStruct2 pokemon2[4];
- struct PokemonStruct3 pokemon3[4];
+ /* 0x0 */ struct PokemonStruct pokemon[NUM_SPECIES];
+ /* 0x8DF8 */ struct PokemonStruct2 pokemon2[4];
+ /* 0x8F88 */ struct PokemonStruct3 pokemon3[4];
};
struct EvolveStruct1
diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h
index 4c7e37c..31eac25 100644
--- a/include/trade_items_menu.h
+++ b/include/trade_items_menu.h
@@ -49,4 +49,9 @@ struct TradeItemsMenu
u8 fill25F[0x3A0 - 0x25F];
};
+
+s32 UpdateTradeItemsMenu(void);
+s32 CreateTradeItemsMenu(void);
+void CleanTradeItemsMenu(void);
+
#endif
diff --git a/ld_script.txt b/ld_script.txt
index e920b4a..3f7b5df 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -82,7 +82,6 @@ SECTIONS {
asm/code_800D090.o(.text);
src/code_80118A4.o(.text);
src/debug.o(.text);
- asm/debug.o(.text);
src/save.o(.text);
src/code_8012A18.o(.text);
src/more_input.o(.text);
@@ -194,6 +193,8 @@ SECTIONS {
asm/pokemon_3.o(.text);
src/dungeon.o(.text);
asm/code_809017C.o(.text);
+ src/code_8090208.o(.text);
+ asm/code_8090208.o(.text);
src/items.o(.text);
asm/items.o(.text);
src/rescue_team_info.o(.text);
@@ -203,7 +204,7 @@ SECTIONS {
src/friend_area_1.o(.text);
asm/code_8092334.o(.text);
src/game_options.o(.text);
- asm/game_options.o(.text);
+ asm/code_8094D28.o(.text);
src/play_time.o(.text);
src/code_8094F88.o(.text);
asm/code_8095014.o(.text);
diff --git a/src/code_8009804.c b/src/code_8009804.c
index 23407a7..845192a 100644
--- a/src/code_8009804.c
+++ b/src/code_8009804.c
@@ -16,7 +16,19 @@ struct unkStruct_202D240
};
extern struct unkStruct_202D240 gUnknown_202D240[8];
+struct unkStruct_202D038
+{
+ // size: 0x40
+ u32 unk0;
+ u32 unk4;
+ u8 fill[0x40 - 0x8];
+};
+
+extern struct unkStruct_202D038 gUnknown_202D038[8];
+
extern void CpuCopy(void* dest, void *src, s32 size);
+extern void sub_8009A1C(u32);
+
void vram_related_8009804(void)
{
@@ -123,3 +135,17 @@ void sub_80099C0(void)
// TODO shouldn't this be 202B838? It didn't match... might need raw address
CpuCopy(BG_SCREEN_ADDR(13),gUnknown_202B038 + 0x1, BG_SCREEN_SIZE);
}
+
+void sub_80099F0(u32 r0)
+{
+ s32 iVar2;
+ for(iVar2 = 0; iVar2 < 8; iVar2++)
+ {
+ gUnknown_202D038[iVar2].unk4 = r0;
+ }
+}
+
+void sub_8009A10(u32 *r0)
+{
+ sub_8009A1C(r0[1]);
+}
diff --git a/src/code_8090208.c b/src/code_8090208.c
new file mode 100644
index 0000000..b64b551
--- /dev/null
+++ b/src/code_8090208.c
@@ -0,0 +1,36 @@
+#include "global.h"
+#include "dungeon.h"
+
+extern const char gUnknown_8108F10[];
+extern const char gUnknown_8108F18[];
+extern const char gUnknown_8108F2C[];
+
+void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
+
+
+struct unkDungeonStruct
+{
+ u8 index;
+ u8 floor;
+};
+
+void sub_8090208(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
+{
+ ExpandPlaceholdersBuffer(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->index].name1); // #cD%s#r (normal floor print (no B)
+}
+
+void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
+{
+ if(gDungeons[dungeonLocation->index].stairDirection != 0){
+ ExpandPlaceholdersBuffer(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); //_F
+ }
+ else
+ {
+ ExpandPlaceholdersBuffer(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); // B _F
+ }
+}
+
+void CopyDungeonName1toBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
+{
+ strncpy(buffer, gDungeonNames[dungeonLocation->index].name1, 0x50);
+}
diff --git a/src/code_8097670.c b/src/code_8097670.c
index 388bce6..d9af468 100644
--- a/src/code_8097670.c
+++ b/src/code_8097670.c
@@ -1,5 +1,11 @@
#include "global.h"
+struct unkDungeonStruct
+{
+ u8 index;
+ u8 floor;
+};
+
struct unkStruct_203B494
{
// size: 0xC8?
@@ -7,9 +13,7 @@ struct unkStruct_203B494
s32 numAdventures;
s32 unk8;
s32 unkC;
- u8 unk10; // location?
- u8 unk11;
- u8 fill12[2];
+ struct unkDungeonStruct dungeonLocation;
s16 unk14;
s16 unk16;
s16 unk18;
@@ -36,15 +40,15 @@ struct unkStruct_203B494 *sub_8097680(void)
return &gUnknown_2039778;
}
-void sub_8097688(u8 *r0)
+void SetDungeonLocationInfo(struct unkDungeonStruct *r0)
{
- gUnknown_203B494->unk10 = r0[0];
- gUnknown_203B494->unk11 = r0[1];
+ gUnknown_203B494->dungeonLocation.index = r0->index;
+ gUnknown_203B494->dungeonLocation.floor = r0->floor;
}
-u8 *sub_809769C(void)
+struct unkDungeonStruct *GetDungeonLocationInfo(void)
{
- return &gUnknown_203B494->unk10;
+ return &gUnknown_203B494->dungeonLocation;
}
void sub_80976A8(void)
@@ -63,7 +67,7 @@ void sub_80976A8(void)
{
gUnknown_203B494->unk1C[iVar2] = 0;
}
-
+
for(iVar2 = 0; iVar2 < 0xD; iVar2++)
{
gUnknown_203B494->unk8C[iVar2] = 0;
@@ -150,7 +154,7 @@ void sub_8097810(void)
{
if(gUnknown_203B494->unk14 < 9999)
gUnknown_203B494->unk14++;
- sub_80976F8(0xB);
+ sub_80976F8(11);
}
s16 sub_8097838(void)
@@ -162,7 +166,7 @@ void sub_8097848(void)
{
if(gUnknown_203B494->unk16 < 9999)
gUnknown_203B494->unk16++;
- sub_80976F8(0xA);
+ sub_80976F8(10);
}
s16 sub_8097870(void)
@@ -179,7 +183,7 @@ void sub_8097890(void)
{
if(gUnknown_203B494->UNKC0.unkC0 < 99999)
gUnknown_203B494->UNKC0.unkC0++;
- sub_80976F8(0xC);
+ sub_80976F8(12);
}
s16 sub_80978B8(void)
diff --git a/src/code_809D148.c b/src/code_809D148.c
index 5d3c908..5a33674 100644
--- a/src/code_809D148.c
+++ b/src/code_809D148.c
@@ -255,15 +255,9 @@ void sub_809D220(u32 r0, u32 r1, u32 r2)
gUnknown_20399E8.unk4 = r1;
}
-u32 sub_809D234(void)
+bool32 sub_809D234(void)
{
- u32 temp;
- temp = gUnknown_20399E8.unk8;
- if(temp != 0)
- {
- temp = 1;
- }
- return temp;
+ return gUnknown_20399E8.unk8 != 0;
}
// TODO regswap but matches otherwise
diff --git a/src/debug.c b/src/debug.c
index 59fdc1a..aeccbe8 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -5,6 +5,7 @@
#include "debug.h"
extern void Hang();
+void FatalErrorHang(void) __attribute__((noreturn));
extern bool32 gNDS_DebugEnabled;
extern u8 gUnknown_203B150;
@@ -236,8 +237,7 @@ void FatalErrorHang()
Hang();
}
-/*void
-FatalError(struct DebugLocation *debug, const char *text, ...)
+void FatalError(struct DebugLocation *debug, const char *text, ...)
{
char buf[0x100];
va_list vArgv;
@@ -248,4 +248,4 @@ FatalError(struct DebugLocation *debug, const char *text, ...)
va_end(vArgv);
FatalErrorFormatMessage(gUnknown_80D42D4, buf);
FatalErrorHang();
-}*/
+}
diff --git a/src/game_options.c b/src/game_options.c
index 8f549f7..5328916 100644
--- a/src/game_options.c
+++ b/src/game_options.c
@@ -1,9 +1,26 @@
#include "global.h"
#include "gUnknown_203B46C.h"
+struct unkStruct_8109954
+{
+ // size: 0x10
+ u32 unk0[4];
+};
+
+struct unkStruct_8094CB0
+{
+ u16 unk0;
+ s16 unk2;
+};
+
+extern struct unkStruct_8109954 gUnknown_8109954;
+
extern struct UnkSaveStruct1 *gUnknown_203B46C;
extern struct UnkSaveStruct1 gUnknown_2038C70;
-extern void sub_8094C14();
+extern void sub_8094C14(void);
+extern void sub_80099F0(u32);
+extern void sub_809488C(u8 *r0, u8 *r1, u32 r2);
+extern void sub_8094924(u8 *r0, u8 *r1, u32 r2);
void LoadGameOptions(void)
{
@@ -32,3 +49,255 @@ void InitializeGameOptions(u8 r0)
gUnknown_203B46C->unkC = 0;
sub_8094C14();
}
+
+bool32 GameOptionsNotChange(struct UnkSaveStruct1 *r0)
+{
+ // NOTE: had to nest to match
+ if(gUnknown_203B46C->unk8 == r0->unk8)
+ if(gUnknown_203B46C->unk9 == r0->unk9)
+ if(gUnknown_203B46C->unkA == r0->unkA)
+ if(gUnknown_203B46C->playerGender == r0->playerGender)
+ if(gUnknown_203B46C->unk0 == r0->unk0)
+ if(gUnknown_203B46C->unk1 == r0->unk1)
+ if(gUnknown_203B46C->unk2 == r0->unk2)
+ if(gUnknown_203B46C->unk3 == r0->unk3)
+ if(gUnknown_203B46C->unk4 == r0->unk4)
+ if(gUnknown_203B46C->unkC == r0->unkC)
+ return TRUE;
+ return FALSE;
+}
+
+void WriteGameOptions(u8 *param_1)
+{
+ u8 zero;
+ u8 neg_1;
+ u8 *puVar2;
+
+
+ neg_1 = -1;
+ zero = 0;
+
+ sub_809488C(param_1, &gUnknown_203B46C->unk8, 2);
+
+ if(gUnknown_203B46C->unk9 != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->unkA != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->playerGender != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->unk0 != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->unk1 != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->unk2 != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ if(gUnknown_203B46C->unk3 != 0)
+ {
+ puVar2 = &neg_1;
+ }
+ else
+ {
+ puVar2 = &zero;
+ }
+ sub_809488C(param_1, puVar2, 1);
+
+ sub_809488C(param_1, &gUnknown_203B46C->unk4, 3);
+ sub_809488C(param_1, &gUnknown_203B46C->unkC, 2);
+}
+
+void ReadGameOptions(u8 *param_1)
+{
+ u8 byteArray[4];
+ sub_8094924(param_1, byteArray, 2);
+ gUnknown_203B46C->unk8 = byteArray[0] & 3;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unk9 = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unkA = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->playerGender = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unk0 = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unk1 = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unk2 = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 1);
+ gUnknown_203B46C->unk3 = byteArray[0] & 1;
+
+ sub_8094924(param_1, byteArray, 3);
+ gUnknown_203B46C->unk4 = byteArray[0] & 7;
+
+ sub_8094924(param_1, byteArray, 2);
+ gUnknown_203B46C->unkC = byteArray[0] & 3;
+
+ sub_8094C14();
+}
+
+void sub_8094C14(void)
+{
+ struct unkStruct_8109954 temp;
+
+ temp = gUnknown_8109954;
+
+ sub_80099F0(temp.unk0[gUnknown_203B46C->unk8 & 3]);
+}
+
+u32 sub_8094C48(void)
+{
+ switch(gUnknown_203B46C->unk4)
+ {
+ default:
+ return 1;
+ case 0:
+ case 3:
+ return 0;
+ }
+}
+
+u32 sub_8094C68(void)
+{
+ switch(gUnknown_203B46C->unk4)
+ {
+ default:
+ return 1;
+ case 2:
+ case 5:
+ return 0;
+ }
+}
+
+void sub_8094C88(void)
+{
+ if(gUnknown_203B46C->unk4 < 3)
+ gUnknown_203B46C->unk4 = 1;
+ else
+ {
+ if((u8)(gUnknown_203B46C->unk4 - 3) > 2)
+ return;
+ else
+ gUnknown_203B46C->unk4 = 4;
+ }
+}
+
+void sub_8094CB0(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+void sub_8094CC0(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+void sub_8094CD0(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+void sub_8094CE0(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+void sub_8094CF0(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+void sub_8094D00(struct unkStruct_8094CB0 *r0)
+{
+ r0->unk0 = -1;
+ r0->unk2 = -1;
+}
+
+u32 sub_8094D10(void)
+{
+ return 0;
+}
+
+u32 sub_8094D14(void)
+{
+ return 0;
+}
+
+u32 sub_8094D18(void)
+{
+ return 0;
+}
+
+u32 sub_8094D1C(void)
+{
+ return 0;
+}
+
+u32 sub_8094D20(void)
+{
+ return 0;
+}
+
+u32 sub_8094D24(void)
+{
+ return 0;
+}
+
diff --git a/src/load_screen.c b/src/load_screen.c
index 6271dbc..c0ff22d 100644
--- a/src/load_screen.c
+++ b/src/load_screen.c
@@ -93,10 +93,10 @@ extern u8 sub_80023E4(u32);
extern u8 *sub_8098FB4();
extern void ExpandPlaceholdersBuffer(u8 *buffer, u8 *text, ...);
extern s32 sub_8011C1C(void);
-extern u8 *sub_809769C(void);
+extern u8 *GetDungeonLocationInfo(void);
extern u32 GetNumAdventures(void);
extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
-extern void sub_8090228(u8 *, u8 *);
+extern void PrintDungeonLocationtoBuffer(u8 *, u8 *);
extern void sub_80922B4(u8 *, u8 *, u32);
extern s32 sub_8095324(u32);
extern u32 sub_8001658(u32, u32);
@@ -257,7 +257,7 @@ void DrawLoadScreenText(void)
// TODO: fix these branches.. correct logic but branching isn't right
if ((sub_8095324(1) != 0) || (sub_8095324(7) != 0)) {
if (iVar2 == 0xf1207) {
- sub_8090228(gUnknown_203B374->formattedLocation,sub_809769C());
+ PrintDungeonLocationtoBuffer(gUnknown_203B374->formattedLocation,GetDungeonLocationInfo());
}
else {
ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted
@@ -266,9 +266,6 @@ void DrawLoadScreenText(void)
else {
switch(sub_8011C1C())
{
- default:
- ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E7824); // Location unknown
- break;
case 1:
switch(sub_8001658(0,24))
{
@@ -285,11 +282,14 @@ void DrawLoadScreenText(void)
case 2:
if (iVar2 == 0xf1207)
{
- sub_8090228(gUnknown_203B374->formattedLocation,sub_809769C());
+ PrintDungeonLocationtoBuffer(gUnknown_203B374->formattedLocation,GetDungeonLocationInfo());
} else {
ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted
}
break;
+ default:
+ ExpandPlaceholdersBuffer(gUnknown_203B374->formattedLocation,&gUnknown_80E7824); // Location unknown
+ break;
}
}
xxx_call_draw_string(64,24,gUnknown_203B374->formattedLocation,0,0);
@@ -529,10 +529,10 @@ void DrawLoadScreenText(void)
"\tlsls r2, 1\n"
"\tadds r4, r2\n"
"_08039676:\n"
- "\tbl sub_809769C\n"
+ "\tbl GetDungeonLocationInfo\n"
"\tadds r1, r0, 0\n"
"\tadds r0, r4, 0\n"
- "\tbl sub_8090228\n"
+ "\tbl PrintDungeonLocationtoBuffer\n"
"\tb _08039696\n"
"\t.align 2, 0\n"
"_08039684: .4byte 0x000f1207\n"
diff --git a/src/main_menu.c b/src/main_menu.c
index 81b7525..cf0524a 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -6,6 +6,7 @@
#include "menu.h"
#include "memory.h"
#include "text.h"
+#include "trade_items_menu.h"
// NOTE: 0x13 and 0x14
// Communication Screen?
@@ -26,20 +27,16 @@ void sub_8035DA0(void);
extern void sub_8094C14(void);
extern void sub_8099690(u32);
-extern void DrawMainMenu(void);
-extern void CreateTradeItemsMenu(void);
extern void sub_8036FDC(s32);
extern void CreateWirelessCommsMenu(void);
extern void CreateFriendRescueMenu(void);
extern void CreateDualSlotMenu(void);
extern void CreateWonderMailMenu(void);
extern void CreateLoadScreen(u32);
-extern s32 sub_8035DB4(u32);
extern void CreateRescuePasswordMenu(u32);
extern void CreateSaveMenu(u32);
extern s32 UpdateMainMenu(void);
extern s32 UpdateLoadScreenMenu(void);
-extern s32 UpdateTradeItemsMenu(void);
extern s32 UpdateFriendRescueMenu(void);
extern s32 UpdateWonderMailMenu(void);
extern s32 UpdateDualSlotMenu(void);
@@ -47,10 +44,7 @@ extern s32 UpdateWirelessCommsMenu(void);
extern s32 UpdateRescuePasswordMenu(void);
extern s32 sub_80383D4(void);
extern s32 UpdateSaveMenu(void);
-
-extern void CleanMainMenu(void);
extern void CleanLoadScreen(void);
-extern void CleanTradeItemsMenu(void);
extern void sub_80370D4(void);
extern void CleanFriendRescueMenu(void);
extern void CleanWonderMailMenu(void);
@@ -60,6 +54,10 @@ extern void CleanRescuePasswordMenu(void);
extern void sub_80383A8(void);
extern void CleanSaveMenu(void);
+void CleanMainMenu(void);
+void DrawMainMenu(void);
+s32 sub_8035DB4(u32);
+
struct unkSubStruct
{
u32 unk0;
@@ -485,6 +483,7 @@ s32 sub_8035DB4(u32 currMenu)
break;
case 0x1a:
returnVar = 7;
+ break;
}
return returnVar;
}
diff --git a/src/save.c b/src/save.c
index a5bc356..ef09572 100644
--- a/src/save.c
+++ b/src/save.c
@@ -15,7 +15,7 @@ struct unk_struct
u8 unk4[0x10]; // has "POKE_DUNGEON__05
u32 unk14;
u32 unk18;
- u32 unk1C;
+ u32 dungeonLocation;
u32 unk20;
u32 padding[503];
};
@@ -179,7 +179,7 @@ extern u32 sub_80958F8(void);
extern void sub_8095900(void);
extern void sub_80972F4(void);
extern u32 sub_8097680(void);
-extern u32 *sub_809769C(void);
+extern u32 *GetDungeonLocationInfo(void);
extern void sub_80974E8(void);
extern void ResetNumAdventures(void);
extern void sub_80993D8(void);
@@ -529,7 +529,7 @@ u32 sub_80121E0(u32 r0)
temp = 0x1F;
r4->unk18 = r0;
- r4->unk1C = *sub_809769C();
+ r4->dungeonLocation = *GetDungeonLocationInfo();
r4->unk14 = 0x5071412;
string = sub_8011C4C();
diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c
index 0e1d171..da5abbc 100644
--- a/src/trade_items_menu.c
+++ b/src/trade_items_menu.c
@@ -114,7 +114,7 @@ enum TradeItemsModes
};
-u32 CreateTradeItemsMenu(void)
+s32 CreateTradeItemsMenu(void)
{
ResetUnusedInputStruct();
@@ -128,7 +128,7 @@ u32 CreateTradeItemsMenu(void)
return 1;
}
-u32 UpdateTradeItemsMenu(void)
+s32 UpdateTradeItemsMenu(void)
{
switch(gTradeItemsMenu->currMenu) {
diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c
index d6d6c2d..d2e1fca 100644
--- a/src/wonder_mail_main_menu.c
+++ b/src/wonder_mail_main_menu.c
@@ -62,7 +62,7 @@ extern bool8 DecodeWonderMailPassword(u8 *, struct WonderMail *);
extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData);
extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32);
-void sub_8039BAC(u32);
+void PrintWonderMailMainMenuError(u32);
void HandleWonderMailMainScreen(void);
void sub_8039AA8(void);
void sub_8039B14(void);
@@ -73,8 +73,8 @@ void HandlePasswordSuccess(void);
void HandlePrepareSaveScreen(void);
void HandleSaveAdventureScreen(void);
void HandleWonderMailAddedScreen(void);
-void sub_8039B3C(void);
-void sub_8039D0C(void);
+void ReturnToWonderMailMainScreen(void);
+void AdvanceToPasswordEntryScreen(void);
void HandlePasswordEntryScreen(void);
void HandleInvalidPasswordMenu(void);
@@ -150,10 +150,10 @@ u8 UpdateWonderMailMenu(void)
HandleWonderMailAddedScreen();
break;
case COMMUNICATION_ERROR:
- sub_8039B3C();
+ ReturnToWonderMailMainScreen();
break;
case PROMPT_PASSWORD_ENTRY: // "Please enter the Wonder Mail Password" Screen
- sub_8039D0C();
+ AdvanceToPasswordEntryScreen();
break;
case PASSWORD_ENTRY_SCREEN: // Password Entry
HandlePasswordEntryScreen();
@@ -242,7 +242,7 @@ void sub_8039B20(void)
}
}
-void sub_8039B3C(void)
+void ReturnToWonderMailMainScreen(void)
{
s32 local_8;
@@ -267,15 +267,15 @@ void sub_8039B58(void)
}
}
else {
- sub_8039BAC(gUnknown_203B3E8->wonderMailStatus);
+ PrintWonderMailMainMenuError(gUnknown_203B3E8->wonderMailStatus);
SetWonderMailMainMenuState(COMMUNICATION_ERROR);
}
}
}
-void sub_8039BAC(u32 arg)
+void PrintWonderMailMainMenuError(u32 status)
{
- switch(arg)
+ switch(status)
{
case 0:
break;
@@ -356,7 +356,7 @@ void HandlePasswordEntryScreen(void)
}
}
-void sub_8039D0C(void)
+void AdvanceToPasswordEntryScreen(void)
{
int iVar2;
if(sub_80144A4(&iVar2) == 0)