summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_8027C84.s222
-rw-r--r--asm/wonder_mail.s (renamed from asm/code_8028DE8.s)1460
-rw-r--r--data/data_80B9BB8.s103
-rw-r--r--data/text/wonder_mail_1.inc22
-rwxr-xr-xld_script.txt4
-rw-r--r--src/code_8028DE8.c294
-rw-r--r--src/wonder_mail.c1444
7 files changed, 1555 insertions, 1994 deletions
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s
index 4cd9112..90efd22 100644
--- a/asm/code_8027C84.s
+++ b/asm/code_8027C84.s
@@ -1734,226 +1734,4 @@ _08028AFC: .4byte gUnknown_80DE93C
_08028B00: .4byte 0x0000010d
thumb_func_end sub_8028348
- thumb_func_start sub_8028B04
-sub_8028B04:
- push {lr}
- ldr r1, _08028B18
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl nullsub_130
- bl sub_8028348
- pop {r0}
- bx r0
- .align 2, 0
-_08028B18: .4byte gUnknown_203B2C0
- thumb_func_end sub_8028B04
-
- thumb_func_start sub_8028B1C
-sub_8028B1C:
- push {lr}
- cmp r0, 0xF
- bhi _08028BE0
- lsls r0, 2
- ldr r1, _08028B2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08028B2C: .4byte _08028B30
- .align 2, 0
-_08028B30:
- .4byte _08028BE0
- .4byte _08028BA8
- .4byte _08028BA8
- .4byte _08028B70
- .4byte _08028B78
- .4byte _08028BA8
- .4byte _08028B80
- .4byte _08028B88
- .4byte _08028BE0
- .4byte _08028B90
- .4byte _08028BE0
- .4byte _08028B98
- .4byte _08028BE0
- .4byte _08028BA0
- .4byte _08028BA8
- .4byte _08028BCC
-_08028B70:
- ldr r0, _08028B74
- b _08028BAA
- .align 2, 0
-_08028B74: .4byte gUnknown_80DE98C
-_08028B78:
- ldr r0, _08028B7C
- b _08028BAA
- .align 2, 0
-_08028B7C: .4byte gUnknown_80DE9F0
-_08028B80:
- ldr r0, _08028B84
- b _08028BAA
- .align 2, 0
-_08028B84: .4byte gUnknown_80DEA58
-_08028B88:
- ldr r0, _08028B8C
- b _08028BAA
- .align 2, 0
-_08028B8C: .4byte gUnknown_80DEAB4
-_08028B90:
- ldr r0, _08028B94
- b _08028BAA
- .align 2, 0
-_08028B94: .4byte gUnknown_80DEB18
-_08028B98:
- ldr r0, _08028B9C
- b _08028BAA
- .align 2, 0
-_08028B9C: .4byte gUnknown_80DEB18
-_08028BA0:
- ldr r0, _08028BA4
- b _08028BAA
- .align 2, 0
-_08028BA4: .4byte gUnknown_80DEB54
-_08028BA8:
- ldr r0, _08028BC0
-_08028BAA:
- ldr r1, _08028BC4
- ldr r2, [r1]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- ldr r3, _08028BC8
- movs r1, 0
- bl sub_80141B4
- b _08028BE0
- .align 2, 0
-_08028BC0: .4byte gUnknown_80DE954
-_08028BC4: .4byte gUnknown_203B2C0
-_08028BC8: .4byte 0x0000010d
-_08028BCC:
- ldr r0, _08028BE4
- ldr r1, _08028BE8
- ldr r2, [r1]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- ldr r3, _08028BEC
- movs r1, 0
- bl sub_80141B4
-_08028BE0:
- pop {r0}
- bx r0
- .align 2, 0
-_08028BE4: .4byte gUnknown_80DEC00
-_08028BE8: .4byte gUnknown_203B2C0
-_08028BEC: .4byte 0x0000010d
- thumb_func_end sub_8028B1C
-
- thumb_func_start sub_8028BF0
-sub_8028BF0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08028CDA
- ldr r2, _08028C20
- ldr r0, [r2]
- movs r1, 0x8
- str r1, [r0, 0x40]
- ldr r1, _08028C24
- adds r0, r1
- ldr r1, _08028C28
- strh r1, [r0]
- ldr r0, [sp]
- cmp r0, 0xA
- bhi _08028CDA
- lsls r0, 2
- ldr r1, _08028C2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08028C20: .4byte gUnknown_203B2C0
-_08028C24: .4byte 0x00000544
-_08028C28: .4byte 0x0000ffff
-_08028C2C: .4byte _08028C30
- .align 2, 0
-_08028C30:
- .4byte _08028C5C
- .4byte _08028C88
- .4byte _08028CA2
- .4byte _08028CCC
- .4byte _08028CDA
- .4byte _08028CDA
- .4byte _08028CDA
- .4byte _08028CDA
- .4byte _08028CDA
- .4byte _08028CDA
- .4byte _08028CD4
-_08028C5C:
- ldr r0, [r2]
- movs r1, 0x3
- str r1, [r0, 0x40]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- bl sub_8095190
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08028C80
- movs r0, 0x8
- bl sub_8028B04
- b _08028CDA
-_08028C80:
- movs r0, 0x9
- bl sub_8028B04
- b _08028CDA
-_08028C88:
- movs r0, 0x2
- bl sub_8095324
- cmp r0, 0
- beq _08028C9A
- movs r0, 0x1E
- bl sub_8028B04
- b _08028CDA
-_08028C9A:
- movs r0, 0x1A
- bl sub_8028B04
- b _08028CDA
-_08028CA2:
- ldr r0, [r2]
- movs r1, 0x4
- str r1, [r0, 0x40]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- movs r1, 0x2
- str r1, [r0]
- movs r0, 0x4
- bl sub_8095324
- cmp r0, 0
- beq _08028CC4
- movs r0, 0x29
- bl sub_8028B04
- b _08028CDA
-_08028CC4:
- movs r0, 0x2F
- bl sub_8028B04
- b _08028CDA
-_08028CCC:
- movs r0, 0xB
- bl sub_8028B04
- b _08028CDA
-_08028CD4:
- movs r0, 0x2
- bl sub_8028B04
-_08028CDA:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8028BF0
-
.align 2,0
diff --git a/asm/code_8028DE8.s b/asm/wonder_mail.s
index 79ffa16..e41a22c 100644
--- a/asm/code_8028DE8.s
+++ b/asm/wonder_mail.s
@@ -5,1466 +5,6 @@
.text
- thumb_func_start sub_8028FDC
-sub_8028FDC:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802903C
- ldr r0, [sp]
- cmp r0, 0x8
- beq _08028FFC
- cmp r0, 0x8
- blt _0802903C
- cmp r0, 0xA
- bgt _0802903C
- movs r0, 0x1
- b _08029038
-_08028FFC:
- ldr r0, _08029020
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8095228
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- bl sub_80A2824
- lsls r0, 24
- cmp r0, 0
- bne _08029024
- movs r0, 0x1C
- b _08029038
- .align 2, 0
-_08029020: .4byte gUnknown_203B2C0
-_08029024:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bgt _08029036
- movs r0, 0x1D
- b _08029038
-_08029036:
- movs r0, 0x1B
-_08029038:
- bl sub_8028B04
-_0802903C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8028FDC
-
- thumb_func_start sub_8029044
-sub_8029044:
- push {r4,r5,lr}
- movs r0, 0x1
- bl sub_8030768
- cmp r0, 0x3
- beq _0802906C
- cmp r0, 0x3
- bhi _0802905A
- cmp r0, 0x2
- beq _08029060
- b _080290CA
-_0802905A:
- cmp r0, 0x4
- beq _08029088
- b _080290CA
-_08029060:
- bl sub_803084C
- movs r0, 0x1
- bl sub_8028B04
- b _080290CA
-_0802906C:
- bl sub_80307EC
- ldr r1, _08029084
- ldr r1, [r1]
- movs r2, 0x86
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- movs r0, 0x20
- bl sub_8028B04
- b _080290CA
- .align 2, 0
-_08029084: .4byte gUnknown_203B2C0
-_08029088:
- ldr r4, _080290D0
- ldr r1, [r4]
- movs r0, 0x1F
- str r0, [r1]
- bl sub_80307EC
- ldr r1, [r4]
- movs r5, 0x86
- lsls r5, 2
- adds r1, r5
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8030D40
- movs r0, 0x21
- bl sub_8028B04
-_080290CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080290D0: .4byte gUnknown_203B2C0
- thumb_func_end sub_8029044
-
- thumb_func_start sub_80290D4
-sub_80290D4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080290E8
- movs r0, 0x1F
- bl sub_8028B04
-_080290E8:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80290D4
-
- thumb_func_start sub_80290F0
-sub_80290F0:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r0, 0
- bl sub_8030768
- ldr r4, _08029134
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08029122
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- mov r1, sp
- bl sub_8013114
-_08029122:
- ldr r0, [sp]
- cmp r0, 0xA
- beq _08029184
- cmp r0, 0xA
- bgt _08029138
- cmp r0, 0x4
- beq _08029184
- b _080291A0
- .align 2, 0
-_08029134: .4byte gUnknown_203B2C0
-_08029138:
- cmp r0, 0xB
- beq _08029142
- cmp r0, 0xC
- beq _0802914E
- b _080291A0
-_08029142:
- bl sub_803084C
- movs r0, 0x22
- bl sub_8028B04
- b _080291A0
-_0802914E:
- ldr r0, [r4]
- movs r1, 0x3D
- str r1, [r0]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8030D40
- movs r0, 0x21
- bl sub_8028B04
- b _080291A0
-_08029184:
- ldr r0, _080291A8
- ldr r0, [r0]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2
- bl sub_8035CC0
- movs r0, 0x1
- bl sub_8030810
- movs r0, 0x1F
- bl sub_8028B04
-_080291A0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080291A8: .4byte gUnknown_203B2C0
- thumb_func_end sub_80290F0
-
- thumb_func_start sub_80291AC
-sub_80291AC:
- push {r4,lr}
- bl sub_8030DA0
- cmp r0, 0x3
- bhi _08029200
- cmp r0, 0x2
- bcc _08029200
- bl sub_8030DE4
- bl sub_8004914
- ldr r4, _080291F8
- ldr r0, [r4]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_803092C
- ldr r4, [r4]
- ldr r0, [r4]
- cmp r0, 0x3D
- bne _080291FC
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, r1
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- movs r0, 0x20
- bl sub_8028B04
- b _08029200
- .align 2, 0
-_080291F8: .4byte gUnknown_203B2C0
-_080291FC:
- bl sub_8028B04
-_08029200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80291AC
-
- thumb_func_start sub_8029208
-sub_8029208:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802929E
- ldr r2, [sp]
- cmp r2, 0xE
- bgt _08029226
- cmp r2, 0xD
- bge _0802922C
- cmp r2, 0xA
- beq _08029298
- b _0802929E
-_08029226:
- cmp r2, 0xF
- beq _08029264
- b _0802929E
-_0802922C:
- ldr r0, _0802924C
- ldr r0, [r0]
- ldr r1, _08029250
- adds r2, r0, r1
- movs r1, 0xD
- str r1, [r2]
- movs r3, 0xA7
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0
- beq _08029254
- cmp r0, 0x2
- beq _0802925C
- b _0802929E
- .align 2, 0
-_0802924C: .4byte gUnknown_203B2C0
-_08029250: .4byte 0x00000534
-_08029254:
- movs r0, 0x4
- bl sub_8028B04
- b _0802929E
-_0802925C:
- movs r0, 0x30
- bl sub_8028B04
- b _0802929E
-_08029264:
- ldr r0, _08029280
- ldr r0, [r0]
- ldr r3, _08029284
- adds r1, r0, r3
- str r2, [r1]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _08029288
- cmp r0, 0x2
- beq _08029290
- b _0802929E
- .align 2, 0
-_08029280: .4byte gUnknown_203B2C0
-_08029284: .4byte 0x00000534
-_08029288:
- movs r0, 0x26
- bl sub_8028B04
- b _0802929E
-_08029290:
- movs r0, 0x3A
- bl sub_8028B04
- b _0802929E
-_08029298:
- movs r0, 0x1
- bl sub_8028B04
-_0802929E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029208
-
- thumb_func_start sub_80292A4
-sub_80292A4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080292E6
- ldr r0, [sp]
- cmp r0, 0x8
- beq _080292BE
- cmp r0, 0xA
- beq _080292E0
- b _080292E6
-_080292BE:
- ldr r0, _080292DC
- ldr r0, [r0]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080292D2
- cmp r0, 0x2
- bne _080292E6
-_080292D2:
- movs r0, 0x5
- bl sub_8028B04
- b _080292E6
- .align 2, 0
-_080292DC: .4byte gUnknown_203B2C0
-_080292E0:
- movs r0, 0x1
- bl sub_8028B04
-_080292E6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80292A4
-
- thumb_func_start sub_80292EC
-sub_80292EC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029336
- ldr r0, _08029318
- ldr r1, [r0]
- ldr r0, [r1, 0x44]
- cmp r0, 0
- bne _0802932C
- movs r2, 0xA7
- lsls r2, 3
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _0802931C
- cmp r0, 0x2
- beq _08029324
- b _08029336
- .align 2, 0
-_08029318: .4byte gUnknown_203B2C0
-_0802931C:
- movs r0, 0x23
- bl sub_8028B04
- b _08029336
-_08029324:
- movs r0, 0x37
- bl sub_8028B04
- b _08029336
-_0802932C:
- bl sub_8028B1C
- movs r0, 0x7
- bl sub_8028B04
-_08029336:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80292EC
-
- thumb_func_start sub_802933C
-sub_802933C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029350
- movs r0, 0x1
- bl sub_8028B04
-_08029350:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802933C
-
- thumb_func_start sub_8029358
-sub_8029358:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802936C
- movs r0, 0x1
- bl sub_8028B04
-_0802936C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029358
-
- thumb_func_start sub_8029374
-sub_8029374:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029394
- movs r0, 0x24
- bl sub_8028B04
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl sub_8012574
-_08029394:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029374
-
- thumb_func_start sub_802939C
-sub_802939C:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080293D0
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _080293D0
- bl sub_8012744
- adds r4, r0, 0
- bl sub_8012750
- cmp r4, 0
- bne _080293CA
- movs r0, 0x25
- bl sub_8028B04
- b _080293D0
-_080293CA:
- movs r0, 0x2
- bl sub_8028B04
-_080293D0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802939C
-
- thumb_func_start sub_80293D8
-sub_80293D8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080293EC
- movs r0, 0x27
- bl sub_8028B04
-_080293EC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80293D8
-
- thumb_func_start sub_80293F4
-sub_80293F4:
- push {r4,lr}
- sub sp, 0x44
- bl sub_80154F0
- adds r4, r0, 0
- add r0, sp, 0x14
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- cmp r4, 0x2
- bne _0802940E
- b _08029530
-_0802940E:
- cmp r4, 0x3
- beq _08029414
- b _08029550
-_08029414:
- ldr r0, _08029434
- ldr r1, [r0]
- adds r1, 0x8
- movs r0, 0x1C
- add r2, sp, 0x14
- bl sub_8039068
- subs r0, 0x7
- cmp r0, 0x11
- bls _0802942A
- b _0802951C
-_0802942A:
- lsls r0, 2
- ldr r1, _08029438
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08029434: .4byte gUnknown_203B2C0
-_08029438: .4byte _0802943C
- .align 2, 0
-_0802943C:
- .4byte _080294C8
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _08029484
- .4byte _080294C0
- .4byte _0802951C
- .4byte _0802951C
- .4byte _0802951C
- .4byte _080294F0
- .4byte _0802951C
- .4byte _0802951C
-_08029484:
- ldr r0, _080294B4
- ldr r3, _080294B8
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, _080294BC
- ldr r1, [r1]
- 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, 0x8
- bl sub_8014248
- movs r0, 0x28
- bl sub_8028B04
- b _0802951C
- .align 2, 0
-_080294B4: .4byte gUnknown_80DEC70
-_080294B8: .4byte gUnknown_80DDA48
-_080294BC: .4byte gUnknown_203B2C0
-_080294C0:
- ldr r0, _080294C4
- b _080294CA
- .align 2, 0
-_080294C4: .4byte gUnknown_80DECC0
-_080294C8:
- ldr r0, _080294E4
-_080294CA:
- ldr r1, _080294E8
- ldr r2, [r1]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- ldr r3, _080294EC
- movs r1, 0
- bl sub_80141B4
- movs r0, 0x7
- bl sub_8028B04
- b _0802951C
- .align 2, 0
-_080294E4: .4byte gUnknown_80DEAB4
-_080294E8: .4byte gUnknown_203B2C0
-_080294EC: .4byte 0x0000010d
-_080294F0:
- ldr r0, [sp, 0x24]
- bl sub_8095274
- add r1, sp, 0x14
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r1, 0
- bl sub_80951BC
- ldr r0, _08029524
- ldr r1, _08029528
- ldr r2, [r1]
- movs r1, 0x84
- lsls r1, 3
- adds r2, r1
- ldr r3, _0802952C
- movs r1, 0
- bl sub_80141B4
- movs r0, 0x23
- bl sub_8028B04
-_0802951C:
- bl sub_80155F0
- b _08029550
- .align 2, 0
-_08029524: .4byte gUnknown_80DECFC
-_08029528: .4byte gUnknown_203B2C0
-_0802952C: .4byte 0x00000101
-_08029530:
- bl sub_80155F0
- bl sub_8004914
- ldr r0, _08029558
- ldr r0, [r0]
- movs r2, 0xEF
- lsls r2, 2
- adds r0, r2
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x1
- bl sub_8028B04
-_08029550:
- add sp, 0x44
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029558: .4byte gUnknown_203B2C0
- thumb_func_end sub_80293F4
-
- thumb_func_start sub_802955C
-sub_802955C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029584
- ldr r0, [sp]
- cmp r0, 0x8
- beq _08029576
- cmp r0, 0xA
- beq _0802957E
- b _08029584
-_08029576:
- movs r0, 0x26
- bl sub_8028B04
- b _08029584
-_0802957E:
- movs r0, 0x1
- bl sub_8028B04
-_08029584:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802955C
-
- thumb_func_start sub_802958C
-sub_802958C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080295A0
- movs r0, 0x6
- bl sub_8028B04
-_080295A0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802958C
-
- thumb_func_start sub_80295A8
-sub_80295A8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080295D2
- ldr r0, [sp]
- cmp r0, 0x8
- bne _080295C4
- movs r0, 0x8
- bl sub_8028B04
- b _080295D2
-_080295C4:
- cmp r0, 0x8
- blt _080295D2
- cmp r0, 0xA
- bgt _080295D2
- movs r0, 0x1
- bl sub_8028B04
-_080295D2:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80295A8
-
- thumb_func_start sub_80295D8
-sub_80295D8:
- push {r4,r5,lr}
- movs r0, 0x1
- bl sub_8030768
- cmp r0, 0x3
- beq _08029600
- cmp r0, 0x3
- bhi _080295EE
- cmp r0, 0x2
- beq _080295F4
- b _0802965E
-_080295EE:
- cmp r0, 0x4
- beq _0802961C
- b _0802965E
-_080295F4:
- bl sub_803084C
- movs r0, 0x1
- bl sub_8028B04
- b _0802965E
-_08029600:
- bl sub_80307EC
- ldr r1, _08029618
- ldr r1, [r1]
- movs r2, 0x86
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- movs r0, 0x2B
- bl sub_8028B04
- b _0802965E
- .align 2, 0
-_08029618: .4byte gUnknown_203B2C0
-_0802961C:
- ldr r4, _08029664
- ldr r1, [r4]
- movs r0, 0x2A
- str r0, [r1]
- bl sub_80307EC
- ldr r1, [r4]
- movs r5, 0x86
- lsls r5, 2
- adds r1, r5
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8030D40
- movs r0, 0x2C
- bl sub_8028B04
-_0802965E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029664: .4byte gUnknown_203B2C0
- thumb_func_end sub_80295D8
-
- thumb_func_start sub_8029668
-sub_8029668:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802967C
- movs r0, 0x2A
- bl sub_8028B04
-_0802967C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029668
-
- thumb_func_start sub_8029684
-sub_8029684:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r0, 0
- bl sub_8030768
- ldr r4, _080296C8
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080296B6
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- mov r1, sp
- bl sub_8013114
-_080296B6:
- ldr r0, [sp]
- cmp r0, 0xA
- beq _08029718
- cmp r0, 0xA
- bgt _080296CC
- cmp r0, 0x4
- beq _08029718
- b _08029734
- .align 2, 0
-_080296C8: .4byte gUnknown_203B2C0
-_080296CC:
- cmp r0, 0xB
- beq _080296D6
- cmp r0, 0xC
- beq _080296E2
- b _08029734
-_080296D6:
- bl sub_803084C
- movs r0, 0x2D
- bl sub_8028B04
- b _08029734
-_080296E2:
- ldr r0, [r4]
- movs r1, 0x3D
- str r1, [r0]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8030D40
- movs r0, 0x2C
- bl sub_8028B04
- b _08029734
-_08029718:
- ldr r0, _0802973C
- ldr r0, [r0]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2
- bl sub_8035CC0
- movs r0, 0x1
- bl sub_8030810
- movs r0, 0x2A
- bl sub_8028B04
-_08029734:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802973C: .4byte gUnknown_203B2C0
- thumb_func_end sub_8029684
-
- thumb_func_start sub_8029740
-sub_8029740:
- push {r4,lr}
- bl sub_8030DA0
- cmp r0, 0x3
- bhi _08029794
- cmp r0, 0x2
- bcc _08029794
- bl sub_8030DE4
- bl sub_8004914
- ldr r4, _0802978C
- ldr r0, [r4]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_803092C
- ldr r4, [r4]
- ldr r0, [r4]
- cmp r0, 0x3D
- bne _08029790
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, r1
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- movs r0, 0x2B
- bl sub_8028B04
- b _08029794
- .align 2, 0
-_0802978C: .4byte gUnknown_203B2C0
-_08029790:
- bl sub_8028B04
-_08029794:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8029740
-
- thumb_func_start sub_802979C
-sub_802979C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080297B0
- movs r0, 0x1
- bl sub_8028B04
-_080297B0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802979C
-
- thumb_func_start sub_80297B8
-sub_80297B8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080297CC
- movs r0, 0x33
- bl sub_8028B04
-_080297CC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80297B8
-
- thumb_func_start sub_80297D4
-sub_80297D4:
- push {r4,r5,lr}
- movs r0, 0x1
- bl sub_8023A94
- cmp r0, 0x3
- beq _08029814
- cmp r0, 0x3
- bhi _080297EA
- cmp r0, 0x2
- beq _080297F0
- b _08029876
-_080297EA:
- cmp r0, 0x4
- beq _08029834
- b _08029876
-_080297F0:
- bl sub_8023C60
- movs r0, 0x1
- bl sub_8028B04
- ldr r0, _08029808
- ldr r0, [r0]
- ldr r1, _0802980C
- adds r0, r1
- ldr r1, _08029810
- strh r1, [r0]
- b _08029876
- .align 2, 0
-_08029808: .4byte gUnknown_203B2C0
-_0802980C: .4byte 0x00000544
-_08029810: .4byte 0x0000ffff
-_08029814:
- bl sub_8023B44
- ldr r1, _0802982C
- ldr r1, [r1]
- ldr r2, _08029830
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x34
- bl sub_8028B04
- b _08029876
- .align 2, 0
-_0802982C: .4byte gUnknown_203B2C0
-_08029830: .4byte 0x00000544
-_08029834:
- ldr r4, _0802987C
- ldr r1, [r4]
- movs r0, 0x33
- str r0, [r1]
- bl sub_8023B44
- adds r2, r0, 0
- ldr r0, [r4]
- ldr r5, _08029880
- adds r1, r0, r5
- strh r2, [r1]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- adds r0, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0
- bl sub_8024458
- movs r0, 0x35
- bl sub_8028B04
-_08029876:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802987C: .4byte gUnknown_203B2C0
-_08029880: .4byte 0x00000544
- thumb_func_end sub_80297D4
-
- thumb_func_start sub_8029884
-sub_8029884:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r0, 0
- bl sub_8023A94
- ldr r4, _080298C8
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080298B6
- ldr r0, [r4]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- mov r1, sp
- bl sub_8013114
-_080298B6:
- ldr r0, [sp]
- cmp r0, 0xA
- beq _0802991C
- cmp r0, 0xA
- bgt _080298CC
- cmp r0, 0x4
- beq _0802991C
- b _08029938
- .align 2, 0
-_080298C8: .4byte gUnknown_203B2C0
-_080298CC:
- cmp r0, 0xB
- beq _080298D6
- cmp r0, 0xC
- beq _080298E2
- b _08029938
-_080298D6:
- bl sub_8023C60
- movs r0, 0x4
- bl sub_8028B04
- b _08029938
-_080298E2:
- ldr r0, [r4]
- movs r1, 0x3D
- str r1, [r0]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- bl sub_8006518
- bl sub_8004914
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- ldr r1, _08029918
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0
- bl sub_8024458
- movs r0, 0x35
- bl sub_8028B04
- b _08029938
- .align 2, 0
-_08029918: .4byte 0x00000544
-_0802991C:
- ldr r0, _08029940
- ldr r0, [r0]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- movs r1, 0x3
- bl sub_8035CC0
- movs r0, 0x1
- bl sub_8023B7C
- movs r0, 0x33
- bl sub_8028B04
-_08029938:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029940: .4byte gUnknown_203B2C0
- thumb_func_end sub_8029884
-
- thumb_func_start sub_8029944
-sub_8029944:
- push {r4,lr}
- bl sub_80244E4
- cmp r0, 0x1
- bne _08029954
- bl sub_802452C
- b _080299A4
-_08029954:
- cmp r0, 0x1
- bcc _080299A4
- cmp r0, 0x3
- bhi _080299A4
- bl sub_802453C
- bl sub_8004914
- ldr r4, _0802999C
- ldr r0, [r4]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x1
- bl sub_8023B7C
- ldr r4, [r4]
- ldr r0, [r4]
- cmp r0, 0x3D
- bne _080299A0
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, r1
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- movs r0, 0x34
- bl sub_8028B04
- b _080299A4
- .align 2, 0
-_0802999C: .4byte gUnknown_203B2C0
-_080299A0:
- bl sub_8028B04
-_080299A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8029944
-
- thumb_func_start sub_80299AC
-sub_80299AC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080299D2
- ldr r0, [sp]
- cmp r0, 0xA
- beq _080299CC
- cmp r0, 0x12
- bne _080299D2
- movs r0, 0x4
- bl sub_8028B04
- b _080299D2
-_080299CC:
- movs r0, 0x1
- bl sub_8028B04
-_080299D2:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80299AC
-
- thumb_func_start sub_80299D8
-sub_80299D8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029A12
- ldr r0, [sp]
- cmp r0, 0x9
- beq _08029A04
- cmp r0, 0x9
- bgt _080299F6
- cmp r0, 0x8
- beq _080299FC
- b _08029A12
-_080299F6:
- cmp r0, 0xA
- beq _08029A0C
- b _08029A12
-_080299FC:
- movs r0, 0x4
- bl sub_8028B04
- b _08029A12
-_08029A04:
- movs r0, 0x32
- bl sub_8028B04
- b _08029A12
-_08029A0C:
- movs r0, 0x1
- bl sub_8028B04
-_08029A12:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80299D8
-
- thumb_func_start sub_8029A18
-sub_8029A18:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029A66
- ldr r0, [sp]
- cmp r0, 0x11
- beq _08029A3C
- cmp r0, 0x11
- bgt _08029A36
- cmp r0, 0xA
- beq _08029A60
- b _08029A66
-_08029A36:
- cmp r0, 0x12
- beq _08029A58
- b _08029A66
-_08029A3C:
- movs r0, 0x3
- bl sub_8024108
- lsls r0, 24
- cmp r0, 0
- beq _08029A50
- movs r0, 0x31
- bl sub_8028B04
- b _08029A66
-_08029A50:
- movs r0, 0x32
- bl sub_8028B04
- b _08029A66
-_08029A58:
- movs r0, 0x4
- bl sub_8028B04
- b _08029A66
-_08029A60:
- movs r0, 0x1
- bl sub_8028B04
-_08029A66:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029A18
-
- thumb_func_start sub_8029A6C
-sub_8029A6C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029A80
- movs r0, 0x2E
- bl sub_8028B04
-_08029A80:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029A6C
-
- thumb_func_start sub_8029A88
-sub_8029A88:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029AAA
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08029AAA
- bl sub_8012750
- movs r0, 0x39
- bl sub_8028B04
-_08029AAA:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029A88
-
- thumb_func_start sub_8029AB0
-sub_8029AB0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029AD0
- movs r0, 0x38
- bl sub_8028B04
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl sub_8012574
-_08029AD0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029AB0
-
- thumb_func_start sub_8029AD8
-sub_8029AD8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029AEC
- movs r0, 0x3B
- bl sub_8028B04
-_08029AEC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029AD8
-
- thumb_func_start sub_8029AF4
-sub_8029AF4:
- push {lr}
- bl sub_8031DCC
- cmp r0, 0x1
- beq _08029B2C
- cmp r0, 0x1
- bcc _08029B30
- cmp r0, 0x3
- bhi _08029B30
- bl sub_8031E10
- bl sub_8004914
- ldr r0, _08029B28
- ldr r0, [r0]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x3C
- bl sub_8028B04
- b _08029B30
- .align 2, 0
-_08029B28: .4byte gUnknown_203B2C0
-_08029B2C:
- bl sub_8031E00
-_08029B30:
- pop {r0}
- bx r0
- thumb_func_end sub_8029AF4
-
- thumb_func_start sub_8029B34
-sub_8029B34:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08029B48
- movs r0, 0x3
- bl sub_8028B04
-_08029B48:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8029B34
-
thumb_func_start sub_8029B50
sub_8029B50:
push {r4,r5,lr}
diff --git a/data/data_80B9BB8.s b/data/data_80B9BB8.s
index c564236..beae3c9 100644
--- a/data/data_80B9BB8.s
+++ b/data/data_80B9BB8.s
@@ -2383,23 +2383,116 @@ gUnknown_80DD958: @ 80DD958
.global gUnknown_80DD970
gUnknown_80DD970: @ 80DD970
- .incbin "baserom.gba", 0xDD970, 0x7C
+@ replacing .incbin "baserom.gba", 0x000dd970, 0x7c
+ .4byte gWonderMailReceiveSOSMail
+ .byte 0x00, 0x00, 0x00, 0x00
+ .4byte gWonderMailLeaveForRescue
+ .byte 0x01, 0x00, 0x00, 0x00
+ .4byte gWonderMailSendAOKMail
+ .byte 0x02, 0x00, 0x00, 0x00
+ .4byte gWonderMailDeleteMail
+ .byte 0x03, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global gWonderMailCancel @ 80DD9A0
+ gWonderMailCancel:
+ .string "Cancel\0"
+ .align 2,0
+
+ .global gWonderMailDeleteMail @ 80DD9A8
+ gWonderMailDeleteMail:
+ .string "Delete Mail\0"
+ .align 2,0
+
+ .global gWonderMailSendAOKMail @ 80DD9B4
+ gWonderMailSendAOKMail:
+ .string "Send A-OK Mail\0"
+ .align 2,0
+
+ .global gWonderMailLeaveForResuce @ 80DD9C4
+ gWonderMailLeaveForRescue:
+ .string "Leave for Rescue\0"
+ .align 2,0
+
+ .global gWonderMailReceiveSOSMail @ 80DD9D8
+ gWonderMailReceiveSOSMail:
+ .string "Receive SOS Mail\0"
+ .align 2,0
.global gUnknown_80DD9EC
gUnknown_80DD9EC: @ 80DD9EC
- .incbin "baserom.gba", 0xDD9EC, 0x5C
+@ replacing .incbin "baserom.gba", 0x000dd9ec, 0x5c
+ .4byte gWonderMailDeleteSOSMail
+ .byte 0x05, 0x00, 0x00, 0x00
+ .4byte gWonderMailDeleteAOKMail
+ .byte 0x06, 0x00, 0x00, 0x00
+ .4byte gWonderMailDeleteAllMail
+ .byte 0x07, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global gWonderMailDeleteAllMail @ 80DDA14
+ gWonderMailDeleteAllMail:
+ .string "Delete All Mail\0"
+ .align 2,0
+
+ .global gWonderMailDeleteAOKMail @ 80DDA24
+ gWonderMailDeleteAOKMail:
+ .string "Delete A-OK Mail\0"
+ .align 2,0
+
+ .global gWonderMailDeleteSOSMail @ 80DDA38
+ gWonderMailDeleteSOSMail:
+ .string "Delete SOS Mail\0"
+ .align 2,0
.global gUnknown_80DDA48
gUnknown_80DDA48: @ 80DDA48
- .incbin "baserom.gba", 0xDDA48, 0x1C
+@ Menu that shows up when you enter an incorrect Wonder Mail Password
+@ replacing .incbin "baserom.gba", 0x000dda48, 0x1c
+ .4byte gWonderMailYes
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global gWonderMailYes @ (80DDA60)
+ gWonderMailYes:
+ .string "Yes\0"
+ .align 2,0
.global gUnknown_80DDA64
gUnknown_80DDA64: @ 80DDA64
- .incbin "baserom.gba", 0xDDA64, 0x1C
+@ replacing .incbin "baserom.gba", 0x000dda64, 0x1c
+ .4byte gWonderMailYes
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte gWonderMailNo
+ .byte 0x09, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global gWonderMailNo @ (80DDA7C)
+ gWonderMailNo:
+ .string "No\0"
+ .align 2,0
.global gUnknown_80DDA80
gUnknown_80DDA80: @ 80DDA80
- .incbin "baserom.gba", 0xDDA80, 0x20
+@ replacing .incbin "baserom.gba", 0x000dda80, 0x20
+ .4byte gWonderMailYes
+ .byte 0x08, 0x00, 0x00, 0x00
+ .4byte gWonderMailNo
+ .byte 0x09, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
.global gUnknown_80DDAA0
gUnknown_80DDAA0: @ 80DDAA0
diff --git a/data/text/wonder_mail_1.inc b/data/text/wonder_mail_1.inc
index a7611fa..fdb94ef 100644
--- a/data/text/wonder_mail_1.inc
+++ b/data/text/wonder_mail_1.inc
@@ -244,41 +244,41 @@ gUnknown_80DE93C:: @ 80DE93C
.string " Come again anytime!\0"
.align 2, 0
-gUnknown_80DE954:: @ 80DE954
+gWonderMailErrorText:: @ 80DE954
.string " ...Uh~2c no?\n"
.string "Something~27s not working right here...\0"
.align 2, 0
-gUnknown_80DE98C:: @ 80DE98C
+gWonderMailNumGBAsText:: @ 80DE98C
.string " ...Uh~2c no?\n"
.string "The number of GBA systems isn~27t right.\n"
.string "You~27d better try this again from the top.\0"
.align 2, 0
-gUnknown_80DE9F0:: @ 80DE9F0
+gWonderMailWrongModeText:: @ 80DE9F0
.string " ...Uh~2c no? You~27re not in the\n"
.string "same mode as your friend.\n"
.string "You~27d better try this again from the top.\0"
.align 2, 0
-gUnknown_80DEA58:: @ 80DEA58
+gWonderMailStorageFullText:: @ 80DEA58
.string " ...Uh~2c no?\n"
.string "Your storage space is stuffed full.\n"
.string "You~27d better make room and try again.\0"
.align 2, 0
-gUnknown_80DEAB4:: @ 80DEAB4
+gWonderMailDuplicateText:: @ 80DEAB4
.string " ...Uh~2c no? It looks like\n"
.string "you received this mail before.\n"
.string "You can~27t get the same mail twice. \0"
.align 2, 0
-gUnknown_80DEB18:: @ 80DEB18
+gWonderMailNotEligibleReceiveText:: @ 80DEB18
.string " ...Uh~2c no?\n"
.string "You~27re not eligible to receive this mail.\0"
.align 2, 0
-gUnknown_80DEB54:: @ 80DEB54
+gWonderMailNoRoomText:: @ 80DEB54
.string " ...Uh~2c no?\n"
.string "There~27s no room for you to \n"
.string "receive any more mail.#P"
@@ -287,24 +287,24 @@ gUnknown_80DEB54:: @ 80DEB54
.string "me again about receiving new mail.\0"
.align 2, 0
-gUnknown_80DEC00:: @ 80DEC00
+gWonderMailFriendErrorText:: @ 80DEC00
.string " ...Uh~2c no? Looks like your\n"
.string "friend didn~27t do what needed doing.\n"
.string "You~27d better do this again from the top.\0"
.align 2, 0
-gUnknown_80DEC70:: @ 80DEC70
+gWonderMailPasswordIncorrectText:: @ 80DEC70
.string " ...Uh~2c no?\n"
.string "This here password looks wrong.\n"
.string "Do you want to try that again?\0"
.align 2, 0
-gUnknown_80DECC0:: @ 80DECC0
+gWonderMailSOSPasswordIncorrectText:: @ 80DECC0
.string " ...Uh~2c no? This password~27s\n"
.string "not for any #CGSOS Mail#R.\0"
.align 2, 0
-gUnknown_80DECFC:: @ 80DECFC
+gWonderMailAOKMailReceivedText:: @ 80DECFC
.string ": I received the #CGSOS Mail#R.\n"
.string "Your adventure will be saved.\0"
.align 2, 0
diff --git a/ld_script.txt b/ld_script.txt
index 0e1ea51..12b80e5 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -96,8 +96,8 @@ SECTIONS {
asm/code_801D760.o(.text);
src/code_8027C84_pre.o(.text);
asm/code_8027C84.o(.text);
- src/code_8028DE8.o(.text);
- asm/code_8028DE8.o(.text);
+ src/wonder_mail.o(.text);
+ asm/wonder_mail.o(.text);
asm/personality_test.o(.text);
src/personality_test.o(.text);
asm/code_803D110.o(.text);
diff --git a/src/code_8028DE8.c b/src/code_8028DE8.c
deleted file mode 100644
index f65fecb..0000000
--- a/src/code_8028DE8.c
+++ /dev/null
@@ -1,294 +0,0 @@
-#include "global.h"
-
-extern u32 sub_80144A4(s32 *r0);
-extern void sub_8028B04(u32);
-extern void sub_8011C28(u32);
-extern void sub_8012574(u32);
-extern u8 sub_8012600();
-extern void sub_8012750();
-extern void sub_8095240(u8);
-
-extern void sub_809927C(u8);
-extern u32 *gUnknown_203B2C0;
-extern u8 sub_8030C20(u32);
-extern u32 sub_8031050();
-extern void sub_80310B4();
-extern u32 sub_8095350();
-
-void sub_8028CE0()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(3);
-}
-
-void sub_8028CFC()
-{
- s32 temp;
- u32 temp2;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- switch(sub_8031050())
- {
- case 2:
- case 3:
- temp2 = sub_8095350();
- sub_80310B4();
- if(temp2 != gUnknown_203B2C0[0xA8 << 1])
- {
- sub_8028B04(0x17);
- }
- else
- {
- sub_8028B04(0x19);
- }
- break;
- default:
- break;
- }
-}
-
-void sub_8028D4C()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- gUnknown_203B2C0[0xA7 << 1] = temp;
- switch((s32)gUnknown_203B2C0[0xA7 << 1])
- {
- case 5:
- if(sub_8030C20(2) != 0)
- {
- sub_8028B04(12);
- }
- else
- {
- sub_8028B04(13);
- }
- break;
- case 6:
- if(sub_8030C20(4) != 0)
- {
- sub_8028B04(14);
- }
- else
- {
- sub_8028B04(15);
- }
- break;
- case 7:
- if(sub_8030C20(0) != 0)
- {
- sub_8028B04(16);
- }
- else
- {
- sub_8028B04(17);
- }
- break;
- case 0xA:
- sub_8028B04(1);
- break;
- default:
- break;
- }
-}
-
-void sub_8028DE8(u32 r0)
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(r0);
-}
-
-void sub_8028E08()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(0x12);
-}
-
-void sub_8028E24()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- switch(temp)
- {
- case 0x8:
- sub_8028B04(0x13);
- break;
- case 0xA:
- sub_8028B04(1);
- break;
- default:
- break;
- }
-}
-
-void sub_8028E54()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- switch(temp)
- {
- case 0x8:
- sub_8028B04(0x14);
- break;
- case 0xA:
- sub_8028B04(1);
- break;
- default:
- break;
- }
-}
-
-void sub_8028E84()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(0x18);
- sub_8011C28(1);
- sub_8012574(0);
-}
-
-void sub_8028EAC()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- if(sub_8012600() == 0)
- {
- sub_8012750();
- sub_8028B04(0x19);
- }
-}
-
-void sub_8028ED4()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- if(temp == 8)
- {
- sub_8028B04(0xB);
- }
- else
- {
- switch(temp){
- case 0x8:
- sub_8028B04(0x2);
- break;
- case 0x9:
- case 0xA:
- sub_8028B04(0x2);
- break;
- default:
- break;
- }
- }
-}
-
-void sub_8028F04()
-{
- s32 temp;
- s32 counter;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- for(counter = 0; counter <= 0x1F; counter++)
- {
- sub_8095240(counter);
- }
- sub_8028B04(0x15);
-}
-
-void sub_8028F30()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(0x16);
- sub_8011C28(1);
- sub_8012574(0);
-}
-
-void sub_8028F58()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- if(sub_8012600() == 0)
- {
- sub_8012750();
- sub_8028B04(2);
- }
-}
-
-void sub_8028F80()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_809927C(gUnknown_203B2C0[0x86]);
- gUnknown_203B2C0[335] = 1;
- sub_8028B04(3);
-}
-
-void sub_8028FC0()
-{
- s32 temp;
-
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- sub_8028B04(1);
-}
-
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
new file mode 100644
index 0000000..c3fa39b
--- /dev/null
+++ b/src/wonder_mail.c
@@ -0,0 +1,1444 @@
+#include "global.h"
+
+// Wonder Mail Related
+struct WonderMailStruct_203B2C0
+{
+ u32 unk0;
+ u32 unk4;
+ u8 padding2[0x38];
+ u32 unk40;
+ u32 unk44;
+ u16 unk48[232];
+ u8 unk218;
+ u8 padding7[3];
+ u32 unk21C;
+ u8 padding[0x7C];
+ u32 unk29C;
+ u8 padding6[0x6C];
+ u32 unk30C;
+ u8 padding8[0x4C];
+ u32 unk35C;
+ u8 padding5[0x5C];
+ u32 unk3BC;
+ u8 padding4[0x60];
+ u32 unk420;
+ u8 padding3[0x110];
+ u32 unk534;
+ s32 unk538; // A7 << 3
+ u32 unk53C;
+ u32 unk540; // A8 << 4
+ s16 unk544;
+};
+
+struct unkStruct_8095228
+{
+ u32 unk0;
+ u8 unk4;
+ u8 padding[0x27];
+ s8 unk30;
+};
+
+struct unkStruct_80293F4
+{
+ // size of 0x44
+ u32 unk0;
+ u32 unk4;
+ u32 unk8;
+ u32 *unkC;
+ u32 unk10;
+ u8 unk14[0xA]; // very unsure about this one
+ u32 unk20;
+ u32 unk24;
+ u32 padding[7];
+};
+
+
+extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
+
+extern u32 sub_80144A4(s32 *r0);
+extern void sub_8011C28(u32);
+extern void sub_8012574(u32);
+extern u8 sub_8012600();
+extern void sub_8012750();
+extern void sub_8095240(u8);
+
+extern void sub_809927C(u8);
+extern u8 sub_8030C20(u32);
+extern u32 sub_8031050();
+extern void sub_80310B4();
+extern u32 sub_8095350();
+
+extern struct unkStruct_8095228 *sub_8095228(u8);
+extern u8 sub_80A2824(u32);
+
+extern u32 gWonderMailErrorText;
+extern u32 gWonderMailNumGBAsText;
+extern u32 gWonderMailWrongModeText;
+extern u32 gWonderMailStorageFullText;
+extern u32 gWonderMailDuplicateText;
+extern u32 gWonderMailNotEligibleReceiveText;
+extern u32 gWonderMailNoRoomText;
+extern u32 gWonderMailFriendErrorText;
+extern u32 gWonderMailPasswordIncorrectText;
+extern u32 gWonderMailSOSPasswordIncorrectText;
+extern u32 gWonderMailDuplicateText;
+extern u32 gWonderMailAOKMailReceivedText;
+
+extern s32 sub_8095190(void);
+extern u32 sub_8095324(u32);
+extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32);
+extern void nullsub_130(void);
+extern void sub_8028348(void);
+extern void sub_800641C(void *r0, u8, u8);
+extern void sub_8004914();
+extern void sub_803084C();
+extern u32 sub_8030768(u32);
+extern u8 sub_80307EC();
+extern void sub_8030D40(u8, u32);
+extern void sub_8006518(u32 *r0);
+extern u8 sub_8012FD8(u32 *r0);
+extern void sub_8030810(u32);
+extern void sub_8035CC0(u32 *r0, u32);
+extern void sub_8035CF4(u32 *r0, u32, u32);
+extern u32 sub_8030DA0(void);
+extern void sub_8030DE4(void);
+extern void sub_803092C(void);
+extern void sub_8011C28(u32);
+extern void sub_8012574(u32);
+extern u8 sub_8012600();
+extern u32 sub_8012744();
+extern void sub_8012750();
+
+
+extern u32 sub_80154F0();
+void MemoryFill8(u8 *dest, u8 value, s32 size);
+extern u32 sub_8039068(u32, u32 *r1, u8 *r0);
+extern u32 gUnknown_80DDA48;
+extern void sub_8014248(u32 *r0, u32, u32, u32 *r1);
+extern void sub_8095274(u32);
+extern void sub_80155F0();
+extern void sub_80951BC(u8 *r0);
+extern void sub_8013114(u32 *r0, s32 *r1);
+extern void sub_8035CC0(u32 *r0, u32);
+extern void sub_8023C60();
+extern u32 sub_8023A94(u32);
+extern void sub_8024458(s16, u32);
+extern u16 sub_8023B44();
+extern void sub_8023B7C(u32);
+extern u32 sub_80244E4();
+extern void sub_802452C();
+extern void sub_802453C();
+extern u8 sub_8024108(u32);
+extern u32 sub_8031DCC();
+extern void sub_8031E10();
+extern void sub_8031E00();
+
+void sub_8028B04(u32 r0)
+{
+ gUnknown_203B2C0->unk4 = r0;
+ nullsub_130();
+ sub_8028348();
+}
+
+// Wonder Mail Linking...
+void sub_8028B1C(u32 r0)
+{
+ switch(r0)
+ {
+ case 0:
+ break;
+ case 1:
+ case 2:
+ sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 3:
+ sub_80141B4(&gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 4:
+ sub_80141B4(&gWonderMailWrongModeText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 5:
+ sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 6:
+ sub_80141B4(&gWonderMailStorageFullText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 7:
+ sub_80141B4(&gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 8:
+ break;
+ case 9:
+ sub_80141B4(&gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 10:
+ break;
+ case 11:
+ sub_80141B4(&gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 12:
+ break;
+ case 13:
+ sub_80141B4(&gWonderMailNoRoomText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 14:
+ sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ case 15:
+ sub_80141B4(&gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8028BF0(void)
+{
+ u32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ gUnknown_203B2C0->unk40 = 8;
+ gUnknown_203B2C0->unk544 = 0xffff;
+ switch(temp)
+ {
+ case 0:
+ gUnknown_203B2C0->unk40 = 3;
+ gUnknown_203B2C0->unk538 = 0;
+ if(sub_8095190() != -1)
+ {
+ sub_8028B04(8);
+ }
+ else
+ {
+ sub_8028B04(9);
+ }
+ break;
+ case 1:
+ if(sub_8095324(2) != 0)
+ {
+ sub_8028B04(30);
+ }
+ else
+ {
+ sub_8028B04(26);
+ }
+ break;
+ case 2:
+ gUnknown_203B2C0->unk40 = 4;
+ gUnknown_203B2C0->unk538 = 2;
+ if(sub_8095324(4) != 0)
+ {
+ sub_8028B04(41);
+ }
+ else
+ {
+ sub_8028B04(47);
+ }
+ break;
+ case 3:
+ sub_8028B04(11);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ break;
+ case 10:
+ sub_8028B04(2);
+ break;
+ default:
+ break;
+ }
+}
+
+
+void sub_8028CE0()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(3);
+}
+
+void sub_8028CFC()
+{
+ s32 temp;
+ u32 temp2;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(sub_8031050())
+ {
+ case 2:
+ case 3:
+ temp2 = sub_8095350();
+ sub_80310B4();
+ if(temp2 != gUnknown_203B2C0->unk540)
+ {
+ sub_8028B04(23);
+ }
+ else
+ {
+ sub_8028B04(25);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8028D4C()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ gUnknown_203B2C0->unk538 = temp;
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 5:
+ if(sub_8030C20(2) != 0)
+ {
+ sub_8028B04(12);
+ }
+ else
+ {
+ sub_8028B04(13);
+ }
+ break;
+ case 6:
+ if(sub_8030C20(4) != 0)
+ {
+ sub_8028B04(14);
+ }
+ else
+ {
+ sub_8028B04(15);
+ }
+ break;
+ case 7:
+ if(sub_8030C20(0) != 0)
+ {
+ sub_8028B04(16);
+ }
+ else
+ {
+ sub_8028B04(17);
+ }
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8028DE8(u32 r0)
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(r0);
+}
+
+void sub_8028E08()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(18);
+}
+
+void sub_8028E24()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ sub_8028B04(19);
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8028E54()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ sub_8028B04(20);
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8028E84()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(24);
+ sub_8011C28(1);
+ sub_8012574(0);
+}
+
+void sub_8028EAC()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(sub_8012600() == 0)
+ {
+ sub_8012750();
+ sub_8028B04(25);
+ }
+}
+
+void sub_8028ED4()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(temp == 8)
+ {
+ sub_8028B04(11);
+ }
+ else
+ {
+ switch(temp){
+ case 8:
+ sub_8028B04(2);
+ break;
+ case 9:
+ case 10:
+ sub_8028B04(2);
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void sub_8028F04()
+{
+ s32 temp;
+ s32 counter;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ for(counter = 0; counter <= 31; counter++)
+ {
+ sub_8095240(counter);
+ }
+ sub_8028B04(21);
+}
+
+void sub_8028F30()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(22);
+ sub_8011C28(1);
+ sub_8012574(0);
+}
+
+void sub_8028F58()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(sub_8012600() == 0)
+ {
+ sub_8012750();
+ sub_8028B04(2);
+ }
+}
+
+void sub_8028F80()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_809927C(gUnknown_203B2C0->unk218);
+ gUnknown_203B2C0->unk53C = 1;
+ sub_8028B04(3);
+}
+
+void sub_8028FC0()
+{
+ s32 temp;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(1);
+}
+
+void sub_8028FDC(void)
+{
+ s32 temp;
+ struct unkStruct_8095228 *return_var;
+
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ return_var = sub_8095228(gUnknown_203B2C0->unk218);
+ if(sub_80A2824(return_var->unk4) == 0)
+ {
+ sub_8028B04(0x1C);
+ }
+ else
+ {
+ if(return_var->unk30 <= 0)
+ {
+ sub_8028B04(0x1D);
+ }
+ else
+ {
+ sub_8028B04(0x1B);
+ }
+ }
+ break;
+ case 9:
+ case 10:
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8029044(void)
+{
+ switch(sub_8030768(1))
+ {
+ case 2:
+ sub_803084C();
+ sub_8028B04(1);
+ break;
+ case 3:
+ gUnknown_203B2C0->unk218 = sub_80307EC();
+ sub_8028B04(32);
+ break;
+ case 4:
+ gUnknown_203B2C0->unk0 = 0x1F;
+ gUnknown_203B2C0->unk218 = sub_80307EC();
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8030D40(gUnknown_203B2C0->unk218, 0);
+ sub_8028B04(33);
+ break;
+ }
+}
+
+void sub_80290D4(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(31);
+}
+
+void sub_80290F0(void)
+{
+ s32 temp;
+ temp = -1;
+ sub_8030768(0);
+ if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
+ {
+ sub_8013114(&(gUnknown_203B2C0->unk30C), &temp);
+ }
+ switch(temp)
+ {
+ case 11:
+ sub_803084C();
+ sub_8028B04(34);
+ break;
+ case 12:
+ gUnknown_203B2C0->unk0 = 0x3D;
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8030D40(gUnknown_203B2C0->unk218, 0);
+ sub_8028B04(33);
+ break;
+ case 4:
+ case 10:
+ sub_8035CC0(&(gUnknown_203B2C0->unk35C), 2);
+ sub_8030810(1);
+ sub_8028B04(31);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_80291AC(void)
+{
+ switch(sub_8030DA0())
+ {
+ case 2:
+ case 3:
+ sub_8030DE4();
+ sub_8004914();
+ sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1);
+ sub_803092C();
+ if(gUnknown_203B2C0->unk0 == 0x3D)
+ {
+ sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
+ sub_8028B04(0x20);
+ }
+ else
+ {
+ sub_8028B04(gUnknown_203B2C0->unk0);
+ }
+ default:
+ break;
+ }
+}
+
+void sub_8029208(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+
+ case 13:
+ case 14:
+ gUnknown_203B2C0->unk534 = 0xD;
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 0:
+ sub_8028B04(4);
+ break;
+ case 2:
+ sub_8028B04(0x30);
+ break;
+ default:
+ return;
+ }
+ break;
+ case 15:
+ gUnknown_203B2C0->unk534 = temp;
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 0:
+ sub_8028B04(0x26);
+ break;
+ case 2:
+ sub_8028B04(0x3A);
+ break;
+ default:
+ return;
+ }
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ }
+}
+
+void sub_80292A4(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 0:
+ case 2:
+ sub_8028B04(5);
+ break;
+ }
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ }
+}
+
+void sub_80292EC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(gUnknown_203B2C0->unk44 == 0)
+ {
+ switch(gUnknown_203B2C0->unk538)
+ {
+ case 0:
+ sub_8028B04(0x23);
+ break;
+ case 2:
+ sub_8028B04(0x37);
+ break;
+ }
+ }
+ else
+ {
+ sub_8028B1C(gUnknown_203B2C0->unk44);
+ sub_8028B04(0x7);
+ }
+}
+
+void sub_802933C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(1);
+}
+
+void sub_8029358(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(1);
+}
+
+void sub_8029374(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x24);
+ sub_8011C28(1);
+ sub_8012574(0);
+}
+
+void sub_802939C(void)
+{
+ s32 temp;
+ u32 return_var;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(sub_8012600() == 0)
+ {
+ return_var = sub_8012744();
+ sub_8012750();
+ if(return_var == 0)
+ {
+ sub_8028B04(0x25);
+ }
+ else
+ {
+ sub_8028B04(0x2);
+ }
+ }
+}
+
+void sub_80293D8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x27);
+}
+
+#ifndef NONMATCHING
+NAKED
+#endif
+void sub_80293F4(void)
+{
+#ifdef NONMATCHING
+ u32 return_var;
+ u32 temp_var;
+ struct unkStruct_80293F4 temp;
+ return_var = sub_80154F0();
+ MemoryFill8(temp.unk14, 0, 0x30);
+ switch(return_var)
+ {
+ case 3:
+ return_var = sub_8039068(0x1C, &(gUnknown_203B2C0->unk8), temp.unk14) - 7;
+ if(return_var <= 0x11)
+ {
+ switch(return_var)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ break;
+ case 10:
+ // TODO one register off from matching
+ temp.unk0 = 0;
+ temp.unk4 = 4;
+ temp.unk8 = 0;
+ temp.unkC = &(gUnknown_203B2C0->unk420);
+ temp.unk10 = 0xC;
+ sub_8014248(&gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48);
+ sub_8028B04(0x28);
+ break;
+ case 11:
+ sub_80141B4(&gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ sub_8028B04(7);
+ break;
+ case 0:
+ sub_80141B4(&gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d);
+ sub_8028B04(7);
+ break;
+ case 12:
+ case 13:
+ case 14:
+ break;
+ case 15:
+ sub_8095274(temp.unk24);
+ // This one is iffy.. not sure
+ temp.unk14[0] = 2;
+ sub_80951BC(temp.unk14);
+ sub_80141B4(&gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->unk420, 0x101);
+ sub_8028B04(0x23);
+ break;
+ case 16:
+ case 17:
+ default:
+ break;
+ }
+ }
+ sub_80155F0();
+ break;
+ case 2:
+ sub_80155F0();
+ sub_8004914();
+ sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1);
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+#else
+ asm_unified("\tpush {r4,lr}\n"
+ "\tsub sp, 0x44\n"
+ "\tbl sub_80154F0\n"
+ "\tadds r4, r0, 0\n"
+ "\tadd r0, sp, 0x14\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0x30\n"
+ "\tbl MemoryFill8\n"
+ "\tcmp r4, 0x2\n"
+ "\tbne _0802940E\n"
+ "\tb _08029530\n"
+"_0802940E:\n"
+ "\tcmp r4, 0x3\n"
+ "\tbeq _08029414\n"
+ "\tb _08029550\n"
+"_08029414:\n"
+ "\tldr r0, _08029434\n"
+ "\tldr r1, [r0]\n"
+ "\tadds r1, 0x8\n"
+ "\tmovs r0, 0x1C\n"
+ "\tadd r2, sp, 0x14\n"
+ "\tbl sub_8039068\n"
+ "\tsubs r0, 0x7\n"
+ "\tcmp r0, 0x11\n"
+ "\tbls _0802942A\n"
+ "\tb _0802951C\n"
+"_0802942A:\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _08029438\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+"_08029434: .4byte gUnknown_203B2C0\n"
+"_08029438: .4byte _0802943C\n"
+ "\t.align 2, 0\n"
+"_0802943C:\n"
+ "\t.4byte _080294C8\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _08029484\n"
+ "\t.4byte _080294C0\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _080294F0\n"
+ "\t.4byte _0802951C\n"
+ "\t.4byte _0802951C\n"
+"_08029484:\n"
+ "\tldr r0, _080294B4\n"
+ "\tldr r3, _080294B8\n"
+ "\tmovs r2, 0\n"
+ "\tstr r2, [sp]\n"
+ "\tmovs r1, 0x4\n"
+ "\tstr r1, [sp, 0x4]\n"
+ "\tstr r2, [sp, 0x8]\n"
+ "\tldr r1, _080294BC\n"
+ "\tldr r1, [r1]\n"
+ "\tmovs r2, 0x84\n"
+ "\tlsls r2, 3\n"
+ "\tadds r1, r2\n"
+ "\tstr r1, [sp, 0xC]\n"
+ "\tmovs r1, 0xC\n"
+ "\tstr r1, [sp, 0x10]\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0x8\n"
+ "\tbl sub_8014248\n"
+ "\tmovs r0, 0x28\n"
+ "\tbl sub_8028B04\n"
+ "\tb _0802951C\n"
+ "\t.align 2, 0\n"
+"_080294B4: .4byte gWonderMailPasswordIncorrectText\n"
+"_080294B8: .4byte gUnknown_80DDA48\n"
+"_080294BC: .4byte gUnknown_203B2C0\n"
+"_080294C0:\n"
+ "\tldr r0, _080294C4\n"
+ "\tb _080294CA\n"
+ "\t.align 2, 0\n"
+"_080294C4: .4byte gWonderMailSOSPasswordIncorrectText\n"
+"_080294C8:\n"
+ "\tldr r0, _080294E4\n"
+"_080294CA:\n"
+ "\tldr r1, _080294E8\n"
+ "\tldr r2, [r1]\n"
+ "\tmovs r1, 0x84\n"
+ "\tlsls r1, 3\n"
+ "\tadds r2, r1\n"
+ "\tldr r3, _080294EC\n"
+ "\tmovs r1, 0\n"
+ "\tbl sub_80141B4\n"
+ "\tmovs r0, 0x7\n"
+ "\tbl sub_8028B04\n"
+ "\tb _0802951C\n"
+ "\t.align 2, 0\n"
+"_080294E4: .4byte gWonderMailDuplicateText\n"
+"_080294E8: .4byte gUnknown_203B2C0\n"
+"_080294EC: .4byte 0x0000010d\n"
+"_080294F0:\n"
+ "\tldr r0, [sp, 0x24]\n"
+ "\tbl sub_8095274\n"
+ "\tadd r1, sp, 0x14\n"
+ "\tmovs r0, 0x2\n"
+ "\tstrb r0, [r1]\n"
+ "\tadds r0, r1, 0\n"
+ "\tbl sub_80951BC\n"
+ "\tldr r0, _08029524\n"
+ "\tldr r1, _08029528\n"
+ "\tldr r2, [r1]\n"
+ "\tmovs r1, 0x84\n"
+ "\tlsls r1, 3\n"
+ "\tadds r2, r1\n"
+ "\tldr r3, _0802952C\n"
+ "\tmovs r1, 0\n"
+ "\tbl sub_80141B4\n"
+ "\tmovs r0, 0x23\n"
+ "\tbl sub_8028B04\n"
+"_0802951C:\n"
+ "\tbl sub_80155F0\n"
+ "\tb _08029550\n"
+ "\t.align 2, 0\n"
+"_08029524: .4byte gWonderMailAOKMailReceivedText\n"
+"_08029528: .4byte gUnknown_203B2C0\n"
+"_0802952C: .4byte 0x00000101\n"
+"_08029530:\n"
+ "\tbl sub_80155F0\n"
+ "\tbl sub_8004914\n"
+ "\tldr r0, _08029558\n"
+ "\tldr r0, [r0]\n"
+ "\tmovs r2, 0xEF\n"
+ "\tlsls r2, 2\n"
+ "\tadds r0, r2\n"
+ "\tmovs r1, 0x1\n"
+ "\tmovs r2, 0x1\n"
+ "\tbl sub_800641C\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl sub_8028B04\n"
+"_08029550:\n"
+ "\tadd sp, 0x44\n"
+ "\tpop {r4}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_08029558: .4byte gUnknown_203B2C0\n");
+#endif
+}
+
+void sub_802955C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ sub_8028B04(0x26);
+ break;
+ case 10:
+ sub_8028B04(1);
+ break;
+ }
+}
+
+void sub_802958C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(6);
+}
+
+void sub_80295A8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 8:
+ sub_8028B04(0x8);
+ break;
+ case 9:
+ case 10:
+ sub_8028B04(1);
+ break;
+
+ }
+}
+
+void sub_80295D8(void)
+{
+ switch(sub_8030768(1))
+ {
+ case 2:
+ sub_803084C();
+ sub_8028B04(1);
+ break;
+ case 3:
+ gUnknown_203B2C0->unk218 = sub_80307EC();
+ sub_8028B04(0x2B);
+ break;
+ case 4:
+ gUnknown_203B2C0->unk0 = 0x2A;
+ gUnknown_203B2C0->unk218 = sub_80307EC();
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8030D40(gUnknown_203B2C0->unk218, 0);
+ sub_8028B04(0x2C);
+ break;
+ }
+}
+
+void sub_8029668(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x2A);
+}
+
+void sub_8029684(void)
+{
+ s32 temp;
+ temp = -1;
+ sub_8030768(0);
+ if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
+ {
+ sub_8013114(&(gUnknown_203B2C0->unk30C), &temp);
+ }
+ switch(temp)
+ {
+ case 0xB:
+ sub_803084C();
+ sub_8028B04(0x2D);
+ break;
+ case 0xC:
+ gUnknown_203B2C0->unk0 = 0x3D;
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8030D40(gUnknown_203B2C0->unk218, 0);
+ sub_8028B04(0x2C);
+ break;
+ case 0x4:
+ case 0xA:
+ sub_8035CC0(&(gUnknown_203B2C0->unk35C),2);
+ sub_8030810(1);
+ sub_8028B04(0x2A);
+ break;
+ }
+}
+
+void sub_8029740(void)
+{
+ switch(sub_8030DA0())
+ {
+ case 2:
+ case 3:
+ sub_8030DE4();
+ sub_8004914();
+ sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1);
+ sub_803092C();
+ if(gUnknown_203B2C0->unk0 == 0x3D)
+ {
+ sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
+ sub_8028B04(0x2B);
+ }
+ else
+ {
+ sub_8028B04(gUnknown_203B2C0->unk0);
+ }
+ break;
+ }
+}
+
+void sub_802979C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(1);
+}
+
+void sub_80297B8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x33);
+}
+
+void sub_80297D4(void)
+{
+ switch(sub_8023A94(1))
+ {
+ case 2:
+ sub_8023C60();
+ sub_8028B04(1);
+ gUnknown_203B2C0->unk544 = 0xffff;
+ break;
+ case 3:
+ gUnknown_203B2C0->unk544 = sub_8023B44();
+ sub_8028B04(0x34);
+ break;
+ case 4:
+ gUnknown_203B2C0->unk0 = 0x33;
+ gUnknown_203B2C0->unk544 = sub_8023B44();
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8024458(gUnknown_203B2C0->unk544, 0);
+ sub_8028B04(0x35);
+ break;
+ }
+}
+
+void sub_8029884(void)
+{
+ s32 temp;
+ temp = -1;
+ sub_8023A94(0);
+ if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0)
+ {
+ sub_8013114(&(gUnknown_203B2C0->unk30C), &temp);
+ }
+ switch(temp)
+ {
+ case 0xB:
+ sub_8023C60();
+ sub_8028B04(4);
+ break;
+ case 0xC:
+ gUnknown_203B2C0->unk0 = 0x3D;
+ sub_8006518(&(gUnknown_203B2C0->unk3BC));
+ sub_8004914();
+ sub_800641C(0, 1, 1);
+ sub_8024458(gUnknown_203B2C0->unk544, 0);
+ sub_8028B04(0x35);
+ break;
+ case 0x4:
+ case 0xA:
+ sub_8035CC0(&(gUnknown_203B2C0->unk35C), 3);
+ sub_8023B7C(1);
+ sub_8028B04(0x33);
+ break;
+ }
+}
+
+void sub_8029944(void)
+{
+ u32 temp;
+ temp = sub_80244E4();
+ if(temp == 1)
+ {
+ sub_802452C();
+ return;
+ }
+ switch(temp)
+ {
+ case 1:
+ break;
+ case 2:
+ case 3:
+ sub_802453C();
+ sub_8004914();
+ sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1);
+ sub_8023B7C(1);
+ if(gUnknown_203B2C0->unk0 == 0x3D)
+ {
+ sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
+ sub_8028B04(0x34);
+ }
+ else
+ {
+ sub_8028B04(gUnknown_203B2C0->unk0);
+ }
+
+ }
+}
+
+void sub_80299AC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 0x12:
+ sub_8028B04(4);
+ break;
+ case 0xA:
+ sub_8028B04(1);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_80299D8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+
+ case 8:
+ sub_8028B04(4);
+ break;
+ case 9:
+ sub_8028B04(0x32);
+ break;
+ case 0xA:
+ sub_8028B04(1);
+ break;
+ }
+}
+
+void sub_8029A18(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ switch(temp)
+ {
+ case 0x11:
+ if(sub_8024108(3) != 0)
+ {
+ sub_8028B04(0x31);
+ }
+ else
+ {
+ sub_8028B04(0x32);
+ }
+ break;
+ case 0x12:
+ sub_8028B04(0x4);
+ break;
+ case 0xA:
+ sub_8028B04(1);
+ break;
+ }
+}
+
+void sub_8029A6C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x2E);
+}
+
+void sub_8029A88(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ if(sub_8012600() == 0)
+ {
+ sub_8012750();
+ sub_8028B04(0x39);
+ }
+}
+
+void sub_8029AB0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x38);
+ sub_8011C28(1);
+ sub_8012574(0);
+}
+
+void sub_8029AD8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(0x3B);
+}
+
+void sub_8029AF4(void)
+{
+ switch(sub_8031DCC())
+ {
+
+ case 2:
+ case 3:
+ sub_8031E10();
+ sub_8004914();
+ sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1);
+ sub_8028B04(0x3C);
+ break;
+ case 1:
+ sub_8031E00();
+ break;
+ }
+}
+
+void sub_8029B34(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) != 0)
+ {
+ return;
+ }
+ sub_8028B04(3);
+}