diff options
-rw-r--r-- | asm/code_8027C84.s | 222 | ||||
-rw-r--r-- | asm/wonder_mail.s (renamed from asm/code_8028DE8.s) | 1460 | ||||
-rw-r--r-- | data/data_80B9BB8.s | 103 | ||||
-rw-r--r-- | data/text/wonder_mail_1.inc | 22 | ||||
-rwxr-xr-x | ld_script.txt | 4 | ||||
-rw-r--r-- | src/code_8028DE8.c | 294 | ||||
-rw-r--r-- | src/wonder_mail.c | 1444 |
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); +} |