From 94de0f869b0fc65e117b61e76d329a2c3ba000bf Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Fri, 29 Sep 2023 22:27:09 -0400 Subject: [PATCH] Defined pointers for overlay 1 --- asm/include/overlay_01.inc | 14 +++ asm/include/overlay_06.inc | 7 ++ asm/overlay_01.s | 28 +++-- asm/overlay_06.s | 238 ++++++++++++++++++++++++++++++------- 4 files changed, 232 insertions(+), 55 deletions(-) diff --git a/asm/include/overlay_01.inc b/asm/include/overlay_01.inc index 9872d131..667f4848 100644 --- a/asm/include/overlay_01.inc +++ b/asm/include/overlay_01.inc @@ -188,11 +188,25 @@ .public ov00_022E1914 .public ov00_022E1A84 .public ov00_022EF548 +.public ov03_0233CB08 +.public ov03_0233CB94 +.public ov03_0233CF9C .public ov03_0233D964 +.public ov04_0233CBB8 .public ov04_0233CC4C +.public ov04_0233D1A0 +.public ov05_0233CB9C .public ov05_0233CC10 +.public ov05_0233D398 .public ov06_0233D51C +.public ov06_0233D5A4 +.public ov06_0233DCC0 +.public ov06_0233E958 +.public ov06_0233EA1C +.public ov06_0233ECCC .public ov07_0233F6E0 +.public ov07_0233F758 +.public ov07_0233FCD8 .public PreprocessString .public PreprocessStringFromMessageId .public PrintClearMark diff --git a/asm/include/overlay_06.inc b/asm/include/overlay_06.inc index 22578d6c..c941378c 100644 --- a/asm/include/overlay_06.inc +++ b/asm/include/overlay_06.inc @@ -8,6 +8,7 @@ .public GetKeyboardStringResult .public GetLanguageType .public GetReleasedStylus +.public GetTeamNameCheck .public MemAlloc .public MemcpySimple .public MemFree @@ -26,6 +27,12 @@ .public ov01_0233769C .public ov01_023376DC .public ov01_02337718 +.public ov01_02337B3C +.public ov01_02337B68 +.public ov01_02337BA0 +.public ov01_02337C54 +.public ov01_02337D18 +.public ov01_02337E0C .public ov01_02338A24 .public ov01_02338B08 .public ov01_02338BEC diff --git a/asm/overlay_01.s b/asm/overlay_01.s index 0b147015..b3c4fc87 100644 --- a/asm/overlay_01.s +++ b/asm/overlay_01.s @@ -21861,32 +21861,40 @@ ov01_0233BCAC: .word ov01_0233723C .global ov01_0233BCBC ov01_0233BCBC: - .byte 0x06, 0x00, 0x00, 0x00, 0x08, 0xCB, 0x33, 0x02, 0x9C, 0xCF, 0x33, 0x02 - .byte 0x94, 0xCB, 0x33, 0x02 + .byte 0x06, 0x00, 0x00, 0x00 + .word ov03_0233CB08 + .word ov03_0233CF9C + .word ov03_0233CB94 .global ov01_0233BCCC ov01_0233BCCC: .byte 0x07, 0x00, 0x00, 0x00 .word ov06_0233D51C - .byte 0xC0, 0xDC, 0x33, 0x02 - .byte 0xA4, 0xD5, 0x33, 0x02 + .word ov06_0233DCC0 + .word ov06_0233D5A4 .global ov01_0233BCDC ov01_0233BCDC: - .byte 0x07, 0x00, 0x00, 0x00, 0x58, 0xE9, 0x33, 0x02, 0xCC, 0xEC, 0x33, 0x02 - .byte 0x1C, 0xEA, 0x33, 0x02 + .byte 0x07, 0x00, 0x00, 0x00 + .word ov06_0233E958 + .word ov06_0233ECCC + .word ov06_0233EA1C .global ov01_0233BCEC ov01_0233BCEC: - .byte 0x08, 0x00, 0x00, 0x00, 0xB8, 0xCB, 0x33, 0x02, 0xA0, 0xD1, 0x33, 0x02 + .byte 0x08, 0x00, 0x00, 0x00 + .word ov04_0233CBB8 + .word ov04_0233D1A0 .word ov04_0233CC4C .global ov01_0233BCFC ov01_0233BCFC: - .byte 0x09, 0x00, 0x00, 0x00, 0x9C, 0xCB, 0x33, 0x02, 0x98, 0xD3, 0x33, 0x02 + .byte 0x09, 0x00, 0x00, 0x00 + .word ov05_0233CB9C + .word ov05_0233D398 .word ov05_0233CC10 .global ov01_0233BD0C ov01_0233BD0C: .byte 0x0A, 0x00, 0x00, 0x00 .word ov07_0233F6E0 - .byte 0xD8, 0xFC, 0x33, 0x02 - .byte 0x58, 0xF7, 0x33, 0x02 + .word ov07_0233FCD8 + .word ov07_0233F758 .global ov01_0233BD1C ov01_0233BD1C: .byte 0xD6, 0x36, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD7, 0x36, 0x00, 0x00 diff --git a/asm/overlay_06.s b/asm/overlay_06.s index 12f41323..b51f307a 100644 --- a/asm/overlay_06.s +++ b/asm/overlay_06.s @@ -2319,51 +2319,199 @@ _0233E9E8: .align 2, 0 _0233EA18: .word ov06_0233EEF0 arm_func_end ov06_0233E958 -_0233EA1C: - .byte 0xF0, 0x4F, 0x2D, 0xE9 - .byte 0x24, 0xD0, 0x4D, 0xE2, 0x90, 0x02, 0x9F, 0xE5, 0x00, 0x60, 0x90, 0xE5, 0x00, 0x00, 0x96, 0xE5 - .byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x9C, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA - .byte 0x0B, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x00, 0xEA - .byte 0x6B, 0x00, 0x00, 0xEA, 0x8C, 0x00, 0x00, 0xEA, 0x90, 0x00, 0x00, 0xEA, 0x5C, 0x12, 0x9F, 0xE5 - .byte 0x1C, 0x00, 0xA0, 0xE3, 0xD7, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 - .byte 0x8E, 0x00, 0x00, 0xEA, 0xDA, 0xF8, 0xFF, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x86, 0x05, 0x89, 0x00, 0x00, 0xEA, 0xAF, 0xBF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x86, 0x00, 0x00, 0x1A, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x9F, 0x20, 0xF4, 0xEB - .byte 0x14, 0x02, 0x9F, 0xE5, 0x09, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x0A, 0x30, 0x42, 0xE2 - .byte 0xA4, 0x10, 0x80, 0xE2, 0x15, 0x00, 0xA0, 0xE3, 0xB4, 0x9F, 0xF4, 0xEB, 0x7B, 0x00, 0x00, 0xEA - .byte 0xDF, 0x9F, 0xF4, 0xEB, 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0x1A - .byte 0xE3, 0xA2, 0xF4, 0xEB, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x73, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x50, 0xE3, 0x71, 0x00, 0x00, 0x1A, 0x82, 0x4F, 0x86, 0xE2, 0x09, 0x5D, 0x86, 0xE2 - .byte 0x75, 0xA2, 0xF4, 0xEB, 0xB0, 0x0A, 0xC6, 0xE1, 0xD9, 0xA2, 0xF4, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x38, 0x10, 0xA0, 0xE3, 0xD1, 0x11, 0xF3, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x18, 0x10, 0xA0, 0xE3 - .byte 0xCE, 0x11, 0xF3, 0xEB, 0xF0, 0x0A, 0xD6, 0xE1, 0x18, 0x90, 0x84, 0xE2, 0x38, 0x80, 0xA0, 0xE3 - .byte 0x80, 0x02, 0x86, 0xE0, 0xA4, 0xA0, 0x80, 0xE2, 0x0F, 0x00, 0xBA, 0xE8, 0x0F, 0x00, 0xA9, 0xE8 - .byte 0x0F, 0x00, 0x9A, 0xE8, 0x0F, 0x00, 0x89, 0xE8, 0x58, 0x82, 0x86, 0xE5, 0x18, 0x70, 0xA0, 0xE3 - .byte 0x5C, 0x42, 0x86, 0xE5, 0x60, 0x72, 0x86, 0xE5, 0x74, 0xE1, 0x9F, 0xE5, 0x64, 0x52, 0x86, 0xE5 - .byte 0x00, 0xC0, 0xA0, 0xE3, 0x68, 0xE2, 0x86, 0xE5, 0x6C, 0xC2, 0xC6, 0xE5, 0xC4, 0x01, 0x96, 0xE5 - .byte 0x09, 0xB0, 0xA0, 0xE3, 0x00, 0xB0, 0xC0, 0xE5, 0xC4, 0x01, 0x96, 0xE5, 0x01, 0xC0, 0xC0, 0xE5 - .byte 0x12, 0x00, 0xA0, 0xE3, 0x08, 0x02, 0xC6, 0xE5, 0x11, 0x00, 0xA0, 0xE3, 0x40, 0x02, 0xC6, 0xE5 - .byte 0x86, 0x86, 0xF3, 0xEB, 0x02, 0x00, 0xC5, 0xE5, 0xD2, 0x10, 0xD5, 0xE1, 0x04, 0x00, 0x84, 0xE2 - .byte 0x02, 0x10, 0xC4, 0xE5, 0xDD, 0x47, 0xF4, 0xEB, 0x04, 0x00, 0x84, 0xE2, 0x34, 0x10, 0xA0, 0xE3 - .byte 0xE5, 0xE3, 0xFF, 0xEB, 0x03, 0x00, 0xC4, 0xE5, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 - .byte 0x3E, 0x00, 0x00, 0xEA, 0x00, 0x30, 0xA0, 0xE3, 0x96, 0x0F, 0x86, 0xE2, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x8D, 0xE5, 0x00, 0x40, 0x8D, 0xE5, 0x10, 0x30, 0x8D, 0xE5, 0x14, 0x30, 0xCD, 0xE5 - .byte 0xC4, 0x21, 0x96, 0xE5, 0x20, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE2, 0x18, 0x20, 0x8D, 0xE5 - .byte 0xBC, 0x11, 0xCD, 0xE1, 0x1E, 0x30, 0xCD, 0xE5, 0x20, 0x40, 0x8D, 0xE5, 0xEB, 0xE3, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x47, 0xE4, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 - .byte 0x2A, 0x00, 0x00, 0xEA, 0x80, 0xE4, 0xFF, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x27, 0x00, 0x00, 0x0A - .byte 0x0F, 0xE4, 0xFF, 0xEB, 0x0E, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0x90, 0x23, 0x00, 0x00, 0xEA - .byte 0x22, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA - .byte 0x09, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA - .byte 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x86, 0xE5, 0x11, 0x00, 0x00, 0xEA, 0x58, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3 - .byte 0x54, 0xF8, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x0B, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x54, 0xF8, 0xFF, 0xEB - .byte 0x12, 0x00, 0x50, 0xE3, 0x07, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x86, 0x05, 0x03, 0x00, 0x00, 0xEA - .byte 0x12, 0x00, 0xA0, 0xE3, 0x03, 0xC9, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0xA0, 0xE3, 0x24, 0xD0, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8, 0xF0, 0xEE, 0x33, 0x02 - .byte 0x19, 0x3F, 0x00, 0x00, 0x68, 0x7B, 0x33, 0x02, 0x1A, 0x3F, 0x00, 0x00 + + arm_func_start ov06_0233EA1C +ov06_0233EA1C: ; 0x0233EA1C + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + ldr r0, _0233ECBC ; =0x0233EEF0 + ldr r6, [r0] + ldr r0, [r6] + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _0233ECB0 +_0233EA3C: ; jump table + b _0233EA5C ; case 0 + b _0233EA74 ; case 1 + b _0233EA88 ; case 2 + b _0233EAC0 ; case 3 + b _0233EBB4 ; case 4 + b _0233EC04 ; case 5 + b _0233EC8C ; case 6 + b _0233ECA0 ; case 7 +_0233EA5C: + ldr r1, _0233ECC0 ; =0x00003F19 + mov r0, #0x1c + bl ov06_0233CDC8 + mov r0, #1 + str r0, [r6] + b _0233ECB0 +_0233EA74: + bl ov06_0233CDE4 + cmp r0, #0x12 + moveq r0, #2 + streq r0, [r6] + b _0233ECB0 +_0233EA88: + bl ov01_0232E94C + cmp r0, #0 + bne _0233ECB0 + mov r0, #3 + str r0, [r6] + bl sub_02046D20 + ldr r0, _0233ECBC ; =ov06_0233EEF0 + mov r2, #9 + ldr r0, [r0] + sub r3, r2, #0xa + add r1, r0, #0xa4 + mov r0, #0x15 + bl sub_02066990 + b _0233ECB0 +_0233EAC0: + bl sub_02066A44 + mvn r1, #0 + cmp r0, r1 + bne _0233EAE0 + bl sub_02067664 + mov r0, #7 + str r0, [r6] + b _0233ECB0 +_0233EAE0: + cmp r0, #1 + bne _0233ECB0 + add r4, r6, #0x208 + add r5, r6, #0x240 + bl sub_020674CC + strh r0, [r6, #0xa0] + bl sub_02067664 + mov r0, r4 + mov r1, #0x38 + bl MemZero + mov r0, r5 + mov r1, #0x18 + bl MemZero + ldrsh r0, [r6, #0xa0] + add sb, r4, #0x18 + mov r8, #0x38 + add r0, r6, r0, lsl #5 + add sl, r0, #0xa4 + ldmia sl!, {r0, r1, r2, r3} + stmia sb!, {r0, r1, r2, r3} + ldmia sl, {r0, r1, r2, r3} + stmia sb, {r0, r1, r2, r3} + str r8, [r6, #0x258] + mov r7, #0x18 + str r4, [r6, #0x25c] + str r7, [r6, #0x260] + ldr lr, _0233ECC4 ; =ov01_02337B68 + str r5, [r6, #0x264] + mov ip, #0 + str lr, [r6, #0x268] + strb ip, [r6, #0x26c] + ldr r0, [r6, #0x1c4] + mov fp, #9 + strb fp, [r0] + ldr r0, [r6, #0x1c4] + strb ip, [r0, #1] + mov r0, #0x12 + strb r0, [r6, #0x208] + mov r0, #0x11 + strb r0, [r6, #0x240] + bl GetLanguageType + strb r0, [r5, #2] + ldrsb r1, [r5, #2] + add r0, r4, #4 + strb r1, [r4, #2] + bl GetTeamNameCheck + add r0, r4, #4 + mov r1, #0x34 + bl ov01_02337B3C + strb r0, [r4, #3] + mov r0, #4 + str r0, [r6] + b _0233ECB0 +_0233EBB4: + mov r3, #0 + add r0, r6, #0x258 + mov r4, #1 + str r0, [sp, #4] + str r4, [sp] + str r3, [sp, #0x10] + strb r3, [sp, #0x14] + ldr r2, [r6, #0x1c4] + mov r1, #0x20 + add r0, sp, #0 + str r2, [sp, #0x18] + strh r1, [sp, #0x1c] + strb r3, [sp, #0x1e] + str r4, [sp, #0x20] + bl ov01_02337BA0 + mov r0, r4 + bl ov01_02337D18 + mov r0, #5 + str r0, [r6] + b _0233ECB0 +_0233EC04: + bl ov01_02337E0C + movs r4, r0 + beq _0233ECB0 + bl ov01_02337C54 + cmp r4, #0xe + addls pc, pc, r4, lsl #2 + b _0233ECB0 +_0233EC20: ; jump table + b _0233ECB0 ; case 0 + b _0233EC68 ; case 1 + b _0233ECB0 ; case 2 + b _0233ECB0 ; case 3 + b _0233EC5C ; case 4 + b _0233EC68 ; case 5 + b _0233EC68 ; case 6 + b _0233EC80 ; case 7 + b _0233EC80 ; case 8 + b _0233EC80 ; case 9 + b _0233EC80 ; case 10 + b _0233EC80 ; case 11 + b _0233EC80 ; case 12 + b _0233EC80 ; case 13 + b _0233EC80 ; case 14 +_0233EC5C: + mov r0, #4 + str r0, [r6] + b _0233ECB0 +_0233EC68: + ldr r1, _0233ECC8 ; =0x00003F1A + mov r0, #0x1c + bl ov06_0233CDC8 + mov r0, #6 + str r0, [r6] + b _0233ECB0 +_0233EC80: + mov r0, #4 + str r0, [r6] + b _0233ECB0 +_0233EC8C: + bl ov06_0233CDE4 + cmp r0, #0x12 + moveq r0, #7 + streq r0, [r6] + b _0233ECB0 +_0233ECA0: + mov r0, #0x12 + bl ov01_023310B8 + mov r0, #3 + b _0233ECB4 +_0233ECB0: + mov r0, #1 +_0233ECB4: + add sp, sp, #0x24 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233ECBC: .word ov06_0233EEF0 +_0233ECC0: .word 0x00003F19 +_0233ECC4: .word ov01_02337B68 +_0233ECC8: .word 0x00003F1A + arm_func_end ov06_0233EA1C arm_func_start ov06_0233ECCC ov06_0233ECCC: ; 0x0233ECCC