summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-10-11 09:03:17 -0700
committerGitHub <noreply@github.com>2021-10-11 09:03:17 -0700
commit25794a39c3539e66d1c0b2334cb35273cd9d8494 (patch)
tree43ca3a658e80672844b2906b8cbe151ed70c3621
parent2d4c802d769f53462a2742a5c6afaad4d7f290fb (diff)
Finish main menu decomp (#59)
* decomp rest of main_menu * move some main menu data over * decomp some more wonder mail * decomp the dungeon dialogue scene switches * more wonder mail * consolidate struct_802F204 * another wonder mail func * more wonder mail * slight cleanup
-rw-r--r--asm/code_807001C.s2807
-rw-r--r--asm/code_80848F0.s2076
-rw-r--r--asm/main_menu_1.s167
-rw-r--r--asm/memory_1.s2
-rw-r--r--asm/wonder_mail.s941
-rw-r--r--asm/wonder_mail_3.s354
-rw-r--r--asm/wonder_mail_3_mid.s1328
-rw-r--r--asm/wonder_mail_4.s257
-rw-r--r--data/data.s8
-rw-r--r--data/data_80E2068.s1103
-rw-r--r--data/data_80E59A8.s943
-rw-r--r--data/data_80F4278.s6
-rw-r--r--include/dungeon_global_data.h3
-rw-r--r--include/item.h1
-rw-r--r--include/main_menu.h12
-rw-r--r--include/sub_8095228.h4
-rw-r--r--include/wonder_mail.h41
-rwxr-xr-xld_script.txt10
-rw-r--r--src/code_2.c11
-rw-r--r--src/code_80521D0_1.c2
-rw-r--r--src/code_8057824_1.c8
-rw-r--r--src/code_80848F0.c421
-rw-r--r--src/main_menu.c497
-rw-r--r--src/main_menu_1.c216
-rw-r--r--src/memory_mid.c6
-rw-r--r--src/personality_test.c6
-rw-r--r--src/thank_you_wonder_mail.c26
-rw-r--r--src/wonder_mail.c649
-rw-r--r--src/wonder_mail_2.c38
-rw-r--r--src/wonder_mail_3.c192
-rw-r--r--src/wonder_mail_3_mid.c772
-rw-r--r--src/wonder_mail_4.c137
-rw-r--r--src/wonder_mail_pre.c305
33 files changed, 5742 insertions, 7607 deletions
diff --git a/asm/code_807001C.s b/asm/code_807001C.s
index 19a3a30..c5f3413 100644
--- a/asm/code_807001C.s
+++ b/asm/code_807001C.s
@@ -41960,2812 +41960,5 @@ _08084B5C:
bx r0
thumb_func_end sub_80848F0
- thumb_func_start DisplayPreFightDialogue
-DisplayPreFightDialogue:
- push {lr}
- ldr r0, _08084B80
- ldr r0, [r0]
- ldr r1, _08084B84
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3C
- bls _08084B76
- b _08084DDA
-_08084B76:
- lsls r0, 2
- ldr r1, _08084B88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08084B80: .4byte gDungeonGlobalData
-_08084B84: .4byte 0x00003a0d
-_08084B88: .4byte _08084B8C
- .align 2, 0
-_08084B8C:
- .4byte _08084DDA
- .4byte _08084C80
- .4byte _08084C86
- .4byte _08084C8C
- .4byte _08084C92
- .4byte _08084C98
- .4byte _08084C9E
- .4byte _08084CA4
- .4byte _08084CAA
- .4byte _08084CB0
- .4byte _08084CB6
- .4byte _08084CBC
- .4byte _08084CC2
- .4byte _08084CC8
- .4byte _08084CCE
- .4byte _08084CD4
- .4byte _08084CDA
- .4byte _08084CE0
- .4byte _08084CE6
- .4byte _08084CEC
- .4byte _08084CF2
- .4byte _08084CF8
- .4byte _08084CFE
- .4byte _08084D04
- .4byte _08084D0A
- .4byte _08084D10
- .4byte _08084D16
- .4byte _08084D1C
- .4byte _08084D22
- .4byte _08084D28
- .4byte _08084D28
- .4byte _08084D2E
- .4byte _08084D34
- .4byte _08084D3A
- .4byte _08084D40
- .4byte _08084D46
- .4byte _08084D4C
- .4byte _08084D52
- .4byte _08084D58
- .4byte _08084D5E
- .4byte _08084D64
- .4byte _08084D6A
- .4byte _08084D70
- .4byte _08084D76
- .4byte _08084D7C
- .4byte _08084D82
- .4byte _08084D88
- .4byte _08084D8E
- .4byte _08084D94
- .4byte _08084D9A
- .4byte _08084DA0
- .4byte _08084DA6
- .4byte _08084DAC
- .4byte _08084DB2
- .4byte _08084DB8
- .4byte _08084DBE
- .4byte _08084DC4
- .4byte _08084DCA
- .4byte _08084DD0
- .4byte _08084DD6
- .4byte _08084DDA
-_08084C80:
- bl SkarmonyPreFightDialogue
- b _08084DDA
-_08084C86:
- bl SkarmonyReFightDialogue
- b _08084DDA
-_08084C8C:
- bl sub_8086E40
- b _08084DDA
-_08084C92:
- bl TeamMeaniePreFightDialogue
- b _08084DDA
-_08084C98:
- bl TeamMeanieReFightDialogue
- b _08084DDA
-_08084C9E:
- bl sub_8087130
- b _08084DDA
-_08084CA4:
- bl ZapdosPreFightDialogue
- b _08084DDA
-_08084CAA:
- bl ZapdosReFightDialogue
- b _08084DDA
-_08084CB0:
- bl ZapdosPostStoryPreFightDialogue
- b _08084DDA
-_08084CB6:
- bl MoltresPreFightDialogue
- b _08084DDA
-_08084CBC:
- bl MoltresReFightDialogue
- b _08084DDA
-_08084CC2:
- bl MoltresPostStoryPreFightDialogue
- b _08084DDA
-_08084CC8:
- bl ArticunoPreFightDialogue
- b _08084DDA
-_08084CCE:
- bl ArticunoReFightDialogue
- b _08084DDA
-_08084CD4:
- bl ArticunoPostStoryPreFightDialogue
- b _08084DDA
-_08084CDA:
- bl sub_8088608
- b _08084DDA
-_08084CE0:
- bl sub_8088618
- b _08084DDA
-_08084CE6:
- bl GroudonPreFightDialogue
- b _08084DDA
-_08084CEC:
- bl GroudonReFightDialogue
- b _08084DDA
-_08084CF2:
- bl GroudonPostStoryPreFightDialogue
- b _08084DDA
-_08084CF8:
- bl MagmaCavernMidDialogue
- b _08084DDA
-_08084CFE:
- bl sub_8089168
- b _08084DDA
-_08084D04:
- bl RayquazaPreFightDialogue
- b _08084DDA
-_08084D0A:
- bl RayquazaReFightDialogue
- b _08084DDA
-_08084D10:
- bl RayquazaPostStoryPreFightDialogue
- b _08084DDA
-_08084D16:
- bl sub_80897F0
- b _08084DDA
-_08084D1C:
- bl sub_8089878
- b _08084DDA
-_08084D22:
- bl sub_80898E4
- b _08084DDA
-_08084D28:
- bl MewtwoPreFightDialogue
- b _08084DDA
-_08084D2E:
- bl MewtwoPreFightDialogue1
- b _08084DDA
-_08084D34:
- bl EnteiPreFightDialogue
- b _08084DDA
-_08084D3A:
- bl EnteiPreFightDialogue1
- b _08084DDA
-_08084D40:
- bl EnteiPreFightDialogue2
- b _08084DDA
-_08084D46:
- bl RaikouPreFightDialogue
- b _08084DDA
-_08084D4C:
- bl RaikouPreFightDialogue1
- b _08084DDA
-_08084D52:
- bl RaikouPreFightDialogue2
- b _08084DDA
-_08084D58:
- bl SuicunePreFightDialogue
- b _08084DDA
-_08084D5E:
- bl SuicunePreFightDialogue1
- b _08084DDA
-_08084D64:
- bl SuicunePreFightDialogue2
- b _08084DDA
-_08084D6A:
- bl HoOhPreFightDialogue
- b _08084DDA
-_08084D70:
- bl HoOhPreFightDialogue1
- b _08084DDA
-_08084D76:
- bl LatiosPreFightDialogue
- b _08084DDA
-_08084D7C:
- bl LatiosReFightDialogue
- b _08084DDA
-_08084D82:
- bl sub_808AC3C
- b _08084DDA
-_08084D88:
- bl RegirockPreFightDialogue
- b _08084DDA
-_08084D8E:
- bl RegicePreFightDialogue
- b _08084DDA
-_08084D94:
- bl RegisteelPreFightDialogue
- b _08084DDA
-_08084D9A:
- bl JirachiPreFightDialogue
- b _08084DDA
-_08084DA0:
- bl JirachiPreFightDialogue1
- b _08084DDA
-_08084DA6:
- bl LugiaPreFightDialogue
- b _08084DDA
-_08084DAC:
- bl KyogrePreFightDialogue
- b _08084DDA
-_08084DB2:
- bl DeoxysPreFightDialogue
- b _08084DDA
-_08084DB8:
- bl CelebiJoinDialogue
- b _08084DDA
-_08084DBE:
- bl sub_808C998
- b _08084DDA
-_08084DC4:
- bl MedichamRescueDialogue
- b _08084DDA
-_08084DCA:
- bl DummyFightDialogue
- b _08084DDA
-_08084DD0:
- bl SmeargleRescueDialogue
- b _08084DDA
-_08084DD6:
- bl sub_808CD9C
-_08084DDA:
- bl sub_8085764
- bl sub_80857B8
- ldr r0, _08084DF8
- ldr r0, [r0]
- ldr r1, _08084DFC
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bl sub_8097FF8
- pop {r0}
- bx r0
- .align 2, 0
-_08084DF8: .4byte gDungeonGlobalData
-_08084DFC: .4byte 0x0001356c
- thumb_func_end DisplayPreFightDialogue
-
- thumb_func_start sub_8084E00
-sub_8084E00:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- cmp r3, 0
- bne _08084E12
- b _0808512E
-_08084E12:
- ldr r1, _08084E30
- ldr r0, [r1]
- ldr r2, _08084E34
- adds r0, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x3C
- bls _08084E24
- b _0808511A
-_08084E24:
- lsls r0, 2
- ldr r1, _08084E38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08084E30: .4byte gDungeonGlobalData
-_08084E34: .4byte 0x00003a0d
-_08084E38: .4byte _08084E3C
- .align 2, 0
-_08084E3C:
- .4byte _0808511A
- .4byte _08084F30
- .4byte _08084F30
- .4byte _0808511A
- .4byte _08084F44
- .4byte _08084F44
- .4byte _0808511A
- .4byte _08084F58
- .4byte _08084F58
- .4byte _08084F58
- .4byte _08084F6C
- .4byte _08084F6C
- .4byte _08084F6C
- .4byte _08084F80
- .4byte _08084F80
- .4byte _08084F80
- .4byte _0808511A
- .4byte _0808511A
- .4byte _08084F94
- .4byte _08084F94
- .4byte _08084F94
- .4byte _0808511A
- .4byte _0808511A
- .4byte _08084FA8
- .4byte _08084FA8
- .4byte _08084FA8
- .4byte _08084FBC
- .4byte _08084FBC
- .4byte _0808511A
- .4byte _08084FD4
- .4byte _08084FD4
- .4byte _08084FD4
- .4byte _08084FE8
- .4byte _08084FE8
- .4byte _08084FE8
- .4byte _08084FFC
- .4byte _08084FFC
- .4byte _08084FFC
- .4byte _08085010
- .4byte _08085010
- .4byte _08085010
- .4byte _08085024
- .4byte _08085024
- .4byte _08085038
- .4byte _08085038
- .4byte _08085038
- .4byte _0808504C
- .4byte _08085064
- .4byte _0808507C
- .4byte _08085094
- .4byte _08085094
- .4byte _080850AC
- .4byte _080850C4
- .4byte _080850DC
- .4byte _080850F4
- .4byte _0808510C
- .4byte _0808511A
- .4byte _0808511A
- .4byte _0808511A
- .4byte _0808511A
- .4byte _0808511A
-_08084F30:
- ldr r0, [r2]
- ldr r1, _08084F40
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8086BDC
- b _0808511A
- .align 2, 0
-_08084F40: .4byte 0x00003a0d
-_08084F44:
- ldr r0, [r2]
- ldr r2, _08084F54
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8086F54
- b _0808511A
- .align 2, 0
-_08084F54: .4byte 0x00003a0d
-_08084F58:
- ldr r0, [r2]
- ldr r1, _08084F68
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8087334
- b _0808511A
- .align 2, 0
-_08084F68: .4byte 0x00003a0d
-_08084F6C:
- ldr r0, [r2]
- ldr r2, _08084F7C
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_80878F4
- b _0808511A
- .align 2, 0
-_08084F7C: .4byte 0x00003a0d
-_08084F80:
- ldr r0, [r2]
- ldr r1, _08084F90
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8088088
- b _0808511A
- .align 2, 0
-_08084F90: .4byte 0x00003a0d
-_08084F94:
- ldr r0, [r2]
- ldr r2, _08084FA4
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8088818
- b _0808511A
- .align 2, 0
-_08084FA4: .4byte 0x00003a0d
-_08084FA8:
- ldr r0, [r2]
- ldr r1, _08084FB8
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_80893B4
- b _0808511A
- .align 2, 0
-_08084FB8: .4byte 0x00003a0d
-_08084FBC:
- ldr r0, [r2]
- ldr r2, _08084FD0
- adds r0, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r3, 0
- bl sub_8089788
- b _0808511A
- .align 2, 0
-_08084FD0: .4byte 0x00003a0d
-_08084FD4:
- ldr r0, [r2]
- ldr r1, _08084FE4
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8089A00
- b _0808511A
- .align 2, 0
-_08084FE4: .4byte 0x00003a0d
-_08084FE8:
- ldr r0, [r2]
- ldr r2, _08084FF8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8089CFC
- b _0808511A
- .align 2, 0
-_08084FF8: .4byte 0x00003a0d
-_08084FFC:
- ldr r0, [r2]
- ldr r1, _0808500C
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_8089FF0
- b _0808511A
- .align 2, 0
-_0808500C: .4byte 0x00003a0d
-_08085010:
- ldr r0, [r2]
- ldr r2, _08085020
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_808A36C
- b _0808511A
- .align 2, 0
-_08085020: .4byte 0x00003a0d
-_08085024:
- ldr r0, [r2]
- ldr r1, _08085034
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_808A6E8
- b _0808511A
- .align 2, 0
-_08085034: .4byte 0x00003a0d
-_08085038:
- ldr r0, [r2]
- ldr r2, _08085048
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl sub_808AAF0
- b _0808511A
- .align 2, 0
-_08085048: .4byte 0x00003a0d
-_0808504C:
- ldr r0, [r2]
- ldr r1, _08085060
- adds r0, r1
- ldrb r1, [r0]
- adds r2, r4, 0x4
- adds r0, r3, 0
- bl sub_808AE54
- b _0808511A
- .align 2, 0
-_08085060: .4byte 0x00003a0d
-_08085064:
- ldr r0, [r2]
- ldr r2, _08085078
- adds r0, r2
- ldrb r1, [r0]
- adds r2, r4, 0x4
- adds r0, r3, 0
- bl sub_808AEC8
- b _0808511A
- .align 2, 0
-_08085078: .4byte 0x00003a0d
-_0808507C:
- ldr r0, [r2]
- ldr r1, _08085090
- adds r0, r1
- ldrb r1, [r0]
- adds r2, r4, 0x4
- adds r0, r3, 0
- bl sub_808AF3C
- b _0808511A
- .align 2, 0
-_08085090: .4byte 0x00003a0d
-_08085094:
- ldr r0, [r2]
- ldr r2, _080850A8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r2, r5, 0
- bl sub_808B3E4
- b _0808511A
- .align 2, 0
-_080850A8: .4byte 0x00003a0d
-_080850AC:
- ldr r0, [r2]
- ldr r1, _080850C0
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r2, r5, 0
- bl sub_808BE70
- b _0808511A
- .align 2, 0
-_080850C0: .4byte 0x00003a0d
-_080850C4:
- ldr r0, [r2]
- ldr r2, _080850D8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r2, r5, 0
- bl sub_808C1A4
- b _0808511A
- .align 2, 0
-_080850D8: .4byte 0x00003a0d
-_080850DC:
- ldr r0, [r2]
- ldr r1, _080850F0
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r2, r5, 0
- bl sub_808C414
- b _0808511A
- .align 2, 0
-_080850F0: .4byte 0x00003a0d
-_080850F4:
- ldr r0, [r2]
- ldr r2, _08085108
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r2, r5, 0
- bl nullsub_100
- b _0808511A
- .align 2, 0
-_08085108: .4byte 0x00003a0d
-_0808510C:
- ldr r0, [r2]
- ldr r1, _08085134
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_808C948
-_0808511A:
- cmp r5, 0
- bne _0808512E
- ldr r0, _08085138
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _0808512E
- ldr r0, _0808513C
- bl sub_8083E88
-_0808512E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08085134: .4byte 0x00003a0d
-_08085138: .4byte gDungeonGlobalData
-_0808513C: .4byte 0x000003e7
- thumb_func_end sub_8084E00
-
- thumb_func_start sub_8085140
-sub_8085140:
- push {lr}
- ldr r1, _08085160
- ldr r0, [r1]
- ldr r2, _08085164
- adds r0, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x3C
- bls _08085154
- b _08085294
-_08085154:
- lsls r0, 2
- ldr r1, _08085168
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08085160: .4byte gDungeonGlobalData
-_08085164: .4byte 0x00003a0d
-_08085168: .4byte _0808516C
- .align 2, 0
-_0808516C:
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085260
- .4byte _08085274
- .4byte _08085288
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
- .4byte _08085294
-_08085260:
- ldr r0, [r2]
- ldr r1, _08085270
- adds r0, r1
- ldrb r0, [r0]
- bl sub_808AFB0
- b _08085294
- .align 2, 0
-_08085270: .4byte 0x00003a0d
-_08085274:
- ldr r0, [r2]
- ldr r2, _08085284
- adds r0, r2
- ldrb r0, [r0]
- bl sub_808B030
- b _08085294
- .align 2, 0
-_08085284: .4byte 0x00003a0d
-_08085288:
- ldr r0, [r2]
- ldr r1, _08085298
- adds r0, r1
- ldrb r0, [r0]
- bl sub_808B0B0
-_08085294:
- pop {r0}
- bx r0
- .align 2, 0
-_08085298: .4byte 0x00003a0d
- thumb_func_end sub_8085140
-
- thumb_func_start sub_808529C
-sub_808529C:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- movs r3, 0x40
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- beq _08085348
- cmp r1, r0
- bgt _080852E0
- cmp r1, 0x90
- beq _08085334
- cmp r1, 0x90
- bgt _080852CE
- cmp r1, 0x38
- beq _08085354
- cmp r1, 0x38
- bgt _080852C8
- cmp r1, 0x17
- beq _08085328
- b _0808535A
-_080852C8:
- cmp r1, 0x5E
- beq _08085328
- b _0808535A
-_080852CE:
- cmp r1, 0x92
- beq _08085330
- cmp r1, 0x92
- blt _0808532C
- cmp r1, 0x96
- beq _08085340
- cmp r1, 0xFC
- beq _08085324
- b _0808535A
-_080852E0:
- ldr r0, _08085304
- cmp r1, r0
- beq _08085358
- cmp r1, r0
- bgt _08085308
- subs r0, 0x87
- cmp r1, r0
- beq _0808534C
- cmp r1, r0
- blt _08085344
- adds r0, 0x5
- cmp r1, r0
- beq _08085350
- adds r0, 0x3A
- cmp r1, r0
- beq _08085328
- b _0808535A
- .align 2, 0
-_08085304: .4byte 0x00000195
-_08085308:
- ldr r0, _08085320
- cmp r2, r0
- beq _08085358
- cmp r2, r0
- blt _08085358
- adds r0, 0x4
- cmp r2, r0
- beq _08085338
- adds r0, 0x1
- cmp r2, r0
- beq _0808533C
- b _0808535A
- .align 2, 0
-_08085320: .4byte 0x00000197
-_08085324:
- movs r3, 0x1
- b _0808535A
-_08085328:
- movs r3, 0x3
- b _0808535A
-_0808532C:
- movs r3, 0x5
- b _0808535A
-_08085330:
- movs r3, 0x7
- b _0808535A
-_08085334:
- movs r3, 0x9
- b _0808535A
-_08085338:
- movs r3, 0xC
- b _0808535A
-_0808533C:
- movs r3, 0xF
- b _0808535A
-_08085340:
- movs r3, 0x13
- b _0808535A
-_08085344:
- movs r3, 0x15
- b _0808535A
-_08085348:
- movs r3, 0x17
- b _0808535A
-_0808534C:
- movs r3, 0x19
- b _0808535A
-_08085350:
- movs r3, 0x1A
- b _0808535A
-_08085354:
- movs r3, 0x11
- b _0808535A
-_08085358:
- movs r3, 0x1D
-_0808535A:
- cmp r3, 0x40
- beq _0808536E
- adds r0, r3, 0
- bl sub_8098100
- lsls r0, 24
- cmp r0, 0
- bne _0808536E
- movs r0, 0
- b _08085370
-_0808536E:
- movs r0, 0x1
-_08085370:
- pop {r1}
- bx r1
- thumb_func_end sub_808529C
-
- thumb_func_start sub_8085374
-sub_8085374:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- movs r7, 0
- movs r6, 0
- bl sub_808D3F8
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- mov r8, r1
- movs r5, 0
-_0808538E:
- ldr r0, _08085444
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085448
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080853BE
- ldr r1, [r4, 0x70]
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- beq _080853B2
- adds r7, r4, 0
-_080853B2:
- adds r0, r1, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _080853BE
- adds r6, r4, 0
-_080853BE:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0808538E
- cmp r7, 0
- beq _0808546E
- cmp r6, 0
- bne _0808546E
- ldr r0, _08085444
- ldr r0, [r0]
- ldr r1, _0808544C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808546E
- movs r6, 0
- ldr r0, _08085450
- ldr r4, [r0]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x63
- beq _0808546E
- mov r5, sp
- movs r0, 0
- mov r9, r0
-_080853EE:
- ldrh r0, [r7, 0x4]
- adds r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08085454
- ands r4, r1
- orrs r4, r0
- asrs r1, r4, 16
- ldrh r2, [r7, 0x6]
- adds r1, r2
- lsls r1, 16
- ldr r0, _08085458
- ands r4, r0
- orrs r4, r1
- lsls r0, r4, 16
- asrs r0, 16
- asrs r1, r4, 16
- bl sub_804954C
- adds r1, r0, 0
- mov r0, r8
- bl sub_807034C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0808545C
- mov r0, r8
- strh r0, [r5]
- movs r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x2
- strb r0, [r5, 0x2]
- str r4, [sp, 0xC]
- str r1, [sp, 0x4]
- mov r1, r9
- strb r1, [r5, 0x10]
- mov r0, sp
- movs r1, 0x1
- bl sub_806B7F8
- b _0808546E
- .align 2, 0
-_08085444: .4byte gDungeonGlobalData
-_08085448: .4byte 0x0001357c
-_0808544C: .4byte 0x0000065c
-_08085450: .4byte gUnknown_80F4598
-_08085454: .4byte 0xffff0000
-_08085458: .4byte 0x0000ffff
-_0808545C:
- adds r6, 0x1
- ldr r0, _0808547C
- lsls r1, r6, 2
- adds r1, r0
- ldr r4, [r1]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x63
- bne _080853EE
-_0808546E:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808547C: .4byte gUnknown_80F4598
- thumb_func_end sub_8085374
-
- thumb_func_start sub_8085480
-sub_8085480:
- push {lr}
- bl sub_8083600
- pop {r1}
- bx r1
- thumb_func_end sub_8085480
-
- thumb_func_start sub_808548C
-sub_808548C:
- push {r4,r5,lr}
- movs r5, 0
-_08085490:
- ldr r0, _080854B8
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080854BC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080854C0
- ldr r0, [r4, 0x70]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _080854C0
- adds r0, r4, 0
- b _080854CC
- .align 2, 0
-_080854B8: .4byte gDungeonGlobalData
-_080854BC: .4byte 0x0001357c
-_080854C0:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08085490
- movs r0, 0x2
- bl sub_8085680
-_080854CC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808548C
-
- thumb_func_start sub_80854D4
-sub_80854D4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- movs r6, 0
- movs r5, 0
- add r0, sp, 0x10
- mov r8, r0
- mov r7, sp
-_080854E6:
- ldr r0, _080855D8
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080855DC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08085504
- stm r7!, {r4}
- adds r6, 0x1
-_08085504:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080854E6
- cmp r6, 0x3
- bgt _0808551C
- movs r1, 0
- lsls r0, r6, 2
- add r0, sp
-_08085514:
- stm r0!, {r1}
- adds r6, 0x1
- cmp r6, 0x3
- ble _08085514
-_0808551C:
- movs r6, 0
- movs r4, 0
- mov r2, sp
- mov r3, r8
- movs r5, 0x3
-_08085526:
- ldr r1, [r2]
- cmp r1, 0
- beq _0808553A
- ldr r0, [r1, 0x70]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- beq _0808553A
- str r4, [r2]
- stm r3!, {r1}
- adds r6, 0x1
-_0808553A:
- adds r2, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08085526
- movs r4, 0
- mov r2, sp
- lsls r0, r6, 2
- mov r1, r8
- adds r3, r0, r1
- movs r5, 0x3
-_0808554E:
- ldr r1, [r2]
- cmp r1, 0
- beq _08085564
- ldr r0, [r1, 0x70]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _08085564
- str r4, [r2]
- stm r3!, {r1}
- adds r6, 0x1
-_08085564:
- adds r2, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0808554E
- movs r3, 0
- mov r2, sp
- lsls r0, r6, 2
- add r0, r8
- movs r5, 0x3
-_08085576:
- ldr r1, [r2]
- cmp r1, 0
- beq _08085582
- str r3, [r2]
- stm r0!, {r1}
- adds r6, 0x1
-_08085582:
- adds r2, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08085576
- cmp r6, 0x3
- bgt _0808559C
- movs r1, 0
- lsls r0, r6, 2
- add r0, r8
-_08085594:
- stm r0!, {r1}
- adds r6, 0x1
- cmp r6, 0x3
- ble _08085594
-_0808559C:
- movs r5, 0
- mov r4, r8
-_080855A0:
- lsls r1, r5, 2
- ldr r3, [r4]
- cmp r3, 0
- beq _080855C4
- ldr r0, _080855D8
- ldr r0, [r0]
- adds r0, r1
- ldr r2, _080855E0
- adds r1, r0, r2
- movs r6, 0
- ldrsh r1, [r1, r6]
- adds r2, 0x2
- adds r0, r2
- movs r6, 0
- ldrsh r2, [r0, r6]
- adds r0, r3, 0
- bl sub_80856C8
-_080855C4:
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- ble _080855A0
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080855D8: .4byte gDungeonGlobalData
-_080855DC: .4byte 0x0001357c
-_080855E0: .4byte 0x0000e220
- thumb_func_end sub_80854D4
-
- thumb_func_start sub_80855E4
-sub_80855E4:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- movs r5, 0
-_080855EC:
- ldr r0, _08085634
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085638
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08085618
- ldr r0, [r4, 0x70]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _08085612
- movs r7, 0x1
-_08085612:
- adds r0, r4, 0
- bl _call_via_r6
-_08085618:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080855EC
- cmp r7, 0
- bne _0808562E
- bl sub_808548C
- cmp r0, 0
- beq _0808562E
- bl _call_via_r6
-_0808562E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085634: .4byte gDungeonGlobalData
-_08085638: .4byte 0x0001357c
- thumb_func_end sub_80855E4
-
- thumb_func_start sub_808563C
-sub_808563C:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
-_08085642:
- ldr r0, _08085678
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0808567C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0808566C
- ldr r0, [r4, 0x70]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x41
- beq _0808566C
- adds r0, r4, 0
- bl _call_via_r6
-_0808566C:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08085642
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085678: .4byte gDungeonGlobalData
-_0808567C: .4byte 0x0001358c
- thumb_func_end sub_808563C
-
- thumb_func_start sub_8085680
-sub_8085680:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_08085688:
- ldr r0, _080856B0
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080856B4
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080856B8
- ldr r0, [r4, 0x70]
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, r6
- bne _080856B8
- adds r0, r4, 0
- b _080856C0
- .align 2, 0
-_080856B0: .4byte gDungeonGlobalData
-_080856B4: .4byte 0x000135cc
-_080856B8:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08085688
- movs r0, 0
-_080856C0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8085680
-
- thumb_func_start sub_80856C8
-sub_80856C8:
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0x1
- bl sub_80694C0
- adds r0, r4, 0
- movs r1, 0
- bl sub_804535C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80856C8
-
- thumb_func_start sub_80856E0
-sub_80856E0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r0, [r6, 0x70]
- mov r8, r0
- adds r0, r6, 0
- movs r1, 0x6
- adds r2, r7, 0
- bl sub_80861D4
- movs r5, 0xBA
- lsls r5, 1
- add r5, r8
- movs r4, 0x4
-_08085700:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 2
- adds r0, r1
- str r0, [r5]
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bge _08085700
- movs r1, 0x7
- adds r0, r7, 0
- ands r0, r1
- mov r1, r8
- adds r1, 0x46
- strb r0, [r1]
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_806CE68
- movs r5, 0xBA
- lsls r5, 1
- add r5, r8
- movs r4, 0x4
-_08085732:
- ldr r0, [r5]
- ldr r1, _08085760
- adds r0, r1
- str r0, [r5]
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bge _08085732
- movs r1, 0xBA
- lsls r1, 1
- add r1, r8
- movs r0, 0
- str r0, [r1]
- movs r0, 0x46
- bl sub_803E46C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085760: .4byte 0xfffffe00
- thumb_func_end sub_80856E0
-
- thumb_func_start sub_8085764
-sub_8085764:
- push {r4,r5,lr}
- sub sp, 0x74
- mov r0, sp
- bl sub_80457DC
- movs r5, 0
-_08085770:
- ldr r0, _080857AC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080857B0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0808579E
- ldr r0, [r4, 0x70]
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808579E
- adds r0, r4, 0
- ldr r1, _080857B4
- mov r2, sp
- bl sub_8068FE0
-_0808579E:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08085770
- add sp, 0x74
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080857AC: .4byte gDungeonGlobalData
-_080857B0: .4byte 0x0001358c
-_080857B4: .4byte 0x00000207
- thumb_func_end sub_8085764
-
- thumb_func_start sub_80857B8
-sub_80857B8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _08085854
- mov r9, r0
- ldr r1, _08085858
- mov r8, r1
-_080857CA:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- ldr r3, _0808585C
- adds r0, r3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08085840
- ldr r5, [r6, 0x70]
- mov r0, r9
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _08085840
- ldrb r4, [r1, 0x2]
- cmp r4, 0
- bne _08085840
- adds r0, r6, 0
- movs r1, 0
- bl sub_804535C
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r5, r1
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0xFE
- movs r0, 0x63
- strb r0, [r1]
- adds r2, r5, 0
- adds r2, 0x46
- ldrb r0, [r2]
- lsls r0, 2
- add r0, r8
- ldrh r1, [r6, 0x4]
- ldrh r0, [r0]
- adds r1, r0
- movs r3, 0xB6
- lsls r3, 1
- adds r0, r5, r3
- strh r1, [r0]
- ldrb r0, [r2]
- lsls r0, 2
- add r0, r8
- ldrh r1, [r6, 0x6]
- ldrh r0, [r0, 0x2]
- adds r1, r0
- adds r3, 0x2
- adds r0, r5, r3
- strh r1, [r0]
- ldrb r1, [r2]
- adds r0, r6, 0
- bl sub_806CE68
-_08085840:
- adds r7, 0x1
- cmp r7, 0x13
- ble _080857CA
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085854: .4byte gDungeonGlobalData
-_08085858: .4byte gUnknown_80F4448
-_0808585C: .4byte 0x000135cc
- thumb_func_end sub_80857B8
-
- thumb_func_start sub_8085860
-sub_8085860:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_803F4A0
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 11
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- bl sub_803F878
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8085860
-
- thumb_func_start sub_8085890
-sub_8085890:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_803F4A0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_803F878
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8085890
-
- thumb_func_start sub_80858AC
-sub_80858AC:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r4, r1, 0
- bl sub_803F994
- adds r6, r0, 0
- bl sub_803F9B0
- adds r5, r0, 0
- ldr r0, [r7]
- subs r0, r6
- adds r1, r4, 0
- bl __divsi3
- mov r9, r0
- ldr r0, [r7, 0x4]
- subs r0, r5
- adds r1, r4, 0
- bl __divsi3
- mov r8, r0
- movs r0, 0
- bl sub_803F4A0
- cmp r4, 0
- ble _080858FE
-_080858E6:
- add r6, r9
- add r5, r8
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_803F878
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bne _080858E6
-_080858FE:
- ldr r0, [r7]
- ldr r1, [r7, 0x4]
- bl sub_803F878
- movs r0, 0x46
- bl sub_803E46C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80858AC
-
- thumb_func_start sub_8085918
-sub_8085918:
- push {r4,lr}
- ldr r3, [r0, 0x70]
- movs r4, 0x7
- adds r2, r1, 0
- ands r2, r4
- adds r3, 0x46
- strb r2, [r3]
- bl sub_806CE68
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8085918
-
- thumb_func_start sub_8085930
-sub_8085930:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_0808593C:
- ldr r0, _0808596C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085970
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08085982
- cmp r6, 0x7
- ble _08085974
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _08085982
- .align 2, 0
-_0808596C: .4byte gDungeonGlobalData
-_08085970: .4byte 0x0001357c
-_08085974:
- ldr r0, [r4, 0x70]
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_08085982:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0808593C
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_08085990:
- ldr r0, _080859CC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080859D0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080859E2
- ldr r1, [r4, 0x70]
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080859E2
- cmp r6, 0x7
- ble _080859D4
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _080859E2
- .align 2, 0
-_080859CC: .4byte gDungeonGlobalData
-_080859D0: .4byte 0x0001358c
-_080859D4:
- adds r0, r1, 0
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_080859E2:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08085990
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8085930
-
- thumb_func_start sub_80859F0
-sub_80859F0:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_080859FC:
- ldr r0, _08085A2C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085A30
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08085A42
- cmp r6, 0x7
- ble _08085A34
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _08085A42
- .align 2, 0
-_08085A2C: .4byte gDungeonGlobalData
-_08085A30: .4byte 0x0001358c
-_08085A34:
- ldr r0, [r4, 0x70]
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_08085A42:
- adds r5, 0x1
- cmp r5, 0xF
- ble _080859FC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80859F0
-
- thumb_func_start sub_8085A50
-sub_8085A50:
- push {lr}
- ldr r0, [r0, 0x70]
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x24
- bhi _08085B04
- lsls r0, 2
- ldr r1, _08085A68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08085A68: .4byte _08085A6C
- .align 2, 0
-_08085A6C:
- .4byte _08085B04
- .4byte _08085B00
- .4byte _08085B04
- .4byte _08085B00
- .4byte _08085B04
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B04
- .4byte _08085B04
- .4byte _08085B04
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
- .4byte _08085B00
-_08085B00:
- movs r0, 0x1
- b _08085B06
-_08085B04:
- movs r0, 0
-_08085B06:
- pop {r1}
- bx r1
- thumb_func_end sub_8085A50
-
- thumb_func_start sub_8085B0C
-sub_8085B0C:
- push {r4,r5,lr}
- sub sp, 0x1C
- adds r5, r0, 0
- ldr r1, _08085B48
- mov r0, sp
- movs r2, 0x19
- bl memcpy
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _08085B3E
- mov r4, sp
-_08085B26:
- ldrb r1, [r4]
- adds r0, r5, 0
- bl sub_8085918
- movs r0, 0x6
- movs r1, 0x46
- bl sub_803E708
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0
- bne _08085B26
-_08085B3E:
- add sp, 0x1C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08085B48: .4byte gUnknown_8107358
- thumb_func_end sub_8085B0C
-
- thumb_func_start sub_8085B4C
-sub_8085B4C:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08085B7C
- str r3, [r0]
- cmp r3, 0
- ble _08085B76
- movs r6, 0x1
- adds r4, r1, 0
- adds r1, r5, 0
-_08085B5E:
- strb r6, [r1]
- ldm r2!, {r0}
- str r0, [r1, 0x4]
- ldm r4!, {r0}
- str r0, [r1, 0xC]
- movs r5, 0x4
- ldrsh r0, [r0, r5]
- str r0, [r1, 0x8]
- adds r1, 0x10
- subs r3, 0x1
- cmp r3, 0
- bne _08085B5E
-_08085B76:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085B7C: .4byte gUnknown_202F3D8
- thumb_func_end sub_8085B4C
-
- thumb_func_start sub_8085B80
-sub_8085B80:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r1, r0, 0
- movs r0, 0
- mov r8, r0
- movs r7, 0
- ldr r0, _08085BE4
- ldr r0, [r0]
- cmp r8, r0
- bge _08085C3E
- adds r5, r1, 0
-_08085B98:
- ldr r6, [r5, 0x4]
- ldr r2, [r6, 0x70]
- adds r3, r2, 0
- ldr r4, [r5, 0xC]
- ldrb r0, [r5]
- cmp r0, 0
- beq _08085C32
- movs r1, 0x1
- mov r8, r1
- ldr r0, [r5, 0x8]
- cmp r0, 0
- bne _08085C08
- adds r4, 0x8
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08085BE8
- strb r0, [r5]
- ldrb r1, [r4]
- movs r0, 0x7
- ands r0, r1
- adds r1, r2, 0
- adds r1, 0x46
- strb r0, [r1]
- movs r3, 0
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r1, 0x7
- bl sub_806CDD4
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r3, 0xC
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- bl sub_80856C8
- b _08085C32
- .align 2, 0
-_08085BE4: .4byte gUnknown_202F3D8
-_08085BE8:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- str r0, [r5, 0x8]
- str r4, [r5, 0xC]
- ldrb r1, [r4]
- movs r0, 0x7
- ands r0, r1
- adds r1, r3, 0
- adds r1, 0x46
- strb r0, [r1]
- movs r3, 0
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r1, 0
- bl sub_806CDD4
-_08085C08:
- ldr r0, [r5, 0x8]
- subs r0, 0x1
- str r0, [r5, 0x8]
- ldr r1, _08085C4C
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r2, [r4, r3]
- muls r1, r2
- lsls r1, 8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- muls r2, r0
- lsls r2, 8
- adds r0, r6, 0
- bl sub_804539C
-_08085C32:
- adds r5, 0x10
- adds r7, 0x1
- ldr r0, _08085C50
- ldr r0, [r0]
- cmp r7, r0
- blt _08085B98
-_08085C3E:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08085C4C: .4byte gUnknown_80F4448
-_08085C50: .4byte gUnknown_202F3D8
- thumb_func_end sub_8085B80
-
- thumb_func_start sub_8085C54
-sub_8085C54:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r0, [sp, 0x14]
- mov r10, r1
- mov r9, r2
- ldr r4, [sp, 0x48]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- bl sub_8085E98
- movs r0, 0
- mov r8, r0
- ldr r0, _08085E70
- ldr r0, [r0]
- ldr r5, [r0, 0x4]
- cmp r4, 0
- beq _08085CAE
- ldr r1, [sp, 0x14]
- cmp r1, 0
- blt _08085C92
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- str r0, [sp, 0x14]
-_08085C92:
- mov r2, r10
- cmp r2, 0
- blt _08085CA0
- lsrs r0, r2, 31
- add r0, r10
- asrs r0, 1
- mov r10, r0
-_08085CA0:
- mov r3, r9
- cmp r3, 0
- blt _08085CAE
- lsrs r0, r3, 31
- add r0, r9
- asrs r0, 1
- mov r9, r0
-_08085CAE:
- ldr r1, _08085E74
- ldr r0, [sp, 0x8]
- ands r0, r1
- ldr r1, _08085E78
- ands r0, r1
- ldr r1, _08085E7C
- ands r0, r1
- str r0, [sp, 0x8]
- ldr r0, _08085E80
- ldr r2, [r0]
- ldr r0, _08085E84
- ldr r3, [r0]
- movs r0, 0xBE
- lsls r0, 1
- adds r3, r0
- mov r0, r8
- add r1, sp, 0x8
- bl SetBGPaletteBufferColorRGB
- adds r5, 0x4
- movs r1, 0x1
- add r8, r1
- ldr r2, [sp, 0x14]
- lsls r2, 16
- str r2, [sp, 0x1C]
- mov r3, r10
- lsls r3, 16
- str r3, [sp, 0x20]
- mov r0, r9
- lsls r0, 16
- str r0, [sp, 0x24]
- add r7, sp, 0xC
- movs r1, 0xA0
- cmp r1, 0x1
- ble _08085D56
- add r6, sp, 0x8
- movs r4, 0xA0
- subs r4, 0x1
-_08085CFA:
- ldrb r0, [r5]
- ldr r3, [sp, 0x14]
- adds r2, r0, r3
- ldrb r0, [r5, 0x1]
- mov r3, r10
- adds r1, r0, r3
- ldrb r0, [r5, 0x2]
- add r0, r9
- cmp r2, 0xFF
- ble _08085D10
- movs r2, 0xFF
-_08085D10:
- cmp r1, 0xFF
- ble _08085D16
- movs r1, 0xFF
-_08085D16:
- cmp r0, 0xFF
- ble _08085D1C
- movs r0, 0xFF
-_08085D1C:
- cmp r2, 0
- bge _08085D22
- movs r2, 0
-_08085D22:
- cmp r1, 0
- bge _08085D28
- movs r1, 0
-_08085D28:
- cmp r0, 0
- bge _08085D2E
- movs r0, 0
-_08085D2E:
- strb r2, [r6]
- strb r1, [r6, 0x1]
- strb r0, [r6, 0x2]
- ldr r0, _08085E80
- ldr r2, [r0]
- ldr r0, _08085E84
- ldr r3, [r0]
- movs r0, 0xBE
- lsls r0, 1
- adds r3, r0
- mov r0, r8
- add r1, sp, 0x8
- bl SetBGPaletteBufferColorRGB
- adds r5, 0x4
- movs r1, 0x1
- add r8, r1
- subs r4, 0x1
- cmp r4, 0
- bne _08085CFA
-_08085D56:
- ldr r2, _08085E88
- ldr r3, [sp, 0x1C]
- lsrs r0, r3, 16
- ldr r1, [sp, 0x20]
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 16
- ldr r0, [r7, 0x4]
- ands r0, r2
- orrs r0, r1
- str r0, [r7, 0x4]
- ldr r0, _08085E8C
- ldr r1, _08085E80
- ldr r3, [r1]
- ldr r1, _08085E84
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- str r1, [sp]
- str r7, [sp, 0x4]
- movs r1, 0xA0
- movs r2, 0x20
- bl sub_8004C00
- movs r3, 0x20
- add r8, r3
- ldr r5, _08085E90
- add r6, sp, 0x8
- movs r4, 0x20
-_08085D94:
- ldrb r0, [r5]
- ldr r1, [sp, 0x14]
- adds r2, r0, r1
- ldrb r0, [r5, 0x1]
- mov r3, r10
- adds r1, r0, r3
- ldrb r0, [r5, 0x2]
- add r0, r9
- cmp r2, 0xFF
- ble _08085DAA
- movs r2, 0xFF
-_08085DAA:
- cmp r1, 0xFF
- ble _08085DB0
- movs r1, 0xFF
-_08085DB0:
- cmp r0, 0xFF
- ble _08085DB6
- movs r0, 0xFF
-_08085DB6:
- cmp r2, 0
- bge _08085DBC
- movs r2, 0
-_08085DBC:
- cmp r1, 0
- bge _08085DC2
- movs r1, 0
-_08085DC2:
- cmp r0, 0
- bge _08085DC8
- movs r0, 0
-_08085DC8:
- strb r2, [r6]
- strb r1, [r6, 0x1]
- strb r0, [r6, 0x2]
- ldr r0, _08085E80
- ldr r2, [r0]
- ldr r7, _08085E84
- ldr r3, [r7]
- movs r0, 0xBE
- lsls r0, 1
- adds r3, r0
- mov r0, r8
- add r1, sp, 0x8
- bl SetBGPaletteBufferColorRGB
- adds r5, 0x4
- movs r1, 0x1
- add r8, r1
- subs r4, 0x1
- cmp r4, 0
- bne _08085D94
- ldr r2, [sp, 0x18]
- cmp r2, 0
- beq _08085E5E
- ldr r0, [r7]
- ldr r3, _08085E94
- adds r0, r3
- ldr r0, [r0]
- ldr r5, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- mov r8, r0
- add r6, sp, 0x8
- movs r4, 0xD0
-_08085E0A:
- ldrb r0, [r5]
- ldr r1, [sp, 0x14]
- adds r2, r0, r1
- ldrb r0, [r5, 0x1]
- mov r3, r10
- adds r1, r0, r3
- ldrb r0, [r5, 0x2]
- add r0, r9
- cmp r2, 0xFF
- ble _08085E20
- movs r2, 0xFF
-_08085E20:
- cmp r1, 0xFF
- ble _08085E26
- movs r1, 0xFF
-_08085E26:
- cmp r0, 0xFF
- ble _08085E2C
- movs r0, 0xFF
-_08085E2C:
- cmp r2, 0
- bge _08085E32
- movs r2, 0
-_08085E32:
- cmp r1, 0
- bge _08085E38
- movs r1, 0
-_08085E38:
- cmp r0, 0
- bge _08085E3E
- movs r0, 0
-_08085E3E:
- strb r2, [r6]
- strb r1, [r6, 0x1]
- strb r0, [r6, 0x2]
- ldr r0, _08085E80
- ldr r2, [r0]
- mov r0, r8
- add r1, sp, 0x8
- movs r3, 0
- bl SetBGPaletteBufferColorRGB
- adds r5, 0x4
- movs r0, 0x1
- add r8, r0
- subs r4, 0x1
- cmp r4, 0
- bne _08085E0A
-_08085E5E:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085E70: .4byte gUnknown_202EE88
-_08085E74: .4byte 0xffffff00
-_08085E78: .4byte 0xffff00ff
-_08085E7C: .4byte 0xff00ffff
-_08085E80: .4byte gUnknown_202EDC8
-_08085E84: .4byte gDungeonGlobalData
-_08085E88: .4byte 0xffff0000
-_08085E8C: .4byte gUnknown_202EE8C
-_08085E90: .4byte gUnknown_202ECA4
-_08085E94: .4byte 0x000181e4
- thumb_func_end sub_8085C54
-
- thumb_func_start sub_8085E98
-sub_8085E98:
- ldr r0, _08085EA8
- ldr r0, [r0]
- ldr r1, _08085EAC
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08085EA8: .4byte gDungeonGlobalData
-_08085EAC: .4byte 0x00018215
- thumb_func_end sub_8085E98
-
- thumb_func_start sub_8085EB0
-sub_8085EB0:
- ldr r0, _08085EC0
- ldr r0, [r0]
- ldr r1, _08085EC4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08085EC0: .4byte gDungeonGlobalData
-_08085EC4: .4byte 0x00018215
- thumb_func_end sub_8085EB0
-
- thumb_func_start sub_8085EC8
-sub_8085EC8:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x28
- adds r4, r0, 0
- mov r8, r1
- mov r9, r2
- adds r6, r3, 0
- ldr r5, [sp, 0x40]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl sub_800EE5C
- bl sub_800EF64
- movs r0, 0x46
- bl sub_803E46C
- str r4, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- mov r1, sp
- ldrh r0, [r6]
- movs r2, 0
- strh r0, [r1, 0xC]
- ldrh r0, [r6, 0x2]
- strh r0, [r1, 0xE]
- mov r0, sp
- strh r2, [r0, 0x10]
- strh r2, [r0, 0x12]
- ldr r0, _08085F3C
- str r0, [sp, 0x18]
- add r1, sp, 0x1C
- ldr r0, _08085F40
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- bl sub_800E890
- cmp r5, 0
- beq _08085F2E
- bl sub_8085F44
- movs r0, 0x1
- negs r0, r0
-_08085F2E:
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085F3C: .4byte 0x0000ffff
-_08085F40: .4byte gUnknown_8107374
- thumb_func_end sub_8085EC8
-
- thumb_func_start sub_8085F44
-sub_8085F44:
- push {r4,lr}
- adds r4, r0, 0
- b _08085F5C
-_08085F4A:
- ldr r0, _08085F70
- ldr r0, [r0]
- ldr r1, _08085F74
- adds r0, r1
- bl sub_800E90C
- movs r0, 0x46
- bl sub_803E46C
-_08085F5C:
- adds r0, r4, 0
- bl sub_800E9A8
- lsls r0, 24
- cmp r0, 0
- bne _08085F4A
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085F70: .4byte gDungeonGlobalData
-_08085F74: .4byte 0x000181f0
- thumb_func_end sub_8085F44
-
- thumb_func_start sub_8085F78
-sub_8085F78:
- push {lr}
- ldr r0, _08085F94
- ldr r0, [r0]
- ldr r1, _08085F98
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3C
- bls _08085F8A
- b _080860A4
-_08085F8A:
- lsls r0, 2
- ldr r1, _08085F9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08085F94: .4byte gDungeonGlobalData
-_08085F98: .4byte 0x00003a0d
-_08085F9C: .4byte _08085FA0
- .align 2, 0
-_08085FA0:
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _08086094
- .4byte _08086094
- .4byte _08086094
- .4byte _0808609A
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A0
- .4byte _080860A0
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
- .4byte _080860A4
-_08086094:
- bl sub_8088848
- b _080860A4
-_0808609A:
- bl sub_8088EE8
- b _080860A4
-_080860A0:
- bl sub_808A718
-_080860A4:
- pop {r0}
- bx r0
- thumb_func_end sub_8085F78
-
- thumb_func_start sub_80860A8
-sub_80860A8:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _08086108
- ldr r2, [r0]
- movs r3, 0x1
-_080860B6:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080860C6
- ldrb r0, [r2, 0x2]
- cmp r0, r6
- beq _08086104
-_080860C6:
- adds r2, 0x4
- adds r5, 0x1
- cmp r5, 0x13
- ble _080860B6
- movs r5, 0
-_080860D0:
- ldr r0, _0808610C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08086110
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08086114
- ldr r2, [r4, 0x70]
- adds r0, r2, 0
- adds r0, 0x60
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086114
- adds r0, r2, 0
- adds r0, 0x62
- ldrb r0, [r0]
- cmp r0, r6
- bne _08086114
-_08086104:
- movs r0, 0x1
- b _0808611C
- .align 2, 0
-_08086108: .4byte gTeamInventory_203B460
-_0808610C: .4byte gDungeonGlobalData
-_08086110: .4byte 0x0001357c
-_08086114:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080860D0
- movs r0, 0
-_0808611C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80860A8
-
- thumb_func_start sub_8086124
-sub_8086124:
- ldr r0, [r0, 0x70]
- movs r2, 0xB0
- lsls r2, 1
- adds r0, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8086124
-
- thumb_func_start sub_8086130
-sub_8086130:
- push {lr}
- movs r0, 0x3C
- bl sub_8083ED8
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086194
- ldr r0, [r0]
- bl sub_8052FB8
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08086198
- ldr r0, [r0]
- bl sub_8052FB8
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808619C
- ldr r0, [r0]
- bl sub_8052FB8
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080861A0
- ldr r0, [r0]
- bl sub_8052FB8
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080861A4
- ldr r0, [r0]
- bl sub_8052FB8
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- pop {r0}
- bx r0
- .align 2, 0
-_08086194: .4byte gUnknown_810665C
-_08086198: .4byte gUnknown_810668C
-_0808619C: .4byte gUnknown_81066D4
-_080861A0: .4byte gUnknown_81066F0
-_080861A4: .4byte gUnknown_810671C
- thumb_func_end sub_8086130
-
- thumb_func_start sub_80861A8
-sub_80861A8:
- push {lr}
- movs r1, 0
- movs r2, 0x8
- bl sub_806CDD4
- pop {r0}
- bx r0
- thumb_func_end sub_80861A8
-
- thumb_func_start sub_80861B8
-sub_80861B8:
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, [r0, 0x70]
- adds r1, r4, 0
- bl sub_806CDD4
- adds r5, 0xFE
- strb r4, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80861B8
-
- thumb_func_start sub_80861D4
-sub_80861D4:
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- bl sub_806CDD4
- adds r0, r4, 0
- bl sub_80861EC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80861D4
-
- thumb_func_start sub_80861EC
-sub_80861EC:
- ldr r0, [r0, 0x70]
- adds r0, 0xFE
- movs r1, 0x63
- strb r1, [r0]
- bx lr
- thumb_func_end sub_80861EC
-
- thumb_func_start sub_80861F8
-sub_80861F8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r6, r1, 0
- lsls r0, 16
- asrs r0, 16
- adds r5, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- bl sub_800EE5C
- bl sub_800EF64
- movs r0, 0x46
- bl sub_803E46C
- ldr r0, [r6, 0x70]
- mov r8, r0
- movs r1, 0
- mov r9, r1
- str r1, [sp, 0x28]
- adds r0, r5, 0
- bl sub_800E700
- adds r7, r0, 0
- add r4, sp, 0x28
- movs r2, 0x1
- negs r2, r2
- cmp r7, r2
- beq _0808624A
- adds r1, r6, 0
- adds r1, 0x28
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl sub_800569C
-_0808624A:
- str r5, [sp]
- mov r3, r9
- str r3, [sp, 0x4]
- mov r0, r8
- adds r0, 0x46
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- mov r1, sp
- ldr r0, [r6, 0xC]
- cmp r0, 0
- bge _08086262
- adds r0, 0xFF
-_08086262:
- asrs r0, 8
- strh r0, [r1, 0xC]
- mov r1, sp
- ldr r0, [r6, 0x10]
- cmp r0, 0
- bge _08086270
- adds r0, 0xFF
-_08086270:
- asrs r0, 8
- strh r0, [r1, 0xE]
- mov r1, sp
- ldrh r0, [r4]
- strh r0, [r1, 0x10]
- add r0, sp, 0x28
- ldrh r0, [r0, 0x2]
- strh r0, [r1, 0x12]
- str r7, [sp, 0x14]
- ldr r0, _080862B4
- str r0, [sp, 0x18]
- add r1, sp, 0x1C
- ldr r0, _080862B8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- bl sub_800E890
- mov r4, r10
- cmp r4, 0
- beq _080862A2
- bl sub_8085F44
- movs r0, 0x1
- negs r0, r0
-_080862A2:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080862B4: .4byte 0x0000ffff
-_080862B8: .4byte gUnknown_8107380
- thumb_func_end sub_80861F8
.align 2,0
diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s
new file mode 100644
index 0000000..2d9252a
--- /dev/null
+++ b/asm/code_80848F0.s
@@ -0,0 +1,2076 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808529C
+sub_808529C:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ movs r3, 0x40
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r1, r0
+ beq _08085348
+ cmp r1, r0
+ bgt _080852E0
+ cmp r1, 0x90
+ beq _08085334
+ cmp r1, 0x90
+ bgt _080852CE
+ cmp r1, 0x38
+ beq _08085354
+ cmp r1, 0x38
+ bgt _080852C8
+ cmp r1, 0x17
+ beq _08085328
+ b _0808535A
+_080852C8:
+ cmp r1, 0x5E
+ beq _08085328
+ b _0808535A
+_080852CE:
+ cmp r1, 0x92
+ beq _08085330
+ cmp r1, 0x92
+ blt _0808532C
+ cmp r1, 0x96
+ beq _08085340
+ cmp r1, 0xFC
+ beq _08085324
+ b _0808535A
+_080852E0:
+ ldr r0, _08085304
+ cmp r1, r0
+ beq _08085358
+ cmp r1, r0
+ bgt _08085308
+ subs r0, 0x87
+ cmp r1, r0
+ beq _0808534C
+ cmp r1, r0
+ blt _08085344
+ adds r0, 0x5
+ cmp r1, r0
+ beq _08085350
+ adds r0, 0x3A
+ cmp r1, r0
+ beq _08085328
+ b _0808535A
+ .align 2, 0
+_08085304: .4byte 0x00000195
+_08085308:
+ ldr r0, _08085320
+ cmp r2, r0
+ beq _08085358
+ cmp r2, r0
+ blt _08085358
+ adds r0, 0x4
+ cmp r2, r0
+ beq _08085338
+ adds r0, 0x1
+ cmp r2, r0
+ beq _0808533C
+ b _0808535A
+ .align 2, 0
+_08085320: .4byte 0x00000197
+_08085324:
+ movs r3, 0x1
+ b _0808535A
+_08085328:
+ movs r3, 0x3
+ b _0808535A
+_0808532C:
+ movs r3, 0x5
+ b _0808535A
+_08085330:
+ movs r3, 0x7
+ b _0808535A
+_08085334:
+ movs r3, 0x9
+ b _0808535A
+_08085338:
+ movs r3, 0xC
+ b _0808535A
+_0808533C:
+ movs r3, 0xF
+ b _0808535A
+_08085340:
+ movs r3, 0x13
+ b _0808535A
+_08085344:
+ movs r3, 0x15
+ b _0808535A
+_08085348:
+ movs r3, 0x17
+ b _0808535A
+_0808534C:
+ movs r3, 0x19
+ b _0808535A
+_08085350:
+ movs r3, 0x1A
+ b _0808535A
+_08085354:
+ movs r3, 0x11
+ b _0808535A
+_08085358:
+ movs r3, 0x1D
+_0808535A:
+ cmp r3, 0x40
+ beq _0808536E
+ adds r0, r3, 0
+ bl sub_8098100
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808536E
+ movs r0, 0
+ b _08085370
+_0808536E:
+ movs r0, 0x1
+_08085370:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808529C
+
+ thumb_func_start sub_8085374
+sub_8085374:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ movs r7, 0
+ movs r6, 0
+ bl sub_808D3F8
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ mov r8, r1
+ movs r5, 0
+_0808538E:
+ ldr r0, _08085444
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08085448
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080853BE
+ ldr r1, [r4, 0x70]
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _080853B2
+ adds r7, r4, 0
+_080853B2:
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ bne _080853BE
+ adds r6, r4, 0
+_080853BE:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0808538E
+ cmp r7, 0
+ beq _0808546E
+ cmp r6, 0
+ bne _0808546E
+ ldr r0, _08085444
+ ldr r0, [r0]
+ ldr r1, _0808544C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808546E
+ movs r6, 0
+ ldr r0, _08085450
+ ldr r4, [r0]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x63
+ beq _0808546E
+ mov r5, sp
+ movs r0, 0
+ mov r9, r0
+_080853EE:
+ ldrh r0, [r7, 0x4]
+ adds r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08085454
+ ands r4, r1
+ orrs r4, r0
+ asrs r1, r4, 16
+ ldrh r2, [r7, 0x6]
+ adds r1, r2
+ lsls r1, 16
+ ldr r0, _08085458
+ ands r4, r0
+ orrs r4, r1
+ lsls r0, r4, 16
+ asrs r0, 16
+ asrs r1, r4, 16
+ bl sub_804954C
+ adds r1, r0, 0
+ mov r0, r8
+ bl sub_807034C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0808545C
+ mov r0, r8
+ strh r0, [r5]
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x4]
+ mov r1, r9
+ strb r1, [r5, 0x10]
+ mov r0, sp
+ movs r1, 0x1
+ bl sub_806B7F8
+ b _0808546E
+ .align 2, 0
+_08085444: .4byte gDungeonGlobalData
+_08085448: .4byte 0x0001357c
+_0808544C: .4byte 0x0000065c
+_08085450: .4byte gUnknown_80F4598
+_08085454: .4byte 0xffff0000
+_08085458: .4byte 0x0000ffff
+_0808545C:
+ adds r6, 0x1
+ ldr r0, _0808547C
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r4, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x63
+ bne _080853EE
+_0808546E:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808547C: .4byte gUnknown_80F4598
+ thumb_func_end sub_8085374
+
+ thumb_func_start sub_8085480
+sub_8085480:
+ push {lr}
+ bl sub_8083600
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085480
+
+ thumb_func_start sub_808548C
+sub_808548C:
+ push {r4,r5,lr}
+ movs r5, 0
+_08085490:
+ ldr r0, _080854B8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080854BC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080854C0
+ ldr r0, [r4, 0x70]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ bne _080854C0
+ adds r0, r4, 0
+ b _080854CC
+ .align 2, 0
+_080854B8: .4byte gDungeonGlobalData
+_080854BC: .4byte 0x0001357c
+_080854C0:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08085490
+ movs r0, 0x2
+ bl sub_8085680
+_080854CC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808548C
+
+ thumb_func_start sub_80854D4
+sub_80854D4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ movs r6, 0
+ movs r5, 0
+ add r0, sp, 0x10
+ mov r8, r0
+ mov r7, sp
+_080854E6:
+ ldr r0, _080855D8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080855DC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085504
+ stm r7!, {r4}
+ adds r6, 0x1
+_08085504:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080854E6
+ cmp r6, 0x3
+ bgt _0808551C
+ movs r1, 0
+ lsls r0, r6, 2
+ add r0, sp
+_08085514:
+ stm r0!, {r1}
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08085514
+_0808551C:
+ movs r6, 0
+ movs r4, 0
+ mov r2, sp
+ mov r3, r8
+ movs r5, 0x3
+_08085526:
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _0808553A
+ ldr r0, [r1, 0x70]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _0808553A
+ str r4, [r2]
+ stm r3!, {r1}
+ adds r6, 0x1
+_0808553A:
+ adds r2, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08085526
+ movs r4, 0
+ mov r2, sp
+ lsls r0, r6, 2
+ mov r1, r8
+ adds r3, r0, r1
+ movs r5, 0x3
+_0808554E:
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _08085564
+ ldr r0, [r1, 0x70]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ bne _08085564
+ str r4, [r2]
+ stm r3!, {r1}
+ adds r6, 0x1
+_08085564:
+ adds r2, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0808554E
+ movs r3, 0
+ mov r2, sp
+ lsls r0, r6, 2
+ add r0, r8
+ movs r5, 0x3
+_08085576:
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _08085582
+ str r3, [r2]
+ stm r0!, {r1}
+ adds r6, 0x1
+_08085582:
+ adds r2, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08085576
+ cmp r6, 0x3
+ bgt _0808559C
+ movs r1, 0
+ lsls r0, r6, 2
+ add r0, r8
+_08085594:
+ stm r0!, {r1}
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08085594
+_0808559C:
+ movs r5, 0
+ mov r4, r8
+_080855A0:
+ lsls r1, r5, 2
+ ldr r3, [r4]
+ cmp r3, 0
+ beq _080855C4
+ ldr r0, _080855D8
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r2, _080855E0
+ adds r1, r0, r2
+ movs r6, 0
+ ldrsh r1, [r1, r6]
+ adds r2, 0x2
+ adds r0, r2
+ movs r6, 0
+ ldrsh r2, [r0, r6]
+ adds r0, r3, 0
+ bl sub_80856C8
+_080855C4:
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080855A0
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080855D8: .4byte gDungeonGlobalData
+_080855DC: .4byte 0x0001357c
+_080855E0: .4byte 0x0000e220
+ thumb_func_end sub_80854D4
+
+ thumb_func_start sub_80855E4
+sub_80855E4:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ movs r5, 0
+_080855EC:
+ ldr r0, _08085634
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08085638
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085618
+ ldr r0, [r4, 0x70]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ bne _08085612
+ movs r7, 0x1
+_08085612:
+ adds r0, r4, 0
+ bl _call_via_r6
+_08085618:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080855EC
+ cmp r7, 0
+ bne _0808562E
+ bl sub_808548C
+ cmp r0, 0
+ beq _0808562E
+ bl _call_via_r6
+_0808562E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085634: .4byte gDungeonGlobalData
+_08085638: .4byte 0x0001357c
+ thumb_func_end sub_80855E4
+
+ thumb_func_start sub_808563C
+sub_808563C:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+_08085642:
+ ldr r0, _08085678
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0808567C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808566C
+ ldr r0, [r4, 0x70]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ beq _0808566C
+ adds r0, r4, 0
+ bl _call_via_r6
+_0808566C:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08085642
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085678: .4byte gDungeonGlobalData
+_0808567C: .4byte 0x0001358c
+ thumb_func_end sub_808563C
+
+ thumb_func_start sub_8085680
+sub_8085680:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_08085688:
+ ldr r0, _080856B0
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080856B4
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080856B8
+ ldr r0, [r4, 0x70]
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _080856B8
+ adds r0, r4, 0
+ b _080856C0
+ .align 2, 0
+_080856B0: .4byte gDungeonGlobalData
+_080856B4: .4byte 0x000135cc
+_080856B8:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08085688
+ movs r0, 0
+_080856C0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085680
+
+ thumb_func_start sub_80856C8
+sub_80856C8:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r3, 0x1
+ bl sub_80694C0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_804535C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80856C8
+
+ thumb_func_start sub_80856E0
+sub_80856E0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ ldr r0, [r6, 0x70]
+ mov r8, r0
+ adds r0, r6, 0
+ movs r1, 0x6
+ adds r2, r7, 0
+ bl sub_80861D4
+ movs r5, 0xBA
+ lsls r5, 1
+ add r5, r8
+ movs r4, 0x4
+_08085700:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 2
+ adds r0, r1
+ str r0, [r5]
+ movs r0, 0x46
+ bl sub_803E46C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08085700
+ movs r1, 0x7
+ adds r0, r7, 0
+ ands r0, r1
+ mov r1, r8
+ adds r1, 0x46
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_806CE68
+ movs r5, 0xBA
+ lsls r5, 1
+ add r5, r8
+ movs r4, 0x4
+_08085732:
+ ldr r0, [r5]
+ ldr r1, _08085760
+ adds r0, r1
+ str r0, [r5]
+ movs r0, 0x46
+ bl sub_803E46C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08085732
+ movs r1, 0xBA
+ lsls r1, 1
+ add r1, r8
+ movs r0, 0
+ str r0, [r1]
+ movs r0, 0x46
+ bl sub_803E46C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085760: .4byte 0xfffffe00
+ thumb_func_end sub_80856E0
+
+ thumb_func_start sub_8085764
+sub_8085764:
+ push {r4,r5,lr}
+ sub sp, 0x74
+ mov r0, sp
+ bl sub_80457DC
+ movs r5, 0
+_08085770:
+ ldr r0, _080857AC
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080857B0
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808579E
+ ldr r0, [r4, 0x70]
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808579E
+ adds r0, r4, 0
+ ldr r1, _080857B4
+ mov r2, sp
+ bl sub_8068FE0
+_0808579E:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08085770
+ add sp, 0x74
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080857AC: .4byte gDungeonGlobalData
+_080857B0: .4byte 0x0001358c
+_080857B4: .4byte 0x00000207
+ thumb_func_end sub_8085764
+
+ thumb_func_start sub_80857B8
+sub_80857B8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _08085854
+ mov r9, r0
+ ldr r1, _08085858
+ mov r8, r1
+_080857CA:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ ldr r3, _0808585C
+ adds r0, r3
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r6, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085840
+ ldr r5, [r6, 0x70]
+ mov r0, r9
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08085840
+ ldrb r4, [r1, 0x2]
+ cmp r4, 0
+ bne _08085840
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_804535C
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r5, r1
+ strb r4, [r0]
+ adds r1, r5, 0
+ adds r1, 0xFE
+ movs r0, 0x63
+ strb r0, [r1]
+ adds r2, r5, 0
+ adds r2, 0x46
+ ldrb r0, [r2]
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r6, 0x4]
+ ldrh r0, [r0]
+ adds r1, r0
+ movs r3, 0xB6
+ lsls r3, 1
+ adds r0, r5, r3
+ strh r1, [r0]
+ ldrb r0, [r2]
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r6, 0x6]
+ ldrh r0, [r0, 0x2]
+ adds r1, r0
+ adds r3, 0x2
+ adds r0, r5, r3
+ strh r1, [r0]
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ bl sub_806CE68
+_08085840:
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _080857CA
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085854: .4byte gDungeonGlobalData
+_08085858: .4byte gUnknown_80F4448
+_0808585C: .4byte 0x000135cc
+ thumb_func_end sub_80857B8
+
+ thumb_func_start sub_8085860
+sub_8085860:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0
+ bl sub_803F4A0
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 11
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r2
+ bl sub_803F878
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085860
+
+ thumb_func_start sub_8085890
+sub_8085890:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0
+ bl sub_803F4A0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_803F878
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085890
+
+ thumb_func_start sub_80858AC
+sub_80858AC:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ bl sub_803F994
+ adds r6, r0, 0
+ bl sub_803F9B0
+ adds r5, r0, 0
+ ldr r0, [r7]
+ subs r0, r6
+ adds r1, r4, 0
+ bl __divsi3
+ mov r9, r0
+ ldr r0, [r7, 0x4]
+ subs r0, r5
+ adds r1, r4, 0
+ bl __divsi3
+ mov r8, r0
+ movs r0, 0
+ bl sub_803F4A0
+ cmp r4, 0
+ ble _080858FE
+_080858E6:
+ add r6, r9
+ add r5, r8
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_803F878
+ movs r0, 0x46
+ bl sub_803E46C
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080858E6
+_080858FE:
+ ldr r0, [r7]
+ ldr r1, [r7, 0x4]
+ bl sub_803F878
+ movs r0, 0x46
+ bl sub_803E46C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80858AC
+
+ thumb_func_start sub_8085918
+sub_8085918:
+ push {r4,lr}
+ ldr r3, [r0, 0x70]
+ movs r4, 0x7
+ adds r2, r1, 0
+ ands r2, r4
+ adds r3, 0x46
+ strb r2, [r3]
+ bl sub_806CE68
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085918
+
+ thumb_func_start sub_8085930
+sub_8085930:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r0, 0x7
+ adds r7, r6, 0
+ ands r7, r0
+_0808593C:
+ ldr r0, _0808596C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08085970
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085982
+ cmp r6, 0x7
+ ble _08085974
+ movs r0, 0x8
+ bl RandomCapped
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_806CE68
+ b _08085982
+ .align 2, 0
+_0808596C: .4byte gDungeonGlobalData
+_08085970: .4byte 0x0001357c
+_08085974:
+ ldr r0, [r4, 0x70]
+ adds r0, 0x46
+ strb r7, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_806CE68
+_08085982:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0808593C
+ movs r5, 0
+ movs r0, 0x7
+ adds r7, r6, 0
+ ands r7, r0
+_08085990:
+ ldr r0, _080859CC
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080859D0
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080859E2
+ ldr r1, [r4, 0x70]
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080859E2
+ cmp r6, 0x7
+ ble _080859D4
+ movs r0, 0x8
+ bl RandomCapped
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_806CE68
+ b _080859E2
+ .align 2, 0
+_080859CC: .4byte gDungeonGlobalData
+_080859D0: .4byte 0x0001358c
+_080859D4:
+ adds r0, r1, 0
+ adds r0, 0x46
+ strb r7, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_806CE68
+_080859E2:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08085990
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085930
+
+ thumb_func_start sub_80859F0
+sub_80859F0:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ movs r0, 0x7
+ adds r7, r6, 0
+ ands r7, r0
+_080859FC:
+ ldr r0, _08085A2C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08085A30
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08085A42
+ cmp r6, 0x7
+ ble _08085A34
+ movs r0, 0x8
+ bl RandomCapped
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_806CE68
+ b _08085A42
+ .align 2, 0
+_08085A2C: .4byte gDungeonGlobalData
+_08085A30: .4byte 0x0001358c
+_08085A34:
+ ldr r0, [r4, 0x70]
+ adds r0, 0x46
+ strb r7, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_806CE68
+_08085A42:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _080859FC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80859F0
+
+ thumb_func_start sub_8085A50
+sub_8085A50:
+ push {lr}
+ ldr r0, [r0, 0x70]
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x24
+ bhi _08085B04
+ lsls r0, 2
+ ldr r1, _08085A68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08085A68: .4byte _08085A6C
+ .align 2, 0
+_08085A6C:
+ .4byte _08085B04
+ .4byte _08085B00
+ .4byte _08085B04
+ .4byte _08085B00
+ .4byte _08085B04
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B04
+ .4byte _08085B04
+ .4byte _08085B04
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+ .4byte _08085B00
+_08085B00:
+ movs r0, 0x1
+ b _08085B06
+_08085B04:
+ movs r0, 0
+_08085B06:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8085A50
+
+ thumb_func_start sub_8085B0C
+sub_8085B0C:
+ push {r4,r5,lr}
+ sub sp, 0x1C
+ adds r5, r0, 0
+ ldr r1, _08085B48
+ mov r0, sp
+ movs r2, 0x19
+ bl memcpy
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08085B3E
+ mov r4, sp
+_08085B26:
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl sub_8085918
+ movs r0, 0x6
+ movs r1, 0x46
+ bl sub_803E708
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08085B26
+_08085B3E:
+ add sp, 0x1C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085B48: .4byte gUnknown_8107358
+ thumb_func_end sub_8085B0C
+
+ thumb_func_start sub_8085B4C
+sub_8085B4C:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _08085B7C
+ str r3, [r0]
+ cmp r3, 0
+ ble _08085B76
+ movs r6, 0x1
+ adds r4, r1, 0
+ adds r1, r5, 0
+_08085B5E:
+ strb r6, [r1]
+ ldm r2!, {r0}
+ str r0, [r1, 0x4]
+ ldm r4!, {r0}
+ str r0, [r1, 0xC]
+ movs r5, 0x4
+ ldrsh r0, [r0, r5]
+ str r0, [r1, 0x8]
+ adds r1, 0x10
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08085B5E
+_08085B76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085B7C: .4byte gUnknown_202F3D8
+ thumb_func_end sub_8085B4C
+
+ thumb_func_start sub_8085B80
+sub_8085B80:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r1, r0, 0
+ movs r0, 0
+ mov r8, r0
+ movs r7, 0
+ ldr r0, _08085BE4
+ ldr r0, [r0]
+ cmp r8, r0
+ bge _08085C3E
+ adds r5, r1, 0
+_08085B98:
+ ldr r6, [r5, 0x4]
+ ldr r2, [r6, 0x70]
+ adds r3, r2, 0
+ ldr r4, [r5, 0xC]
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08085C32
+ movs r1, 0x1
+ mov r8, r1
+ ldr r0, [r5, 0x8]
+ cmp r0, 0
+ bne _08085C08
+ adds r4, 0x8
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08085BE8
+ strb r0, [r5]
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ adds r1, r2, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl sub_806CDD4
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r3, 0xC
+ ldrsh r2, [r4, r3]
+ adds r0, r6, 0
+ bl sub_80856C8
+ b _08085C32
+ .align 2, 0
+_08085BE4: .4byte gUnknown_202F3D8
+_08085BE8:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ str r0, [r5, 0x8]
+ str r4, [r5, 0xC]
+ ldrb r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ adds r1, r3, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_806CDD4
+_08085C08:
+ ldr r0, [r5, 0x8]
+ subs r0, 0x1
+ str r0, [r5, 0x8]
+ ldr r1, _08085C4C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x2
+ ldrsh r2, [r4, r3]
+ muls r1, r2
+ lsls r1, 8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ muls r2, r0
+ lsls r2, 8
+ adds r0, r6, 0
+ bl sub_804539C
+_08085C32:
+ adds r5, 0x10
+ adds r7, 0x1
+ ldr r0, _08085C50
+ ldr r0, [r0]
+ cmp r7, r0
+ blt _08085B98
+_08085C3E:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085C4C: .4byte gUnknown_80F4448
+_08085C50: .4byte gUnknown_202F3D8
+ thumb_func_end sub_8085B80
+
+ thumb_func_start sub_8085C54
+sub_8085C54:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ str r0, [sp, 0x14]
+ mov r10, r1
+ mov r9, r2
+ ldr r4, [sp, 0x48]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8085E98
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08085E70
+ ldr r0, [r0]
+ ldr r5, [r0, 0x4]
+ cmp r4, 0
+ beq _08085CAE
+ ldr r1, [sp, 0x14]
+ cmp r1, 0
+ blt _08085C92
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ str r0, [sp, 0x14]
+_08085C92:
+ mov r2, r10
+ cmp r2, 0
+ blt _08085CA0
+ lsrs r0, r2, 31
+ add r0, r10
+ asrs r0, 1
+ mov r10, r0
+_08085CA0:
+ mov r3, r9
+ cmp r3, 0
+ blt _08085CAE
+ lsrs r0, r3, 31
+ add r0, r9
+ asrs r0, 1
+ mov r9, r0
+_08085CAE:
+ ldr r1, _08085E74
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ ldr r1, _08085E78
+ ands r0, r1
+ ldr r1, _08085E7C
+ ands r0, r1
+ str r0, [sp, 0x8]
+ ldr r0, _08085E80
+ ldr r2, [r0]
+ ldr r0, _08085E84
+ ldr r3, [r0]
+ movs r0, 0xBE
+ lsls r0, 1
+ adds r3, r0
+ mov r0, r8
+ add r1, sp, 0x8
+ bl SetBGPaletteBufferColorRGB
+ adds r5, 0x4
+ movs r1, 0x1
+ add r8, r1
+ ldr r2, [sp, 0x14]
+ lsls r2, 16
+ str r2, [sp, 0x1C]
+ mov r3, r10
+ lsls r3, 16
+ str r3, [sp, 0x20]
+ mov r0, r9
+ lsls r0, 16
+ str r0, [sp, 0x24]
+ add r7, sp, 0xC
+ movs r1, 0xA0
+ cmp r1, 0x1
+ ble _08085D56
+ add r6, sp, 0x8
+ movs r4, 0xA0
+ subs r4, 0x1
+_08085CFA:
+ ldrb r0, [r5]
+ ldr r3, [sp, 0x14]
+ adds r2, r0, r3
+ ldrb r0, [r5, 0x1]
+ mov r3, r10
+ adds r1, r0, r3
+ ldrb r0, [r5, 0x2]
+ add r0, r9
+ cmp r2, 0xFF
+ ble _08085D10
+ movs r2, 0xFF
+_08085D10:
+ cmp r1, 0xFF
+ ble _08085D16
+ movs r1, 0xFF
+_08085D16:
+ cmp r0, 0xFF
+ ble _08085D1C
+ movs r0, 0xFF
+_08085D1C:
+ cmp r2, 0
+ bge _08085D22
+ movs r2, 0
+_08085D22:
+ cmp r1, 0
+ bge _08085D28
+ movs r1, 0
+_08085D28:
+ cmp r0, 0
+ bge _08085D2E
+ movs r0, 0
+_08085D2E:
+ strb r2, [r6]
+ strb r1, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ ldr r0, _08085E80
+ ldr r2, [r0]
+ ldr r0, _08085E84
+ ldr r3, [r0]
+ movs r0, 0xBE
+ lsls r0, 1
+ adds r3, r0
+ mov r0, r8
+ add r1, sp, 0x8
+ bl SetBGPaletteBufferColorRGB
+ adds r5, 0x4
+ movs r1, 0x1
+ add r8, r1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08085CFA
+_08085D56:
+ ldr r2, _08085E88
+ ldr r3, [sp, 0x1C]
+ lsrs r0, r3, 16
+ ldr r1, [sp, 0x20]
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r3, [sp, 0x24]
+ lsrs r1, r3, 16
+ ldr r0, [r7, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r7, 0x4]
+ ldr r0, _08085E8C
+ ldr r1, _08085E80
+ ldr r3, [r1]
+ ldr r1, _08085E84
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ str r1, [sp]
+ str r7, [sp, 0x4]
+ movs r1, 0xA0
+ movs r2, 0x20
+ bl sub_8004C00
+ movs r3, 0x20
+ add r8, r3
+ ldr r5, _08085E90
+ add r6, sp, 0x8
+ movs r4, 0x20
+_08085D94:
+ ldrb r0, [r5]
+ ldr r1, [sp, 0x14]
+ adds r2, r0, r1
+ ldrb r0, [r5, 0x1]
+ mov r3, r10
+ adds r1, r0, r3
+ ldrb r0, [r5, 0x2]
+ add r0, r9
+ cmp r2, 0xFF
+ ble _08085DAA
+ movs r2, 0xFF
+_08085DAA:
+ cmp r1, 0xFF
+ ble _08085DB0
+ movs r1, 0xFF
+_08085DB0:
+ cmp r0, 0xFF
+ ble _08085DB6
+ movs r0, 0xFF
+_08085DB6:
+ cmp r2, 0
+ bge _08085DBC
+ movs r2, 0
+_08085DBC:
+ cmp r1, 0
+ bge _08085DC2
+ movs r1, 0
+_08085DC2:
+ cmp r0, 0
+ bge _08085DC8
+ movs r0, 0
+_08085DC8:
+ strb r2, [r6]
+ strb r1, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ ldr r0, _08085E80
+ ldr r2, [r0]
+ ldr r7, _08085E84
+ ldr r3, [r7]
+ movs r0, 0xBE
+ lsls r0, 1
+ adds r3, r0
+ mov r0, r8
+ add r1, sp, 0x8
+ bl SetBGPaletteBufferColorRGB
+ adds r5, 0x4
+ movs r1, 0x1
+ add r8, r1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08085D94
+ ldr r2, [sp, 0x18]
+ cmp r2, 0
+ beq _08085E5E
+ ldr r0, [r7]
+ ldr r3, _08085E94
+ adds r0, r3
+ ldr r0, [r0]
+ ldr r5, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 1
+ mov r8, r0
+ add r6, sp, 0x8
+ movs r4, 0xD0
+_08085E0A:
+ ldrb r0, [r5]
+ ldr r1, [sp, 0x14]
+ adds r2, r0, r1
+ ldrb r0, [r5, 0x1]
+ mov r3, r10
+ adds r1, r0, r3
+ ldrb r0, [r5, 0x2]
+ add r0, r9
+ cmp r2, 0xFF
+ ble _08085E20
+ movs r2, 0xFF
+_08085E20:
+ cmp r1, 0xFF
+ ble _08085E26
+ movs r1, 0xFF
+_08085E26:
+ cmp r0, 0xFF
+ ble _08085E2C
+ movs r0, 0xFF
+_08085E2C:
+ cmp r2, 0
+ bge _08085E32
+ movs r2, 0
+_08085E32:
+ cmp r1, 0
+ bge _08085E38
+ movs r1, 0
+_08085E38:
+ cmp r0, 0
+ bge _08085E3E
+ movs r0, 0
+_08085E3E:
+ strb r2, [r6]
+ strb r1, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ ldr r0, _08085E80
+ ldr r2, [r0]
+ mov r0, r8
+ add r1, sp, 0x8
+ movs r3, 0
+ bl SetBGPaletteBufferColorRGB
+ adds r5, 0x4
+ movs r0, 0x1
+ add r8, r0
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08085E0A
+_08085E5E:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085E70: .4byte gUnknown_202EE88
+_08085E74: .4byte 0xffffff00
+_08085E78: .4byte 0xffff00ff
+_08085E7C: .4byte 0xff00ffff
+_08085E80: .4byte gUnknown_202EDC8
+_08085E84: .4byte gDungeonGlobalData
+_08085E88: .4byte 0xffff0000
+_08085E8C: .4byte gUnknown_202EE8C
+_08085E90: .4byte gUnknown_202ECA4
+_08085E94: .4byte 0x000181e4
+ thumb_func_end sub_8085C54
+
+ thumb_func_start sub_8085E98
+sub_8085E98:
+ ldr r0, _08085EA8
+ ldr r0, [r0]
+ ldr r1, _08085EAC
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08085EA8: .4byte gDungeonGlobalData
+_08085EAC: .4byte 0x00018215
+ thumb_func_end sub_8085E98
+
+ thumb_func_start sub_8085EB0
+sub_8085EB0:
+ ldr r0, _08085EC0
+ ldr r0, [r0]
+ ldr r1, _08085EC4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08085EC0: .4byte gDungeonGlobalData
+_08085EC4: .4byte 0x00018215
+ thumb_func_end sub_8085EB0
+
+ thumb_func_start sub_8085EC8
+sub_8085EC8:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x28
+ adds r4, r0, 0
+ mov r8, r1
+ mov r9, r2
+ adds r6, r3, 0
+ ldr r5, [sp, 0x40]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl sub_800EE5C
+ bl sub_800EF64
+ movs r0, 0x46
+ bl sub_803E46C
+ str r4, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ mov r1, sp
+ ldrh r0, [r6]
+ movs r2, 0
+ strh r0, [r1, 0xC]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r1, 0xE]
+ mov r0, sp
+ strh r2, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ ldr r0, _08085F3C
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ ldr r0, _08085F40
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ bl sub_800E890
+ cmp r5, 0
+ beq _08085F2E
+ bl sub_8085F44
+ movs r0, 0x1
+ negs r0, r0
+_08085F2E:
+ add sp, 0x28
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08085F3C: .4byte 0x0000ffff
+_08085F40: .4byte gUnknown_8107374
+ thumb_func_end sub_8085EC8
+
+ thumb_func_start sub_8085F44
+sub_8085F44:
+ push {r4,lr}
+ adds r4, r0, 0
+ b _08085F5C
+_08085F4A:
+ ldr r0, _08085F70
+ ldr r0, [r0]
+ ldr r1, _08085F74
+ adds r0, r1
+ bl sub_800E90C
+ movs r0, 0x46
+ bl sub_803E46C
+_08085F5C:
+ adds r0, r4, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08085F4A
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08085F70: .4byte gDungeonGlobalData
+_08085F74: .4byte 0x000181f0
+ thumb_func_end sub_8085F44
+
+ thumb_func_start sub_8085F78
+sub_8085F78:
+ push {lr}
+ ldr r0, _08085F94
+ ldr r0, [r0]
+ ldr r1, _08085F98
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bls _08085F8A
+ b _080860A4
+_08085F8A:
+ lsls r0, 2
+ ldr r1, _08085F9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08085F94: .4byte gDungeonGlobalData
+_08085F98: .4byte 0x00003a0d
+_08085F9C: .4byte _08085FA0
+ .align 2, 0
+_08085FA0:
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _08086094
+ .4byte _08086094
+ .4byte _08086094
+ .4byte _0808609A
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A0
+ .4byte _080860A0
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+ .4byte _080860A4
+_08086094:
+ bl sub_8088848
+ b _080860A4
+_0808609A:
+ bl sub_8088EE8
+ b _080860A4
+_080860A0:
+ bl sub_808A718
+_080860A4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8085F78
+
+ thumb_func_start sub_80860A8
+sub_80860A8:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _08086108
+ ldr r2, [r0]
+ movs r3, 0x1
+_080860B6:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080860C6
+ ldrb r0, [r2, 0x2]
+ cmp r0, r6
+ beq _08086104
+_080860C6:
+ adds r2, 0x4
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _080860B6
+ movs r5, 0
+_080860D0:
+ ldr r0, _0808610C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08086110
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08086114
+ ldr r2, [r4, 0x70]
+ adds r0, r2, 0
+ adds r0, 0x60
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08086114
+ adds r0, r2, 0
+ adds r0, 0x62
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08086114
+_08086104:
+ movs r0, 0x1
+ b _0808611C
+ .align 2, 0
+_08086108: .4byte gTeamInventory_203B460
+_0808610C: .4byte gDungeonGlobalData
+_08086110: .4byte 0x0001357c
+_08086114:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080860D0
+ movs r0, 0
+_0808611C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80860A8
+
+ thumb_func_start sub_8086124
+sub_8086124:
+ ldr r0, [r0, 0x70]
+ movs r2, 0xB0
+ lsls r2, 1
+ adds r0, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8086124
+
+ thumb_func_start sub_8086130
+sub_8086130:
+ push {lr}
+ movs r0, 0x3C
+ bl sub_8083ED8
+ movs r0, 0x3C
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086194
+ ldr r0, [r0]
+ bl sub_8052FB8
+ movs r0, 0x1E
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _08086198
+ ldr r0, [r0]
+ bl sub_8052FB8
+ movs r0, 0x1E
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _0808619C
+ ldr r0, [r0]
+ bl sub_8052FB8
+ movs r0, 0x1E
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _080861A0
+ ldr r0, [r0]
+ bl sub_8052FB8
+ movs r0, 0x1E
+ movs r1, 0x46
+ bl sub_803E708
+ ldr r0, _080861A4
+ ldr r0, [r0]
+ bl sub_8052FB8
+ movs r0, 0x1E
+ movs r1, 0x46
+ bl sub_803E708
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08086194: .4byte gUnknown_810665C
+_08086198: .4byte gUnknown_810668C
+_0808619C: .4byte gUnknown_81066D4
+_080861A0: .4byte gUnknown_81066F0
+_080861A4: .4byte gUnknown_810671C
+ thumb_func_end sub_8086130
+
+ thumb_func_start sub_80861A8
+sub_80861A8:
+ push {lr}
+ movs r1, 0
+ movs r2, 0x8
+ bl sub_806CDD4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80861A8
+
+ thumb_func_start sub_80861B8
+sub_80861B8:
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, [r0, 0x70]
+ adds r1, r4, 0
+ bl sub_806CDD4
+ adds r5, 0xFE
+ strb r4, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80861B8
+
+ thumb_func_start sub_80861D4
+sub_80861D4:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806CDD4
+ adds r0, r4, 0
+ bl sub_80861EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80861D4
+
+ thumb_func_start sub_80861EC
+sub_80861EC:
+ ldr r0, [r0, 0x70]
+ adds r0, 0xFE
+ movs r1, 0x63
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_80861EC
+
+ thumb_func_start sub_80861F8
+sub_80861F8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ adds r6, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ adds r5, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ bl sub_800EE5C
+ bl sub_800EF64
+ movs r0, 0x46
+ bl sub_803E46C
+ ldr r0, [r6, 0x70]
+ mov r8, r0
+ movs r1, 0
+ mov r9, r1
+ str r1, [sp, 0x28]
+ adds r0, r5, 0
+ bl sub_800E700
+ adds r7, r0, 0
+ add r4, sp, 0x28
+ movs r2, 0x1
+ negs r2, r2
+ cmp r7, r2
+ beq _0808624A
+ adds r1, r6, 0
+ adds r1, 0x28
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl sub_800569C
+_0808624A:
+ str r5, [sp]
+ mov r3, r9
+ str r3, [sp, 0x4]
+ mov r0, r8
+ adds r0, 0x46
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ mov r1, sp
+ ldr r0, [r6, 0xC]
+ cmp r0, 0
+ bge _08086262
+ adds r0, 0xFF
+_08086262:
+ asrs r0, 8
+ strh r0, [r1, 0xC]
+ mov r1, sp
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ bge _08086270
+ adds r0, 0xFF
+_08086270:
+ asrs r0, 8
+ strh r0, [r1, 0xE]
+ mov r1, sp
+ ldrh r0, [r4]
+ strh r0, [r1, 0x10]
+ add r0, sp, 0x28
+ ldrh r0, [r0, 0x2]
+ strh r0, [r1, 0x12]
+ str r7, [sp, 0x14]
+ ldr r0, _080862B4
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ ldr r0, _080862B8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ bl sub_800E890
+ mov r4, r10
+ cmp r4, 0
+ beq _080862A2
+ bl sub_8085F44
+ movs r0, 0x1
+ negs r0, r0
+_080862A2:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080862B4: .4byte 0x0000ffff
+_080862B8: .4byte gUnknown_8107380
+ thumb_func_end sub_80861F8
+
+ .align 2,0
diff --git a/asm/main_menu_1.s b/asm/main_menu_1.s
deleted file mode 100644
index 3a2f1b7..0000000
--- a/asm/main_menu_1.s
+++ /dev/null
@@ -1,167 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start UpdateMainMenu
-UpdateMainMenu:
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08035F64
- str r6, [sp]
- ldr r4, _08035F68
- ldr r0, [r4]
- ldr r5, [r0]
- cmp r5, 0xC
- beq _08035FB8
- cmp r5, 0xC
- bls _08035F04
- b _0803601A
-_08035F04:
- cmp r5, 0x1
- beq _08035F0A
- b _0803601A
-_08035F0A:
- adds r0, 0xA4
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x4
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08035F28
- ldr r0, [r4]
- adds r0, 0x4
- mov r1, sp
- bl sub_8013114
-_08035F28:
- bl SetMainMenuText
- lsls r0, 24
- cmp r0, 0
- beq _08035F4A
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
-_08035F4A:
- ldr r1, [sp]
- cmp r1, 0xC
- beq _08035FA8
- cmp r1, 0xC
- bhi _08035F6C
- cmp r1, 0x3
- beq _08035FAC
- cmp r1, 0x3
- bcc _0803601A
- cmp r1, 0x6
- bcc _0803601A
- b _08035FAC
- .align 2, 0
-_08035F64: .4byte 0x0000ffdc
-_08035F68: .4byte gUnknown_203B34C
-_08035F6C:
- cmp r1, r6
- beq _08035FF2
- cmp r1, r6
- bhi _08035F7A
- cmp r1, 0x10
- bhi _0803601A
- b _08035FAC
-_08035F7A:
- ldr r0, _08035FA4
- cmp r1, r0
- bne _0803601A
- ldr r0, [r4]
- str r5, [r0]
- str r6, [sp]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
- b _0803601A
- .align 2, 0
-_08035FA4: .4byte 0x0000ffdd
-_08035FA8:
- bl sub_8035DA0
-_08035FAC:
- ldr r1, _08035FB4
- ldr r0, [sp]
- str r0, [r1]
- b _0803601A
- .align 2, 0
-_08035FB4: .4byte gUnknown_203B350
-_08035FB8:
- adds r0, 0x54
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08035FCE
- ldr r0, [r4]
- adds r0, 0x54
- mov r1, sp
- bl sub_8013114
-_08035FCE:
- ldr r1, [sp]
- cmp r1, 0x12
- beq _08036008
- cmp r1, 0x12
- bhi _08035FDE
- cmp r1, 0x11
- beq _08035FFC
- b _0803601A
-_08035FDE:
- cmp r1, r6
- beq _08036018
- ldr r0, _08035FF8
- cmp r1, r0
- bne _0803601A
- bl sub_803623C
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1]
-_08035FF2:
- str r6, [sp]
- b _0803601A
- .align 2, 0
-_08035FF8: .4byte 0x0000ffdd
-_08035FFC:
- ldr r0, _08036004
- str r1, [r0]
- str r5, [sp]
- b _0803601A
- .align 2, 0
-_08036004: .4byte gUnknown_203B354
-_08036008:
- ldr r0, _08036014
- str r1, [r0]
- movs r0, 0x14
- str r0, [sp]
- b _0803601A
- .align 2, 0
-_08036014: .4byte gUnknown_203B354
-_08036018:
- str r1, [sp]
-_0803601A:
- ldr r0, [sp]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end UpdateMainMenu
-
- .align 2,0
diff --git a/asm/memory_1.s b/asm/memory_1.s
index d9f1362..f289567 100644
--- a/asm/memory_1.s
+++ b/asm/memory_1.s
@@ -25,7 +25,7 @@ _08003412:
cmp r1, 0
bge _08003438
ldr r0, =gUnknown_80B7F88
- ldr r1, =gUnknown_80B7F94
+ ldr r1, =gLocalCreateErrorMessage
adds r2, r5, 0
bl FatalError
.align 2, 0
diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s
deleted file mode 100644
index 45f3360..0000000
--- a/asm/wonder_mail.s
+++ /dev/null
@@ -1,941 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8028348
-sub_8028348:
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r1, _08028368
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r6, r1, 0
- cmp r0, 0x3C
- bls _0802835C
- bl _08028AF2
-_0802835C:
- lsls r0, 2
- ldr r1, _0802836C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08028368: .4byte gUnknown_203B2C0
-_0802836C: .4byte _08028370
- .align 2, 0
-_08028370:
- .4byte _08028A84
- .4byte _08028AB4
- .4byte _08028AE0
- .4byte _08028AF2
- .4byte _08028650
- .4byte _08028660
- .4byte _08028678
- .4byte _08028AF2
- .4byte _08028802
- .4byte _08028640
- .4byte _0802890C
- .4byte _08028948
- .4byte _08028988
- .4byte _08028978
- .4byte _080289A0
- .4byte _08028990
- .4byte _080289B8
- .4byte _080289B0
- .4byte _080289C8
- .4byte _080289E8
- .4byte _08028A48
- .4byte _08028A58
- .4byte _08028A68
- .4byte _080289F8
- .4byte _08028A08
- .4byte _08028A18
- .4byte _08028850
- .4byte _08028860
- .4byte _08028868
- .4byte _08028878
- .4byte _08028890
- .4byte _080288A0
- .4byte _080288C6
- .4byte _08028AF2
- .4byte _08028888
- .4byte _08028790
- .4byte _08028AF2
- .4byte _080287C4
- .4byte _080287D4
- .4byte _080287DC
- .4byte _08028AF2
- .4byte _080285CC
- .4byte _080285DC
- .4byte _080288C6
- .4byte _08028AF2
- .4byte _080285AC
- .4byte _08028610
- .4byte _080285F8
- .4byte _08028600
- .4byte _0802856C
- .4byte _080284F4
- .4byte _0802850C
- .4byte _08028532
- .4byte _08028AF2
- .4byte _0802859C
- .4byte _080284B8
- .4byte _080284A8
- .4byte _080284EC
- .4byte _080284A0
- .4byte _08028464
- .4byte _08028490
-_08028464:
- ldr r0, [r6]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8031D70
- b _08028AF2
-_08028490:
- ldr r0, _0802849C
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_0802849C: .4byte gUnknown_80DDBA8
-_080284A0:
- ldr r0, _080284A4
- b _08028A6A
- .align 2, 0
-_080284A4: .4byte gUnknown_80DDBFC
-_080284A8:
- ldr r0, _080284B4
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_080284B4: .4byte gUnknown_80DDC30
-_080284B8:
- ldr r0, [r6]
- ldr r2, _080284D0
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0xE
- bne _080284C6
- b _08028AF2
-_080284C6:
- cmp r0, 0xE
- bhi _080284D4
- cmp r0, 0xD
- beq _080284DA
- b _08028AF2
- .align 2, 0
-_080284D0: .4byte 0x00000534
-_080284D4:
- cmp r0, 0x10
- bls _080284DA
- b _08028AF2
-_080284DA:
- ldr r0, _080284E8
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_080284E8: .4byte gUnknown_80DDC70
-_080284EC:
- ldr r0, _080284F0
- b _08028A6A
- .align 2, 0
-_080284F0: .4byte gUnknown_80DDC30
-_080284F4:
- ldr r0, _08028504
- ldr r3, _08028508
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08028AF2
- .align 2, 0
-_08028504: .4byte gUnknown_80DDCBC
-_08028508: .4byte 0x00000101
-_0802850C:
- bl sub_8023CE8
- cmp r0, 0
- beq _08028516
- b _08028AF2
-_08028516:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- movs r3, 0x9
- bl sub_8023868
- b _08028AF2
-_08028532:
- ldr r0, [r6]
- movs r4, 0xD7
- lsls r4, 2
- adds r0, r4
- bl sub_8006518
- ldr r1, [r6]
- movs r5, 0x87
- lsls r5, 2
- adds r0, r1, r5
- adds r1, r4
- ldr r3, _08028564
- ldr r2, _08028568
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x3
- bl SetMenuItems
- bl sub_8023DA4
- b _080288F6
- .align 2, 0
-_08028564: .4byte gUnknown_80DDAE4
-_08028568: .4byte gUnknown_80DDAFC
-_0802856C:
- ldr r0, _08028594
- ldr r3, _08028598
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028594: .4byte gUnknown_80DDD2C
-_08028598: .4byte gUnknown_80DDAA0
-_0802859C:
- ldr r0, _080285A4
- ldr r3, _080285A8
- b _08028A1C
- .align 2, 0
-_080285A4: .4byte gUnknown_80DDD88
-_080285A8: .4byte gUnknown_80DDA80
-_080285AC:
- ldr r0, _080285C4
- ldr r3, _080285C8
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- b _08028A2E
- .align 2, 0
-_080285C4: .4byte gUnknown_80DDDBC
-_080285C8: .4byte gUnknown_80DDA64
-_080285CC:
- ldr r0, _080285D8
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_080285D8: .4byte gUnknown_80DDDD8
-_080285DC:
- bl sub_8030894
- cmp r0, 0
- beq _080285E6
- b _08028AF2
-_080285E6:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x4
- b _080288BA
-_080285F8:
- ldr r0, _080285FC
- b _08028A6A
- .align 2, 0
-_080285FC: .4byte gUnknown_80DDE20
-_08028600:
- ldr r0, _0802860C
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_0802860C: .4byte gUnknown_80DDE58
-_08028610:
- ldr r0, _08028638
- ldr r3, _0802863C
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x11
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028638: .4byte gUnknown_80DDEC0
-_0802863C: .4byte gUnknown_80DDB60
-_08028640:
- ldr r0, _0802864C
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_0802864C: .4byte gUnknown_80DDF2C
-_08028650:
- ldr r0, _08028658
- ldr r3, _0802865C
- b _08028A1C
- .align 2, 0
-_08028658: .4byte gUnknown_80DDFB8
-_0802865C: .4byte gUnknown_80DDA48
-_08028660:
- movs r0, 0
- bl nullsub_23
- ldr r0, _08028674
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80141B4
- b _08028AF2
- .align 2, 0
-_08028674: .4byte gUnknown_80DE01C
-_08028678:
- ldr r1, [r6]
- movs r0, 0
- str r0, [r1, 0x44]
- bl sub_8011830
- ldr r0, [r6]
- ldr r0, [r0, 0x40]
- bl sub_8037B28
- adds r4, r0, 0
- ldr r0, [r6]
- str r4, [r0, 0x44]
- cmp r4, 0
- bne _0802878A
- ldr r1, [r0, 0x40]
- cmp r1, 0x3
- beq _080286A0
- cmp r1, 0x4
- beq _080286C2
- b _08028748
-_080286A0:
- adds r0, 0x48
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- adds r0, 0x78
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r2, [r6]
- ldr r0, [r2, 0x40]
- adds r1, r2, 0
- adds r1, 0x48
- adds r2, 0x78
- b _08028740
-_080286C2:
- adds r0, 0xA8
- movs r1, 0
- movs r2, 0x88
- bl MemoryFill8
- ldr r0, [r6]
- movs r5, 0x98
- lsls r5, 1
- adds r0, r5
- movs r1, 0
- movs r2, 0x88
- bl MemoryFill8
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xE0
- strh r4, [r0]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r1, r2
- strh r4, [r0]
- movs r3, 0x86
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- bl sub_8095228
- ldr r1, [r6]
- adds r1, 0xA8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r6]
- ldr r4, _08028760
- adds r3, r2, r4
- movs r0, 0
- ldrsh r1, [r3, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08028736
- adds r0, r2, 0
- adds r0, 0xD8
- ldr r1, _08028764
- ldr r1, [r1]
- movs r2, 0
- ldrsh r3, [r3, r2]
- movs r2, 0x58
- muls r2, r3
- adds r1, r2
- movs r2, 0x58
- bl memcpy
-_08028736:
- ldr r2, [r6]
- ldr r0, [r2, 0x40]
- adds r1, r2, 0
- adds r1, 0xA8
- adds r2, r5
-_08028740:
- bl sub_8037D64
- ldr r1, [r6]
- str r0, [r1, 0x44]
-_08028748:
- ldr r4, _08028768
- ldr r2, [r4]
- ldr r0, [r2, 0x44]
- cmp r0, 0
- bne _0802878A
- ldr r0, [r2, 0x40]
- cmp r0, 0x3
- beq _0802876C
- cmp r0, 0x4
- beq _08028776
- b _0802878A
- .align 2, 0
-_08028760: .4byte 0x00000544
-_08028764: .4byte gRecruitedPokemonRef
-_08028768: .4byte gUnknown_203B2C0
-_0802876C:
- adds r1, r2, 0
- adds r1, 0x48
- adds r2, 0x78
- movs r0, 0x3
- b _08028782
-_08028776:
- adds r1, r2, 0
- adds r1, 0xA8
- movs r3, 0x98
- lsls r3, 1
- adds r2, r3
- movs r0, 0x4
-_08028782:
- bl sub_80381F4
- ldr r1, [r4]
- str r0, [r1, 0x44]
-_0802878A:
- bl xxx_call_start_bg_music
- b _08028AF2
-_08028790:
- ldr r0, [r6]
- ldr r4, _080287A8
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0xE
- bne _0802879E
- b _08028AF2
-_0802879E:
- cmp r0, 0xE
- bhi _080287AC
- cmp r0, 0xD
- beq _080287B2
- b _08028AF2
- .align 2, 0
-_080287A8: .4byte 0x00000534
-_080287AC:
- cmp r0, 0x10
- bls _080287B2
- b _08028AF2
-_080287B2:
- ldr r0, _080287C0
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_080287C0: .4byte gUnknown_80DE06C
-_080287C4:
- ldr r0, _080287D0
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_080287D0: .4byte gUnknown_80DE0C0
-_080287D4:
- ldr r0, _080287D8
- b _08028A6A
- .align 2, 0
-_080287D8: .4byte gUnknown_80DE124
-_080287DC:
- ldr r0, [r6]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r6]
- adds r1, 0x8
- movs r0, 0x4
- bl sub_80151C0
- b _08028AF2
-_08028802:
- ldr r4, [r6]
- movs r2, 0xA7
- lsls r2, 3
- adds r0, r4, r2
- ldr r2, [r0]
- cmp r2, 0
- beq _08028816
- cmp r2, 0x2
- beq _08028824
- b _08028AF2
-_08028816:
- ldr r0, _0802881C
- ldr r3, _08028820
- b _0802882A
- .align 2, 0
-_0802881C: .4byte gUnknown_80DE178
-_08028820: .4byte gUnknown_80DDB24
-_08028824:
- ldr r0, _08028848
- ldr r3, _0802884C
- movs r2, 0
-_0802882A:
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r4, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0xD
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028848: .4byte gUnknown_80DE1B4
-_0802884C: .4byte gUnknown_80DDB24
-_08028850:
- ldr r0, _0802885C
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_0802885C: .4byte gUnknown_80DE1E4
-_08028860:
- ldr r0, _08028864
- b _08028A6A
- .align 2, 0
-_08028864: .4byte gUnknown_80DE280
-_08028868:
- ldr r0, _08028874
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_08028874: .4byte gUnknown_80DE2B0
-_08028878:
- ldr r0, _08028884
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_08028884: .4byte gUnknown_80DE368
-_08028888:
- ldr r0, _0802888C
- b _08028A1A
- .align 2, 0
-_0802888C: .4byte gUnknown_80DDDBC
-_08028890:
- ldr r0, _0802889C
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_0802889C: .4byte gUnknown_80DE430
-_080288A0:
- bl sub_8030894
- cmp r0, 0
- beq _080288AA
- b _08028AF2
-_080288AA:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x2
-_080288BA:
- movs r1, 0
- movs r2, 0
- movs r3, 0x6
- bl sub_80306A8
- b _08028AF2
-_080288C6:
- ldr r0, [r6]
- movs r4, 0xD7
- lsls r4, 2
- adds r0, r4
- bl sub_8006518
- ldr r1, [r6]
- movs r5, 0x87
- lsls r5, 2
- adds r0, r1, r5
- adds r1, r4
- ldr r3, _08028904
- ldr r2, _08028908
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x3
- bl SetMenuItems
- bl sub_803092C
-_080288F6:
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- b _08028AF2
- .align 2, 0
-_08028904: .4byte gUnknown_80DDACC
-_08028908: .4byte gUnknown_80DDAFC
-_0802890C:
- bl sub_8095350
- ldr r1, _0802893C
- ldr r1, [r1]
- movs r3, 0xA8
- lsls r3, 3
- adds r2, r1, r3
- str r0, [r2]
- movs r4, 0xA7
- lsls r4, 3
- adds r1, r4
- ldr r1, [r1]
- cmp r1, 0x6
- beq _08028940
- cmp r1, 0x6
- bls _0802892E
- b _08028AF2
-_0802892E:
- cmp r1, 0x5
- beq _08028934
- b _08028AF2
-_08028934:
- movs r0, 0x2
- bl sub_8030F58
- b _08028AF2
- .align 2, 0
-_0802893C: .4byte gUnknown_203B2C0
-_08028940:
- movs r0, 0x4
- bl sub_8030F58
- b _08028AF2
-_08028948:
- ldr r0, _08028970
- ldr r3, _08028974
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028970: .4byte gUnknown_80DE48C
-_08028974: .4byte gUnknown_80DD9EC
-_08028978:
- ldr r0, _08028984
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_08028984: .4byte gUnknown_80DE4B8
-_08028988:
- ldr r0, _0802898C
- b _08028A6A
- .align 2, 0
-_0802898C: .4byte gUnknown_80DE4F0
-_08028990:
- ldr r0, _0802899C
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_0802899C: .4byte gUnknown_80DE524
-_080289A0:
- ldr r0, _080289AC
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_080289AC: .4byte gUnknown_80DE614
-_080289B0:
- ldr r0, _080289B4
- b _08028A6A
- .align 2, 0
-_080289B4: .4byte gUnknown_80DE648
-_080289B8:
- ldr r0, _080289C4
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_080289C4: .4byte gUnknown_80DE694
-_080289C8:
- ldr r0, _080289E0
- ldr r3, _080289E4
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- b _08028A2E
- .align 2, 0
-_080289E0: .4byte gUnknown_80DE6D4
-_080289E4: .4byte gUnknown_80DDA48
-_080289E8:
- ldr r0, _080289F0
- ldr r3, _080289F4
- b _08028A1C
- .align 2, 0
-_080289F0: .4byte gUnknown_80DE754
-_080289F4: .4byte gUnknown_80DDA48
-_080289F8:
- ldr r0, _08028A04
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_08028A04: .4byte gUnknown_80DE7B8
-_08028A08:
- ldr r0, _08028A14
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_08028A14: .4byte gUnknown_80DE7E8
-_08028A18:
- ldr r0, _08028A40
-_08028A1A:
- ldr r3, _08028A44
-_08028A1C:
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r4, 0x84
- lsls r4, 3
- adds r1, r4
-_08028A2E:
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x8
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028A40: .4byte gUnknown_80DE808
-_08028A44: .4byte gUnknown_80DDA64
-_08028A48:
- ldr r0, _08028A54
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- b _08028A72
- .align 2, 0
-_08028A54: .4byte gUnknown_80DE830
-_08028A58:
- ldr r0, _08028A64
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _08028A72
- .align 2, 0
-_08028A64: .4byte gUnknown_80DE864
-_08028A68:
- ldr r0, _08028A7C
-_08028A6A:
- ldr r2, [r6]
- movs r4, 0x84
- lsls r4, 3
- adds r2, r4
-_08028A72:
- ldr r3, _08028A80
- movs r1, 0
- bl sub_80141B4
- b _08028AF2
- .align 2, 0
-_08028A7C: .4byte gUnknown_80DE7E8
-_08028A80: .4byte 0x0000010d
-_08028A84:
- ldr r0, _08028AAC
- ldr r3, _08028AB0
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028AAC: .4byte gUnknown_80DE8B4
-_08028AB0: .4byte gUnknown_80DD970
-_08028AB4:
- ldr r0, _08028AD8
- ldr r3, _08028ADC
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, [r6]
- movs r4, 0x84
- lsls r4, 3
- adds r1, r4
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _08028AF2
- .align 2, 0
-_08028AD8: .4byte gUnknown_80DE918
-_08028ADC: .4byte gUnknown_80DD970
-_08028AE0:
- ldr r0, _08028AFC
- ldr r2, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- ldr r3, _08028B00
- movs r1, 0
- bl sub_80141B4
-_08028AF2:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AFC: .4byte gUnknown_80DE93C
-_08028B00: .4byte 0x0000010d
- thumb_func_end sub_8028348
-
- .align 2,0
diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s
index 3d5781b..797431c 100644
--- a/asm/wonder_mail_3.s
+++ b/asm/wonder_mail_3.s
@@ -5,360 +5,6 @@
.text
- thumb_func_start sub_802D2A8
-sub_802D2A8:
- push {r4,lr}
- sub sp, 0x14
- ldr r1, _0802D2C4
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _0802D2BA
- b _0802D59A
-_0802D2BA:
- lsls r0, 2
- ldr r1, _0802D2C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802D2C4: .4byte gUnknown_203B2F8
-_0802D2C8: .4byte _0802D2CC
- .align 2, 0
-_0802D2CC:
- .4byte _0802D310
- .4byte _0802D398
- .4byte _0802D59A
- .4byte _0802D3B4
- .4byte _0802D3C4
- .4byte _0802D3D4
- .4byte _0802D3E4
- .4byte _0802D3F4
- .4byte _0802D404
- .4byte _0802D498
- .4byte _0802D4C8
- .4byte _0802D4E4
- .4byte _0802D4F0
- .4byte _0802D4F8
- .4byte _0802D524
- .4byte _0802D558
- .4byte _0802D576
-_0802D310:
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl sub_80968B0
- lsls r0, 24
- cmp r0, 0
- beq _0802D326
- movs r0, 0x3
- bl sub_802D1A0
- b _0802D59A
-_0802D326:
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl sub_8096F50
- lsls r0, 24
- cmp r0, 0
- beq _0802D33C
- movs r0, 0x4
- bl sub_802D1A0
- b _0802D59A
-_0802D33C:
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x4
- bne _0802D36E
- adds r0, r1, 0
- adds r0, 0x10
- bl sub_8096C08
- lsls r0, 24
- cmp r0, 0
- beq _0802D36E
- bl sub_802DAA8
- lsls r0, 24
- cmp r0, 0
- beq _0802D366
- movs r0, 0x9
- bl sub_802D1A0
- b _0802D59A
-_0802D366:
- movs r0, 0x5
- bl sub_802D1A0
- b _0802D59A
-_0802D36E:
- bl sub_80969AC
- cmp r0, 0x7
- ble _0802D390
- bl sub_802DADC
- lsls r0, 24
- cmp r0, 0
- beq _0802D388
- movs r0, 0xA
- bl sub_802D1A0
- b _0802D59A
-_0802D388:
- movs r0, 0x6
- bl sub_802D1A0
- b _0802D59A
-_0802D390:
- movs r0, 0x8
- bl sub_802D1A0
- b _0802D59A
-_0802D398:
- bl sub_802D73C
- ldr r0, _0802D3AC
- ldr r1, _0802D3B0
- ldr r3, [r1]
- ldr r2, [r3, 0x70]
- movs r1, 0xAC
- lsls r1, 1
- adds r3, r1
- b _0802D4AA
- .align 2, 0
-_0802D3AC: .4byte gUnknown_80DFE4C
-_0802D3B0: .4byte gUnknown_203B2F8
-_0802D3B4:
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x4]
- ldr r0, _0802D3C0
- b _0802D4D0
- .align 2, 0
-_0802D3C0: .4byte gUnknown_80DFE9C
-_0802D3C4:
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x4]
- ldr r0, _0802D3D0
- b _0802D4D0
- .align 2, 0
-_0802D3D0: .4byte gUnknown_80DFED0
-_0802D3D4:
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x4]
- ldr r0, _0802D3E0
- b _0802D4D0
- .align 2, 0
-_0802D3E0: .4byte gUnknown_80DFF2C
-_0802D3E4:
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x4]
- ldr r0, _0802D3F0
- b _0802D4D0
- .align 2, 0
-_0802D3F0: .4byte gUnknown_80DFFA4
-_0802D3F4:
- ldr r1, [r4]
- movs r0, 0xC
- str r0, [r1, 0x4]
- ldr r0, _0802D400
- b _0802D4D0
- .align 2, 0
-_0802D400: .4byte gUnknown_80E0010
-_0802D404:
- ldr r4, _0802D45C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl sub_8096A78
- bl sub_8096C80
- bl sub_8096D24
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x4
- bne _0802D446
- bl sub_8096DD8
- ldr r1, [r4]
- ldr r1, [r1, 0xC]
- ldr r1, [r1, 0x14]
- movs r2, 0x28
- bl MemoryCopy8
- bl sub_8096DE8
- ldr r1, [r4]
- ldr r1, [r1, 0xC]
- ldr r1, [r1, 0x18]
- movs r2, 0x78
- bl MemoryCopy8
-_0802D446:
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2C
- beq _0802D46E
- cmp r0, 0x2C
- bgt _0802D460
- cmp r0, 0x2B
- beq _0802D46A
- b _0802D484
- .align 2, 0
-_0802D45C: .4byte gUnknown_203B2F8
-_0802D460:
- cmp r0, 0x2D
- beq _0802D472
- cmp r0, 0x2E
- beq _0802D47C
- b _0802D484
-_0802D46A:
- movs r0, 0x2A
- b _0802D474
-_0802D46E:
- movs r0, 0x2B
- b _0802D474
-_0802D472:
- movs r0, 0x2C
-_0802D474:
- movs r1, 0x1
- bl sub_8097418
- b _0802D484
-_0802D47C:
- movs r0, 0x2D
- movs r1, 0x1
- bl sub_8097418
-_0802D484:
- ldr r0, _0802D490
- ldr r1, [r0]
- movs r0, 0x2
- str r0, [r1, 0x4]
- ldr r0, _0802D494
- b _0802D4D0
- .align 2, 0
-_0802D490: .4byte gUnknown_203B2F8
-_0802D494: .4byte gUnknown_80E0074
-_0802D498:
- bl sub_802D690
- ldr r0, _0802D4C0
- ldr r1, _0802D4C4
- ldr r3, [r1]
- ldr r2, [r3, 0x74]
- movs r4, 0xAC
- lsls r4, 1
- adds r3, r4
-_0802D4AA:
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _0802D59A
- .align 2, 0
-_0802D4C0: .4byte gUnknown_80E0094
-_0802D4C4: .4byte gUnknown_203B2F8
-_0802D4C8:
- ldr r1, [r4]
- movs r0, 0xB
- str r0, [r1, 0x4]
- ldr r0, _0802D4DC
-_0802D4D0:
- ldr r3, _0802D4E0
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0802D59A
- .align 2, 0
-_0802D4DC: .4byte gUnknown_80E0108
-_0802D4E0: .4byte 0x00000101
-_0802D4E4:
- movs r0, 0
- movs r1, 0
- movs r2, 0x4
- bl sub_802C4C8
- b _0802D59A
-_0802D4F0:
- movs r0, 0x1
- bl sub_802C640
- b _0802D59A
-_0802D4F8:
- bl sub_802C750
- ldr r0, _0802D520
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x78
- movs r3, 0x8C
- lsls r3, 1
- adds r1, r2, r3
- movs r4, 0xCC
- lsls r4, 1
- adds r3, r2, r4
- ldr r2, [r2, 0x6C]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _0802D59A
- .align 2, 0
-_0802D520: .4byte gUnknown_203B2F8
-_0802D524:
- bl sub_802C750
- ldr r4, _0802D554
- ldr r0, [r4]
- adds r0, 0x78
- movs r1, 0
- bl sub_8012EA4
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC8
- movs r2, 0xAC
- lsls r2, 1
- adds r1, r2
- movs r2, 0x4
- str r2, [sp]
- movs r2, 0x3
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0802D59A
- .align 2, 0
-_0802D554: .4byte gUnknown_203B2F8
-_0802D558:
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- bl sub_8096AB4
- ldr r1, [r4]
- adds r1, 0x14
- bl sub_803B35C
- ldr r0, [r4]
- movs r1, 0x3
- str r1, [r0, 0x14]
- adds r0, 0x14
- bl sub_802DE84
- b _0802D59A
-_0802D576:
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- adds r1, 0x14
- bl sub_803B35C
- ldr r0, [r4]
- movs r1, 0x3
- str r1, [r0, 0x14]
- adds r0, 0x58
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, [r0, 0xC]
- ldr r1, [r1, 0x18]
- str r1, [r0, 0x64]
- adds r0, 0x14
- bl sub_802DE84
-_0802D59A:
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802D2A8
-
thumb_func_start sub_802D5A4
sub_802D5A4:
push {r4-r7,lr}
diff --git a/asm/wonder_mail_3_mid.s b/asm/wonder_mail_3_mid.s
index 208805c..4aa1e3b 100644
--- a/asm/wonder_mail_3_mid.s
+++ b/asm/wonder_mail_3_mid.s
@@ -5,1334 +5,6 @@
.text
- thumb_func_start sub_802EF48
-sub_802EF48:
- push {r4,lr}
- ldr r4, _0802EF68
- movs r0, 0xA8
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r0, 0
- bl sub_802EFEC
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0802EF68: .4byte gUnknown_203B30C
- thumb_func_end sub_802EF48
-
- thumb_func_start sub_802EF6C
-sub_802EF6C:
- push {lr}
- ldr r0, _0802EF84
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x5
- bhi _0802EFBA
- lsls r0, 2
- ldr r1, _0802EF88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802EF84: .4byte gUnknown_203B30C
-_0802EF88: .4byte _0802EF8C
- .align 2, 0
-_0802EF8C:
- .4byte _0802EFA4
- .4byte _0802EFA4
- .4byte _0802EFAA
- .4byte _0802EFB0
- .4byte _0802EFB6
- .4byte _0802EFBA
-_0802EFA4:
- bl sub_802F148
- b _0802EFBE
-_0802EFAA:
- bl sub_802F184
- b _0802EFBE
-_0802EFB0:
- bl sub_802F1E8
- b _0802EFBE
-_0802EFB6:
- movs r0, 0x3
- b _0802EFC0
-_0802EFBA:
- movs r0, 0x2
- b _0802EFC0
-_0802EFBE:
- movs r0, 0
-_0802EFC0:
- pop {r1}
- bx r1
- thumb_func_end sub_802EF6C
-
- thumb_func_start sub_802EFC4
-sub_802EFC4:
- ldr r0, _0802EFCC
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_0802EFCC: .4byte gUnknown_203B30C
- thumb_func_end sub_802EFC4
-
- thumb_func_start sub_802EFD0
-sub_802EFD0:
- push {r4,lr}
- ldr r4, _0802EFE8
- ldr r0, [r4]
- cmp r0, 0
- beq _0802EFE2
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802EFE2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802EFE8: .4byte gUnknown_203B30C
- thumb_func_end sub_802EFD0
-
- thumb_func_start sub_802EFEC
-sub_802EFEC:
- push {lr}
- ldr r1, _0802F000
- ldr r1, [r1]
- str r0, [r1]
- bl sub_802F004
- bl sub_802F088
- pop {r0}
- bx r0
- .align 2, 0
-_0802F000: .4byte gUnknown_203B30C
- thumb_func_end sub_802EFEC
-
- thumb_func_start sub_802F004
-sub_802F004:
- push {r4-r7,lr}
- ldr r4, _0802F03C
- ldr r0, [r4]
- adds r0, 0xF0
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x2
- bne _0802F044
- bl sub_802F108
- ldr r2, [r4]
- movs r0, 0x90
- lsls r0, 1
- adds r2, r0
- ldr r1, _0802F040
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0xB0
- bl sub_8012CAC
- b _0802F066
- .align 2, 0
-_0802F03C: .4byte gUnknown_203B30C
-_0802F040: .4byte gUnknown_80E03F4
-_0802F044:
- mov r12, r4
- ldr r4, _0802F080
- movs r2, 0
- movs r3, 0x3
-_0802F04C:
- mov r6, r12
- ldr r1, [r6]
- adds r1, r2
- adds r1, 0xF0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r2, 0x18
- subs r3, 0x1
- cmp r3, 0
- bge _0802F04C
-_0802F066:
- bl ResetUnusedInputStruct
- ldr r0, _0802F084
- ldr r0, [r0]
- adds r0, 0xF0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F080: .4byte gUnknown_80E03C4
-_0802F084: .4byte gUnknown_203B30C
- thumb_func_end sub_802F004
-
- thumb_func_start sub_802F088
-sub_802F088:
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _0802F0A0
- ldr r0, [r6]
- ldr r5, [r0]
- cmp r5, 0x1
- beq _0802F0B6
- cmp r5, 0x1
- bgt _0802F0A4
- cmp r5, 0
- beq _0802F0AE
- b _0802F100
- .align 2, 0
-_0802F0A0: .4byte gUnknown_203B30C
-_0802F0A4:
- cmp r5, 0x2
- beq _0802F0BE
- cmp r5, 0x3
- beq _0802F0DA
- b _0802F100
-_0802F0AE:
- movs r0, 0
- bl sub_802CDD4
- b _0802F100
-_0802F0B6:
- movs r0, 0x1
- bl sub_802CED8
- b _0802F100
-_0802F0BE:
- bl sub_802CFD0
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x60
- adds r1, 0xB0
- movs r2, 0x3
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0802F100
-_0802F0DA:
- ldrb r0, [r0, 0x4]
- bl sub_803B344
- adds r4, r0, 0
- ldr r1, [r6]
- adds r1, 0x8
- bl sub_803B35C
- ldr r0, [r6]
- str r5, [r0, 0x8]
- adds r0, 0x4C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, [r4, 0x18]
- str r1, [r0, 0x58]
- adds r0, 0x8
- bl sub_802DE84
-_0802F100:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802F088
-
- thumb_func_start sub_802F108
-sub_802F108:
- ldr r0, _0802F13C
- ldr r0, [r0]
- mov r12, r0
- movs r3, 0
- mov r1, r12
- adds r1, 0xB0
- ldr r0, _0802F140
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x2
- str r0, [r1]
- movs r2, 0x1
- adds r1, 0x4
- ldr r0, _0802F144
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x3
- str r0, [r1]
- mov r0, r12
- adds r0, 0xC0
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- bx lr
- .align 2, 0
-_0802F13C: .4byte gUnknown_203B30C
-_0802F140: .4byte gUnknown_80E040C
-_0802F144: .4byte gUnknown_80D4970
- thumb_func_end sub_802F108
-
- thumb_func_start sub_802F148
-sub_802F148:
- push {lr}
- movs r0, 0x1
- bl sub_802CE5C
- cmp r0, 0x2
- beq _0802F174
- cmp r0, 0x2
- bcc _0802F17E
- cmp r0, 0x3
- bne _0802F17E
- bl sub_802CEBC
- ldr r1, _0802F170
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_802EFEC
- b _0802F17E
- .align 2, 0
-_0802F170: .4byte gUnknown_203B30C
-_0802F174:
- bl sub_802CF14
- movs r0, 0x5
- bl sub_802EFEC
-_0802F17E:
- pop {r0}
- bx r0
- thumb_func_end sub_802F148
-
- thumb_func_start sub_802F184
-sub_802F184:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_802CE5C
- ldr r4, _0802F1BC
- ldr r0, [r4]
- adds r0, 0x60
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0802F1AA
- ldr r0, [r4]
- adds r0, 0x60
- mov r1, sp
- bl sub_8013114
-_0802F1AA:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0802F1C6
- cmp r0, 0x2
- bgt _0802F1C0
- cmp r0, 0x1
- beq _0802F1DA
- b _0802F1E0
- .align 2, 0
-_0802F1BC: .4byte gUnknown_203B30C
-_0802F1C0:
- cmp r0, 0x3
- beq _0802F1D2
- b _0802F1E0
-_0802F1C6:
- bl sub_802CF14
- movs r0, 0x4
- bl sub_802EFEC
- b _0802F1E0
-_0802F1D2:
- movs r0, 0x3
- bl sub_802EFEC
- b _0802F1E0
-_0802F1DA:
- movs r0, 0x1
- bl sub_802EFEC
-_0802F1E0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802F184
-
- thumb_func_start sub_802F1E8
-sub_802F1E8:
- push {lr}
- bl sub_802DEE0
- cmp r0, 0x1
- bls _0802F200
- cmp r0, 0x3
- bhi _0802F200
- bl sub_802DF24
- movs r0, 0x1
- bl sub_802EFEC
-_0802F200:
- pop {r0}
- bx r0
- thumb_func_end sub_802F1E8
-
- thumb_func_start sub_802F204
-sub_802F204:
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _0802F28C
- movs r0, 0x84
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- str r6, [r0, 0x10]
- movs r6, 0
- str r6, [r0, 0xC]
- strb r4, [r0, 0x8]
- ldr r1, [r5]
- ldr r0, _0802F290
- ldr r1, [r1, 0x10]
- bl strcpy
- ldr r4, _0802F294
- bl sub_808D33C
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_808DA34
- ldr r0, [r5]
- ldr r0, [r0, 0x10]
- movs r1, 0x14
- ldrsh r0, [r0, r1]
- bl GetDialogueSpriteDataPtr
- ldr r1, [r5]
- str r0, [r1, 0x14]
- str r6, [r1, 0x18]
- adds r1, 0x20
- strb r6, [r1]
- ldr r0, [r5]
- adds r0, 0x21
- strb r6, [r0]
- ldr r0, [r5]
- adds r0, 0x22
- strb r6, [r0]
- ldr r5, [r5]
- movs r0, 0x2
- strh r0, [r5, 0x1C]
- movs r0, 0x8
- strh r0, [r5, 0x1E]
- ldr r0, [r5, 0x14]
- cmp r0, 0
- beq _0802F27C
- ldr r0, [r0, 0x4]
- str r0, [r5, 0x18]
-_0802F27C:
- movs r0, 0
- bl sub_802F2E8
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0802F28C: .4byte gUnknown_203B310
-_0802F290: .4byte gUnknown_202E5D8
-_0802F294: .4byte gAvailablePokemonNames
- thumb_func_end sub_802F204
-
- thumb_func_start sub_802F298
-sub_802F298:
- push {lr}
- ldr r0, _0802F2AC
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x5
- beq _0802F2B0
- cmp r0, 0x9
- bne _0802F2B6
- movs r0, 0x3
- b _0802F2BC
- .align 2, 0
-_0802F2AC: .4byte gUnknown_203B310
-_0802F2B0:
- bl sub_802F6FC
- b _0802F2BA
-_0802F2B6:
- bl sub_802F718
-_0802F2BA:
- movs r0, 0
-_0802F2BC:
- pop {r1}
- bx r1
- thumb_func_end sub_802F298
-
- thumb_func_start sub_802F2C0
-sub_802F2C0:
- push {r4,lr}
- ldr r4, _0802F2E4
- ldr r0, [r4]
- cmp r0, 0
- beq _0802F2DE
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _0802F2D4
- bl CloseFile
-_0802F2D4:
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802F2DE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F2E4: .4byte gUnknown_203B310
- thumb_func_end sub_802F2C0
-
- thumb_func_start sub_802F2E8
-sub_802F2E8:
- push {lr}
- ldr r1, _0802F2FC
- ldr r1, [r1]
- str r0, [r1]
- bl sub_802F300
- bl HandleMissionReward
- pop {r0}
- bx r0
- .align 2, 0
-_0802F2FC: .4byte gUnknown_203B310
- thumb_func_end sub_802F2E8
-
- thumb_func_start sub_802F300
-sub_802F300:
- push {r4-r7,lr}
- ldr r4, _0802F350
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0
- bne _0802F348
- adds r0, r1, 0
- adds r0, 0x24
- bl sub_8006518
- mov r12, r4
- ldr r4, _0802F354
- movs r3, 0
- movs r2, 0x3
-_0802F31C:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0x24
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0802F31C
- bl ResetUnusedInputStruct
- ldr r0, _0802F350
- ldr r0, [r0]
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0802F348:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F350: .4byte gUnknown_203B310
-_0802F354: .4byte gUnknown_80E041C
- thumb_func_end sub_802F300
-
- thumb_func_start HandleMissionReward
-HandleMissionReward:
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r1, _0802F374
- ldr r0, [r1]
- ldr r0, [r0]
- adds r6, r1, 0
- cmp r0, 0x9
- bls _0802F36A
- b _0802F6E4
-_0802F36A:
- lsls r0, 2
- ldr r1, _0802F378
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802F374: .4byte gUnknown_203B310
-_0802F378: .4byte _0802F37C
- .align 2, 0
-_0802F37C:
- .4byte _0802F3A4
- .4byte _0802F3E8
- .4byte _0802F444
- .4byte _0802F494
- .4byte _0802F524
- .4byte _0802F5CC
- .4byte _0802F614
- .4byte _0802F630
- .4byte _0802F6A4
- .4byte _0802F6E4
-_0802F3A4:
- ldr r2, [r6]
- ldr r0, [r2, 0x10]
- ldr r1, [r0, 0x18]
- cmp r1, 0
- bne _0802F3B6
- movs r0, 0x2
- bl sub_802F2E8
- b _0802F6E4
-_0802F3B6:
- ldr r0, _0802F3D4
- str r1, [r0]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0802F3E0
- ldr r0, _0802F3D8
- adds r2, 0x14
- ldr r3, _0802F3DC
- movs r1, 0
- bl sub_80141B4
- ldr r1, [r6]
- movs r0, 0x1
- str r0, [r1, 0x4]
- b _0802F6E4
- .align 2, 0
-_0802F3D4: .4byte gUnknown_202DE30
-_0802F3D8: .4byte gUnknown_80E0434
-_0802F3DC: .4byte 0x0000010d
-_0802F3E0:
- movs r0, 0x1
- bl sub_802F2E8
- b _0802F6E4
-_0802F3E8:
- movs r0, 0xCB
- bl PlaySound
- ldr r0, _0802F414
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- ldr r0, [r0, 0x18]
- bl AddToTeamMoney
- movs r0, 0
- bl sub_808D544
- cmp r0, 0x1
- bgt _0802F420
- ldr r0, _0802F418
- ldr r3, _0802F41C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0802F42C
- .align 2, 0
-_0802F414: .4byte gUnknown_203B310
-_0802F418: .4byte gUnknown_80E045C
-_0802F41C: .4byte 0x00000101
-_0802F420:
- ldr r0, _0802F438
- ldr r3, _0802F43C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_0802F42C:
- ldr r0, _0802F440
- ldr r1, [r0]
- movs r0, 0x2
- str r0, [r1, 0x4]
- b _0802F6E4
- .align 2, 0
-_0802F438: .4byte gUnknown_80E0484
-_0802F43C: .4byte 0x00000101
-_0802F440: .4byte gUnknown_203B310
-_0802F444:
- ldr r0, [r6]
- ldr r0, [r0, 0x10]
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802F45A
- movs r0, 0x4
- bl sub_802F2E8
- b _0802F6E4
-_0802F45A:
- ldr r0, _0802F480
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8092578
- ldr r2, [r6]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0802F48C
- ldr r0, _0802F484
- adds r2, 0x14
- ldr r3, _0802F488
- movs r1, 0
- bl sub_80141B4
- ldr r1, [r6]
- movs r0, 0x3
- str r0, [r1, 0x4]
- b _0802F6E4
- .align 2, 0
-_0802F480: .4byte gUnknown_202E628
-_0802F484: .4byte gUnknown_80E04B4
-_0802F488: .4byte 0x0000010d
-_0802F48C:
- movs r0, 0x3
- bl sub_802F2E8
- b _0802F6E4
-_0802F494:
- ldr r4, _0802F4B4
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- adds r0, 0x20
- ldrb r0, [r0]
- bl GetFriendAreaStatus
- lsls r0, 24
- cmp r0, 0
- beq _0802F4BC
- movs r0, 0xFA
- lsls r0, 2
- bl AddToTeamMoney
- ldr r0, _0802F4B8
- b _0802F4DA
- .align 2, 0
-_0802F4B4: .4byte gUnknown_203B310
-_0802F4B8: .4byte gUnknown_80E04F4
-_0802F4BC:
- movs r0, 0
- bl sub_808D544
- cmp r0, 0x1
- bgt _0802F4F0
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- adds r0, 0x20
- ldrb r0, [r0]
- bl UnlockFriendArea
- movs r0, 0xCE
- bl PlaySound
- ldr r0, _0802F4E8
-_0802F4DA:
- ldr r3, _0802F4EC
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0802F50E
- .align 2, 0
-_0802F4E8: .4byte gUnknown_80E05C0
-_0802F4EC: .4byte 0x00000101
-_0802F4F0:
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- adds r0, 0x20
- ldrb r0, [r0]
- bl UnlockFriendArea
- movs r0, 0xCE
- bl PlaySound
- ldr r0, _0802F518
- ldr r3, _0802F51C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_0802F50E:
- ldr r0, _0802F520
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [r1, 0x4]
- b _0802F6E4
- .align 2, 0
-_0802F518: .4byte gUnknown_80E05FC
-_0802F51C: .4byte 0x00000101
-_0802F520: .4byte gUnknown_203B310
-_0802F524:
- ldr r0, [r6]
- ldr r0, [r0, 0x10]
- ldrb r2, [r0, 0x1C]
- cmp r2, 0
- beq _0802F628
- ldr r0, [r0, 0x18]
- cmp r0, 0
- bne _0802F620
- lsls r2, 16
- ldr r1, _0802F564
- ldr r0, [sp, 0xC]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0xC]
- lsrs r0, 16
- lsls r0, 24
- lsrs r0, 24
- bl IsThrowableItem
- lsls r0, 24
- cmp r0, 0
- beq _0802F56C
- ldr r0, [r6]
- ldr r0, [r0, 0x10]
- ldrb r1, [r0, 0x1F]
- lsls r1, 8
- ldr r2, _0802F568
- ldr r0, [sp, 0xC]
- ands r0, r2
- orrs r0, r1
- b _0802F572
- .align 2, 0
-_0802F564: .4byte 0xff00ffff
-_0802F568: .4byte 0xffff00ff
-_0802F56C:
- ldr r1, _0802F5B4
- ldr r0, [sp, 0xC]
- ands r0, r1
-_0802F572:
- str r0, [sp, 0xC]
- ldr r1, _0802F5B8
- ldr r0, [sp, 0xC]
- ands r0, r1
- movs r2, 0x1
- orrs r0, r2
- str r0, [sp, 0xC]
- movs r1, 0
- str r1, [sp]
- mov r0, sp
- strb r1, [r0, 0x4]
- strb r2, [r0, 0x8]
- ldr r0, _0802F5BC
- add r1, sp, 0xC
- mov r2, sp
- bl sub_8090E14
- ldr r4, _0802F5C0
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0802F620
- ldr r0, _0802F5C4
- adds r2, 0x14
- ldr r3, _0802F5C8
- movs r1, 0
- bl sub_80141B4
- ldr r1, [r4]
- movs r0, 0x5
- str r0, [r1, 0x4]
- b _0802F6E4
- .align 2, 0
-_0802F5B4: .4byte 0xffff00ff
-_0802F5B8: .4byte 0xffffff00
-_0802F5BC: .4byte gUnknown_202DEA8
-_0802F5C0: .4byte gUnknown_203B310
-_0802F5C4: .4byte gUnknown_80E0640
-_0802F5C8: .4byte 0x0000010d
-_0802F5CC:
- ldr r0, [r6]
- ldr r2, [r0, 0x10]
- adds r1, r2, 0
- adds r1, 0x1C
- ldr r3, [r0, 0xC]
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802F5E6
- movs r0, 0x6
- bl sub_802F2E8
- b _0802F6E4
-_0802F5E6:
- cmp r3, 0
- bne _0802F5FC
- ldr r0, [r2, 0x18]
- cmp r0, 0
- bne _0802F5FC
- ldrb r1, [r2, 0x1C]
- ldrb r2, [r2, 0x1F]
- movs r0, 0
- bl sub_801B60C
- b _0802F6E4
-_0802F5FC:
- ldr r1, [r6]
- ldr r2, [r1, 0x10]
- adds r0, r2, 0
- adds r0, 0x1C
- ldr r1, [r1, 0xC]
- adds r0, r1
- ldrb r1, [r0]
- ldrb r2, [r2, 0x1F]
- movs r0, 0x1
- bl sub_801B60C
- b _0802F6E4
-_0802F614:
- ldr r1, [r6]
- ldr r0, [r1, 0xC]
- adds r0, 0x1
- str r0, [r1, 0xC]
- cmp r0, 0x2
- bgt _0802F628
-_0802F620:
- movs r0, 0x5
- bl sub_802F2E8
- b _0802F6E4
-_0802F628:
- movs r0, 0x7
- bl sub_802F2E8
- b _0802F6E4
-_0802F630:
- adds r5, r6, 0
- ldr r0, [r5]
- ldr r0, [r0, 0x10]
- ldr r0, [r0, 0x24]
- cmp r0, 0
- bne _0802F644
- movs r0, 0x9
- bl sub_802F2E8
- b _0802F6E4
-_0802F644:
- bl GetRescueTeamRank
- ldr r1, [r5]
- strb r0, [r1, 0x9]
- ldr r0, [r5]
- ldr r0, [r0, 0x10]
- ldr r0, [r0, 0x24]
- bl AddToTeamRankPts
- movs r0, 0xCB
- bl PlaySound
- ldr r4, [r5]
- bl GetRescueTeamRank
- ldrb r1, [r4, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _0802F672
- ldr r1, [r5]
- movs r0, 0x8
- b _0802F676
-_0802F672:
- ldr r1, [r6]
- movs r0, 0x9
-_0802F676:
- str r0, [r1, 0x4]
- ldr r1, _0802F694
- ldr r0, _0802F698
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- ldr r0, [r0, 0x24]
- str r0, [r1]
- ldr r0, _0802F69C
- ldr r3, _0802F6A0
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0802F6E4
- .align 2, 0
-_0802F694: .4byte gUnknown_202DE30
-_0802F698: .4byte gUnknown_203B310
-_0802F69C: .4byte gUnknown_80E0670
-_0802F6A0: .4byte 0x00000101
-_0802F6A4:
- movs r0, 0xC9
- bl PlaySound
- ldr r0, _0802F6EC
- ldr r1, [r0]
- movs r0, 0x9
- str r0, [r1, 0x4]
- ldrb r0, [r1, 0x9]
- bl GetTeamRankString
- adds r1, r0, 0
- ldr r4, _0802F6F0
- adds r0, r4, 0
- bl strcpy
- bl GetRescueTeamRank
- lsls r0, 24
- lsrs r0, 24
- bl GetTeamRankString
- adds r1, r0, 0
- adds r4, 0x50
- adds r0, r4, 0
- bl strcpy
- ldr r0, _0802F6F4
- ldr r3, _0802F6F8
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_0802F6E4:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F6EC: .4byte gUnknown_203B310
-_0802F6F0: .4byte gUnknown_202E038
-_0802F6F4: .4byte gUnknown_80E06A8
-_0802F6F8: .4byte 0x00000101
- thumb_func_end HandleMissionReward
-
- thumb_func_start sub_802F6FC
-sub_802F6FC:
- push {lr}
- bl sub_801B6AC
- cmp r0, 0x1
- bls _0802F714
- cmp r0, 0x3
- bhi _0802F714
- bl sub_801B72C
- movs r0, 0x6
- bl sub_802F2E8
-_0802F714:
- pop {r0}
- bx r0
- thumb_func_end sub_802F6FC
-
- thumb_func_start sub_802F718
-sub_802F718:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802F730
- ldr r0, _0802F738
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_802F2E8
-_0802F730:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802F738: .4byte gUnknown_203B310
- thumb_func_end sub_802F718
-
- thumb_func_start sub_802F73C
-sub_802F73C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r7, r1, 0
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- bl sub_802FCF0
- lsls r0, 24
- cmp r0, 0
- beq _0802F75A
- movs r0, 0
- b _0802F836
-_0802F75A:
- ldr r4, _0802F7AC
- ldr r0, [r4]
- cmp r0, 0
- bne _0802F76E
- movs r0, 0xAE
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
-_0802F76E:
- ldr r0, [r4]
- adds r0, 0xB8
- strb r6, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xF0
- str r5, [r1]
- adds r2, r0, 0
- adds r2, 0xF4
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0xF8
- adds r1, r0, r1
- str r1, [r2]
- adds r0, 0xF8
- bl sub_8006518
- cmp r6, 0
- beq _0802F7B4
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xF0
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0xF8
- ldr r0, _0802F7B0
- b _0802F7C8
- .align 2, 0
-_0802F7AC: .4byte gUnknown_203B314
-_0802F7B0: .4byte gUnknown_80E072C
-_0802F7B4:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xF0
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0xF8
- ldr r0, _0802F840
-_0802F7C8:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r4, _0802F844
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xF4
- ldr r1, [r0]
- movs r3, 0xAC
- lsls r3, 1
- adds r0, r2, r3
- str r0, [r1, 0x14]
- cmp r7, 0
- beq _0802F7FC
- adds r0, r2, 0
- adds r0, 0xF0
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- subs r3, 0x58
- adds r1, r2, r3
- adds r1, r0
- ldr r0, [r7]
- str r0, [r1]
-_0802F7FC:
- ldr r0, [r4]
- adds r0, 0xF4
- ldr r0, [r0]
- mov r1, r8
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xF8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r4]
- adds r4, 0xBC
- bl sub_802FBF4
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r5, 0
- bl sub_8013818
- bl sub_802F9C0
- bl sub_802FA50
- movs r0, 0x1
-_0802F836:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802F840: .4byte gUnknown_80E0714
-_0802F844: .4byte gUnknown_203B314
- thumb_func_end sub_802F73C
-
- thumb_func_start sub_802F848
-sub_802F848:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r4, r0, 16
- movs r3, 0
- ldr r1, _0802F858
- ldr r0, [r1]
- b _0802F884
- .align 2, 0
-_0802F858: .4byte gUnknown_203B314
-_0802F85C:
- ldr r2, [r1]
- lsls r0, r3, 1
- adds r0, r2, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, r4
- bne _0802F880
- adds r0, r2, 0
- adds r0, 0xBC
- adds r1, r3, 0
- bl sub_8013878
- bl sub_802F9C0
- bl sub_802FA50
- movs r0, 0x1
- b _0802F89A
-_0802F880:
- adds r3, 0x1
- adds r0, r2, 0
-_0802F884:
- adds r0, 0xDE
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r3, r0
- blt _0802F85C
- ldr r0, [r1]
- adds r0, 0xBC
- movs r1, 0
- bl sub_8013878
- movs r0, 0
-_0802F89A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_802F848
-
- thumb_func_start sub_802F8A0
-sub_802F8A0:
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _0802F8BC
- ldr r0, _0802F8B8
- ldr r0, [r0]
- adds r0, 0xBC
- bl sub_8013660
- movs r0, 0
- b _0802F904
- .align 2, 0
-_0802F8B8: .4byte gUnknown_203B314
-_0802F8BC:
- ldr r4, _0802F8D8
- ldr r0, [r4]
- adds r0, 0xBC
- bl GetKeyPress
- cmp r0, 0x1
- beq _0802F8DC
- cmp r0, 0x2
- bne _0802F8E6
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0802F904
- .align 2, 0
-_0802F8D8: .4byte gUnknown_203B314
-_0802F8DC:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0802F904
-_0802F8E6:
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0802F8FA
- movs r0, 0
- b _0802F904
-_0802F8FA:
- bl sub_802F9C0
- bl sub_802FA50
- movs r0, 0x1
-_0802F904:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_802F8A0
-
- thumb_func_start sub_802F90C
-sub_802F90C:
- ldr r0, _0802F934
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xDA
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xD4
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0802F934: .4byte gUnknown_203B314
- thumb_func_end sub_802F90C
-
- thumb_func_start sub_802F938
-sub_802F938:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_802FBF4
- adds r1, r0, 0
- ldr r5, _0802F970
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0xDE
- strh r1, [r2]
- adds r0, 0xBC
- bl sub_8013984
- bl sub_802F9C0
- bl sub_802FA50
- cmp r4, 0
- beq _0802F96A
- ldr r0, [r5]
- adds r0, 0xBC
- bl AddMenuCursorSprite
-_0802F96A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F970: .4byte gUnknown_203B314
- thumb_func_end sub_802F938
-
- thumb_func_start sub_802F974
-sub_802F974:
- push {r4,r5,lr}
- ldr r4, _0802F9B8
- ldr r2, [r4]
- cmp r2, 0
- beq _0802F9B2
- adds r0, r2, 0
- adds r0, 0xF0
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0xF8
- ldr r0, _0802F9BC
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xF8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802F9B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F9B8: .4byte gUnknown_203B314
-_0802F9BC: .4byte gUnknown_80E06FC
- thumb_func_end sub_802F974
-
thumb_func_start sub_802F9C0
sub_802F9C0:
push {r4,r5,lr}
diff --git a/asm/wonder_mail_4.s b/asm/wonder_mail_4.s
index c946c5f..ea27a3f 100644
--- a/asm/wonder_mail_4.s
+++ b/asm/wonder_mail_4.s
@@ -5,263 +5,6 @@
.text
- thumb_func_start sub_80306A8
-sub_80306A8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- mov r8, r3
- bl sub_8030C20
- lsls r0, 24
- cmp r0, 0
- beq _080306C4
- movs r0, 0
- b _08030756
-_080306C4:
- ldr r6, _08030760
- movs r0, 0xC4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- str r4, [r0, 0x20]
- str r5, [r0, 0x58]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0x60
- adds r1, r0, r1
- str r1, [r0, 0x5C]
- adds r0, 0x60
- bl sub_8006518
- ldr r1, [r6]
- ldr r2, [r1, 0x58]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x60
- ldr r0, _08030764
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r6]
- ldr r1, [r2, 0x5C]
- adds r0, r2, 0
- adds r0, 0xC0
- str r0, [r1, 0x14]
- cmp r7, 0
- beq _0803071E
- ldr r1, [r2, 0x58]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x68
- adds r1, r0
- ldr r0, [r7]
- str r0, [r1]
-_0803071E:
- ldr r0, [r6]
- ldr r0, [r0, 0x5C]
- mov r1, r8
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r6]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r6]
- adds r4, 0x24
- bl sub_8030A74
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r5, 0
- bl sub_8013818
- bl sub_80308A0
- bl sub_803092C
- movs r0, 0x1
-_08030756:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08030760: .4byte gUnknown_203B320
-_08030764: .4byte gUnknown_80E0854
- thumb_func_end sub_80306A8
-
- thumb_func_start sub_8030768
-sub_8030768:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _08030784
- ldr r0, _08030780
- ldr r0, [r0]
- adds r0, 0x24
- bl sub_8013660
- movs r0, 0
- b _080307E6
- .align 2, 0
-_08030780: .4byte gUnknown_203B320
-_08030784:
- ldr r0, _0803079C
- ldr r0, [r0]
- adds r0, 0x24
- bl GetKeyPress
- cmp r0, 0x2
- beq _080307AE
- cmp r0, 0x2
- bgt _080307A0
- cmp r0, 0x1
- beq _080307B8
- b _080307C2
- .align 2, 0
-_0803079C: .4byte gUnknown_203B320
-_080307A0:
- cmp r0, 0x4
- bne _080307C2
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _080307E6
-_080307AE:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _080307E6
-_080307B8:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _080307E6
-_080307C2:
- ldr r0, _080307D8
- ldr r0, [r0]
- adds r0, 0x24
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _080307DC
- movs r0, 0
- b _080307E6
- .align 2, 0
-_080307D8: .4byte gUnknown_203B320
-_080307DC:
- bl sub_80308A0
- bl sub_803092C
- movs r0, 0x1
-_080307E6:
- pop {r1}
- bx r1
- thumb_func_end sub_8030768
-
- thumb_func_start sub_80307EC
-sub_80307EC:
- ldr r0, _0803080C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- movs r3, 0x3C
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r2, r0
- ldrb r0, [r2]
- bx lr
- .align 2, 0
-_0803080C: .4byte gUnknown_203B320
- thumb_func_end sub_80307EC
-
- thumb_func_start sub_8030810
-sub_8030810:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8030A74
- adds r1, r0, 0
- ldr r5, _08030848
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x46
- strh r1, [r2]
- adds r0, 0x24
- bl sub_8013984
- bl sub_80308A0
- bl sub_803092C
- cmp r4, 0
- beq _08030842
- ldr r0, [r5]
- adds r0, 0x24
- bl AddMenuCursorSprite
-_08030842:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030848: .4byte gUnknown_203B320
- thumb_func_end sub_8030810
-
- thumb_func_start sub_803084C
-sub_803084C:
- push {r4,r5,lr}
- ldr r4, _0803088C
- ldr r2, [r4]
- cmp r2, 0
- beq _08030886
- ldr r0, [r2, 0x58]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x60
- ldr r0, _08030890
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08030886:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803088C: .4byte gUnknown_203B320
-_08030890: .4byte gUnknown_80E083C
- thumb_func_end sub_803084C
-
- thumb_func_start sub_8030894
-sub_8030894:
- ldr r0, _0803089C
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0803089C: .4byte gUnknown_203B320
- thumb_func_end sub_8030894
-
thumb_func_start sub_80308A0
sub_80308A0:
push {r4,lr}
diff --git a/data/data.s b/data/data.s
index 23f9d6c..0306e42 100644
--- a/data/data.s
+++ b/data/data.s
@@ -525,8 +525,8 @@ gUnknown_80B7F14: @ 80B7F14
.byte 0x2C, 0x03, 0x00, 0x00
.4byte LocateSetText
- .global gUnknown_80B7F20
-gUnknown_80B7F20: @ 80B7F20
+ .global gLocateSetErrorMessage
+gLocateSetErrorMessage: @ 80B7F20
.string "Memroy LocateSet [%p] buffer %8x size can't locate\n"
.string " atb %02x grp %3d \0"
.align 2,0
@@ -542,8 +542,8 @@ gUnknown_80B7F88: @ 80B7F88
.byte 0x55, 0x04, 0x00, 0x00
.4byte MemoryLocate_LocalCreateText
- .global gUnknown_80B7F94
-gUnknown_80B7F94: @ 80B7F94
+ .global gLocalCreateErrorMessage
+gLocalCreateErrorMessage: @ 80B7F94
.string "Memroy LocalCreate buffer %08x size can't locate\0" @ Spelling error is intentional
.align 2,0
.string "pksdir0\0"
diff --git a/data/data_80E2068.s b/data/data_80E2068.s
index 70b5242..5604c39 100644
--- a/data/data_80E2068.s
+++ b/data/data_80E2068.s
@@ -1234,1106 +1234,3 @@ gUnknown_80E5990: @ 80E5990
.string "pksdir0\0"
.align 2,0
- .global gUnknown_80E59A8
-gUnknown_80E59A8: @ 80E59A8
- .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
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E59C8
-gUnknown_80E59C8: @ 80E59C8
- .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_80E59E0
-gUnknown_80E59E0: @ 80E59E0
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x0A, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E59F8
-gUnknown_80E59F8: @ 80E59F8
- .incbin "baserom.gba", 0xE59F8, 0x68
-
- .global gUnknown_80E5A60
-gUnknown_80E5A60: @ 80E5A60
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x0A, 0x00, 0x08, 0x00
- .byte 0x08, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E5A78
-gUnknown_80E5A78: @ 80E5A78
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x0B, 0x00, 0x09, 0x00
- .byte 0x09, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E5A90
-gUnknown_80E5A90: @ 80E5A90
- .4byte Continue_80E5AF0
- .byte 0x07, 0x00, 0x00, 0x00
- .4byte DeleteSaveData_80E5ADC
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte 0x80E5A10
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte FriendRescue_80E5ACC
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte TradeItems_80E5AC0
- .byte 0x0c, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0xdd, 0xff, 0x00, 0x00
-
- TradeItems_80E5AC0:
- .string "Trade Items\0"
- .align 2,0
- FriendRescue_80E5ACC:
- .string "Friend Rescue\0"
- .align 2,0
- DeleteSaveData_80E5ADC:
- .string "Delete Save Data\0"
- .align 2,0
- Continue_80E5AF0:
- .string "Continue\0"
- .align 2,0
-
- .global gUnknown_80E5AFC
-gUnknown_80E5AFC: @ 80E5AFC
- .4byte Continue_80E5AF0
- .byte 0x07, 0x00, 0x00, 0x00
- .4byte DeleteSaveData_80E5ADC
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte 0x80E5A10
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte FriendRescue_80E5ACC
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte TradeItems_80E5AC0
- .byte 0x0c, 0x00, 0x00, 0x00
- .4byte 0x80E5A54
- .byte 0x0d, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0xdd, 0xff, 0x00, 0x00
-
- .global gUnknown_80E5B34
-gUnknown_80E5B34: @ 80E5B34
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x0A, 0x00, 0x08, 0x00
- .byte 0x08, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E5B4C
-gUnknown_80E5B4C: @ 80E5B4C
- .4byte AwaitingRescue_80E5B7C
- .byte 0x06, 0x00, 0x00, 0x00
- .4byte DeleteSaveData_80E5ADC
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte 0x80E5A10
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte FriendRescue_80E5ACC
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte TradeItems_80E5AC0
- .byte 0x0c, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0xdd, 0xff, 0x00, 0x00
-
- AwaitingRescue_80E5B7C:
- .string "Awaiting Rescue\0"
- .align 2,0
-
- .global gUnknown_80E5B8C
-gUnknown_80E5B8C: @ 80E5B8C
- .4byte AwaitingRescue_80E5B7C
- .byte 0x06, 0x00, 0x00, 0x00
- .4byte DeleteSaveData_80E5ADC
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte 0x80E5A10
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte FriendRescue_80E5ACC
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte TradeItems_80E5AC0
- .byte 0x0c, 0x00, 0x00, 0x00
- .4byte 0x80E5A54
- .byte 0x0d, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0xdd, 0xff, 0x00, 0x00
-
- .global gUnknown_80E5BC4
-gUnknown_80E5BC4: @ 80E5BC4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x0A, 0x00, 0x08, 0x00
- .byte 0x08, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E5BDC
-gUnknown_80E5BDC: @ 80E5BDC
- .4byte ReviveTeam_80E5C0C
- .byte 0x07, 0x00, 0x00, 0x00
- .4byte DeleteSaveData_80E5ADC
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte 0x80E5A10
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte FriendRescue_80E5ACC
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte TradeItems_80E5AC0
- .byte 0x0c, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0xdd, 0xff, 0x00, 0x00
-
- ReviveTeam_80E5C0C:
- .string "Revive Team\0"
- .align 2,0
-
- .global gUnknown_80E5C18
-gUnknown_80E5C18: @ 80E5C18
- .incbin "baserom.gba", 0xE5C18, 0x9C
-
- .global gUnknown_80E5CB4
-gUnknown_80E5CB4: @ 80E5CB4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x0F, 0x00
- .byte 0x1A, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E5CCC
-gUnknown_80E5CCC: @ 80E5CCC
- .incbin "baserom.gba", 0xE5CCC, 0x40
-
- .global gUnknown_80E5D0C
-gUnknown_80E5D0C: @ 80E5D0C
- .incbin "baserom.gba", 0xE5D0C, 0x3C
-
- .global gUnknown_80E5D48
-gUnknown_80E5D48: @ 80E5D48
- .incbin "baserom.gba", 0xE5D48, 0x58
-
- .global gUnknown_80E5DA0
-gUnknown_80E5DA0: @ 80E5DA0
- .incbin "baserom.gba", 0xE5DA0, 0x50
-
- .global gUnknown_80E5DF0
-gUnknown_80E5DF0: @ 80E5DF0
- .incbin "baserom.gba", 0xE5DF0, 0x6C
-
- .global gUnknown_80E5E5C
-gUnknown_80E5E5C: @ 80E5E5C
- .incbin "baserom.gba", 0xE5E5C, 0x60
-
- .global gUnknown_80E5EBC
-gUnknown_80E5EBC: @ 80E5EBC
- .incbin "baserom.gba", 0xE5EBC, 0x60
-
- .global gUnknown_80E5F1C
-gUnknown_80E5F1C: @ 80E5F1C
- .incbin "baserom.gba", 0xE5F1C, 0x64
-
- .global gUnknown_80E5F80
-gUnknown_80E5F80: @ 80E5F80
- .incbin "baserom.gba", 0xE5F80, 0x4C
-
- .global gUnknown_80E5FCC
-gUnknown_80E5FCC: @ 80E5FCC
- .incbin "baserom.gba", 0xE5FCC, 0x64
-
- .global gUnknown_80E6030
-gUnknown_80E6030: @ 80E6030
- .incbin "baserom.gba", 0xE6030, 0x70
-
-@ Start of Trade Items Data
-
- .global gUnknown_80E60A0
-gUnknown_80E60A0: @ 80E60A0
- .4byte SendItem_80E60C8
- .4byte 1
- .4byte ReceiveItem_80E60B8
- .4byte 2
- .4byte 0
- .4byte 0
-
- .global ReceiveItem_80E60B8
- ReceiveItem_80E60B8:
- .asciz "Receive item"
- .align 2,0
-
- .global SendItem_80E60C8
- SendItem_80E60C8:
- .asciz "Send item"
- .align 2,0
-
- .global gUnknown_80E60D4
-gUnknown_80E60D4: @ 80E60D4
- .4byte SendItem_80E60C8
- .4byte -1
- .4byte ReceiveItem_80E60B8
- .4byte 2
- .4byte 0
- .4byte 0
-
- .global gUnknown_80E60EC
-gUnknown_80E60EC: @ 80E60EC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x15, 0x00, 0x04, 0x00
- .byte 0x06, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6104
-gUnknown_80E6104: @ 80E6104
- .4byte Confirm_80E6134
- .4byte 3
- .4byte Info_80E612C
- .4byte 4
- .4byte Cancel_80E6124
- .4byte 7
- .4byte 0
- .4byte 0
-
- .global Cancel_80E6124
- Cancel_80E6124:
- .asciz "Cancel"
- .align 2,0
-
-
- .global Info_80E612C
- Info_80E612C:
- .asciz "Info"
- .align 2,0
-
- .global Confirm_80E6134
- Confirm_80E6134:
- .asciz "Confirm"
- .align 2,0
-
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x16, 0x00, 0x09, 0x00
- .byte 0x05, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6154
-gUnknown_80E6154: @ 80E6154
- .4byte Yes_80E6170
- .4byte 5
- .4byte No_80E616C
- .4byte 6
- .4byte 0
- .4byte 0
-
- .global No_80E616C
- No_80E616C:
- .asciz "No"
- .align 2,0
-
- .global Yes_80E6170
- Yes_80E6170:
- .asciz "Yes"
- .align 2,0
-
- .global gUnknown_80E6174
-gUnknown_80E6174: @ 80E6174
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x15, 0x00, 0x0D, 0x00
- .byte 0x06, 0x00, 0x04, 0x00
- .byte 0x04, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E618C
-gUnknown_80E618C: @ 80E618C
- .4byte Yes_80E6170
- .4byte 5
- .4byte Cancel_80E6124
- .4byte 0
- .4byte 0
- .4byte 0
-
- .global gUnknown_80E61A4
-gUnknown_80E61A4: @ 80E61A4
- .asciz "What would you like to do? "
- .align 2,0
-
- .global gUnknown_80E61C0
-gUnknown_80E61C0: @ 80E61C0
- .asciz "Please choose the item to be sent."
- .align 2,0
-
- .global gUnknown_80E61E4
-gUnknown_80E61E4: @ 80E61E4
- .string "#CG$d0#R #CI$i0(s)#R\n"
- .string "will be sent.\n"
- .string "Is that OK?\0"
- .align 2,0
-
- .global gUnknown_80E6214
-gUnknown_80E6214: @ 80E6214
- .string "Your friend will send you an item.\n"
- .string "When you are both ready~2c you\n"
- .string "may communicate.\0"
- .align 2,0
-
- .global gUnknown_80E6268
-gUnknown_80E6268: @ 80E6268
- .string "Preparing to send an item to your\n"
- .string "friend. When you are both ready~2c\n"
- .string "you may communicate.\0"
- .align 2,0
-
- .global gUnknown_80E62C4
-gUnknown_80E62C4: @ 80E62C4
- .string "#+In communication...\n"
- .string "#+Please wait with the power on.\n"
- .string "#+To cancel~2c press {B_BUTTON}.\0"
- .align 2,0
-
- .global gUnknown_80E6314
-gUnknown_80E6314: @ 80E6314
- .string "You received\n"
- .string "#CG$d0#R #CI$i0(s)#R.\n"
- .string "Your adventure will be saved.\0"
- .align 2,0
-
- .global gUnknown_80E6358
-gUnknown_80E6358: @ 80E6358
- .string "You sent #CG$d0#R #CI$i0(s)#R.\0"
- .align 2,0
-
-@ Trade Items Link Errors
- .global gTradeItemsCommunicationError
-gTradeItemsCommunicationError: @ 80E6378
- .asciz "There was a communication error."
- .align 2,0
-
- .global gUnknown_80E639C
-gUnknown_80E639C: @ 80E639C
- .string "An incorrect number of GBA systems are\n"
- .string "connected.\n"
- .string "Please redo this process from the start.\0"
- .align 2,0
-
- .global gUnknown_80E63F8
-gUnknown_80E63F8: @ 80E63F8
- .string "There is no response from your friend.\n"
- .string "Please redo this process from the start.\0"
- .align 2,0
-
- .global gUnknown_80E6448
-gUnknown_80E6448: @ 80E6448
- .string "The sender and receiver appear to be\n"
- .string "in different modes.\n"
- .string "Please redo the process from the start.\0"
- .align 2,0
-
- .global gUnknown_80E64AC
-gUnknown_80E64AC: @ 80E64AC
- .string "There is no response from your friend.\n"
- .string "Please make sure the sender and receiver\n"
- .string "are ready~2c then redo this from the start.\0"
- .align 2,0
-
- .global gTradeItemsHowManyText
-gTradeItemsHowManyText: @ 80E6528
- .asciz "How many?"
- .align 2,0
- .asciz "pksdir0"
-
-@ End of Trade Menu Data
-
- .global gUnknown_80E653C
-gUnknown_80E653C: @ 80E653C
- .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_80E6554
-gUnknown_80E6554: @ 80E6554
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
-
- .global gUnknown_80E656C
-gUnknown_80E656C: @ 80E656C
- .incbin "baserom.gba", 0xE656C, 0x6C
-
- .global gUnknown_80E65D8
-gUnknown_80E65D8: @ 80E65D8
- .incbin "baserom.gba", 0xE65D8, 0x44
-
- .global gUnknown_80E661C
-gUnknown_80E661C: @ 80E661C
- .incbin "baserom.gba", 0xE661C, 0x40
-
- .global gUnknown_80E665C
-gUnknown_80E665C: @ 80E665C
- .incbin "baserom.gba", 0xE665C, 0x20
-
- .global gUnknown_80E667C
-gUnknown_80E667C: @ 80E667C
- .incbin "baserom.gba", 0xE667C, 0x40
-
- .global gUnknown_80E66BC
-gUnknown_80E66BC: @ 80E66BC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E66D4
-gUnknown_80E66D4: @ 80E66D4
- .incbin "baserom.gba", 0xE66D4, 0x74
-
- .global gUnknown_80E6748
-gUnknown_80E6748: @ 80E6748
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6760
-gUnknown_80E6760: @ 80E6760
- .incbin "baserom.gba", 0xE6760, 0x74
-
- .global gUnknown_80E67D4
-gUnknown_80E67D4: @ 80E67D4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E67EC
-gUnknown_80E67EC: @ 80E67EC
- .incbin "baserom.gba", 0xE67EC, 0xB0
-
- .global gUnknown_80E689C
-gUnknown_80E689C: @ 80E689C
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E68B4
-gUnknown_80E68B4: @ 80E68B4
- .incbin "baserom.gba", 0xE68B4, 0x84
-
- .global gUnknown_80E6938
-gUnknown_80E6938: @ 80E6938
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6950
-gUnknown_80E6950: @ 80E6950
- .incbin "baserom.gba", 0xE6950, 0x60
-
- .global gUnknown_80E69B0
-gUnknown_80E69B0: @ 80E69B0
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E69C8
-gUnknown_80E69C8: @ 80E69C8
- .incbin "baserom.gba", 0xE69C8, 0x48
-
- .global gUnknown_80E6A10
-gUnknown_80E6A10: @ 80E6A10
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6A28
-gUnknown_80E6A28: @ 80E6A28
- .incbin "baserom.gba", 0xE6A28, 0x4C
-
- .global gUnknown_80E6A74
-gUnknown_80E6A74: @ 80E6A74
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6A8C
-gUnknown_80E6A8C: @ 80E6A8C
- .incbin "baserom.gba", 0xE6A8C, 0xEC
-
- .global gUnknown_80E6B78
-gUnknown_80E6B78: @ 80E6B78
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6B90
-gUnknown_80E6B90: @ 80E6B90
- .incbin "baserom.gba", 0xE6B90, 0x64
-
- .global gUnknown_80E6BF4
-gUnknown_80E6BF4: @ 80E6BF4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6C0C
-gUnknown_80E6C0C: @ 80E6C0C
- .incbin "baserom.gba", 0xE6C0C, 0x44
-
- .global gUnknown_80E6C50
-gUnknown_80E6C50: @ 80E6C50
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6C68
-gUnknown_80E6C68: @ 80E6C68
- .incbin "baserom.gba", 0xE6C68, 0x68
-
- .global gUnknown_80E6CD0
-gUnknown_80E6CD0: @ 80E6CD0
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6CE8
-gUnknown_80E6CE8: @ 80E6CE8
- .incbin "baserom.gba", 0xE6CE8, 0x6C
-
- .global gUnknown_80E6D54
-gUnknown_80E6D54: @ 80E6D54
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6D6C
-gUnknown_80E6D6C: @ 80E6D6C
- .incbin "baserom.gba", 0xE6D6C, 0x70
-
- .global gUnknown_80E6DDC
-gUnknown_80E6DDC: @ 80E6DDC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x08, 0x00
- .byte 0x18, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6DF4
-gUnknown_80E6DF4: @ 80E6DF4
- .incbin "baserom.gba", 0xE6DF4, 0x5C
-
- .global gUnknown_80E6E50
-gUnknown_80E6E50:: @ 80E6E50
- .string "CHUNSOFT\0"
- .align 2,0
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
-
-
- .global gUnknown_80E6E7C
-gUnknown_80E6E7C: @ 80E6E7C
- .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_80E6E94
-gUnknown_80E6E94: @ 80E6E94
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x09, 0x00
- .byte 0x13, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6EAC
-gUnknown_80E6EAC: @ 80E6EAC
- .4byte Caution_80E6F04
- .4byte 3
- .4byte StorageEmpty_80E6EE4
- .4byte 3
- .4byte CheckAgain_80E6ECC
- .4byte 3
- .4byte 0
- .4byte 1
-
- .global CheckAgain_80E6ECC
- CheckAgain_80E6ECC:
- .asciz "#+Please check again."
- .align 2,0
-
- .global StorageEmpty_80E6EE4
- StorageEmpty_80E6EE4:
- .asciz "#+The storage space is empty!"
- .align 2,0
-
- .global Caution_80E6F04
- Caution_80E6F04:
- .asciz "#+#C2Caution!#R "
- .align 2,0
-
- .asciz "pksdir0"
-
- .global gUnknown_80E6F20
-gUnknown_80E6F20: @ 80E6F20
- .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_80E6F38
-gUnknown_80E6F38: @ 80E6F38
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x08, 0x00
- .byte 0x15, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E6F50
-gUnknown_80E6F50: @ 80E6F50
- .incbin "baserom.gba", 0xE6F50, 0x6C
-
- .global gUnknown_80E6FBC
-gUnknown_80E6FBC: @ 80E6FBC
- .incbin "baserom.gba", 0xE6FBC, 0x60
-
- .global gUnknown_80E701C
-gUnknown_80E701C: @ 80E701C
- .incbin "baserom.gba", 0xE701C, 0x74
-
- .global gUnknown_80E7090
-gUnknown_80E7090: @ 80E7090
- .4byte 0x80e6fac
- .4byte 4
- .4byte DeletingAdventure_80E70B0
- .4byte 4
- .4byte 0x80e6f70
- .4byte 4
- .4byte 0
- .4byte 2
-
- .global DeletingAdventure_80E70B0
- DeletingAdventure_80E70B0:
- .string "#+Deleting your adventure!"
- .align 2,0
-
- .global gUnknown_80E70CC
-gUnknown_80E70CC: @ 80E70CC
- .4byte 0x80e7008
- .4byte 4
- .4byte AdventureDeleted_80E70F0
- .4byte 4
- .4byte Data_80E70EC
- .4byte 4
- .4byte 0
- .4byte 2
-
- .global Data_80E70EC
- Data_80E70EC:
- .string " "
- .align 2,0
-
- .global AdventureDeleted_80E70F0
- AdventureDeleted_80E70F0:
- .string "#+Your adventure has been deleted."
- .align 2,0
-
- .global gUnknown_80E7114
-gUnknown_80E7114: @ 80E7114
- .incbin "baserom.gba", 0xE7114, 0x64
-
- .global gUnknown_80E7178
-gUnknown_80E7178: @ 80E7178
- .incbin "baserom.gba", 0xE7178, 0x6C
-
- .global gUnknown_80E71E4
-gUnknown_80E71E4: @ 80E71E4
- .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_80E71FC
-gUnknown_80E71FC: @ 80E71FC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7214
-gUnknown_80E7214: @ 80E7214
- .4byte Error_80E7268
- .4byte 0xC
- .4byte IncorrectPassword_80E7250
- .4byte 0xC
- .4byte CheckAgain_80E7234
- .4byte 0xC
- .4byte 0
- .4byte 0xA
-
- .global CheckAgain_80E7234
- CheckAgain_80E7234:
- .asciz "#+Please check it again."
- .align 2,0
-
- .global IncorrectPassword_80E7250
- IncorrectPassword_80E7250:
- .asciz "#+Incorrect password!"
- .align 2,0
-
- .global Error_80E7268
- Error_80E7268:
- .asciz "#+#C2Error!#R "
- .align 2,0
-
- .global gUnknown_80E7278
-gUnknown_80E7278: @ 80E7278
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7290
-gUnknown_80E7290: @ 80E7290
- .4byte Success_80E72D8
- .4byte 0xC
- .4byte PasswordAccept_80E72B4
- .4byte 0xC
- .4byte DATA_80E72B0
- .4byte 0xC
- .4byte 0
- .4byte 0xA
-
- .global DATA_80E72B0
- DATA_80E72B0:
- .byte 0x20, 0x20, 0x00, 0x00 @ 2 spaces??
-
- .global PasswordAccept_80E72B4
- PasswordAccept_80E72B4:
- .asciz "#+The password has been accepted."
- .align 2,0
-
- .global Success_80E72D8
- Success_80E72D8:
- .asciz "#+#CGSuccess!#R "
- .align 2,0
-
- .global gUnknown_80E72EC
-gUnknown_80E72EC: @ 80E72EC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7304
-gUnknown_80E7304: @ 80E7304
- .4byte Error_80E7268
- .4byte 0xC
- .4byte NotSOSMail_80E7324
- .4byte 0xC
- .4byte CheckAgain_80E7234
- .4byte 0xC
- .4byte 0
- .4byte 0xA
-
- .global NotSOSMail_80E7324
- NotSOSMail_80E7324:
- .asciz "#+This is not an #CGSOS Mail#R."
- .align 2,0
-
- .global gUnknown_80E7344
-gUnknown_80E7344: @ 80E7344
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E735C
-gUnknown_80E735C: @ 80E735C
- .4byte Error_80E7268
- .4byte 0xC
- .4byte ReceiveSOSMail_80E737C
- .4byte 0xC
- .4byte CheckAgain_80E7234
- .4byte 0xC
- .4byte 0
- .4byte 0xA
-
- .global ReceiveSOSMail_80E737C
- ReceiveSOSMail_80E737C:
- .asciz "#+This #CGSOS Mail#R has been received already."
- .align 2,0
-
- .global gUnknown_80E73AC
-gUnknown_80E73AC: @ 80E73AC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E73C4
-gUnknown_80E73C4: @ 80E73C4
- .incbin "baserom.gba", 0xE73C4, 0x44
-
- .global gUnknown_80E7408
-gUnknown_80E7408: @ 80E7408
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7420
-gUnknown_80E7420: @ 80E7420
- .incbin "baserom.gba", 0xE7420, 0x48
-
- .global gUnknown_80E7468
-gUnknown_80E7468: @ 80E7468
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7480
-gUnknown_80E7480: @ 80E7480
- .incbin "baserom.gba", 0xE7480, 0x48
-
- .global gUnknown_80E74C8
-gUnknown_80E74C8: @ 80E74C8
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E74E0
-gUnknown_80E74E0: @ 80E74E0
- .incbin "baserom.gba", 0xE74E0, 0x4C
-
- .global gUnknown_80E752C
-gUnknown_80E752C: @ 80E752C
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7544
-gUnknown_80E7544: @ 80E7544
- .incbin "baserom.gba", 0xE7544, 0x44
-
- .global gUnknown_80E7588
-gUnknown_80E7588: @ 80E7588
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x09, 0x00
- .byte 0x17, 0x00, 0x05, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E75A0
-gUnknown_80E75A0: @ 80E75A0
- .incbin "baserom.gba", 0xE75A0, 0x58
-
- .global gUnknown_80E75F8
-gUnknown_80E75F8: @ 80E75F8
- .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_80E7610
-gUnknown_80E7610: @ 80E7610
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x1A, 0x00, 0x0B, 0x00
- .byte 0x0B, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x20, 0x00, 0x00, 0x00
-
- .global gUnknown_80E762C
-gUnknown_80E762C: @ 80E762C
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x0F, 0x00
- .byte 0x13, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gResumeQuicksaveMenuItems
-gResumeQuicksaveMenuItems: @ 80E7644
- .4byte ResumeQuicksave_80E7668
- .byte 0x05, 0x00, 0x00, 0x00
- .4byte IsThatOK_80E765C
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
-
- IsThatOK_80E765C:
- .string "Is that OK?\0"
- .align 2,0
-
- ResumeQuicksave_80E7668:
- .string "Resuming from quicksave.\0"
- .align 2,0
-
- .global gResumeAdventureMenuItems
-gResumeAdventureMenuItems: @ 80E7684
- .4byte ResumeAdventure_80E769C
- .byte 0x05, 0x00, 0x00, 0x00
- .4byte IsThatOK_80E765C
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
-
- ResumeAdventure_80E769C:
- .string "Resuming saved adventure.\0"
- .align 2,0
-
- .global gQuitWaitingRescueMenuItems
-gQuitWaitingRescueMenuItems: @ 80E76B8
- .4byte QuitAwaitingRescue_80E76D0
- .byte 0x05, 0x00, 0x00, 0x00
- .4byte IsThatOK_80E765C
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
-
- QuitAwaitingRescue_80E76D0:
- .string "Quit awaiting rescue?\0"
- .align 2,0
-
- .global gDeleteSavePromptMenuItems
-gDeleteSavePromptMenuItems: @ 80E76E8
- .4byte Deleted_80E7718
- .byte 0x05, 0x00, 0x00, 0x00
- .4byte Deleted_80E7700
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
-
- Deleted_80E7700:
- .string "deleted. Is that OK?\0"
- .align 2,0
-
- Deleted_80E7718:
- .string "Your saved data will be\0"
- .align 2,0
-
- .global gDeleteSaveConfirmMenuItems
-gDeleteSaveConfirmMenuItems: @ 80E7730
- .4byte Deleted_80E7768
- .byte 0x05, 0x00, 0x00, 0x00
- .4byte Deleted_80E7748
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
-
- Deleted_80E7748:
- .string "delete all of your saved data?\0"
- .align 2,0
-
- Deleted_80E7768:
- .string "Are you sure you want to\0"
- .align 2,0
-
-
- .global gUnknown_80E7784
-gUnknown_80E7784: @ 80E7784
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x17, 0x00, 0x0F, 0x00
- .byte 0x05, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
diff --git a/data/data_80E59A8.s b/data/data_80E59A8.s
new file mode 100644
index 0000000..fc972e6
--- /dev/null
+++ b/data/data_80E59A8.s
@@ -0,0 +1,943 @@
+ .section .rodata
+
+ .global gUnknown_80E5CB4
+gUnknown_80E5CB4: @ 80E5CB4
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x0F, 0x00
+ .byte 0x1A, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E5CCC
+gUnknown_80E5CCC: @ 80E5CCC
+ .byte 0xe8, 0x5c, 0x0e, 0x08
+ .byte 0xde, 0xff, 0x00, 0x00
+ .byte 0xe4, 0x5c, 0x0e, 0x08
+ .byte 0xde, 0xff, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0xdd, 0xff, 0x00, 0x00
+
+ .string " \0"
+ .align 2,0
+ .string "Start an entirely new adventure.\0"
+ .align 2,0
+
+ .global gUnknown_80E5D0C
+gUnknown_80E5D0C: @ 80E5D0C
+ .incbin "baserom.gba", 0xE5D0C, 0x3C
+
+ .global gUnknown_80E5D48
+gUnknown_80E5D48: @ 80E5D48
+ .incbin "baserom.gba", 0xE5D48, 0x58
+
+ .global gUnknown_80E5DA0
+gUnknown_80E5DA0: @ 80E5DA0
+ .incbin "baserom.gba", 0xE5DA0, 0x50
+
+ .global gUnknown_80E5DF0
+gUnknown_80E5DF0: @ 80E5DF0
+ .incbin "baserom.gba", 0xE5DF0, 0x6C
+
+ .global gUnknown_80E5E5C
+gUnknown_80E5E5C: @ 80E5E5C
+ .incbin "baserom.gba", 0xE5E5C, 0x60
+
+ .global gUnknown_80E5EBC
+gUnknown_80E5EBC: @ 80E5EBC
+ .incbin "baserom.gba", 0xE5EBC, 0x60
+
+ .global gUnknown_80E5F1C
+gUnknown_80E5F1C: @ 80E5F1C
+ .incbin "baserom.gba", 0xE5F1C, 0x64
+
+ .global gUnknown_80E5F80
+gUnknown_80E5F80: @ 80E5F80
+ .incbin "baserom.gba", 0xE5F80, 0x4C
+
+ .global gUnknown_80E5FCC
+gUnknown_80E5FCC: @ 80E5FCC
+ .incbin "baserom.gba", 0xE5FCC, 0x64
+
+ .global gUnknown_80E6030
+gUnknown_80E6030: @ 80E6030
+ .incbin "baserom.gba", 0xE6030, 0x70
+
+@ Start of Trade Items Data
+
+ .global gUnknown_80E60A0
+gUnknown_80E60A0: @ 80E60A0
+ .4byte SendItem_80E60C8
+ .4byte 1
+ .4byte ReceiveItem_80E60B8
+ .4byte 2
+ .4byte 0
+ .4byte 0
+
+ .global ReceiveItem_80E60B8
+ ReceiveItem_80E60B8:
+ .asciz "Receive item"
+ .align 2,0
+
+ .global SendItem_80E60C8
+ SendItem_80E60C8:
+ .asciz "Send item"
+ .align 2,0
+
+ .global gUnknown_80E60D4
+gUnknown_80E60D4: @ 80E60D4
+ .4byte SendItem_80E60C8
+ .4byte -1
+ .4byte ReceiveItem_80E60B8
+ .4byte 2
+ .4byte 0
+ .4byte 0
+
+ .global gUnknown_80E60EC
+gUnknown_80E60EC: @ 80E60EC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6104
+gUnknown_80E6104: @ 80E6104
+ .4byte Confirm_80E6134
+ .4byte 3
+ .4byte Info_80E612C
+ .4byte 4
+ .4byte Cancel_80E6124
+ .4byte 7
+ .4byte 0
+ .4byte 0
+
+ .global Cancel_80E6124
+ Cancel_80E6124:
+ .asciz "Cancel"
+ .align 2,0
+
+
+ .global Info_80E612C
+ Info_80E612C:
+ .asciz "Info"
+ .align 2,0
+
+ .global Confirm_80E6134
+ Confirm_80E6134:
+ .asciz "Confirm"
+ .align 2,0
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x09, 0x00
+ .byte 0x05, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6154
+gUnknown_80E6154: @ 80E6154
+ .4byte Yes_80E6170
+ .4byte 5
+ .4byte No_80E616C
+ .4byte 6
+ .4byte 0
+ .4byte 0
+
+ .global No_80E616C
+ No_80E616C:
+ .asciz "No"
+ .align 2,0
+
+ .global Yes_80E6170
+ Yes_80E6170:
+ .asciz "Yes"
+ .align 2,0
+
+ .global gUnknown_80E6174
+gUnknown_80E6174: @ 80E6174
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x0D, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E618C
+gUnknown_80E618C: @ 80E618C
+ .4byte Yes_80E6170
+ .4byte 5
+ .4byte Cancel_80E6124
+ .4byte 0
+ .4byte 0
+ .4byte 0
+
+ .global gUnknown_80E61A4
+gUnknown_80E61A4: @ 80E61A4
+ .asciz "What would you like to do? "
+ .align 2,0
+
+ .global gUnknown_80E61C0
+gUnknown_80E61C0: @ 80E61C0
+ .asciz "Please choose the item to be sent."
+ .align 2,0
+
+ .global gUnknown_80E61E4
+gUnknown_80E61E4: @ 80E61E4
+ .string "#CG$d0#R #CI$i0(s)#R\n"
+ .string "will be sent.\n"
+ .string "Is that OK?\0"
+ .align 2,0
+
+ .global gUnknown_80E6214
+gUnknown_80E6214: @ 80E6214
+ .string "Your friend will send you an item.\n"
+ .string "When you are both ready~2c you\n"
+ .string "may communicate.\0"
+ .align 2,0
+
+ .global gUnknown_80E6268
+gUnknown_80E6268: @ 80E6268
+ .string "Preparing to send an item to your\n"
+ .string "friend. When you are both ready~2c\n"
+ .string "you may communicate.\0"
+ .align 2,0
+
+ .global gUnknown_80E62C4
+gUnknown_80E62C4: @ 80E62C4
+ .string "#+In communication...\n"
+ .string "#+Please wait with the power on.\n"
+ .string "#+To cancel~2c press {B_BUTTON}.\0"
+ .align 2,0
+
+ .global gUnknown_80E6314
+gUnknown_80E6314: @ 80E6314
+ .string "You received\n"
+ .string "#CG$d0#R #CI$i0(s)#R.\n"
+ .string "Your adventure will be saved.\0"
+ .align 2,0
+
+ .global gUnknown_80E6358
+gUnknown_80E6358: @ 80E6358
+ .string "You sent #CG$d0#R #CI$i0(s)#R.\0"
+ .align 2,0
+
+@ Trade Items Link Errors
+ .global gTradeItemsCommunicationError
+gTradeItemsCommunicationError: @ 80E6378
+ .asciz "There was a communication error."
+ .align 2,0
+
+ .global gUnknown_80E639C
+gUnknown_80E639C: @ 80E639C
+ .string "An incorrect number of GBA systems are\n"
+ .string "connected.\n"
+ .string "Please redo this process from the start.\0"
+ .align 2,0
+
+ .global gUnknown_80E63F8
+gUnknown_80E63F8: @ 80E63F8
+ .string "There is no response from your friend.\n"
+ .string "Please redo this process from the start.\0"
+ .align 2,0
+
+ .global gUnknown_80E6448
+gUnknown_80E6448: @ 80E6448
+ .string "The sender and receiver appear to be\n"
+ .string "in different modes.\n"
+ .string "Please redo the process from the start.\0"
+ .align 2,0
+
+ .global gUnknown_80E64AC
+gUnknown_80E64AC: @ 80E64AC
+ .string "There is no response from your friend.\n"
+ .string "Please make sure the sender and receiver\n"
+ .string "are ready~2c then redo this from the start.\0"
+ .align 2,0
+
+ .global gTradeItemsHowManyText
+gTradeItemsHowManyText: @ 80E6528
+ .asciz "How many?"
+ .align 2,0
+ .asciz "pksdir0"
+
+@ End of Trade Menu Data
+
+ .global gUnknown_80E653C
+gUnknown_80E653C: @ 80E653C
+ .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_80E6554
+gUnknown_80E6554: @ 80E6554
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+
+ .global gUnknown_80E656C
+gUnknown_80E656C: @ 80E656C
+ .incbin "baserom.gba", 0xE656C, 0x6C
+
+ .global gUnknown_80E65D8
+gUnknown_80E65D8: @ 80E65D8
+ .incbin "baserom.gba", 0xE65D8, 0x44
+
+ .global gUnknown_80E661C
+gUnknown_80E661C: @ 80E661C
+ .incbin "baserom.gba", 0xE661C, 0x40
+
+ .global gUnknown_80E665C
+gUnknown_80E665C: @ 80E665C
+ .incbin "baserom.gba", 0xE665C, 0x20
+
+ .global gUnknown_80E667C
+gUnknown_80E667C: @ 80E667C
+ .incbin "baserom.gba", 0xE667C, 0x40
+
+ .global gUnknown_80E66BC
+gUnknown_80E66BC: @ 80E66BC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E66D4
+gUnknown_80E66D4: @ 80E66D4
+ .incbin "baserom.gba", 0xE66D4, 0x74
+
+ .global gUnknown_80E6748
+gUnknown_80E6748: @ 80E6748
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6760
+gUnknown_80E6760: @ 80E6760
+ .incbin "baserom.gba", 0xE6760, 0x74
+
+ .global gUnknown_80E67D4
+gUnknown_80E67D4: @ 80E67D4
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E67EC
+gUnknown_80E67EC: @ 80E67EC
+ .incbin "baserom.gba", 0xE67EC, 0xB0
+
+ .global gUnknown_80E689C
+gUnknown_80E689C: @ 80E689C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E68B4
+gUnknown_80E68B4: @ 80E68B4
+ .incbin "baserom.gba", 0xE68B4, 0x84
+
+ .global gUnknown_80E6938
+gUnknown_80E6938: @ 80E6938
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6950
+gUnknown_80E6950: @ 80E6950
+ .incbin "baserom.gba", 0xE6950, 0x60
+
+ .global gUnknown_80E69B0
+gUnknown_80E69B0: @ 80E69B0
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E69C8
+gUnknown_80E69C8: @ 80E69C8
+ .incbin "baserom.gba", 0xE69C8, 0x48
+
+ .global gUnknown_80E6A10
+gUnknown_80E6A10: @ 80E6A10
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6A28
+gUnknown_80E6A28: @ 80E6A28
+ .incbin "baserom.gba", 0xE6A28, 0x4C
+
+ .global gUnknown_80E6A74
+gUnknown_80E6A74: @ 80E6A74
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6A8C
+gUnknown_80E6A8C: @ 80E6A8C
+ .incbin "baserom.gba", 0xE6A8C, 0xEC
+
+ .global gUnknown_80E6B78
+gUnknown_80E6B78: @ 80E6B78
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6B90
+gUnknown_80E6B90: @ 80E6B90
+ .incbin "baserom.gba", 0xE6B90, 0x64
+
+ .global gUnknown_80E6BF4
+gUnknown_80E6BF4: @ 80E6BF4
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6C0C
+gUnknown_80E6C0C: @ 80E6C0C
+ .incbin "baserom.gba", 0xE6C0C, 0x44
+
+ .global gUnknown_80E6C50
+gUnknown_80E6C50: @ 80E6C50
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6C68
+gUnknown_80E6C68: @ 80E6C68
+ .incbin "baserom.gba", 0xE6C68, 0x68
+
+ .global gUnknown_80E6CD0
+gUnknown_80E6CD0: @ 80E6CD0
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6CE8
+gUnknown_80E6CE8: @ 80E6CE8
+ .incbin "baserom.gba", 0xE6CE8, 0x6C
+
+ .global gUnknown_80E6D54
+gUnknown_80E6D54: @ 80E6D54
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6D6C
+gUnknown_80E6D6C: @ 80E6D6C
+ .incbin "baserom.gba", 0xE6D6C, 0x70
+
+ .global gUnknown_80E6DDC
+gUnknown_80E6DDC: @ 80E6DDC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6DF4
+gUnknown_80E6DF4: @ 80E6DF4
+ .incbin "baserom.gba", 0xE6DF4, 0x5C
+
+ .global gUnknown_80E6E50
+gUnknown_80E6E50:: @ 80E6E50
+ .string "CHUNSOFT\0"
+ .align 2,0
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
+
+ .global gUnknown_80E6E7C
+gUnknown_80E6E7C: @ 80E6E7C
+ .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_80E6E94
+gUnknown_80E6E94: @ 80E6E94
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x09, 0x00
+ .byte 0x13, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6EAC
+gUnknown_80E6EAC: @ 80E6EAC
+ .4byte Caution_80E6F04
+ .4byte 3
+ .4byte StorageEmpty_80E6EE4
+ .4byte 3
+ .4byte CheckAgain_80E6ECC
+ .4byte 3
+ .4byte 0
+ .4byte 1
+
+ .global CheckAgain_80E6ECC
+ CheckAgain_80E6ECC:
+ .asciz "#+Please check again."
+ .align 2,0
+
+ .global StorageEmpty_80E6EE4
+ StorageEmpty_80E6EE4:
+ .asciz "#+The storage space is empty!"
+ .align 2,0
+
+ .global Caution_80E6F04
+ Caution_80E6F04:
+ .asciz "#+#C2Caution!#R "
+ .align 2,0
+
+ .asciz "pksdir0"
+
+ .global gUnknown_80E6F20
+gUnknown_80E6F20: @ 80E6F20
+ .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_80E6F38
+gUnknown_80E6F38: @ 80E6F38
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x08, 0x00
+ .byte 0x15, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E6F50
+gUnknown_80E6F50: @ 80E6F50
+ .incbin "baserom.gba", 0xE6F50, 0x6C
+
+ .global gUnknown_80E6FBC
+gUnknown_80E6FBC: @ 80E6FBC
+ .incbin "baserom.gba", 0xE6FBC, 0x60
+
+ .global gUnknown_80E701C
+gUnknown_80E701C: @ 80E701C
+ .incbin "baserom.gba", 0xE701C, 0x74
+
+ .global gUnknown_80E7090
+gUnknown_80E7090: @ 80E7090
+ .4byte 0x80e6fac
+ .4byte 4
+ .4byte DeletingAdventure_80E70B0
+ .4byte 4
+ .4byte 0x80e6f70
+ .4byte 4
+ .4byte 0
+ .4byte 2
+
+ .global DeletingAdventure_80E70B0
+ DeletingAdventure_80E70B0:
+ .string "#+Deleting your adventure!"
+ .align 2,0
+
+ .global gUnknown_80E70CC
+gUnknown_80E70CC: @ 80E70CC
+ .4byte 0x80e7008
+ .4byte 4
+ .4byte AdventureDeleted_80E70F0
+ .4byte 4
+ .4byte Data_80E70EC
+ .4byte 4
+ .4byte 0
+ .4byte 2
+
+ .global Data_80E70EC
+ Data_80E70EC:
+ .string " "
+ .align 2,0
+
+ .global AdventureDeleted_80E70F0
+ AdventureDeleted_80E70F0:
+ .string "#+Your adventure has been deleted."
+ .align 2,0
+
+ .global gUnknown_80E7114
+gUnknown_80E7114: @ 80E7114
+ .incbin "baserom.gba", 0xE7114, 0x64
+
+ .global gUnknown_80E7178
+gUnknown_80E7178: @ 80E7178
+ .incbin "baserom.gba", 0xE7178, 0x6C
+
+ .global gUnknown_80E71E4
+gUnknown_80E71E4: @ 80E71E4
+ .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_80E71FC
+gUnknown_80E71FC: @ 80E71FC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7214
+gUnknown_80E7214: @ 80E7214
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte IncorrectPassword_80E7250
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global CheckAgain_80E7234
+ CheckAgain_80E7234:
+ .asciz "#+Please check it again."
+ .align 2,0
+
+ .global IncorrectPassword_80E7250
+ IncorrectPassword_80E7250:
+ .asciz "#+Incorrect password!"
+ .align 2,0
+
+ .global Error_80E7268
+ Error_80E7268:
+ .asciz "#+#C2Error!#R "
+ .align 2,0
+
+ .global gUnknown_80E7278
+gUnknown_80E7278: @ 80E7278
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7290
+gUnknown_80E7290: @ 80E7290
+ .4byte Success_80E72D8
+ .4byte 0xC
+ .4byte PasswordAccept_80E72B4
+ .4byte 0xC
+ .4byte DATA_80E72B0
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global DATA_80E72B0
+ DATA_80E72B0:
+ .byte 0x20, 0x20, 0x00, 0x00 @ 2 spaces??
+
+ .global PasswordAccept_80E72B4
+ PasswordAccept_80E72B4:
+ .asciz "#+The password has been accepted."
+ .align 2,0
+
+ .global Success_80E72D8
+ Success_80E72D8:
+ .asciz "#+#CGSuccess!#R "
+ .align 2,0
+
+ .global gUnknown_80E72EC
+gUnknown_80E72EC: @ 80E72EC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7304
+gUnknown_80E7304: @ 80E7304
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte NotSOSMail_80E7324
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global NotSOSMail_80E7324
+ NotSOSMail_80E7324:
+ .asciz "#+This is not an #CGSOS Mail#R."
+ .align 2,0
+
+ .global gUnknown_80E7344
+gUnknown_80E7344: @ 80E7344
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E735C
+gUnknown_80E735C: @ 80E735C
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte ReceiveSOSMail_80E737C
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global ReceiveSOSMail_80E737C
+ ReceiveSOSMail_80E737C:
+ .asciz "#+This #CGSOS Mail#R has been received already."
+ .align 2,0
+
+ .global gUnknown_80E73AC
+gUnknown_80E73AC: @ 80E73AC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E73C4
+gUnknown_80E73C4: @ 80E73C4
+ .incbin "baserom.gba", 0xE73C4, 0x44
+
+ .global gUnknown_80E7408
+gUnknown_80E7408: @ 80E7408
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7420
+gUnknown_80E7420: @ 80E7420
+ .incbin "baserom.gba", 0xE7420, 0x48
+
+ .global gUnknown_80E7468
+gUnknown_80E7468: @ 80E7468
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7480
+gUnknown_80E7480: @ 80E7480
+ .incbin "baserom.gba", 0xE7480, 0x48
+
+ .global gUnknown_80E74C8
+gUnknown_80E74C8: @ 80E74C8
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E74E0
+gUnknown_80E74E0: @ 80E74E0
+ .incbin "baserom.gba", 0xE74E0, 0x4C
+
+ .global gUnknown_80E752C
+gUnknown_80E752C: @ 80E752C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7544
+gUnknown_80E7544: @ 80E7544
+ .incbin "baserom.gba", 0xE7544, 0x44
+
+ .global gUnknown_80E7588
+gUnknown_80E7588: @ 80E7588
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E75A0
+gUnknown_80E75A0: @ 80E75A0
+ .incbin "baserom.gba", 0xE75A0, 0x58
+
+ .global gUnknown_80E75F8
+gUnknown_80E75F8: @ 80E75F8
+ .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_80E7610
+gUnknown_80E7610: @ 80E7610
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x1A, 0x00, 0x0B, 0x00
+ .byte 0x0B, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x20, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E762C
+gUnknown_80E762C: @ 80E762C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x0F, 0x00
+ .byte 0x13, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gResumeQuicksaveMenuItems
+gResumeQuicksaveMenuItems: @ 80E7644
+ .4byte ResumeQuicksave_80E7668
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte IsThatOK_80E765C
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+
+ IsThatOK_80E765C:
+ .string "Is that OK?\0"
+ .align 2,0
+
+ ResumeQuicksave_80E7668:
+ .string "Resuming from quicksave.\0"
+ .align 2,0
+
+ .global gResumeAdventureMenuItems
+gResumeAdventureMenuItems: @ 80E7684
+ .4byte ResumeAdventure_80E769C
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte IsThatOK_80E765C
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+
+ ResumeAdventure_80E769C:
+ .string "Resuming saved adventure.\0"
+ .align 2,0
+
+ .global gQuitWaitingRescueMenuItems
+gQuitWaitingRescueMenuItems: @ 80E76B8
+ .4byte QuitAwaitingRescue_80E76D0
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte IsThatOK_80E765C
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+
+ QuitAwaitingRescue_80E76D0:
+ .string "Quit awaiting rescue?\0"
+ .align 2,0
+
+ .global gDeleteSavePromptMenuItems
+gDeleteSavePromptMenuItems: @ 80E76E8
+ .4byte Deleted_80E7718
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte Deleted_80E7700
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+
+ Deleted_80E7700:
+ .string "deleted. Is that OK?\0"
+ .align 2,0
+
+ Deleted_80E7718:
+ .string "Your saved data will be\0"
+ .align 2,0
+
+ .global gDeleteSaveConfirmMenuItems
+gDeleteSaveConfirmMenuItems: @ 80E7730
+ .4byte Deleted_80E7768
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte Deleted_80E7748
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+
+ Deleted_80E7748:
+ .string "delete all of your saved data?\0"
+ .align 2,0
+
+ Deleted_80E7768:
+ .string "Are you sure you want to\0"
+ .align 2,0
+
+
+ .global gUnknown_80E7784
+gUnknown_80E7784: @ 80E7784
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x17, 0x00, 0x0F, 0x00
+ .byte 0x05, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index d4e0f27..bc96174 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -1,11 +1,5 @@
.section .rodata
- .global gPartnerSelectionHeaderText
-gPartnerSelectionHeaderText: @ 80F42C0
- .string "Pokémon\0"
- .string "pksdir0\0"
- .align 2,0
-
.global gUnknown_80F42D0
gUnknown_80F42D0: @ 80F42D0
@ replacing .incbin "baserom.gba", 0x000f42d0, 0x20
diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h
index 17f4b3a..bc1ad46 100644
--- a/include/dungeon_global_data.h
+++ b/include/dungeon_global_data.h
@@ -41,7 +41,8 @@ struct DungeonGlobalData
/* 0x363C */ u8 expYieldRankings[NUM_SPECIES];
u8 fill37E3[0x37FC - 0x37D9];
/* 0x37FC */ bool8 decoyActive;
- u8 fill37FD[0x3A0E - 0x37FD];
+ u8 fill37FD[0x3A0D - 0x37FD];
+ /* 0x3A0D */ u8 unk3A0D;
/* 0x3A0E */ s16 tileset;
u8 fill3A10[0x3A14 - 0x3A10];
/* 0x3A14 */ s16 bossBattleIndex;
diff --git a/include/item.h b/include/item.h
index 998f1ac..e1a8a0d 100644
--- a/include/item.h
+++ b/include/item.h
@@ -93,6 +93,7 @@ bool8 xxx_insert_unk230_80919FC(u8);
u32 xxx_count_non_empty_inv_unk250_8091A48();
void sub_8091BB4(u8);
void sub_8090F58(void*, u8 *, struct ItemSlot *, struct unkStruct_8090F58*);
+void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3);
void SlotToHeldItem(struct HeldItem *held,struct ItemSlot *slot);
void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*);
diff --git a/include/main_menu.h b/include/main_menu.h
index 3d72acb..b794250 100644
--- a/include/main_menu.h
+++ b/include/main_menu.h
@@ -6,7 +6,7 @@ enum MainMenuScreens
MENU_MAIN_SCREEN = 1,
MENU_NEW_GAME = 3,
MENU_AWAITING_RESCUE = 6,
- MENU_CONTINUE = 7,
+ MENU_CONTINUE = 7, // used by Revive Team/Continue
MENU_DELETE_SAVE_PROMPT,
MENU_DELETE_SAVE_CONFIRM,
MENU_ADVENTURE_LOG = 10,
@@ -16,6 +16,8 @@ enum MainMenuScreens
MENU_DUAL_SLOT,
MENU_WIRELESS_COMMS,
MENU_DEBUG = 16,
+ MENU_SEND_ITEMS,
+ MENU_RECEIVE_ITEMS,
MENU_COMMUNICATION_1 = 19,
MENU_COMMUNICATION_2,
// NOTE: 0x1B - 0x22 used by Rescue Password Menu
@@ -54,4 +56,12 @@ struct MainMenu
};
+
+void InitMainMenu(void);
+void DeleteMainMenu(void);
+void SetUpMenu(void);
+s32 UpdateMenu(void);
+void CleanUpMenu(void);
+bool8 sub_80363E0(void);
+
#endif // GUARD_MAIN_MENU_H
diff --git a/include/sub_8095228.h b/include/sub_8095228.h
index e7d214b..3fd5993 100644
--- a/include/sub_8095228.h
+++ b/include/sub_8095228.h
@@ -1,3 +1,5 @@
+#ifndef GUARD_SUB_8095228_H
+#define GUARD_SUB_8095228_H
struct unkStruct_8095228
{
@@ -18,4 +20,4 @@ struct unkStruct_8095228
extern struct unkStruct_8095228 *sub_8095228(u8);
-
+#endif // GUARD_SUB_8095228_H
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index 2879f1f..e079230 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -4,8 +4,25 @@
#include "file_system.h"
#include "text.h"
#include "item.h"
+#include "pokemon.h"
+#include "sub_8095228.h"
#define PASSWORD_BUFFER_SIZE 54
+#define MAX_ITEM_REWARDS 3
+
+struct unkStruct_802F204
+{
+ /* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; // client name?
+ /* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name?
+ /* 0x14 */ s16 unk14; // poke species (client??)
+ /* 0x16 */ u8 unk16;
+ /* 0x18 */ s32 moneyReward;
+ /* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS];
+ /* 0x1F */ u8 numItems;
+ /* 0x20 */ u8 friendAreaReward;
+ u8 fill21[0x24 - 0x21];
+ /* 0x24 */ u32 teamRankPtsReward;
+};
struct WonderMail
{
@@ -34,7 +51,14 @@ struct WonderMailStruct_203B2C0
u8 unk3E;
u32 unk40;
u32 linkError;
- u16 unk48[232];
+ u8 unk48[0x30];
+ u8 unk78[0x30];
+ struct unkStruct_8095228 unkA8;
+ struct PokemonStruct unkD8;
+ u8 unk130;
+ u8 fill131[0x168 - 0x131];
+ u16 unk168;
+ u8 fill16A[0x218 - 0x16A];
u8 unk218;
u32 unk21C;
u8 padding[0x7C];
@@ -92,20 +116,7 @@ struct WonderMailStruct_203B2C4
u8 formattedString[0x100];
s32 wonderMailMethod;
u32 wonderMailMode;
- u8 unk53C[0xA];
- u32 unk548;
- u32 unk54C;
- u16 unk550;
- u8 unk552;
- u8 unk553;
- u32 unk554;
- u8 unk558;
- u8 unk559;
- u8 unk55A;
- u8 unk55B;
- u8 unk55C;
- u8 fill55C[0x560 - 0x55D];
- u32 unk560;
+ struct unkStruct_802F204 unk53C;
};
void sub_8028B04(u32 r0);
diff --git a/ld_script.txt b/ld_script.txt
index 6aca15d..7bdcb4b 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -119,8 +119,6 @@ SECTIONS {
asm/friend_area_action_menu.o(.text);
src/friend_area_action_menu_1.o(.text);
asm/friend_area_action_menu_1.o(.text);
- src/wonder_mail_pre.o(.text);
- asm/wonder_mail.o(.text);
src/wonder_mail.o(.text);
src/thank_you_wonder_mail.o(.text);
src/wonder_mail_2.o(.text);
@@ -133,10 +131,12 @@ SECTIONS {
src/pelipper_board.o(.text);
asm/pelipper_board.o(.text);
src/pelipper_board_1.o(.text);
+ src/wonder_mail_3_mid.o(.text);
asm/wonder_mail_3_mid.o(.text);
src/wonder_mail_3_1.o(.text);
src/makuhita_dojo.o(.text);
asm/makuhita_dojo.o(.text);
+ src/wonder_mail_4.o(.text);
asm/wonder_mail_4.o(.text);
src/post_office_guide.o(.text);
asm/wonder_mail_5.o(.text);
@@ -147,8 +147,6 @@ SECTIONS {
asm/credits.o(.text);
src/credits.o(.text);
src/main_menu.o(.text);
- asm/main_menu_1.o(.text);
- src/main_menu_1.o(.text);
src/trade_items_menu.o(.text);
src/other_menus.o(.text);
asm/other_menus.o(.text);
@@ -191,6 +189,8 @@ SECTIONS {
src/code_8057824.o(.text);
asm/code_8057824.o(.text);
asm/code_807001C.o(.text);
+ src/code_80848F0.o(.text);
+ asm/code_80848F0.o(.text);
src/code_80869E4.o(.text);
asm/code_80869E4.o(.text);
src/code_8086A3C.o(.text);
@@ -323,6 +323,8 @@ SECTIONS {
data/data_80E1F30.o(.rodata);
src/adventure_log.o(.rodata);
data/data_80E2068.o(.rodata);
+ src/main_menu.o(.rodata);
+ data/data_80E59A8.o(.rodata);
src/load_screen.o(.rodata);
src/wonder_mail_main_menu.o(.rodata);
src/debug_menu.o(.rodata);
diff --git a/src/code_2.c b/src/code_2.c
index 9ed43f9..c26b20b 100644
--- a/src/code_2.c
+++ b/src/code_2.c
@@ -6,6 +6,7 @@
#include "friend_area.h"
#include "input.h"
#include "memory.h"
+#include "main_menu.h"
#include "music.h"
#include "play_time.h"
#include "save.h"
@@ -41,12 +42,6 @@ extern void sub_800CDA8(u32);
extern void LoadTitleScreen(void);
extern void SetBGPaletteBufferColorRGB(s32, u8 *, s32, u8 *);
extern void sub_80095CC(u32, u32);
-extern void InitMainMenu(void);
-extern bool8 sub_80363E0(void);
-extern void SetUpMenu(void);
-extern u32 UpdateMenu(void);
-extern void CleanUpMenu(void);
-extern void DeleteMainMenu(void);
extern s32 sub_80953D4(u32);
extern void sub_8095240(u8);
extern void nullsub_33(void);
@@ -168,7 +163,7 @@ void GameLoop(void)
CleanUpMenu();
if (nextMenu == 2) break;
if (nextMenu == 4) break;
- if (nextMenu == 3) break;
+ if (nextMenu == MENU_NEW_GAME) break;
}
DeleteMainMenu();
while (gUnknown_2000A80 > 0) {
@@ -193,7 +188,7 @@ void GameLoop(void)
case 4:
tmp3 = sub_80009D0(3);
break;
- case 3:
+ case MENU_NEW_GAME:
sub_80122A8();
nullsub_33();
tmp3 = sub_80009D0(0);
diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c
index ecb0ec1..fa1c79e 100644
--- a/src/code_80521D0_1.c
+++ b/src/code_80521D0_1.c
@@ -659,7 +659,7 @@ void sub_808C5C0(void)
}
// Dummy Celebi Fight Dialogue??
-void nullsub_100(void)
+void nullsub_100(u32 r0, u32 r1, u32 r2)
{
}
diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c
index d88918f..ec518d7 100644
--- a/src/code_8057824_1.c
+++ b/src/code_8057824_1.c
@@ -259,7 +259,7 @@ extern struct DungeonEntity *sub_8083600();
extern void sub_80421C0(struct DungeonEntity *, u32);
extern void sub_8046D20();
extern void sub_808B1CC(u8);
-extern void sub_80464C8(struct DungeonEntity *, u32, struct ItemSlot *);
+extern void sub_80464C8(struct DungeonEntity *, u32 *, struct ItemSlot *);
extern void sub_8098044(u32);
extern void PlaySoundEffect(u32);
extern void sub_8085C54(u32, u32, u32, u32, u32);
@@ -3092,7 +3092,7 @@ void sub_808ADCC(void)
}
}
-void sub_808AE54(char param_1,char param_2,u32 param_3)
+void sub_808AE54(char param_1,char param_2,u32 *param_3)
{
struct DungeonEntity * uVar3;
u8 auStack24 [4];
@@ -3115,7 +3115,7 @@ void sub_808AE54(char param_1,char param_2,u32 param_3)
}
-void sub_808AEC8(char param_1,char param_2,u32 param_3)
+void sub_808AEC8(char param_1,char param_2,u32 *param_3)
{
struct DungeonEntity * uVar3;
u8 auStack24 [4];
@@ -3137,7 +3137,7 @@ void sub_808AEC8(char param_1,char param_2,u32 param_3)
}
}
-void sub_808AF3C(char param_1,char param_2,u32 param_3)
+void sub_808AF3C(char param_1,char param_2,u32 *param_3)
{
struct DungeonEntity * uVar3;
u8 auStack24 [4];
diff --git a/src/code_80848F0.c b/src/code_80848F0.c
new file mode 100644
index 0000000..f82c4af
--- /dev/null
+++ b/src/code_80848F0.c
@@ -0,0 +1,421 @@
+#include "global.h"
+#include "dungeon_global_data.h"
+
+extern struct DungeonGlobalData *gDungeonGlobalData;
+
+extern void SkarmonyPreFightDialogue();
+extern void SkarmonyReFightDialogue();
+extern void sub_8086E40();
+extern void TeamMeaniePreFightDialogue();
+extern void TeamMeanieReFightDialogue();
+extern void sub_8087130();
+extern void ZapdosPreFightDialogue();
+extern void ZapdosReFightDialogue();
+extern void ZapdosPostStoryPreFightDialogue();
+extern void MoltresPreFightDialogue();
+extern void MoltresReFightDialogue();
+extern void MoltresPostStoryPreFightDialogue();
+extern void ArticunoPreFightDialogue();
+extern void ArticunoReFightDialogue();
+extern void ArticunoPostStoryPreFightDialogue();
+extern void sub_8088608();
+extern void sub_8088618();
+extern void GroudonPreFightDialogue();
+extern void GroudonReFightDialogue();
+extern void GroudonPostStoryPreFightDialogue();
+extern void MagmaCavernMidDialogue();
+extern void sub_8089168();
+extern void RayquazaPreFightDialogue();
+extern void RayquazaReFightDialogue();
+extern void RayquazaPostStoryPreFightDialogue();
+extern void sub_80897F0();
+extern void sub_8089878();
+extern void sub_80898E4();
+extern void MewtwoPreFightDialogue();
+extern void MewtwoPreFightDialogue1();
+extern void EnteiPreFightDialogue();
+extern void EnteiPreFightDialogue1();
+extern void EnteiPreFightDialogue2();
+extern void RaikouPreFightDialogue();
+extern void RaikouPreFightDialogue1();
+extern void RaikouPreFightDialogue2();
+extern void SuicunePreFightDialogue();
+extern void SuicunePreFightDialogue1();
+extern void SuicunePreFightDialogue2();
+extern void HoOhPreFightDialogue();
+extern void HoOhPreFightDialogue1();
+extern void LatiosPreFightDialogue();
+extern void LatiosReFightDialogue();
+extern void sub_808AC3C();
+extern void RegirockPreFightDialogue();
+extern void RegicePreFightDialogue();
+extern void RegisteelPreFightDialogue();
+extern void JirachiPreFightDialogue();
+extern void JirachiPreFightDialogue1();
+extern void LugiaPreFightDialogue();
+extern void KyogrePreFightDialogue();
+extern void DeoxysPreFightDialogue();
+extern void CelebiJoinDialogue();
+extern void sub_808C998();
+extern void MedichamRescueDialogue();
+extern void DummyFightDialogue();
+extern void SmeargleRescueDialogue();
+extern void sub_808CD9C();
+extern void sub_8085764();
+extern void sub_80857B8();
+extern void sub_8097FF8();
+
+extern void sub_8086BDC(u32,u8);
+extern void sub_8086F54(u32,u8);
+extern void sub_8087334(u32,u8);
+extern void sub_80878F4(u32,u8);
+extern void sub_8088088(u32,u8);
+extern void sub_8088818(u32,u8);
+extern void sub_80893B4(u32,u8);
+extern void sub_8089788(struct DungeonEntity *,u32,u8);
+extern void sub_8089A00(u32,u8);
+extern void sub_8089CFC(u32,u8);
+extern void sub_8089FF0(u32,u8);
+extern void sub_808A36C(u32,u8);
+extern void sub_808A6E8(u32,u8);
+extern void sub_808AAF0(u32,u8);
+extern void sub_808AE54(u32,u8,s16 *);
+extern void sub_808AEC8(u32,u8,s16 *);
+extern void sub_808AF3C(u32,u8,s16 *);
+extern void sub_808B3E4(u32,u8,u8);
+extern void sub_808BE70(u32,u8,u8);
+extern void sub_808C1A4(u32,u8,u8);
+extern void sub_808C414(u32,u8,u8);
+extern void nullsub_100(u32,u8,u8);
+extern void sub_808C948(struct DungeonEntity *,u8);
+extern void sub_8083E88(u32);
+
+extern void sub_808AFB0(u8);
+extern void sub_808B030(u8);
+extern void sub_808B0B0(u8);
+
+
+void DisplayPreFightDialogue(void)
+{
+
+ switch(gDungeonGlobalData->unk3A0D) {
+ case 0:
+ break;
+ case 1:
+ SkarmonyPreFightDialogue();
+ break;
+ case 2:
+ SkarmonyReFightDialogue();
+ break;
+ case 3:
+ sub_8086E40();
+ break;
+ case 4:
+ TeamMeaniePreFightDialogue();
+ break;
+ case 5:
+ TeamMeanieReFightDialogue();
+ break;
+ case 6:
+ sub_8087130();
+ break;
+ case 7:
+ ZapdosPreFightDialogue();
+ break;
+ case 8:
+ ZapdosReFightDialogue();
+ break;
+ case 9:
+ ZapdosPostStoryPreFightDialogue();
+ break;
+ case 10:
+ MoltresPreFightDialogue();
+ break;
+ case 0xb:
+ MoltresReFightDialogue();
+ break;
+ case 0xc:
+ MoltresPostStoryPreFightDialogue();
+ break;
+ case 0xd:
+ ArticunoPreFightDialogue();
+ break;
+ case 0xe:
+ ArticunoReFightDialogue();
+ break;
+ case 0xf:
+ ArticunoPostStoryPreFightDialogue();
+ break;
+ case 0x10:
+ sub_8088608();
+ break;
+ case 0x11:
+ sub_8088618();
+ break;
+ case 0x12:
+ GroudonPreFightDialogue();
+ break;
+ case 0x13:
+ GroudonReFightDialogue();
+ break;
+ case 0x14:
+ GroudonPostStoryPreFightDialogue();
+ break;
+ case 0x15:
+ MagmaCavernMidDialogue();
+ break;
+ case 0x16:
+ sub_8089168();
+ break;
+ case 0x17:
+ RayquazaPreFightDialogue();
+ break;
+ case 0x18:
+ RayquazaReFightDialogue();
+ break;
+ case 0x19:
+ RayquazaPostStoryPreFightDialogue();
+ break;
+ case 0x1a:
+ sub_80897F0();
+ break;
+ case 0x1b:
+ sub_8089878();
+ break;
+ case 0x1c:
+ sub_80898E4();
+ break;
+ case 0x1d:
+ case 0x1e:
+ MewtwoPreFightDialogue();
+ break;
+ case 0x1f:
+ MewtwoPreFightDialogue1();
+ break;
+ case 0x20:
+ EnteiPreFightDialogue();
+ break;
+ case 0x21:
+ EnteiPreFightDialogue1();
+ break;
+ case 0x22:
+ EnteiPreFightDialogue2();
+ break;
+ case 0x23:
+ RaikouPreFightDialogue();
+ break;
+ case 0x24:
+ RaikouPreFightDialogue1();
+ break;
+ case 0x25:
+ RaikouPreFightDialogue2();
+ break;
+ case 0x26:
+ SuicunePreFightDialogue();
+ break;
+ case 0x27:
+ SuicunePreFightDialogue1();
+ break;
+ case 0x28:
+ SuicunePreFightDialogue2();
+ break;
+ case 0x29:
+ HoOhPreFightDialogue();
+ break;
+ case 0x2a:
+ HoOhPreFightDialogue1();
+ break;
+ case 0x2b:
+ LatiosPreFightDialogue();
+ break;
+ case 0x2c:
+ LatiosReFightDialogue();
+ break;
+ case 0x2d:
+ sub_808AC3C();
+ break;
+ case 0x2e:
+ RegirockPreFightDialogue();
+ break;
+ case 0x2f:
+ RegicePreFightDialogue();
+ break;
+ case 0x30:
+ RegisteelPreFightDialogue();
+ break;
+ case 0x31:
+ JirachiPreFightDialogue();
+ break;
+ case 0x32:
+ JirachiPreFightDialogue1();
+ break;
+ case 0x33:
+ LugiaPreFightDialogue();
+ break;
+ case 0x34:
+ KyogrePreFightDialogue();
+ break;
+ case 0x35:
+ DeoxysPreFightDialogue();
+ break;
+ case 0x36:
+ CelebiJoinDialogue();
+ break;
+ case 0x37:
+ sub_808C998();
+ break;
+ case 0x38:
+ MedichamRescueDialogue();
+ break;
+ case 0x39:
+ DummyFightDialogue();
+ break;
+ case 0x3a:
+ SmeargleRescueDialogue();
+ break;
+ case 0x3b:
+ sub_808CD9C();
+ break;
+ case 0x3C:
+ break;
+ }
+ sub_8085764();
+ sub_80857B8();
+ gDungeonGlobalData->unk1356C = 0;
+ sub_8097FF8();
+}
+
+void sub_8084E00(struct DungeonEntity *param_1,char param_2,char param_3)
+{
+
+ if (param_2 != '\0') {
+ switch(gDungeonGlobalData->unk3A0D) {
+ case 0:
+ break;
+ case 1:
+ case 2:
+ sub_8086BDC(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 4:
+ case 5:
+ sub_8086F54(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 7:
+ case 8:
+ case 9:
+ sub_8087334(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 10:
+ case 0xb:
+ case 0xc:
+ sub_80878F4(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0xd:
+ case 0xe:
+ case 0xf:
+ sub_8088088(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ sub_8088818(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ sub_80893B4(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x1a:
+ case 0x1b:
+ sub_8089788(param_1,param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x1d:
+ case 0x1e:
+ case 0x1f:
+ sub_8089A00(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x20:
+ case 0x21:
+ case 0x22:
+ sub_8089CFC(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x23:
+ case 0x24:
+ case 0x25:
+ sub_8089FF0(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x26:
+ case 0x27:
+ case 0x28:
+ sub_808A36C(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x29:
+ case 0x2a:
+ sub_808A6E8(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x2b:
+ case 0x2c:
+ case 0x2d:
+ sub_808AAF0(param_2,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x2e:
+ sub_808AE54(param_2,gDungeonGlobalData->unk3A0D,&param_1->posWorldX);
+ break;
+ case 0x2f:
+ sub_808AEC8(param_2,gDungeonGlobalData->unk3A0D,&param_1->posWorldX);
+ break;
+ case 0x30:
+ sub_808AF3C(param_2,gDungeonGlobalData->unk3A0D,&param_1->posWorldX);
+ break;
+ case 0x31:
+ case 0x32:
+ sub_808B3E4(param_2,gDungeonGlobalData->unk3A0D,param_3);
+ break;
+ case 0x33:
+ sub_808BE70(param_2,gDungeonGlobalData->unk3A0D,param_3);
+ break;
+ case 0x34:
+ sub_808C1A4(param_2,gDungeonGlobalData->unk3A0D,param_3);
+ break;
+ case 0x35:
+ sub_808C414(param_2,gDungeonGlobalData->unk3A0D,param_3);
+ break;
+ case 0x36:
+ nullsub_100(param_2,gDungeonGlobalData->unk3A0D,param_3);
+ break;
+ case 0x37:
+ sub_808C948(param_1,gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x38:
+ case 0x39:
+ case 0x3A:
+ case 0x3B:
+ case 0x3C:
+ break;
+ }
+ if ((param_3 == '\0') && (gDungeonGlobalData->unk2 != '\0')) {
+ sub_8083E88(999);
+ }
+ }
+}
+
+void sub_8085140(void)
+{
+ switch(gDungeonGlobalData->unk3A0D) {
+ // NOTE: shortcut way to generate all cases from 0 - 0x3C properly
+ default:
+ case 0:
+ case 1:
+ case 0x3C:
+ break;
+ case 0x2e:
+ sub_808AFB0(gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x2f:
+ sub_808B030(gDungeonGlobalData->unk3A0D);
+ break;
+ case 0x30:
+ sub_808B0B0(gDungeonGlobalData->unk3A0D);
+ break;
+ }
+}
diff --git a/src/main_menu.c b/src/main_menu.c
index cf0524a..37cd217 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -22,9 +22,6 @@
// Deletes the Save
-extern struct MainMenu *gMainMenu;
-void sub_8035DA0(void);
-
extern void sub_8094C14(void);
extern void sub_8099690(u32);
extern void sub_8036FDC(s32);
@@ -35,7 +32,7 @@ extern void CreateWonderMailMenu(void);
extern void CreateLoadScreen(u32);
extern void CreateRescuePasswordMenu(u32);
extern void CreateSaveMenu(u32);
-extern s32 UpdateMainMenu(void);
+extern u32 UpdateMainMenu(void);
extern s32 UpdateLoadScreenMenu(void);
extern s32 UpdateFriendRescueMenu(void);
extern s32 UpdateWonderMailMenu(void);
@@ -53,38 +50,261 @@ extern void CleanWirelessCommsMenu(void);
extern void CleanRescuePasswordMenu(void);
extern void sub_80383A8(void);
extern void CleanSaveMenu(void);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, s32 *);
+extern u8 sub_803D0D8();
+extern s32 sub_8011C34();
+extern s32 sub_8095324(u32);
void CleanMainMenu(void);
void DrawMainMenu(void);
s32 sub_8035DB4(u32);
-
-struct unkSubStruct
-{
- u32 unk0;
- u32 unk4;
-};
+void sub_803623C(void);
+bool8 SetMainMenuText();
+void SetMainMenuItems();
+void sub_8035DA0(void);
struct unkStruct_203B34C
{
// size: 0x1A8
u32 unk0;
u32 unk4;
- struct unkSubStruct *unk8; // Array of menu choices??
+ struct MenuItem *unk8; // Array of menu choices??
u8 fillC[0x30 - 0xC];
s16 menuIndex;
- u8 fill32[0x144 - 0x32];
+ u8 fill32[0x54 - 0x32];
+
+ u32 unk54;
+ u8 fill58[0xA4 - 0x58];
+
+ u32 unkA4;
+ u32 unkA8;
+ u8 fillAC[0x144 - 0xAC];
struct UnkTextStruct2 unk144[4];
/* 0x1A4 */ u32 currMenuChoice;
};
-extern struct unkStruct_203B34C *gUnknown_203B34C;
+EWRAM_DATA struct MainMenu *gMainMenu;
+EWRAM_DATA struct unkStruct_203B34C *gUnknown_203B34C;
+EWRAM_DATA u32 gUnknown_203B350;
+EWRAM_DATA u32 gUnknown_203B354; // unused everywhere else except here..
+
+
+extern const char NewGame_80E5A20[];
+extern const char AdventureLog_80E5A10[];
+extern const char WonderMail_80E5A54[];
+extern const char Continue_80E5AF0[];
+extern const char DeleteSaveData_80E5ADC[];
+extern const char FriendRescue_80E5ACC[];
+extern const char TradeItems_80E5AC0[];
+extern const char ReviveTeam_80E5C0C[];
+extern const char SendItems_80E5C90[];
+extern const char ReceiveItems_80E5C80[];
+extern const char AwaitingRescue_80E5B7C[];
+
+const struct UnkTextStruct2 gUnknown_80E59A8 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x00,
+ NULL
+};
+
+const char main_menu_fill[] = "pksdir0";
+
+const struct UnkTextStruct2 gUnknown_80E59C8 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x00,
+ NULL
+};
+
+const struct UnkTextStruct2 gUnknown_80E59E0 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x03,
+ 0x03, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E59F8[] =
+{
+ {NewGame_80E5A20, MENU_NEW_GAME},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {NULL, 0xffdd},
+};
+
+const char AdventureLog_80E5A10[] = "Adventure Log";
+const char NewGame_80E5A20[] = "New Game";
+
+const struct UnkTextStruct2 gUnknown_80E5A29 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x02,
+ 0x02, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E5A44[] =
+{
+ {WonderMail_80E5A54, MENU_WONDER_MAIL},
+ {NULL, 0xffdd},
+};
+
+const char WonderMail_80E5A54[] = "Wonder Mail";
+
+const struct UnkTextStruct2 gUnknown_80E5A60 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x08,
+ 0x08, 0x00,
+ NULL
+};
+
+const struct UnkTextStruct2 gUnknown_80E5A78 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0B, 0x09,
+ 0x09, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E5A90[] =
+{
+ {Continue_80E5AF0, MENU_CONTINUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {NULL, 0xffdd},
+};
+
+const char TradeItems_80E5AC0[] = "Trade Items";
+const char FriendRescue_80E5ACC[] = "Friend Rescue";
+const char DeleteSaveData_80E5ADC[] = "Delete Save Data";
+const char Continue_80E5AF0[] = "Continue";
+
+
+const struct MenuItem gUnknown_80E5AFC[] =
+{
+ {Continue_80E5AF0, MENU_CONTINUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {WonderMail_80E5A54, MENU_WONDER_MAIL},
+ {NULL, 0xffdd},
+};
+
+const struct UnkTextStruct2 gUnknown_80E5B34 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x08,
+ 0x08, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E5B4C[] =
+{
+ {AwaitingRescue_80E5B7C, MENU_AWAITING_RESCUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {NULL, 0xffdd},
+};
+const char AwaitingRescue_80E5B7C[] = "Awaiting Rescue";
+
+const struct MenuItem gUnknown_80E5B8C[] =
+{
+ {AwaitingRescue_80E5B7C, MENU_AWAITING_RESCUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {WonderMail_80E5A54, MENU_WONDER_MAIL},
+ {NULL, 0xffdd},
+};
+
+const struct UnkTextStruct2 gUnknown_80E5BC4 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x08,
+ 0x08, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E5BDC[] =
+{
+ {ReviveTeam_80E5C0C, MENU_CONTINUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {NULL, 0xffdd},
+};
+const char ReviveTeam_80E5C0C[] = "Revive Team";
+
+const struct MenuItem gUnknown_80E5C18[] =
+{
+ {ReviveTeam_80E5C0C, MENU_CONTINUE},
+ {DeleteSaveData_80E5ADC, MENU_DELETE_SAVE_PROMPT},
+ {AdventureLog_80E5A10, MENU_ADVENTURE_LOG},
+ {FriendRescue_80E5ACC, MENU_FRIEND_RESCUE},
+ {TradeItems_80E5AC0, MENU_TRADE_ITEMS},
+ {WonderMail_80E5A54, MENU_WONDER_MAIL},
+ {NULL, 0xffdd},
+};
+
+const struct UnkTextStruct2 gUnknown_80E5C50 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x0A, 0x03,
+ 0x03, 0x00,
+ NULL
+};
+
+const struct MenuItem gUnknown_80E5C68[] =
+{
+ {SendItems_80E5C90, MENU_SEND_ITEMS},
+ {ReceiveItems_80E5C80, MENU_RECEIVE_ITEMS},
+ {NULL, 0xffdd},
+};
+
+const char ReceiveItems_80E5C80[] = "Receive Items";
+const char SendItems_80E5C90[] = "Send Items";
+
+const struct MenuItem gUnknown_80E5C9C[] =
+{
+ {SendItems_80E5C90, -1},
+ {ReceiveItems_80E5C80, MENU_RECEIVE_ITEMS},
+ {NULL, 0xffdd},
+};
+
+extern const struct UnkTextStruct2 gUnknown_80E5CB4;
+extern const struct MenuItem gUnknown_80E5CCC[];
+extern const struct MenuItem gUnknown_80E5D0C[];
+extern const struct MenuItem gUnknown_80E5D48[];
+extern const struct MenuItem gUnknown_80E5DA0[];
+extern const struct MenuItem gUnknown_80E5DF0[];
+extern const struct MenuItem gUnknown_80E5E5C[];
+extern const struct MenuItem gUnknown_80E5EBC[];
+extern const struct MenuItem gUnknown_80E5F1C[];
+extern const struct MenuItem gUnknown_80E5F80[];
+extern const struct MenuItem gUnknown_80E5FCC[];
+extern const struct MenuItem gUnknown_80E6030[];
-extern struct MainMenu *gMainMenu;
-extern struct UnkTextStruct2 gUnknown_80E59A8;
-extern struct UnkTextStruct2 gUnknown_80E59C8;
-extern bool8 SetMainMenuText();
-extern void SetMainMenuItems();
struct unkStruct_Menu
{
@@ -396,6 +616,7 @@ void sub_8035D1C(void)
gMainMenu->unk38 = -1;
}
+// Unused
void sub_8035D30(s32 r0)
{
gMainMenu->unk38 = r0;
@@ -411,11 +632,13 @@ struct MainMenu *GetMainMenu(void)
return gMainMenu;
}
+// Unused
void sub_8035D58(void)
{
gMainMenu->unk3C = -1;
}
+// Unused
void sub_8035D68(s32 r0)
{
gMainMenu->unk3C = r0;
@@ -528,3 +751,241 @@ void CleanMainMenu(void)
}
}
+u32 UpdateMainMenu(void)
+{
+ u32 nextMenu = MENU_NO_SCREEN_CHANGE;
+ switch(gUnknown_203B34C->unk0)
+ {
+ case 1:
+ sub_8012FD8(&gUnknown_203B34C->unkA4);
+ if(!sub_8012FD8(&gUnknown_203B34C->unk4))
+ sub_8013114(&gUnknown_203B34C->unk4, &nextMenu);
+
+ if(SetMainMenuText())
+ {
+ sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
+ sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
+ }
+ switch(nextMenu)
+ {
+ case MENU_NO_SCREEN_CHANGE:
+ nextMenu = MENU_NO_SCREEN_CHANGE;
+ break;
+ case 0xffdd:
+ gUnknown_203B34C->unk0 = 1;
+ nextMenu = MENU_NO_SCREEN_CHANGE;
+ ResetUnusedInputStruct();
+ sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
+ sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
+ break;
+ case MENU_TRADE_ITEMS:
+ sub_8035DA0();
+ gUnknown_203B350 = nextMenu;
+ break;
+ case MENU_NEW_GAME:
+ case MENU_AWAITING_RESCUE:
+ case MENU_CONTINUE:
+ case MENU_DELETE_SAVE_PROMPT:
+ case MENU_DELETE_SAVE_CONFIRM:
+ case MENU_ADVENTURE_LOG:
+ case MENU_FRIEND_RESCUE:
+ case MENU_WONDER_MAIL:
+ case MENU_DUAL_SLOT:
+ case MENU_WIRELESS_COMMS:
+ case MENU_DEBUG:
+ gUnknown_203B350 = nextMenu;
+ break;
+
+ }
+ break;
+ case 0xC:
+ if(!sub_8012FD8(&gUnknown_203B34C->unk54))
+ sub_8013114(&gUnknown_203B34C->unk54, &nextMenu);
+ switch(nextMenu)
+ {
+ case 0xffdd:
+ sub_803623C();
+ gUnknown_203B34C->unk0 = 1;
+ nextMenu = MENU_NO_SCREEN_CHANGE;
+ break;
+ case MENU_SEND_ITEMS:
+ gUnknown_203B354 = nextMenu;
+ nextMenu = MENU_TRADE_ITEMS;
+ break;
+ case MENU_RECEIVE_ITEMS:
+ gUnknown_203B354 = nextMenu;
+ nextMenu = MENU_COMMUNICATION_2;
+ break;
+ case MENU_NO_SCREEN_CHANGE:
+ nextMenu = MENU_NO_SCREEN_CHANGE;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ case 0xD: // forces the bls switch
+ break;
+ }
+ return nextMenu;
+}
+
+bool8 SetMainMenuText(void)
+{
+ u32 menuChoice;
+ struct MenuItem *preload;
+
+ // Have to load the pointer before the index
+ preload = gUnknown_203B34C->unk8;
+ menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action?
+ if (gUnknown_203B34C->currMenuChoice == menuChoice) {
+ return FALSE;
+ }
+
+ gUnknown_203B34C->currMenuChoice = menuChoice;
+ sub_8035CC0(gUnknown_203B34C->unk144,2);
+ sub_8035CC0(gUnknown_203B34C->unk144,3);
+ switch(menuChoice) {
+ case MENU_WIRELESS_COMMS:
+ // Using wireless communications, you can go on an adventure to unknown worlds.
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
+ break;
+ case MENU_WONDER_MAIL:
+ // Using passwords, you can receive Wonder Mail
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
+ break;
+ case MENU_AWAITING_RESCUE:
+ // You are awaiting resuce by a friend
+ // You can give up waiting for rescue
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
+ break;
+ case MENU_NEW_GAME:
+ // Start an entirely new adventure
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
+ break;
+ case MENU_CONTINUE:
+ // Resume your adventure from where you last saved
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
+ break;
+ case MENU_DELETE_SAVE_PROMPT:
+ // This will delete your saved game data.
+ // Beware! This will delete it forever
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
+ break;
+ case MENU_ADVENTURE_LOG:
+ // Check your career as an adventurer
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
+ break;
+ case MENU_FRIEND_RESCUE:
+ // Using a Game Link cable or passwords, friends may rescue each other
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
+ break;
+ case MENU_TRADE_ITEMS:
+ // Using a Game Link cable you can trade stored items with a friend
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
+ break;
+ case MENU_DUAL_SLOT:
+ // Using Dual Slot function, you can receive teams from your friends
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
+ break;
+ case MENU_DEBUG:
+ // This is the Debug Mode.
+ // It won't be in the release version
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
+ break;
+ default:
+ break;
+ }
+ return TRUE;
+}
+
+void sub_803623C(void)
+{
+ sub_8035CC0(gUnknown_203B34C->unk144,1);
+ SetMainMenuItems();
+ gUnknown_203B34C->currMenuChoice = -1;
+ if (SetMainMenuText()) {
+ sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
+ }
+ sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
+}
+
+void SetMainMenuItems(void)
+{
+ if (sub_8011C34() != -1) {
+ if (sub_8095324(1) == 0) {
+ if (sub_8095324(7) != 0) {
+ if (sub_803D0D8() != 0) {
+ // Revive Team
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ // Wonder Mail
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
+ }
+ else {
+ // Revive Team
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
+ }
+ }
+ else {
+ if (sub_803D0D8() != 0) {
+ // Continue
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ // Wonder Mail
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
+ }
+ else {
+ // Continue
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
+ }
+ }
+ }
+ else {
+ if (sub_803D0D8() != 0) {
+ // Awaiting Rescue
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ // Wonder Mail
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
+ }
+ else {
+ // Awaiting Rescue
+ // Delete Save Data
+ // Adventure Log
+ // Friend Rescue
+ // Trade Items
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
+ }
+ }
+ }
+ else
+ {
+ // New Game
+ // Adventure Log
+ SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
+ }
+}
+
+bool8 sub_80363E0(void)
+{
+ if(gUnknown_203B34C == NULL)
+ return FALSE;
+ if(gUnknown_203B34C->unk0 == 0xC)
+ return FALSE;
+ return TRUE;
+}
diff --git a/src/main_menu_1.c b/src/main_menu_1.c
deleted file mode 100644
index 668df86..0000000
--- a/src/main_menu_1.c
+++ /dev/null
@@ -1,216 +0,0 @@
-#include "global.h"
-#include "main_menu.h"
-#include "menu.h"
-#include "text.h"
-
-struct unkStruct_203B34C
-{
- // size: 0x1A8
- u32 unk0;
- u32 unk4;
- struct MenuItem *unk8; // Array of menu choices??
- u8 fillC[0x30 - 0xC];
- s16 menuIndex;
- u8 fill32[0x144 - 0x32];
- struct UnkTextStruct2 unk144[4];
- /* 0x1A4 */ u32 currMenuChoice;
-};
-
-extern struct unkStruct_203B34C *gUnknown_203B34C;
-extern u32 gUnknown_203B350;
-
-
-extern u32 gUnknown_80E59E0;
-extern u32 gUnknown_80E5A78;
-extern u32 gUnknown_80E5B34;
-extern u32 gUnknown_80E5BC4;
-extern u32 gUnknown_80E5CB4;
-extern u32 gUnknown_80E5A60;
-
-extern const struct MenuItem gUnknown_80E59F8[];
-extern const struct MenuItem gUnknown_80E5A90[];
-extern const struct MenuItem gUnknown_80E5AFC[];
-extern const struct MenuItem gUnknown_80E5B4C[];
-extern const struct MenuItem gUnknown_80E5B8C[];
-extern const struct MenuItem gUnknown_80E5BDC[];
-extern const struct MenuItem gUnknown_80E5C18[];
-extern const struct MenuItem gUnknown_80E5CCC[];
-extern const struct MenuItem gUnknown_80E5D0C[];
-extern const struct MenuItem gUnknown_80E5D48[];
-extern const struct MenuItem gUnknown_80E5DA0[];
-extern const struct MenuItem gUnknown_80E5DF0[];
-extern const struct MenuItem gUnknown_80E5E5C[];
-extern const struct MenuItem gUnknown_80E5EBC[];
-extern const struct MenuItem gUnknown_80E5F1C[];
-extern const struct MenuItem gUnknown_80E5F80[];
-extern const struct MenuItem gUnknown_80E5FCC[];
-extern const struct MenuItem gUnknown_80E6030[];
-
-extern u8 sub_803D0D8();
-extern s32 sub_8011C34();
-extern s32 sub_8095324(u32);
-extern void SetMenuItems(u32 *, struct UnkTextStruct2 *, u32, u32 *, const struct MenuItem *, u32, u32, u32);
-void SetMainMenuItems(void);
-extern bool8 SetMainMenuText();
-extern void sub_8035CF4(u32 *, u32, u32);
-extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
-
-bool8 SetMainMenuText(void)
-{
- u32 menuChoice;
- struct MenuItem *preload;
-
- // Have to load the pointer before the index
- preload = gUnknown_203B34C->unk8;
- menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action?
- if (gUnknown_203B34C->currMenuChoice == menuChoice) {
- return FALSE;
- }
-
- gUnknown_203B34C->currMenuChoice = menuChoice;
- sub_8035CC0(gUnknown_203B34C->unk144,2);
- sub_8035CC0(gUnknown_203B34C->unk144,3);
- switch(menuChoice) {
- case MENU_WIRELESS_COMMS:
- // Using wireless communications, you can go on an adventure to unknown worlds.
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
- break;
- case MENU_WONDER_MAIL:
- // Using passwords, you can receive Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
- break;
- case MENU_AWAITING_RESCUE:
- // You are awaiting resuce by a friend
- // You can give up waiting for rescue
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
- break;
- case MENU_NEW_GAME:
- // Start an entirely new adventure
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
- break;
- case MENU_CONTINUE:
- // Resume your adventure from where you last saved
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
- break;
- case MENU_DELETE_SAVE_PROMPT:
- // This will delete your saved game data.
- // Beware! This will delete it forever
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
- break;
- case MENU_ADVENTURE_LOG:
- // Check your career as an adventurer
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
- break;
- case MENU_FRIEND_RESCUE:
- // Using a Game Link cable or passwords, friends may rescue each other
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
- break;
- case MENU_TRADE_ITEMS:
- // Using a Game Link cable you can trade stored items with a friend
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
- break;
- case MENU_DUAL_SLOT:
- // Using Dual Slot function, you can receive teams from your friends
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
- break;
- case MENU_DEBUG:
- // This is the Debug Mode.
- // It won't be in the release version
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
- break;
- default:
- break;
- }
- return TRUE;
-}
-
-void sub_803623C(void)
-{
- sub_8035CC0(gUnknown_203B34C->unk144,1);
- SetMainMenuItems();
- gUnknown_203B34C->currMenuChoice = -1;
- if (SetMainMenuText()) {
- sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
- }
- sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
-}
-
-void SetMainMenuItems(void)
-{
- if (sub_8011C34() != -1) {
- if (sub_8095324(1) == 0) {
- if (sub_8095324(7) != 0) {
- if (sub_803D0D8() != 0) {
- // Revive Team
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- // Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
- }
- else {
- // Revive Team
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
- }
- }
- else {
- if (sub_803D0D8() != 0) {
- // Continue
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- // Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
- }
- else {
- // Continue
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
- }
- }
- }
- else {
- if (sub_803D0D8() != 0) {
- // Awaiting Rescue
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- // Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
- }
- else {
- // Awaiting Rescue
- // Delete Save Data
- // Adventure Log
- // Friend Rescue
- // Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
- }
- }
- }
- else
- {
- // New Game
- // Adventure Log
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
- }
-}
-
-bool8 sub_80363E0(void)
-{
- if(gUnknown_203B34C == NULL)
- return FALSE;
- if(gUnknown_203B34C->unk0 == 0xC)
- return FALSE;
- return TRUE;
-}
diff --git a/src/memory_mid.c b/src/memory_mid.c
index 1eb707c..51c927a 100644
--- a/src/memory_mid.c
+++ b/src/memory_mid.c
@@ -2,7 +2,7 @@
#include "memory.h"
extern u32 gUnknown_80B7F14;
-extern u32 gUnknown_80B7F20;
+extern const char gLocateSetErrorMessage[];
extern struct HeapDescriptor gMainHeapDescriptor;
extern s32 MemorySearchFromBack(struct HeapDescriptor *heap, s32, s32);
@@ -12,7 +12,7 @@ extern struct HeapDescriptor * _LocateSetFront(struct HeapDescriptor *, u32, u32
void DoFree(struct HeapDescriptor *, void *);
void *DoAlloc(struct HeapDescriptor *, s32, u32);
-void FatalError(u32 *, u32 *, ...) __attribute__((noreturn));
+void FatalError(u32 *, const char *, ...) __attribute__((noreturn));
s32 _LocateSet(struct HeapDescriptor *heap, s32 size, s32 group)
@@ -48,7 +48,7 @@ error:
// LocateSet [%p] buffer %8x size can't locate
// atb %02x grp %3d
FatalError(&gUnknown_80B7F14,
- &gUnknown_80B7F20,
+ gLocateSetErrorMessage,
heap,size,atb,group);
}
diff --git a/src/personality_test.c b/src/personality_test.c
index 2034b7b..d129d8c 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -56,7 +56,6 @@ extern struct UnkSaveStruct1 *gUnknown_203B46C;
extern const char gStarterReveal[];
extern const char gGenderText[];
extern struct MenuItem gGenderMenu[];
-extern const char gPartnerSelectionHeaderText;
extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS];
extern u8 gAvailablePokemonNames[0x50];
@@ -170,7 +169,8 @@ const struct UnkTextStruct2 gUnknown_80F42A8 =
NULL
};
-
+const char gPartnerSelectionHeaderText[] = _("Pokémon");
+const char personality_test_fill[] = "pksdir0";
u8 CreateTestTracker(void)
{
@@ -712,7 +712,7 @@ void RedrawPartnerSelectionMenu(void)
sub_800641C(gUnknown_203B404->unk54,1,1);
sub_8008C54(gUnknown_203B404->unk4C);
sub_80073B8(gUnknown_203B404->unk4C);
- xxx_call_draw_string(0xc, 0, &gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0);
+ xxx_call_draw_string(0xc, 0, gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0);
monCounter = 0;
while (monCounter < gUnknown_203B404->unk32) {
diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c
index 745d682..536c9d9 100644
--- a/src/thank_you_wonder_mail.c
+++ b/src/thank_you_wonder_mail.c
@@ -424,7 +424,7 @@ extern struct PokemonStruct *sub_808D33C(void);
extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
extern void sub_80922B4(u8 *, u8 *, u32);
-extern void sub_802F204(u8 *, u32);
+extern void sub_802F204(struct unkStruct_802F204 *, u32);
extern void sub_80151C0(u32, u8 *);
extern void xxx_call_start_bg_music(void);
extern void sub_803092C(void);
@@ -1615,23 +1615,23 @@ void UpdateThankYouMailText(void)
break;
case 0x22:
monName = GetMonSpecies(SPECIES_PELIPPER);
- strcpy(gUnknown_203B2C4->unk53C,monName);
- gUnknown_203B2C4->unk550 = 0x130;
- gUnknown_203B2C4->unk552 = 2;
- gUnknown_203B2C4->unk554 = 0;
+ strcpy(gUnknown_203B2C4->unk53C.clientName,monName); // 0x53C
+ gUnknown_203B2C4->unk53C.unk14 = SPECIES_PELIPPER; // 0x550
+ gUnknown_203B2C4->unk53C.unk16 = 2; // 0x552
+ gUnknown_203B2C4->unk53C.moneyReward = 0; // 0x554
uVar2 = sub_809539C(6,gUnknown_203B2C4->unk430);
puVar4 = sub_8095228(uVar2);
cVar1 = puVar4->unk20.itemIndex;
if (cVar1 != '\0')
- gUnknown_203B2C4->unk558 = cVar1;
+ gUnknown_203B2C4->unk53C.itemRewards[0] = cVar1; // unk558
else
- gUnknown_203B2C4->unk558 = 0;
- gUnknown_203B2C4->unk55B = 1;
- gUnknown_203B2C4->unk560 = sub_803C200(&puVar4->unk4, 0);
- gUnknown_203B2C4->unk559 = 0;
- gUnknown_203B2C4->unk55A = 0;
- gUnknown_203B2C4->unk55C = 0;
- sub_802F204(gUnknown_203B2C4->unk53C,0);
+ gUnknown_203B2C4->unk53C.itemRewards[0] = 0; // unk558
+ gUnknown_203B2C4->unk53C.numItems = 1; // unk55B
+ gUnknown_203B2C4->unk53C.teamRankPtsReward = sub_803C200(&puVar4->unk4, 0); // unk560
+ gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559
+ gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A
+ gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C
+ sub_802F204(&gUnknown_203B2C4->unk53C,0); // unk53C
break;
case COMMUNICATING_THANK_YOU_MAIL:
// Communicating..
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index 29cd2bc..cae3233 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -34,7 +34,7 @@ extern struct MenuItem gUnknown_80DDA48[];
extern s32 sub_8095190(void);
extern u32 sub_8095324(u32);
-extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
+extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern void nullsub_130(void);
extern void sub_8028348(void);
extern void ResetUnusedInputStruct();
@@ -52,7 +52,7 @@ extern void sub_803092C(void);
extern u32 sub_80154F0();
extern u32 sub_8039068(u32, u8 *r1, u8 *r0);
-extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
+extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, void *r5, u32);
extern void sub_8095274(u32);
extern void sub_80155F0();
extern void sub_80951BC(u8 *r0);
@@ -83,6 +83,621 @@ extern void sub_8099690(u32);
extern void sub_8031E10(void);
extern void sub_803084C(void);
extern void sub_8030DE4();
+extern u8 gUnknown_80DDAE4[];
+extern struct MenuItem gUnknown_80DDAA0[];
+extern struct MenuItem gUnknown_80DDA80[];
+extern struct MenuItem gUnknown_80DDAFC[];
+extern struct MenuItem gUnknown_80DDB60[];
+extern struct MenuItem gUnknown_80DDA64[];
+extern struct unkStruct_203B45C *gRecruitedPokemonRef;
+extern struct MenuItem gUnknown_80DDB24[];
+extern struct MenuItem gUnknown_80DD9EC[];
+extern u8 gUnknown_80DDACC[];
+extern struct MenuItem gUnknown_80DD970[];
+
+extern void nullsub_23(u32);
+extern s32 sub_8037D64(u32, void *, void *);
+extern s32 sub_80381F4(u32, void *, void *);
+extern void sub_8023868(u32, u32, u32, u32);
+extern void sub_80306A8(u32, u32, u32, u32);
+extern s32 sub_8037B28(u32);
+extern void sub_8011830(void);
+extern u32 sub_8095350();
+extern void sub_8031D70(u8, u32);
+extern void sub_80151C0(u32, u8 *);
+extern void xxx_call_start_bg_music(void);
+extern u32 sub_8023CE8(void);
+extern u32 sub_8030894(void);
+extern void sub_8030F58(u32);
+extern void sub_8023DA4(void);
+extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, u8 *, struct MenuItem *, u32, u32, u32);
+extern void sub_8029B34(void);
+extern void sub_8029AD8(void);
+extern void sub_8029AF4(void);
+extern void sub_8029A88(void);
+extern void sub_8029AB0(void);
+extern void sub_80297B8(void);
+extern void sub_80297D4(void);
+extern void sub_8029884(void);
+extern void sub_8029944(void);
+extern void sub_80299AC(void);
+extern void sub_80299D8(void);
+extern void sub_8029A6C(void);
+extern void sub_8028CE0(void);
+extern void sub_8028BF0(void);
+extern void sub_8029A18(void);
+extern void sub_80295A8(void);
+extern void sub_8029668(void);
+extern void sub_8029684(void);
+extern void sub_8029740(void);
+extern void sub_80295D8(void);
+extern void sub_802979C(void);
+extern void sub_8029358(void);
+extern void sub_8029374(void);
+extern void sub_802939C(void);
+extern void sub_8028F58(void);
+extern void sub_8028F30(void);
+extern void sub_8028F04(void);
+extern void sub_8028ED4(void);
+extern void sub_80293D8(void);
+extern void sub_80293F4(void);
+extern void sub_8028DE8(u32);
+extern void sub_8028EAC(void);
+extern void sub_802955C(void);
+extern void sub_80292A4(void);
+extern void sub_80292EC(void);
+extern void sub_802933C(void);
+extern void sub_802958C(void);
+extern void sub_8029208(void);
+extern void sub_8028E84(void);
+extern void sub_8028F80(void);
+extern void sub_8028FC0(void);
+extern void sub_8028FDC(void);
+extern void sub_8028E54(void);
+extern void sub_8028E24(void);
+extern void sub_8028E08(void);
+extern void sub_80290D4(void);
+extern void sub_80290F0(void);
+extern void sub_80291AC(void);
+extern void sub_8029044(void);
+extern void sub_8028CFC(void);
+extern void sub_8028D4C(void);
+extern void sub_8031E10(void);
+extern void sub_8023C60(void);
+extern void sub_803084C(void);
+extern void sub_80155F0(void);
+extern void sub_80310B4(void);
+extern void sub_8030DE4(void);
+extern void sub_802453C(void);
+
+
+
+u32 sub_8027F88(void)
+{
+ char *monName;
+ struct OpenedFile *faceFile;
+ s32 counter;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8);
+ MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0));
+ gUnknown_203B2C0->unk53C = 0;
+ gUnknown_203B2C0->unk218 = -1;
+ gUnknown_203B2C0->unk544 = -1;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
+ monName = GetMonSpecies(SPECIES_PELIPPER);
+ strcpy(gAvailablePokemonNames, monName);
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
+ gUnknown_203B2C0->faceFile = faceFile;
+ gUnknown_203B2C0->faceData = faceFile->data;
+ gUnknown_203B2C0->unk42C = 0;
+ gUnknown_203B2C0->unk42D = 0;
+ gUnknown_203B2C0->unk42E = 0;
+ gUnknown_203B2C0->unk428 = 2;
+ gUnknown_203B2C0->unk42A = 8;
+ for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
+ gUnknown_203B2C0->passwordBuffer[counter] = 0;
+ }
+ gUnknown_203B2C0->unk0 = 0x3D;
+ sub_8028B04(0); // Set initial state to 0?
+ return 1;
+}
+
+u32 sub_8028078(void)
+{
+
+ switch(gUnknown_203B2C0->state) {
+ case 0x3c:
+ sub_8029B34();
+ break;
+ case 0x3a:
+ sub_8029AD8();
+ break;
+ case 0x3b:
+ sub_8029AF4();
+ break;
+ case 0x38:
+ sub_8029A88();
+ break;
+ case 0x37:
+ sub_8029AB0();
+ break;
+ case 0x32:
+ sub_80297B8();
+ break;
+ case 0x33:
+ sub_80297D4();
+ break;
+ case 0x34:
+ sub_8029884();
+ break;
+ case 0x35:
+ sub_8029944();
+ break;
+ case 0x31:
+ sub_80299AC();
+ break;
+ case 0x36:
+ sub_80299D8();
+ break;
+ case 0x30:
+ sub_8029A6C();
+ break;
+ case 0x2e:
+ sub_8029A18();
+ break;
+ case 0x2d:
+ sub_80295A8();
+ break;
+ case 0x29:
+ sub_8029668();
+ break;
+ case 0x2b:
+ sub_8029684();
+ break;
+ case 0x2c:
+ sub_8029740();
+ break;
+ case 0x2a:
+ sub_80295D8();
+ break;
+ case 0x2f:
+ sub_802979C();
+ break;
+ case 9:
+ sub_8029358();
+ break;
+ case 0x23:
+ sub_8029374();
+ break;
+ case 0x24:
+ sub_802939C();
+ break;
+ case 0x26:
+ sub_80293D8();
+ break;
+ case 0x27:
+ sub_80293F4();
+ break;
+ case 0x28:
+ sub_802955C();
+ break;
+ case 4:
+ sub_80292A4();
+ break;
+ case 6:
+ sub_80292EC();
+ break;
+ case 7:
+ sub_802933C();
+ break;
+ case 5:
+ sub_802958C();
+ break;
+ case 8:
+ sub_8029208();
+ break;
+ case 0x1a:
+ sub_8028DE8(1);
+ break;
+ case 0x1b:
+ sub_8028F80();
+ break;
+ case 0x1c:
+ case 0x1d:
+ sub_8028FC0();
+ break;
+ case 0x22:
+ sub_8028FDC();
+ break;
+ case 0x1e:
+ sub_80290D4();
+ break;
+ case 0x20:
+ sub_80290F0();
+ break;
+ case 0x21:
+ sub_80291AC();
+ break;
+ case 0x1f:
+ sub_8029044();
+ break;
+ case 10:
+ sub_8028CFC();
+ break;
+ case 0xb:
+ sub_8028D4C();
+ break;
+ case 0xd:
+ case 0xf:
+ sub_8028DE8(10);
+ break;
+ case 0x11:
+ sub_8028E08();
+ break;
+ case 0xc:
+ case 0xe:
+ case 0x10:
+ sub_8028DE8(0x19);
+ break;
+ case 0x12:
+ sub_8028E24();
+ break;
+ case 0x13:
+ sub_8028E54();
+ break;
+ case 0x17:
+ sub_8028E84();
+ break;
+ case 0x18:
+ sub_8028EAC();
+ break;
+ case 0x19:
+ sub_8028ED4();
+ break;
+ case 0x14:
+ sub_8028F04();
+ break;
+ case 0x15:
+ sub_8028F30();
+ break;
+ case 0x16:
+ sub_8028F58();
+ break;
+ case 0:
+ case 1:
+ sub_8028BF0();
+ break;
+ case 2:
+ case 0x25:
+ case 0x39:
+ sub_8028CE0();
+ break;
+ case 3:
+ return 3;
+ }
+ return 0;
+}
+
+s32 sub_80282DC(u8 *r0)
+{
+ *r0 = gUnknown_203B2C0->unk218;
+ return gUnknown_203B2C0->unk53C;
+}
+
+void sub_80282FC(void)
+{
+ if (gUnknown_203B2C0 != NULL) {
+ CloseFile(gUnknown_203B2C0->faceFile);
+ MemoryFree(gUnknown_203B2C0);
+ gUnknown_203B2C0 = NULL;
+ sub_8031E10();
+ sub_8023C60();
+ sub_803084C();
+ sub_80155F0();
+ sub_80310B4();
+ sub_8030DE4();
+ sub_802453C();
+ }
+}
+
+void nullsub_130(void)
+{
+}
+
+void sub_8028348(void)
+{
+ s32 linkError;
+ switch(gUnknown_203B2C0->state)
+ {
+ case 0x3B:
+ sub_8006518(gUnknown_203B2C0->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ sub_8031D70(gUnknown_203B2C0->unk218, 0);
+ break;
+ case 0x3C:
+ sub_80141B4(gUnknown_80DDBA8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x3A:
+ sub_80141B4(gUnknown_80DDBFC, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x38:
+ sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x37:
+ switch(gUnknown_203B2C0->unk534)
+ {
+ // 0x0 - 0x9 included here too...
+ case 0x10:
+ case 0xF:
+ case 0xD:
+ sub_80141B4(gUnknown_80DDC70, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0xE:
+ break;
+ }
+ break;
+ case 0x39:
+ sub_80141B4(gUnknown_80DDC30, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x32:
+ sub_80141B4(gUnknown_80DDCBC, 0, 0,0x101);
+ break;
+ case 0x33:
+ if(sub_8023CE8() != 0)
+ {
+ break;
+ }
+ else
+ {
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ sub_8023868(3, 0, 0, 9);
+ }
+ break;
+ case 0x34:
+ sub_8006518(gUnknown_203B2C0->unk35C);
+ SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0);
+ sub_8023DA4();
+ sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1);
+ break;
+ case 0x31:
+ sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x36:
+ sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x2D:
+ sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x29:
+ sub_80141B4(gUnknown_80DDDD8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x2A:
+ if(sub_8030894() != 0)
+ {
+ break;
+ }
+ else
+ {
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ sub_80306A8(4, 0, 0, 6);
+ }
+ break;
+ case 0x2F:
+ sub_80141B4(gUnknown_80DDE20, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x30:
+ sub_80141B4(gUnknown_80DDE58, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x2E:
+ sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 9:
+ sub_80141B4(gUnknown_80DDF2C, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 4:
+ sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 5:
+ nullsub_23(0);
+ sub_80141B4(gUnknown_80DE01C, 0 , 0, 0);
+ break;
+ case 6:
+ gUnknown_203B2C0->linkError = 0;
+ sub_8011830();
+ linkError = sub_8037B28(gUnknown_203B2C0->unk40);
+ gUnknown_203B2C0->linkError = linkError;
+ if(linkError == 0)
+ {
+ switch(gUnknown_203B2C0->unk40)
+ {
+ case 3:
+ MemoryFill8(gUnknown_203B2C0->unk48, 0, 0x30);
+ MemoryFill8(gUnknown_203B2C0->unk78, 0, 0x30);
+ gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, gUnknown_203B2C0->unk48, gUnknown_203B2C0->unk78);
+ break;
+ case 4:
+ MemoryFill8((u8 *)&gUnknown_203B2C0->unkA8, 0, 0x88);
+ MemoryFill8(&gUnknown_203B2C0->unk130, 0, 0x88);
+ gUnknown_203B2C0->unkD8.speciesNum = linkError;
+ gUnknown_203B2C0->unk168 = linkError;
+ gUnknown_203B2C0->unkA8 = *sub_8095228(gUnknown_203B2C0->unk218);
+ if(gUnknown_203B2C0->unk544 != -1)
+ {
+ gUnknown_203B2C0->unkD8 = gRecruitedPokemonRef->pokemon[gUnknown_203B2C0->unk544];
+ }
+ gUnknown_203B2C0->linkError = sub_8037D64(gUnknown_203B2C0->unk40, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130);
+ break;
+ }
+ if(gUnknown_203B2C0->linkError == 0)
+ {
+ switch(gUnknown_203B2C0->unk40)
+ {
+ case 3:
+ gUnknown_203B2C0->linkError = sub_80381F4(3, gUnknown_203B2C0->unk48, gUnknown_203B2C0->unk78);
+ break;
+ case 4:
+ gUnknown_203B2C0->linkError = sub_80381F4(4, &gUnknown_203B2C0->unkA8, &gUnknown_203B2C0->unk130);
+ break;
+ }
+ }
+ xxx_call_start_bg_music();
+ }
+ else
+ {
+ xxx_call_start_bg_music();
+ }
+ break;
+ case 0x23:
+ switch(gUnknown_203B2C0->unk534)
+ {
+ // 0x0 - 0x9 included here too...
+ case 0x10:
+ case 0xF:
+ case 0xD:
+ sub_80141B4(gUnknown_80DE06C, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0xE:
+ break;
+ }
+ break;
+ case 0x25:
+ sub_80141B4(gUnknown_80DE0C0, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x26:
+ sub_80141B4(gUnknown_80DE124, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x27:
+ sub_8006518(gUnknown_203B2C0->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ sub_80151C0(4, gUnknown_203B2C0->passwordBuffer);
+ break;
+ case 8:
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 0:
+ sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 2:
+ sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ }
+ break;
+ case 0x1A:
+ sub_80141B4(gUnknown_80DE1E4, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x1B:
+ sub_80141B4(gUnknown_80DE280, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x1C:
+ sub_80141B4(gUnknown_80DE2B0, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x1D:
+ sub_80141B4(gUnknown_80DE368, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x22:
+ sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x1E:
+ sub_80141B4(gUnknown_80DE430, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x1F:
+ if(sub_8030894() != 0)
+ {
+ break;
+ }
+ else
+ {
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ sub_80306A8(2, 0, 0, 6);
+ }
+ break;
+ case 0x20:
+ case 0x2B:
+ sub_8006518(gUnknown_203B2C0->unk35C);
+ SetMenuItems(&gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0);
+ sub_803092C();
+ sub_8035CF4(&gUnknown_203B2C0->unk21C, 3, 1);
+ break;
+ case 0xA:
+ gUnknown_203B2C0->unk540 = sub_8095350();
+ switch((u32)gUnknown_203B2C0->unk538)
+ {
+ case 5:
+ sub_8030F58(2);
+ break;
+ case 6:
+ sub_8030F58(4);
+ break;
+ default:
+ case 7:
+ break;
+ }
+ break;
+ case 0xB:
+ sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0xD:
+ sub_80141B4(gUnknown_80DE4B8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0xC:
+ sub_80141B4(gUnknown_80DE4F0, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0xF:
+ sub_80141B4(gUnknown_80DE524, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0xE:
+ sub_80141B4(gUnknown_80DE614, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x11:
+ sub_80141B4(gUnknown_80DE648, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x10:
+ sub_80141B4(gUnknown_80DE694, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x12:
+ sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x13:
+ sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x17:
+ sub_80141B4(gUnknown_80DE7B8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x18:
+ sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x19:
+ sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 0x14:
+ sub_80141B4(gUnknown_80DE830, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x15:
+ sub_80141B4(gUnknown_80DE864, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0x16:
+ sub_80141B4(gUnknown_80DE7E8, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 0:
+ sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 1:
+ sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC);
+ break;
+ case 2:
+ sub_80141B4(gUnknown_80DE93C, 0, &gUnknown_203B2C0->faceFile,0x10d);
+ break;
+ case 3:
+ break;
+ }
+}
void sub_8028B04(u32 r0)
@@ -101,43 +716,43 @@ void sub_8028B1C(u32 r0)
break;
case 1:
case 2:
- sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 3:
- sub_80141B4(gWonderMailNumGBAsText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 4:
- sub_80141B4(gWonderMailWrongModeText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 5:
- sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 6:
- sub_80141B4(gWonderMailStorageFullText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 7:
- sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 8:
break;
case 9:
- sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 10:
break;
case 11:
- sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 12:
break;
case 13:
- sub_80141B4(gWonderMailNoRoomText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 14:
- sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 15:
- sub_80141B4(gWonderMailFriendErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
default:
break;
@@ -774,22 +1389,22 @@ void sub_80293F4(void)
switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp.unk0))
{
case 17:
- sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
+ sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC);
sub_8028B04(40);
break;
case 18:
- sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
case 7:
- sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
+ sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
case 22:
sub_8095274(temp.unk10);
temp.unk0 = 2; // Some sort of Ack?
sub_80951BC(&temp.unk0);
- sub_80141B4(gWonderMailAOKMailReceivedText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x101);
+ sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101);
sub_8028B04(35);
break;
case 23:
diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c
index 285c0d0..21074d6 100644
--- a/src/wonder_mail_2.c
+++ b/src/wonder_mail_2.c
@@ -25,19 +25,7 @@ struct unkStruct_203B2C8
/* 0x13 */ u8 unk13;
/* 0x14 */ u8 teamName[4]; // Figure out size of this buffer
u8 fill18[0x114 - 0x18];
- u8 speciesName[0xA]; // holds species name
- u8 fill118[0x128 - 0x11E];
- u16 unk128;
- u8 unk12A;
- u8 unk12B;
- u32 unk12C;
- u8 unk130;
- u8 unk131;
- u8 unk132;
- u8 unk133;
- u8 unk134;
- u8 fill135[0x3];
- u32 unk138;
+ struct unkStruct_802F204 unk114;
u32 fill13C;
};
@@ -107,7 +95,7 @@ extern void sub_802B5FC(void);
extern void sub_802B624(void);
void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
-extern void sub_802F204(u8 *, u32);
+extern void sub_802F204(struct unkStruct_802F204 *, u32);
extern void sub_803C37C(u8 *, u32, u8 *);
extern u32 sub_803C200(u8 *, u32);
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
@@ -233,19 +221,19 @@ void sub_802B3E0(void)
break;
case 1:
monName = GetMonSpecies(SPECIES_PELIPPER);
- strcpy(gUnknown_203B2C8->speciesName, monName);
- gUnknown_203B2C8->unk128 = 0x130;
- gUnknown_203B2C8->unk12A = 2;
- gUnknown_203B2C8->unk12C = 0;
+ strcpy(gUnknown_203B2C8->unk114.clientName, monName);
+ gUnknown_203B2C8->unk114.unk14 = SPECIES_PELIPPER;
+ gUnknown_203B2C8->unk114.unk16 = 2;
+ gUnknown_203B2C8->unk114.moneyReward = 0;
sub_8097790();
iVar3 = sub_8095228(gUnknown_203B2C8->unk1);
- sub_803C37C(&iVar3->unk4, 0, &gUnknown_203B2C8->unk130);
- gUnknown_203B2C8->unk138 = sub_803C200(&iVar3->unk4, 0);
- gUnknown_203B2C8->unk131 = 0;
- gUnknown_203B2C8->unk132 = 0;
- gUnknown_203B2C8->unk133 = 10;
- gUnknown_203B2C8->unk134 = 0;
- sub_802F204(gUnknown_203B2C8->speciesName, 0);
+ sub_803C37C(&iVar3->unk4, 0, gUnknown_203B2C8->unk114.itemRewards);
+ gUnknown_203B2C8->unk114.teamRankPtsReward = sub_803C200(&iVar3->unk4, 0);
+ gUnknown_203B2C8->unk114.itemRewards[1] = 0;
+ gUnknown_203B2C8->unk114.itemRewards[2] = 0;
+ gUnknown_203B2C8->unk114.numItems = 10;
+ gUnknown_203B2C8->unk114.friendAreaReward = 0;
+ sub_802F204(&gUnknown_203B2C8->unk114, 0);
break;
case 2:
// I hope you will keep on rescuing your friends
diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c
index e318d26..6cc1e96 100644
--- a/src/wonder_mail_3.c
+++ b/src/wonder_mail_3.c
@@ -3,6 +3,15 @@
#include "text.h"
#include "input.h"
#include "menu.h"
+#include "constants/dungeon.h"
+#include "wonder_mail.h"
+
+struct unkSubStruct_203B2F8
+{
+ struct WonderMail wonderMail;
+ u8 *unk14;
+ u8 *unk18;
+};
struct unkStruct_203B2F8
{
@@ -13,12 +22,21 @@ struct unkStruct_203B2F8
u8 unk9;
u8 unkA;
u8 unkB;
- u32 unkC;
- u8 fill10[0x6C - 0x10];
+ struct unkSubStruct_203B2F8 *unkC;
+ u8 unk10;
+ u8 fill11[0x14 - 0x11];
+ u32 unk14;
+ u8 fill18[0x58 - 0x18];
+ u8 unk58;
+ u8 fill59[0x64 - 0x59];
+ u8 *unk64;
+ u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
- u8 fill78[0x118 - 0x78];
+ u8 unk78[0xC8 - 0x78];
+ u8 unkC8[4];
+ u8 fillCC[0x118 - 0xCC];
struct MenuItem unk118[8];
struct MenuItem unk158[8];
u16 unk198[8];
@@ -47,8 +65,44 @@ extern void sub_802DA84();
extern void sub_802D1B8();
extern void sub_802D2A8();
+extern u8 gUnknown_80E0010[];
+extern u8 gUnknown_80DFFA4[];
+extern u8 gUnknown_80DFF2C[];
+extern u8 gUnknown_80DFED0[];
+extern u8 gUnknown_80DFE9C[];
+extern u8 gUnknown_80DFE4C[];
+extern u8 gUnknown_80E0108[];
+extern u8 gUnknown_80E0094[];
+extern u8 gUnknown_80E0074[];
+
+extern u8 sub_80968B0(void *);
+extern u8 sub_8096F50(void *);
+extern u8 sub_802DAA8(void);
+extern u8 sub_802DADC(void);
+extern u8 *sub_8096DD8(void);
+extern u8 sub_8096C08(u8 *);
+extern void sub_802C750(void);
+extern s32 sub_80969AC(void);
+extern void sub_802D1A0(u32);
+extern void sub_8012EA4(u8 *, u32);
+extern void* sub_8096AB4(u8);
+extern void sub_803B35C(void *, u32*);
+extern void sub_802DE84(u32 *);
+extern void sub_802D73C(void);
+extern void sub_802C640(u32);
+extern void sub_802C4C8(u32, u32, u32);
+extern void sub_8097418(u32, u32);
+extern void sub_802D690(void);
+extern void sub_8096C80(void);
+extern void sub_8096D24(void);
+extern void sub_80141B4(u8 *, u32, u32, u32);
+extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32);
+extern u8 *sub_8096DE8(void);
+extern void sub_8096A78(struct unkSubStruct_203B2F8 *);
+extern void sub_8014248(const char *text, u32, u32, struct MenuItem *r0, u32, u32, u32, u32, u32);
-u32 sub_802D098(u32 param_1)
+
+u32 sub_802D098(struct unkSubStruct_203B2F8 *param_1)
{
gUnknown_203B2F8 = MemoryAlloc(0x208,8);
gUnknown_203B2F8->unk6C = 0;
@@ -149,3 +203,133 @@ void sub_802D1B8(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2F8->unk1A8, 1, 1);
}
+
+void sub_802D2A8(void)
+{
+
+ switch(gUnknown_203B2F8->state) {
+ case 0:
+ if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) {
+ sub_802D1A0(3);
+ }
+ else
+ {
+ if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) {
+ sub_802D1A0(4);
+ }
+ else
+ {
+ if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) {
+ if (sub_802DAA8() != 0) {
+ sub_802D1A0(9);
+ }
+ else {
+ sub_802D1A0(5);
+ }
+ }
+ else {
+ if (sub_80969AC() >= 8) {
+ if (sub_802DADC() != 0) {
+ sub_802D1A0(10);
+ }
+ else {
+ sub_802D1A0(6);
+ }
+ }
+ else
+ {
+ sub_802D1A0(8);
+ }
+ }
+ }
+ }
+ break;
+ case 1:
+ sub_802D73C();
+ sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0);
+ break;
+ case 3:
+ gUnknown_203B2F8->unk4 = 2;
+ sub_80141B4(gUnknown_80DFE9C,0,0,0x101);
+ break;
+ case 4:
+ gUnknown_203B2F8->unk4 = 2;
+ sub_80141B4(gUnknown_80DFED0,0,0,0x101);
+ break;
+ case 5:
+ gUnknown_203B2F8->unk4 = 2;
+ sub_80141B4(gUnknown_80DFF2C,0,0,0x101);
+ break;
+ case 6:
+ gUnknown_203B2F8->unk4 = 2;
+ sub_80141B4(gUnknown_80DFFA4,0,0,0x101);
+ break;
+ case 7:
+ gUnknown_203B2F8->unk4 = 0xc;
+ sub_80141B4(gUnknown_80E0010,0,0,0x101);
+ break;
+ case 8:
+ gUnknown_203B2F8->unk8 = 1;
+ sub_8096A78(gUnknown_203B2F8->unkC);
+ sub_8096C80();
+ sub_8096D24();
+ if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) {
+ MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28);
+ MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78);
+ }
+ switch(gUnknown_203B2F8->unkC->wonderMail.dungeon)
+ {
+ // NOTE: subtract 1 from each of the case as the input??
+ case DUNGEON_ODDITY_CAVE: // 0x2B
+ sub_8097418(0x2A, 1);
+ break;
+ case DUNGEON_REMAINS_ISLAND:
+ sub_8097418(0x2B, 1);
+ break;
+ case DUNGEON_MARVELOUS_SEA:
+ sub_8097418(0x2C, 1);
+ break;
+ case DUNGEON_FANTASY_STRAIT: // 0x2E
+ sub_8097418(0x2D, 1);
+ break;
+ }
+ gUnknown_203B2F8->unk4 = 2;
+ sub_80141B4(gUnknown_80E0074,0,0,0x101);
+ break;
+ case 9:
+ sub_802D690();
+ sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0);
+ break;
+ case 10:
+ gUnknown_203B2F8->unk4 = 0xb;
+ sub_80141B4(gUnknown_80E0108,0,0,0x101);
+ break;
+ case 0xb:
+ sub_802C4C8(0,0,4);
+ break;
+ case 0xc:
+ sub_802C640(1);
+ break;
+ case 0xd:
+ sub_802C750();
+ sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198,
+ gUnknown_203B2F8->unk6C,2);
+ break;
+ case 0xe:
+ sub_802C750();
+ sub_8012EA4(gUnknown_203B2F8->unk78,0);
+ sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3);
+ break;
+ case 0xf:
+ sub_803B35C(sub_8096AB4(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14);
+ gUnknown_203B2F8->unk14 = 3;
+ sub_802DE84(&gUnknown_203B2F8->unk14);
+ break;
+ case 0x10:
+ sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14);
+ gUnknown_203B2F8->unk14 = 3;
+ gUnknown_203B2F8->unk58 = 0;
+ gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18;
+ sub_802DE84(&gUnknown_203B2F8->unk14);
+ }
+}
diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c
new file mode 100644
index 0000000..5661d44
--- /dev/null
+++ b/src/wonder_mail_3_mid.c
@@ -0,0 +1,772 @@
+#include "global.h"
+#include "memory.h"
+#include "text.h"
+#include "input.h"
+#include "wonder_mail.h"
+#include "menu.h"
+#include "pokemon.h"
+#include "rescue_team_info.h"
+#include "friend_area.h"
+#include "item.h"
+
+struct unkStruct_803B344
+{
+ // size: 0xB4
+ struct WonderMail unk0;
+ u8* unk14;
+ u8* unk18;
+ u8 fill1C[0x3C - 0x1C];
+ u8 unk3C[0x78];
+};
+
+extern struct unkStruct_803B344 *sub_803B344(u8);
+
+struct unkStruct_203B30C
+{
+ // size: 0x150
+ s32 state;
+ u8 unk4;
+ u8 unk5[3];
+ u32 unk8;
+ u8 fillC[0x4C - 0xC];
+ u8 unk4C;
+ u8 fill4D[0x58 - 0x4D];
+ u8 *unk58;
+ u32 unk5C;
+ u32 unk60;
+ u8 fill64[0xB0 - 0x64];
+ struct MenuItem unkB0[8];
+ struct UnkTextStruct2 unkF0[4];
+};
+extern struct unkStruct_203B30C *gUnknown_203B30C;
+
+struct unkStruct_203B310
+{
+ // size: 0x84
+ /* 0x0 */ u32 state;
+ u32 unk4;
+ u8 unk8;
+ /* 0x9 */ u8 currTeamRank; // team rank
+ u8 unkA;
+ u8 unkB;
+ /* 0xC */ s32 itemRewardIndex;
+ struct unkStruct_802F204 *unk10;
+ /* 0x14 */ struct OpenedFile *faceFile;
+ /* 0x18 */ u8 *faceData;
+ s16 unk1C;
+ s16 unk1E;
+ u8 unk20;
+ u8 unk21;
+ u8 unk22;
+ struct UnkTextStruct2 unk24[4];
+};
+extern struct unkStruct_203B310 *gUnknown_203B310;
+
+// TODO: port to ItemSlot
+struct ItemSlot_Alt
+{
+ // OG struct
+ // u8 itemFlags
+ // u8 numItems
+ // u8 itemIndex
+ union temp {
+ u8 itemFlags;
+ u8 numItems;
+ u8 itemIndex;
+ u32 full_bits;
+ } temp;
+};
+
+struct unkStruct_203B314
+{
+ // size: 0x15C
+ s16 unk0[2];
+ u8 fill4[0xB8 - 0x4];
+ u8 unkB8;
+ u8 unkB9;
+ u8 unkBA;
+ u8 unkBB;
+ u32 unkBC;
+ u8 fillC0[0xD4 - 0xC0];
+ s16 unkD4;
+ s16 unkD6;
+ s16 unkD8;
+ s16 unkDA;
+ s16 unkDC;
+ s16 unkDE;
+ u8 fillDF[0xF0 - 0xE0];
+ u32 unkF0;
+ struct UnkTextStruct2 *unkF4;
+ struct UnkTextStruct2 unkF8[4];
+ u8 unk158[4];
+};
+
+extern struct unkStruct_203B314 *gUnknown_203B314;
+extern struct UnkTextStruct2 gUnknown_80E072C;
+extern struct UnkTextStruct2 gUnknown_80E0714;
+extern struct UnkTextStruct2 gUnknown_80E06FC;
+
+extern u8 sub_802FCF0(u32);
+extern void sub_802F9C0(void);
+extern void sub_802FA50(void);
+extern void sub_8012D08(struct UnkTextStruct2 *, u32);
+extern void sub_8013818(u32 *, u32, u32, u32);
+extern u32 sub_802FBF4(void);
+extern void sub_8013878(u32 *, s32);
+
+extern void AddMenuCursorSprite(u32 *);
+extern void sub_8013984(u32 *);
+extern void sub_802F2E8(u32);
+extern void sub_802EFEC(u32);
+extern void sub_802F148(void);
+extern void sub_802F184(void);
+extern void sub_802F1E8(void);
+extern void sub_802F004();
+extern void sub_802F088();
+extern void sub_801B72C(void);
+extern u32 sub_801B6AC(void);
+extern void sub_802F108(void);
+extern s32 sub_80144A4(s32 *);
+extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
+extern void sub_803B35C(void *, u32 *);
+extern void sub_802DE84(u32 *);
+extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
+extern void sub_802CDD4(u32);
+extern void sub_802CED8(u32);
+extern void sub_802CFD0(void);
+extern u8 sub_802CEBC(void);
+extern u32 sub_802CE5C(u32);
+extern void sub_802CF14(void);
+extern u8 sub_8012FD8(u32 *r0);
+extern void sub_8013114(u32 *, s32 *);
+extern u32 sub_802DEE0(void);
+extern void sub_802DF24(void);
+extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon);
+extern struct PokemonStruct *sub_808D33C(void);
+extern void sub_802F6FC(void);
+extern void sub_802F718(void);
+extern u8 sub_80138B8(u32 *, u32);
+extern void sub_8013660(u32 *);
+extern u32 GetKeyPress(u32 *);
+extern void PlayMenuSoundEffect(u32);
+extern void sub_802F300(void);
+extern void PlaySound(u32);
+extern s32 sub_808D544(u32);
+extern void sub_80141B4(u8 *, u32, struct OpenedFile **, u32);
+extern u32 sub_801B60C(u32, u8, u8);
+extern void sub_8092578(u8 *buffer, u8 index, u8 r2);
+void HandleMissionReward(void);
+
+extern struct UnkTextStruct2 gUnknown_80E03C4;
+extern struct UnkTextStruct2 gUnknown_80E03F4;
+extern struct UnkTextStruct2 gUnknown_80E041C;
+extern u8 gUnknown_80E0434[];
+extern u8 gUnknown_80E045C[];
+extern u8 gUnknown_80E0484[];
+extern u8 gUnknown_80E04F4[];
+extern u8 gUnknown_80E06A8[];
+extern u8 gUnknown_80E0670[];
+extern u8 gUnknown_80E05FC[];
+extern u8 gUnknown_80E04B4[];
+extern u8 gUnknown_80E05C0[];
+extern u8 gUnknown_80E0640[];
+
+extern u8 gUnknown_202E038[];
+extern u8 gUnknown_202E088[];
+extern u8 gUnknown_202E628[];
+extern u8 gUnknown_202DEA8[];
+extern u8 gUnknown_202E5D8[];
+extern u8 gAvailablePokemonNames[];
+extern u32 gUnknown_202DE30;
+extern const char gUnknown_80E040C[];
+extern const char *gUnknown_80D4970[];
+
+
+
+u32 sub_802EF48(void)
+{
+ gUnknown_203B30C = MemoryAlloc(sizeof(struct unkStruct_203B30C), 8);
+ sub_802EFEC(0);
+ return 1;
+}
+
+u32 sub_802EF6C(void)
+{
+ switch(gUnknown_203B30C->state)
+ {
+ case 0:
+ case 1:
+ sub_802F148();
+ break;
+ case 2:
+ sub_802F184();
+ break;
+ case 3:
+ sub_802F1E8();
+ break;
+ case 4:
+ return 3;
+ case 5:
+ default:
+ return 2;
+ }
+ return 0;
+}
+
+u8 sub_802EFC4(void)
+{
+ return gUnknown_203B30C->unk4;
+}
+
+void sub_802EFD0(void)
+{
+ if(gUnknown_203B30C != NULL)
+ {
+ MemoryFree(gUnknown_203B30C);
+ gUnknown_203B30C = NULL;
+ }
+}
+
+void sub_802EFEC(u32 newState)
+{
+ gUnknown_203B30C->state = newState;
+ sub_802F004();
+ sub_802F088();
+}
+
+void sub_802F004(void)
+{
+ s32 iVar3;
+
+ sub_8006518(gUnknown_203B30C->unkF0);
+ switch(gUnknown_203B30C->state)
+ {
+ case 2:
+ sub_802F108();
+ gUnknown_203B30C->unkF0[2] = gUnknown_80E03F4;
+ sub_8012CAC(&gUnknown_203B30C->unkF0[2], gUnknown_203B30C->unkB0);
+ break;
+ default:
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ {
+ gUnknown_203B30C->unkF0[iVar3] = gUnknown_80E03C4;
+ }
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B30C->unkF0, 1, 1);
+}
+
+void sub_802F088(void)
+{
+ struct unkStruct_803B344 *temp;
+
+ switch(gUnknown_203B30C->state)
+ {
+ case 0:
+ sub_802CDD4(0);
+ break;
+ case 1:
+ sub_802CED8(1);
+ break;
+ case 2:
+ sub_802CFD0();
+ sub_8012D60(&gUnknown_203B30C->unk60, gUnknown_203B30C->unkB0, 0, 0, 3, 2);
+ break;
+ case 3:
+ temp = sub_803B344(gUnknown_203B30C->unk4);
+ sub_803B35C(temp, &gUnknown_203B30C->unk8);
+ gUnknown_203B30C->unk8 = 3;
+ gUnknown_203B30C->unk4C = 0;
+ gUnknown_203B30C->unk58 = temp->unk18;
+ sub_802DE84(&gUnknown_203B30C->unk8);
+ }
+}
+
+void sub_802F108(void)
+{
+ struct unkStruct_203B30C *preload;
+ const char *blankText;
+ s32 action_1;
+
+ preload = gUnknown_203B30C;
+ blankText = NULL;
+ preload->unkB0[0].text = gUnknown_80E040C;
+ preload->unkB0[0].menuAction = 2;
+ action_1 = 1;
+ preload->unkB0[1].text = *gUnknown_80D4970;
+ preload->unkB0[1].menuAction = 3;
+ preload->unkB0[2].text = blankText;
+ preload->unkB0[2].menuAction = action_1;
+}
+
+void sub_802F148(void)
+{
+ switch(sub_802CE5C(1))
+ {
+ case 0:
+ case 1:
+ break;
+ case 3:
+ gUnknown_203B30C->unk4 = sub_802CEBC();
+ sub_802EFEC(2);
+ break;
+ case 2:
+ sub_802CF14();
+ sub_802EFEC(5);
+ break;
+ }
+}
+
+void sub_802F184(void)
+{
+ s32 menuAction;
+
+ menuAction = 0;
+ sub_802CE5C(0);
+
+ if (sub_8012FD8(&gUnknown_203B30C->unk60) == 0) {
+ sub_8013114(&gUnknown_203B30C->unk60, &menuAction);
+ }
+
+ switch(menuAction)
+ {
+ case 2:
+ sub_802CF14();
+ sub_802EFEC(4);
+ break;
+ case 3:
+ sub_802EFEC(3);
+ break;
+ case 1:
+ sub_802EFEC(1);
+ break;
+ }
+}
+
+void sub_802F1E8(void)
+{
+ switch(sub_802DEE0())
+ {
+ case 2:
+ case 3:
+ sub_802DF24();
+ sub_802EFEC(1);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+
+
+u32 sub_802F204(struct unkStruct_802F204 *r0, u8 r1)
+{
+ struct unkStruct_203B310 *preload;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0, 1, 1);
+ gUnknown_203B310 = MemoryAlloc(sizeof(struct unkStruct_203B310), 8);
+ gUnknown_203B310->unk10 = r0;
+ gUnknown_203B310->itemRewardIndex = 0;
+ gUnknown_203B310->unk8 = r1;
+
+ // NOTE: dumb var to get correct ordering
+ preload = gUnknown_203B310;
+ strcpy(gUnknown_202E5D8, preload->unk10->clientName);
+ sub_808DA34(gAvailablePokemonNames, sub_808D33C());
+
+ gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14);
+ gUnknown_203B310->faceData = NULL;
+
+ gUnknown_203B310->unk20 = 0;
+ gUnknown_203B310->unk21 = 0;
+ gUnknown_203B310->unk22 = 0;
+ gUnknown_203B310->unk1C = 2;
+ gUnknown_203B310->unk1E = 8;
+
+ if(gUnknown_203B310->faceFile != NULL)
+ {
+ gUnknown_203B310->faceData = gUnknown_203B310->faceFile->data;
+ }
+
+ sub_802F2E8(0);
+ return 1;
+}
+
+u32 sub_802F298(void)
+{
+ switch(gUnknown_203B310->state)
+ {
+ case 9:
+ return 3;
+ case 5:
+ sub_802F6FC();
+ return 0;
+ default:
+ sub_802F718();
+ return 0;
+ }
+}
+
+void sub_802F2C0(void)
+{
+ if(gUnknown_203B310 != NULL)
+ {
+ if(gUnknown_203B310->faceFile != 0)
+ CloseFile(gUnknown_203B310->faceFile);
+ MemoryFree(gUnknown_203B310);
+ gUnknown_203B310 = NULL;
+ }
+}
+
+void sub_802F2E8(u32 newState)
+{
+ gUnknown_203B310->state = newState;
+ sub_802F300();
+ HandleMissionReward();
+}
+
+void sub_802F300(void)
+{
+ s32 iVar3;
+ switch(gUnknown_203B310->state)
+ {
+ case 0:
+ sub_8006518(gUnknown_203B310->unk24);
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ {
+ gUnknown_203B310->unk24[iVar3] = gUnknown_80E041C;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B310->unk24, 1, 1);
+ default:
+ break;
+ }
+}
+
+void HandleMissionReward(void)
+{
+ int moneyReward;
+ const char *rankString;
+ u8 uVar7;
+ struct unkStruct_8090F58 local_20;
+ struct ItemSlot_Alt local_14;
+ u32 numItems;
+ u32 index_cast;
+ u32 index_cast2;
+
+ switch(gUnknown_203B310->state) {
+ case 0:
+ // Reward intro..
+ moneyReward = gUnknown_203B310->unk10->moneyReward;
+ if (moneyReward == 0) {
+ sub_802F2E8(2);
+ }
+ else {
+ gUnknown_202DE30 = moneyReward;
+ if (gUnknown_203B310->unk8 != '\0') {
+ sub_80141B4(gUnknown_80E0434,0,&gUnknown_203B310->faceFile,0x10d);
+ gUnknown_203B310->unk4 = 1;
+ }
+ else {
+ sub_802F2E8(1);
+ }
+ }
+ break;
+ case 1:
+ PlaySound(0xcb);
+ AddToTeamMoney(gUnknown_203B310->unk10->moneyReward);
+ if (sub_808D544(0) < 2) {
+ sub_80141B4(gUnknown_80E045C,0,0,0x101);
+ }
+ else {
+ sub_80141B4(gUnknown_80E0484,0,0,0x101);
+ }
+ gUnknown_203B310->unk4 = 2;
+ break;
+ case 2:
+ if (gUnknown_203B310->unk10->friendAreaReward == '\0') {
+ // No friend area reward.. go to item reward
+ sub_802F2E8(4);
+ }
+ else {
+ sub_8092578(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,0);
+ if (gUnknown_203B310->unk8 != '\0') {
+ sub_80141B4(gUnknown_80E04B4,0,&gUnknown_203B310->faceFile,0x10d);
+ gUnknown_203B310->unk4 = 3;
+ }
+ else {
+ sub_802F2E8(3);
+ }
+ }
+ break;
+ case 3:
+ // Friend area reward
+ if (GetFriendAreaStatus(gUnknown_203B310->unk10->friendAreaReward)) {
+ // We already have the friend area
+ AddToTeamMoney(1000);
+ sub_80141B4(gUnknown_80E04F4,0,0,0x101);
+ }
+ else
+ {
+ if (sub_808D544(0) < 2) {
+ UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward);
+ PlaySound(0xce);
+ sub_80141B4(gUnknown_80E05C0,0,0,0x101);
+ }
+ else
+ {
+ UnlockFriendArea(gUnknown_203B310->unk10->friendAreaReward);
+ PlaySound(0xce);
+ sub_80141B4(gUnknown_80E05FC,0,0,0x101);
+ }
+ }
+ gUnknown_203B310->unk4 = 4;
+ break;
+ case 4:
+ uVar7 = gUnknown_203B310->unk10->itemRewards[0];
+ if (uVar7 != 0)
+ {
+ if (gUnknown_203B310->unk10->moneyReward == 0) {
+
+ // Cast ItemIndex
+ index_cast = uVar7 << 16;
+ local_14.temp.full_bits = (local_14.temp.full_bits & 0xff00ffff) | index_cast;
+
+ index_cast2 = local_14.temp.full_bits >> 16;
+ if (IsThrowableItem(index_cast2)) {
+ // Cast number items
+ numItems = (gUnknown_203B310->unk10->numItems << 8);
+ local_14.temp.full_bits = (local_14.temp.full_bits & 0xffff00ff) | numItems;
+ }
+ else {
+ local_14.temp.full_bits = (local_14.temp.full_bits & 0xffff00ff) | 0;
+ }
+ local_14.temp.full_bits = (local_14.temp.full_bits & 0xffffff00) | ITEM_FLAG_EXISTS;
+ local_20.unk0 = 0;
+ local_20.unk4 = 0;
+ local_20.unk8 = 1;
+ sub_8090E14(gUnknown_202DEA8,(struct ItemSlot *)&local_14,&local_20);
+ if (gUnknown_203B310->unk8 != '\0') {
+ sub_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceFile,0x10d);
+ gUnknown_203B310->unk4 = 5;
+ }
+ else
+ {
+ sub_802F2E8(5);
+ }
+ }
+ else
+ {
+ sub_802F2E8(5);
+ }
+ }
+ else
+ sub_802F2E8(7);
+ break;
+ case 5:
+ // Item reward
+ if ((gUnknown_203B310->unk10->itemRewards[gUnknown_203B310->itemRewardIndex]) == 0) {
+ // No item in this reward slot
+ sub_802F2E8(6);
+ }
+ else {
+ if ((gUnknown_203B310->itemRewardIndex == 0) && (gUnknown_203B310->unk10->moneyReward == 0)) {
+ sub_801B60C(0,gUnknown_203B310->unk10->itemRewards[0],gUnknown_203B310->unk10->numItems);
+ }
+ else {
+ sub_801B60C(1,gUnknown_203B310->unk10->itemRewards[gUnknown_203B310->itemRewardIndex],gUnknown_203B310->unk10->numItems);
+ }
+ }
+ break;
+ case 6:
+ // Increase item reward slot index
+ gUnknown_203B310->itemRewardIndex++;
+ if(gUnknown_203B310->itemRewardIndex < MAX_ITEM_REWARDS)
+ sub_802F2E8(5);
+ else
+ // No more items to check... move to give points
+ sub_802F2E8(7);
+ break;
+ case 7:
+ if (gUnknown_203B310->unk10->teamRankPtsReward == 0) {
+ // No pnts to reward
+ sub_802F2E8(9);
+ }
+ else {
+ gUnknown_203B310->currTeamRank = GetRescueTeamRank();
+ AddToTeamRankPts(gUnknown_203B310->unk10->teamRankPtsReward);
+ PlaySound(0xcb);
+ if (gUnknown_203B310->currTeamRank != GetRescueTeamRank()) {
+ // Rank up time
+ gUnknown_203B310->unk4 = 8;
+ }
+ else {
+ // No rank up.. close out
+ gUnknown_203B310->unk4 = 9;
+ }
+ gUnknown_202DE30 = gUnknown_203B310->unk10->teamRankPtsReward;
+ sub_80141B4(gUnknown_80E0670,0,0,0x101);
+ }
+ break;
+ case 8:
+ // Rank up
+ PlaySound(0xc9);
+ gUnknown_203B310->unk4 = 9;
+ rankString = GetTeamRankString(gUnknown_203B310->currTeamRank);
+ strcpy(gUnknown_202E038,rankString);
+ rankString = GetTeamRankString(GetRescueTeamRank());
+ strcpy(gUnknown_202E038 + 0x50,rankString);
+ sub_80141B4(gUnknown_80E06A8,0,0,0x101);
+ break;
+ case 9:
+ break;
+ }
+}
+
+void sub_802F6FC(void)
+{
+ switch(sub_801B6AC())
+ {
+ case 2:
+ case 3:
+ sub_801B72C();
+ sub_802F2E8(6);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_802F718(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802F2E8(gUnknown_203B310->unk4);
+ }
+}
+
+u32 sub_802F73C(u32 r0, struct UnkTextStruct2_sub *r1, u32 r2, u8 r3)
+{
+ if(sub_802FCF0(r0))
+ {
+ return 0;
+ }
+ else
+ {
+ if(gUnknown_203B314 == NULL)
+ gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 0x8);
+ gUnknown_203B314->unkB8 = r3;
+ gUnknown_203B314->unkF0 = r0;
+ gUnknown_203B314->unkF4 = &gUnknown_203B314->unkF8[gUnknown_203B314->unkF0];
+ sub_8006518(gUnknown_203B314->unkF8);
+ if(r3 != 0)
+ {
+ gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E072C;
+ }
+ else
+ {
+ gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E0714;
+ }
+
+ gUnknown_203B314->unkF4->unk14 = gUnknown_203B314->unk158;
+ if(r1 != 0)
+ {
+ gUnknown_203B314->unkF8[gUnknown_203B314->unkF0].unk08 = *r1;
+ }
+
+ sub_8012D08(gUnknown_203B314->unkF4, r2);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B314->unkF8, 1, 1);
+ sub_8013818(&gUnknown_203B314->unkBC, sub_802FBF4(), r2, r0);
+ sub_802F9C0();
+ sub_802FA50();
+ return 1;
+ }
+}
+
+u32 sub_802F848(s16 param_1)
+{
+ int iVar2;
+ s32 param_1_32;
+
+ param_1_32 = param_1; // cast needed
+
+ for( iVar2 = 0; iVar2 < gUnknown_203B314->unkDE; iVar2++ ) {
+ if (gUnknown_203B314->unk0[iVar2] == param_1_32) {
+ sub_8013878(&gUnknown_203B314->unkBC,iVar2);
+ sub_802F9C0();
+ sub_802FA50();
+ return 1;
+ }
+ }
+ sub_8013878(&gUnknown_203B314->unkBC,0);
+ return 0;
+}
+
+u32 sub_802F8A0(u8 r0)
+{
+ if(r0 == 0)
+ {
+ sub_8013660(&gUnknown_203B314->unkBC);
+ return 0;
+ }
+ else
+ {
+ switch(GetKeyPress(&gUnknown_203B314->unkBC))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ default:
+ if(sub_80138B8(&gUnknown_203B314->unkBC, 1) != 0)
+ {
+ sub_802F9C0();
+ sub_802FA50();
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+}
+
+s16 sub_802F90C(void)
+{
+ return gUnknown_203B314->unk0[(gUnknown_203B314->unkDA * gUnknown_203B314->unkD8) + gUnknown_203B314->unkD4];
+}
+
+void sub_802F938(u32 r0)
+{
+ u8 r0_u8;
+
+ r0_u8 = r0;
+
+ gUnknown_203B314->unkDE = sub_802FBF4();
+ sub_8013984(&gUnknown_203B314->unkBC);
+ sub_802F9C0();
+ sub_802FA50();
+
+ if(r0_u8 != 0)
+ AddMenuCursorSprite(&gUnknown_203B314->unkBC);
+}
+
+void sub_802F974(void)
+{
+ if(gUnknown_203B314 != NULL)
+ {
+ gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E06FC;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B314->unkF8, 1, 1);
+ MemoryFree(gUnknown_203B314);
+ gUnknown_203B314 = NULL;
+ }
+}
diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c
new file mode 100644
index 0000000..873daf4
--- /dev/null
+++ b/src/wonder_mail_4.c
@@ -0,0 +1,137 @@
+#include "global.h"
+#include "text.h"
+#include "input.h"
+#include "memory.h"
+
+struct unkStruct_203B320
+{
+ // size: 0xC4
+ u8 unk0[4];
+ u8 fill4[0x20 - 4];
+ u32 unk20;
+ u8 fill24[0x3C - 0x24];
+ s16 unk3C;
+ s16 unk3E;
+ s16 unk40;
+ s16 unk42;
+ s16 unk44;
+ s16 unk46;
+ u8 fill48[0x58 - 0x48];
+ u32 unk58;
+ struct UnkTextStruct2 *unk5C;
+ struct UnkTextStruct2 unk60[4];
+ u8 unkC0[4];
+};
+extern struct unkStruct_203B320 *gUnknown_203B320;
+extern struct UnkTextStruct2 gUnknown_80E083C;
+extern struct UnkTextStruct2 gUnknown_80E0854;
+
+extern u8 sub_8030C20(u32);
+extern s32 sub_8030A74(void);
+extern void sub_80308A0(void);
+extern void sub_803092C(void);
+extern void sub_8012D08(struct UnkTextStruct2 *, s32);
+extern void sub_8013818(void *, u32, u32, u32);
+
+extern u8 sub_80138B8(u8 *, u32);
+extern void sub_8013660(u8 *);
+extern s32 GetKeyPress(u8 *);
+extern void PlayMenuSoundEffect(u32);
+extern void sub_8013984(u8 *);
+extern void AddMenuCursorSprite(u8 *);
+
+u32 sub_80306A8(u32 r0, u32 r1, struct UnkTextStruct2_sub *r2, u32 r3)
+{
+ if(sub_8030C20(r0))
+ return 0;
+ gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 0x8);
+ gUnknown_203B320->unk20 = r0;
+ gUnknown_203B320->unk58 = r1;
+
+ gUnknown_203B320->unk5C = &gUnknown_203B320->unk60[gUnknown_203B320->unk58];
+ sub_8006518(gUnknown_203B320->unk60);
+
+ gUnknown_203B320->unk60[gUnknown_203B320->unk58] = gUnknown_80E0854;
+ gUnknown_203B320->unk5C->unk14 = gUnknown_203B320->unkC0;
+
+ if(r2 != 0)
+ {
+ gUnknown_203B320->unk60[gUnknown_203B320->unk58].unk08 = *r2;
+ }
+
+
+ sub_8012D08(gUnknown_203B320->unk5C, r3);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B320->unk60, 1, 1);
+ sub_8013818(gUnknown_203B320->fill24, sub_8030A74(), r3, r1);
+ sub_80308A0();
+ sub_803092C();
+ return 1;
+}
+
+u32 sub_8030768(u8 r0)
+{
+ if(r0 == 0)
+ {
+ sub_8013660(gUnknown_203B320->fill24);
+ return 0;
+ }
+ switch(GetKeyPress(gUnknown_203B320->fill24))
+ {
+ case 4:
+ PlayMenuSoundEffect(4);
+ return 4;
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ default:
+ if(sub_80138B8(gUnknown_203B320->fill24, 1) != 0)
+ {
+ sub_80308A0();
+ sub_803092C();
+ return 1;
+ }
+ else
+ return 0;
+ }
+}
+
+u8 sub_80307EC(void)
+{
+ return gUnknown_203B320->unk0[(gUnknown_203B320->unk42 * gUnknown_203B320->unk40) + gUnknown_203B320->unk3C];
+}
+
+void sub_8030810(u32 r0)
+{
+ u8 r0_u8;
+
+ r0_u8 = r0; // cast needed..
+
+ gUnknown_203B320->unk46 = sub_8030A74();
+ sub_8013984(gUnknown_203B320->fill24);
+
+ sub_80308A0();
+ sub_803092C();
+ if(r0_u8 != 0)
+ AddMenuCursorSprite(gUnknown_203B320->fill24);
+}
+
+void sub_803084C()
+{
+ if(gUnknown_203B320 != NULL)
+ {
+ gUnknown_203B320->unk60[gUnknown_203B320->unk58] = gUnknown_80E083C;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B320->unk60, 1, 1);
+ MemoryFree(gUnknown_203B320);
+ gUnknown_203B320 = NULL;
+ }
+}
+
+u8 *sub_8030894()
+{
+ return gUnknown_203B320->unk0;
+}
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
deleted file mode 100644
index 34cbaea..0000000
--- a/src/wonder_mail_pre.c
+++ /dev/null
@@ -1,305 +0,0 @@
-#include "global.h"
-#include "file_system.h"
-#include "input.h"
-#include "pokemon.h"
-#include "sub_8095228.h"
-#include "wonder_mail.h"
-#include "memory.h"
-
-
-extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
-extern char gUnknown_202E5D8[0x50];
-extern char gAvailablePokemonNames[0x50];
-
-extern void sub_8029B34(void);
-extern void sub_8029AD8(void);
-extern void sub_8029AF4(void);
-extern void sub_8029A88(void);
-extern void sub_8029AB0(void);
-extern void sub_80297B8(void);
-extern void sub_80297D4(void);
-extern void sub_8029884(void);
-extern void sub_8029944(void);
-extern void sub_80299AC(void);
-extern void sub_80299D8(void);
-extern void sub_8029A6C(void);
-extern void sub_8028CE0(void);
-extern void sub_8028BF0(void);
-extern void sub_8029A18(void);
-extern void sub_80295A8(void);
-extern void sub_8029668(void);
-extern void sub_8029684(void);
-extern void sub_8029740(void);
-extern void sub_80295D8(void);
-extern void sub_802979C(void);
-extern void sub_8029358(void);
-extern void sub_8029374(void);
-extern void sub_802939C(void);
-extern void sub_8028F58(void);
-extern void sub_8028F30(void);
-extern void sub_8028F04(void);
-extern void sub_8028ED4(void);
-extern void sub_80293D8(void);
-extern void sub_80293F4(void);
-extern void sub_8028DE8(u32);
-extern void sub_8028EAC(void);
-extern void sub_802955C(void);
-extern void sub_80292A4(void);
-extern void sub_80292EC(void);
-extern void sub_802933C(void);
-extern void sub_802958C(void);
-extern void sub_8029208(void);
-extern void sub_8028E84(void);
-extern void sub_8028F80(void);
-extern void sub_8028FC0(void);
-extern void sub_8028FDC(void);
-extern void sub_8028E54(void);
-extern void sub_8028E24(void);
-extern void sub_8028E08(void);
-extern void sub_80290D4(void);
-extern void sub_80290F0(void);
-extern void sub_80291AC(void);
-extern void sub_8029044(void);
-extern void sub_8028CFC(void);
-extern void sub_8028D4C(void);
-extern void sub_8031E10(void);
-extern void sub_8023C60(void);
-extern void sub_803084C(void);
-extern void sub_80155F0(void);
-extern void sub_80310B4(void);
-extern void sub_8030DE4(void);
-extern void sub_802453C(void);
-
-u32 sub_8027F88(void)
-{
- char *monName;
- struct OpenedFile *faceFile;
- s32 counter;
-
- ResetUnusedInputStruct();
- sub_800641C(0, 1, 1);
- gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8);
- MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0));
- gUnknown_203B2C0->unk53C = 0;
- gUnknown_203B2C0->unk218 = -1;
- gUnknown_203B2C0->unk544 = -1;
- CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
- monName = GetMonSpecies(SPECIES_PELIPPER);
- strcpy(gAvailablePokemonNames, monName);
- faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
- gUnknown_203B2C0->faceFile = faceFile;
- gUnknown_203B2C0->faceData = faceFile->data;
- gUnknown_203B2C0->unk42C = 0;
- gUnknown_203B2C0->unk42D = 0;
- gUnknown_203B2C0->unk42E = 0;
- gUnknown_203B2C0->unk428 = 2;
- gUnknown_203B2C0->unk42A = 8;
- for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
- gUnknown_203B2C0->passwordBuffer[counter] = 0;
- }
- gUnknown_203B2C0->unk0 = 0x3D;
- sub_8028B04(0); // Set initial state to 0?
- return 1;
-}
-
-u32 sub_8028078(void)
-{
-
- switch(gUnknown_203B2C0->state) {
- case 0x3c:
- sub_8029B34();
- break;
- case 0x3a:
- sub_8029AD8();
- break;
- case 0x3b:
- sub_8029AF4();
- break;
- case 0x38:
- sub_8029A88();
- break;
- case 0x37:
- sub_8029AB0();
- break;
- case 0x32:
- sub_80297B8();
- break;
- case 0x33:
- sub_80297D4();
- break;
- case 0x34:
- sub_8029884();
- break;
- case 0x35:
- sub_8029944();
- break;
- case 0x31:
- sub_80299AC();
- break;
- case 0x36:
- sub_80299D8();
- break;
- case 0x30:
- sub_8029A6C();
- break;
- case 0x2e:
- sub_8029A18();
- break;
- case 0x2d:
- sub_80295A8();
- break;
- case 0x29:
- sub_8029668();
- break;
- case 0x2b:
- sub_8029684();
- break;
- case 0x2c:
- sub_8029740();
- break;
- case 0x2a:
- sub_80295D8();
- break;
- case 0x2f:
- sub_802979C();
- break;
- case 9:
- sub_8029358();
- break;
- case 0x23:
- sub_8029374();
- break;
- case 0x24:
- sub_802939C();
- break;
- case 0x26:
- sub_80293D8();
- break;
- case 0x27:
- sub_80293F4();
- break;
- case 0x28:
- sub_802955C();
- break;
- case 4:
- sub_80292A4();
- break;
- case 6:
- sub_80292EC();
- break;
- case 7:
- sub_802933C();
- break;
- case 5:
- sub_802958C();
- break;
- case 8:
- sub_8029208();
- break;
- case 0x1a:
- sub_8028DE8(1);
- break;
- case 0x1b:
- sub_8028F80();
- break;
- case 0x1c:
- case 0x1d:
- sub_8028FC0();
- break;
- case 0x22:
- sub_8028FDC();
- break;
- case 0x1e:
- sub_80290D4();
- break;
- case 0x20:
- sub_80290F0();
- break;
- case 0x21:
- sub_80291AC();
- break;
- case 0x1f:
- sub_8029044();
- break;
- case 10:
- sub_8028CFC();
- break;
- case 0xb:
- sub_8028D4C();
- break;
- case 0xd:
- case 0xf:
- sub_8028DE8(10);
- break;
- case 0x11:
- sub_8028E08();
- break;
- case 0xc:
- case 0xe:
- case 0x10:
- sub_8028DE8(0x19);
- break;
- case 0x12:
- sub_8028E24();
- break;
- case 0x13:
- sub_8028E54();
- break;
- case 0x17:
- sub_8028E84();
- break;
- case 0x18:
- sub_8028EAC();
- break;
- case 0x19:
- sub_8028ED4();
- break;
- case 0x14:
- sub_8028F04();
- break;
- case 0x15:
- sub_8028F30();
- break;
- case 0x16:
- sub_8028F58();
- break;
- case 0:
- case 1:
- sub_8028BF0();
- break;
- case 2:
- case 0x25:
- case 0x39:
- sub_8028CE0();
- break;
- case 3:
- return 3;
- }
- return 0;
-}
-
-s32 sub_80282DC(u8 *r0)
-{
- *r0 = gUnknown_203B2C0->unk218;
- return gUnknown_203B2C0->unk53C;
-}
-
-void sub_80282FC(void)
-{
- if (gUnknown_203B2C0 != NULL) {
- CloseFile(gUnknown_203B2C0->faceFile);
- MemoryFree(gUnknown_203B2C0);
- gUnknown_203B2C0 = NULL;
- sub_8031E10();
- sub_8023C60();
- sub_803084C();
- sub_80155F0();
- sub_80310B4();
- sub_8030DE4();
- sub_802453C();
- }
-}
-
-void nullsub_130(void)
-{
-}