diff options
Diffstat (limited to 'src/options.c')
-rw-r--r-- | src/options.c | 1268 |
1 files changed, 1230 insertions, 38 deletions
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; + } } -*/ |