diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e554b2a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "functions.h": "c" + } +} \ No newline at end of file diff --git a/asm/high_scores.s b/asm/high_scores.s index 53ab047..0dffa41 100644 --- a/asm/high_scores.s +++ b/asm/high_scores.s @@ -4,1303 +4,6 @@ .text - thumb_func_start sub_EE64 -sub_EE64: @ 0x0800EE64 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x10 - movs r6, #0 - ldr r4, _0800EF20 @ =gUnknown_086A7FAC - ldr r5, _0800EF24 @ =gUnknown_0202C610 -_0800EE76: - ldm r5!, {r0} - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r0, #0x80 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #6 - movs r1, #1 - str r1, [sp] - str r1, [sp, #4] - movs r1, #8 - movs r3, #3 - bl sub_105A0 - adds r6, #1 - cmp r6, #3 - ble _0800EE76 - movs r5, #1 - ldr r0, _0800EF20 @ =gUnknown_086A7FAC - mov sb, r0 - ldr r1, _0800EF24 @ =gUnknown_0202C610 - mov sl, r1 -_0800EEA4: - movs r6, #0 - lsls r7, r5, #1 - adds r2, r5, #1 - mov r8, r2 - adds r4, r7, #0 - adds r0, r4, r5 - lsls r0, r0, #3 - mov r1, sl - adds r5, r0, r1 -_0800EEB6: - ldm r5!, {r0} - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #6 - movs r1, #1 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #8 - adds r3, r4, #3 - bl sub_105A0 - adds r6, #1 - cmp r6, #3 - ble _0800EEB6 - mov r5, r8 - cmp r5, #7 - ble _0800EEA4 - ldr r1, _0800EF24 @ =gUnknown_0202C610 - ldr r0, [r1, #0x10] - ldr r1, [r1, #0x14] - bl sub_F21C - movs r6, #0 - movs r5, #0xc - ldr r4, _0800EF28 @ =gUnknown_0202C5C0 - movs r7, #1 -_0800EEF4: - adds r0, r6, #1 - movs r1, #3 - bl __modsi3 - cmp r0, #0 - bne _0800EF2C - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r4] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r7, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - movs r3, #2 - bl sub_105A0 - b _0800EF44 - .align 2, 0 -_0800EF20: .4byte gUnknown_086A7FAC -_0800EF24: .4byte gUnknown_0202C610 -_0800EF28: .4byte gUnknown_0202C5C0 -_0800EF2C: - ldrh r0, [r4] - adds r0, #0xe0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r7, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - movs r3, #2 - bl sub_105A0 -_0800EF44: - adds r5, #1 - adds r4, #2 - adds r6, #1 - cmp r6, #0xd - ble _0800EEF4 - ldr r4, _0800EFC8 @ =gUnknown_0202C5C0 - ldrh r0, [r4, #0x1c] - adds r0, #0xe0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - movs r2, #0x1a - movs r3, #2 - bl sub_105A0 - movs r5, #1 - ldr r2, _0800EFCC @ =gUnknown_0202C610 - str r2, [sp, #8] - mov sl, r5 - movs r0, #2 - mov sb, r0 -_0800EF76: - lsls r4, r5, #1 - adds r1, r4, r5 - lsls r1, r1, #3 - ldr r0, [sp, #8] - adds r0, #0x10 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0800EFD0 @ =gUnknown_0202C624 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_F21C - movs r6, #0 - adds r7, r4, #0 - adds r5, #1 - mov r8, r5 - movs r5, #0xc - ldr r4, _0800EFC8 @ =gUnknown_0202C5C0 -_0800EF9A: - adds r0, r6, #1 - movs r1, #3 - bl __modsi3 - cmp r0, #0 - bne _0800EFD4 - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r4] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - str r1, [sp] - mov r2, sb - str r2, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - adds r3, r7, #3 - bl sub_105A0 - b _0800EFF4 - .align 2, 0 -_0800EFC8: .4byte gUnknown_0202C5C0 -_0800EFCC: .4byte gUnknown_0202C610 -_0800EFD0: .4byte gUnknown_0202C624 -_0800EFD4: - movs r1, #0xb0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r4] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - str r1, [sp] - mov r2, sb - str r2, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - adds r3, r7, #3 - bl sub_105A0 -_0800EFF4: - adds r5, #1 - adds r4, #2 - adds r6, #1 - cmp r6, #0xd - ble _0800EF9A - movs r1, #0xb0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldr r2, _0800F0E4 @ =gUnknown_0202C5C0 - ldrh r2, [r2, #0x1c] - adds r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r3, r7, #3 - mov r1, sl - str r1, [sp] - mov r2, sb - str r2, [sp, #4] - movs r1, #9 - movs r2, #0x1a - bl sub_105A0 - mov r5, r8 - cmp r5, #7 - ble _0800EF76 - movs r6, #0 - ldr r7, _0800F0E8 @ =gUnknown_086A7FAC - ldr r0, _0800F0EC @ =gUnknown_0202C610 - adds r5, r0, #0 - adds r5, #0xc0 - movs r4, #1 -_0800F032: - ldm r5!, {r0} - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - adds r0, #0x80 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #4 - str r4, [sp] - str r4, [sp, #4] - movs r1, #8 - movs r3, #0x23 - bl sub_105A0 - adds r6, #1 - cmp r6, #3 - ble _0800F032 - movs r5, #1 - ldr r0, _0800F0E8 @ =gUnknown_086A7FAC - mov sb, r0 - ldr r1, _0800F0F0 @ =gUnknown_0202C6D0 - mov sl, r1 -_0800F05E: - movs r6, #0 - lsls r7, r5, #1 - adds r2, r5, #1 - mov r8, r2 - adds r4, r7, #0 - adds r0, r4, r5 - lsls r0, r0, #3 - mov r1, sl - adds r5, r0, r1 -_0800F070: - ldm r5!, {r0} - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - adds r0, #0xa0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #4 - movs r1, #1 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #8 - adds r3, r4, #0 - adds r3, #0x23 - bl sub_105A0 - adds r6, #1 - cmp r6, #3 - ble _0800F070 - mov r5, r8 - cmp r5, #7 - ble _0800F05E - ldr r1, _0800F0EC @ =gUnknown_0202C610 - adds r0, r1, #0 - adds r0, #0xd0 - ldr r0, [r0] - adds r1, #0xd4 - ldr r1, [r1] - bl sub_F21C - movs r6, #0 - movs r5, #0xa - ldr r4, _0800F0E4 @ =gUnknown_0202C5C0 - movs r7, #1 -_0800F0B6: - adds r0, r6, #1 - movs r1, #3 - bl __modsi3 - cmp r0, #0 - bne _0800F0F4 - movs r2, #0x90 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r4] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r7, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - movs r3, #0x22 - bl sub_105A0 - b _0800F10C - .align 2, 0 -_0800F0E4: .4byte gUnknown_0202C5C0 -_0800F0E8: .4byte gUnknown_086A7FAC -_0800F0EC: .4byte gUnknown_0202C610 -_0800F0F0: .4byte gUnknown_0202C6D0 -_0800F0F4: - ldrh r0, [r4] - adds r0, #0xe0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r7, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - adds r2, r5, #0 - movs r3, #0x22 - bl sub_105A0 -_0800F10C: - adds r5, #1 - adds r4, #2 - adds r6, #1 - cmp r6, #0xd - ble _0800F0B6 - ldr r4, _0800F19C @ =gUnknown_0202C5C0 - lsls r0, r6, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r0, #0xe0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - str r1, [sp] - movs r1, #2 - str r1, [sp, #4] - movs r1, #9 - movs r2, #0x18 - movs r3, #0x22 - bl sub_105A0 - movs r5, #1 - ldr r2, _0800F1A0 @ =gUnknown_0202C610 - str r2, [sp, #0xc] - mov sl, r5 - movs r0, #2 - mov sb, r0 -_0800F142: - lsls r4, r5, #1 - adds r1, r4, r5 - lsls r1, r1, #3 - ldr r0, [sp, #0xc] - adds r0, #0xd0 - adds r0, r1, r0 - ldr r0, [r0] - ldr r2, _0800F1A4 @ =gUnknown_0202C6E4 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_F21C - movs r6, #0 - adds r7, r4, #0 - adds r5, #1 - mov r8, r5 -_0800F162: - adds r4, r6, #1 - adds r0, r4, #0 - movs r1, #3 - bl __modsi3 - cmp r0, #0 - bne _0800F1A8 - lsls r1, r6, #1 - ldr r0, _0800F19C @ =gUnknown_0202C5C0 - adds r1, r1, r0 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #0 - adds r2, #0xa - mov r1, sl - str r1, [sp] - mov r1, sb - str r1, [sp, #4] - movs r1, #9 - adds r3, r7, #0 - adds r3, #0x23 - bl sub_105A0 - b _0800F1D2 - .align 2, 0 -_0800F19C: .4byte gUnknown_0202C5C0 -_0800F1A0: .4byte gUnknown_0202C610 -_0800F1A4: .4byte gUnknown_0202C6E4 -_0800F1A8: - lsls r1, r6, #1 - ldr r2, _0800F218 @ =gUnknown_0202C5C0 - adds r1, r1, r2 - movs r2, #0xb0 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r2, r6, #0 - adds r2, #0xa - mov r1, sl - str r1, [sp] - mov r1, sb - str r1, [sp, #4] - movs r1, #9 - adds r3, r7, #0 - adds r3, #0x23 - bl sub_105A0 -_0800F1D2: - adds r6, r4, #0 - cmp r4, #0xd - ble _0800F162 - lsls r1, r4, #1 - ldr r2, _0800F218 @ =gUnknown_0202C5C0 - adds r1, r1, r2 - movs r2, #0xb0 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r3, r7, #0 - adds r3, #0x23 - mov r1, sl - str r1, [sp] - mov r2, sb - str r2, [sp, #4] - movs r1, #9 - movs r2, #0x18 - bl sub_105A0 - mov r5, r8 - cmp r5, #7 - ble _0800F142 - add sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F218: .4byte gUnknown_0202C5C0 - - thumb_func_start sub_F21C -sub_F21C: @ 0x0800F21C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r5, r0, #0 - adds r7, r1, #0 - cmp r5, #0 - bne _0800F250 - cmp r7, #0 - bne _0800F250 - ldr r4, _0800F24C @ =gUnknown_0202C5C0 - adds r2, r4, #0 - movs r1, #0xa - adds r0, r4, #0 - adds r0, #0x1a -_0800F23E: - strh r1, [r0] - subs r0, #2 - cmp r0, r2 - bge _0800F23E - movs r0, #0 - strh r0, [r4, #0x1c] - b _0800F392 - .align 2, 0 -_0800F24C: .4byte gUnknown_0202C5C0 -_0800F250: - ldr r0, _0800F25C @ =0x0098967F - cmp r5, r0 - bls _0800F260 - adds r5, r0, #0 - b _0800F266 - .align 2, 0 -_0800F25C: .4byte 0x0098967F -_0800F260: - ldr r0, _0800F3A4 @ =0x05F5E0FF - cmp r7, r0 - bls _0800F268 -_0800F266: - ldr r7, _0800F3A4 @ =0x05F5E0FF -_0800F268: - ldr r4, _0800F3A8 @ =gUnknown_0202C5C0 - ldr r0, _0800F3AC @ =0x000F4240 - mov sl, r0 - adds r0, r5, #0 - mov r1, sl - bl __udivsi3 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - strh r1, [r4] - adds r0, r5, #0 - mov r1, sl - bl __umodsi3 - adds r5, r0, #0 - ldr r0, _0800F3B0 @ =0x000186A0 - mov sb, r0 - adds r0, r5, #0 - mov r1, sb - bl __udivsi3 - strh r0, [r4, #2] - adds r0, r5, #0 - mov r1, sb - bl __umodsi3 - adds r5, r0, #0 - ldr r1, _0800F3B4 @ =0x00002710 - mov r8, r1 - bl __udivsi3 - strh r0, [r4, #4] - adds r0, r5, #0 - mov r1, r8 - bl __umodsi3 - adds r5, r0, #0 - movs r6, #0xfa - lsls r6, r6, #2 - adds r1, r6, #0 - bl __udivsi3 - strh r0, [r4, #6] - adds r0, r5, #0 - adds r1, r6, #0 - bl __umodsi3 - adds r5, r0, #0 - movs r1, #0x64 - bl __udivsi3 - strh r0, [r4, #8] - adds r0, r5, #0 - movs r1, #0x64 - bl __umodsi3 - adds r5, r0, #0 - movs r1, #0xa - bl __udivsi3 - strh r0, [r4, #0xa] - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - strh r0, [r4, #0xc] - ldr r5, _0800F3B8 @ =0x00989680 - adds r0, r7, #0 - adds r1, r5, #0 - bl __udivsi3 - strh r0, [r4, #0xe] - adds r0, r7, #0 - adds r1, r5, #0 - bl __umodsi3 - adds r5, r0, #0 - mov r1, sl - bl __udivsi3 - strh r0, [r4, #0x10] - adds r0, r5, #0 - mov r1, sl - bl __umodsi3 - adds r5, r0, #0 - mov r1, sb - bl __udivsi3 - strh r0, [r4, #0x12] - adds r0, r5, #0 - mov r1, sb - bl __umodsi3 - adds r5, r0, #0 - mov r1, r8 - bl __udivsi3 - strh r0, [r4, #0x14] - adds r0, r5, #0 - mov r1, r8 - bl __umodsi3 - adds r5, r0, #0 - adds r1, r6, #0 - bl __udivsi3 - strh r0, [r4, #0x16] - adds r0, r5, #0 - adds r1, r6, #0 - bl __umodsi3 - adds r5, r0, #0 - movs r1, #0x64 - bl __udivsi3 - strh r0, [r4, #0x18] - adds r0, r5, #0 - movs r1, #0x64 - bl __umodsi3 - adds r5, r0, #0 - movs r1, #0xa - bl __udivsi3 - strh r0, [r4, #0x1a] - adds r0, r5, #0 - movs r1, #0xa - bl __umodsi3 - strh r0, [r4, #0x1c] - ldr r5, [sp] - lsls r0, r5, #0x10 - cmp r0, #0 - bne _0800F392 - movs r3, #0xa - adds r1, r4, #0 - adds r2, r4, #0 - adds r2, #0x1c -_0800F380: - strh r3, [r1] - adds r4, #2 - adds r1, #2 - cmp r1, r2 - bgt _0800F392 - movs r5, #0 - ldrsh r0, [r4, r5] - cmp r0, #0 - beq _0800F380 -_0800F392: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F3A4: .4byte 0x05F5E0FF -_0800F3A8: .4byte gUnknown_0202C5C0 -_0800F3AC: .4byte 0x000F4240 -_0800F3B0: .4byte 0x000186A0 -_0800F3B4: .4byte 0x00002710 -_0800F3B8: .4byte 0x00989680 - - thumb_func_start sub_F3BC -sub_F3BC: @ 0x0800F3BC - cmp r0, r2 - bhi _0800F3C8 - cmp r0, r2 - blo _0800F3D4 - cmp r1, r3 - bls _0800F3CC -_0800F3C8: - movs r0, #1 - b _0800F3D8 -_0800F3CC: - cmp r1, r3 - blo _0800F3D4 - movs r0, #0 - b _0800F3D8 -_0800F3D4: - movs r0, #1 - rsbs r0, r0, #0 -_0800F3D8: - bx lr - - thumb_func_start sub_F3DC -sub_F3DC: @ 0x0800F3DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - mov r8, r1 - movs r6, #0 - ldr r7, _0800F414 @ =gUnknown_0202C610 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #6 - adds r1, r7, #0 - adds r1, #0x14 - adds r5, r0, r1 - adds r4, r0, #0 -_0800F3FA: - adds r0, r7, #0 - adds r0, #0x10 - adds r0, r4, r0 - ldr r2, [r0] - ldr r3, [r5] - mov r0, sb - mov r1, r8 - bl sub_F3BC - cmp r0, #0 - blt _0800F418 - adds r0, r6, #0 - b _0800F426 - .align 2, 0 -_0800F414: .4byte gUnknown_0202C610 -_0800F418: - adds r5, #0x18 - adds r4, #0x18 - adds r6, #1 - cmp r6, #7 - ble _0800F3FA - movs r0, #1 - rsbs r0, r0, #0 -_0800F426: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_F434 -sub_F434: @ 0x0800F434 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - str r1, [sp, #4] - mov r8, r2 - mov sb, r3 - movs r5, #7 - ldr r0, _0800F4F8 @ =gUnknown_0202C610 - mov ip, r0 - cmp r5, sb - ble _0800F4A4 - mov sl, ip - lsls r0, r2, #1 - add r0, r8 - lsls r1, r0, #6 - mov r2, ip - adds r0, r2, r1 - adds r3, r0, #0 - adds r3, #0x90 - adds r7, r1, #0 - adds r7, #0x90 - adds r6, r1, #0 - adds r6, #0xa8 - adds r0, r1, #0 - adds r0, #0xac - adds r4, r0, r2 - subs r0, #0x18 - adds r2, r0, r2 -_0800F474: - ldr r0, [r3] - str r0, [r3, #0x18] - ldr r0, [r2] - str r0, [r4] - ldr r0, [r2, #4] - str r0, [r4, #4] - ldr r0, [r2, #8] - str r0, [r4, #8] - mov r0, sl - adds r0, #0x10 - adds r1, r6, r0 - adds r0, r7, r0 - ldr r0, [r0] - str r0, [r1] - ldr r0, [r3, #0x14] - str r0, [r3, #0x2c] - subs r3, #0x18 - subs r2, #0x18 - subs r7, #0x18 - subs r4, #0x18 - subs r6, #0x18 - subs r5, #1 - cmp r5, sb - bgt _0800F474 -_0800F4A4: - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #3 - mov r2, r8 - lsls r0, r2, #1 - add r0, r8 - lsls r0, r0, #6 - adds r1, r1, r0 - mov r2, ip - adds r0, r1, r2 - movs r2, #0 - str r2, [r0] - mov r0, ip - adds r0, #4 - adds r0, r1, r0 - str r2, [r0] - mov r0, ip - adds r0, #8 - adds r0, r1, r0 - str r2, [r0] - mov r0, ip - adds r0, #0xc - adds r0, r1, r0 - str r2, [r0] - mov r0, ip - adds r0, #0x10 - adds r0, r1, r0 - ldr r2, [sp] - str r2, [r0] - mov r0, ip - adds r0, #0x14 - adds r1, r1, r0 - ldr r0, [sp, #4] - str r0, [r1] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F4F8: .4byte gUnknown_0202C610 - - thumb_func_start sub_F4FC -sub_F4FC: @ 0x0800F4FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - ldr r0, _0800F668 @ =gUnknown_0202C550 - mov r8, r0 - ldr r1, [sp] - lsls r4, r1, #1 - adds r4, r4, r1 - lsls r0, r4, #3 - mov sb, r0 - mov r6, r8 - adds r6, #0x10 - add r6, sb - ldr r0, [r6] - mov r5, r8 - adds r5, #0x14 - add r5, sb - ldr r1, [r5] - ldr r2, [sp] - bl sub_F3DC - mov sl, r0 - ldr r7, _0800F66C @ =gUnknown_0202C610 - lsls r0, r0, #1 - add r0, sl - lsls r0, r0, #3 - lsls r4, r4, #6 - adds r4, r0, r4 - adds r0, r7, #0 - adds r0, #0x10 - adds r0, r4, r0 - ldr r0, [r0] - adds r1, r7, #0 - adds r1, #0x14 - adds r1, r4, r1 - ldr r1, [r1] - ldr r2, [r6] - ldr r3, [r5] - bl sub_F3BC - mov ip, r8 - cmp r0, #0 - bne _0800F5A2 - adds r0, r4, r7 - mov r1, sb - add r1, ip - ldr r2, [r0] - ldr r0, [r1] - cmp r2, r0 - bne _0800F5A2 - adds r1, r7, #4 - adds r1, r4, r1 - mov r0, ip - adds r0, #4 - add r0, sb - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bne _0800F5A2 - adds r1, r7, #0 - adds r1, #8 - adds r1, r4, r1 - mov r0, ip - adds r0, #8 - add r0, sb - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bne _0800F5A2 - adds r1, r7, #0 - adds r1, #0xc - adds r1, r4, r1 - mov r0, ip - adds r0, #0xc - add r0, sb - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - beq _0800F656 -_0800F5A2: - movs r0, #1 - rsbs r0, r0, #0 - cmp sl, r0 - beq _0800F656 - movs r4, #7 - ldr r1, _0800F668 @ =gUnknown_0202C550 - mov ip, r1 - ldr r0, [sp] - lsls r3, r0, #1 - ldr r1, _0800F66C @ =gUnknown_0202C610 - mov r8, r1 - cmp r4, sl - ble _0800F5EA - mov r7, r8 - adds r0, r3, r0 - lsls r6, r0, #6 -_0800F5C2: - movs r5, #0 - lsls r0, r4, #1 - subs r1, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #3 - adds r0, r0, r6 - adds r2, r0, r7 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r6 - adds r4, r0, r7 -_0800F5DA: - ldm r4!, {r0} - stm r2!, {r0} - adds r5, #1 - cmp r5, #5 - ble _0800F5DA - adds r4, r1, #0 - cmp r4, sl - bgt _0800F5C2 -_0800F5EA: - lsls r2, r4, #1 - adds r2, r2, r4 - lsls r2, r2, #3 - ldr r4, [sp] - adds r3, r3, r4 - lsls r0, r3, #6 - adds r2, r2, r0 - mov r0, r8 - adds r1, r2, r0 - lsls r3, r3, #3 - mov r4, ip - adds r0, r3, r4 - ldr r0, [r0] - str r0, [r1] - mov r1, r8 - adds r1, #4 - adds r1, r2, r1 - mov r0, ip - adds r0, #4 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r1] - mov r1, r8 - adds r1, #8 - adds r1, r2, r1 - mov r0, ip - adds r0, #8 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r1] - mov r1, r8 - adds r1, #0xc - adds r1, r2, r1 - mov r0, ip - adds r0, #0xc - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r1] - mov r1, r8 - adds r1, #0x10 - adds r1, r2, r1 - mov r0, ip - adds r0, #0x10 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r1] - mov r0, r8 - adds r0, #0x14 - adds r2, r2, r0 - mov r0, ip - adds r0, #0x14 - adds r3, r3, r0 - ldr r0, [r3] - str r0, [r2] -_0800F656: - mov r0, sl - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0800F668: .4byte gUnknown_0202C550 -_0800F66C: .4byte gUnknown_0202C610 - - thumb_func_start sub_F670 -sub_F670: @ 0x0800F670 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #8 - adds r7, r0, #0 - mov r8, r2 - ldr r2, _0800F6D8 @ =gUnknown_086A7FAC - lsls r0, r7, #1 - adds r0, r0, r2 - ldrh r7, [r0] - ldr r6, _0800F6DC @ =gUnknown_08079730 - lsls r4, r1, #1 - adds r4, r4, r1 - lsls r4, r4, #2 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #5 - adds r4, r4, r0 - adds r0, r6, #0 - adds r0, #8 - adds r0, r4, r0 - ldr r5, [r0] - lsls r0, r5, #5 - adds r1, r7, #0 - adds r1, #0x80 - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - adds r1, r4, r6 - mov r2, r8 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r8, r2 - ldr r2, [r1] - add r2, r8 - adds r6, #4 - adds r4, r4, r6 - ldr r3, [r4] - movs r1, #1 - str r1, [sp] - adds r5, #1 - str r5, [sp, #4] - movs r1, #8 - bl sub_105A0 - add sp, #8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F6D8: .4byte gUnknown_086A7FAC -_0800F6DC: .4byte gUnknown_08079730 - - thumb_func_start sub_F6E0 -sub_F6E0: @ 0x0800F6E0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r1, _0800F740 @ =gUnknown_0202BEB0 - movs r0, #0 - strb r0, [r1] - movs r2, #0 - ldr r0, _0800F744 @ =gMain+0x74 - mov r8, r0 - ldr r3, _0800F748 @ =gUnknown_08079430 - mov ip, r3 -_0800F6F8: - movs r1, #0 - lsls r0, r2, #1 - adds r7, r2, #1 - mov sb, r7 - adds r0, r0, r2 - lsls r5, r0, #6 - adds r6, r5, #0 - adds r6, #0xe4 -_0800F708: - lsls r0, r1, #1 - adds r4, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r6 - add r1, r8 - adds r2, r0, r5 - movs r3, #5 -_0800F718: - mov r7, ip - adds r0, r2, r7 - ldr r0, [r0] - stm r1!, {r0} - adds r2, #4 - subs r3, #1 - cmp r3, #0 - bge _0800F718 - adds r1, r4, #0 - cmp r1, #7 - ble _0800F708 - mov r2, sb - cmp r2, #1 - ble _0800F6F8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F740: .4byte gUnknown_0202BEB0 -_0800F744: .4byte gMain+0x74 -_0800F748: .4byte gUnknown_08079430 - - thumb_func_start sub_F74C -sub_F74C: @ 0x0800F74C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - movs r0, #0 - mov r8, r0 - ldr r1, _0800F85C @ =gMain+0x74 - str r1, [sp] -_0800F760: - bl Random - movs r1, #0x2a - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, r8 - lsls r2, r3, #1 - adds r1, r2, r3 - lsls r1, r1, #6 - ldr r3, _0800F860 @ =gUnknown_0200B218 - adds r0, r1, r3 - str r4, [r0] - mov sb, r2 - mov r0, r8 - adds r0, #1 - str r0, [sp, #8] - ldr r2, [sp] - adds r1, r2, r1 - adds r6, r1, #0 - adds r6, #0xe8 - movs r5, #2 -_0800F78E: - bl Random - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _0800F7AE - bl Random - movs r1, #0x2a - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0800F7AE: - stm r6!, {r4} - subs r5, #1 - cmp r5, #0 - bge _0800F78E - bl Random - adds r7, r0, #0 - bl Random - adds r6, r0, #0 - mov r0, sb - add r0, r8 - lsls r0, r0, #6 - ldr r1, [sp] - adds r1, #0xf4 - adds r1, r0, r1 - str r7, [r1] - ldr r3, _0800F864 @ =gUnknown_0200B22C - adds r1, r0, r3 - str r6, [r1] - movs r1, #1 - mov r8, r1 - ldr r2, [sp] - str r2, [sp, #4] - mov sl, r0 -_0800F7E0: - bl Random - movs r1, #0x2a - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - mov r3, r8 - lsls r2, r3, #1 - adds r1, r2, r3 - lsls r1, r1, #3 - mov r3, sl - adds r0, r1, r3 - ldr r3, _0800F860 @ =gUnknown_0200B218 - adds r0, r0, r3 - str r4, [r0] - str r2, [sp, #0x10] - mov r0, r8 - adds r0, #1 - str r0, [sp, #0xc] - adds r1, #4 - movs r5, #2 - adds r0, r3, #0 - add r0, sl - adds r1, r1, r0 - mov sb, r1 -_0800F814: - bl Random - movs r1, #0xa - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _0800F834 - bl Random - movs r1, #0x2a - bl __umodsi3 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_0800F834: - mov r1, sb - adds r1, #4 - mov sb, r1 - subs r1, #4 - stm r1!, {r4} - subs r5, #1 - cmp r5, #0 - bge _0800F814 - bl Random - adds r1, r7, #0 - bl __umodsi3 - adds r7, r0, #0 - cmp r7, #0 - beq _0800F868 - bl Random - b _0800F872 - .align 2, 0 -_0800F85C: .4byte gMain+0x74 -_0800F860: .4byte gUnknown_0200B218 -_0800F864: .4byte gUnknown_0200B22C -_0800F868: - bl Random - adds r1, r6, #0 - bl __umodsi3 -_0800F872: - adds r6, r0, #0 - ldr r1, [sp, #0x10] - add r1, r8 - lsls r1, r1, #3 - add r1, sl - ldr r0, [sp, #4] - adds r0, #0xf4 - adds r0, r1, r0 - str r7, [r0] - ldr r2, _0800F8AC @ =gUnknown_0200B22C - adds r1, r1, r2 - str r6, [r1] - ldr r3, [sp, #0xc] - mov r8, r3 - cmp r3, #7 - ble _0800F7E0 - ldr r0, [sp, #8] - mov r8, r0 - cmp r0, #1 - bgt _0800F89C - b _0800F760 -_0800F89C: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F8AC: .4byte gUnknown_0200B22C - thumb_func_start sub_F8B0 sub_F8B0: @ 0x0800F8B0 push {r4, r5, r6, r7, lr} diff --git a/include/functions.h b/include/functions.h index 695464c..46828fb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -152,14 +152,13 @@ extern s16 sub_EAC0(); extern s16 sub_EBEC(void); extern s16 sub_ED28(void); extern void sub_EE64(void); -//extern ? sub_F21C(); -//extern ? sub_F3BC(); -extern s32 sub_F3DC(u32, u32, u8); -extern void sub_F434(u32, u32, u8); +extern void sub_F21C(u32, u32); +extern int CompareScores(u32, u32, u32, u32); +extern s32 GetNewHighScoreIndex(u32, u32, u32); +extern void sub_F434(u32, u32, u32, int); extern u32 sub_F4FC(u32); -extern void sub_F670(u32, u32, u32, u32); -extern void sub_F6E0(void); -//extern ? sub_F74C(); +extern void sub_F670(u32, u32, s16, u32); +extern void SetDefaultHighScores(void); extern void sub_F8B0(u8, u32, s16); extern void sub_FAE8(u32, u32, s16); extern s8 sub_FD20(void); @@ -175,7 +174,7 @@ extern void sub_10480(void); extern void sub_1050C(void); //extern ? sub_10528(); extern void sub_10544(void); -//extern ? sub_105A0(); +extern void sub_105A0(u16, u16, int, int, int, int); // src/intro.c extern void IntroMain(void); diff --git a/include/main.h b/include/main.h index 16ceb22..4e1392b 100644 --- a/include/main.h +++ b/include/main.h @@ -11,8 +11,8 @@ struct HighScoreEntry union { struct { u32 name[HIGH_SCORE_NAME_LENGTH]; + u32 scoreHi; u32 scoreLo; - u32 score100Millions; } parts; u32 raw[HIGH_SCORE_NAME_LENGTH + 2]; } data; diff --git a/include/variables.h b/include/variables.h index 56145c3..f313693 100644 --- a/include/variables.h +++ b/include/variables.h @@ -276,6 +276,17 @@ extern s8 gUnknown_0202A564; extern s8 gUnknown_02019C20; extern s8 gUnknown_0202ADE8; +extern const u16 gUnknown_086A7FAC[]; +extern s16 gUnknown_0202C5C0[]; + +struct unkStruct_8079730 +{ + u32 unk0; + u32 unk4; + u32 unk8; +}; +extern const struct unkStruct_8079730 gUnknown_08079730[][8]; + extern struct UnkStruct_086A7768 gUnknown_086A7768[0x8]; extern s16 gUnknown_086A7788[0x8]; extern s16 gUnknown_0202ADA0[]; diff --git a/src/high_scores.c b/src/high_scores.c index 3ea2500..410a4bc 100644 --- a/src/high_scores.c +++ b/src/high_scores.c @@ -61,6 +61,7 @@ extern u8 gUnknown_080947A0[]; extern u8 gUnknown_0809DDE0[]; extern u8 gUnknown_0809DFE0[]; extern u32 gUnknown_08079870[8]; +extern const struct HighScoreEntry gUnknown_08079430[2][8]; void HighScoresMain(void) { @@ -250,7 +251,7 @@ void sub_CFD4(void) "\tldr r0, [r4]\n" "\tldr r1, [r4, #4]\n" "\tldrb r2, [r4, #0xb]\n" - "\tbl sub_F3DC\n" + "\tbl GetNewHighScoreIndex\n" "\tadds r3, r0, #0\n" "\tstr r3, [r4, #0xc]\n" "\tmovs r0, #1\n" @@ -856,7 +857,7 @@ void sub_DCF0(void) if (gMain.newKeys & A_BUTTON) { m4aSongNumStart(0x65); - sub_F6E0(); + SetDefaultHighScores(); SaveFile_WriteToSram(); sub_02B4(); m4aMPlayAllStop(); @@ -1854,10 +1855,10 @@ s16 sub_E994(void) gUnknown_0202C610[field][0].data.parts.name[1]; gUnknown_0202C5F0[2] = (gUnknown_0202C610[field][0].data.parts.name[2] << 8) | gUnknown_0202C610[field][0].data.parts.name[3]; - gUnknown_0202C5F0[3] = gUnknown_0202C610[field][0].data.parts.scoreLo >> 16; - gUnknown_0202C5F0[4] = gUnknown_0202C610[field][0].data.parts.scoreLo; - gUnknown_0202C5F0[5] = gUnknown_0202C610[field][0].data.parts.score100Millions >> 16; - gUnknown_0202C5F0[6] = gUnknown_0202C610[field][0].data.parts.score100Millions; + gUnknown_0202C5F0[3] = gUnknown_0202C610[field][0].data.parts.scoreHi >> 16; + gUnknown_0202C5F0[4] = gUnknown_0202C610[field][0].data.parts.scoreHi; + gUnknown_0202C5F0[5] = gUnknown_0202C610[field][0].data.parts.scoreLo >> 16; + gUnknown_0202C5F0[6] = gUnknown_0202C610[field][0].data.parts.scoreLo; gUnknown_0202C5F0[7] = 0; } else @@ -1912,10 +1913,10 @@ s16 sub_EAC0(void) gUnknown_0202C610[field][0].data.parts.name[1]; gUnknown_0202C5F0[2] = (gUnknown_0202C610[field][0].data.parts.name[2] << 8) | gUnknown_0202C610[field][0].data.parts.name[3]; - gUnknown_0202C5F0[3] = gUnknown_0202C610[field][0].data.parts.scoreLo >> 16; - gUnknown_0202C5F0[4] = gUnknown_0202C610[field][0].data.parts.scoreLo; - gUnknown_0202C5F0[5] = gUnknown_0202C610[field][0].data.parts.score100Millions >> 16; - gUnknown_0202C5F0[6] = gUnknown_0202C610[field][0].data.parts.score100Millions; + gUnknown_0202C5F0[3] = gUnknown_0202C610[field][0].data.parts.scoreHi >> 16; + gUnknown_0202C5F0[4] = gUnknown_0202C610[field][0].data.parts.scoreHi; + gUnknown_0202C5F0[5] = gUnknown_0202C610[field][0].data.parts.scoreLo >> 16; + gUnknown_0202C5F0[6] = gUnknown_0202C610[field][0].data.parts.scoreLo; gUnknown_0202C5F0[7] = 0; } else @@ -1970,9 +1971,9 @@ s16 sub_EBEC(void) gUnknown_0202C550[field].data.parts.name[1] = gUnknown_0201A4D0[1][1] & 0xFF; gUnknown_0202C550[field].data.parts.name[2] = (gUnknown_0201A4D0[2][1] >> 8) & 0xFF; gUnknown_0202C550[field].data.parts.name[3] = gUnknown_0201A4D0[2][1] & 0xFF; - gUnknown_0202C550[field].data.parts.scoreLo = (gUnknown_0201A4D0[3][1] << 16) | + gUnknown_0202C550[field].data.parts.scoreHi = (gUnknown_0201A4D0[3][1] << 16) | gUnknown_0201A4D0[4][1]; - gUnknown_0202C550[field].data.parts.score100Millions = (gUnknown_0201A4D0[5][1] << 16) | + gUnknown_0202C550[field].data.parts.scoreLo = (gUnknown_0201A4D0[5][1] << 16) | gUnknown_0201A4D0[6][1]; if (gUnknown_0201C1B0 == 9) return -1; @@ -2025,9 +2026,9 @@ s16 sub_ED28(void) gUnknown_0202C550[field].data.parts.name[1] = gUnknown_0201A4D0[1][0] & 0xFF; gUnknown_0202C550[field].data.parts.name[2] = (gUnknown_0201A4D0[2][0] >> 8) & 0xFF; gUnknown_0202C550[field].data.parts.name[3] = gUnknown_0201A4D0[2][0] & 0xFF; - gUnknown_0202C550[field].data.parts.scoreLo = (gUnknown_0201A4D0[3][0] << 16) | + gUnknown_0202C550[field].data.parts.scoreHi = (gUnknown_0201A4D0[3][0] << 16) | gUnknown_0201A4D0[4][0]; - gUnknown_0202C550[field].data.parts.score100Millions = (gUnknown_0201A4D0[5][0] << 16) | + gUnknown_0202C550[field].data.parts.scoreLo = (gUnknown_0201A4D0[5][0] << 16) | gUnknown_0201A4D0[6][0]; if (gUnknown_0201C1B0 == 9) return -1; @@ -2039,3 +2040,788 @@ s16 sub_ED28(void) return 0; } + +#ifdef NONMATCHING +void sub_EE64(void) +{ + int i, j; + + for (i = 0; i < 4; i++) + { + sub_105A0(gUnknown_086A7FAC[gUnknown_0202C610[0][0].data.parts.name[i]] + 0x80, 8, i + 6, 3, 1, 1); + } + + for (i = 1; i < 8; i++) + { + for (j = 0; j < 4; j++) + { + sub_105A0(gUnknown_086A7FAC[gUnknown_0202C610[0][i].data.parts.name[j]] + 0xA0, 8, j + 6, i * 2 + 3, 1, 2); + } + } + + sub_F21C(gUnknown_0202C610[0][0].data.parts.scoreHi, gUnknown_0202C610[0][0].data.parts.scoreLo); + for (i = 0; i < 14; i++) + { + if ((i + 1) % 3 == 0) + sub_105A0(gUnknown_0202C5C0[i] + 0x120, 9, i + 12, 2, 1, 2); + else + sub_105A0(gUnknown_0202C5C0[i] + 0xE0, 9, i + 12, 2, 1, 2); + } + + sub_105A0(gUnknown_0202C5C0[i] + 0xE0, 9, 26, 2, 1, 2); + for (i = 1; i < 8; i++) + { + struct HighScoreEntry *entry = &gUnknown_0202C610[0][i]; + sub_F21C(entry->data.parts.scoreHi, entry->data.parts.scoreLo); + for (j = 0; j < 14; j++) + { + if ((j + 1) % 3 == 0) + sub_105A0(gUnknown_0202C5C0[j] + 0x1A0, 9, 12, i * 2 + 3, 1, 2); + else + sub_105A0(gUnknown_0202C5C0[j] + 0x160, 9, 12, i * 2 + 3, 1, 2); + } + + sub_105A0(gUnknown_0202C5C0[j] + 0x160, 9, 26, 3 + i * 2, 1, 2); + } + + for (i = 0; i < 4; i++) + { + sub_105A0(gUnknown_086A7FAC[gUnknown_0202C610[1][0].data.parts.name[i]] + 0x80, 8, i + 4, 35, 1, 1); + } + + for (i = 1; i < 8; i++) + { + for (j = 0; j < 4; j++) + { + sub_105A0(gUnknown_086A7FAC[gUnknown_0202C610[1][i].data.parts.name[j]] + 0xA0, 8, j + 4, i * 2 + 35, 1, 2); + } + } + + sub_F21C(gUnknown_0202C610[1][0].data.parts.scoreHi, gUnknown_0202C610[1][0].data.parts.scoreLo); + for (i = 0; i < 14; i++) + { + if ((i + 1) % 3 == 0) + sub_105A0(gUnknown_0202C5C0[i] + 0x120, 9, i + 10, 34, 1, 2); + else + sub_105A0(gUnknown_0202C5C0[i] + 0xE0, 9, i + 10, 34, 1, 2); + } + + sub_105A0(gUnknown_0202C5C0[i] + 0xE0, 9, 24, 34, 1, 2); + for (i = 1; i < 8; i++) + { + struct HighScoreEntry *entry = &gUnknown_0202C610[1][i]; + sub_F21C(entry->data.parts.scoreHi, entry->data.parts.scoreLo); + for (j = 0; j < 14; j++) + { + if ((j + 1) % 3 == 0) + sub_105A0(gUnknown_0202C5C0[j] + 0x1A0, 9, j + 10, i * 2 + 35, 1, 2); + else + sub_105A0(gUnknown_0202C5C0[j] + 0x160, 9, j + 10, i * 2 + 35, 1, 2); + } + + sub_105A0(gUnknown_0202C5C0[j] + 0x160, 9, 24, i * 2 + 35, 1, 2); + } +} +#else +NAKED +void sub_EE64(void) +{ + asm_unified("\n\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, sb\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + sub sp, #0x10\n\ + movs r6, #0\n\ + ldr r4, _0800EF20 @ =gUnknown_086A7FAC\n\ + ldr r5, _0800EF24 @ =gUnknown_0202C610\n\ +_0800EE76:\n\ + ldm r5!, {r0}\n\ + lsls r0, r0, #1\n\ + adds r0, r0, r4\n\ + ldrh r0, [r0]\n\ + adds r0, #0x80\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #6\n\ + movs r1, #1\n\ + str r1, [sp]\n\ + str r1, [sp, #4]\n\ + movs r1, #8\n\ + movs r3, #3\n\ + bl sub_105A0\n\ + adds r6, #1\n\ + cmp r6, #3\n\ + ble _0800EE76\n\ + movs r5, #1\n\ + ldr r0, _0800EF20 @ =gUnknown_086A7FAC\n\ + mov sb, r0\n\ + ldr r1, _0800EF24 @ =gUnknown_0202C610\n\ + mov sl, r1\n\ +_0800EEA4:\n\ + movs r6, #0\n\ + lsls r7, r5, #1\n\ + adds r2, r5, #1\n\ + mov r8, r2\n\ + adds r4, r7, #0\n\ + adds r0, r4, r5\n\ + lsls r0, r0, #3\n\ + mov r1, sl\n\ + adds r5, r0, r1\n\ +_0800EEB6:\n\ + ldm r5!, {r0}\n\ + lsls r0, r0, #1\n\ + add r0, sb\n\ + ldrh r0, [r0]\n\ + adds r0, #0xa0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #6\n\ + movs r1, #1\n\ + str r1, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #8\n\ + adds r3, r4, #3\n\ + bl sub_105A0\n\ + adds r6, #1\n\ + cmp r6, #3\n\ + ble _0800EEB6\n\ + mov r5, r8\n\ + cmp r5, #7\n\ + ble _0800EEA4\n\ + ldr r1, _0800EF24 @ =gUnknown_0202C610\n\ + ldr r0, [r1, #0x10]\n\ + ldr r1, [r1, #0x14]\n\ + bl sub_F21C\n\ + movs r6, #0\n\ + movs r5, #0xc\n\ + ldr r4, _0800EF28 @ =gUnknown_0202C5C0\n\ + movs r7, #1\n\ +_0800EEF4:\n\ + adds r0, r6, #1\n\ + movs r1, #3\n\ + bl __modsi3\n\ + cmp r0, #0\n\ + bne _0800EF2C\n\ + movs r2, #0x90\n\ + lsls r2, r2, #1\n\ + adds r0, r2, #0\n\ + ldrh r1, [r4]\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + str r7, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + movs r3, #2\n\ + bl sub_105A0\n\ + b _0800EF44\n\ + .align 2, 0\n\ +_0800EF20: .4byte gUnknown_086A7FAC\n\ +_0800EF24: .4byte gUnknown_0202C610\n\ +_0800EF28: .4byte gUnknown_0202C5C0\n\ +_0800EF2C:\n\ + ldrh r0, [r4]\n\ + adds r0, #0xe0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + str r7, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + movs r3, #2\n\ + bl sub_105A0\n\ +_0800EF44:\n\ + adds r5, #1\n\ + adds r4, #2\n\ + adds r6, #1\n\ + cmp r6, #0xd\n\ + ble _0800EEF4\n\ + ldr r4, _0800EFC8 @ =gUnknown_0202C5C0\n\ + ldrh r0, [r4, #0x1c]\n\ + adds r0, #0xe0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + movs r1, #1\n\ + str r1, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + movs r2, #0x1a\n\ + movs r3, #2\n\ + bl sub_105A0\n\ + movs r5, #1\n\ + ldr r2, _0800EFCC @ =gUnknown_0202C610\n\ + str r2, [sp, #8]\n\ + mov sl, r5\n\ + movs r0, #2\n\ + mov sb, r0\n\ +_0800EF76:\n\ + lsls r4, r5, #1\n\ + adds r1, r4, r5\n\ + lsls r1, r1, #3\n\ + ldr r0, [sp, #8]\n\ + adds r0, #0x10\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + ldr r2, _0800EFD0 @ =gUnknown_0202C624\n\ + adds r1, r1, r2\n\ + ldr r1, [r1]\n\ + bl sub_F21C\n\ + movs r6, #0\n\ + adds r7, r4, #0\n\ + adds r5, #1\n\ + mov r8, r5\n\ + movs r5, #0xc\n\ + ldr r4, _0800EFC8 @ =gUnknown_0202C5C0\n\ +_0800EF9A:\n\ + adds r0, r6, #1\n\ + movs r1, #3\n\ + bl __modsi3\n\ + cmp r0, #0\n\ + bne _0800EFD4\n\ + movs r1, #0xd0\n\ + lsls r1, r1, #1\n\ + adds r0, r1, #0\n\ + ldrh r2, [r4]\n\ + adds r0, r0, r2\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r2, sb\n\ + str r2, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + adds r3, r7, #3\n\ + bl sub_105A0\n\ + b _0800EFF4\n\ + .align 2, 0\n\ +_0800EFC8: .4byte gUnknown_0202C5C0\n\ +_0800EFCC: .4byte gUnknown_0202C610\n\ +_0800EFD0: .4byte gUnknown_0202C624\n\ +_0800EFD4:\n\ + movs r1, #0xb0\n\ + lsls r1, r1, #1\n\ + adds r0, r1, #0\n\ + ldrh r2, [r4]\n\ + adds r0, r0, r2\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r2, sb\n\ + str r2, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + adds r3, r7, #3\n\ + bl sub_105A0\n\ +_0800EFF4:\n\ + adds r5, #1\n\ + adds r4, #2\n\ + adds r6, #1\n\ + cmp r6, #0xd\n\ + ble _0800EF9A\n\ + movs r1, #0xb0\n\ + lsls r1, r1, #1\n\ + adds r0, r1, #0\n\ + ldr r2, _0800F0E4 @ =gUnknown_0202C5C0\n\ + ldrh r2, [r2, #0x1c]\n\ + adds r0, r0, r2\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r3, r7, #3\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r2, sb\n\ + str r2, [sp, #4]\n\ + movs r1, #9\n\ + movs r2, #0x1a\n\ + bl sub_105A0\n\ + mov r5, r8\n\ + cmp r5, #7\n\ + ble _0800EF76\n\ + movs r6, #0\n\ + ldr r7, _0800F0E8 @ =gUnknown_086A7FAC\n\ + ldr r0, _0800F0EC @ =gUnknown_0202C610\n\ + adds r5, r0, #0\n\ + adds r5, #0xc0\n\ + movs r4, #1\n\ +_0800F032:\n\ + ldm r5!, {r0}\n\ + lsls r0, r0, #1\n\ + adds r0, r0, r7\n\ + ldrh r0, [r0]\n\ + adds r0, #0x80\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #4\n\ + str r4, [sp]\n\ + str r4, [sp, #4]\n\ + movs r1, #8\n\ + movs r3, #0x23\n\ + bl sub_105A0\n\ + adds r6, #1\n\ + cmp r6, #3\n\ + ble _0800F032\n\ + movs r5, #1\n\ + ldr r0, _0800F0E8 @ =gUnknown_086A7FAC\n\ + mov sb, r0\n\ + ldr r1, _0800F0F0 @ =gUnknown_0202C6D0\n\ + mov sl, r1\n\ +_0800F05E:\n\ + movs r6, #0\n\ + lsls r7, r5, #1\n\ + adds r2, r5, #1\n\ + mov r8, r2\n\ + adds r4, r7, #0\n\ + adds r0, r4, r5\n\ + lsls r0, r0, #3\n\ + mov r1, sl\n\ + adds r5, r0, r1\n\ +_0800F070:\n\ + ldm r5!, {r0}\n\ + lsls r0, r0, #1\n\ + add r0, sb\n\ + ldrh r0, [r0]\n\ + adds r0, #0xa0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #4\n\ + movs r1, #1\n\ + str r1, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #8\n\ + adds r3, r4, #0\n\ + adds r3, #0x23\n\ + bl sub_105A0\n\ + adds r6, #1\n\ + cmp r6, #3\n\ + ble _0800F070\n\ + mov r5, r8\n\ + cmp r5, #7\n\ + ble _0800F05E\n\ + ldr r1, _0800F0EC @ =gUnknown_0202C610\n\ + adds r0, r1, #0\n\ + adds r0, #0xd0\n\ + ldr r0, [r0]\n\ + adds r1, #0xd4\n\ + ldr r1, [r1]\n\ + bl sub_F21C\n\ + movs r6, #0\n\ + movs r5, #0xa\n\ + ldr r4, _0800F0E4 @ =gUnknown_0202C5C0\n\ + movs r7, #1\n\ +_0800F0B6:\n\ + adds r0, r6, #1\n\ + movs r1, #3\n\ + bl __modsi3\n\ + cmp r0, #0\n\ + bne _0800F0F4\n\ + movs r2, #0x90\n\ + lsls r2, r2, #1\n\ + adds r0, r2, #0\n\ + ldrh r1, [r4]\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + str r7, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + movs r3, #0x22\n\ + bl sub_105A0\n\ + b _0800F10C\n\ + .align 2, 0\n\ +_0800F0E4: .4byte gUnknown_0202C5C0\n\ +_0800F0E8: .4byte gUnknown_086A7FAC\n\ +_0800F0EC: .4byte gUnknown_0202C610\n\ +_0800F0F0: .4byte gUnknown_0202C6D0\n\ +_0800F0F4:\n\ + ldrh r0, [r4]\n\ + adds r0, #0xe0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + str r7, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r2, r5, #0\n\ + movs r3, #0x22\n\ + bl sub_105A0\n\ +_0800F10C:\n\ + adds r5, #1\n\ + adds r4, #2\n\ + adds r6, #1\n\ + cmp r6, #0xd\n\ + ble _0800F0B6\n\ + ldr r4, _0800F19C @ =gUnknown_0202C5C0\n\ + lsls r0, r6, #1\n\ + adds r0, r0, r4\n\ + ldrh r0, [r0]\n\ + adds r0, #0xe0\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + movs r1, #1\n\ + str r1, [sp]\n\ + movs r1, #2\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + movs r2, #0x18\n\ + movs r3, #0x22\n\ + bl sub_105A0\n\ + movs r5, #1\n\ + ldr r2, _0800F1A0 @ =gUnknown_0202C610\n\ + str r2, [sp, #0xc]\n\ + mov sl, r5\n\ + movs r0, #2\n\ + mov sb, r0\n\ +_0800F142:\n\ + lsls r4, r5, #1\n\ + adds r1, r4, r5\n\ + lsls r1, r1, #3\n\ + ldr r0, [sp, #0xc]\n\ + adds r0, #0xd0\n\ + adds r0, r1, r0\n\ + ldr r0, [r0]\n\ + ldr r2, _0800F1A4 @ =gUnknown_0202C6E4\n\ + adds r1, r1, r2\n\ + ldr r1, [r1]\n\ + bl sub_F21C\n\ + movs r6, #0\n\ + adds r7, r4, #0\n\ + adds r5, #1\n\ + mov r8, r5\n\ +_0800F162:\n\ + adds r4, r6, #1\n\ + adds r0, r4, #0\n\ + movs r1, #3\n\ + bl __modsi3\n\ + cmp r0, #0\n\ + bne _0800F1A8\n\ + lsls r1, r6, #1\n\ + ldr r0, _0800F19C @ =gUnknown_0202C5C0\n\ + adds r1, r1, r0\n\ + movs r2, #0xd0\n\ + lsls r2, r2, #1\n\ + adds r0, r2, #0\n\ + ldrh r1, [r1]\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #0\n\ + adds r2, #0xa\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r1, sb\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r3, r7, #0\n\ + adds r3, #0x23\n\ + bl sub_105A0\n\ + b _0800F1D2\n\ + .align 2, 0\n\ +_0800F19C: .4byte gUnknown_0202C5C0\n\ +_0800F1A0: .4byte gUnknown_0202C610\n\ +_0800F1A4: .4byte gUnknown_0202C6E4\n\ +_0800F1A8:\n\ + lsls r1, r6, #1\n\ + ldr r2, _0800F218 @ =gUnknown_0202C5C0\n\ + adds r1, r1, r2\n\ + movs r2, #0xb0\n\ + lsls r2, r2, #1\n\ + adds r0, r2, #0\n\ + ldrh r1, [r1]\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r2, r6, #0\n\ + adds r2, #0xa\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r1, sb\n\ + str r1, [sp, #4]\n\ + movs r1, #9\n\ + adds r3, r7, #0\n\ + adds r3, #0x23\n\ + bl sub_105A0\n\ +_0800F1D2:\n\ + adds r6, r4, #0\n\ + cmp r4, #0xd\n\ + ble _0800F162\n\ + lsls r1, r4, #1\n\ + ldr r2, _0800F218 @ =gUnknown_0202C5C0\n\ + adds r1, r1, r2\n\ + movs r2, #0xb0\n\ + lsls r2, r2, #1\n\ + adds r0, r2, #0\n\ + ldrh r1, [r1]\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r0, r0, #0x10\n\ + adds r3, r7, #0\n\ + adds r3, #0x23\n\ + mov r1, sl\n\ + str r1, [sp]\n\ + mov r2, sb\n\ + str r2, [sp, #4]\n\ + movs r1, #9\n\ + movs r2, #0x18\n\ + bl sub_105A0\n\ + mov r5, r8\n\ + cmp r5, #7\n\ + ble _0800F142\n\ + add sp, #0x10\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov sb, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0800F218: .4byte gUnknown_0202C5C0\n\ + "); +} +#endif + +void sub_F21C(u32 scoreHi, u32 scoreLo) +{ + int i; + u32 var0; + u32 var1; + u16 *arr; + + if (scoreHi == 0 && scoreLo == 0) + { + for (i = 0; i < 14; i++) + gUnknown_0202C5C0[i] = 10; + + gUnknown_0202C5C0[14] = 0; + } + else + { + if (scoreHi > 9999999) + { + scoreHi = 9999999; + scoreLo = 99999999; + } + else if (scoreLo > 99999999) + { + scoreLo = 99999999; + } + + arr = gUnknown_0202C5C0; + + var0 = scoreHi / 1000000; + arr[0] = var0; + scoreHi %= 1000000; + arr[1] = scoreHi / 100000; + scoreHi %= 100000; + arr[2] = scoreHi / 10000; + scoreHi %= 10000; + arr[3] = scoreHi / 1000; + scoreHi %= 1000; + arr[4] = scoreHi / 100; + scoreHi %= 100; + arr[5] = scoreHi / 10; + arr[6] = scoreHi %= 10; + + arr[7] = scoreLo / 10000000; + var1 = scoreLo % 10000000; + arr[8] = var1 / 1000000; + var1 %= 1000000; + arr[9] = var1 / 100000; + var1 %= 100000; + arr[10] = var1 / 10000; + var1 %= 10000; + arr[11] = var1 / 1000; + var1 %= 1000; + arr[12] = var1 / 100; + var1 %= 100; + arr[13] = var1 / 10; + arr[14] = var1 %= 10; + + if ((s16)var0 == 0) + { + for (i = 0; i < 15 && gUnknown_0202C5C0[i] == 0; i++) + gUnknown_0202C5C0[i] = 10; + } + } +} + +int CompareScores(u32 scoreHiA, u32 scoreLoA, u32 scoreHiB, u32 scoreLoB) +{ + if (scoreHiA > scoreHiB) + return 1; + if (scoreHiA < scoreHiB) + return -1; + if (scoreLoA > scoreLoB) + return 1; + if (scoreLoA < scoreLoB) + return -1; + + return 0; +} + +int GetNewHighScoreIndex(u32 scoreHi, u32 scoreLo, u32 field) +{ + int i; + + for (i = 0; i < 8; i++) + { + int comparisonResult = CompareScores( + scoreHi, + scoreLo, + gUnknown_0202C610[field][i].data.parts.scoreHi, + gUnknown_0202C610[field][i].data.parts.scoreLo + ); + if (comparisonResult >= 0) + return i; + } + + return -1; +} + +void sub_F434(u32 scoreHi, u32 scoreLo, u32 field, int newHighScoreIndex) +{ + int i; + + for (i = 7; i > newHighScoreIndex; i--) + { + gUnknown_0202C610[field][i].data.parts.name[0] = gUnknown_0202C610[field][i-1].data.parts.name[0]; + gUnknown_0202C610[field][i].data.parts.name[1] = gUnknown_0202C610[field][i-1].data.parts.name[1]; + gUnknown_0202C610[field][i].data.parts.name[2] = gUnknown_0202C610[field][i-1].data.parts.name[2]; + gUnknown_0202C610[field][i].data.parts.name[3] = gUnknown_0202C610[field][i-1].data.parts.name[3]; + gUnknown_0202C610[field][i].data.parts.scoreHi = gUnknown_0202C610[field][i-1].data.parts.scoreHi; + gUnknown_0202C610[field][i].data.parts.scoreLo = gUnknown_0202C610[field][i-1].data.parts.scoreLo; + } + + gUnknown_0202C610[field][i].data.parts.name[0] = 0; + gUnknown_0202C610[field][i].data.parts.name[1] = 0; + gUnknown_0202C610[field][i].data.parts.name[2] = 0; + gUnknown_0202C610[field][i].data.parts.name[3] = 0; + gUnknown_0202C610[field][i].data.parts.scoreHi = scoreHi; + gUnknown_0202C610[field][i].data.parts.scoreLo = scoreLo; +} + +u32 sub_F4FC(u32 field) +{ + int i, j; + int newHighScoreIndex; + int comparisonResult; + + newHighScoreIndex = GetNewHighScoreIndex(gUnknown_0202C550[field].data.parts.scoreHi, gUnknown_0202C550[field].data.parts.scoreLo, field); + comparisonResult = CompareScores( + gUnknown_0202C610[field][newHighScoreIndex].data.parts.scoreHi, + gUnknown_0202C610[field][newHighScoreIndex].data.parts.scoreLo, + gUnknown_0202C550[field].data.parts.scoreHi, + gUnknown_0202C550[field].data.parts.scoreLo + ); + if (comparisonResult == 0 && + gUnknown_0202C610[field][newHighScoreIndex].data.parts.name[0] == gUnknown_0202C550[field].data.parts.name[0] && + gUnknown_0202C610[field][newHighScoreIndex].data.parts.name[1] == gUnknown_0202C550[field].data.parts.name[1] && + gUnknown_0202C610[field][newHighScoreIndex].data.parts.name[2] == gUnknown_0202C550[field].data.parts.name[2] && + gUnknown_0202C610[field][newHighScoreIndex].data.parts.name[3] == gUnknown_0202C550[field].data.parts.name[3]) + { + return newHighScoreIndex; + } + + if (newHighScoreIndex == -1) + { + return -1; + } + + for (i = 7; i > newHighScoreIndex; i--) + { + for (j = 0; j < 6; j++) + { + gUnknown_0202C610[field][i].data.raw[j] = gUnknown_0202C610[field][i-1].data.raw[j]; + } + } + + gUnknown_0202C610[field][i].data.parts.name[0] = gUnknown_0202C550[field].data.parts.name[0]; + gUnknown_0202C610[field][i].data.parts.name[1] = gUnknown_0202C550[field].data.parts.name[1]; + gUnknown_0202C610[field][i].data.parts.name[2] = gUnknown_0202C550[field].data.parts.name[2]; + gUnknown_0202C610[field][i].data.parts.name[3] = gUnknown_0202C550[field].data.parts.name[3]; + gUnknown_0202C610[field][i].data.parts.scoreHi = gUnknown_0202C550[field].data.parts.scoreHi; + gUnknown_0202C610[field][i].data.parts.scoreLo = gUnknown_0202C550[field].data.parts.scoreLo; + return newHighScoreIndex; +} + +void sub_F670(u32 arg0, u32 arg1, s16 arg2, u32 arg3) +{ + arg0 = gUnknown_086A7FAC[arg0]; + sub_105A0( + gUnknown_08079730[arg3][arg1].unk8 * 32 + 0x80 + arg0, + 8, + gUnknown_08079730[arg3][arg1].unk0 + arg2, + gUnknown_08079730[arg3][arg1].unk4, + 1, + gUnknown_08079730[arg3][arg1].unk8 + 1 + ); +} + +void SetDefaultHighScores(void) +{ + int field, highScoreIndex, i; + + gUnknown_0202BEB0 = 0; + for (field = 0; field < 2; field++) + for (highScoreIndex = 0; highScoreIndex < 8; highScoreIndex++) + for (i = 0; i < 6; i++) + gMain_saveData.highScores[field][highScoreIndex].data.raw[i] = gUnknown_08079430[field][highScoreIndex].data.raw[i]; +} + +void sub_F74C(void) +{ + int field, highScoreIndex, k; + u8 letter; + u32 scoreHi, scoreLo; + + for (field = 0; field < 2; field++) + { + letter = Random() % 42; + gMain_saveData.highScores[field][0].data.parts.name[0] = letter; + for (k = 1; k < 4; k++) + { + if ((u8)(Random() % 10) < 8) + letter = Random() % 42; + + gMain_saveData.highScores[field][0].data.parts.name[k] = letter; + } + + scoreHi = Random(); + scoreLo = Random(); + gMain_saveData.highScores[field][0].data.parts.scoreHi = scoreHi; + gMain_saveData.highScores[field][0].data.parts.scoreLo = scoreLo; + for (highScoreIndex = 1; highScoreIndex < 8; highScoreIndex++) + { + letter = Random() % 42; + gMain_saveData.highScores[field][highScoreIndex].data.parts.name[0] = letter; + for (k = 1; k < 4; k++) + { + if ((u8)(Random() % 10) < 8) + letter = Random() % 42; + + gMain_saveData.highScores[field][highScoreIndex].data.parts.name[k] = letter; + } + + scoreHi = Random() % scoreHi; + if (scoreHi != 0) + scoreLo = Random(); + else + scoreLo = Random() % scoreLo; + + gMain_saveData.highScores[field][highScoreIndex].data.parts.scoreHi = scoreHi; + gMain_saveData.highScores[field][highScoreIndex].data.parts.scoreLo = scoreLo; + } + } +} diff --git a/src/rom_528AC.c b/src/rom_528AC.c index 370e244..df4f14c 100644 --- a/src/rom_528AC.c +++ b/src/rom_528AC.c @@ -197,7 +197,7 @@ void sub_52C64(void) gMain_saveData.unk141 = 0; gMain_saveData.ballSpeed = 0; sub_525CC(-1); - sub_F6E0(); + SetDefaultHighScores(); ResetPokedex(); gMain_saveData.unk143 = 0; }