diff options
-rwxr-xr-x | asm/options.s | 1559 | ||||
-rwxr-xr-x | include/main.h | 12 | ||||
-rwxr-xr-x | ld_script.txt | 1 | ||||
-rw-r--r-- | src/options.c | 1268 | ||||
-rwxr-xr-x | src/titlescreen.c | 4 |
5 files changed, 1243 insertions, 1601 deletions
diff --git a/asm/options.s b/asm/options.s deleted file mode 100755 index c31ae6d..0000000 --- a/asm/options.s +++ /dev/null @@ -1,1559 +0,0 @@ - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_51C9C -sub_51C9C: @ 0x08051C9C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x8c - ldr r0, _08051D38 @ =gUnknown_0200B3B8 - mov r8, r0 - ldr r2, _08051D3C @ =gOptionsData - movs r3, #4 - ldrsh r1, [r2, r3] - movs r0, #0xe6 - lsls r0, r0, #4 - muls r1, r0, r1 - movs r0, #0xa1 - lsls r0, r0, #3 - add r0, r8 - adds r1, r1, r0 - str r1, [sp, #0x60] - add r4, sp, #0xc - mov sl, r4 - mov r6, sp - adds r6, #0x18 - str r6, [sp, #0x6c] - mov r7, sp - adds r7, #0x1c - str r7, [sp, #0x74] - mov r0, sp - adds r0, #0x20 - str r0, [sp, #0x7c] - movs r0, #0xb8 - lsls r0, r0, #2 - add r0, r8 - mov r3, sl - mov r1, r8 - adds r1, #0xb8 - mov r2, sp - movs r4, #2 - mov ip, r4 -_08051CEA: - stm r2!, {r1} - stm r3!, {r0} - adds r0, #0xb8 - adds r1, #0xb8 - movs r6, #1 - rsbs r6, r6, #0 - add ip, r6 - mov r7, ip - cmp r7, #0 - bge _08051CEA - movs r0, #0 - mov ip, r0 - movs r1, #8 - add r1, r8 - mov sb, r1 - ldr r2, _08051D40 @ =gUnknown_0200B978 - adds r2, #8 - str r2, [sp, #0x70] - ldr r0, _08051D44 @ =gUnknown_0200BAE8 - adds r4, r0, #0 - adds r4, #0xb8 - adds r5, r0, #0 - movs r3, #0 - ldr r1, [sp, #0x6c] - adds r2, r5, #0 - subs r2, #0xb8 -_08051D1E: - ldr r0, _08051D48 @ =gUnknown_0200293A - add r0, ip - ldrb r0, [r0] - cmp r0, #1 - bne _08051D50 - ldr r6, _08051D3C @ =gOptionsData - movs r7, #6 - ldrsh r0, [r6, r7] - cmp r0, #1 - bne _08051D50 - ldr r0, _08051D4C @ =gUnknown_0200C7D8 - str r0, [r1] - b _08051D52 - .align 2, 0 -_08051D38: .4byte gUnknown_0200B3B8 -_08051D3C: .4byte gOptionsData -_08051D40: .4byte gUnknown_0200B978 -_08051D44: .4byte gUnknown_0200BAE8 -_08051D48: .4byte gUnknown_0200293A -_08051D4C: .4byte gUnknown_0200C7D8 -_08051D50: - str r2, [r1] -_08051D52: - ldr r6, [sp, #0x74] - adds r0, r6, r3 - str r5, [r0] - ldr r7, [sp, #0x7c] - adds r0, r7, r3 - str r4, [r0] - movs r0, #0x8a - lsls r0, r0, #2 - adds r4, r4, r0 - adds r5, r5, r0 - adds r2, r2, r0 - adds r3, #0xc - adds r1, #0xc - movs r6, #1 - add ip, r6 - mov r7, ip - cmp r7, #5 - ble _08051D1E - ldr r0, _08051F64 @ =gUnknown_0200C890 - str r0, [sp, #0x64] - movs r0, #1 - mov r1, r8 - strh r0, [r1] - movs r2, #1 - mov r1, sp - movs r3, #2 - mov ip, r3 -_08051D88: - ldm r1!, {r0} - strh r2, [r0] - movs r4, #1 - rsbs r4, r4, #0 - add ip, r4 - mov r6, ip - cmp r6, #0 - bge _08051D88 - ldr r7, [sp, #0x64] - adds r7, #8 - str r7, [sp, #0x78] - movs r2, #1 - mov r1, sl - movs r0, #2 - mov ip, r0 -_08051DA6: - ldm r1!, {r0} - strh r2, [r0] - movs r3, #1 - rsbs r3, r3, #0 - add ip, r3 - mov r4, ip - cmp r4, #0 - bge _08051DA6 - movs r0, #1 - ldr r6, [sp, #0x60] - strh r0, [r6] - ldr r7, _08051F68 @ =gUnknown_0200B978 - strh r0, [r7] - movs r0, #0 - mov ip, r0 - ldr r6, [sp, #0x6c] - movs r3, #1 - movs r2, #0 -_08051DCA: - adds r1, r2, r6 - movs r5, #2 -_08051DCE: - ldm r1!, {r0} - strh r3, [r0] - subs r5, #1 - cmp r5, #0 - bge _08051DCE - adds r2, #0xc - movs r1, #1 - add ip, r1 - mov r4, ip - cmp r4, #5 - ble _08051DCA - movs r0, #1 - ldr r6, [sp, #0x64] - strh r0, [r6] - ldr r7, _08051F6C @ =gUnknown_0200C948 - strh r0, [r7] - ldr r5, _08051F70 @ =gOptionsData - adds r0, r5, #0 - adds r0, #0x30 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, _08051F74 @ =gUnknown_0200CA00 - strh r0, [r1] - ldr r0, _08051F78 @ =gUnknown_086BB9EC - movs r1, #0x20 - ldr r2, _08051F7C @ =gUnknown_0200B3B8 - bl LoadSpriteSets - ldr r2, _08051F80 @ =gUnknown_086BB968 - movs r3, #0xa - ldrsh r1, [r5, r3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldrh r0, [r5, #2] - ldrh r1, [r1] - adds r0, r0, r1 - mov r4, r8 - strh r0, [r4, #2] - movs r6, #0xa - ldrsh r0, [r5, r6] - lsls r0, r0, #2 - adds r0, r0, r2 - ldrh r0, [r0, #2] - strh r0, [r4, #4] - mov r7, sb - ldr r4, _08051F84 @ =gOamBuffer - mov r0, r8 - ldrh r2, [r0, #8] - lsls r2, r2, #3 - adds r2, r2, r4 - movs r3, #2 - ldrsh r1, [r7, r3] - movs r6, #2 - ldrsh r0, [r0, r6] - adds r1, r1, r0 - ldr r3, _08051F88 @ =0x000001FF - adds r0, r3, #0 - ands r1, r0 - ldrh r3, [r2, #2] - ldr r6, _08051F8C @ =0xFFFFFE00 - adds r0, r6, #0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - mov r0, r8 - ldrh r1, [r0, #8] - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - movs r1, #0 - mov ip, r1 - mov r8, r4 - mov r5, sp - movs r2, #0x48 - mov sb, r2 -_08051E6C: - ldr r0, [r5] - mov r3, sb - strh r3, [r0, #2] - ldr r1, [r5] - movs r0, #0x20 - strh r0, [r1, #4] - ldr r4, [r5] - adds r7, r4, #0 - adds r7, #8 - ldrh r2, [r4, #8] - lsls r2, r2, #3 - add r2, r8 - ldr r0, _08051F90 @ =gUnknown_02002932 - add r0, ip - ldrb r1, [r0] - adds r1, #0x16 - ldrh r3, [r2, #4] - ldr r0, _08051F94 @ =0xFFFFFC00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrh r3, [r4, #8] - lsls r3, r3, #3 - add r3, r8 - movs r0, #2 - ldrsh r1, [r7, r0] - ldr r0, [r5] - movs r2, #2 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - ldr r2, _08051F88 @ =0x000001FF - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #2] - adds r0, r6, #0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - add r1, r8 - ldm r5!, {r0} - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - movs r3, #7 - add sb, r3 - movs r4, #1 - add ip, r4 - mov r7, ip - cmp r7, #2 - ble _08051E6C - movs r0, #0 - mov ip, r0 - ldr r1, _08051F84 @ =gOamBuffer - mov r8, r1 - movs r6, #0x48 - mov r5, sl -_08051EE2: - ldr r0, [r5] - strh r6, [r0, #2] - ldr r0, [r5] - movs r2, #0x2c - mov sb, r2 - mov r3, sb - strh r3, [r0, #4] - ldr r4, [r5] - adds r7, r4, #0 - adds r7, #8 - ldrh r2, [r4, #8] - lsls r2, r2, #3 - add r2, r8 - ldr r0, _08051F98 @ =gUnknown_02002935 - add r0, ip - ldrb r1, [r0] - adds r1, #0x16 - ldrh r3, [r2, #4] - ldr r0, _08051F94 @ =0xFFFFFC00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrh r3, [r4, #8] - lsls r3, r3, #3 - add r3, r8 - movs r0, #2 - ldrsh r1, [r7, r0] - ldr r0, [r5] - movs r2, #2 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - ldr r2, _08051F88 @ =0x000001FF - adds r0, r2, #0 - ands r1, r0 - ldrh r2, [r3, #2] - ldr r0, _08051F8C @ =0xFFFFFE00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - add r1, r8 - ldm r5!, {r0} - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - adds r6, #7 - movs r3, #1 - add ip, r3 - mov r4, ip - cmp r4, #2 - ble _08051EE2 - movs r0, #0x48 - ldr r6, [sp, #0x60] - strh r0, [r6, #2] - ldr r7, _08051F70 @ =gOptionsData - movs r1, #0xa - ldrsh r0, [r7, r1] - cmp r0, #0 - bne _08051F9C - movs r0, #0x20 - strh r0, [r6, #4] - b _08051FA6 - .align 2, 0 -_08051F64: .4byte gUnknown_0200C890 -_08051F68: .4byte gUnknown_0200B978 -_08051F6C: .4byte gUnknown_0200C948 -_08051F70: .4byte gOptionsData -_08051F74: .4byte gUnknown_0200CA00 -_08051F78: .4byte gUnknown_086BB9EC -_08051F7C: .4byte gUnknown_0200B3B8 -_08051F80: .4byte gUnknown_086BB968 -_08051F84: .4byte gOamBuffer -_08051F88: .4byte 0x000001FF -_08051F8C: .4byte 0xFFFFFE00 -_08051F90: .4byte gUnknown_02002932 -_08051F94: .4byte 0xFFFFFC00 -_08051F98: .4byte gUnknown_02002935 -_08051F9C: - cmp r0, #1 - bne _08051FA6 - mov r3, sb - ldr r2, [sp, #0x60] - strh r3, [r2, #4] -_08051FA6: - ldr r5, _080520D0 @ =gOamBuffer - ldr r7, _080520D4 @ =0xFFFFFE00 - ldr r4, [sp, #0x60] - adds r4, #8 - movs r6, #1 - mov ip, r6 -_08051FB2: - ldrh r3, [r4] - lsls r3, r3, #3 - adds r3, r3, r5 - movs r0, #2 - ldrsh r1, [r4, r0] - ldr r2, [sp, #0x60] - movs r6, #2 - ldrsh r0, [r2, r6] - adds r1, r1, r0 - ldr r0, _080520D8 @ =0x000001FF - adds r6, r0, #0 - ands r1, r6 - ldrh r2, [r3, #2] - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r4] - lsls r1, r1, #3 - adds r1, r1, r5 - ldr r2, [sp, #0x60] - ldrb r0, [r2, #4] - ldrb r3, [r4, #4] - adds r0, r0, r3 - strb r0, [r1] - adds r4, #8 - movs r0, #1 - rsbs r0, r0, #0 - add ip, r0 - mov r1, ip - cmp r1, #0 - bge _08051FB2 - movs r0, #0x48 - ldr r2, _080520DC @ =gUnknown_0200B978 - strh r0, [r2, #2] - ldr r3, _080520E0 @ =gOptionsData - movs r4, #0xc - ldrsh r0, [r3, r4] - lsls r0, r0, #1 - ldr r7, _080520E4 @ =gUnknown_086BB9A8 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r2, #4] - ldr r7, [sp, #0x70] - ldrh r2, [r2, #8] - lsls r2, r2, #3 - ldr r0, _080520D0 @ =gOamBuffer - adds r2, r2, r0 - movs r3, #2 - ldrsh r1, [r7, r3] - adds r1, #0x48 - ands r1, r6 - ldrh r3, [r2, #2] - ldr r0, _080520D4 @ =0xFFFFFE00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - ldr r4, _080520DC @ =gUnknown_0200B978 - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r6, _080520D0 @ =gOamBuffer - adds r1, r1, r6 - ldrb r0, [r4, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - movs r7, #0 - mov ip, r7 - ldr r0, _080520E0 @ =gOptionsData - str r0, [sp, #0x68] - movs r1, #0x54 - str r1, [sp, #0x80] - movs r2, #0 - str r2, [sp, #0x84] - movs r3, #0 - str r3, [sp, #0x88] - ldr r4, [sp, #0x6c] - mov r8, r4 -_0805204E: - ldr r0, [sp, #0x68] - adds r0, #0x1a - add r0, ip - ldrb r0, [r0] - cmp r0, #1 - bne _080520E8 - mov r6, r8 - ldr r1, [r6] - movs r0, #0x9c - strh r0, [r1, #2] - ldr r0, [r6] - add r7, sp, #0x80 - ldrh r7, [r7] - strh r7, [r0, #4] - movs r5, #0 - ldr r1, [sp, #0x68] - movs r2, #6 - ldrsh r0, [r1, r2] - adds r0, #1 - cmp r5, r0 - blt _0805207A - b _080522E2 -_0805207A: - ldr r3, [sp, #0x6c] - ldr r6, [sp, #0x84] - adds r4, r3, r6 - ldr r7, _080520D0 @ =gOamBuffer - mov sb, r7 - movs r6, #8 - ldr r0, _080520D4 @ =0xFFFFFE00 - mov sl, r0 -_0805208A: - ldr r0, [r4] - adds r7, r0, r6 - ldrh r2, [r7] - lsls r2, r2, #3 - add r2, sb - movs r3, #2 - ldrsh r1, [r7, r3] - movs r3, #2 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - ldr r3, _080520D8 @ =0x000001FF - adds r0, r3, #0 - ands r1, r0 - ldrh r3, [r2, #2] - mov r0, sl - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - ldrh r1, [r7] - lsls r1, r1, #3 - add r1, sb - ldr r0, [r4] - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - adds r6, #8 - adds r5, #1 - ldr r7, [sp, #0x68] - movs r1, #6 - ldrsh r0, [r7, r1] - adds r0, #1 - cmp r5, r0 - blt _0805208A - b _080522E2 - .align 2, 0 -_080520D0: .4byte gOamBuffer -_080520D4: .4byte 0xFFFFFE00 -_080520D8: .4byte 0x000001FF -_080520DC: .4byte gUnknown_0200B978 -_080520E0: .4byte gOptionsData -_080520E4: .4byte gUnknown_086BB9A8 -_080520E8: - mov r2, r8 - ldr r1, [r2] - movs r0, #0x9c - strh r0, [r1, #2] - ldr r0, [r2] - add r3, sp, #0x80 - ldrh r3, [r3] - strh r3, [r0, #4] - ldr r4, [r2] - adds r7, r4, #0 - adds r7, #8 - ldr r6, [sp, #0x68] - movs r0, #0xc - ldrsh r1, [r6, r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [sp, #0x88] - adds r0, r1, r0 - ldr r2, _08052490 @ =gUnknown_02031AF0 - adds r0, r0, r2 - ldrb r0, [r0] - ldrh r2, [r4, #8] - lsls r2, r2, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r2, r2, r3 - lsls r0, r0, #3 - ldr r1, _08052498 @ =gUnknown_086BB910 - adds r6, r0, r1 - ldrh r0, [r6, #2] - ldr r1, _0805249C @ =0x000003FF - ands r1, r0 - ldrh r3, [r2, #4] - ldr r0, _080524A0 @ =0xFFFFFC00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - ldrb r2, [r6, #4] - lsls r2, r2, #6 - ldrb r3, [r1, #1] - movs r0, #0x3f - mov sl, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #1] - ldrh r2, [r4, #8] - lsls r2, r2, #3 - ldr r1, _08052494 @ =gOamBuffer - adds r2, r2, r1 - ldrb r1, [r6, #5] - lsls r1, r1, #6 - ldrb r3, [r2, #3] - mov r0, sl - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #3] - ldrh r2, [r4, #8] - lsls r2, r2, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r2, r2, r3 - movs r0, #2 - ldrsh r1, [r7, r0] - mov r3, r8 - ldr r0, [r3] - movs r3, #2 - ldrsh r0, [r0, r3] - adds r1, r1, r0 - ldr r0, _080524A4 @ =0x000001FF - ands r1, r0 - ldrh r3, [r2, #2] - ldr r0, _080524A8 @ =0xFFFFFE00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - mov r3, r8 - ldr r0, [r3] - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - ldr r4, [sp, #0x68] - movs r7, #0xc - ldrsh r1, [r4, r7] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r0, #1 - ldr r1, [sp, #0x88] - adds r0, r1, r0 - ldr r2, _08052490 @ =gUnknown_02031AF0 - adds r0, r0, r2 - ldrb r0, [r0] - mov sb, r0 - cmp r0, #0xa - bne _080521B8 - b _080522E2 -_080521B8: - ldr r3, [sp, #0x74] - ldr r4, [sp, #0x84] - adds r5, r3, r4 - ldr r1, [r5] - mov r7, r8 - ldr r0, [r7] - ldrh r0, [r0, #2] - ldrb r6, [r6, #6] - adds r0, r0, r6 - strh r0, [r1, #2] - ldr r1, [r5] - ldr r0, [r7] - ldrh r0, [r0, #4] - strh r0, [r1, #4] - ldr r4, [r5] - adds r7, r4, #0 - adds r7, #8 - ldrh r2, [r4, #8] - lsls r2, r2, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r2, r2, r0 - ldrh r1, [r2, #4] - ldr r0, _080524A0 @ =0xFFFFFC00 - ands r0, r1 - movs r1, #0x2a - orrs r0, r1 - strh r0, [r2, #4] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - ldrb r2, [r1, #1] - mov r0, sl - ands r0, r2 - strb r0, [r1, #1] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r1, r1, r3 - ldrb r2, [r1, #3] - mov r0, sl - ands r0, r2 - strb r0, [r1, #3] - ldrh r3, [r4, #8] - lsls r3, r3, #3 - ldr r6, _08052494 @ =gOamBuffer - adds r3, r3, r6 - movs r0, #2 - ldrsh r1, [r7, r0] - ldr r0, [r5] - movs r2, #2 - ldrsh r0, [r0, r2] - adds r1, r1, r0 - ldr r6, _080524A4 @ =0x000001FF - ands r1, r6 - ldrh r2, [r3, #2] - ldr r0, _080524A8 @ =0xFFFFFE00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r4, #8] - lsls r1, r1, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r1, r1, r0 - ldr r0, [r5] - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - ldr r1, [sp, #0x7c] - ldr r2, [sp, #0x84] - adds r6, r1, r2 - ldr r1, [r6] - ldr r0, [r5] - ldrh r0, [r0, #2] - adds r0, #8 - strh r0, [r1, #2] - ldr r1, [r6] - mov r3, r8 - ldr r0, [r3] - ldrh r0, [r0, #4] - strh r0, [r1, #4] - ldr r5, [r6] - adds r7, r5, #0 - adds r7, #8 - ldrh r3, [r5, #8] - lsls r3, r3, #3 - ldr r4, _08052494 @ =gOamBuffer - adds r3, r3, r4 - mov r0, sb - lsls r4, r0, #3 - ldr r1, _08052498 @ =gUnknown_086BB910 - adds r4, r4, r1 - ldrh r0, [r4, #2] - ldr r1, _0805249C @ =0x000003FF - ands r1, r0 - ldrh r2, [r3, #4] - ldr r0, _080524A0 @ =0xFFFFFC00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldrh r2, [r5, #8] - lsls r2, r2, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r2, r2, r3 - ldrb r1, [r4, #4] - lsls r1, r1, #6 - ldrb r3, [r2, #1] - mov r0, sl - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #1] - ldrh r2, [r5, #8] - lsls r2, r2, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r2, r2, r0 - ldrb r1, [r4, #5] - lsls r1, r1, #6 - ldrb r3, [r2, #3] - mov r0, sl - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #3] - ldrh r3, [r5, #8] - lsls r3, r3, #3 - ldr r1, _08052494 @ =gOamBuffer - adds r3, r3, r1 - movs r2, #2 - ldrsh r1, [r7, r2] - ldr r0, [r6] - movs r4, #2 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - ldr r0, _080524A4 @ =0x000001FF - ands r1, r0 - ldrh r2, [r3, #2] - ldr r0, _080524A8 @ =0xFFFFFE00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r5, #8] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - ldr r0, [r6] - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] -_080522E2: - ldr r3, [sp, #0x80] - adds r3, #0xc - str r3, [sp, #0x80] - ldr r4, [sp, #0x84] - adds r4, #0xc - str r4, [sp, #0x84] - ldr r6, [sp, #0x88] - adds r6, #2 - str r6, [sp, #0x88] - movs r7, #0xc - add r8, r7 - movs r0, #1 - add ip, r0 - mov r1, ip - cmp r1, #4 - bgt _08052304 - b _0805204E -_08052304: - movs r5, #8 - movs r0, #0xaa - ldr r2, [sp, #0x64] - strh r0, [r2, #2] - ldr r0, _080524AC @ =gOptionsData - adds r0, #0x2a - ldrb r0, [r0] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - movs r0, #0x2c - subs r0, r0, r1 - strh r0, [r2, #4] - ldr r7, [sp, #0x78] - ldrh r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r2, r2, r3 - movs r4, #2 - ldrsh r1, [r7, r4] - adds r1, #0xaa - ldr r6, _080524A4 @ =0x000001FF - adds r0, r6, #0 - ands r1, r0 - ldrh r3, [r2, #2] - ldr r4, _080524A8 @ =0xFFFFFE00 - adds r0, r4, #0 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - ldr r0, [sp, #0x64] - ldrh r1, [r0, #8] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - ldrb r0, [r0, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - movs r0, #0xc0 - ldr r3, _080524B0 @ =gUnknown_0200C948 - strh r0, [r3, #2] - strh r5, [r3, #4] - ldr r6, _080524AC @ =gOptionsData - adds r6, #0x2d - mov sl, r6 - adds r5, r3, #0 - adds r5, #8 - movs r6, #0x40 - mov sb, r4 - movs r7, #1 - mov ip, r7 -_0805236C: - ldrh r3, [r5] - lsls r3, r3, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r3, r3, r0 - mov r2, sl - movs r1, #0 - ldrsb r1, [r2, r1] - lsls r1, r1, #2 - adds r1, r6, r1 - ldr r7, _0805249C @ =0x000003FF - adds r4, r7, #0 - ands r1, r4 - ldrh r2, [r3, #4] - ldr r0, _080524A0 @ =0xFFFFFC00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #4] - ldrh r3, [r5] - lsls r3, r3, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r3, r3, r0 - movs r2, #2 - ldrsh r1, [r5, r2] - ldr r7, _080524B0 @ =gUnknown_0200C948 - movs r2, #2 - ldrsh r0, [r7, r2] - adds r1, r1, r0 - ldr r7, _080524A4 @ =0x000001FF - mov r8, r7 - mov r0, r8 - ands r1, r0 - ldrh r2, [r3, #2] - mov r0, sb - ands r0, r2 - orrs r0, r1 - strh r0, [r3, #2] - ldrh r1, [r5] - lsls r1, r1, #3 - ldr r2, _08052494 @ =gOamBuffer - adds r1, r1, r2 - ldr r3, _080524B0 @ =gUnknown_0200C948 - ldrb r0, [r3, #4] - ldrb r7, [r5, #4] - adds r0, r0, r7 - strb r0, [r1] - adds r5, #8 - adds r6, #0x80 - movs r0, #1 - rsbs r0, r0, #0 - add ip, r0 - mov r1, ip - cmp r1, #0 - bge _0805236C - ldr r2, _080524B4 @ =gUnknown_0200CA00 - ldrh r0, [r2] - cmp r0, #1 - bne _08052454 - movs r0, #0xb0 - strh r0, [r2, #2] - movs r0, #8 - strh r0, [r2, #4] - adds r7, r2, #0 - adds r7, #8 - ldrh r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _08052494 @ =gOamBuffer - adds r2, r2, r3 - ldr r5, _080524AC @ =gOptionsData - adds r5, #0x2f - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r1, r1, #6 - adds r1, #0x54 - ands r1, r4 - ldrh r3, [r2, #4] - ldr r0, _080524A0 @ =0xFFFFFC00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #4] - ldr r4, _080524B4 @ =gUnknown_0200CA00 - ldrh r2, [r4, #8] - lsls r2, r2, #3 - ldr r6, _08052494 @ =gOamBuffer - adds r2, r2, r6 - movs r0, #2 - ldrsh r1, [r7, r0] - movs r3, #2 - ldrsh r0, [r4, r3] - adds r1, r1, r0 - mov r4, r8 - ands r1, r4 - ldrh r3, [r2, #2] - ldr r0, _080524A8 @ =0xFFFFFE00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, #2] - ldr r6, _080524B4 @ =gUnknown_0200CA00 - ldrh r1, [r6, #8] - lsls r1, r1, #3 - ldr r0, _08052494 @ =gOamBuffer - adds r1, r1, r0 - ldrb r0, [r6, #4] - ldrb r7, [r7, #4] - adds r0, r0, r7 - strb r0, [r1] - ldr r0, _080524B8 @ =gMain - ldr r0, [r0, #0x4c] - movs r1, #0x12 - bl __umodsi3 - cmp r0, #0 - bne _08052454 - ldrb r1, [r5] - movs r0, #1 - subs r0, r0, r1 - strb r0, [r5] -_08052454: - movs r0, #0 - ldr r1, [sp, #0x60] - strh r0, [r1] - mov ip, r0 - ldr r4, [sp, #0x6c] - movs r3, #0 -_08052460: - mov r2, ip - adds r2, #1 - mov r6, ip - lsls r0, r6, #1 - add r0, ip - lsls r0, r0, #2 - adds r1, r0, r4 - movs r5, #2 -_08052470: - ldm r1!, {r0} - strh r3, [r0] - subs r5, #1 - cmp r5, #0 - bge _08052470 - mov ip, r2 - cmp r2, #5 - ble _08052460 - add sp, #0x8c - 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 -_08052490: .4byte gUnknown_02031AF0 -_08052494: .4byte gOamBuffer -_08052498: .4byte gUnknown_086BB910 -_0805249C: .4byte 0x000003FF -_080524A0: .4byte 0xFFFFFC00 -_080524A4: .4byte 0x000001FF -_080524A8: .4byte 0xFFFFFE00 -_080524AC: .4byte gOptionsData -_080524B0: .4byte gUnknown_0200C948 -_080524B4: .4byte gUnknown_0200CA00 -_080524B8: .4byte gMain - - thumb_func_start sub_524BC -sub_524BC: @ 0x080524BC - push {r4, r5, lr} - ldr r1, _0805251C @ =gOptionsData - movs r2, #0x28 - ldrsh r0, [r1, r2] - adds r2, r1, #0 - cmp r0, #1 - bgt _08052514 - ldr r0, _08052520 @ =gMain - ldrh r0, [r0, #0x1c] - ldr r4, _08052524 @ =0x000003F7 - ands r4, r0 - cmp r4, #0 - beq _08052514 - movs r3, #0 -_080524D8: - movs r1, #1 - lsls r1, r3 - ands r1, r4 - cmp r1, #0 - beq _0805250E - movs r5, #0x22 - ldrsh r0, [r2, r5] - ands r0, r1 - cmp r0, #0 - bne _0805250E - ldrh r0, [r2, #0x22] - orrs r1, r0 - strh r1, [r2, #0x22] - movs r1, #0x28 - ldrsh r0, [r2, r1] - lsls r0, r0, #1 - adds r1, r2, #0 - adds r1, #0x24 - adds r0, r0, r1 - strh r3, [r0] - ldrh r0, [r2, #0x28] - adds r0, #1 - strh r0, [r2, #0x28] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #2 - beq _08052514 -_0805250E: - adds r3, #1 - cmp r3, #9 - ble _080524D8 -_08052514: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0805251C: .4byte gOptionsData -_08052520: .4byte gMain -_08052524: .4byte 0x000003F7 - - thumb_func_start sub_52528 -sub_52528: @ 0x08052528 - push {r4, r5, r6, r7, lr} - movs r0, #0 - ldr r1, _0805255C @ =gUnknown_0200B204 - mov ip, r1 - ldr r6, _08052560 @ =gUnknown_02031B18 -_08052532: - movs r2, #0 - lsls r4, r0, #2 - lsls r3, r0, #1 - adds r5, r0, #1 -_0805253A: - lsls r0, r2, #1 - adds r0, r0, r4 - add r0, ip - movs r7, #0 - ldrsh r1, [r0, r7] - cmp r1, #0x10 - beq _0805259A - cmp r1, #0x10 - bgt _0805256A - cmp r1, #2 - beq _08052592 - cmp r1, #2 - bgt _08052564 - cmp r1, #1 - beq _0805258E - b _080525B2 - .align 2, 0 -_0805255C: .4byte gUnknown_0200B204 -_08052560: .4byte gUnknown_02031B18 -_08052564: - cmp r1, #4 - beq _08052596 - b _080525B2 -_0805256A: - cmp r1, #0x80 - beq _080525A6 - cmp r1, #0x80 - bgt _0805257C - cmp r1, #0x20 - beq _0805259E - cmp r1, #0x40 - beq _080525A2 - b _080525B2 -_0805257C: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _080525AA - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080525AE - b _080525B2 -_0805258E: - movs r1, #0 - b _080525B4 -_08052592: - movs r1, #1 - b _080525B4 -_08052596: - movs r1, #2 - b _080525B4 -_0805259A: - movs r1, #4 - b _080525B4 -_0805259E: - movs r1, #5 - b _080525B4 -_080525A2: - movs r1, #6 - b _080525B4 -_080525A6: - movs r1, #7 - b _080525B4 -_080525AA: - movs r1, #8 - b _080525B4 -_080525AE: - movs r1, #9 - b _080525B4 -_080525B2: - movs r1, #0xa -_080525B4: - adds r0, r3, r2 - adds r0, r0, r6 - strb r1, [r0] - adds r2, #1 - cmp r2, #1 - ble _0805253A - adds r0, r5, #0 - cmp r0, #4 - ble _08052532 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_525CC -sub_525CC: @ 0x080525CC - push {r4, r5, r6, lr} - lsls r0, r0, #0x18 - movs r1, #0x80 - lsls r1, r1, #0x11 - adds r0, r0, r1 - asrs r0, r0, #0x18 - cmp r0, #5 - bls _080525DE - b _080528A2 -_080525DE: - lsls r0, r0, #2 - ldr r1, _080525E8 @ =_080525EC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080525E8: .4byte _080525EC -_080525EC: @ jump table - .4byte _08052604 @ case 0 - .4byte _080526CC @ case 1 - .4byte _08052720 @ case 2 - .4byte _08052770 @ case 3 - .4byte _080527C0 @ case 4 - .4byte _08052814 @ case 5 -_08052604: - ldr r0, _080526BC @ =gMain - mov ip, r0 - ldr r6, _080526C0 @ =gUnknown_086BB910 - ldrh r5, [r6, #0x28] - adds r0, #0x60 - strh r5, [r0] - adds r0, r6, #0 - adds r0, #0x50 - ldrh r2, [r0] - mov r0, ip - adds r0, #0x62 - strh r2, [r0] - ldrh r4, [r6] - adds r0, #2 - strh r4, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r6, #0 - adds r0, #0x48 - ldrh r3, [r0] - mov r0, ip - adds r0, #0x68 - strh r3, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r6, #0 - adds r0, #0x40 - ldrh r1, [r0] - mov r0, ip - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - strh r1, [r0] - ldrh r1, [r6, #8] - movs r0, #0xa2 - lsls r0, r0, #1 - add r0, ip - strh r1, [r0] - movs r0, #0xa3 - lsls r0, r0, #1 - add r0, ip - strh r2, [r0] - movs r0, #0xa4 - lsls r0, r0, #1 - add r0, ip - strh r4, [r0] - movs r0, #0xa5 - lsls r0, r0, #1 - add r0, ip - strh r2, [r0] - movs r0, #0xa6 - lsls r0, r0, #1 - add r0, ip - strh r5, [r0] - movs r0, #0xa7 - lsls r0, r0, #1 - add r0, ip - strh r2, [r0] - ldrh r1, [r6, #0x20] - movs r0, #0xa8 - lsls r0, r0, #1 - add r0, ip - strh r1, [r0] - movs r0, #0xa9 - lsls r0, r0, #1 - add r0, ip - strh r2, [r0] - ldrh r1, [r6, #0x30] - movs r0, #0xaa - lsls r0, r0, #1 - add r0, ip - strh r1, [r0] - movs r0, #0xab - lsls r0, r0, #1 - add r0, ip - strh r2, [r0] - movs r2, #0 - ldr r4, _080526C4 @ =gUnknown_02031B18 - ldr r3, _080526C8 @ =gUnknown_08527EFE -_080526AA: - adds r0, r2, r4 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #9 - ble _080526AA - b _080528A2 - .align 2, 0 -_080526BC: .4byte gMain -_080526C0: .4byte gUnknown_086BB910 -_080526C4: .4byte gUnknown_02031B18 -_080526C8: .4byte gUnknown_08527EFE -_080526CC: - ldr r4, _08052718 @ =gMain - ldr r5, _0805271C @ =gUnknown_086BB910 - ldrh r1, [r5, #0x28] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x50 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strh r2, [r0] - ldrh r1, [r5] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r5, #0 - adds r0, #0x48 - ldrh r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r3, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r5, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - b _080528A0 - .align 2, 0 -_08052718: .4byte gMain -_0805271C: .4byte gUnknown_086BB910 -_08052720: - ldr r3, _08052768 @ =gMain - ldr r4, _0805276C @ =gUnknown_086BB910 - ldrh r1, [r4, #0x28] - adds r0, r3, #0 - adds r0, #0x60 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x50 - ldrh r2, [r0] - adds r0, r3, #0 - adds r0, #0x62 - strh r2, [r0] - ldrh r1, [r4] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r4, #0 - adds r0, #0x48 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, r4, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r1, [r4, #8] - b _08052802 - .align 2, 0 -_08052768: .4byte gMain -_0805276C: .4byte gUnknown_086BB910 -_08052770: - ldr r4, _080527B8 @ =gMain - ldr r5, _080527BC @ =gUnknown_086BB910 - adds r0, r5, #0 - adds r0, #0x48 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x60 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x50 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strh r2, [r0] - adds r0, r5, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x64 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r3, [r5, #0x28] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r1, [r5] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - adds r0, #2 - strh r3, [r0] - adds r0, #2 - b _080528A0 - .align 2, 0 -_080527B8: .4byte gMain -_080527BC: .4byte gUnknown_086BB910 -_080527C0: - ldr r3, _0805280C @ =gMain - ldr r4, _08052810 @ =gUnknown_086BB910 - adds r0, r4, #0 - adds r0, #0x48 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x60 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x50 - ldrh r2, [r0] - adds r0, r3, #0 - adds r0, #0x62 - strh r2, [r0] - adds r0, r4, #0 - adds r0, #0x40 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x64 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r1, [r4, #0x28] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r1, [r4, #0x20] - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - ldrh r1, [r4, #0x30] -_08052802: - adds r0, #2 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] - b _080528A2 - .align 2, 0 -_0805280C: .4byte gMain -_08052810: .4byte gUnknown_086BB910 -_08052814: - ldr r2, _080528A8 @ =gMain - movs r1, #0xa2 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r1, #0xa3 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x62 - strh r0, [r1] - movs r1, #0xa4 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x64 - strh r1, [r0] - movs r1, #0xa5 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x66 - strh r0, [r1] - movs r1, #0xa6 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - movs r1, #0xa7 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x6a - strh r0, [r1] - movs r1, #0xa8 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x6c - strh r1, [r0] - movs r1, #0xa9 - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x6e - strh r0, [r1] - movs r1, #0xaa - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x70 - strh r1, [r0] - movs r1, #0xab - lsls r1, r1, #1 - adds r0, r2, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x72 -_080528A0: - strh r1, [r0] -_080528A2: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080528A8: .4byte gMain diff --git a/include/main.h b/include/main.h index f37dd24..99cdcac 100755 --- a/include/main.h +++ b/include/main.h @@ -60,7 +60,17 @@ struct Main /*0x48*/ int rngValue; /*0x4C*/ int frameCount; /*0x50*/ int unk50; - /*0x54*/ u8 filler54[0x20]; + /*0x54*/ u8 filler54[0xC]; + /*0x60*/ u16 unk60; + /*0x62*/ u16 unk62; + /*0x64*/ u16 unk64; + /*0x66*/ u16 unk66; + /*0x68*/ u16 unk68; + /*0x6A*/ u16 unk6A; + /*0x6C*/ u16 unk6C; + /*0x6E*/ u16 unk6E; + /*0x70*/ u16 unk70; + /*0x72*/ u16 unk72; // This field must be accessed using the following macro to produce matching code. #define gMain_saveData (*(struct SaveData *)(&gMain.saveData)) diff --git a/ld_script.txt b/ld_script.txt index 63a834d..985ec21 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -46,7 +46,6 @@ SECTIONS src/rom_3219C.o(.text); asm/rom_3219C.o(.text); src/options.o(.text); - asm/options.o(.text); src/rom_528AC.o(.text); asm/m4a_1.o(.text); src/m4a.o(.text); diff --git a/src/options.c b/src/options.c index cd02b94..73e6f4a 100644 --- a/src/options.c +++ b/src/options.c @@ -23,9 +23,9 @@ struct OptionsData s16 unk18; u8 unk1A[6]; s16 unk20; - u16 unk22; + s16 unk22; s16 unk24[2]; - u16 unk28; + s16 unk28; u8 unk2A; s8 unk2B; s8 unk2C; @@ -36,11 +36,8 @@ struct OptionsData }; extern struct OptionsData gOptionsData; - -void OptionsMain(void) -{ - gUnknown_08527F08[gMain.subState](); -} +extern s16 gUnknown_0200B204[][2]; +extern u8 gUnknown_02031B18[]; extern const u16 gUnknown_0852B468[]; extern const u8 gUnknown_08528828[]; @@ -48,6 +45,11 @@ extern const u8 gUnknown_0852A848[]; extern const u8 gUnknown_08528028[]; extern const u8 gUnknown_0852A048[]; +void OptionsMain(void) +{ + gUnknown_08527F08[gMain.subState](); +} + void sub_51240(void) { ResetSomeGraphicsRelatedStuff(); @@ -146,7 +148,7 @@ void sub_514B8(void) switch (gOptionsData.unk0) { case 0: - if (gMain.newKeys & 0x40) + if (gMain.newKeys & DPAD_UP) { if (gOptionsData.unkA != 0xD) { @@ -162,7 +164,7 @@ void sub_514B8(void) } } } - else if (gMain.newKeys & 0x80) + else if (gMain.newKeys & DPAD_DOWN) { if (gOptionsData.unkA < 6) { @@ -180,17 +182,17 @@ void sub_514B8(void) gOptionsData.unkA = 2; } } - if ((gMain.newKeys & 0x10) && gGameBoyPlayerEnabled == 1 && (u16)gOptionsData.unkA < 2) + if ((gMain.newKeys & DPAD_RIGHT) && gGameBoyPlayerEnabled == 1 && (u16)gOptionsData.unkA < 2) { m4aSongNumStart(0x67); gOptionsData.unkA += 0xD; } - if ((gMain.newKeys & 0x20) && gGameBoyPlayerEnabled == 1 && (u16)(gOptionsData.unkA - 13) < 2) + if ((gMain.newKeys & DPAD_LEFT) && gGameBoyPlayerEnabled == 1 && (u16)(gOptionsData.unkA - 13) < 2) { m4aSongNumStart(0x67); gOptionsData.unkA -= 0xD; } - if (gMain.newKeys & 1) + if (gMain.newKeys & A_BUTTON) { switch (gOptionsData.unkA) { @@ -262,7 +264,7 @@ void sub_514B8(void) break; } } - else if (gMain.newKeys & 2) + else if (gMain.newKeys & B_BUTTON) { m4aSongNumStart(0x66); gMain.subState++; @@ -273,7 +275,7 @@ void sub_514B8(void) gOptionsData.unk2 = 1 - gOptionsData.unk2; break; case 1: - if (gMain.heldKeys & 0x20) + if (gMain.heldKeys & DPAD_LEFT) { if (gOptionsData.unk18 == 0) { @@ -281,7 +283,7 @@ void sub_514B8(void) gOptionsData.unk18 = 10; } } - else if (gMain.heldKeys & 0x10) + else if (gMain.heldKeys & DPAD_RIGHT) { if (gOptionsData.unk18 == 0) { @@ -289,10 +291,12 @@ void sub_514B8(void) gOptionsData.unk18 = 10; } } - if (gMain.newKeys & 0x40) + + if (gMain.newKeys & DPAD_UP) gOptionsData.unkE += 10; - else if (gMain.newKeys & 0x80) + else if (gMain.newKeys & DPAD_DOWN) gOptionsData.unkE -= 10; + if (gOptionsData.unkE < 0) gOptionsData.unkE = 33; if (gOptionsData.unkE > 33) @@ -303,12 +307,12 @@ void sub_514B8(void) r4 %= 100; gOptionsData.unk13 = r4 / 10; gOptionsData.unk14 = r4 % 10; - if (gMain.newKeys & 1) + if (gMain.newKeys & A_BUTTON) { m4aMPlayAllStop(); m4aSongNumStart(gUnknown_08527D22[gOptionsData.unkE]); } - else if (gMain.newKeys & 2) + else if (gMain.newKeys & B_BUTTON) { m4aMPlayAllStop(); m4aSongNumStart(0x66); @@ -322,7 +326,7 @@ void sub_514B8(void) gOptionsData.unk18--; break; case 2: - if (gMain.heldKeys & 0x20) + if (gMain.heldKeys & DPAD_LEFT) { if (gOptionsData.unk18 == 0) { @@ -330,7 +334,7 @@ void sub_514B8(void) gOptionsData.unk18 = 10; } } - else if (gMain.heldKeys & 0x10) + else if (gMain.heldKeys & DPAD_RIGHT) { if (gOptionsData.unk18 == 0) { @@ -338,10 +342,12 @@ void sub_514B8(void) gOptionsData.unk18 = 10; } } - if (gMain.newKeys & 0x40) + + if (gMain.newKeys & DPAD_UP) gOptionsData.unk10 += 10; - else if (gMain.newKeys & 0x80) + else if (gMain.newKeys & DPAD_DOWN) gOptionsData.unk10 -= 10; + if (gOptionsData.unk10 < 0) gOptionsData.unk10 = 0xB7; if (gOptionsData.unk10 > 0xB7) @@ -352,12 +358,12 @@ void sub_514B8(void) r4 %= 100; gOptionsData.unk16 = r4 / 10; gOptionsData.unk17 = r4 % 10; - if (gMain.newKeys & 0x1) + if (gMain.newKeys & A_BUTTON) { m4aMPlayAllStop(); m4aSongNumStart(gUnknown_08527D66[gOptionsData.unk10]); } - else if (gMain.newKeys & 0x2) + else if (gMain.newKeys & B_BUTTON) { m4aMPlayAllStop(); m4aSongNumStart(0x66); @@ -371,7 +377,7 @@ void sub_514B8(void) gOptionsData.unk18--; break; case 3: - if (gMain.newKeys & 0x40) + if (gMain.newKeys & DPAD_UP) { if (gOptionsData.unkA > 7) { @@ -379,7 +385,7 @@ void sub_514B8(void) gOptionsData.unkA--; } } - else if (gMain.newKeys & 0x80) + else if (gMain.newKeys & DPAD_DOWN) { if (gOptionsData.unkA <= 10) { @@ -387,13 +393,13 @@ void sub_514B8(void) gOptionsData.unkA++; } } - if (gMain.newKeys & 1) + if (gMain.newKeys & A_BUTTON) { m4aSongNumStart(0x65); gOptionsData.unk0 = 4; gOptionsData.unk1A[gOptionsData.unkA - 7] = 1; } - else if (gMain.newKeys & 2) + else if (gMain.newKeys & B_BUTTON) { m4aSongNumStart(0x66); gOptionsData.unkA = 6; @@ -409,7 +415,7 @@ void sub_514B8(void) gOptionsData.unk8 = 0; gOptionsData.unk6 = 1 - gOptionsData.unk6; } - if (gMain.newKeys & 0x3F7) + if (gMain.newKeys & (KEYS_MASK ^ START_BUTTON)) { s16 i; @@ -420,7 +426,6 @@ void sub_514B8(void) gOptionsData.unk24[i] = 10; gOptionsData.unk28 = 0; } - //_08051B0E if (gOptionsData.unk20 > 0) { sub_524BC(); @@ -439,10 +444,8 @@ void sub_514B8(void) } break; } - //_08051B98 if (gOptionsData.unk2E == 1) { - //gOptionsData.unk2B++; if (++gOptionsData.unk2B > gUnknown_086BB9B4[gOptionsData.unk2C].unk2) { gOptionsData.unk2B = 0; @@ -453,13 +456,10 @@ void sub_514B8(void) gOptionsData.unk2D = 0; gOptionsData.unk2E = 0; } - //_08051BE8 gOptionsData.unk2D = gUnknown_086BB9B4[gOptionsData.unk2C].unk0; } - // _08051C30 } else - //_08051C10 { gOptionsData.unk2B++; if (gOptionsData.unk2B > 18) @@ -492,9 +492,1201 @@ void sub_51C60(void) SetMainGameState(STATE_TITLE); } -/* +NAKED void sub_51C9C(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, #0x8c\n\ + ldr r0, _08051D38 @ =gUnknown_0200B3B8\n\ + mov r8, r0\n\ + ldr r2, _08051D3C @ =gOptionsData\n\ + movs r3, #4\n\ + ldrsh r1, [r2, r3]\n\ + movs r0, #0xe6\n\ + lsls r0, r0, #4\n\ + muls r1, r0, r1\n\ + movs r0, #0xa1\n\ + lsls r0, r0, #3\n\ + add r0, r8\n\ + adds r1, r1, r0\n\ + str r1, [sp, #0x60]\n\ + add r4, sp, #0xc\n\ + mov sl, r4\n\ + mov r6, sp\n\ + adds r6, #0x18\n\ + str r6, [sp, #0x6c]\n\ + mov r7, sp\n\ + adds r7, #0x1c\n\ + str r7, [sp, #0x74]\n\ + mov r0, sp\n\ + adds r0, #0x20\n\ + str r0, [sp, #0x7c]\n\ + movs r0, #0xb8\n\ + lsls r0, r0, #2\n\ + add r0, r8\n\ + mov r3, sl\n\ + mov r1, r8\n\ + adds r1, #0xb8\n\ + mov r2, sp\n\ + movs r4, #2\n\ + mov ip, r4\n\ +_08051CEA:\n\ + stm r2!, {r1}\n\ + stm r3!, {r0}\n\ + adds r0, #0xb8\n\ + adds r1, #0xb8\n\ + movs r6, #1\n\ + rsbs r6, r6, #0\n\ + add ip, r6\n\ + mov r7, ip\n\ + cmp r7, #0\n\ + bge _08051CEA\n\ + movs r0, #0\n\ + mov ip, r0\n\ + movs r1, #8\n\ + add r1, r8\n\ + mov sb, r1\n\ + ldr r2, _08051D40 @ =gUnknown_0200B978\n\ + adds r2, #8\n\ + str r2, [sp, #0x70]\n\ + ldr r0, _08051D44 @ =gUnknown_0200BAE8\n\ + adds r4, r0, #0\n\ + adds r4, #0xb8\n\ + adds r5, r0, #0\n\ + movs r3, #0\n\ + ldr r1, [sp, #0x6c]\n\ + adds r2, r5, #0\n\ + subs r2, #0xb8\n\ +_08051D1E:\n\ + ldr r0, _08051D48 @ =gUnknown_0200293A\n\ + add r0, ip\n\ + ldrb r0, [r0]\n\ + cmp r0, #1\n\ + bne _08051D50\n\ + ldr r6, _08051D3C @ =gOptionsData\n\ + movs r7, #6\n\ + ldrsh r0, [r6, r7]\n\ + cmp r0, #1\n\ + bne _08051D50\n\ + ldr r0, _08051D4C @ =gUnknown_0200C7D8\n\ + str r0, [r1]\n\ + b _08051D52\n\ + .align 2, 0\n\ +_08051D38: .4byte gUnknown_0200B3B8\n\ +_08051D3C: .4byte gOptionsData\n\ +_08051D40: .4byte gUnknown_0200B978\n\ +_08051D44: .4byte gUnknown_0200BAE8\n\ +_08051D48: .4byte gUnknown_0200293A\n\ +_08051D4C: .4byte gUnknown_0200C7D8\n\ +_08051D50:\n\ + str r2, [r1]\n\ +_08051D52:\n\ + ldr r6, [sp, #0x74]\n\ + adds r0, r6, r3\n\ + str r5, [r0]\n\ + ldr r7, [sp, #0x7c]\n\ + adds r0, r7, r3\n\ + str r4, [r0]\n\ + movs r0, #0x8a\n\ + lsls r0, r0, #2\n\ + adds r4, r4, r0\n\ + adds r5, r5, r0\n\ + adds r2, r2, r0\n\ + adds r3, #0xc\n\ + adds r1, #0xc\n\ + movs r6, #1\n\ + add ip, r6\n\ + mov r7, ip\n\ + cmp r7, #5\n\ + ble _08051D1E\n\ + ldr r0, _08051F64 @ =gUnknown_0200C890\n\ + str r0, [sp, #0x64]\n\ + movs r0, #1\n\ + mov r1, r8\n\ + strh r0, [r1]\n\ + movs r2, #1\n\ + mov r1, sp\n\ + movs r3, #2\n\ + mov ip, r3\n\ +_08051D88:\n\ + ldm r1!, {r0}\n\ + strh r2, [r0]\n\ + movs r4, #1\n\ + rsbs r4, r4, #0\n\ + add ip, r4\n\ + mov r6, ip\n\ + cmp r6, #0\n\ + bge _08051D88\n\ + ldr r7, [sp, #0x64]\n\ + adds r7, #8\n\ + str r7, [sp, #0x78]\n\ + movs r2, #1\n\ + mov r1, sl\n\ + movs r0, #2\n\ + mov ip, r0\n\ +_08051DA6:\n\ + ldm r1!, {r0}\n\ + strh r2, [r0]\n\ + movs r3, #1\n\ + rsbs r3, r3, #0\n\ + add ip, r3\n\ + mov r4, ip\n\ + cmp r4, #0\n\ + bge _08051DA6\n\ + movs r0, #1\n\ + ldr r6, [sp, #0x60]\n\ + strh r0, [r6]\n\ + ldr r7, _08051F68 @ =gUnknown_0200B978\n\ + strh r0, [r7]\n\ + movs r0, #0\n\ + mov ip, r0\n\ + ldr r6, [sp, #0x6c]\n\ + movs r3, #1\n\ + movs r2, #0\n\ +_08051DCA:\n\ + adds r1, r2, r6\n\ + movs r5, #2\n\ +_08051DCE:\n\ + ldm r1!, {r0}\n\ + strh r3, [r0]\n\ + subs r5, #1\n\ + cmp r5, #0\n\ + bge _08051DCE\n\ + adds r2, #0xc\n\ + movs r1, #1\n\ + add ip, r1\n\ + mov r4, ip\n\ + cmp r4, #5\n\ + ble _08051DCA\n\ + movs r0, #1\n\ + ldr r6, [sp, #0x64]\n\ + strh r0, [r6]\n\ + ldr r7, _08051F6C @ =gUnknown_0200C948\n\ + strh r0, [r7]\n\ + ldr r5, _08051F70 @ =gOptionsData\n\ + adds r0, r5, #0\n\ + adds r0, #0x30\n\ + ldrb r0, [r0]\n\ + lsls r0, r0, #0x18\n\ + asrs r0, r0, #0x18\n\ + ldr r1, _08051F74 @ =gUnknown_0200CA00\n\ + strh r0, [r1]\n\ + ldr r0, _08051F78 @ =gUnknown_086BB9EC\n\ + movs r1, #0x20\n\ + ldr r2, _08051F7C @ =gUnknown_0200B3B8\n\ + bl LoadSpriteSets\n\ + ldr r2, _08051F80 @ =gUnknown_086BB968\n\ + movs r3, #0xa\n\ + ldrsh r1, [r5, r3]\n\ + lsls r1, r1, #2\n\ + adds r1, r1, r2\n\ + ldrh r0, [r5, #2]\n\ + ldrh r1, [r1]\n\ + adds r0, r0, r1\n\ + mov r4, r8\n\ + strh r0, [r4, #2]\n\ + movs r6, #0xa\n\ + ldrsh r0, [r5, r6]\n\ + lsls r0, r0, #2\n\ + adds r0, r0, r2\n\ + ldrh r0, [r0, #2]\n\ + strh r0, [r4, #4]\n\ + mov r7, sb\n\ + ldr r4, _08051F84 @ =gOamBuffer\n\ + mov r0, r8\n\ + ldrh r2, [r0, #8]\n\ + lsls r2, r2, #3\n\ + adds r2, r2, r4\n\ + movs r3, #2\n\ + ldrsh r1, [r7, r3]\n\ + movs r6, #2\n\ + ldrsh r0, [r0, r6]\n\ + adds r1, r1, r0\n\ + ldr r3, _08051F88 @ =0x000001FF\n\ + adds r0, r3, #0\n\ + ands r1, r0\n\ + ldrh r3, [r2, #2]\n\ + ldr r6, _08051F8C @ =0xFFFFFE00\n\ + adds r0, r6, #0\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + mov r0, r8\n\ + ldrh r1, [r0, #8]\n\ + lsls r1, r1, #3\n\ + adds r1, r1, r4\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + movs r1, #0\n\ + mov ip, r1\n\ + mov r8, r4\n\ + mov r5, sp\n\ + movs r2, #0x48\n\ + mov sb, r2\n\ +_08051E6C:\n\ + ldr r0, [r5]\n\ + mov r3, sb\n\ + strh r3, [r0, #2]\n\ + ldr r1, [r5]\n\ + movs r0, #0x20\n\ + strh r0, [r1, #4]\n\ + ldr r4, [r5]\n\ + adds r7, r4, #0\n\ + adds r7, #8\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + add r2, r8\n\ + ldr r0, _08051F90 @ =gUnknown_02002932\n\ + add r0, ip\n\ + ldrb r1, [r0]\n\ + adds r1, #0x16\n\ + ldrh r3, [r2, #4]\n\ + ldr r0, _08051F94 @ =0xFFFFFC00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #4]\n\ + ldrh r3, [r4, #8]\n\ + lsls r3, r3, #3\n\ + add r3, r8\n\ + movs r0, #2\n\ + ldrsh r1, [r7, r0]\n\ + ldr r0, [r5]\n\ + movs r2, #2\n\ + ldrsh r0, [r0, r2]\n\ + adds r1, r1, r0\n\ + ldr r2, _08051F88 @ =0x000001FF\n\ + adds r0, r2, #0\n\ + ands r1, r0\n\ + ldrh r2, [r3, #2]\n\ + adds r0, r6, #0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + add r1, r8\n\ + ldm r5!, {r0}\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + movs r3, #7\n\ + add sb, r3\n\ + movs r4, #1\n\ + add ip, r4\n\ + mov r7, ip\n\ + cmp r7, #2\n\ + ble _08051E6C\n\ + movs r0, #0\n\ + mov ip, r0\n\ + ldr r1, _08051F84 @ =gOamBuffer\n\ + mov r8, r1\n\ + movs r6, #0x48\n\ + mov r5, sl\n\ +_08051EE2:\n\ + ldr r0, [r5]\n\ + strh r6, [r0, #2]\n\ + ldr r0, [r5]\n\ + movs r2, #0x2c\n\ + mov sb, r2\n\ + mov r3, sb\n\ + strh r3, [r0, #4]\n\ + ldr r4, [r5]\n\ + adds r7, r4, #0\n\ + adds r7, #8\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + add r2, r8\n\ + ldr r0, _08051F98 @ =gUnknown_02002935\n\ + add r0, ip\n\ + ldrb r1, [r0]\n\ + adds r1, #0x16\n\ + ldrh r3, [r2, #4]\n\ + ldr r0, _08051F94 @ =0xFFFFFC00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #4]\n\ + ldrh r3, [r4, #8]\n\ + lsls r3, r3, #3\n\ + add r3, r8\n\ + movs r0, #2\n\ + ldrsh r1, [r7, r0]\n\ + ldr r0, [r5]\n\ + movs r2, #2\n\ + ldrsh r0, [r0, r2]\n\ + adds r1, r1, r0\n\ + ldr r2, _08051F88 @ =0x000001FF\n\ + adds r0, r2, #0\n\ + ands r1, r0\n\ + ldrh r2, [r3, #2]\n\ + ldr r0, _08051F8C @ =0xFFFFFE00\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + add r1, r8\n\ + ldm r5!, {r0}\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + adds r6, #7\n\ + movs r3, #1\n\ + add ip, r3\n\ + mov r4, ip\n\ + cmp r4, #2\n\ + ble _08051EE2\n\ + movs r0, #0x48\n\ + ldr r6, [sp, #0x60]\n\ + strh r0, [r6, #2]\n\ + ldr r7, _08051F70 @ =gOptionsData\n\ + movs r1, #0xa\n\ + ldrsh r0, [r7, r1]\n\ + cmp r0, #0\n\ + bne _08051F9C\n\ + movs r0, #0x20\n\ + strh r0, [r6, #4]\n\ + b _08051FA6\n\ + .align 2, 0\n\ +_08051F64: .4byte gUnknown_0200C890\n\ +_08051F68: .4byte gUnknown_0200B978\n\ +_08051F6C: .4byte gUnknown_0200C948\n\ +_08051F70: .4byte gOptionsData\n\ +_08051F74: .4byte gUnknown_0200CA00\n\ +_08051F78: .4byte gUnknown_086BB9EC\n\ +_08051F7C: .4byte gUnknown_0200B3B8\n\ +_08051F80: .4byte gUnknown_086BB968\n\ +_08051F84: .4byte gOamBuffer\n\ +_08051F88: .4byte 0x000001FF\n\ +_08051F8C: .4byte 0xFFFFFE00\n\ +_08051F90: .4byte gUnknown_02002932\n\ +_08051F94: .4byte 0xFFFFFC00\n\ +_08051F98: .4byte gUnknown_02002935\n\ +_08051F9C:\n\ + cmp r0, #1\n\ + bne _08051FA6\n\ + mov r3, sb\n\ + ldr r2, [sp, #0x60]\n\ + strh r3, [r2, #4]\n\ +_08051FA6:\n\ + ldr r5, _080520D0 @ =gOamBuffer\n\ + ldr r7, _080520D4 @ =0xFFFFFE00\n\ + ldr r4, [sp, #0x60]\n\ + adds r4, #8\n\ + movs r6, #1\n\ + mov ip, r6\n\ +_08051FB2:\n\ + ldrh r3, [r4]\n\ + lsls r3, r3, #3\n\ + adds r3, r3, r5\n\ + movs r0, #2\n\ + ldrsh r1, [r4, r0]\n\ + ldr r2, [sp, #0x60]\n\ + movs r6, #2\n\ + ldrsh r0, [r2, r6]\n\ + adds r1, r1, r0\n\ + ldr r0, _080520D8 @ =0x000001FF\n\ + adds r6, r0, #0\n\ + ands r1, r6\n\ + ldrh r2, [r3, #2]\n\ + adds r0, r7, #0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r4]\n\ + lsls r1, r1, #3\n\ + adds r1, r1, r5\n\ + ldr r2, [sp, #0x60]\n\ + ldrb r0, [r2, #4]\n\ + ldrb r3, [r4, #4]\n\ + adds r0, r0, r3\n\ + strb r0, [r1]\n\ + adds r4, #8\n\ + movs r0, #1\n\ + rsbs r0, r0, #0\n\ + add ip, r0\n\ + mov r1, ip\n\ + cmp r1, #0\n\ + bge _08051FB2\n\ + movs r0, #0x48\n\ + ldr r2, _080520DC @ =gUnknown_0200B978\n\ + strh r0, [r2, #2]\n\ + ldr r3, _080520E0 @ =gOptionsData\n\ + movs r4, #0xc\n\ + ldrsh r0, [r3, r4]\n\ + lsls r0, r0, #1\n\ + ldr r7, _080520E4 @ =gUnknown_086BB9A8\n\ + adds r0, r0, r7\n\ + ldrh r0, [r0]\n\ + strh r0, [r2, #4]\n\ + ldr r7, [sp, #0x70]\n\ + ldrh r2, [r2, #8]\n\ + lsls r2, r2, #3\n\ + ldr r0, _080520D0 @ =gOamBuffer\n\ + adds r2, r2, r0\n\ + movs r3, #2\n\ + ldrsh r1, [r7, r3]\n\ + adds r1, #0x48\n\ + ands r1, r6\n\ + ldrh r3, [r2, #2]\n\ + ldr r0, _080520D4 @ =0xFFFFFE00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + ldr r4, _080520DC @ =gUnknown_0200B978\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r6, _080520D0 @ =gOamBuffer\n\ + adds r1, r1, r6\n\ + ldrb r0, [r4, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + movs r7, #0\n\ + mov ip, r7\n\ + ldr r0, _080520E0 @ =gOptionsData\n\ + str r0, [sp, #0x68]\n\ + movs r1, #0x54\n\ + str r1, [sp, #0x80]\n\ + movs r2, #0\n\ + str r2, [sp, #0x84]\n\ + movs r3, #0\n\ + str r3, [sp, #0x88]\n\ + ldr r4, [sp, #0x6c]\n\ + mov r8, r4\n\ +_0805204E:\n\ + ldr r0, [sp, #0x68]\n\ + adds r0, #0x1a\n\ + add r0, ip\n\ + ldrb r0, [r0]\n\ + cmp r0, #1\n\ + bne _080520E8\n\ + mov r6, r8\n\ + ldr r1, [r6]\n\ + movs r0, #0x9c\n\ + strh r0, [r1, #2]\n\ + ldr r0, [r6]\n\ + add r7, sp, #0x80\n\ + ldrh r7, [r7]\n\ + strh r7, [r0, #4]\n\ + movs r5, #0\n\ + ldr r1, [sp, #0x68]\n\ + movs r2, #6\n\ + ldrsh r0, [r1, r2]\n\ + adds r0, #1\n\ + cmp r5, r0\n\ + blt _0805207A\n\ + b _080522E2\n\ +_0805207A:\n\ + ldr r3, [sp, #0x6c]\n\ + ldr r6, [sp, #0x84]\n\ + adds r4, r3, r6\n\ + ldr r7, _080520D0 @ =gOamBuffer\n\ + mov sb, r7\n\ + movs r6, #8\n\ + ldr r0, _080520D4 @ =0xFFFFFE00\n\ + mov sl, r0\n\ +_0805208A:\n\ + ldr r0, [r4]\n\ + adds r7, r0, r6\n\ + ldrh r2, [r7]\n\ + lsls r2, r2, #3\n\ + add r2, sb\n\ + movs r3, #2\n\ + ldrsh r1, [r7, r3]\n\ + movs r3, #2\n\ + ldrsh r0, [r0, r3]\n\ + adds r1, r1, r0\n\ + ldr r3, _080520D8 @ =0x000001FF\n\ + adds r0, r3, #0\n\ + ands r1, r0\n\ + ldrh r3, [r2, #2]\n\ + mov r0, sl\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + ldrh r1, [r7]\n\ + lsls r1, r1, #3\n\ + add r1, sb\n\ + ldr r0, [r4]\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + adds r6, #8\n\ + adds r5, #1\n\ + ldr r7, [sp, #0x68]\n\ + movs r1, #6\n\ + ldrsh r0, [r7, r1]\n\ + adds r0, #1\n\ + cmp r5, r0\n\ + blt _0805208A\n\ + b _080522E2\n\ + .align 2, 0\n\ +_080520D0: .4byte gOamBuffer\n\ +_080520D4: .4byte 0xFFFFFE00\n\ +_080520D8: .4byte 0x000001FF\n\ +_080520DC: .4byte gUnknown_0200B978\n\ +_080520E0: .4byte gOptionsData\n\ +_080520E4: .4byte gUnknown_086BB9A8\n\ +_080520E8:\n\ + mov r2, r8\n\ + ldr r1, [r2]\n\ + movs r0, #0x9c\n\ + strh r0, [r1, #2]\n\ + ldr r0, [r2]\n\ + add r3, sp, #0x80\n\ + ldrh r3, [r3]\n\ + strh r3, [r0, #4]\n\ + ldr r4, [r2]\n\ + adds r7, r4, #0\n\ + adds r7, #8\n\ + ldr r6, [sp, #0x68]\n\ + movs r0, #0xc\n\ + ldrsh r1, [r6, r0]\n\ + lsls r0, r1, #2\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #1\n\ + ldr r1, [sp, #0x88]\n\ + adds r0, r1, r0\n\ + ldr r2, _08052490 @ =gUnknown_02031AF0\n\ + adds r0, r0, r2\n\ + ldrb r0, [r0]\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r3\n\ + lsls r0, r0, #3\n\ + ldr r1, _08052498 @ =gUnknown_086BB910\n\ + adds r6, r0, r1\n\ + ldrh r0, [r6, #2]\n\ + ldr r1, _0805249C @ =0x000003FF\n\ + ands r1, r0\n\ + ldrh r3, [r2, #4]\n\ + ldr r0, _080524A0 @ =0xFFFFFC00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #4]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + ldrb r2, [r6, #4]\n\ + lsls r2, r2, #6\n\ + ldrb r3, [r1, #1]\n\ + movs r0, #0x3f\n\ + mov sl, r0\n\ + ands r0, r3\n\ + orrs r0, r2\n\ + strb r0, [r1, #1]\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + ldr r1, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r1\n\ + ldrb r1, [r6, #5]\n\ + lsls r1, r1, #6\n\ + ldrb r3, [r2, #3]\n\ + mov r0, sl\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strb r0, [r2, #3]\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r3\n\ + movs r0, #2\n\ + ldrsh r1, [r7, r0]\n\ + mov r3, r8\n\ + ldr r0, [r3]\n\ + movs r3, #2\n\ + ldrsh r0, [r0, r3]\n\ + adds r1, r1, r0\n\ + ldr r0, _080524A4 @ =0x000001FF\n\ + ands r1, r0\n\ + ldrh r3, [r2, #2]\n\ + ldr r0, _080524A8 @ =0xFFFFFE00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + mov r3, r8\n\ + ldr r0, [r3]\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + ldr r4, [sp, #0x68]\n\ + movs r7, #0xc\n\ + ldrsh r1, [r4, r7]\n\ + lsls r0, r1, #2\n\ + adds r0, r0, r1\n\ + lsls r0, r0, #1\n\ + adds r0, #1\n\ + ldr r1, [sp, #0x88]\n\ + adds r0, r1, r0\n\ + ldr r2, _08052490 @ =gUnknown_02031AF0\n\ + adds r0, r0, r2\n\ + ldrb r0, [r0]\n\ + mov sb, r0\n\ + cmp r0, #0xa\n\ + bne _080521B8\n\ + b _080522E2\n\ +_080521B8:\n\ + ldr r3, [sp, #0x74]\n\ + ldr r4, [sp, #0x84]\n\ + adds r5, r3, r4\n\ + ldr r1, [r5]\n\ + mov r7, r8\n\ + ldr r0, [r7]\n\ + ldrh r0, [r0, #2]\n\ + ldrb r6, [r6, #6]\n\ + adds r0, r0, r6\n\ + strh r0, [r1, #2]\n\ + ldr r1, [r5]\n\ + ldr r0, [r7]\n\ + ldrh r0, [r0, #4]\n\ + strh r0, [r1, #4]\n\ + ldr r4, [r5]\n\ + adds r7, r4, #0\n\ + adds r7, #8\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r0\n\ + ldrh r1, [r2, #4]\n\ + ldr r0, _080524A0 @ =0xFFFFFC00\n\ + ands r0, r1\n\ + movs r1, #0x2a\n\ + orrs r0, r1\n\ + strh r0, [r2, #4]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + ldrb r2, [r1, #1]\n\ + mov r0, sl\n\ + ands r0, r2\n\ + strb r0, [r1, #1]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r3\n\ + ldrb r2, [r1, #3]\n\ + mov r0, sl\n\ + ands r0, r2\n\ + strb r0, [r1, #3]\n\ + ldrh r3, [r4, #8]\n\ + lsls r3, r3, #3\n\ + ldr r6, _08052494 @ =gOamBuffer\n\ + adds r3, r3, r6\n\ + movs r0, #2\n\ + ldrsh r1, [r7, r0]\n\ + ldr r0, [r5]\n\ + movs r2, #2\n\ + ldrsh r0, [r0, r2]\n\ + adds r1, r1, r0\n\ + ldr r6, _080524A4 @ =0x000001FF\n\ + ands r1, r6\n\ + ldrh r2, [r3, #2]\n\ + ldr r0, _080524A8 @ =0xFFFFFE00\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r4, #8]\n\ + lsls r1, r1, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r0\n\ + ldr r0, [r5]\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + ldr r1, [sp, #0x7c]\n\ + ldr r2, [sp, #0x84]\n\ + adds r6, r1, r2\n\ + ldr r1, [r6]\n\ + ldr r0, [r5]\n\ + ldrh r0, [r0, #2]\n\ + adds r0, #8\n\ + strh r0, [r1, #2]\n\ + ldr r1, [r6]\n\ + mov r3, r8\n\ + ldr r0, [r3]\n\ + ldrh r0, [r0, #4]\n\ + strh r0, [r1, #4]\n\ + ldr r5, [r6]\n\ + adds r7, r5, #0\n\ + adds r7, #8\n\ + ldrh r3, [r5, #8]\n\ + lsls r3, r3, #3\n\ + ldr r4, _08052494 @ =gOamBuffer\n\ + adds r3, r3, r4\n\ + mov r0, sb\n\ + lsls r4, r0, #3\n\ + ldr r1, _08052498 @ =gUnknown_086BB910\n\ + adds r4, r4, r1\n\ + ldrh r0, [r4, #2]\n\ + ldr r1, _0805249C @ =0x000003FF\n\ + ands r1, r0\n\ + ldrh r2, [r3, #4]\n\ + ldr r0, _080524A0 @ =0xFFFFFC00\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #4]\n\ + ldrh r2, [r5, #8]\n\ + lsls r2, r2, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r3\n\ + ldrb r1, [r4, #4]\n\ + lsls r1, r1, #6\n\ + ldrb r3, [r2, #1]\n\ + mov r0, sl\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strb r0, [r2, #1]\n\ + ldrh r2, [r5, #8]\n\ + lsls r2, r2, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r0\n\ + ldrb r1, [r4, #5]\n\ + lsls r1, r1, #6\n\ + ldrb r3, [r2, #3]\n\ + mov r0, sl\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strb r0, [r2, #3]\n\ + ldrh r3, [r5, #8]\n\ + lsls r3, r3, #3\n\ + ldr r1, _08052494 @ =gOamBuffer\n\ + adds r3, r3, r1\n\ + movs r2, #2\n\ + ldrsh r1, [r7, r2]\n\ + ldr r0, [r6]\n\ + movs r4, #2\n\ + ldrsh r0, [r0, r4]\n\ + adds r1, r1, r0\n\ + ldr r0, _080524A4 @ =0x000001FF\n\ + ands r1, r0\n\ + ldrh r2, [r3, #2]\n\ + ldr r0, _080524A8 @ =0xFFFFFE00\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r5, #8]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + ldr r0, [r6]\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ +_080522E2:\n\ + ldr r3, [sp, #0x80]\n\ + adds r3, #0xc\n\ + str r3, [sp, #0x80]\n\ + ldr r4, [sp, #0x84]\n\ + adds r4, #0xc\n\ + str r4, [sp, #0x84]\n\ + ldr r6, [sp, #0x88]\n\ + adds r6, #2\n\ + str r6, [sp, #0x88]\n\ + movs r7, #0xc\n\ + add r8, r7\n\ + movs r0, #1\n\ + add ip, r0\n\ + mov r1, ip\n\ + cmp r1, #4\n\ + bgt _08052304\n\ + b _0805204E\n\ +_08052304:\n\ + movs r5, #8\n\ + movs r0, #0xaa\n\ + ldr r2, [sp, #0x64]\n\ + strh r0, [r2, #2]\n\ + ldr r0, _080524AC @ =gOptionsData\n\ + adds r0, #0x2a\n\ + ldrb r0, [r0]\n\ + lsls r1, r0, #1\n\ + adds r1, r1, r0\n\ + lsls r1, r1, #2\n\ + movs r0, #0x2c\n\ + subs r0, r0, r1\n\ + strh r0, [r2, #4]\n\ + ldr r7, [sp, #0x78]\n\ + ldrh r2, [r2, #8]\n\ + lsls r2, r2, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r3\n\ + movs r4, #2\n\ + ldrsh r1, [r7, r4]\n\ + adds r1, #0xaa\n\ + ldr r6, _080524A4 @ =0x000001FF\n\ + adds r0, r6, #0\n\ + ands r1, r0\n\ + ldrh r3, [r2, #2]\n\ + ldr r4, _080524A8 @ =0xFFFFFE00\n\ + adds r0, r4, #0\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + ldr r0, [sp, #0x64]\n\ + ldrh r1, [r0, #8]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + ldrb r0, [r0, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + movs r0, #0xc0\n\ + ldr r3, _080524B0 @ =gUnknown_0200C948\n\ + strh r0, [r3, #2]\n\ + strh r5, [r3, #4]\n\ + ldr r6, _080524AC @ =gOptionsData\n\ + adds r6, #0x2d\n\ + mov sl, r6\n\ + adds r5, r3, #0\n\ + adds r5, #8\n\ + movs r6, #0x40\n\ + mov sb, r4\n\ + movs r7, #1\n\ + mov ip, r7\n\ +_0805236C:\n\ + ldrh r3, [r5]\n\ + lsls r3, r3, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r3, r3, r0\n\ + mov r2, sl\n\ + movs r1, #0\n\ + ldrsb r1, [r2, r1]\n\ + lsls r1, r1, #2\n\ + adds r1, r6, r1\n\ + ldr r7, _0805249C @ =0x000003FF\n\ + adds r4, r7, #0\n\ + ands r1, r4\n\ + ldrh r2, [r3, #4]\n\ + ldr r0, _080524A0 @ =0xFFFFFC00\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #4]\n\ + ldrh r3, [r5]\n\ + lsls r3, r3, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r3, r3, r0\n\ + movs r2, #2\n\ + ldrsh r1, [r5, r2]\n\ + ldr r7, _080524B0 @ =gUnknown_0200C948\n\ + movs r2, #2\n\ + ldrsh r0, [r7, r2]\n\ + adds r1, r1, r0\n\ + ldr r7, _080524A4 @ =0x000001FF\n\ + mov r8, r7\n\ + mov r0, r8\n\ + ands r1, r0\n\ + ldrh r2, [r3, #2]\n\ + mov r0, sb\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strh r0, [r3, #2]\n\ + ldrh r1, [r5]\n\ + lsls r1, r1, #3\n\ + ldr r2, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r2\n\ + ldr r3, _080524B0 @ =gUnknown_0200C948\n\ + ldrb r0, [r3, #4]\n\ + ldrb r7, [r5, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + adds r5, #8\n\ + adds r6, #0x80\n\ + movs r0, #1\n\ + rsbs r0, r0, #0\n\ + add ip, r0\n\ + mov r1, ip\n\ + cmp r1, #0\n\ + bge _0805236C\n\ + ldr r2, _080524B4 @ =gUnknown_0200CA00\n\ + ldrh r0, [r2]\n\ + cmp r0, #1\n\ + bne _08052454\n\ + movs r0, #0xb0\n\ + strh r0, [r2, #2]\n\ + movs r0, #8\n\ + strh r0, [r2, #4]\n\ + adds r7, r2, #0\n\ + adds r7, #8\n\ + ldrh r2, [r2, #8]\n\ + lsls r2, r2, #3\n\ + ldr r3, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r3\n\ + ldr r5, _080524AC @ =gOptionsData\n\ + adds r5, #0x2f\n\ + movs r1, #0\n\ + ldrsb r1, [r5, r1]\n\ + lsls r1, r1, #6\n\ + adds r1, #0x54\n\ + ands r1, r4\n\ + ldrh r3, [r2, #4]\n\ + ldr r0, _080524A0 @ =0xFFFFFC00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #4]\n\ + ldr r4, _080524B4 @ =gUnknown_0200CA00\n\ + ldrh r2, [r4, #8]\n\ + lsls r2, r2, #3\n\ + ldr r6, _08052494 @ =gOamBuffer\n\ + adds r2, r2, r6\n\ + movs r0, #2\n\ + ldrsh r1, [r7, r0]\n\ + movs r3, #2\n\ + ldrsh r0, [r4, r3]\n\ + adds r1, r1, r0\n\ + mov r4, r8\n\ + ands r1, r4\n\ + ldrh r3, [r2, #2]\n\ + ldr r0, _080524A8 @ =0xFFFFFE00\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strh r0, [r2, #2]\n\ + ldr r6, _080524B4 @ =gUnknown_0200CA00\n\ + ldrh r1, [r6, #8]\n\ + lsls r1, r1, #3\n\ + ldr r0, _08052494 @ =gOamBuffer\n\ + adds r1, r1, r0\n\ + ldrb r0, [r6, #4]\n\ + ldrb r7, [r7, #4]\n\ + adds r0, r0, r7\n\ + strb r0, [r1]\n\ + ldr r0, _080524B8 @ =gMain\n\ + ldr r0, [r0, #0x4c]\n\ + movs r1, #0x12\n\ + bl __umodsi3\n\ + cmp r0, #0\n\ + bne _08052454\n\ + ldrb r1, [r5]\n\ + movs r0, #1\n\ + subs r0, r0, r1\n\ + strb r0, [r5]\n\ +_08052454:\n\ + movs r0, #0\n\ + ldr r1, [sp, #0x60]\n\ + strh r0, [r1]\n\ + mov ip, r0\n\ + ldr r4, [sp, #0x6c]\n\ + movs r3, #0\n\ +_08052460:\n\ + mov r2, ip\n\ + adds r2, #1\n\ + mov r6, ip\n\ + lsls r0, r6, #1\n\ + add r0, ip\n\ + lsls r0, r0, #2\n\ + adds r1, r0, r4\n\ + movs r5, #2\n\ +_08052470:\n\ + ldm r1!, {r0}\n\ + strh r3, [r0]\n\ + subs r5, #1\n\ + cmp r5, #0\n\ + bge _08052470\n\ + mov ip, r2\n\ + cmp r2, #5\n\ + ble _08052460\n\ + add sp, #0x8c\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\ +_08052490: .4byte gUnknown_02031AF0\n\ +_08052494: .4byte gOamBuffer\n\ +_08052498: .4byte gUnknown_086BB910\n\ +_0805249C: .4byte 0x000003FF\n\ +_080524A0: .4byte 0xFFFFFC00\n\ +_080524A4: .4byte 0x000001FF\n\ +_080524A8: .4byte 0xFFFFFE00\n\ +_080524AC: .4byte gOptionsData\n\ +_080524B0: .4byte gUnknown_0200C948\n\ +_080524B4: .4byte gUnknown_0200CA00\n\ +_080524B8: .4byte gMain"); +} + +void sub_524BC(void) +{ + int i, pressedKeys; + if (gOptionsData.unk28 >= 2) + return; + pressedKeys = gMain.heldKeys & (KEYS_MASK ^ START_BUTTON); + if (!pressedKeys) + return; + + for (i = 0; i < 10; i++) + { + int key = pressedKeys & (1 << i); + if (key && !(gOptionsData.unk22 & key)) + { + gOptionsData.unk22 |= key; + gOptionsData.unk24[gOptionsData.unk28] = i; + if (++gOptionsData.unk28 == 2) + return; + } + } +} + +void sub_52528(void) +{ + int i, j; + u8 var0; + for (i = 0; i < 5; i++) + { + for (j = 0; j < 2; j++) + { + switch (gUnknown_0200B204[i][j]) + { + case 0x1: + var0 = 0; + break; + case 0x2: + var0 = 1; + break; + case 0x4: + var0 = 2; + break; + case 0x10: + var0 = 4; + break; + case 0x20: + var0 = 5; + break; + case 0x40: + var0 = 6; + break; + case 0x80: + var0 = 7; + break; + case 0x100: + var0 = 8; + break; + case 0x200: + var0 = 9; + break; + case 0x8: + default: + var0 = 10; + break; + } + gUnknown_02031B18[i * 2 + j] = var0; + } + } +} + +extern const u8 gUnknown_08527EFE[]; + +void sub_525CC(s8 arg0) +{ + int i; + s8 var0 = arg0 + 1; + switch (var0) + { + case 0: + gMain.unk60 = gUnknown_086BB910[5][0]; + gMain.unk62 = gUnknown_086BB910[10][0]; + gMain.unk64 = gUnknown_086BB910[0][0]; + gMain.unk66 = gUnknown_086BB910[10][0]; + gMain.unk68 = gUnknown_086BB910[9][0]; + gMain.unk6A = gUnknown_086BB910[10][0]; + gMain.unk6C = gUnknown_086BB910[8][0]; + gMain.unk6E = gUnknown_086BB910[10][0]; + gMain.unk70 = gUnknown_086BB910[9][0]; + gMain.unk72 = gUnknown_086BB910[8][0]; + gMain_saveData.unk144[0][0] = gUnknown_086BB910[1][0]; + gMain_saveData.unk144[0][1] = gUnknown_086BB910[10][0]; + gMain_saveData.unk144[1][0] = gUnknown_086BB910[0][0]; + gMain_saveData.unk144[1][1] = gUnknown_086BB910[10][0]; + gMain_saveData.unk144[2][0] = gUnknown_086BB910[5][0]; + gMain_saveData.unk144[2][1] = gUnknown_086BB910[10][0]; + gMain_saveData.unk144[3][0] = gUnknown_086BB910[4][0]; + gMain_saveData.unk144[3][1] = gUnknown_086BB910[10][0]; + gMain_saveData.unk144[4][0] = gUnknown_086BB910[6][0]; + gMain_saveData.unk144[4][1] = gUnknown_086BB910[10][0]; + for (i = 0; i < 10; i++) + gUnknown_02031B18[i] = gUnknown_08527EFE[i]; + break; + case 1: + gMain.unk60 = gUnknown_086BB910[5][0]; + gMain.unk62 = gUnknown_086BB910[10][0]; + gMain.unk64 = gUnknown_086BB910[0][0]; + gMain.unk66 = gUnknown_086BB910[10][0]; + gMain.unk68 = gUnknown_086BB910[9][0]; + gMain.unk6A = gUnknown_086BB910[10][0]; + gMain.unk6C = gUnknown_086BB910[8][0]; + gMain.unk6E = gUnknown_086BB910[10][0]; + gMain.unk70 = gUnknown_086BB910[9][0]; + gMain.unk72 = gUnknown_086BB910[8][0]; + break; + case 2: + gMain.unk60 = gUnknown_086BB910[5][0]; + gMain.unk62 = gUnknown_086BB910[10][0]; + gMain.unk64 = gUnknown_086BB910[0][0]; + gMain.unk66 = gUnknown_086BB910[10][0]; + gMain.unk68 = gUnknown_086BB910[9][0]; + gMain.unk6A = gUnknown_086BB910[10][0]; + gMain.unk6C = gUnknown_086BB910[8][0]; + gMain.unk6E = gUnknown_086BB910[10][0]; + gMain.unk70 = gUnknown_086BB910[1][0]; + gMain.unk72 = gUnknown_086BB910[10][0]; + break; + case 3: + gMain.unk60 = gUnknown_086BB910[9][0]; + gMain.unk62 = gUnknown_086BB910[10][0]; + gMain.unk64 = gUnknown_086BB910[8][0]; + gMain.unk66 = gUnknown_086BB910[10][0]; + gMain.unk68 = gUnknown_086BB910[5][0]; + gMain.unk6A = gUnknown_086BB910[10][0]; + gMain.unk6C = gUnknown_086BB910[0][0]; + gMain.unk6E = gUnknown_086BB910[10][0]; + gMain.unk70 = gUnknown_086BB910[5][0]; + gMain.unk72 = gUnknown_086BB910[0][0]; + break; + case 4: + gMain.unk60 = gUnknown_086BB910[9][0]; + gMain.unk62 = gUnknown_086BB910[10][0]; + gMain.unk64 = gUnknown_086BB910[8][0]; + gMain.unk66 = gUnknown_086BB910[10][0]; + gMain.unk68 = gUnknown_086BB910[5][0]; + gMain.unk6A = gUnknown_086BB910[10][0]; + gMain.unk6C = gUnknown_086BB910[4][0]; + gMain.unk6E = gUnknown_086BB910[10][0]; + gMain.unk70 = gUnknown_086BB910[6][0]; + gMain.unk72 = gUnknown_086BB910[10][0]; + break; + case 5: + gMain.unk60 = gMain_saveData.unk144[0][0]; + gMain.unk62 = gMain_saveData.unk144[0][1]; + gMain.unk64 = gMain_saveData.unk144[1][0]; + gMain.unk66 = gMain_saveData.unk144[1][1]; + gMain.unk68 = gMain_saveData.unk144[2][0]; + gMain.unk6A = gMain_saveData.unk144[2][1]; + gMain.unk6C = gMain_saveData.unk144[3][0]; + gMain.unk6E = gMain_saveData.unk144[3][1]; + gMain.unk70 = gMain_saveData.unk144[4][0]; + gMain.unk72 = gMain_saveData.unk144[4][1]; + break; + } } -*/ diff --git a/src/titlescreen.c b/src/titlescreen.c index 583ca5f..a0b5a6b 100755 --- a/src/titlescreen.c +++ b/src/titlescreen.c @@ -672,8 +672,8 @@ static void sub_11640(void) { int i; const struct SpriteSet *spriteSet; - struct SpriteGroup *group1 = &gTitlescreen.unk8[gUnknown_0200B3B8]; - struct SpriteGroup *group2 = &gTitlescreen.unk10[gUnknown_0200B3B8]; + struct SpriteGroup *group1 = &gUnknown_0200B3B8[gTitlescreen.unk8]; + struct SpriteGroup *group2 = &gUnknown_0200B3B8[gTitlescreen.unk10]; group1->available = gTitlescreen.unk9; group2->available = gTitlescreen.unk11; |