From 91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 16 Jan 2018 22:25:35 -0600 Subject: add debug ifdefs --- src/roulette.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 6d79f9d38..ce95bc1c9 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -308,7 +308,10 @@ extern const u16 gUnknown_083FA632[]; extern const s8 gUnknown_083FA64A[0x2]; extern const s8 gUnknown_083FA64C[0x8][0x2]; - +#if DEBUG +EWRAM_DATA u8 unk_203955C[4] = { 0 }; +EWRAM_DATA u8 unk_2039560[4] = { 0 }; +#endif void sub_81150FC(void) -- cgit v1.2.3 From 8d14b68921bf5a355e71031a9311125af114cbfe Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 14:30:07 -0600 Subject: add more debug code --- src/roulette.c | 1093 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1092 insertions(+), 1 deletion(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index ce95bc1c9..240ca11fa 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -131,6 +131,12 @@ struct StructgUnknown_083F8D90 u32 var04; }; +#if DEBUG +u8 gUnknown_Debug_03005FB8; +#endif + +#define static + static void sub_81150FC(void); static void sub_8115124(void); static void sub_8115238(void); @@ -573,6 +579,305 @@ void sub_8115238(void) } #endif +#if DEBUG +__attribute__((naked)) +void sub_8115384(void) +{ + asm("\ + push {r4, lr}\n\ + add sp, sp, #0xfffffffc\n\ + ldr r1, ._35\n\ + ldr r0, ._35 + 4\n\ + str r0, [r1]\n\ + ldr r1, ._35 + 8\n\ + ldr r2, ._35 + 12\n\ + add r0, r1, r2\n\ + ldrb r0, [r0]\n\ + add r2, r1, #0\n\ + cmp r0, #0x7\n\ + bls ._33 @cond_branch\n\ + b ._64\n\ +._33:\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._35 + 16\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._36:\n\ + .align 2, 0\n\ +._35:\n\ + .word gUnknown_Debug_03005FB8\n\ + .word +0x2019000\n\ + .word gMain\n\ + .word 0x43c\n\ + .word ._37\n\ +._37:\n\ + .word ._38\n\ + .word ._39\n\ + .word ._40\n\ + .word ._41\n\ + .word ._42\n\ + .word ._43\n\ + .word ._44\n\ + .word ._45\n\ +._38:\n\ + mov r0, #0x0\n\ + bl SetVBlankCallback\n\ + bl ScanlineEffect_Stop\n\ + bl sub_80F9438\n\ + bl sub_80F9368\n\ + ldr r1, ._47\n\ + ldr r3, ._47 + 4\n\ + add r0, r3, #0\n\ + strh r0, [r1]\n\ + sub r1, r1, #0x2\n\ + ldr r2, ._47 + 8\n\ + add r0, r2, #0\n\ + strh r0, [r1]\n\ + add r1, r1, #0x46\n\ + mov r3, #0x90\n\ + lsl r3, r3, #0x6\n\ + add r0, r3, #0\n\ + strh r0, [r1]\n\ + add r1, r1, #0x2\n\ + ldr r2, ._47 + 12\n\ + add r0, r2, #0\n\ + strh r0, [r1]\n\ + ldr r0, ._47 + 16\n\ + mov r1, #0xc0\n\ + lsl r1, r1, #0x13\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + ldr r0, ._47 + 20\n\ + ldr r1, ._47 + 24\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + ldr r1, ._47 + 28\n\ + ldr r3, ._47 + 32\n\ + add r1, r1, r3\n\ + b ._61\n\ +._48:\n\ + .align 2, 0\n\ +._47:\n\ + .word 0x400000c\n\ + .word 0x4686\n\ + .word 0x4401\n\ + .word 0x60a\n\ + .word gUnknown_08E8096C\n\ + .word gRouletteWheelTiles\n\ + .word 0x6004000\n\ + .word gMain\n\ + .word 0x43c\n\ +._39:\n\ + bl ResetPaletteFade\n\ + bl ResetSpriteData\n\ + bl ResetTasks\n\ + ldr r1, ._50\n\ + ldr r0, ._50 + 4\n\ + add r1, r1, r0\n\ + b ._61\n\ +._51:\n\ + .align 2, 0\n\ +._50:\n\ + .word gMain\n\ + .word 0x43c\n\ +._40:\n\ + ldr r0, ._53\n\ + bl Text_LoadWindowTemplate\n\ + ldr r0, ._53 + 4\n\ + bl InitMenuWindow\n\ + ldr r0, ._53 + 8\n\ + mov r2, #0xe0\n\ + lsl r2, r2, #0x1\n\ + mov r1, #0x0\n\ + bl LoadPalette\n\ + ldr r1, ._53 + 12\n\ + ldr r2, ._53 + 16\n\ + add r1, r1, r2\n\ + b ._61\n\ +._54:\n\ + .align 2, 0\n\ +._53:\n\ + .word gWindowTemplate_81E6C3C\n\ + .word gWindowTemplate_81E6CE4\n\ + .word gUnknown_083F86BC\n\ + .word gMain\n\ + .word 0x43c\n\ +._41:\n\ + bl sub_8115238\n\ + bl sub_80F9020\n\ + ldr r0, ._56\n\ + ldr r1, ._56 + 4\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cbc\n\ + ldr r0, ._56 + 8\n\ + ldr r1, ._56 + 12\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + ldr r1, ._56 + 16\n\ + ldr r3, ._56 + 20\n\ + add r1, r1, r3\n\ + b ._61\n\ +._57:\n\ + .align 2, 0\n\ +._56:\n\ + .word gUnknown_083F88BC\n\ + .word +0x2018800\n\ + .word gUnknown_083F8A60\n\ + .word 0x6003000\n\ + .word gMain\n\ + .word 0x43c\n\ +._42:\n\ + mov r0, #0x0\n\ + bl sub_8117838\n\ + bl sub_811857C\n\ + bl sub_81184D8\n\ + bl sub_8117F2C\n\ + bl sub_8117900\n\ + bl sub_8117BBC\n\ + bl sub_8117DF4\n\ + ldr r1, ._59\n\ + ldr r0, ._59 + 4\n\ + add r1, r1, r0\n\ + b ._61\n\ +._60:\n\ + .align 2, 0\n\ +._59:\n\ + .word gMain\n\ + .word 0x43c\n\ +._43:\n\ + bl AnimateSprites\n\ + bl BuildOamBuffer\n\ + ldr r0, ._62\n\ + ldr r1, ._62 + 4\n\ + add r0, r0, r1\n\ + ldrh r0, [r0]\n\ + bl sub_81180F4\n\ + mov r0, #0x6\n\ + bl sub_81182F8\n\ + mov r0, #0x0\n\ + bl sub_811829C\n\ + mov r0, #0x0\n\ + bl sub_8117158\n\ + mov r0, #0x0\n\ + mov r1, #0xe\n\ + mov r2, #0x1d\n\ + mov r3, #0x13\n\ + bl Menu_DrawStdWindowFrame\n\ + ldr r0, ._62 + 8\n\ + mov r1, #0x1\n\ + mov r2, #0xf\n\ + bl Menu_PrintText\n\ + ldr r1, ._62 + 12\n\ + mov r2, #0x3c\n\ + neg r2, r2\n\ + add r0, r2, #0\n\ + strh r0, [r1]\n\ + ldr r1, ._62 + 16\n\ + mov r0, #0x0\n\ + strh r0, [r1]\n\ + ldr r1, ._62 + 20\n\ + ldr r3, ._62 + 24\n\ + add r1, r1, r3\n\ + b ._61\n\ +._63:\n\ + .align 2, 0\n\ +._62:\n\ + .word gSaveBlock1\n\ + .word 0x494\n\ + .word gUnknown_081C4157\n\ + .word gSpriteCoordOffsetX\n\ + .word gSpriteCoordOffsetY\n\ + .word gMain\n\ + .word 0x43c\n\ +._44:\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x13\n\ + ldr r3, ._65\n\ + add r0, r3, #0\n\ + strh r0, [r1]\n\ + ldr r0, ._65 + 4\n\ + add r1, r2, r0\n\ +._61:\n\ + ldrb r0, [r1]\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + b ._64\n\ +._66:\n\ + .align 2, 0\n\ +._65:\n\ + .word 0x1741\n\ + .word 0x43c\n\ +._45:\n\ + ldr r3, ._67\n\ + ldrh r2, [r3]\n\ + mov r0, #0x0\n\ + strh r0, [r3]\n\ + ldr r4, ._67 + 4\n\ + ldrh r0, [r4]\n\ + mov r1, #0x1\n\ + orr r0, r0, r1\n\ + strh r0, [r4]\n\ + strh r2, [r3]\n\ + ldr r2, ._67 + 8\n\ + ldrh r0, [r2]\n\ + mov r1, #0x8\n\ + orr r0, r0, r1\n\ + strh r0, [r2]\n\ + ldr r0, ._67 + 12\n\ + bl SetVBlankCallback\n\ + mov r0, #0x1\n\ + str r0, [sp]\n\ + mov r0, #0xff\n\ + mov r1, #0x0\n\ + mov r2, #0x10\n\ + mov r3, #0x0\n\ + bl BeginHardwarePaletteFade\n\ + ldr r0, ._67 + 16\n\ + mov r1, #0x0\n\ + bl CreateTask\n\ + ldr r4, ._67 + 20\n\ + add r1, r4, #0\n\ + add r1, r1, #0xa4\n\ + strb r0, [r1]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r2, ._67 + 24\n\ + lsl r1, r0, #0x2\n\ + add r1, r1, r0\n\ + lsl r1, r1, #0x3\n\ + add r1, r1, r2\n\ + mov r0, #0x6\n\ + strh r0, [r1, #0x14]\n\ + ldr r0, ._67 + 28\n\ + ldr r2, ._67 + 32\n\ + add r0, r0, r2\n\ + ldrh r0, [r0]\n\ + strh r0, [r1, #0x22]\n\ + ldr r0, ._67 + 36\n\ + mov r1, #0x1\n\ + bl CreateTask\n\ + add r4, r4, #0xa5\n\ + strb r0, [r4]\n\ + ldr r0, ._67 + 40\n\ + bl SetMainCallback2\n\ +._64:\n\ + add sp, sp, #0x4\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ +._68:\n\ + .align 2, 0\n\ +._67:\n\ + .word 0x4000208\n\ + .word 0x4000200\n\ + .word 0x4000004\n\ + .word sub_8115124+1\n\ + .word sub_81156BC+1\n\ + .word +0x2019000\n\ + .word gTasks\n\ + .word gSaveBlock1\n\ + .word 0x494\n\ + .word sub_8115634+1\n\ + .word sub_81150FC+1"); +} +#else void sub_8115384(void) { u32 temp_IME; @@ -654,7 +959,120 @@ void sub_8115384(void) break; } } +#endif +#if DEBUG +__attribute__((naked)) +void sub_8115634(u8 unused) +{ + asm("\ + push {r4, r5, r6, lr}\n\ + ldr r0, ._75\n\ + add r3, r0, #0\n\ + add r3, r3, #0x21\n\ + ldrb r1, [r3]\n\ + add r2, r1, #1\n\ + strb r2, [r3]\n\ + add r2, r0, #0\n\ + add r2, r2, #0x23\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x18\n\ + add r6, r0, #0\n\ + ldrb r2, [r2]\n\ + cmp r1, r2\n\ + bne ._70 @cond_branch\n\ + mov r0, #0x0\n\ + strb r0, [r3]\n\ + add r2, r6, #0\n\ + add r2, r2, #0x22\n\ + ldrb r1, [r2]\n\ + ldrh r0, [r6, #0x24]\n\ + sub r0, r0, r1\n\ + strh r0, [r6, #0x24]\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + bge ._70 @cond_branch\n\ + ldrb r1, [r2]\n\ + mov r2, #0xb4\n\ + lsl r2, r2, #0x1\n\ + add r0, r2, #0\n\ + sub r0, r0, r1\n\ + strh r0, [r6, #0x24]\n\ +._70:\n\ + add r4, r6, #0\n\ + ldrh r0, [r4, #0x24]\n\ + bl Sin2\n\ + lsl r0, r0, #0x10\n\ + lsr r5, r0, #0x10\n\ + ldrh r0, [r4, #0x24]\n\ + bl Cos2\n\ + lsl r0, r0, #0x10\n\ + lsr r1, r0, #0x10\n\ + lsl r0, r5, #0x10\n\ + asr r0, r0, #0x10\n\ + cmp r0, #0\n\ + bge ._71 @cond_branch\n\ + add r0, r0, #0xf\n\ +._71:\n\ + lsl r0, r0, #0xc\n\ + lsr r5, r0, #0x10\n\ + lsl r0, r1, #0x10\n\ + asr r0, r0, #0x10\n\ + cmp r0, #0\n\ + bge ._72 @cond_branch\n\ + add r0, r0, #0xf\n\ +._72:\n\ + asr r0, r0, #0x4\n\ + strh r0, [r6, #0x32]\n\ + strh r0, [r6, #0x2c]\n\ + strh r5, [r6, #0x2e]\n\ + lsl r0, r5, #0x10\n\ + asr r0, r0, #0x10\n\ + neg r0, r0\n\ + strh r0, [r6, #0x30]\n\ + ldr r0, ._75 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._74 @cond_branch\n\ + ldr r0, ._75 + 8\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._74 @cond_branch\n\ + ldr r2, ._75 + 12\n\ + add r0, r6, #0\n\ + add r0, r0, #0xa4\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x2\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x3\n\ + add r0, r0, r2\n\ + ldr r1, ._75 + 16\n\ + str r1, [r0]\n\ + ldr r0, ._75 + 20\n\ + bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ + ldr r0, ._75 + 24\n\ + bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ + ldr r0, ._75 + 28\n\ + bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ +._74:\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._76:\n\ + .align 2, 0\n\ +._75:\n\ + .word +0x2019000\n\ + .word unk_203955C\n\ + .word gMain\n\ + .word gTasks\n\ + .word sub_81157AC+1\n\ + .word gMPlay_SE1\n\ + .word gMPlay_SE2\n\ + .word gMPlay_SE3"); +} +#else void sub_8115634(u8 unused) { s16 sin; @@ -675,6 +1093,7 @@ void sub_8115634(u8 unused) eRoulette->var2C.b = sin; eRoulette->var2C.c = -sin; } +#endif void sub_81156BC(u8 taskid) { @@ -1596,7 +2015,69 @@ void sub_8116AB0(u8 taskid) gTasks[taskid].func = &sub_8116B40; } -void sub_8116B40(u8 taskid) // end oulette ? +#if DEBUG +__attribute__((naked)) +void sub_8116B40(u8 taskid) // end roulette ? +{ + asm("\ + push {r4, r5, r6, lr}\n\ + lsl r0, r0, #0x18\n\ + lsr r6, r0, #0x18\n\ + bl UpdatePaletteFade\n\ + lsl r0, r0, #0x18\n\ + lsr r5, r0, #0x18\n\ + cmp r5, #0\n\ + bne ._380 @cond_branch\n\ + mov r0, #0x0\n\ + bl SetVBlankCallback\n\ + ldr r0, ._381\n\ + mov r2, #0xbe\n\ + lsl r2, r2, #0x1\n\ + mov r1, #0x0\n\ + bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + ldr r1, ._381 + 4\n\ + ldr r0, ._381 + 8\n\ + mov r4, #0x0\n\ + strh r5, [r0]\n\ + strh r5, [r1]\n\ + bl sub_80F9368\n\ + bl FreeAllSpritePalettes\n\ + bl ResetPaletteFade\n\ + bl ResetSpriteData\n\ + bl sub_80F9020\n\ + ldr r0, ._381 + 12\n\ + strh r5, [r0]\n\ + add r0, r0, #0x2\n\ + strh r5, [r0]\n\ + add r0, r0, #0x2\n\ + strh r5, [r0]\n\ + ldr r1, ._381 + 16\n\ + ldr r0, ._381 + 20\n\ + str r0, [r1]\n\ + ldr r0, ._381 + 24\n\ + bl SetMainCallback2\n\ + add r0, r6, #0\n\ + bl DestroyTask\n\ + ldr r0, ._381 + 28\n\ + strb r4, [r0]\n\ +._380:\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._382:\n\ + .align 2, 0\n\ +._381:\n\ + .word +0x2019000\n\ + .word gSpriteCoordOffsetX\n\ + .word gSpriteCoordOffsetY\n\ + .word 0x4000050\n\ + .word gFieldCallback\n\ + .word sub_8080990+1\n\ + .word c2_exit_to_overworld_2_switch+1\n\ + .word unk_203955C"); +} +#else +void sub_8116B40(u8 taskid) // end roulette ? { if (UpdatePaletteFade() == 0) { @@ -1616,6 +2097,7 @@ void sub_8116B40(u8 taskid) // end oulette ? DestroyTask(taskid); } } +#endif void sub_8116BC0(u8 taskid) { @@ -2632,6 +3114,9 @@ void sub_811755C(u8 taskid) void sub_81175C0(u8 taskid) { +#if DEBUG + unk_203955C[0] = 0; +#endif Menu_EraseScreen(); ScriptContext2_Disable(); DestroyTask(taskid); @@ -2694,6 +3179,386 @@ void Task_Roulette_0(u8 taskid) } } +#if DEBUG + +__attribute__((naked)) +void debug_sub_812CDE4() +{ + asm("\ + push {r4, r5, lr}\n\ + lsl r0, r0, #0x18\n\ + lsr r3, r0, #0x18\n\ + add r4, r3, #0\n\ + ldr r0, ._575\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._572 @cond_branch\n\ + ldr r1, ._575 + 4\n\ + lsl r0, r3, #0x2\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x3\n\ + add r2, r0, r1\n\ + ldrh r0, [r2, #0x22]\n\ + add r0, r0, #0x1\n\ + strh r0, [r2, #0x22]\n\ + lsl r0, r0, #0x10\n\ + ldr r1, ._575 + 8\n\ + cmp r0, r1\n\ + bne ._573 @cond_branch\n\ + mov r0, #0x0\n\ + strh r0, [r2, #0x22]\n\ +._573:\n\ + ldr r0, ._575 + 12\n\ + mov r3, #0x22\n\ + ldsh r1, [r2, r3]\n\ + b ._584\n\ +._576:\n\ + .align 2, 0\n\ +._575:\n\ + .word gMain\n\ + .word gTasks\n\ + .word 0x27100000\n\ + .word gStringVar1\n\ +._572:\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._577 @cond_branch\n\ + ldr r1, ._580\n\ + lsl r0, r3, #0x2\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x3\n\ + add r2, r0, r1\n\ + ldrh r0, [r2, #0x22]\n\ + sub r0, r0, #0x1\n\ + strh r0, [r2, #0x22]\n\ + lsl r0, r0, #0x10\n\ + asr r0, r0, #0x10\n\ + mov r1, #0x1\n\ + neg r1, r1\n\ + cmp r0, r1\n\ + bne ._578 @cond_branch\n\ + ldr r0, ._580 + 4\n\ + strh r0, [r2, #0x22]\n\ +._578:\n\ + ldr r0, ._580 + 8\n\ + mov r3, #0x22\n\ + ldsh r1, [r2, r3]\n\ + b ._584\n\ +._581:\n\ + .align 2, 0\n\ +._580:\n\ + .word gTasks\n\ + .word 0x270f\n\ + .word gStringVar1\n\ +._577:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._582 @cond_branch\n\ + ldr r1, ._585\n\ + lsl r0, r3, #0x2\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x3\n\ + add r2, r0, r1\n\ + ldrh r3, [r2, #0x22]\n\ + add r0, r3, #0\n\ + add r0, r0, #0xa\n\ + strh r0, [r2, #0x22]\n\ + lsl r0, r0, #0x10\n\ + ldr r1, ._585 + 4\n\ + cmp r0, r1\n\ + ble ._583 @cond_branch\n\ + ldr r1, ._585 + 8\n\ + add r0, r3, r1\n\ + strh r0, [r2, #0x22]\n\ +._583:\n\ + ldr r0, ._585 + 12\n\ + mov r3, #0x22\n\ + ldsh r1, [r2, r3]\n\ + b ._584\n\ +._586:\n\ + .align 2, 0\n\ +._585:\n\ + .word gTasks\n\ + .word 0x270f0000\n\ + .word 0xffffd8fb\n\ + .word gStringVar1\n\ +._582:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._587 @cond_branch\n\ + ldr r0, ._590\n\ + lsl r1, r3, #0x2\n\ + add r1, r1, r3\n\ + lsl r1, r1, #0x3\n\ + add r1, r1, r0\n\ + ldrh r2, [r1, #0x22]\n\ + add r0, r2, #0\n\ + sub r0, r0, #0xa\n\ + strh r0, [r1, #0x22]\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + bge ._588 @cond_branch\n\ + ldr r3, ._590 + 4\n\ + add r0, r2, r3\n\ + strh r0, [r1, #0x22]\n\ +._588:\n\ + ldr r0, ._590 + 8\n\ + mov r2, #0x22\n\ + ldsh r1, [r1, r2]\n\ +._584:\n\ + mov r2, #0x1\n\ + mov r3, #0x4\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r4, ._590 + 12\n\ + ldr r1, ._590 + 16\n\ + add r0, r4, #0\n\ + bl StringExpandPlaceholders\n\ + add r0, r4, #0\n\ + mov r1, #0x9\n\ + mov r2, #0x1\n\ + bl MenuPrint_RightAligned\n\ + b ._596\n\ +._591:\n\ + .align 2, 0\n\ +._590:\n\ + .word gTasks\n\ + .word 0x2705\n\ + .word gStringVar1\n\ + .word gStringVar4\n\ + .word gOtherText_Coins\n\ +._587:\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._592 @cond_branch\n\ + ldr r0, ._594\n\ + ldr r2, ._594 + 4\n\ + lsl r1, r3, #0x2\n\ + add r1, r1, r3\n\ + lsl r1, r1, #0x3\n\ + add r1, r1, r2\n\ + ldrh r2, [r1, #0x22]\n\ + ldr r3, ._594 + 8\n\ + add r0, r0, r3\n\ + mov r5, #0x0\n\ + strh r2, [r0]\n\ + ldr r0, ._594 + 12\n\ + str r0, [r1]\n\ + ldr r0, ._594 + 16\n\ + mov r2, #0x22\n\ + ldsh r1, [r1, r2]\n\ + mov r2, #0x1\n\ + mov r3, #0x4\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r4, ._594 + 20\n\ + ldr r1, ._594 + 24\n\ + add r0, r4, #0\n\ + bl StringExpandPlaceholders\n\ + add r0, r4, #0\n\ + mov r1, #0x9\n\ + mov r2, #0x1\n\ + bl MenuPrint_RightAligned\n\ + ldr r0, ._594 + 28\n\ + strb r5, [r0]\n\ + b ._596\n\ +._595:\n\ + .align 2, 0\n\ +._594:\n\ + .word gSaveBlock1\n\ + .word gTasks\n\ + .word 0x494\n\ + .word Task_Roulette_0+1\n\ + .word gStringVar1\n\ + .word gStringVar4\n\ + .word gOtherText_Coins\n\ + .word unk_2039560\n\ +._592:\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._596 @cond_branch\n\ + ldr r0, ._597\n\ + ldr r2, ._597 + 4\n\ + lsl r1, r4, #0x2\n\ + add r1, r1, r4\n\ + lsl r1, r1, #0x3\n\ + add r1, r1, r2\n\ + ldrh r2, [r1, #0x22]\n\ + ldr r3, ._597 + 8\n\ + add r0, r0, r3\n\ + strh r2, [r0]\n\ + ldr r0, ._597 + 12\n\ + str r0, [r1]\n\ + ldr r0, ._597 + 16\n\ + mov r2, #0x22\n\ + ldsh r1, [r1, r2]\n\ + mov r2, #0x1\n\ + mov r3, #0x4\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r4, ._597 + 20\n\ + ldr r1, ._597 + 24\n\ + add r0, r4, #0\n\ + bl StringExpandPlaceholders\n\ + add r0, r4, #0\n\ + mov r1, #0x9\n\ + mov r2, #0x1\n\ + bl MenuPrint_RightAligned\n\ + ldr r1, ._597 + 28\n\ + mov r0, #0x1\n\ + strb r0, [r1]\n\ +._596:\n\ + pop {r4, r5}\n\ + pop {r0}\n\ + bx r0\n\ +._598:\n\ + .align 2, 0\n\ +._597:\n\ + .word gSaveBlock1\n\ + .word gTasks\n\ + .word 0x494\n\ + .word Task_Roulette_0+1\n\ + .word gStringVar1\n\ + .word gStringVar4\n\ + .word gOtherText_Coins\n\ + .word unk_2039560"); +} + +__attribute__((naked)) +void debug_sub_812CFE8() +{ + asm("\ + push {r4, r5, lr}\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r2, ._600\n\ + lsl r1, r0, #0x2\n\ + add r1, r1, r0\n\ + lsl r1, r1, #0x3\n\ + add r5, r1, r2\n\ + ldr r0, ._600 + 4\n\ + ldr r1, ._600 + 8\n\ + add r0, r0, r1\n\ + ldrh r0, [r0]\n\ + strh r0, [r5, #0x22]\n\ + bl Random\n\ + mov r1, #0x1\n\ + and r1, r1, r0\n\ + cmp r1, #0\n\ + beq ._599 @cond_branch\n\ + ldr r0, ._600 + 12\n\ + ldrh r1, [r0]\n\ + mov r2, #0x80\n\ + orr r1, r1, r2\n\ + strh r1, [r0]\n\ +._599:\n\ + ldr r0, ._600 + 16\n\ + mov r2, #0x22\n\ + ldsh r1, [r5, r2]\n\ + mov r2, #0x1\n\ + mov r3, #0x4\n\ + bl ConvertIntToDecimalStringN\n\ + ldr r4, ._600 + 20\n\ + ldr r1, ._600 + 24\n\ + add r0, r4, #0\n\ + bl StringExpandPlaceholders\n\ + mov r0, #0x0\n\ + mov r1, #0x0\n\ + mov r2, #0x9\n\ + mov r3, #0x3\n\ + bl Menu_DrawStdWindowFrame\n\ + add r0, r4, #0\n\ + mov r1, #0x9\n\ + mov r2, #0x1\n\ + bl MenuPrint_RightAligned\n\ + mov r0, #0x0\n\ + mov r1, #0xe\n\ + mov r2, #0x1d\n\ + mov r3, #0x13\n\ + bl Menu_DrawStdWindowFrame\n\ + ldr r0, ._600 + 28\n\ + mov r1, #0x1\n\ + mov r2, #0xf\n\ + bl Menu_PrintText\n\ + ldr r0, ._600 + 32\n\ + str r0, [r5]\n\ + pop {r4, r5}\n\ + pop {r0}\n\ + bx r0\n\ +._601:\n\ + .align 2, 0\n\ +._600:\n\ + .word gTasks\n\ + .word gSaveBlock1\n\ + .word 0x494\n\ + .word gSpecialVar_0x8004\n\ + .word gStringVar1\n\ + .word gStringVar4\n\ + .word gOtherText_Coins\n\ + .word gUnknown_Debug_0842510D\n\ + .word debug_sub_812CDE4+1"); +} + +#endif + +#if DEBUG +__attribute__((naked)) +void PlayRoulette(void) +{ + asm("\ + push {lr}\n\ + bl ScriptContext2_Enable\n\ + ldr r1, ._604\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + ldr r0, ._604 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._602 @cond_branch\n\ + ldr r0, ._604 + 8\n\ + mov r1, #0x0\n\ + bl CreateTask\n\ + b ._603\n\ +._605:\n\ + .align 2, 0\n\ +._604:\n\ + .word unk_2039560\n\ + .word unk_203955C\n\ + .word debug_sub_812CFE8+1\n\ +._602:\n\ + ldr r0, ._606\n\ + mov r1, #0x0\n\ + bl CreateTask\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r2, ._606 + 4\n\ + lsl r1, r0, #0x2\n\ + add r1, r1, r0\n\ + lsl r1, r1, #0x3\n\ + add r1, r1, r2\n\ + ldr r0, ._606 + 8\n\ + ldr r2, ._606 + 12\n\ + add r0, r0, r2\n\ + ldrh r0, [r0]\n\ + strh r0, [r1, #0x22]\n\ +._603:\n\ + pop {r0}\n\ + bx r0\n\ +._607:\n\ + .align 2, 0\n\ +._606:\n\ + .word Task_Roulette_0+1\n\ + .word gTasks\n\ + .word gSaveBlock1\n\ + .word 0x494"); +} +#else void PlayRoulette(void) { u8 taskid; @@ -2701,6 +3566,7 @@ void PlayRoulette(void) taskid = CreateTask(&Task_Roulette_0, 0x0); gTasks[taskid].data[0xD] = gSaveBlock1.coins; } +#endif void sub_8117838(u8 r0) { @@ -3594,6 +4460,99 @@ void sub_8118D2C(struct Sprite *sprite) } } +#if DEBUG +__attribute__((naked)) +void debug_sub_812E698() +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + add r7, r0, #0\n\ + bl sub_8118724\n\ + mov r0, #0x0\n\ + strh r0, [r7, #0x32]\n\ + add r0, r7, #0\n\ + bl sub_81186B8\n\ + mov r0, #0x38\n\ + bl gMysteryEventScriptCmdTableEnd+0x13c0\n\ + bl Random\n\ + mov r1, #0x1\n\ + and r1, r1, r0\n\ + cmp r1, #0\n\ + beq ._837 @cond_branch\n\ + ldr r4, ._839\n\ + add r1, r4, #0\n\ + add r1, r1, #0x8c\n\ + ldr r0, ._839 + 4\n\ + str r0, [r1]\n\ + add r0, r4, #0\n\ + add r0, r0, #0x7e\n\ + ldrb r0, [r0]\n\ + add r0, r0, #0x1\n\ + mov r1, #0xc\n\ + bl gMysteryEventScriptCmdTableEnd+0x3e40\n\ + add r1, r4, #0\n\ + add r1, r1, #0x7f\n\ + strb r0, [r1]\n\ + add r1, r4, #0\n\ + ldr r4, ._839 + 8\n\ + b ._838\n\ +._840:\n\ + .align 2, 0\n\ +._839:\n\ + .word +0x2019000\n\ + .word 0x0\n\ + .word gUnknown_083F8DF4\n\ +._837:\n\ + ldr r6, ._841\n\ + add r5, r6, #0\n\ + add r5, r5, #0x8c\n\ + ldr r4, ._841 + 4\n\ + ldrb r0, [r6, #0x4]\n\ + lsl r0, r0, #0x1e\n\ + lsr r0, r0, #0x19\n\ + add r1, r4, #0\n\ + add r1, r1, #0x1c\n\ + add r0, r0, r1\n\ + ldr r1, [r0]\n\ + add r0, r1, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x54dc\n\ + str r0, [r5]\n\ + add r0, r6, #0\n\ + add r0, r0, #0x7e\n\ + ldrb r0, [r0]\n\ + add r1, r6, #0\n\ + add r1, r1, #0x7f\n\ + strb r0, [r1]\n\ + add r1, r6, #0\n\ +._838:\n\ + mov r0, #0x1\n\ + strh r0, [r7, #0x2e]\n\ + ldrb r0, [r1, #0x4]\n\ + lsl r0, r0, #0x1e\n\ + lsr r0, r0, #0x19\n\ + add r0, r0, r4\n\ + ldrb r0, [r0, #0x2]\n\ + strh r0, [r7, #0x32]\n\ + add r1, r1, #0x98\n\ + ldr r0, ._841 + 8\n\ + str r0, [r1]\n\ + ldr r0, ._841 + 12\n\ + str r0, [r7, #0x1c]\n\ + mov r0, #0x5\n\ + strh r0, [r7, #0x30]\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._842:\n\ + .align 2, 0\n\ +._841:\n\ + .word +0x2019000\n\ + .word gUnknown_083F8DF4\n\ + .word 0x3dae147b\n\ + .word sub_8118D2C+1"); +} +#endif + #ifdef NONMATCHING void sub_8118DE4(struct Sprite *sprite) { @@ -3869,6 +4828,137 @@ _08118F88: .4byte sub_8118D2C\n\ } #endif +#if DEBUG +__attribute__((naked)) +void sub_8118F8C(struct Sprite *sprite) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6, r7}\n\ + add r6, r0, #0\n\ + bl sub_8118724\n\ + ldr r5, ._868\n\ + mov r0, #0x8c\n\ + add r0, r0, r5\n\ + mov r8, r0\n\ + ldr r0, [r0]\n\ + ldr r1, ._868 + 4\n\ + bl gMysteryEventScriptCmdTableEnd+0x5928\n\ + cmp r0, #0\n\ + bgt ._874 @cond_branch\n\ + add r0, r6, #0\n\ + bl sub_81186B8\n\ + add r0, r6, #0\n\ + bl sub_81186E8\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + bne ._864 @cond_branch\n\ + add r1, r5, #0\n\ + add r1, r1, #0x90\n\ + ldr r0, ._868 + 8\n\ + str r0, [r1]\n\ + ldr r1, ._868 + 12\n\ + mov r9, r1\n\ + ldrb r0, [r5, #0x4]\n\ + lsl r7, r0, #0x1e\n\ + lsr r0, r7, #0x19\n\ + add r0, r0, r9\n\ + mov r4, #0x3\n\ + ldsb r4, [r0, r4]\n\ + add r0, r4, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x5a48\n\ + add r5, r0, #0\n\ + cmp r4, #0\n\ + bge ._865 @cond_branch\n\ + ldr r1, ._868 + 16\n\ + bl gMysteryEventScriptCmdTableEnd+0x54dc\n\ + add r5, r0, #0\n\ +._865:\n\ + lsr r0, r7, #0x19\n\ + add r0, r0, r9\n\ + ldrb r0, [r0, #0x4]\n\ + add r0, r0, #0x1\n\ + bl gMysteryEventScriptCmdTableEnd+0x5a48\n\ + add r1, r0, #0\n\ + add r0, r5, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x56a0\n\ + add r1, r0, #0\n\ + mov r2, r8\n\ + ldr r0, [r2]\n\ + bl gMysteryEventScriptCmdTableEnd+0x5508\n\ + mov r1, r8\n\ + str r0, [r1]\n\ + mov r0, #0x4\n\ + strh r0, [r6, #0x30]\n\ + ldr r0, ._868 + 20\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._866 @cond_branch\n\ + ldr r0, ._868 + 24\n\ + str r0, [r6, #0x1c]\n\ + b ._874\n\ +._869:\n\ + .align 2, 0\n\ +._868:\n\ + .word +0x2019000\n\ + .word 0x3f000000\n\ + .word 0x0\n\ + .word gUnknown_083F8DF4\n\ + .word 0x43800000\n\ + .word unk_2039560\n\ + .word debug_sub_812E698+1\n\ +._866:\n\ + ldr r0, ._871\n\ + str r0, [r6, #0x1c]\n\ + b ._874\n\ +._872:\n\ + .align 2, 0\n\ +._871:\n\ + .word sub_8118DE4+1\n\ +._864:\n\ + add r6, r5, #0\n\ + add r6, r6, #0x90\n\ + ldr r0, [r6]\n\ + ldr r4, ._875\n\ + add r1, r4, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x58e0\n\ + cmp r0, #0\n\ + beq ._874 @cond_branch\n\ + mov r2, r8\n\ + ldr r0, [r2]\n\ + add r1, r4, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x59b8\n\ + cmp r0, #0\n\ + bge ._874 @cond_branch\n\ + str r4, [r6]\n\ + mov r0, r8\n\ + str r4, [r0]\n\ + add r4, r5, #0\n\ + add r4, r4, #0x98\n\ + ldr r0, [r4]\n\ + bl gMysteryEventScriptCmdTableEnd+0x5b4c\n\ + ldr r2, ._875 + 4\n\ + ldr r3, ._875 + 8\n\ + bl gMysteryEventScriptCmdTableEnd+0x4c2c\n\ + bl gMysteryEventScriptCmdTableEnd+0x51e8\n\ + str r0, [r4]\n\ +._874:\n\ + pop {r3, r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._876:\n\ + .align 2, 0\n\ +._875:\n\ + .word 0x0\n\ + .word 0x3ff33333\n\ + .word 0x33333333"); +} +#else void sub_8118F8C(struct Sprite *sprite) { sub_8118724(sprite); @@ -3899,6 +4989,7 @@ void sub_8118F8C(struct Sprite *sprite) } } } +#endif void sub_8119088(struct Sprite *sprite) { -- cgit v1.2.3 From 0f09d2e7046a54c95e2ed4a7ff759d4cd1db87f7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 22:35:27 -0600 Subject: fix false gMysteryEventScriptCmdTableEnd offsets --- src/roulette.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index e01f085a2..5a8d35647 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -646,10 +646,10 @@ void sub_8115384(void) ldr r0, ._47 + 16\n\ mov r1, #0xc0\n\ lsl r1, r1, #0x13\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + bl LZ77UnCompVram\n\ ldr r0, ._47 + 20\n\ ldr r1, ._47 + 24\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + bl LZ77UnCompVram\n\ ldr r1, ._47 + 28\n\ ldr r3, ._47 + 32\n\ add r1, r1, r3\n\ @@ -706,10 +706,10 @@ void sub_8115384(void) bl ClearBGTilemapBuffers\n\ ldr r0, ._56\n\ ldr r1, ._56 + 4\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cbc\n\ + bl LZ77UnCompWram\n\ ldr r0, ._56 + 8\n\ ldr r1, ._56 + 12\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cb8\n\ + bl LZ77UnCompVram\n\ ldr r1, ._56 + 16\n\ ldr r3, ._56 + 20\n\ add r1, r1, r3\n\ @@ -1051,11 +1051,11 @@ void sub_8115634(u8 unused) ldr r1, ._75 + 16\n\ str r1, [r0]\n\ ldr r0, ._75 + 20\n\ - bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ + bl m4aMPlayStop\n\ ldr r0, ._75 + 24\n\ - bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ + bl m4aMPlayStop\n\ ldr r0, ._75 + 28\n\ - bl gMysteryEventScriptCmdTableEnd+0x1c08\n\ + bl m4aMPlayStop\n\ ._74:\n\ pop {r4, r5, r6}\n\ pop {r0}\n\ @@ -2034,7 +2034,7 @@ void sub_8116B40(u8 taskid) // end roulette ? mov r2, #0xbe\n\ lsl r2, r2, #0x1\n\ mov r1, #0x0\n\ - bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + bl memset\n\ ldr r1, ._381 + 4\n\ ldr r0, ._381 + 8\n\ mov r4, #0x0\n\ @@ -4473,7 +4473,7 @@ void debug_sub_812E698() add r0, r7, #0\n\ bl sub_81186B8\n\ mov r0, #0x38\n\ - bl gMysteryEventScriptCmdTableEnd+0x13c0\n\ + bl m4aSongNumStart\n\ bl Random\n\ mov r1, #0x1\n\ and r1, r1, r0\n\ @@ -4489,7 +4489,7 @@ void debug_sub_812E698() ldrb r0, [r0]\n\ add r0, r0, #0x1\n\ mov r1, #0xc\n\ - bl gMysteryEventScriptCmdTableEnd+0x3e40\n\ + bl __modsi3\n\ add r1, r4, #0\n\ add r1, r1, #0x7f\n\ strb r0, [r1]\n\ @@ -4515,7 +4515,7 @@ void debug_sub_812E698() add r0, r0, r1\n\ ldr r1, [r0]\n\ add r0, r1, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x54dc\n\ + bl __addsf3\n\ str r0, [r5]\n\ add r0, r6, #0\n\ add r0, r0, #0x7e\n\ @@ -4845,7 +4845,7 @@ void sub_8118F8C(struct Sprite *sprite) mov r8, r0\n\ ldr r0, [r0]\n\ ldr r1, ._868 + 4\n\ - bl gMysteryEventScriptCmdTableEnd+0x5928\n\ + bl __gtsf2\n\ cmp r0, #0\n\ bgt ._874 @cond_branch\n\ add r0, r6, #0\n\ @@ -4868,26 +4868,26 @@ void sub_8118F8C(struct Sprite *sprite) mov r4, #0x3\n\ ldsb r4, [r0, r4]\n\ add r0, r4, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x5a48\n\ + bl __floatsisf\n\ add r5, r0, #0\n\ cmp r4, #0\n\ bge ._865 @cond_branch\n\ ldr r1, ._868 + 16\n\ - bl gMysteryEventScriptCmdTableEnd+0x54dc\n\ + bl __addsf3\n\ add r5, r0, #0\n\ ._865:\n\ lsr r0, r7, #0x19\n\ add r0, r0, r9\n\ ldrb r0, [r0, #0x4]\n\ add r0, r0, #0x1\n\ - bl gMysteryEventScriptCmdTableEnd+0x5a48\n\ + bl __floatsisf\n\ add r1, r0, #0\n\ add r0, r5, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x56a0\n\ + bl __divsf3\n\ add r1, r0, #0\n\ mov r2, r8\n\ ldr r0, [r2]\n\ - bl gMysteryEventScriptCmdTableEnd+0x5508\n\ + bl __subsf3\n\ mov r1, r8\n\ str r0, [r1]\n\ mov r0, #0x4\n\ @@ -4923,13 +4923,13 @@ void sub_8118F8C(struct Sprite *sprite) ldr r0, [r6]\n\ ldr r4, ._875\n\ add r1, r4, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x58e0\n\ + bl __nesf2\n\ cmp r0, #0\n\ beq ._874 @cond_branch\n\ mov r2, r8\n\ ldr r0, [r2]\n\ add r1, r4, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x59b8\n\ + bl __ltsf2\n\ cmp r0, #0\n\ bge ._874 @cond_branch\n\ str r4, [r6]\n\ @@ -4938,11 +4938,11 @@ void sub_8118F8C(struct Sprite *sprite) add r4, r5, #0\n\ add r4, r4, #0x98\n\ ldr r0, [r4]\n\ - bl gMysteryEventScriptCmdTableEnd+0x5b4c\n\ + bl __extendsfdf2\n\ ldr r2, ._875 + 4\n\ ldr r3, ._875 + 8\n\ - bl gMysteryEventScriptCmdTableEnd+0x4c2c\n\ - bl gMysteryEventScriptCmdTableEnd+0x51e8\n\ + bl __divdf3\n\ + bl __truncdfsf2\n\ str r0, [r4]\n\ ._874:\n\ pop {r3, r4}\n\ -- cgit v1.2.3 From 8aae2583eb851d1442b85e28d7bcb13a15c1818d Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 27 Jan 2018 16:41:07 -0600 Subject: add comments for pool loads --- src/roulette.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 5a8d35647..ffdbc2c26 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -607,7 +607,7 @@ void sub_8115384(void) .align 2, 0\n\ ._35:\n\ .word gUnknown_Debug_03005FB8\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word gMain\n\ .word 0x43c\n\ .word ._37\n\ @@ -718,7 +718,7 @@ void sub_8115384(void) .align 2, 0\n\ ._56:\n\ .word gUnknown_083F88BC\n\ - .word +0x2018800\n\ + .word 0x2018800\n\ .word gUnknown_083F8A60\n\ .word 0x6003000\n\ .word gMain\n\ @@ -870,7 +870,7 @@ void sub_8115384(void) .word 0x4000004\n\ .word sub_8115124+1\n\ .word sub_81156BC+1\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word gTasks\n\ .word gSaveBlock1\n\ .word 0x494\n\ @@ -1063,7 +1063,7 @@ void sub_8115634(u8 unused) ._76:\n\ .align 2, 0\n\ ._75:\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word unk_203955C\n\ .word gMain\n\ .word gTasks\n\ @@ -2067,7 +2067,7 @@ void sub_8116B40(u8 taskid) // end roulette ? ._382:\n\ .align 2, 0\n\ ._381:\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word gSpriteCoordOffsetX\n\ .word gSpriteCoordOffsetY\n\ .word 0x4000050\n\ @@ -4499,7 +4499,7 @@ void debug_sub_812E698() ._840:\n\ .align 2, 0\n\ ._839:\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word 0x0\n\ .word gUnknown_083F8DF4\n\ ._837:\n\ @@ -4546,7 +4546,7 @@ void debug_sub_812E698() ._842:\n\ .align 2, 0\n\ ._841:\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word gUnknown_083F8DF4\n\ .word 0x3dae147b\n\ .word sub_8118D2C+1"); @@ -4902,7 +4902,7 @@ void sub_8118F8C(struct Sprite *sprite) ._869:\n\ .align 2, 0\n\ ._868:\n\ - .word +0x2019000\n\ + .word 0x2019000\n\ .word 0x3f000000\n\ .word 0x0\n\ .word gUnknown_083F8DF4\n\ -- cgit v1.2.3 From fe400f60b6609d37d2b8a0c2aec75321adc3e95f Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 27 Jan 2018 17:03:40 -0600 Subject: add comments for pool loads in C files --- src/roulette.c | 262 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 131 insertions(+), 131 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index ffdbc2c26..838ce94f8 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -586,11 +586,11 @@ void sub_8115384(void) asm("\ push {r4, lr}\n\ add sp, sp, #0xfffffffc\n\ - ldr r1, ._35\n\ - ldr r0, ._35 + 4\n\ + ldr r1, ._35 @ gUnknown_Debug_03005FB8\n\ + ldr r0, ._35 + 4 @ 0x2019000\n\ str r0, [r1]\n\ - ldr r1, ._35 + 8\n\ - ldr r2, ._35 + 12\n\ + ldr r1, ._35 + 8 @ gMain\n\ + ldr r2, ._35 + 12 @ 0x43c\n\ add r0, r1, r2\n\ ldrb r0, [r0]\n\ add r2, r1, #0\n\ @@ -599,7 +599,7 @@ void sub_8115384(void) b ._64\n\ ._33:\n\ lsl r0, r0, #0x2\n\ - ldr r1, ._35 + 16\n\ + ldr r1, ._35 + 16 @ \n\ add r0, r0, r1\n\ ldr r0, [r0]\n\ mov pc, r0\n\ @@ -626,12 +626,12 @@ void sub_8115384(void) bl ScanlineEffect_Stop\n\ bl ClearVideoCallbacks\n\ bl sub_80F9368\n\ - ldr r1, ._47\n\ - ldr r3, ._47 + 4\n\ + ldr r1, ._47 @ 0x400000c\n\ + ldr r3, ._47 + 4 @ 0x4686\n\ add r0, r3, #0\n\ strh r0, [r1]\n\ sub r1, r1, #0x2\n\ - ldr r2, ._47 + 8\n\ + ldr r2, ._47 + 8 @ 0x4401\n\ add r0, r2, #0\n\ strh r0, [r1]\n\ add r1, r1, #0x46\n\ @@ -640,18 +640,18 @@ void sub_8115384(void) add r0, r3, #0\n\ strh r0, [r1]\n\ add r1, r1, #0x2\n\ - ldr r2, ._47 + 12\n\ + ldr r2, ._47 + 12 @ 0x60a\n\ add r0, r2, #0\n\ strh r0, [r1]\n\ - ldr r0, ._47 + 16\n\ + ldr r0, ._47 + 16 @ gUnknown_08E8096C\n\ mov r1, #0xc0\n\ lsl r1, r1, #0x13\n\ bl LZ77UnCompVram\n\ - ldr r0, ._47 + 20\n\ - ldr r1, ._47 + 24\n\ + ldr r0, ._47 + 20 @ gRouletteWheelTiles\n\ + ldr r1, ._47 + 24 @ 0x6004000\n\ bl LZ77UnCompVram\n\ - ldr r1, ._47 + 28\n\ - ldr r3, ._47 + 32\n\ + ldr r1, ._47 + 28 @ gMain\n\ + ldr r3, ._47 + 32 @ 0x43c\n\ add r1, r1, r3\n\ b ._61\n\ ._48:\n\ @@ -670,8 +670,8 @@ void sub_8115384(void) bl ResetPaletteFade\n\ bl ResetSpriteData\n\ bl ResetTasks\n\ - ldr r1, ._50\n\ - ldr r0, ._50 + 4\n\ + ldr r1, ._50 @ gMain\n\ + ldr r0, ._50 + 4 @ 0x43c\n\ add r1, r1, r0\n\ b ._61\n\ ._51:\n\ @@ -680,17 +680,17 @@ void sub_8115384(void) .word gMain\n\ .word 0x43c\n\ ._40:\n\ - ldr r0, ._53\n\ + ldr r0, ._53 @ gWindowTemplate_81E6C3C\n\ bl Text_LoadWindowTemplate\n\ - ldr r0, ._53 + 4\n\ + ldr r0, ._53 + 4 @ gWindowTemplate_81E6CE4\n\ bl InitMenuWindow\n\ - ldr r0, ._53 + 8\n\ + ldr r0, ._53 + 8 @ gUnknown_083F86BC\n\ mov r2, #0xe0\n\ lsl r2, r2, #0x1\n\ mov r1, #0x0\n\ bl LoadPalette\n\ - ldr r1, ._53 + 12\n\ - ldr r2, ._53 + 16\n\ + ldr r1, ._53 + 12 @ gMain\n\ + ldr r2, ._53 + 16 @ 0x43c\n\ add r1, r1, r2\n\ b ._61\n\ ._54:\n\ @@ -704,14 +704,14 @@ void sub_8115384(void) ._41:\n\ bl sub_8115238\n\ bl ClearBGTilemapBuffers\n\ - ldr r0, ._56\n\ - ldr r1, ._56 + 4\n\ + ldr r0, ._56 @ gUnknown_083F88BC\n\ + ldr r1, ._56 + 4 @ 0x2018800\n\ bl LZ77UnCompWram\n\ - ldr r0, ._56 + 8\n\ - ldr r1, ._56 + 12\n\ + ldr r0, ._56 + 8 @ gUnknown_083F8A60\n\ + ldr r1, ._56 + 12 @ 0x6003000\n\ bl LZ77UnCompVram\n\ - ldr r1, ._56 + 16\n\ - ldr r3, ._56 + 20\n\ + ldr r1, ._56 + 16 @ gMain\n\ + ldr r3, ._56 + 20 @ 0x43c\n\ add r1, r1, r3\n\ b ._61\n\ ._57:\n\ @@ -732,8 +732,8 @@ void sub_8115384(void) bl sub_8117900\n\ bl sub_8117BBC\n\ bl sub_8117DF4\n\ - ldr r1, ._59\n\ - ldr r0, ._59 + 4\n\ + ldr r1, ._59 @ gMain\n\ + ldr r0, ._59 + 4 @ 0x43c\n\ add r1, r1, r0\n\ b ._61\n\ ._60:\n\ @@ -744,8 +744,8 @@ void sub_8115384(void) ._43:\n\ bl AnimateSprites\n\ bl BuildOamBuffer\n\ - ldr r0, ._62\n\ - ldr r1, ._62 + 4\n\ + ldr r0, ._62 @ gSaveBlock1\n\ + ldr r1, ._62 + 4 @ 0x494\n\ add r0, r0, r1\n\ ldrh r0, [r0]\n\ bl sub_81180F4\n\ @@ -760,20 +760,20 @@ void sub_8115384(void) mov r2, #0x1d\n\ mov r3, #0x13\n\ bl Menu_DrawStdWindowFrame\n\ - ldr r0, ._62 + 8\n\ + ldr r0, ._62 + 8 @ gUnknown_081C4157\n\ mov r1, #0x1\n\ mov r2, #0xf\n\ bl Menu_PrintText\n\ - ldr r1, ._62 + 12\n\ + ldr r1, ._62 + 12 @ gSpriteCoordOffsetX\n\ mov r2, #0x3c\n\ neg r2, r2\n\ add r0, r2, #0\n\ strh r0, [r1]\n\ - ldr r1, ._62 + 16\n\ + ldr r1, ._62 + 16 @ gSpriteCoordOffsetY\n\ mov r0, #0x0\n\ strh r0, [r1]\n\ - ldr r1, ._62 + 20\n\ - ldr r3, ._62 + 24\n\ + ldr r1, ._62 + 20 @ gMain\n\ + ldr r3, ._62 + 24 @ 0x43c\n\ add r1, r1, r3\n\ b ._61\n\ ._63:\n\ @@ -789,10 +789,10 @@ void sub_8115384(void) ._44:\n\ mov r1, #0x80\n\ lsl r1, r1, #0x13\n\ - ldr r3, ._65\n\ + ldr r3, ._65 @ 0x1741\n\ add r0, r3, #0\n\ strh r0, [r1]\n\ - ldr r0, ._65 + 4\n\ + ldr r0, ._65 + 4 @ 0x43c\n\ add r1, r2, r0\n\ ._61:\n\ ldrb r0, [r1]\n\ @@ -805,22 +805,22 @@ void sub_8115384(void) .word 0x1741\n\ .word 0x43c\n\ ._45:\n\ - ldr r3, ._67\n\ + ldr r3, ._67 @ 0x4000208\n\ ldrh r2, [r3]\n\ mov r0, #0x0\n\ strh r0, [r3]\n\ - ldr r4, ._67 + 4\n\ + ldr r4, ._67 + 4 @ 0x4000200\n\ ldrh r0, [r4]\n\ mov r1, #0x1\n\ orr r0, r0, r1\n\ strh r0, [r4]\n\ strh r2, [r3]\n\ - ldr r2, ._67 + 8\n\ + ldr r2, ._67 + 8 @ 0x4000004\n\ ldrh r0, [r2]\n\ mov r1, #0x8\n\ orr r0, r0, r1\n\ strh r0, [r2]\n\ - ldr r0, ._67 + 12\n\ + ldr r0, ._67 + 12 @ sub_8115124\n\ bl SetVBlankCallback\n\ mov r0, #0x1\n\ str r0, [sp]\n\ @@ -829,33 +829,33 @@ void sub_8115384(void) mov r2, #0x10\n\ mov r3, #0x0\n\ bl BeginHardwarePaletteFade\n\ - ldr r0, ._67 + 16\n\ + ldr r0, ._67 + 16 @ sub_81156BC\n\ mov r1, #0x0\n\ bl CreateTask\n\ - ldr r4, ._67 + 20\n\ + ldr r4, ._67 + 20 @ 0x2019000\n\ add r1, r4, #0\n\ add r1, r1, #0xa4\n\ strb r0, [r1]\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ - ldr r2, ._67 + 24\n\ + ldr r2, ._67 + 24 @ gTasks\n\ lsl r1, r0, #0x2\n\ add r1, r1, r0\n\ lsl r1, r1, #0x3\n\ add r1, r1, r2\n\ mov r0, #0x6\n\ strh r0, [r1, #0x14]\n\ - ldr r0, ._67 + 28\n\ - ldr r2, ._67 + 32\n\ + ldr r0, ._67 + 28 @ gSaveBlock1\n\ + ldr r2, ._67 + 32 @ 0x494\n\ add r0, r0, r2\n\ ldrh r0, [r0]\n\ strh r0, [r1, #0x22]\n\ - ldr r0, ._67 + 36\n\ + ldr r0, ._67 + 36 @ sub_8115634\n\ mov r1, #0x1\n\ bl CreateTask\n\ add r4, r4, #0xa5\n\ strb r0, [r4]\n\ - ldr r0, ._67 + 40\n\ + ldr r0, ._67 + 40 @ sub_81150FC\n\ bl SetMainCallback2\n\ ._64:\n\ add sp, sp, #0x4\n\ @@ -967,7 +967,7 @@ void sub_8115634(u8 unused) { asm("\ push {r4, r5, r6, lr}\n\ - ldr r0, ._75\n\ + ldr r0, ._75 @ 0x2019000\n\ add r3, r0, #0\n\ add r3, r3, #0x21\n\ ldrb r1, [r3]\n\ @@ -1030,17 +1030,17 @@ void sub_8115634(u8 unused) asr r0, r0, #0x10\n\ neg r0, r0\n\ strh r0, [r6, #0x30]\n\ - ldr r0, ._75 + 4\n\ + ldr r0, ._75 + 4 @ unk_203955C\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._74 @cond_branch\n\ - ldr r0, ._75 + 8\n\ + ldr r0, ._75 + 8 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x8\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._74 @cond_branch\n\ - ldr r2, ._75 + 12\n\ + ldr r2, ._75 + 12 @ gTasks\n\ add r0, r6, #0\n\ add r0, r0, #0xa4\n\ ldrb r1, [r0]\n\ @@ -1048,13 +1048,13 @@ void sub_8115634(u8 unused) add r0, r0, r1\n\ lsl r0, r0, #0x3\n\ add r0, r0, r2\n\ - ldr r1, ._75 + 16\n\ + ldr r1, ._75 + 16 @ sub_81157AC\n\ str r1, [r0]\n\ - ldr r0, ._75 + 20\n\ + ldr r0, ._75 + 20 @ gMPlay_SE1\n\ bl m4aMPlayStop\n\ - ldr r0, ._75 + 24\n\ + ldr r0, ._75 + 24 @ gMPlay_SE2\n\ bl m4aMPlayStop\n\ - ldr r0, ._75 + 28\n\ + ldr r0, ._75 + 28 @ gMPlay_SE3\n\ bl m4aMPlayStop\n\ ._74:\n\ pop {r4, r5, r6}\n\ @@ -2030,13 +2030,13 @@ void sub_8116B40(u8 taskid) // end roulette ? bne ._380 @cond_branch\n\ mov r0, #0x0\n\ bl SetVBlankCallback\n\ - ldr r0, ._381\n\ + ldr r0, ._381 @ 0x2019000\n\ mov r2, #0xbe\n\ lsl r2, r2, #0x1\n\ mov r1, #0x0\n\ bl memset\n\ - ldr r1, ._381 + 4\n\ - ldr r0, ._381 + 8\n\ + ldr r1, ._381 + 4 @ gSpriteCoordOffsetX\n\ + ldr r0, ._381 + 8 @ gSpriteCoordOffsetY\n\ mov r4, #0x0\n\ strh r5, [r0]\n\ strh r5, [r1]\n\ @@ -2045,20 +2045,20 @@ void sub_8116B40(u8 taskid) // end roulette ? bl ResetPaletteFade\n\ bl ResetSpriteData\n\ bl ClearBGTilemapBuffers\n\ - ldr r0, ._381 + 12\n\ + ldr r0, ._381 + 12 @ 0x4000050\n\ strh r5, [r0]\n\ add r0, r0, #0x2\n\ strh r5, [r0]\n\ add r0, r0, #0x2\n\ strh r5, [r0]\n\ - ldr r1, ._381 + 16\n\ - ldr r0, ._381 + 20\n\ + ldr r1, ._381 + 16 @ gFieldCallback\n\ + ldr r0, ._381 + 20 @ sub_8080990\n\ str r0, [r1]\n\ - ldr r0, ._381 + 24\n\ + ldr r0, ._381 + 24 @ c2_exit_to_overworld_2_switch\n\ bl SetMainCallback2\n\ add r0, r6, #0\n\ bl DestroyTask\n\ - ldr r0, ._381 + 28\n\ + ldr r0, ._381 + 28 @ unk_203955C\n\ strb r4, [r0]\n\ ._380:\n\ pop {r4, r5, r6}\n\ @@ -3189,13 +3189,13 @@ void debug_sub_812CDE4() lsl r0, r0, #0x18\n\ lsr r3, r0, #0x18\n\ add r4, r3, #0\n\ - ldr r0, ._575\n\ + ldr r0, ._575 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._572 @cond_branch\n\ - ldr r1, ._575 + 4\n\ + ldr r1, ._575 + 4 @ gTasks\n\ lsl r0, r3, #0x2\n\ add r0, r0, r3\n\ lsl r0, r0, #0x3\n\ @@ -3204,13 +3204,13 @@ void debug_sub_812CDE4() add r0, r0, #0x1\n\ strh r0, [r2, #0x22]\n\ lsl r0, r0, #0x10\n\ - ldr r1, ._575 + 8\n\ + ldr r1, ._575 + 8 @ 0x27100000\n\ cmp r0, r1\n\ bne ._573 @cond_branch\n\ mov r0, #0x0\n\ strh r0, [r2, #0x22]\n\ ._573:\n\ - ldr r0, ._575 + 12\n\ + ldr r0, ._575 + 12 @ gStringVar1\n\ mov r3, #0x22\n\ ldsh r1, [r2, r3]\n\ b ._584\n\ @@ -3226,7 +3226,7 @@ void debug_sub_812CDE4() and r0, r0, r1\n\ cmp r0, #0\n\ beq ._577 @cond_branch\n\ - ldr r1, ._580\n\ + ldr r1, ._580 @ gTasks\n\ lsl r0, r3, #0x2\n\ add r0, r0, r3\n\ lsl r0, r0, #0x3\n\ @@ -3240,10 +3240,10 @@ void debug_sub_812CDE4() neg r1, r1\n\ cmp r0, r1\n\ bne ._578 @cond_branch\n\ - ldr r0, ._580 + 4\n\ + ldr r0, ._580 + 4 @ 0x270f\n\ strh r0, [r2, #0x22]\n\ ._578:\n\ - ldr r0, ._580 + 8\n\ + ldr r0, ._580 + 8 @ gStringVar1\n\ mov r3, #0x22\n\ ldsh r1, [r2, r3]\n\ b ._584\n\ @@ -3259,7 +3259,7 @@ void debug_sub_812CDE4() and r0, r0, r1\n\ cmp r0, #0\n\ beq ._582 @cond_branch\n\ - ldr r1, ._585\n\ + ldr r1, ._585 @ gTasks\n\ lsl r0, r3, #0x2\n\ add r0, r0, r3\n\ lsl r0, r0, #0x3\n\ @@ -3269,14 +3269,14 @@ void debug_sub_812CDE4() add r0, r0, #0xa\n\ strh r0, [r2, #0x22]\n\ lsl r0, r0, #0x10\n\ - ldr r1, ._585 + 4\n\ + ldr r1, ._585 + 4 @ 0x270f0000\n\ cmp r0, r1\n\ ble ._583 @cond_branch\n\ - ldr r1, ._585 + 8\n\ + ldr r1, ._585 + 8 @ 0xffffd8fb\n\ add r0, r3, r1\n\ strh r0, [r2, #0x22]\n\ ._583:\n\ - ldr r0, ._585 + 12\n\ + ldr r0, ._585 + 12 @ gStringVar1\n\ mov r3, #0x22\n\ ldsh r1, [r2, r3]\n\ b ._584\n\ @@ -3293,7 +3293,7 @@ void debug_sub_812CDE4() and r0, r0, r1\n\ cmp r0, #0\n\ beq ._587 @cond_branch\n\ - ldr r0, ._590\n\ + ldr r0, ._590 @ gTasks\n\ lsl r1, r3, #0x2\n\ add r1, r1, r3\n\ lsl r1, r1, #0x3\n\ @@ -3305,19 +3305,19 @@ void debug_sub_812CDE4() lsl r0, r0, #0x10\n\ cmp r0, #0\n\ bge ._588 @cond_branch\n\ - ldr r3, ._590 + 4\n\ + ldr r3, ._590 + 4 @ 0x2705\n\ add r0, r2, r3\n\ strh r0, [r1, #0x22]\n\ ._588:\n\ - ldr r0, ._590 + 8\n\ + ldr r0, ._590 + 8 @ gStringVar1\n\ mov r2, #0x22\n\ ldsh r1, [r1, r2]\n\ ._584:\n\ mov r2, #0x1\n\ mov r3, #0x4\n\ bl ConvertIntToDecimalStringN\n\ - ldr r4, ._590 + 12\n\ - ldr r1, ._590 + 16\n\ + ldr r4, ._590 + 12 @ gStringVar4\n\ + ldr r1, ._590 + 16 @ gOtherText_Coins\n\ add r0, r4, #0\n\ bl StringExpandPlaceholders\n\ add r0, r4, #0\n\ @@ -3338,34 +3338,34 @@ void debug_sub_812CDE4() and r0, r0, r1\n\ cmp r0, #0\n\ beq ._592 @cond_branch\n\ - ldr r0, ._594\n\ - ldr r2, ._594 + 4\n\ + ldr r0, ._594 @ gSaveBlock1\n\ + ldr r2, ._594 + 4 @ gTasks\n\ lsl r1, r3, #0x2\n\ add r1, r1, r3\n\ lsl r1, r1, #0x3\n\ add r1, r1, r2\n\ ldrh r2, [r1, #0x22]\n\ - ldr r3, ._594 + 8\n\ + ldr r3, ._594 + 8 @ 0x494\n\ add r0, r0, r3\n\ mov r5, #0x0\n\ strh r2, [r0]\n\ - ldr r0, ._594 + 12\n\ + ldr r0, ._594 + 12 @ Task_Roulette_0\n\ str r0, [r1]\n\ - ldr r0, ._594 + 16\n\ + ldr r0, ._594 + 16 @ gStringVar1\n\ mov r2, #0x22\n\ ldsh r1, [r1, r2]\n\ mov r2, #0x1\n\ mov r3, #0x4\n\ bl ConvertIntToDecimalStringN\n\ - ldr r4, ._594 + 20\n\ - ldr r1, ._594 + 24\n\ + ldr r4, ._594 + 20 @ gStringVar4\n\ + ldr r1, ._594 + 24 @ gOtherText_Coins\n\ add r0, r4, #0\n\ bl StringExpandPlaceholders\n\ add r0, r4, #0\n\ mov r1, #0x9\n\ mov r2, #0x1\n\ bl MenuPrint_RightAligned\n\ - ldr r0, ._594 + 28\n\ + ldr r0, ._594 + 28 @ unk_2039560\n\ strb r5, [r0]\n\ b ._596\n\ ._595:\n\ @@ -3384,33 +3384,33 @@ void debug_sub_812CDE4() and r0, r0, r1\n\ cmp r0, #0\n\ beq ._596 @cond_branch\n\ - ldr r0, ._597\n\ - ldr r2, ._597 + 4\n\ + ldr r0, ._597 @ gSaveBlock1\n\ + ldr r2, ._597 + 4 @ gTasks\n\ lsl r1, r4, #0x2\n\ add r1, r1, r4\n\ lsl r1, r1, #0x3\n\ add r1, r1, r2\n\ ldrh r2, [r1, #0x22]\n\ - ldr r3, ._597 + 8\n\ + ldr r3, ._597 + 8 @ 0x494\n\ add r0, r0, r3\n\ strh r2, [r0]\n\ - ldr r0, ._597 + 12\n\ + ldr r0, ._597 + 12 @ Task_Roulette_0\n\ str r0, [r1]\n\ - ldr r0, ._597 + 16\n\ + ldr r0, ._597 + 16 @ gStringVar1\n\ mov r2, #0x22\n\ ldsh r1, [r1, r2]\n\ mov r2, #0x1\n\ mov r3, #0x4\n\ bl ConvertIntToDecimalStringN\n\ - ldr r4, ._597 + 20\n\ - ldr r1, ._597 + 24\n\ + ldr r4, ._597 + 20 @ gStringVar4\n\ + ldr r1, ._597 + 24 @ gOtherText_Coins\n\ add r0, r4, #0\n\ bl StringExpandPlaceholders\n\ add r0, r4, #0\n\ mov r1, #0x9\n\ mov r2, #0x1\n\ bl MenuPrint_RightAligned\n\ - ldr r1, ._597 + 28\n\ + ldr r1, ._597 + 28 @ unk_2039560\n\ mov r0, #0x1\n\ strb r0, [r1]\n\ ._596:\n\ @@ -3437,13 +3437,13 @@ void debug_sub_812CFE8() push {r4, r5, lr}\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ - ldr r2, ._600\n\ + ldr r2, ._600 @ gTasks\n\ lsl r1, r0, #0x2\n\ add r1, r1, r0\n\ lsl r1, r1, #0x3\n\ add r5, r1, r2\n\ - ldr r0, ._600 + 4\n\ - ldr r1, ._600 + 8\n\ + ldr r0, ._600 + 4 @ gSaveBlock1\n\ + ldr r1, ._600 + 8 @ 0x494\n\ add r0, r0, r1\n\ ldrh r0, [r0]\n\ strh r0, [r5, #0x22]\n\ @@ -3452,20 +3452,20 @@ void debug_sub_812CFE8() and r1, r1, r0\n\ cmp r1, #0\n\ beq ._599 @cond_branch\n\ - ldr r0, ._600 + 12\n\ + ldr r0, ._600 + 12 @ gSpecialVar_0x8004\n\ ldrh r1, [r0]\n\ mov r2, #0x80\n\ orr r1, r1, r2\n\ strh r1, [r0]\n\ ._599:\n\ - ldr r0, ._600 + 16\n\ + ldr r0, ._600 + 16 @ gStringVar1\n\ mov r2, #0x22\n\ ldsh r1, [r5, r2]\n\ mov r2, #0x1\n\ mov r3, #0x4\n\ bl ConvertIntToDecimalStringN\n\ - ldr r4, ._600 + 20\n\ - ldr r1, ._600 + 24\n\ + ldr r4, ._600 + 20 @ gStringVar4\n\ + ldr r1, ._600 + 24 @ gOtherText_Coins\n\ add r0, r4, #0\n\ bl StringExpandPlaceholders\n\ mov r0, #0x0\n\ @@ -3482,11 +3482,11 @@ void debug_sub_812CFE8() mov r2, #0x1d\n\ mov r3, #0x13\n\ bl Menu_DrawStdWindowFrame\n\ - ldr r0, ._600 + 28\n\ + ldr r0, ._600 + 28 @ gUnknown_Debug_0842510D\n\ mov r1, #0x1\n\ mov r2, #0xf\n\ bl Menu_PrintText\n\ - ldr r0, ._600 + 32\n\ + ldr r0, ._600 + 32 @ debug_sub_812CDE4\n\ str r0, [r5]\n\ pop {r4, r5}\n\ pop {r0}\n\ @@ -3514,14 +3514,14 @@ void PlayRoulette(void) asm("\ push {lr}\n\ bl ScriptContext2_Enable\n\ - ldr r1, ._604\n\ + ldr r1, ._604 @ unk_2039560\n\ mov r0, #0x0\n\ strb r0, [r1]\n\ - ldr r0, ._604 + 4\n\ + ldr r0, ._604 + 4 @ unk_203955C\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._602 @cond_branch\n\ - ldr r0, ._604 + 8\n\ + ldr r0, ._604 + 8 @ debug_sub_812CFE8\n\ mov r1, #0x0\n\ bl CreateTask\n\ b ._603\n\ @@ -3532,18 +3532,18 @@ void PlayRoulette(void) .word unk_203955C\n\ .word debug_sub_812CFE8+1\n\ ._602:\n\ - ldr r0, ._606\n\ + ldr r0, ._606 @ Task_Roulette_0\n\ mov r1, #0x0\n\ bl CreateTask\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ - ldr r2, ._606 + 4\n\ + ldr r2, ._606 + 4 @ gTasks\n\ lsl r1, r0, #0x2\n\ add r1, r1, r0\n\ lsl r1, r1, #0x3\n\ add r1, r1, r2\n\ - ldr r0, ._606 + 8\n\ - ldr r2, ._606 + 12\n\ + ldr r0, ._606 + 8 @ gSaveBlock1\n\ + ldr r2, ._606 + 12 @ 0x494\n\ add r0, r0, r2\n\ ldrh r0, [r0]\n\ strh r0, [r1, #0x22]\n\ @@ -4479,10 +4479,10 @@ void debug_sub_812E698() and r1, r1, r0\n\ cmp r1, #0\n\ beq ._837 @cond_branch\n\ - ldr r4, ._839\n\ + ldr r4, ._839 @ 0x2019000\n\ add r1, r4, #0\n\ add r1, r1, #0x8c\n\ - ldr r0, ._839 + 4\n\ + ldr r0, ._839 + 4 @ 0x0\n\ str r0, [r1]\n\ add r0, r4, #0\n\ add r0, r0, #0x7e\n\ @@ -4494,7 +4494,7 @@ void debug_sub_812E698() add r1, r1, #0x7f\n\ strb r0, [r1]\n\ add r1, r4, #0\n\ - ldr r4, ._839 + 8\n\ + ldr r4, ._839 + 8 @ gUnknown_083F8DF4\n\ b ._838\n\ ._840:\n\ .align 2, 0\n\ @@ -4503,10 +4503,10 @@ void debug_sub_812E698() .word 0x0\n\ .word gUnknown_083F8DF4\n\ ._837:\n\ - ldr r6, ._841\n\ + ldr r6, ._841 @ 0x2019000\n\ add r5, r6, #0\n\ add r5, r5, #0x8c\n\ - ldr r4, ._841 + 4\n\ + ldr r4, ._841 + 4 @ gUnknown_083F8DF4\n\ ldrb r0, [r6, #0x4]\n\ lsl r0, r0, #0x1e\n\ lsr r0, r0, #0x19\n\ @@ -4534,9 +4534,9 @@ void debug_sub_812E698() ldrb r0, [r0, #0x2]\n\ strh r0, [r7, #0x32]\n\ add r1, r1, #0x98\n\ - ldr r0, ._841 + 8\n\ + ldr r0, ._841 + 8 @ 0x3dae147b\n\ str r0, [r1]\n\ - ldr r0, ._841 + 12\n\ + ldr r0, ._841 + 12 @ sub_8118D2C\n\ str r0, [r7, #0x1c]\n\ mov r0, #0x5\n\ strh r0, [r7, #0x30]\n\ @@ -4839,12 +4839,12 @@ void sub_8118F8C(struct Sprite *sprite) push {r6, r7}\n\ add r6, r0, #0\n\ bl sub_8118724\n\ - ldr r5, ._868\n\ + ldr r5, ._868 @ 0x2019000\n\ mov r0, #0x8c\n\ add r0, r0, r5\n\ mov r8, r0\n\ ldr r0, [r0]\n\ - ldr r1, ._868 + 4\n\ + ldr r1, ._868 + 4 @ 0x3f000000\n\ bl __gtsf2\n\ cmp r0, #0\n\ bgt ._874 @cond_branch\n\ @@ -4857,9 +4857,9 @@ void sub_8118F8C(struct Sprite *sprite) bne ._864 @cond_branch\n\ add r1, r5, #0\n\ add r1, r1, #0x90\n\ - ldr r0, ._868 + 8\n\ + ldr r0, ._868 + 8 @ 0x0\n\ str r0, [r1]\n\ - ldr r1, ._868 + 12\n\ + ldr r1, ._868 + 12 @ gUnknown_083F8DF4\n\ mov r9, r1\n\ ldrb r0, [r5, #0x4]\n\ lsl r7, r0, #0x1e\n\ @@ -4872,7 +4872,7 @@ void sub_8118F8C(struct Sprite *sprite) add r5, r0, #0\n\ cmp r4, #0\n\ bge ._865 @cond_branch\n\ - ldr r1, ._868 + 16\n\ + ldr r1, ._868 + 16 @ 0x43800000\n\ bl __addsf3\n\ add r5, r0, #0\n\ ._865:\n\ @@ -4892,11 +4892,11 @@ void sub_8118F8C(struct Sprite *sprite) str r0, [r1]\n\ mov r0, #0x4\n\ strh r0, [r6, #0x30]\n\ - ldr r0, ._868 + 20\n\ + ldr r0, ._868 + 20 @ unk_2039560\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._866 @cond_branch\n\ - ldr r0, ._868 + 24\n\ + ldr r0, ._868 + 24 @ debug_sub_812E698\n\ str r0, [r6, #0x1c]\n\ b ._874\n\ ._869:\n\ @@ -4910,7 +4910,7 @@ void sub_8118F8C(struct Sprite *sprite) .word unk_2039560\n\ .word debug_sub_812E698+1\n\ ._866:\n\ - ldr r0, ._871\n\ + ldr r0, ._871 @ sub_8118DE4\n\ str r0, [r6, #0x1c]\n\ b ._874\n\ ._872:\n\ @@ -4921,7 +4921,7 @@ void sub_8118F8C(struct Sprite *sprite) add r6, r5, #0\n\ add r6, r6, #0x90\n\ ldr r0, [r6]\n\ - ldr r4, ._875\n\ + ldr r4, ._875 @ 0x0\n\ add r1, r4, #0\n\ bl __nesf2\n\ cmp r0, #0\n\ @@ -4939,8 +4939,8 @@ void sub_8118F8C(struct Sprite *sprite) add r4, r4, #0x98\n\ ldr r0, [r4]\n\ bl __extendsfdf2\n\ - ldr r2, ._875 + 4\n\ - ldr r3, ._875 + 8\n\ + ldr r2, ._875 + 4 @ 0x3ff33333\n\ + ldr r3, ._875 + 8 @ 0x33333333\n\ bl __divdf3\n\ bl __truncdfsf2\n\ str r0, [r4]\n\ -- cgit v1.2.3 From 6237099104e25f606a5ebde108d2d41ae8646869 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 17:10:13 -0500 Subject: match sub_8115238 --- src/roulette.c | 203 ++++----------------------------------------------------- 1 file changed, 13 insertions(+), 190 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 41e8ef77f..d5c4d4433 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -348,22 +348,20 @@ void sub_8115124(void) REG_BG0CNT = 0x1F08; DmaFill16(3, 0x0, (void *)(VRAM + 0xF9C0), 0x340); eRoulette->var28 = 0x0; - break; case 0x0: + break; } } -#ifdef NONMATCHING void sub_8115238(void) { u8 i; u32 temp; - struct PlttData t; - struct PlttData *unfaded; - struct PlttData *faded; struct StructgUnknown_083F8DF4 *s0; - struct PlttData arr[0x3]; // the third is never used ? - memcpy(&arr, &gUnknown_083F8EC4, 0x6); + u16 arr[0x3]; // the third is never used ? + + memcpy(arr, &gUnknown_083F8EC4, 0x6); + // u16 arr[] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; memset(eRoulette, 0x0, 0x17C); eRoulette->var04_0 = (gSpecialVar_0x8004 & 0x1); if (gSpecialVar_0x8004 & 0x80) @@ -371,25 +369,12 @@ void sub_8115238(void) s0 = &gUnknown_083F8DF4[0]; eRoulette->var22 = s0[eRoulette->var04_0].var03; eRoulette->var23 = s0[eRoulette->var04_0].var04; - temp = gUnknown_083F8DF0[eRoulette->var04_0 + eRoulette->var04_7 * 2]; - eRoulette->var19 = temp; + eRoulette->var19 = temp = gUnknown_083F8DF0[eRoulette->var04_0 + eRoulette->var04_7 * 2]; eRoulette->var1A_4 = 0x1; if (temp == 0x1) - { - unfaded = (struct PlttData *)&gPlttBufferUnfaded[0]; - faded = (struct PlttData *)&gPlttBufferFaded[0]; - t = arr[0]; - } + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[0]; else - { - unfaded = (struct PlttData *)&gPlttBufferUnfaded[0]; - faded = (struct PlttData *)&gPlttBufferFaded[0]; - t = arr[1]; - } - faded[0x51] = t; - faded[0x0] = faded[0x51]; - unfaded[0x51] = t; - unfaded[0x0] = t; + gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1]; sub_8124918((&eRoulette->varB8)); for (i = 0; i < 0xD; i++) sub_812492C((&eRoulette->varB8), i, (struct UnkStruct1 *)&gUnknown_083F8E34[i * 8]); @@ -397,178 +382,16 @@ void sub_8115238(void) { switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2)) { - case SPECIES_TAILLOW: - eRoulette->var02 |= 0x2; - break; case SPECIES_SHROOMISH: - eRoulette->var02 |= 0x1; - break; + eRoulette->var02 |= 0x1; + break; + case SPECIES_TAILLOW: + eRoulette->var02 |= 0x2; + break; } } RtcCalcLocalTime(); } -#else -__attribute__((naked)) -void sub_8115238(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x8\n\ - ldr r1, _081152C0 @ =gUnknown_083F8EC4\n\ - mov r0, sp\n\ - movs r2, 0x6\n\ - bl memcpy\n\ - ldr r5, _081152C4 @ =0x02019000\n\ - movs r2, 0xBE\n\ - lsls r2, 1\n\ - adds r0, r5, 0\n\ - movs r1, 0\n\ - bl memset\n\ - ldr r0, _081152C8 @ =gSpecialVar_0x8004\n\ - ldrh r2, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r2\n\ - ldrb r1, [r5, 0x4]\n\ - movs r3, 0x4\n\ - negs r3, r3\n\ - ands r3, r1\n\ - orrs r3, r0\n\ - strb r3, [r5, 0x4]\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _08115276\n\ - movs r0, 0x80\n\ - orrs r3, r0\n\ - strb r3, [r5, 0x4]\n\ - _08115276:\n\ - ldr r3, _081152CC @ =gUnknown_083F8DF4\n\ - ldrb r2, [r5, 0x4]\n\ - lsls r1, r2, 30\n\ - lsrs r0, r1, 25\n\ - adds r0, r3\n\ - ldrb r0, [r0, 0x3]\n\ - adds r4, r5, 0\n\ - adds r4, 0x22\n\ - strb r0, [r4]\n\ - lsrs r0, r1, 25\n\ - adds r0, r3\n\ - ldrb r0, [r0, 0x4]\n\ - adds r3, r5, 0\n\ - adds r3, 0x23\n\ - strb r0, [r3]\n\ - ldr r0, _081152D0 @ =gUnknown_083F8DF0\n\ - lsrs r1, 30\n\ - lsls r2, 24\n\ - lsrs r2, 31\n\ - lsls r2, 1\n\ - adds r1, r2\n\ - adds r1, r0\n\ - ldrb r2, [r1]\n\ - strb r2, [r5, 0x19]\n\ - ldrb r1, [r5, 0x1A]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - movs r1, 0x10\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x1A]\n\ - cmp r2, 0x1\n\ - bne _081152DC\n\ - ldr r4, _081152D4 @ =gPlttBufferUnfaded\n\ - ldr r3, _081152D8 @ =gPlttBufferFaded\n\ - mov r0, sp\n\ - ldrh r2, [r0]\n\ - b _081152E4\n\ - .align 2, 0\n\ - _081152C0: .4byte gUnknown_083F8EC4\n\ - _081152C4: .4byte 0x02019000\n\ - _081152C8: .4byte gSpecialVar_0x8004\n\ - _081152CC: .4byte gUnknown_083F8DF4\n\ - _081152D0: .4byte gUnknown_083F8DF0\n\ - _081152D4: .4byte gPlttBufferUnfaded\n\ - _081152D8: .4byte gPlttBufferFaded\n\ - _081152DC:\n\ - ldr r4, _08115348 @ =gPlttBufferUnfaded\n\ - ldr r3, _0811534C @ =gPlttBufferFaded\n\ - mov r0, sp\n\ - ldrh r2, [r0, 0x2]\n\ - _081152E4:\n\ - adds r0, r3, 0\n\ - adds r0, 0xA2\n\ - strh r2, [r0]\n\ - ldr r1, _08115350 @ =0x0000ffff\n\ - adds r0, r1, 0\n\ - ands r0, r2\n\ - strh r0, [r3]\n\ - ands r0, r1\n\ - adds r2, r4, 0\n\ - adds r2, 0xA2\n\ - strh r0, [r2]\n\ - ands r0, r1\n\ - strh r0, [r4]\n\ - ldr r0, _08115354 @ =0x020190b8\n\ - bl sub_8124918\n\ - movs r4, 0\n\ - ldr r5, _08115358 @ =gUnknown_083F8E34\n\ - _08115308:\n\ - lsls r2, r4, 3\n\ - adds r2, r5\n\ - ldr r0, _08115354 @ =0x020190b8\n\ - adds r1, r4, 0\n\ - bl sub_812492C\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0xC\n\ - bls _08115308\n\ - movs r4, 0\n\ - ldr r5, _0811535C @ =0x02019000\n\ - _08115322:\n\ - movs r0, 0x64\n\ - muls r0, r4\n\ - ldr r1, _08115360 @ =gPlayerParty\n\ - adds r0, r1\n\ - movs r1, 0x41\n\ - bl GetMonData\n\ - adds r1, r0, 0\n\ - movs r0, 0x98\n\ - lsls r0, 1\n\ - cmp r1, r0\n\ - beq _08115364\n\ - adds r0, 0x2\n\ - cmp r1, r0\n\ - bne _0811536C\n\ - ldrb r0, [r5, 0x2]\n\ - movs r1, 0x1\n\ - b _08115368\n\ - .align 2, 0\n\ - _08115348: .4byte gPlttBufferUnfaded\n\ - _0811534C: .4byte gPlttBufferFaded\n\ - _08115350: .4byte 0x0000ffff\n\ - _08115354: .4byte 0x020190b8\n\ - _08115358: .4byte gUnknown_083F8E34\n\ - _0811535C: .4byte 0x02019000\n\ - _08115360: .4byte gPlayerParty\n\ - _08115364:\n\ - ldrb r0, [r5, 0x2]\n\ - movs r1, 0x2\n\ - _08115368:\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x2]\n\ - _0811536C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x5\n\ - bls _08115322\n\ - bl RtcCalcLocalTime\n\ - add sp, 0x8\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif void sub_8115384(void) { -- cgit v1.2.3 From cce651aabe5d00d45ca0a11055e278f40eb774cc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 17:54:25 -0500 Subject: match sub_8116100 --- src/roulette.c | 293 +++++---------------------------------------------------- 1 file changed, 26 insertions(+), 267 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index d5c4d4433..fa8fcf37c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1,4 +1,5 @@ #include "global.h" +#include "random.h" #include "ewram.h" #include "field_fadetransition.h" #include "constants/game_stat.h" @@ -657,9 +658,9 @@ void sub_8115B58(u8 r0) gTasks[r0].data[0x1] = z; PlaySE(SE_SELECT); sub_8124D3C((&eRoulette->varB8), 0xFFFF); - (&eRoulette->varB8)->var04[0xF].var00_7 = 0x0; - (&eRoulette->varB8)->var04[0xE].var00_7 = 0x0; - (&eRoulette->varB8)->var04[0xD].var00_7 = 0x0; + eRoulette->varB8.var04[0xF].var00_7 = 0x0; + eRoulette->varB8.var04[0xE].var00_7 = 0x0; + eRoulette->varB8.var04[0xD].var00_7 = 0x0; sub_8116EF8(gTasks[r0].data[0x4]); for (i = 0; i < 0x4; i++) { @@ -855,7 +856,6 @@ u8 sub_8115F58(u16 r0, u16 r1) } } -#ifdef NONMATCHING void sub_8116100(u8 taskid) { u8 randf; @@ -865,14 +865,14 @@ void sub_8116100(u8 taskid) u16 rand; u16 randmod; u16 angles[0x4]; // angles in 90 degree steps - u8 zero = 0x0; + g = 0x0; memcpy(angles, &gUnknown_083F8ECE, 0x8); rand = Random(); randmod = rand % 0x64; eRoulette->var7C = gTasks[taskid].data[0x6]; - eRoulette->var7F = zero; - eRoulette->var7E = zero; - eRoulette->var7D = zero; + eRoulette->var7F = g; + eRoulette->var7E = g; + eRoulette->var7D = g; randf = sub_8115F58(gTasks[taskid].data[0x8], rand); randfinal = (rand % randf) - (randf / 2); if (gLocalTime.hours < 0xD) @@ -883,263 +883,22 @@ void sub_8116100(u8 taskid) r5 *= 2; else r5 = (1 - r5) * 2; - g = (&gUnknown_083F8DF4[eRoulette->var04_0])->var1A; - eRoulette->var80 = (g + randfinal); + eRoulette->var80 = g = gUnknown_083F8DF4[eRoulette->var04_0].var1A + randfinal; // - g = ((float)(u16)(g + randfinal)) / 5.0f; + g = S16TOPOSFLOAT(g) / 5.0f; eRoulette->var82 = g * 3; eRoulette->var84 = g; eRoulette->var86 = g; // - eRoulette->var88 = (float)(angles[(rand & 0x1) + r5]); - eRoulette->var8C = (float)((&gUnknown_083F8DF4[eRoulette->var04_0])->var18); - eRoulette->var90 = ((eRoulette->var8C * 0.5f) - eRoulette->var8C) / (float)(u16)(g * 3); + eRoulette->var88 = S16TOPOSFLOAT(angles[(rand & 0x1) + r5]); + eRoulette->var8C = S16TOPOSFLOAT(gUnknown_083F8DF4[eRoulette->var04_0].var18); + eRoulette->var90 = ((eRoulette->var8C * 0.5f) - eRoulette->var8C) / S16TOPOSFLOAT(g * 3); eRoulette->var94 = 68.0f; eRoulette->var9C = 0.0f; - eRoulette->var98 = -(8.0f / (float)(u16)(g * 3)); + eRoulette->var98 = -(8.0f / S16TOPOSFLOAT(g * 3)); eRoulette->varA0 = 36.0f; - gTasks[taskid].func = &sub_8116308; -} -#else -__attribute__((naked)) -void sub_8116100(u8 taskid) -{ -asm(".syntax unified\n\ -push {r4-r7,lr}\n\ -mov r7, r10\n\ -mov r6, r9\n\ -mov r5, r8\n\ -push {r5-r7}\n\ -sub sp, 0x8\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -mov r9, r0\n\ -movs r4, 0\n\ -ldr r1, _08116188 @ =gUnknown_083F8ECE\n\ -mov r0, sp\n\ -movs r2, 0x8\n\ -bl memcpy\n\ -bl Random\n\ -lsls r0, 16\n\ -lsrs r7, r0, 16\n\ -adds r0, r7, 0\n\ -movs r1, 0x64\n\ -bl __umodsi3\n\ -lsls r0, 16\n\ -lsrs r6, r0, 16\n\ -ldr r3, _0811618C @ =0x02019000\n\ -ldr r1, _08116190 @ =gTasks\n\ -mov r2, r9\n\ -lsls r0, r2, 2\n\ -add r0, r9\n\ -lsls r0, 3\n\ -adds r0, r1\n\ -ldrh r2, [r0, 0x14]\n\ -adds r1, r3, 0\n\ -adds r1, 0x7C\n\ -strb r2, [r1]\n\ -adds r1, 0x3\n\ -strb r4, [r1]\n\ -subs r1, 0x1\n\ -strb r4, [r1]\n\ -subs r1, 0x1\n\ -strb r4, [r1]\n\ -ldrh r0, [r0, 0x18]\n\ -adds r1, r7, 0\n\ -bl sub_8115F58\n\ -adds r4, r0, 0\n\ -lsls r4, 24\n\ -lsrs r1, r4, 24\n\ -adds r0, r7, 0\n\ -bl __modsi3\n\ -lsrs r4, 25\n\ -subs r0, r4\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r0, _08116194 @ =gLocalTime\n\ -ldrb r0, [r0, 0x2]\n\ -lsls r0, 24\n\ -asrs r0, 24\n\ -movs r5, 0x1\n\ -cmp r0, 0xC\n\ -bgt _08116180\n\ -movs r5, 0\n\ -_08116180:\n\ -cmp r6, 0x4F\n\ -bhi _08116198\n\ -lsls r0, r5, 25\n\ -b _081161A2\n\ -.align 2, 0\n\ -_08116188: .4byte gUnknown_083F8ECE\n\ -_0811618C: .4byte 0x02019000\n\ -_08116190: .4byte gTasks\n\ -_08116194: .4byte gLocalTime\n\ -_08116198:\n\ -lsls r1, r5, 24\n\ -asrs r1, 24\n\ -movs r0, 0x1\n\ -subs r0, r1\n\ -lsls r0, 25\n\ -_081161A2:\n\ -lsrs r5, r0, 24\n\ -ldr r6, _081162D8 @ =0x02019000\n\ -ldrb r0, [r6, 0x4]\n\ -lsls r0, 30\n\ -mov r10, r0\n\ -lsrs r0, 25\n\ -ldr r1, _081162DC @ =gUnknown_083F8DF4\n\ -adds r0, r1\n\ -lsls r4, 24\n\ -asrs r4, 24\n\ -ldrh r0, [r0, 0x1A]\n\ -adds r4, r0\n\ -adds r0, r6, 0\n\ -adds r0, 0x80\n\ -strh r4, [r0]\n\ -lsls r4, 16\n\ -asrs r4, 16\n\ -adds r0, r4, 0\n\ -bl __floatsisf\n\ -cmp r4, 0\n\ -bge _081161D4\n\ -ldr r1, _081162E0 @ =0x47800000\n\ -bl __addsf3\n\ -_081161D4:\n\ -ldr r1, _081162E4 @ =0x40a00000\n\ -bl __divsf3\n\ -bl __fixunssfsi\n\ -lsls r0, 16\n\ -lsrs r4, r0, 16\n\ -lsls r0, r4, 1\n\ -adds r0, r4\n\ -mov r8, r0\n\ -adds r0, r6, 0\n\ -adds r0, 0x82\n\ -mov r2, r8\n\ -strh r2, [r0]\n\ -adds r0, 0x2\n\ -strh r4, [r0]\n\ -adds r0, 0x2\n\ -strh r4, [r0]\n\ -movs r0, 0x1\n\ -ands r0, r7\n\ -lsls r1, r5, 24\n\ -asrs r1, 24\n\ -adds r0, r1\n\ -lsls r0, 1\n\ -add r0, sp\n\ -movs r1, 0\n\ -ldrsh r4, [r0, r1]\n\ -adds r0, r4, 0\n\ -bl __floatsisf\n\ -cmp r4, 0\n\ -bge _0811621A\n\ -ldr r1, _081162E0 @ =0x47800000\n\ -bl __addsf3\n\ -_0811621A:\n\ -ldr r2, _081162E8 @ =0x02019088\n\ -str r0, [r2]\n\ -adds r7, r6, 0\n\ -adds r7, 0x8C\n\ -mov r1, r10\n\ -lsrs r0, r1, 25\n\ -ldr r2, _081162DC @ =gUnknown_083F8DF4\n\ -adds r0, r2\n\ -movs r1, 0x18\n\ -ldrsh r4, [r0, r1]\n\ -adds r0, r4, 0\n\ -bl __floatsisf\n\ -adds r5, r0, 0\n\ -cmp r4, 0\n\ -bge _08116242\n\ -ldr r1, _081162E0 @ =0x47800000\n\ -bl __addsf3\n\ -adds r5, r0, 0\n\ -_08116242:\n\ -str r5, [r7]\n\ -adds r7, r6, 0\n\ -adds r7, 0x90\n\ -ldr r1, _081162EC @ =0x3f000000\n\ -adds r0, r5, 0\n\ -bl __mulsf3\n\ -adds r1, r5, 0\n\ -bl __subsf3\n\ -adds r5, r0, 0\n\ -mov r2, r8\n\ -lsls r0, r2, 16\n\ -asrs r4, r0, 16\n\ -adds r0, r4, 0\n\ -bl __floatsisf\n\ -adds r2, r0, 0\n\ -cmp r4, 0\n\ -bge _08116272\n\ -ldr r1, _081162E0 @ =0x47800000\n\ -bl __addsf3\n\ -adds r2, r0, 0\n\ -_08116272:\n\ -adds r0, r5, 0\n\ -adds r1, r2, 0\n\ -bl __divsf3\n\ -str r0, [r7]\n\ -adds r1, r6, 0\n\ -adds r1, 0x94\n\ -ldr r0, _081162F0 @ =0x42880000\n\ -str r0, [r1]\n\ -adds r1, 0x8\n\ -ldr r0, _081162F4 @ =0x00000000\n\ -str r0, [r1]\n\ -adds r5, r6, 0\n\ -adds r5, 0x98\n\ -adds r0, r4, 0\n\ -bl __floatsisf\n\ -adds r2, r0, 0\n\ -cmp r4, 0\n\ -bge _081162A2\n\ -ldr r1, _081162E0 @ =0x47800000\n\ -bl __addsf3\n\ -adds r2, r0, 0\n\ -_081162A2:\n\ -ldr r0, _081162F8 @ =0x41000000\n\ -adds r1, r2, 0\n\ -bl __divsf3\n\ -bl __negsf2\n\ -str r0, [r5]\n\ -adds r1, r6, 0\n\ -adds r1, 0xA0\n\ -ldr r0, _081162FC @ =0x42100000\n\ -str r0, [r1]\n\ -ldr r1, _08116300 @ =gTasks\n\ -mov r2, r9\n\ -lsls r0, r2, 2\n\ -add r0, r9\n\ -lsls r0, 3\n\ -adds r0, r1\n\ -ldr r1, _08116304 @ =sub_8116308\n\ -str r1, [r0]\n\ -add sp, 0x8\n\ -pop {r3-r5}\n\ -mov r8, r3\n\ -mov r9, r4\n\ -mov r10, r5\n\ -pop {r4-r7}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_081162D8: .4byte 0x02019000\n\ -_081162DC: .4byte gUnknown_083F8DF4\n\ -_081162E0: .4byte 0x47800000\n\ -_081162E4: .4byte 0x40a00000\n\ -_081162E8: .4byte 0x02019088\n\ -_081162EC: .4byte 0x3f000000\n\ -_081162F0: .4byte 0x42880000\n\ -_081162F4: .4byte 0x00000000\n\ -_081162F8: .4byte 0x41000000\n\ -_081162FC: .4byte 0x42100000\n\ -_08116300: .4byte gTasks\n\ -_08116304: .4byte sub_8116308\n\ -.syntax divided\n"); + gTasks[taskid].func = sub_8116308; } -#endif void sub_8116308(u8 taskid) { @@ -1147,7 +906,7 @@ void sub_8116308(u8 taskid) eRoulette->var03_7 = 1; index = eRoulette->var3C[eRoulette->var7C]; eRoulette->var38 = &gSprites[index]; - (&gSprites[index])->callback = &sub_81191F4; + eRoulette->var38->callback = sub_81191F4; gTasks[taskid].data[0x6]++; gTasks[taskid].data[0x8]++; sub_81182F8(0x6 - gTasks[taskid].data[0x6]); @@ -1333,9 +1092,9 @@ void sub_811677C(u8 taskid) void sub_81167F4(u8 taskid) { sub_8124D3C((&eRoulette->varB8), 0xFFFF); - (&eRoulette->varB8)->var04[0xF].var00_7 = 0x0; - (&eRoulette->varB8)->var04[0xE].var00_7 = 0x0; - (&eRoulette->varB8)->var04[0xD].var00_7 = 0x0; + eRoulette->varB8.var04[0xF].var00_7 = 0x0; + eRoulette->varB8.var04[0xE].var00_7 = 0x0; + eRoulette->varB8.var04[0xD].var00_7 = 0x0; gSprites[eRoulette->var3C[0x7 + gUnknown_083F8C00[gTasks[taskid].data[0xC]].var00]].invisible = TRUE; gTasks[taskid].func = &sub_8116880; } @@ -3454,18 +3213,18 @@ void sub_8118DE4(struct Sprite *sprite) if (gUnknown_083F8D90[t].var04 & eRoulette->var08) { sprite->data[0x0] = 0x1; - sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var02; + sprite->data[0x2] = gUnknown_083F8DF4[eRoulette->var04_0].var02; } else { sprite->data[0x0] = gUnknown_083F8D90[t].var04 & eRoulette->var08; if (eRoulette->var04_0) { - sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var01; + sprite->data[0x2] = gUnknown_083F8DF4[eRoulette->var04_0].var01; } else { - sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var02; + sprite->data[0x2] = gUnknown_083F8DF4[eRoulette->var04_0].var02; if (z) { eRoulette->var8C = 1.5f; @@ -3701,7 +3460,7 @@ void sub_8118F8C(struct Sprite *sprite) eRoulette->var90 = 0.0f; p = &gUnknown_083F8DF4[0]; eRoulette->var8C -= ((float)p[eRoulette->var04_0].var03) - / ((float)(s16)((&p[eRoulette->var04_0])->var04 + 0x1)); + / ((float)(s16)(p[eRoulette->var04_0].var04 + 0x1)); sprite->data[0x1] = 0x4; sprite->callback = &sub_8118DE4; } @@ -3783,8 +3542,8 @@ void sub_8119224(struct Sprite *sprite) gSprites[eRoulette->var3C[0x37 + i]].data[0x5] = eRoulette->var3C[0x38]; gSprites[eRoulette->var3C[0x37 + i]].data[0x6] = eRoulette->var3C[0x39]; gSprites[eRoulette->var3C[0x37 + i]].data[0x2] = t; - gSprites[eRoulette->var3C[0x37 + i]].data[0x3] = (sprite->data[0x7] * (&gUnknown_083F8DF4[eRoulette->var04_0])->var01) + - ((&gUnknown_083F8DF4[eRoulette->var04_0])->var02 + 0xFFFF); + gSprites[eRoulette->var3C[0x37 + i]].data[0x3] = (sprite->data[0x7] * gUnknown_083F8DF4[eRoulette->var04_0].var01) + + (gUnknown_083F8DF4[eRoulette->var04_0].var02 + 0xFFFF); } gSprites[eRoulette->var3C[0x38]].coordOffsetEnabled = TRUE; eRoulette->var38 = sprite; @@ -3832,7 +3591,7 @@ void sub_811952C(struct Sprite *sprite) eRoulette->var7E = 0xFF; eRoulette->var88 = sprite->data[0x3]; eRoulette->var98 = 0.0f; - eRoulette->var8C = (&gUnknown_083F8DF4[eRoulette->var04_0])->var1C; //couldn't replicate load, same as sub_8118DE4 + eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C; //couldn't replicate load, same as sub_8118DE4 o = (eRoulette->var04_0 * 30 + 33) + (0x1 - eRoulette->var03_0) * 15; for (i = 0x0; i < 0x4; i++) { -- cgit v1.2.3 From 06f1fd1766f795bd938280aef062d3e07b94da8c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 18:07:13 -0500 Subject: match sub_8117380 --- src/roulette.c | 146 +++++++++------------------------------------------------ 1 file changed, 23 insertions(+), 123 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index fa8fcf37c..3fc7b08c2 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -614,6 +614,7 @@ u8 sub_8115A94(s16 *r0, u8 r1) s8 arr[0x4]; s8 t; memcpy(&arr, gUnknown_083F8ECA, 0x4); + // char arr[] = {-5, 5, -1, 1}; t = (u8)*r0; switch (r1) { @@ -861,12 +862,12 @@ void sub_8116100(u8 taskid) u8 randf; s8 randfinal; s8 r5; - u16 g; + u16 g = 0; u16 rand; u16 randmod; u16 angles[0x4]; // angles in 90 degree steps - g = 0x0; memcpy(angles, &gUnknown_083F8ECE, 0x8); + // u16 angles[] = {0, 180, 90, 270}; rand = Random(); randmod = rand % 0x64; eRoulette->var7C = gTasks[taskid].data[0x6]; @@ -1258,6 +1259,8 @@ u8 sub_8116D54(u8 taskid, u8 r1) u32 t1[0x3]; memcpy(t0, gUnknown_083F8ED8, 0x10); memcpy(t1, gUnknown_083F8EE8, 0xC); + // u32 t0[] = {67650, 135300, 270600, 541200}; + // u32 t1[] = {0x3e0, 0x7c00, 0xf8000}; if (r1 > 0xB) { return 0x0; @@ -2021,135 +2024,32 @@ _0811737C: .4byte 0x020189a4\n\ } #endif -#ifdef NONMATCHING u8 sub_8117380(u8 r0) { - u8 var0[0x5]; - u8 t; - u8 z; - memcpy(var0, gUnknown_083F8EF4, 0x5); - if (r0 > 0x13) - r0 = 0x0; + u8 var0[5]; + memcpy(var0, gUnknown_083F8EF4, 5); + // u8 var0[] = {0, 3, 4, 6, 12}; + if (r0 > 19) + r0 = 0; switch (gUnknown_083F8C00[r0].var01_0) { - case 0x3: - z = r0 / 0x5 - 0x1; - if (eRoulette->var16[z] > 0x3) + case 3: + r0 = r0 / 5 - 1; + if (eRoulette->var16[r0] > 3) return 0x0; - return var0[eRoulette->var16[z] + 0x1]; - case 0x4: - t = r0 - 0x1; - if (eRoulette->var12[t] > 0x2) - return 0x0; - return var0[eRoulette->var12[t] + 0x2]; - case 0xC: + return var0[eRoulette->var16[r0] + 1]; + case 4: + r0--; + if (eRoulette->var12[r0] > 2) + return 0; + return var0[eRoulette->var12[r0] + 2]; + case 12: if (eRoulette->var08 & gUnknown_083F8C00[r0].var08) - return 0x0; - return var0[0x4]; - default: + return 0; + return var0[4]; } - return 0x0; -} -#else -__attribute__((naked)) -u8 sub_8117380(u8 r0) -{ -asm(".syntax unified\n\ -push {r4,lr}\n\ -sub sp, 0x8\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r1, _081173B8 @ =gUnknown_083F8EF4\n\ -mov r0, sp\n\ -movs r2, 0x5\n\ -bl memcpy\n\ -cmp r4, 0x13\n\ -bls _08117398\n\ -movs r4, 0\n\ -_08117398:\n\ -ldr r3, _081173BC @ =gUnknown_083F8C00\n\ -lsls r0, r4, 2\n\ -adds r0, r4\n\ -lsls r2, r0, 2\n\ -adds r0, r2, r3\n\ -ldrb r0, [r0, 0x1]\n\ -lsls r0, 28\n\ -lsrs r0, 28\n\ -cmp r0, 0x4\n\ -beq _081173EC\n\ -cmp r0, 0x4\n\ -bgt _081173C0\n\ -cmp r0, 0x3\n\ -beq _081173C6\n\ -b _08117428\n\ -.align 2, 0\n\ -_081173B8: .4byte gUnknown_083F8EF4\n\ -_081173BC: .4byte gUnknown_083F8C00\n\ -_081173C0:\n\ -cmp r0, 0xC\n\ -beq _0811740C\n\ -b _08117428\n\ -_081173C6:\n\ -adds r0, r4, 0\n\ -movs r1, 0x5\n\ -bl __udivsi3\n\ -subs r0, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r0, _081173E8 @ =0x02019000\n\ -adds r0, 0x16\n\ -adds r1, r4, r0\n\ -ldrb r0, [r1]\n\ -cmp r0, 0x3\n\ -bhi _08117428\n\ -ldrb r0, [r1]\n\ -adds r0, 0x1\n\ -b _08117402\n\ -.align 2, 0\n\ -_081173E8: .4byte 0x02019000\n\ -_081173EC:\n\ -subs r0, r4, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r0, _08117408 @ =0x02019000\n\ -adds r0, 0x12\n\ -adds r1, r4, r0\n\ -ldrb r0, [r1]\n\ -cmp r0, 0x2\n\ -bhi _08117428\n\ -ldrb r0, [r1]\n\ -adds r0, 0x2\n\ -_08117402:\n\ -add r0, sp\n\ -ldrb r0, [r0]\n\ -b _0811742A\n\ -.align 2, 0\n\ -_08117408: .4byte 0x02019000\n\ -_0811740C:\n\ -ldr r1, _08117424 @ =0x02019000\n\ -adds r0, r3, 0\n\ -adds r0, 0x8\n\ -adds r0, r2, r0\n\ -ldr r1, [r1, 0x8]\n\ -ldr r0, [r0]\n\ -ands r1, r0\n\ -cmp r1, 0\n\ -bne _08117428\n\ -mov r0, sp\n\ -ldrb r0, [r0, 0x4]\n\ -b _0811742A\n\ -.align 2, 0\n\ -_08117424: .4byte 0x02019000\n\ -_08117428:\n\ -movs r0, 0\n\ -_0811742A:\n\ -add sp, 0x8\n\ -pop {r4}\n\ -pop {r1}\n\ -bx r1\n\ -.syntax divided\n"); + return 0; } -#endif void sub_8117434(void) { -- cgit v1.2.3 From 37c959432205d9c97a2dd8784132085d00bc50bb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 22:28:39 -0500 Subject: match sub_8116EF8 --- src/roulette.c | 387 ++++++--------------------------------------------------- 1 file changed, 38 insertions(+), 349 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 3fc7b08c2..3a0328d1c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1318,15 +1318,12 @@ u8 sub_8116E5C(u8 r0, u8 r1) return 0x0; } -#ifdef NONMATCHING // stack variable switched with a register variable void sub_8116EF8(u8 r0) { - u32 var0 = 0x0; - struct UnkStruct1 var1[0x3]; - u32 var2; + u16 var0 = 0x0; + u8 var2; u16 var3; - u32 var4; u8 i; switch(r0) { @@ -1336,373 +1333,65 @@ void sub_8116EF8(u8 r0) for (i = (r0 + 0x1); i < (r0 + 0x5); i++) if (!(eRoulette->var08 & gUnknown_083F8C00[i].var08)) var0 |= gUnknown_083F8C00[i].var10; - var0 &= 0xDFFF; - sub_8124CE8(&eRoulette->varB8, var0); + sub_8124CE8(&eRoulette->varB8, var0 &= 0xDFFF); break; default: - memcpy(var1, gUnknown_083F8E9C, 0x18); - if ((u8)(r0 - 0x1) < 0x4) - var2 = 0x3; + { + struct UnkStruct1 var1[0x3]; + memcpy(var1, gUnknown_083F8E9C, sizeof var1); + if (r0 > 0 && r0 < 5) + var2 = 3; else - var2 = 0x1; - var3 = ((r0 / 0x5) - 0x1); - switch((u8)r0 % 0x5) + var2 = 1; + var3 = r0 / 5 - 1; + switch (r0 % 5) { - case 0x1: - var3 = gSprites[eRoulette->var3C[0x7 + 0x0]].oam.paletteNum * 0x10; - break; - case 0x2: - var3 = gSprites[eRoulette->var3C[0x7 + 0x1]].oam.paletteNum * 0x10; - break; - case 0x3: - var3 = gSprites[eRoulette->var3C[0x7 + 0x2]].oam.paletteNum * 0x10; - break; - case 0x4: - var3 = gSprites[eRoulette->var3C[0x7 + 0x3]].oam.paletteNum * 0x10; - break; + case 0x1: + var3 = gSprites[eRoulette->var3C[7 + 0]].oam.paletteNum * 0x10; + break; + case 0x2: + var3 = gSprites[eRoulette->var3C[7 + 1]].oam.paletteNum * 0x10; + break; + case 0x3: + var3 = gSprites[eRoulette->var3C[7 + 2]].oam.paletteNum * 0x10; + break; + case 0x4: + var3 = gSprites[eRoulette->var3C[7 + 3]].oam.paletteNum * 0x10; + break; } - if (var2 == 0x1) + if (var2 == 1) { if (!(eRoulette->var08 & gUnknown_083F8C00[r0].var08)) { - var4 = (r0 / 0x5); - var1[var4 - 0x1].var02 += var3; - sub_812492C(&eRoulette->varB8, 0xD, &var1[var4 - 0x2]); - sub_8124CE8(&eRoulette->varB8, var0 |= gUnknown_083F8C00[r0].var10); + var1[r0 / 5 - 1].var02 += var3; + sub_812492C(&eRoulette->varB8, 13, &var1[r0 / 5 - 1]); } + else + return; } else { - for (i = 0; i < 0x3; i++) + for (i = 0; i < 3; i++) { - u8 var4 = i * 0x5 + r0 + 0x5; + u8 var4 = i * 5 + r0 + 5; if (!(eRoulette->var08 & gUnknown_083F8C00[var4].var08)) { - u8 var5 = (var4 / 0x5); - var1[var5 - 0x1].var02 += var3; - sub_812492C(&eRoulette->varB8, (u8)(0xD + i), &var1[var5 - 0x2]); - if (var2 == 0x3) + var1[var4 / 5 - 1].var02 += var3; + sub_812492C(&eRoulette->varB8, i + 13, &var1[var4 / 5 - 1]); + if (var2 == 3) var0 = gUnknown_083F8C00[var4].var10; var2--; } } - if (var2 != 0x2) - var0 = 0x0; - sub_8124CE8(&eRoulette->varB8, var0 |= gUnknown_083F8C00[r0].var10); + if (var2 != 2) + var0 = 0; } + sub_8124CE8(&eRoulette->varB8, var0 |= gUnknown_083F8C00[r0].var10); + break; + } } } -#else -__attribute__((naked)) -void sub_8116EF8(u8 r0) -{ -asm(".syntax unified\n\ -push {r4-r7,lr}\n\ -mov r7, r10\n\ -mov r6, r9\n\ -mov r5, r8\n\ -push {r5-r7}\n\ -sub sp, 0x20\n\ -lsls r0, 24\n\ -lsrs r6, r0, 24\n\ -movs r0, 0\n\ -str r0, [sp, 0x18]\n\ -cmp r6, 0xA\n\ -beq _08116F1E\n\ -cmp r6, 0xA\n\ -bgt _08116F1A\n\ -cmp r6, 0x5\n\ -beq _08116F1E\n\ -b _08116F7C\n\ -_08116F1A:\n\ -cmp r6, 0xF\n\ -bne _08116F7C\n\ -_08116F1E:\n\ -adds r0, r6, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -adds r0, r6, 0x5\n\ -ldr r7, _08116F70 @ =0x020190b8\n\ -cmp r4, r0\n\ -bge _08116F5E\n\ -adds r1, r7, 0\n\ -subs r1, 0xB8\n\ -ldr r3, _08116F74 @ =gUnknown_083F8C00\n\ -ldr r5, [r1, 0x8]\n\ -adds r6, r3, 0\n\ -adds r6, 0x8\n\ -adds r2, r0, 0\n\ -_08116F3A:\n\ -lsls r0, r4, 2\n\ -adds r0, r4\n\ -lsls r1, r0, 2\n\ -adds r0, r1, r6\n\ -ldr r0, [r0]\n\ -ands r0, r5\n\ -cmp r0, 0\n\ -bne _08116F54\n\ -adds r0, r1, r3\n\ -ldrh r0, [r0, 0x10]\n\ -ldr r1, [sp, 0x18]\n\ -orrs r1, r0\n\ -str r1, [sp, 0x18]\n\ -_08116F54:\n\ -adds r0, r4, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -cmp r4, r2\n\ -blt _08116F3A\n\ -_08116F5E:\n\ -ldr r0, _08116F78 @ =0x0000dfff\n\ -ldr r2, [sp, 0x18]\n\ -ands r2, r0\n\ -str r2, [sp, 0x18]\n\ -adds r0, r7, 0\n\ -adds r1, r2, 0\n\ -bl sub_8124CE8\n\ -b _0811713C\n\ -.align 2, 0\n\ -_08116F70: .4byte 0x020190b8\n\ -_08116F74: .4byte gUnknown_083F8C00\n\ -_08116F78: .4byte 0x0000dfff\n\ -_08116F7C:\n\ -mov r0, sp\n\ -ldr r1, _08116FC8 @ =gUnknown_083F8E9C\n\ -ldm r1!, {r2-r4}\n\ -stm r0!, {r2-r4}\n\ -ldm r1!, {r2-r4}\n\ -stm r0!, {r2-r4}\n\ -subs r0, r6, 0x1\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -movs r3, 0x1\n\ -mov r10, r3\n\ -cmp r0, 0x3\n\ -bhi _08116F9A\n\ -movs r4, 0x3\n\ -mov r10, r4\n\ -_08116F9A:\n\ -adds r0, r6, 0\n\ -movs r1, 0x5\n\ -bl __udivsi3\n\ -lsls r0, 24\n\ -lsrs r0, 8\n\ -ldr r1, _08116FCC @ =0xffff0000\n\ -adds r0, r1\n\ -lsrs r7, r0, 16\n\ -adds r0, r6, 0\n\ -movs r1, 0x5\n\ -bl __umodsi3\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -cmp r0, 0x2\n\ -beq _08116FF8\n\ -cmp r0, 0x2\n\ -bgt _08116FD4\n\ -cmp r0, 0x1\n\ -beq _08116FE4\n\ -ldr r4, _08116FD0 @ =0x02019000\n\ -b _0811703A\n\ -.align 2, 0\n\ -_08116FC8: .4byte gUnknown_083F8E9C\n\ -_08116FCC: .4byte 0xffff0000\n\ -_08116FD0: .4byte 0x02019000\n\ -_08116FD4:\n\ -cmp r0, 0x3\n\ -beq _0811700C\n\ -cmp r0, 0x4\n\ -beq _08117020\n\ -ldr r4, _08116FE0 @ =0x02019000\n\ -b _0811703A\n\ -.align 2, 0\n\ -_08116FE0: .4byte 0x02019000\n\ -_08116FE4:\n\ -ldr r3, _08116FF0 @ =gSprites\n\ -ldr r2, _08116FF4 @ =0x02019000\n\ -adds r0, r2, 0\n\ -adds r0, 0x43\n\ -b _08117028\n\ -.align 2, 0\n\ -_08116FF0: .4byte gSprites\n\ -_08116FF4: .4byte 0x02019000\n\ -_08116FF8:\n\ -ldr r3, _08117004 @ =gSprites\n\ -ldr r2, _08117008 @ =0x02019000\n\ -adds r0, r2, 0\n\ -adds r0, 0x44\n\ -b _08117028\n\ -.align 2, 0\n\ -_08117004: .4byte gSprites\n\ -_08117008: .4byte 0x02019000\n\ -_0811700C:\n\ -ldr r3, _08117018 @ =gSprites\n\ -ldr r2, _0811701C @ =0x02019000\n\ -adds r0, r2, 0\n\ -adds r0, 0x45\n\ -b _08117028\n\ -.align 2, 0\n\ -_08117018: .4byte gSprites\n\ -_0811701C: .4byte 0x02019000\n\ -_08117020:\n\ -ldr r3, _08117088 @ =gSprites\n\ -ldr r2, _0811708C @ =0x02019000\n\ -adds r0, r2, 0\n\ -adds r0, 0x46\n\ -_08117028:\n\ -ldrb r1, [r0]\n\ -lsls r0, r1, 4\n\ -adds r0, r1\n\ -lsls r0, 2\n\ -adds r0, r3\n\ -ldrb r0, [r0, 0x5]\n\ -lsrs r0, 4\n\ -lsls r7, r0, 4\n\ -adds r4, r2, 0\n\ -_0811703A:\n\ -mov r2, r10\n\ -cmp r2, 0x1\n\ -bne _08117094\n\ -ldr r1, _08117090 @ =gUnknown_083F8C00\n\ -lsls r2, r6, 2\n\ -adds r0, r2, r6\n\ -lsls r0, 2\n\ -adds r1, 0x8\n\ -adds r0, r1\n\ -ldr r1, [r4, 0x8]\n\ -ldr r0, [r0]\n\ -ands r1, r0\n\ -str r2, [sp, 0x1C]\n\ -cmp r1, 0\n\ -bne _0811713C\n\ -adds r0, r6, 0\n\ -movs r1, 0x5\n\ -bl __udivsi3\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -subs r1, r0, 0x1\n\ -lsls r1, 3\n\ -mov r3, sp\n\ -adds r2, r3, r1\n\ -ldrh r1, [r2, 0x2]\n\ -adds r1, r7, r1\n\ -strh r1, [r2, 0x2]\n\ -adds r1, r4, 0\n\ -adds r1, 0xB8\n\ -lsls r0, 3\n\ -subs r0, 0x8\n\ -adds r2, r3, r0\n\ -adds r0, r1, 0\n\ -movs r1, 0xD\n\ -bl sub_812492C\n\ -b _08117122\n\ -.align 2, 0\n\ -_08117088: .4byte gSprites\n\ -_0811708C: .4byte 0x02019000\n\ -_08117090: .4byte gUnknown_083F8C00\n\ -_08117094:\n\ -movs r4, 0\n\ -lsls r0, r6, 2\n\ -str r0, [sp, 0x1C]\n\ -ldr r1, _0811714C @ =0x02019000\n\ -mov r8, r1\n\ -ldr r2, _08117150 @ =gUnknown_083F8C00\n\ -mov r9, r2\n\ -_081170A2:\n\ -lsls r0, r4, 2\n\ -adds r0, r4\n\ -adds r0, r6, r0\n\ -adds r0, 0x5\n\ -lsls r0, 24\n\ -lsrs r2, r0, 24\n\ -lsls r0, r2, 2\n\ -adds r0, r2\n\ -lsls r5, r0, 2\n\ -mov r0, r9\n\ -adds r0, 0x8\n\ -adds r0, r5, r0\n\ -mov r3, r8\n\ -ldr r1, [r3, 0x8]\n\ -ldr r0, [r0]\n\ -ands r1, r0\n\ -cmp r1, 0\n\ -bne _0811710E\n\ -adds r0, r2, 0\n\ -movs r1, 0x5\n\ -bl __udivsi3\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -subs r1, r0, 0x1\n\ -lsls r1, 3\n\ -mov r3, sp\n\ -adds r2, r3, r1\n\ -ldrh r1, [r2, 0x2]\n\ -adds r1, r7, r1\n\ -strh r1, [r2, 0x2]\n\ -adds r1, r4, 0\n\ -adds r1, 0xD\n\ -lsls r1, 24\n\ -lsrs r1, 24\n\ -lsls r0, 3\n\ -subs r0, 0x8\n\ -adds r2, r3, r0\n\ -mov r0, r8\n\ -adds r0, 0xB8\n\ -bl sub_812492C\n\ -mov r0, r10\n\ -cmp r0, 0x3\n\ -bne _08117104\n\ -mov r1, r9\n\ -adds r0, r5, r1\n\ -ldrh r0, [r0, 0x10]\n\ -str r0, [sp, 0x18]\n\ -_08117104:\n\ -mov r0, r10\n\ -subs r0, 0x1\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -mov r10, r0\n\ -_0811710E:\n\ -adds r0, r4, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -cmp r4, 0x2\n\ -bls _081170A2\n\ -mov r2, r10\n\ -cmp r2, 0x2\n\ -beq _08117122\n\ -movs r3, 0\n\ -str r3, [sp, 0x18]\n\ -_08117122:\n\ -ldr r0, _08117154 @ =0x020190b8\n\ -ldr r2, _08117150 @ =gUnknown_083F8C00\n\ -ldr r4, [sp, 0x1C]\n\ -adds r1, r4, r6\n\ -lsls r1, 2\n\ -adds r1, r2\n\ -ldrh r1, [r1, 0x10]\n\ -ldr r2, [sp, 0x18]\n\ -orrs r2, r1\n\ -str r2, [sp, 0x18]\n\ -adds r1, r2, 0\n\ -bl sub_8124CE8\n\ -_0811713C:\n\ -add sp, 0x20\n\ -pop {r3-r5}\n\ -mov r8, r3\n\ -mov r9, r4\n\ -mov r10, r5\n\ -pop {r4-r7}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_0811714C: .4byte 0x02019000\n\ -_08117150: .4byte gUnknown_083F8C00\n\ -_08117154: .4byte 0x020190b8\n\ -.syntax divided\n"); -} -#endif - #ifdef NONMATCHING //not enough stack usage void sub_8117158(u8 r0) { -- cgit v1.2.3 From d9bd118cb5ac2cdc4c89e0105d4961263fe8d1b3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 22:53:44 -0500 Subject: match sub_8117158 --- src/roulette.c | 295 ++------------------------------------------------------- 1 file changed, 10 insertions(+), 285 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 3a0328d1c..7d88192e1 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1392,19 +1392,18 @@ void sub_8116EF8(u8 r0) } } -#ifdef NONMATCHING //not enough stack usage void sub_8117158(u8 r0) { - u8 i; - u8 l; + vu8 i; + vu8 z; + vu16 var1; + vu16 var2; + vu8 var0; u8 v[0x5]; - u8 z; - u8 var0; - u8 var1; - u16 var2; + u8 l; eRoulette->var2A = 0x1; sub_8117AA8(0x0, 0x0); - sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18800, 0xE, 0x7, 0x10, 0xD); + sub_8124E2C(gBGTilemapBuffers[1], (u16 *)ewram18800, 0xE, 0x7, 0x10, 0xD); switch(r0) { case 0x0: @@ -1427,291 +1426,17 @@ void sub_8117158(u8 r0) } for (i = 0x0; i < l; i++) { - //_0811727C var0 = gUnknown_083F8C00[v[i]].var06; var1 = gUnknown_083F8C00[v[i]].var03; for (z = 0; z < 0x3; z++) { var2 = (gUnknown_083F8C00[v[i]].var04 + z) * 0x20; - gBGTilemapBuffers[2][var2 + var1 + 0x0] = ewram189a0[(var0 + z) * 0x3 + 0x0]; - gBGTilemapBuffers[2][var2 + var1 + 0x1] = ewram189a0[(var0 + z) * 0x3 + 0x1]; - gBGTilemapBuffers[2][var2 + var1 + 0x2] = ewram189a0[(var0 + z) * 0x3 + 0x2]; + gBGTilemapBuffers[1][var1 + var2 + 0x0] = ewram189a0[(var0 + z) * 0x3 + 0x0]; + gBGTilemapBuffers[1][var1 + var2 + 0x1] = ewram189a0[(var0 + z) * 0x3 + 0x1]; + gBGTilemapBuffers[1][var1 + var2 + 0x2] = ewram189a0[(var0 + z) * 0x3 + 0x2]; } - //_08117350 } } -#else -__attribute__((naked)) -void sub_8117158(u8 r0) -{ -asm(".syntax unified\n\ -push {r4-r7,lr}\n\ -mov r7, r10\n\ -mov r6, r9\n\ -mov r5, r8\n\ -push {r5-r7}\n\ -sub sp, 0x24\n\ -lsls r0, 24\n\ -lsrs r5, r0, 24\n\ -ldr r4, _0811719C @ =0x02019000\n\ -movs r0, 0x1\n\ -strh r0, [r4, 0x2A]\n\ -movs r0, 0\n\ -movs r1, 0\n\ -bl sub_8117AA8\n\ -ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800\n\ -ldr r1, _081171A4 @ =0xfffff800\n\ -adds r4, r1\n\ -movs r1, 0x10\n\ -str r1, [sp]\n\ -movs r1, 0xD\n\ -str r1, [sp, 0x4]\n\ -adds r1, r4, 0\n\ -movs r2, 0xE\n\ -movs r3, 0x7\n\ -bl sub_8124E2C\n\ -cmp r5, 0xF\n\ -bhi _08117250\n\ -lsls r0, r5, 2\n\ -ldr r1, _081171A8 @ =_081171AC\n\ -adds r0, r1\n\ -ldr r0, [r0]\n\ -mov pc, r0\n\ -.align 2, 0\n\ -_0811719C: .4byte 0x02019000\n\ -_081171A0: .4byte gBGTilemapBuffers + 0x800\n\ -_081171A4: .4byte 0xfffff800\n\ -_081171A8: .4byte _081171AC\n\ -.align 2, 0\n\ -_081171AC:\n\ -.4byte _08117360\n\ -.4byte _081171EC\n\ -.4byte _081171EC\n\ -.4byte _081171EC\n\ -.4byte _081171EC\n\ -.4byte _08117220\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117220\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117250\n\ -.4byte _08117220\n\ -_081171EC:\n\ -movs r0, 0x4\n\ -str r0, [sp, 0x18]\n\ -add r1, sp, 0x8\n\ -movs r0, 0\n\ -strb r0, [r1]\n\ -adds r0, r1, 0\n\ -ldrb r0, [r0]\n\ -cmp r0, 0x3\n\ -bhi _08117258\n\ -add r4, sp, 0x10\n\ -adds r3, r1, 0\n\ -_08117202:\n\ -ldrb r2, [r3]\n\ -adds r2, r4\n\ -ldrb r1, [r3]\n\ -lsls r0, r1, 2\n\ -adds r0, r1\n\ -adds r0, r5, r0\n\ -strb r0, [r2]\n\ -ldrb r0, [r3]\n\ -adds r0, 0x1\n\ -strb r0, [r3]\n\ -ldrb r0, [r3]\n\ -ldr r1, [sp, 0x18]\n\ -cmp r0, r1\n\ -bcc _08117202\n\ -b _08117258\n\ -_08117220:\n\ -movs r0, 0x5\n\ -str r0, [sp, 0x18]\n\ -add r1, sp, 0x8\n\ -movs r0, 0\n\ -strb r0, [r1]\n\ -adds r0, r1, 0\n\ -ldrb r0, [r0]\n\ -cmp r0, 0x4\n\ -bhi _08117258\n\ -add r3, sp, 0x10\n\ -adds r2, r1, 0\n\ -_08117236:\n\ -ldrb r1, [r2]\n\ -adds r1, r3\n\ -ldrb r0, [r2]\n\ -adds r0, r5, r0\n\ -strb r0, [r1]\n\ -ldrb r0, [r2]\n\ -adds r0, 0x1\n\ -strb r0, [r2]\n\ -ldrb r0, [r2]\n\ -ldr r1, [sp, 0x18]\n\ -cmp r0, r1\n\ -bcc _08117236\n\ -b _08117258\n\ -_08117250:\n\ -movs r0, 0x1\n\ -str r0, [sp, 0x18]\n\ -add r0, sp, 0x10\n\ -strb r5, [r0]\n\ -_08117258:\n\ -add r1, sp, 0x8\n\ -movs r0, 0\n\ -strb r0, [r1]\n\ -adds r0, r1, 0\n\ -ldrb r0, [r0]\n\ -ldr r1, [sp, 0x18]\n\ -cmp r0, r1\n\ -bcs _08117360\n\ -mov r0, sp\n\ -adds r0, 0xE\n\ -str r0, [sp, 0x1C]\n\ -add r1, sp, 0x10\n\ -mov r9, r1\n\ -add r0, sp, 0x8\n\ -mov r12, r0\n\ -mov r1, sp\n\ -adds r1, 0xA\n\ -str r1, [sp, 0x20]\n\ -_0811727C:\n\ -mov r1, r12\n\ -ldrb r0, [r1]\n\ -add r0, r9\n\ -ldrb r1, [r0]\n\ -lsls r0, r1, 2\n\ -adds r0, r1\n\ -lsls r0, 2\n\ -ldr r1, _08117370 @ =gUnknown_083F8C00\n\ -adds r0, r1\n\ -ldrb r0, [r0, 0x6]\n\ -ldr r1, [sp, 0x1C]\n\ -strb r0, [r1]\n\ -mov r1, r12\n\ -ldrb r0, [r1]\n\ -add r0, r9\n\ -ldrb r1, [r0]\n\ -lsls r0, r1, 2\n\ -adds r0, r1\n\ -lsls r0, 2\n\ -ldr r1, _08117370 @ =gUnknown_083F8C00\n\ -adds r0, r1\n\ -ldrb r0, [r0, 0x3]\n\ -ldr r1, [sp, 0x20]\n\ -strh r0, [r1]\n\ -mov r4, sp\n\ -adds r4, 0x9\n\ -movs r0, 0\n\ -strb r0, [r4]\n\ -ldrb r0, [r4]\n\ -cmp r0, 0x2\n\ -bhi _08117350\n\ -add r5, sp, 0xC\n\ -ldr r7, [sp, 0x20]\n\ -ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800\n\ -mov r8, r0\n\ -ldr r6, [sp, 0x1C]\n\ -ldr r1, _08117378 @ =0x020189a0\n\ -mov r10, r1\n\ -_081172C8:\n\ -mov r1, r12\n\ -ldrb r0, [r1]\n\ -add r0, r9\n\ -ldrb r0, [r0]\n\ -lsls r1, r0, 2\n\ -adds r1, r0\n\ -lsls r1, 2\n\ -ldr r0, _08117370 @ =gUnknown_083F8C00\n\ -adds r1, r0\n\ -adds r3, r4, 0\n\ -ldrb r0, [r4]\n\ -ldrb r1, [r1, 0x4]\n\ -adds r0, r1\n\ -lsls r0, 5\n\ -strh r0, [r5]\n\ -ldrh r0, [r7]\n\ -ldrh r2, [r5]\n\ -adds r2, r0\n\ -lsls r2, 1\n\ -add r2, r8\n\ -ldrb r0, [r6]\n\ -ldrb r1, [r4]\n\ -adds r1, r0\n\ -lsls r0, r1, 1\n\ -adds r0, r1\n\ -lsls r0, 1\n\ -add r0, r10\n\ -ldrh r0, [r0]\n\ -strh r0, [r2]\n\ -ldrh r0, [r7]\n\ -ldrh r2, [r5]\n\ -adds r2, r0\n\ -adds r2, 0x1\n\ -lsls r2, 1\n\ -add r2, r8\n\ -ldrb r0, [r6]\n\ -ldrb r1, [r4]\n\ -adds r1, r0\n\ -lsls r0, r1, 1\n\ -adds r0, r1\n\ -lsls r0, 1\n\ -mov r1, r10\n\ -adds r1, 0x2\n\ -adds r0, r1\n\ -ldrh r0, [r0]\n\ -strh r0, [r2]\n\ -ldrh r0, [r7]\n\ -ldrh r2, [r5]\n\ -adds r2, r0\n\ -adds r2, 0x2\n\ -lsls r2, 1\n\ -add r2, r8\n\ -ldrb r0, [r6]\n\ -ldrb r1, [r4]\n\ -adds r1, r0\n\ -lsls r0, r1, 1\n\ -adds r0, r1\n\ -lsls r0, 1\n\ -ldr r1, _0811737C @ =0x020189a4\n\ -adds r0, r1\n\ -ldrh r0, [r0]\n\ -strh r0, [r2]\n\ -ldrb r0, [r4]\n\ -adds r0, 0x1\n\ -strb r0, [r4]\n\ -ldrb r0, [r3]\n\ -cmp r0, 0x2\n\ -bls _081172C8\n\ -_08117350:\n\ -mov r1, r12\n\ -ldrb r0, [r1]\n\ -adds r0, 0x1\n\ -strb r0, [r1]\n\ -ldrb r0, [r1]\n\ -ldr r1, [sp, 0x18]\n\ -cmp r0, r1\n\ -bcc _0811727C\n\ -_08117360:\n\ -add sp, 0x24\n\ -pop {r3-r5}\n\ -mov r8, r3\n\ -mov r9, r4\n\ -mov r10, r5\n\ -pop {r4-r7}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_08117370: .4byte gUnknown_083F8C00\n\ -_08117374: .4byte gBGTilemapBuffers + 0x800\n\ -_08117378: .4byte 0x020189a0\n\ -_0811737C: .4byte 0x020189a4\n\ -.syntax divided\n"); -} -#endif u8 sub_8117380(u8 r0) { -- cgit v1.2.3 From 262d7db3073e1d0a6c56354d5ec9e4626338396d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jan 2018 23:24:05 -0500 Subject: match sub_8117E98 --- src/roulette.c | 114 +++++++-------------------------------------------------- 1 file changed, 14 insertions(+), 100 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 7d88192e1..b84b74e3e 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1779,111 +1779,25 @@ void sub_8117DF4(void) } } -#ifdef NONMATCHING void sub_8117E98(struct Sprite *sprite) { - struct OamMatrix *m; - u8 p; - u16 angle; - s16 cos, sin, z; - u32 cos32; - angle = eRoulette->var24 + sprite->data[0x0]; - z = angle; - if (z > 359) - angle = z - 360; + s16 cos; + s16 sin; + u32 matrixNum; + s16 angle = eRoulette->var24 + sprite->data[0]; + if (angle >= 360) + angle -= 360; sin = Sin2(angle); cos = Cos2(angle); - sprite->pos2.x = sin * sprite->data[0x1] >> 0xC; - sprite->pos2.y = -cos * sprite->data[0x1] >> 0xC; - p = sprite->oam.matrixNum; - sin = sin / 0x10; - m = &gOamMatrices[p]; - cos32 = cos / 0x10; - - m->d = cos32; - m->a = cos32; - m->b = sin; - m->c = -sin; -} -#else -__attribute__((naked)) -void sub_8117E98(struct Sprite *r0) -{ -asm(".syntax unified\n\ -push {r4-r6,lr}\n\ -adds r6, r0, 0\n\ -ldr r0, _08117F1C @ =0x02019000\n\ -ldrh r1, [r6, 0x2E]\n\ -ldrh r0, [r0, 0x24]\n\ -adds r1, r0\n\ -lsls r1, 16\n\ -lsrs r4, r1, 16\n\ -asrs r1, 16\n\ -ldr r0, _08117F20 @ =0x00000167\n\ -cmp r1, r0\n\ -ble _08117EB8\n\ -ldr r2, _08117F24 @ =0xfffffe98\n\ -adds r0, r1, r2\n\ -lsls r0, 16\n\ -lsrs r4, r0, 16\n\ -_08117EB8:\n\ -adds r0, r4, 0\n\ -bl Sin2\n\ -lsls r0, 16\n\ -lsrs r5, r0, 16\n\ -adds r0, r4, 0\n\ -bl Cos2\n\ -lsls r2, r5, 16\n\ -asrs r2, 16\n\ -movs r3, 0x30\n\ -ldrsh r1, [r6, r3]\n\ -muls r1, r2\n\ -asrs r1, 12\n\ -strh r1, [r6, 0x24]\n\ -lsls r0, 16\n\ -asrs r4, r0, 16\n\ -negs r1, r4\n\ -movs r3, 0x30\n\ -ldrsh r0, [r6, r3]\n\ -muls r0, r1\n\ -asrs r0, 12\n\ -strh r0, [r6, 0x26]\n\ -ldrb r0, [r6, 0x3]\n\ -lsls r0, 26\n\ -lsrs r3, r0, 27\n\ -cmp r2, 0\n\ -bge _08117EF2\n\ -adds r2, 0xF\n\ -_08117EF2:\n\ -lsls r0, r2, 12\n\ -lsrs r5, r0, 16\n\ -ldr r1, _08117F28 @ =gOamMatrices\n\ -lsls r0, r3, 3\n\ -adds r1, r0, r1\n\ -adds r0, r4, 0\n\ -cmp r0, 0\n\ -bge _08117F04\n\ -adds r0, 0xF\n\ -_08117F04:\n\ -asrs r0, 4\n\ -strh r0, [r1, 0x6]\n\ -strh r0, [r1]\n\ -strh r5, [r1, 0x2]\n\ -lsls r0, r5, 16\n\ -asrs r0, 16\n\ -negs r0, r0\n\ -strh r0, [r1, 0x4]\n\ -pop {r4-r6}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_08117F1C: .4byte 0x02019000\n\ -_08117F20: .4byte 0x00000167\n\ -_08117F24: .4byte 0xfffffe98\n\ -_08117F28: .4byte gOamMatrices\n\ -.syntax divided\n"); + sprite->pos2.x = sin * sprite->data[1] >> 0xC; + sprite->pos2.y = -cos * sprite->data[1] >> 0xC; + matrixNum = sprite->oam.matrixNum; + sin /= 16; + gOamMatrices[matrixNum].d = cos /= 16; + gOamMatrices[matrixNum].a = cos; + gOamMatrices[matrixNum].b = sin; + gOamMatrices[matrixNum].c = -sin; } -#endif void sub_8117F2C(void) { -- cgit v1.2.3 From 4d9d458b8020f3ef1d8336d7c54c8f75ff0c0af5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jan 2018 08:33:40 -0500 Subject: match sub_81181E8 --- src/roulette.c | 126 ++++++--------------------------------------------------- 1 file changed, 13 insertions(+), 113 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index b84b74e3e..ebe2e8f56 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1855,132 +1855,32 @@ void sub_81180F4(u16 r0) } } -#ifdef NONMATCHING u8 sub_81181E8(u8 r0) { - u8 t[0x5]; - memcpy(&t, &gUnknown_083FA608, 0x5); - if (r0 > 0x13) - r0 = 0x0; + u8 t[5]; + memcpy(t, gUnknown_083FA608, sizeof t); + // u8 t = {0, 1, 2, 3, 4}; + if (r0 >= 20) + r0 = 0; switch(gUnknown_083F8C00[r0].var01_0) { case 0x3: - r0 = r0 / 0x5 - 0x1; - if ((u32)eRoulette->var16[r0] < 0x4) - return t[0x1 + eRoulette->var16[r0]]; // couldn't recreate redundant loads + r0 = r0 / 5 - 1; + if (eRoulette->var16[r0] < 4) + return t[((vu8 *)eRoulette->var16)[r0] + 1]; // couldn't recreate redundant loads break; case 0x4: - r0 = r0 - 0x1; - if (eRoulette->var12[r0] < 0x3) - return t[0x2 + eRoulette->var12[r0]]; + r0--; + if (eRoulette->var12[r0] < 3) + return t[((vu8 *)eRoulette->var12)[r0] + 2]; break; case 0xC: if (!(eRoulette->var08 & gUnknown_083F8C00[r0].var08)) - return t[0x4]; + return t[4]; break; } - return 0x0; -} -#else -__attribute__((naked)) -u8 sub_81181E8(u8 r0) -{ -asm(".syntax unified\n\ -push {r4,lr}\n\ -sub sp, 0x8\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r1, _08118220 @ =gUnknown_083FA608\n\ -mov r0, sp\n\ -movs r2, 0x5\n\ -bl memcpy\n\ -cmp r4, 0x13\n\ -bls _08118200\n\ -movs r4, 0\n\ -_08118200:\n\ -ldr r3, _08118224 @ =gUnknown_083F8C00\n\ -lsls r0, r4, 2\n\ -adds r0, r4\n\ -lsls r2, r0, 2\n\ -adds r0, r2, r3\n\ -ldrb r0, [r0, 0x1]\n\ -lsls r0, 28\n\ -lsrs r0, 28\n\ -cmp r0, 0x4\n\ -beq _08118254\n\ -cmp r0, 0x4\n\ -bgt _08118228\n\ -cmp r0, 0x3\n\ -beq _0811822E\n\ -b _08118290\n\ -.align 2, 0\n\ -_08118220: .4byte gUnknown_083FA608\n\ -_08118224: .4byte gUnknown_083F8C00\n\ -_08118228:\n\ -cmp r0, 0xC\n\ -beq _08118274\n\ -b _08118290\n\ -_0811822E:\n\ -adds r0, r4, 0\n\ -movs r1, 0x5\n\ -bl __udivsi3\n\ -subs r0, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r0, _08118250 @ =0x02019000\n\ -adds r0, 0x16\n\ -adds r1, r4, r0\n\ -ldrb r0, [r1]\n\ -cmp r0, 0x3\n\ -bhi _08118290\n\ -ldrb r0, [r1]\n\ -adds r0, 0x1\n\ -b _0811826A\n\ -.align 2, 0\n\ -_08118250: .4byte 0x02019000\n\ -_08118254:\n\ -subs r0, r4, 0x1\n\ -lsls r0, 24\n\ -lsrs r4, r0, 24\n\ -ldr r0, _08118270 @ =0x02019000\n\ -adds r0, 0x12\n\ -adds r1, r4, r0\n\ -ldrb r0, [r1]\n\ -cmp r0, 0x2\n\ -bhi _08118290\n\ -ldrb r0, [r1]\n\ -adds r0, 0x2\n\ -_0811826A:\n\ -add r0, sp\n\ -ldrb r0, [r0]\n\ -b _08118292\n\ -.align 2, 0\n\ -_08118270: .4byte 0x02019000\n\ -_08118274:\n\ -ldr r1, _0811828C @ =0x02019000\n\ -adds r0, r3, 0\n\ -adds r0, 0x8\n\ -adds r0, r2, r0\n\ -ldr r1, [r1, 0x8]\n\ -ldr r0, [r0]\n\ -ands r1, r0\n\ -cmp r1, 0\n\ -bne _08118290\n\ -mov r0, sp\n\ -ldrb r0, [r0, 0x4]\n\ -b _08118292\n\ -.align 2, 0\n\ -_0811828C: .4byte 0x02019000\n\ -_08118290:\n\ -movs r0, 0\n\ -_08118292:\n\ -add sp, 0x8\n\ -pop {r4}\n\ -pop {r1}\n\ -bx r1\n\ -.syntax divided\n"); + return 0; } -#endif void sub_811829C(u8 r0) { -- cgit v1.2.3 From 4376a3f64ca11bbe3e4c100b0c2b806ebfb9547f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jan 2018 08:42:29 -0500 Subject: match sub_8118DE4 --- src/roulette.c | 216 ++------------------------------------------------------- 1 file changed, 4 insertions(+), 212 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index ebe2e8f56..01c222d24 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -2301,7 +2301,6 @@ void sub_8118D2C(struct Sprite *sprite) } } -#ifdef NONMATCHING void sub_8118DE4(struct Sprite *sprite) { sub_8118724(sprite); @@ -2317,13 +2316,13 @@ void sub_8118DE4(struct Sprite *sprite) sub_811866C(sprite); sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 15; sprite->callback = &sub_8118834; - m4aSongNumStartOrChange(0x47); + m4aSongNumStartOrChange(SE_HASHI); } else { u8 t; u32 z; - m4aSongNumStart(0x38); + m4aSongNumStart(SE_KON); if ((z = (Random() & 0x1))) { u32 o; @@ -2355,7 +2354,7 @@ void sub_8118DE4(struct Sprite *sprite) sprite->data[0x2] = gUnknown_083F8DF4[eRoulette->var04_0].var02; if (z) { - eRoulette->var8C = 1.5f; + eRoulette->var8C = 0.5f; } else { @@ -2364,217 +2363,10 @@ void sub_8118DE4(struct Sprite *sprite) } } eRoulette->var98 = 0.085f; - sprite->callback = &sub_8118D2C; + sprite->callback = sub_8118D2C; sprite->data[0x1] = 0x5; } } -#else -__attribute__((naked)) -void sub_8118DE4(struct Sprite *sprite) -{ -asm(".syntax unified\n\ -push {r4-r7,lr}\n\ -mov r7, r9\n\ -mov r6, r8\n\ -push {r6,r7}\n\ -adds r7, r0, 0\n\ -bl sub_8118724\n\ -movs r0, 0\n\ -strh r0, [r7, 0x32]\n\ -adds r0, r7, 0\n\ -bl sub_81186B8\n\ -ldr r1, _08118E70 @ =gUnknown_083F8D90\n\ -ldr r6, _08118E74 @ =gSharedMem + 0x19000\n\ -movs r0, 0x7E\n\ -adds r0, r6\n\ -mov r8, r0\n\ -ldrb r0, [r0]\n\ -lsls r0, 3\n\ -adds r1, 0x4\n\ -adds r0, r1\n\ -ldr r0, [r0]\n\ -ldr r1, [r6, 0x8]\n\ -ands r0, r1\n\ -cmp r0, 0\n\ -bne _08118E7C\n\ -adds r1, r6, 0\n\ -adds r1, 0x7D\n\ -movs r0, 0xFF\n\ -strb r0, [r1]\n\ -ldrb r1, [r6, 0x3]\n\ -movs r0, 0x7F\n\ -ands r0, r1\n\ -strb r0, [r6, 0x3]\n\ -adds r0, r7, 0\n\ -adds r0, 0x2B\n\ -ldrb r1, [r0]\n\ -adds r1, 0x3\n\ -lsls r1, 24\n\ -lsrs r1, 24\n\ -adds r0, r7, 0\n\ -bl StartSpriteAnim\n\ -adds r0, r7, 0\n\ -bl sub_81186B8\n\ -movs r0, 0x1E\n\ -strh r0, [r7, 0x36]\n\ -adds r0, r7, 0\n\ -bl sub_811866C\n\ -movs r1, 0x3A\n\ -ldrsh r0, [r7, r1]\n\ -movs r1, 0x1E\n\ -bl __divsi3\n\ -lsls r0, 16\n\ -asrs r0, 16\n\ -lsls r1, r0, 4\n\ -subs r1, r0\n\ -lsls r1, 1\n\ -adds r1, 0xF\n\ -strh r1, [r7, 0x3A]\n\ -ldr r0, _08118E78 @ =sub_8118834\n\ -str r0, [r7, 0x1C]\n\ -movs r0, 0x47\n\ -bl m4aSongNumStartOrChange\n\ -b _08118F74\n\ -.align 2, 0\n\ -_08118E70: .4byte gUnknown_083F8D90\n\ -_08118E74: .4byte gSharedMem + 0x19000\n\ -_08118E78: .4byte sub_8118834\n\ -_08118E7C:\n\ -movs r0, 0x38\n\ -bl m4aSongNumStart\n\ -bl Random\n\ -movs r2, 0x1\n\ -mov r9, r2\n\ -mov r1, r9\n\ -ands r1, r0\n\ -mov r9, r1\n\ -cmp r1, 0\n\ -beq _08118EC0\n\ -adds r1, r6, 0\n\ -adds r1, 0x8C\n\ -ldr r0, _08118EB8 @ =0x00000000\n\ -str r0, [r1]\n\ -mov r2, r8\n\ -ldrb r0, [r2]\n\ -adds r0, 0x1\n\ -movs r1, 0xC\n\ -bl __modsi3\n\ -lsls r1, r0, 24\n\ -lsrs r2, r1, 24\n\ -adds r1, r6, 0\n\ -adds r1, 0x7F\n\ -strb r0, [r1]\n\ -ldr r5, _08118EBC @ =gUnknown_083F8DF4\n\ -b _08118EF4\n\ -.align 2, 0\n\ -_08118EB8: .4byte 0x00000000\n\ -_08118EBC: .4byte gUnknown_083F8DF4\n\ -_08118EC0:\n\ -adds r4, r6, 0\n\ -adds r4, 0x8C\n\ -ldr r5, _08118F1C @ =gUnknown_083F8DF4\n\ -ldrb r0, [r6, 0x4]\n\ -lsls r0, 30\n\ -lsrs r0, 25\n\ -adds r1, r5, 0\n\ -adds r1, 0x1C\n\ -adds r0, r1\n\ -ldr r1, [r0]\n\ -adds r0, r1, 0\n\ -bl __addsf3\n\ -str r0, [r4]\n\ -mov r0, r8\n\ -ldrb r4, [r0]\n\ -adds r0, r4, 0\n\ -adds r0, 0xB\n\ -movs r1, 0xC\n\ -bl __modsi3\n\ -lsls r0, 24\n\ -lsrs r2, r0, 24\n\ -adds r0, r6, 0\n\ -adds r0, 0x7F\n\ -strb r4, [r0]\n\ -_08118EF4:\n\ -ldr r0, _08118F20 @ =gUnknown_083F8D90\n\ -lsls r1, r2, 3\n\ -adds r0, 0x4\n\ -adds r1, r0\n\ -ldr r2, _08118F24 @ =gSharedMem + 0x19000\n\ -ldr r1, [r1]\n\ -ldr r0, [r2, 0x8]\n\ -ands r1, r0\n\ -cmp r1, 0\n\ -beq _08118F28\n\ -movs r0, 0x1\n\ -strh r0, [r7, 0x2E]\n\ -ldrb r0, [r2, 0x4]\n\ -lsls r0, 30\n\ -lsrs r0, 25\n\ -adds r0, r5\n\ -ldrb r0, [r0, 0x2]\n\ -strh r0, [r7, 0x32]\n\ -b _08118F64\n\ -.align 2, 0\n\ -_08118F1C: .4byte gUnknown_083F8DF4\n\ -_08118F20: .4byte gUnknown_083F8D90\n\ -_08118F24: .4byte gSharedMem + 0x19000\n\ -_08118F28:\n\ -strh r1, [r7, 0x2E]\n\ -ldrb r1, [r2, 0x4]\n\ -movs r0, 0x3\n\ -ands r0, r1\n\ -cmp r0, 0\n\ -beq _08118F40\n\ -lsls r0, r1, 30\n\ -lsrs r0, 25\n\ -adds r0, r5\n\ -ldrb r0, [r0, 0x1]\n\ -strh r0, [r7, 0x32]\n\ -b _08118F64\n\ -_08118F40:\n\ -lsls r0, r1, 30\n\ -lsrs r0, 25\n\ -adds r0, r5\n\ -ldrb r0, [r0, 0x2]\n\ -strh r0, [r7, 0x32]\n\ -mov r1, r9\n\ -cmp r1, 0\n\ -beq _08118F5C\n\ -adds r1, r2, 0\n\ -adds r1, 0x8C\n\ -ldr r0, _08118F58 @ =0x3f000000\n\ -b _08118F62\n\ -.align 2, 0\n\ -_08118F58: .4byte 0x3f000000\n\ -_08118F5C:\n\ -adds r1, r2, 0\n\ -adds r1, 0x8C\n\ -ldr r0, _08118F80 @ =0xbfc00000\n\ -_08118F62:\n\ -str r0, [r1]\n\ -_08118F64:\n\ -adds r1, r2, 0\n\ -adds r1, 0x98\n\ -ldr r0, _08118F84 @ =0x3dae147b\n\ -str r0, [r1]\n\ -ldr r0, _08118F88 @ =sub_8118D2C\n\ -str r0, [r7, 0x1C]\n\ -movs r0, 0x5\n\ -strh r0, [r7, 0x30]\n\ -_08118F74:\n\ -pop {r3,r4}\n\ -mov r8, r3\n\ -mov r9, r4\n\ -pop {r4-r7}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_08118F80: .4byte 0xbfc00000\n\ -_08118F84: .4byte 0x3dae147b\n\ -_08118F88: .4byte sub_8118D2C\n\ -.syntax divided\n"); -} -#endif void sub_8118F8C(struct Sprite *sprite) { -- cgit v1.2.3 From 932cc8dba24ed1173a66497006401415c6594a53 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 1 Feb 2018 22:12:23 -0500 Subject: Fail to match sub_811952C --- src/roulette.c | 661 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 330 insertions(+), 331 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 01c222d24..6cfaa7317 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -2497,57 +2497,58 @@ void sub_81193D4(struct Sprite *sprite) #ifdef NONMATCHING void sub_811952C(struct Sprite *sprite) { + u8 i; u8 z; - register u8 h asm("r10") = 0x0; - u8 j = 0x5; - u32 p = 0x0; u16 o; - u8 i; - u8 s[0xA] = (u8[]){0,0,0,0,0,0,0,0,0,0}; - u16 t = Random(); - eRoulette->var7D = 0x1; + u8 h = 0; // r10 (sp+0xc) + u8 j = 5; // r9 (r9) + u8 p = 0; // sp+0xc (sp+0x10) + u8 s[10] = {}; // sp+0 (sp+0) + u16 t = Random(); // sp+0x10 (r10) + + eRoulette->var7D = 1; eRoulette->var03_5 = TRUE; eRoulette->var03_6 = FALSE; eRoulette->var7E = 0xFF; - eRoulette->var88 = sprite->data[0x3]; + eRoulette->var88 = sprite->data[3]; eRoulette->var98 = 0.0f; - eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C; //couldn't replicate load, same as sub_8118DE4 + eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C; o = (eRoulette->var04_0 * 30 + 33) + (0x1 - eRoulette->var03_0) * 15; - for (i = 0x0; i < 0x4; i++) + for (i = 0; i < 4; i++) { - if (o < sprite->data[0x3] && !(sprite->data[0x3] > o + 90)) + if (o < sprite->data[3] && sprite->data[3] <= o + 90) { - sprite->data[0x0] = i * 0x2; - eRoulette->var03_0 = 0x1 & i; + sprite->data[0] = i << 1; + eRoulette->var03_0 = i & 1; break; } - if (i == 0x3) + if (i == 3) { - sprite->data[0x0] = 0x1; - eRoulette->var03_0 = 0x1; + sprite->data[0] = 1; + eRoulette->var03_0 = 1; break; } o += 90; } if (eRoulette->var03_0) { - if (sprite->data[0x0]) + if (sprite->data[0]) { - PlayCry1(0x130, -0x3F); + PlayCry1(SPECIES_TAILLOW, -0x3F); } else { - PlayCry1(0x130, 0x3F); + PlayCry1(SPECIES_TAILLOW, 0x3F); } } else { - PlayCry1(0x132, -0x3F); + PlayCry1(SPECIES_SHROOMISH, -0x3F); } - i = 0x2; - z = (eRoulette->var7F + 0x2) % 0xC; - if (eRoulette->var03_0 == 0x1 && eRoulette->var04_0 == 0x1) - j += 0x6; + i = 2; + z = (eRoulette->var7F + 2) % 12; + if (eRoulette->var03_0 == 1 && eRoulette->var04_0 == 1) + j += 6; else j += i; for (; i < j; i++) @@ -2560,327 +2561,325 @@ void sub_811952C(struct Sprite *sprite) p = i; } } - z = (z + 0x1) % 0xC; + z = (z + 1) % 0xC; } - if ((eRoulette->var03_0 + 0x1) & eRoulette->var02) + if ((eRoulette->var03_0 + 1) & eRoulette->var02) { - if (p && (t & 0xFF) <= 0xBF) + if (p && (t & 0xFF) < 0xc0) { - sprite->data[0x7] = p; + sprite->data[7] = p; } else { - sprite->data[0x7] = s[t % h]; + sprite->data[7] = s[t % h]; } } else { - sprite->data[0x7] = s[t % h]; + sprite->data[7] = s[t % h]; } - sprite->callback = &sub_8118CEC; + sprite->callback = sub_8118CEC; } #else __attribute__((naked)) void sub_811952C(struct Sprite *sprite) { -asm(".syntax unified\n\ -push {r4-r7,lr}\n\ -mov r7, r10\n\ -mov r6, r9\n\ -mov r5, r8\n\ -push {r5-r7}\n\ -sub sp, 0x14\n\ -mov r8, r0\n\ -movs r0, 0\n\ -mov r10, r0\n\ -movs r1, 0x5\n\ -mov r9, r1\n\ -movs r2, 0\n\ -str r2, [sp, 0xC]\n\ -mov r0, sp\n\ -movs r1, 0\n\ -movs r2, 0xA\n\ -bl memset\n\ -bl Random\n\ -lsls r0, 16\n\ -lsrs r0, 16\n\ -str r0, [sp, 0x10]\n\ -ldr r7, _08119610 @ =gSharedMem + 0x19000\n\ -adds r0, r7, 0\n\ -adds r0, 0x7D\n\ -movs r6, 0x1\n\ -strb r6, [r0]\n\ -ldrb r4, [r7, 0x3]\n\ -movs r0, 0x20\n\ -orrs r4, r0\n\ -movs r0, 0x41\n\ -negs r0, r0\n\ -ands r4, r0\n\ -strb r4, [r7, 0x3]\n\ -adds r1, r7, 0\n\ -adds r1, 0x7E\n\ -movs r0, 0xFF\n\ -strb r0, [r1]\n\ -adds r5, r7, 0\n\ -adds r5, 0x88\n\ -mov r3, r8\n\ -movs r1, 0x34\n\ -ldrsh r0, [r3, r1]\n\ -bl __floatsisf\n\ -str r0, [r5]\n\ -adds r1, r7, 0\n\ -adds r1, 0x98\n\ -ldr r0, _08119614 @ =0x00000000\n\ -str r0, [r1]\n\ -adds r3, r7, 0\n\ -adds r3, 0x8C\n\ -ldr r2, _08119618 @ =gUnknown_083F8DF4\n\ -ldrb r0, [r7, 0x4]\n\ -lsls r0, 30\n\ -lsrs r1, r0, 25\n\ -adds r2, 0x1C\n\ -adds r1, r2\n\ -ldr r1, [r1]\n\ -str r1, [r3]\n\ -lsrs r0, 30\n\ -lsls r1, r0, 4\n\ -subs r1, r0\n\ -lsls r1, 1\n\ -adds r1, 0x21\n\ -lsls r4, 27\n\ -lsrs r4, 27\n\ -subs r6, r4\n\ -lsls r0, r6, 4\n\ -subs r0, r6\n\ -adds r1, r0\n\ -lsls r1, 16\n\ -lsrs r1, 16\n\ -mov r5, r10\n\ -mov r3, r8\n\ -movs r0, 0x34\n\ -ldrsh r2, [r3, r0]\n\ -_081195C8:\n\ -cmp r1, r2\n\ -bge _081195D4\n\ -adds r0, r1, 0\n\ -adds r0, 0x5A\n\ -cmp r2, r0\n\ -ble _08119638\n\ -_081195D4:\n\ -cmp r5, 0x3\n\ -beq _0811961C\n\ -adds r0, r1, 0\n\ -adds r0, 0x5A\n\ -lsls r0, 16\n\ -lsrs r1, r0, 16\n\ -adds r0, r5, 0x1\n\ -lsls r0, 24\n\ -lsrs r5, r0, 24\n\ -cmp r5, 0x3\n\ -bls _081195C8\n\ -_081195EA:\n\ -ldr r0, _08119610 @ =gSharedMem + 0x19000\n\ -ldrb r1, [r0, 0x3]\n\ -movs r0, 0x1F\n\ -ands r0, r1\n\ -cmp r0, 0\n\ -beq _08119664\n\ -mov r1, r8\n\ -movs r2, 0x2E\n\ -ldrsh r0, [r1, r2]\n\ -cmp r0, 0\n\ -beq _08119658\n\ -movs r0, 0x98\n\ -lsls r0, 1\n\ -movs r1, 0x3F\n\ -negs r1, r1\n\ -bl PlayCry1\n\ -b _08119670\n\ -.align 2, 0\n\ -_08119610: .4byte gSharedMem + 0x19000\n\ -_08119614: .4byte 0x00000000\n\ -_08119618: .4byte gUnknown_083F8DF4\n\ -_0811961C:\n\ -movs r0, 0x1\n\ -mov r3, r8\n\ -strh r0, [r3, 0x2E]\n\ -ldr r2, _08119634 @ =gSharedMem + 0x19000\n\ -ldrb r1, [r2, 0x3]\n\ -subs r0, 0x21\n\ -ands r0, r1\n\ -movs r1, 0x1\n\ -orrs r0, r1\n\ -strb r0, [r2, 0x3]\n\ -b _081195EA\n\ -.align 2, 0\n\ -_08119634: .4byte gSharedMem + 0x19000\n\ -_08119638:\n\ -lsrs r0, r5, 1\n\ -mov r1, r8\n\ -strh r0, [r1, 0x2E]\n\ -ldr r3, _08119654 @ =gSharedMem + 0x19000\n\ -movs r1, 0x1\n\ -ands r1, r5\n\ -ldrb r2, [r3, 0x3]\n\ -movs r0, 0x20\n\ -negs r0, r0\n\ -ands r0, r2\n\ -orrs r0, r1\n\ -strb r0, [r3, 0x3]\n\ -b _081195EA\n\ -.align 2, 0\n\ -_08119654: .4byte gSharedMem + 0x19000\n\ -_08119658:\n\ -movs r0, 0x98\n\ -lsls r0, 1\n\ -movs r1, 0x3F\n\ -bl PlayCry1\n\ -b _08119670\n\ -_08119664:\n\ -movs r0, 0x99\n\ -lsls r0, 1\n\ -movs r1, 0x3F\n\ -negs r1, r1\n\ -bl PlayCry1\n\ -_08119670:\n\ -movs r5, 0x2\n\ -ldr r4, _081196A0 @ =gSharedMem + 0x19000\n\ -adds r0, r4, 0\n\ -adds r0, 0x7F\n\ -ldrb r0, [r0]\n\ -adds r0, 0x2\n\ -movs r1, 0xC\n\ -bl __modsi3\n\ -lsls r0, 24\n\ -lsrs r3, r0, 24\n\ -ldrb r1, [r4, 0x3]\n\ -movs r0, 0x1F\n\ -ands r0, r1\n\ -cmp r0, 0x1\n\ -bne _081196A4\n\ -ldrb r1, [r4, 0x4]\n\ -movs r0, 0x3\n\ -ands r0, r1\n\ -cmp r0, 0x1\n\ -bne _081196A4\n\ -mov r0, r9\n\ -adds r0, 0x6\n\ -b _081196A8\n\ -.align 2, 0\n\ -_081196A0: .4byte gSharedMem + 0x19000\n\ -_081196A4:\n\ -mov r2, r9\n\ -adds r0, r2, r5\n\ -_081196A8:\n\ -lsls r0, 24\n\ -lsrs r0, 24\n\ -mov r9, r0\n\ -cmp r5, r9\n\ -bcs _0811970E\n\ -ldr r6, _08119734 @ =gSharedMem + 0x19000\n\ -ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC\n\ -_081196B6:\n\ -lsls r0, r3, 3\n\ -ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4\n\ -adds r0, r1\n\ -ldr r1, [r6, 0x8]\n\ -ldr r2, [r0]\n\ -ands r1, r2\n\ -cmp r1, 0\n\ -bne _081196F8\n\ -mov r0, r10\n\ -adds r1, r0, 0x1\n\ -lsls r1, 24\n\ -lsrs r1, 24\n\ -mov r10, r1\n\ -add r0, sp\n\ -strb r5, [r0]\n\ -ldr r0, [sp, 0xC]\n\ -cmp r0, 0\n\ -bne _081196F8\n\ -ldrb r0, [r6, 0x1A]\n\ -lsls r0, 28\n\ -lsrs r0, 28\n\ -ldr r1, _08119740 @ =gSharedMem + 0x1901B\n\ -adds r0, r1\n\ -ldrb r1, [r0]\n\ -lsls r0, r1, 2\n\ -adds r0, r1\n\ -lsls r0, 2\n\ -adds r0, r7\n\ -ldr r0, [r0]\n\ -ands r2, r0\n\ -cmp r2, 0\n\ -beq _081196F8\n\ -str r5, [sp, 0xC]\n\ -_081196F8:\n\ -adds r0, r3, 0x1\n\ -movs r1, 0xC\n\ -bl __modsi3\n\ -lsls r0, 24\n\ -lsrs r3, r0, 24\n\ -adds r0, r5, 0x1\n\ -lsls r0, 24\n\ -lsrs r5, r0, 24\n\ -cmp r5, r9\n\ -bcc _081196B6\n\ -_0811970E:\n\ -ldrb r0, [r4, 0x3]\n\ -lsls r0, 27\n\ -lsrs r0, 27\n\ -adds r0, 0x1\n\ -ldrb r1, [r4, 0x2]\n\ -ands r0, r1\n\ -cmp r0, 0\n\ -beq _08119756\n\ -ldr r2, [sp, 0xC]\n\ -cmp r2, 0\n\ -beq _08119744\n\ -movs r0, 0xFF\n\ -ldr r3, [sp, 0x10]\n\ -ands r0, r3\n\ -cmp r0, 0xBF\n\ -bhi _08119744\n\ -mov r0, r8\n\ -strh r2, [r0, 0x3C]\n\ -b _08119766\n\ -.align 2, 0\n\ -_08119734: .4byte gSharedMem + 0x19000\n\ -_08119738: .4byte gUnknown_083F8C00 + 0xC\n\ -_0811973C: .4byte gUnknown_083F8D90 + 0x4\n\ -_08119740: .4byte gSharedMem + 0x1901B\n\ -_08119744:\n\ -ldr r0, [sp, 0x10]\n\ -mov r1, r10\n\ -bl __modsi3\n\ -add r0, sp\n\ -ldrb r0, [r0]\n\ -mov r1, r8\n\ -strh r0, [r1, 0x3C]\n\ -b _08119766\n\ -_08119756:\n\ -ldr r0, [sp, 0x10]\n\ -mov r1, r10\n\ -bl __modsi3\n\ -add r0, sp\n\ -ldrb r0, [r0]\n\ -mov r2, r8\n\ -strh r0, [r2, 0x3C]\n\ -_08119766:\n\ -ldr r3, _0811977C @ =sub_8118CEC\n\ -mov r0, r8\n\ -str r3, [r0, 0x1C]\n\ -add sp, 0x14\n\ -pop {r3-r5}\n\ -mov r8, r3\n\ -mov r9, r4\n\ -mov r10, r5\n\ -pop {r4-r7}\n\ -pop {r0}\n\ -bx r0\n\ -.align 2, 0\n\ -_0811977C: .4byte sub_8118CEC\n\ -.syntax divided\n"); + asm_unified("push {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x14\n" + "\tmov r8, r0\n" + "\tmovs r0, 0\n" + "\tmov r10, r0\n" + "\tmovs r1, 0x5\n" + "\tmov r9, r1\n" + "\tmovs r2, 0\n" + "\tstr r2, [sp, 0xC]\n" + "\tmov r0, sp\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0xA\n" + "\tbl memset\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tstr r0, [sp, 0x10]\n" + "\tldr r7, _08119610 @ =gSharedMem + 0x19000\n" + "\tadds r0, r7, 0\n" + "\tadds r0, 0x7D\n" + "\tmovs r6, 0x1\n" + "\tstrb r6, [r0]\n" + "\tldrb r4, [r7, 0x3]\n" + "\tmovs r0, 0x20\n" + "\torrs r4, r0\n" + "\tmovs r0, 0x41\n" + "\tnegs r0, r0\n" + "\tands r4, r0\n" + "\tstrb r4, [r7, 0x3]\n" + "\tadds r1, r7, 0\n" + "\tadds r1, 0x7E\n" + "\tmovs r0, 0xFF\n" + "\tstrb r0, [r1]\n" + "\tadds r5, r7, 0\n" + "\tadds r5, 0x88\n" + "\tmov r3, r8\n" + "\tmovs r1, 0x34\n" + "\tldrsh r0, [r3, r1]\n" + "\tbl __floatsisf\n" + "\tstr r0, [r5]\n" + "\tadds r1, r7, 0\n" + "\tadds r1, 0x98\n" + "\tldr r0, _08119614 @ =0x00000000\n" + "\tstr r0, [r1]\n" + "\tadds r3, r7, 0\n" + "\tadds r3, 0x8C\n" + "\tldr r2, _08119618 @ =gUnknown_083F8DF4\n" + "\tldrb r0, [r7, 0x4]\n" + "\tlsls r0, 30\n" + "\tlsrs r1, r0, 25\n" + "\tadds r2, 0x1C\n" + "\tadds r1, r2\n" + "\tldr r1, [r1]\n" + "\tstr r1, [r3]\n" + "\tlsrs r0, 30\n" + "\tlsls r1, r0, 4\n" + "\tsubs r1, r0\n" + "\tlsls r1, 1\n" + "\tadds r1, 0x21\n" + "\tlsls r4, 27\n" + "\tlsrs r4, 27\n" + "\tsubs r6, r4\n" + "\tlsls r0, r6, 4\n" + "\tsubs r0, r6\n" + "\tadds r1, r0\n" + "\tlsls r1, 16\n" + "\tlsrs r1, 16\n" + "\tmov r5, r10\n" + "\tmov r3, r8\n" + "\tmovs r0, 0x34\n" + "\tldrsh r2, [r3, r0]\n" + "_081195C8:\n" + "\tcmp r1, r2\n" + "\tbge _081195D4\n" + "\tadds r0, r1, 0\n" + "\tadds r0, 0x5A\n" + "\tcmp r2, r0\n" + "\tble _08119638\n" + "_081195D4:\n" + "\tcmp r5, 0x3\n" + "\tbeq _0811961C\n" + "\tadds r0, r1, 0\n" + "\tadds r0, 0x5A\n" + "\tlsls r0, 16\n" + "\tlsrs r1, r0, 16\n" + "\tadds r0, r5, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tcmp r5, 0x3\n" + "\tbls _081195C8\n" + "_081195EA:\n" + "\tldr r0, _08119610 @ =gSharedMem + 0x19000\n" + "\tldrb r1, [r0, 0x3]\n" + "\tmovs r0, 0x1F\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08119664\n" + "\tmov r1, r8\n" + "\tmovs r2, 0x2E\n" + "\tldrsh r0, [r1, r2]\n" + "\tcmp r0, 0\n" + "\tbeq _08119658\n" + "\tmovs r0, 0x98\n" + "\tlsls r0, 1\n" + "\tmovs r1, 0x3F\n" + "\tnegs r1, r1\n" + "\tbl PlayCry1\n" + "\tb _08119670\n" + "\t.align 2, 0\n" + "_08119610: .4byte gSharedMem + 0x19000\n" + "_08119614: .4byte 0x00000000\n" + "_08119618: .4byte gUnknown_083F8DF4\n" + "_0811961C:\n" + "\tmovs r0, 0x1\n" + "\tmov r3, r8\n" + "\tstrh r0, [r3, 0x2E]\n" + "\tldr r2, _08119634 @ =gSharedMem + 0x19000\n" + "\tldrb r1, [r2, 0x3]\n" + "\tsubs r0, 0x21\n" + "\tands r0, r1\n" + "\tmovs r1, 0x1\n" + "\torrs r0, r1\n" + "\tstrb r0, [r2, 0x3]\n" + "\tb _081195EA\n" + "\t.align 2, 0\n" + "_08119634: .4byte gSharedMem + 0x19000\n" + "_08119638:\n" + "\tlsrs r0, r5, 1\n" + "\tmov r1, r8\n" + "\tstrh r0, [r1, 0x2E]\n" + "\tldr r3, _08119654 @ =gSharedMem + 0x19000\n" + "\tmovs r1, 0x1\n" + "\tands r1, r5\n" + "\tldrb r2, [r3, 0x3]\n" + "\tmovs r0, 0x20\n" + "\tnegs r0, r0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r3, 0x3]\n" + "\tb _081195EA\n" + "\t.align 2, 0\n" + "_08119654: .4byte gSharedMem + 0x19000\n" + "_08119658:\n" + "\tmovs r0, 0x98\n" + "\tlsls r0, 1\n" + "\tmovs r1, 0x3F\n" + "\tbl PlayCry1\n" + "\tb _08119670\n" + "_08119664:\n" + "\tmovs r0, 0x99\n" + "\tlsls r0, 1\n" + "\tmovs r1, 0x3F\n" + "\tnegs r1, r1\n" + "\tbl PlayCry1\n" + "_08119670:\n" + "\tmovs r5, 0x2\n" + "\tldr r4, _081196A0 @ =gSharedMem + 0x19000\n" + "\tadds r0, r4, 0\n" + "\tadds r0, 0x7F\n" + "\tldrb r0, [r0]\n" + "\tadds r0, 0x2\n" + "\tmovs r1, 0xC\n" + "\tbl __modsi3\n" + "\tlsls r0, 24\n" + "\tlsrs r3, r0, 24\n" + "\tldrb r1, [r4, 0x3]\n" + "\tmovs r0, 0x1F\n" + "\tands r0, r1\n" + "\tcmp r0, 0x1\n" + "\tbne _081196A4\n" + "\tldrb r1, [r4, 0x4]\n" + "\tmovs r0, 0x3\n" + "\tands r0, r1\n" + "\tcmp r0, 0x1\n" + "\tbne _081196A4\n" + "\tmov r0, r9\n" + "\tadds r0, 0x6\n" + "\tb _081196A8\n" + "\t.align 2, 0\n" + "_081196A0: .4byte gSharedMem + 0x19000\n" + "_081196A4:\n" + "\tmov r2, r9\n" + "\tadds r0, r2, r5\n" + "_081196A8:\n" + "\tlsls r0, 24\n" + "\tlsrs r0, 24\n" + "\tmov r9, r0\n" + "\tcmp r5, r9\n" + "\tbcs _0811970E\n" + "\tldr r6, _08119734 @ =gSharedMem + 0x19000\n" + "\tldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC\n" + "_081196B6:\n" + "\tlsls r0, r3, 3\n" + "\tldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4\n" + "\tadds r0, r1\n" + "\tldr r1, [r6, 0x8]\n" + "\tldr r2, [r0]\n" + "\tands r1, r2\n" + "\tcmp r1, 0\n" + "\tbne _081196F8\n" + "\tmov r0, r10\n" + "\tadds r1, r0, 0x1\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tmov r10, r1\n" + "\tadd r0, sp\n" + "\tstrb r5, [r0]\n" + "\tldr r0, [sp, 0xC]\n" + "\tcmp r0, 0\n" + "\tbne _081196F8\n" + "\tldrb r0, [r6, 0x1A]\n" + "\tlsls r0, 28\n" + "\tlsrs r0, 28\n" + "\tldr r1, _08119740 @ =gSharedMem + 0x1901B\n" + "\tadds r0, r1\n" + "\tldrb r1, [r0]\n" + "\tlsls r0, r1, 2\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r7\n" + "\tldr r0, [r0]\n" + "\tands r2, r0\n" + "\tcmp r2, 0\n" + "\tbeq _081196F8\n" + "\tstr r5, [sp, 0xC]\n" + "_081196F8:\n" + "\tadds r0, r3, 0x1\n" + "\tmovs r1, 0xC\n" + "\tbl __modsi3\n" + "\tlsls r0, 24\n" + "\tlsrs r3, r0, 24\n" + "\tadds r0, r5, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tcmp r5, r9\n" + "\tbcc _081196B6\n" + "_0811970E:\n" + "\tldrb r0, [r4, 0x3]\n" + "\tlsls r0, 27\n" + "\tlsrs r0, 27\n" + "\tadds r0, 0x1\n" + "\tldrb r1, [r4, 0x2]\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08119756\n" + "\tldr r2, [sp, 0xC]\n" + "\tcmp r2, 0\n" + "\tbeq _08119744\n" + "\tmovs r0, 0xFF\n" + "\tldr r3, [sp, 0x10]\n" + "\tands r0, r3\n" + "\tcmp r0, 0xBF\n" + "\tbhi _08119744\n" + "\tmov r0, r8\n" + "\tstrh r2, [r0, 0x3C]\n" + "\tb _08119766\n" + "\t.align 2, 0\n" + "_08119734: .4byte gSharedMem + 0x19000\n" + "_08119738: .4byte gUnknown_083F8C00 + 0xC\n" + "_0811973C: .4byte gUnknown_083F8D90 + 0x4\n" + "_08119740: .4byte gSharedMem + 0x1901B\n" + "_08119744:\n" + "\tldr r0, [sp, 0x10]\n" + "\tmov r1, r10\n" + "\tbl __modsi3\n" + "\tadd r0, sp\n" + "\tldrb r0, [r0]\n" + "\tmov r1, r8\n" + "\tstrh r0, [r1, 0x3C]\n" + "\tb _08119766\n" + "_08119756:\n" + "\tldr r0, [sp, 0x10]\n" + "\tmov r1, r10\n" + "\tbl __modsi3\n" + "\tadd r0, sp\n" + "\tldrb r0, [r0]\n" + "\tmov r2, r8\n" + "\tstrh r0, [r2, 0x3C]\n" + "_08119766:\n" + "\tldr r3, _0811977C @ =sub_8118CEC\n" + "\tmov r0, r8\n" + "\tstr r3, [r0, 0x1C]\n" + "\tadd sp, 0x14\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0811977C: .4byte sub_8118CEC"); } #endif @@ -3082,9 +3081,9 @@ void sub_8119BCC(struct Sprite *sprite) { m4aSongNumStartOrChange(0x5E); if(eRoulette->var38->data[0x0] == 0x0) - PlayCry1(0x130, 0x3F); + PlayCry1(SPECIES_TAILLOW, 0x3F); else - PlayCry1(0x130, -0x3F); + PlayCry1(SPECIES_TAILLOW, -0x3F); StartSpriteAnim(sprite, eRoulette->var38->data[0x0] + 0x2); sprite->data[0x1] = 45; sprite->callback = &sub_8119B24; -- cgit v1.2.3 From 421917f49866a132a22f354bd25b6a4122508555 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 7 Feb 2018 01:12:06 -0500 Subject: resolve debug differences in sub_8118F8C --- src/roulette.c | 151 +++++---------------------------------------------------- 1 file changed, 12 insertions(+), 139 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index bff6cfc03..f447cb05e 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -3330,144 +3330,13 @@ void sub_8118DE4(struct Sprite *sprite) } } -#if DEBUG -__attribute__((naked)) -void sub_8118F8C(struct Sprite *sprite) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6, r7}\n\ - add r6, r0, #0\n\ - bl sub_8118724\n\ - ldr r5, ._868 @ 0x2019000\n\ - mov r0, #0x8c\n\ - add r0, r0, r5\n\ - mov r8, r0\n\ - ldr r0, [r0]\n\ - ldr r1, ._868 + 4 @ 0x3f000000\n\ - bl __gtsf2\n\ - cmp r0, #0\n\ - bgt ._874 @cond_branch\n\ - add r0, r6, #0\n\ - bl sub_81186B8\n\ - add r0, r6, #0\n\ - bl sub_81186E8\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - bne ._864 @cond_branch\n\ - add r1, r5, #0\n\ - add r1, r1, #0x90\n\ - ldr r0, ._868 + 8 @ 0x0\n\ - str r0, [r1]\n\ - ldr r1, ._868 + 12 @ gUnknown_083F8DF4\n\ - mov r9, r1\n\ - ldrb r0, [r5, #0x4]\n\ - lsl r7, r0, #0x1e\n\ - lsr r0, r7, #0x19\n\ - add r0, r0, r9\n\ - mov r4, #0x3\n\ - ldsb r4, [r0, r4]\n\ - add r0, r4, #0\n\ - bl __floatsisf\n\ - add r5, r0, #0\n\ - cmp r4, #0\n\ - bge ._865 @cond_branch\n\ - ldr r1, ._868 + 16 @ 0x43800000\n\ - bl __addsf3\n\ - add r5, r0, #0\n\ -._865:\n\ - lsr r0, r7, #0x19\n\ - add r0, r0, r9\n\ - ldrb r0, [r0, #0x4]\n\ - add r0, r0, #0x1\n\ - bl __floatsisf\n\ - add r1, r0, #0\n\ - add r0, r5, #0\n\ - bl __divsf3\n\ - add r1, r0, #0\n\ - mov r2, r8\n\ - ldr r0, [r2]\n\ - bl __subsf3\n\ - mov r1, r8\n\ - str r0, [r1]\n\ - mov r0, #0x4\n\ - strh r0, [r6, #0x30]\n\ - ldr r0, ._868 + 20 @ unk_2039560\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._866 @cond_branch\n\ - ldr r0, ._868 + 24 @ debug_sub_812E698\n\ - str r0, [r6, #0x1c]\n\ - b ._874\n\ -._869:\n\ - .align 2, 0\n\ -._868:\n\ - .word 0x2019000\n\ - .word 0x3f000000\n\ - .word 0x0\n\ - .word gUnknown_083F8DF4\n\ - .word 0x43800000\n\ - .word unk_2039560\n\ - .word debug_sub_812E698+1\n\ -._866:\n\ - ldr r0, ._871 @ sub_8118DE4\n\ - str r0, [r6, #0x1c]\n\ - b ._874\n\ -._872:\n\ - .align 2, 0\n\ -._871:\n\ - .word sub_8118DE4+1\n\ -._864:\n\ - add r6, r5, #0\n\ - add r6, r6, #0x90\n\ - ldr r0, [r6]\n\ - ldr r4, ._875 @ 0x0\n\ - add r1, r4, #0\n\ - bl __nesf2\n\ - cmp r0, #0\n\ - beq ._874 @cond_branch\n\ - mov r2, r8\n\ - ldr r0, [r2]\n\ - add r1, r4, #0\n\ - bl __ltsf2\n\ - cmp r0, #0\n\ - bge ._874 @cond_branch\n\ - str r4, [r6]\n\ - mov r0, r8\n\ - str r4, [r0]\n\ - add r4, r5, #0\n\ - add r4, r4, #0x98\n\ - ldr r0, [r4]\n\ - bl __extendsfdf2\n\ - ldr r2, ._875 + 4 @ 0x3ff33333\n\ - ldr r3, ._875 + 8 @ 0x33333333\n\ - bl __divdf3\n\ - bl __truncdfsf2\n\ - str r0, [r4]\n\ -._874:\n\ - pop {r3, r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._876:\n\ - .align 2, 0\n\ -._875:\n\ - .word 0x0\n\ - .word 0x3ff33333\n\ - .word 0x33333333"); -} -#else void sub_8118F8C(struct Sprite *sprite) { sub_8118724(sprite); if (!(eRoulette->var8C > 0.5f)) { sub_81186B8(sprite); - if (sub_81186E8(sprite) == 0x0) + if (!sub_81186E8(sprite)) { struct StructgUnknown_083F8DF4 *p; eRoulette->var90 = 0.0f; @@ -3475,7 +3344,12 @@ void sub_8118F8C(struct Sprite *sprite) eRoulette->var8C -= ((float)p[eRoulette->var04_0].var03) / ((float)(s16)(p[eRoulette->var04_0].var04 + 0x1)); sprite->data[0x1] = 0x4; - sprite->callback = &sub_8118DE4; +#if DEBUG + if (unk_2039560) + sprite->callback = debug_sub_812E698; + else +#endif + sprite->callback = sub_8118DE4; } else { @@ -3491,7 +3365,6 @@ void sub_8118F8C(struct Sprite *sprite) } } } -#endif void sub_8119088(struct Sprite *sprite) { @@ -3979,7 +3852,7 @@ void sub_811952C(struct Sprite *sprite) void sub_8119780(struct Sprite *sprite) { - if (!(sprite->data[0x1]++ < sprite->data[0x3])) + if (sprite->data[0x1]++ >= sprite->data[0x3]) { if ((sprite->pos1.x -= 0x2) < -0x10) { @@ -4118,7 +3991,7 @@ void sub_8119AAC(struct Sprite *sprite) void sub_8119B24(struct Sprite *sprite) { - if (!(sprite->data[0x1] < 0x0)) + if (sprite->data[0x1] >= 0x0) { sprite->data[0x1]--; sprite->pos1.y--; @@ -4127,7 +4000,7 @@ void sub_8119B24(struct Sprite *sprite) } else { - if (!(sprite->data[0x3] < 0x0)) + if (sprite->data[0x3] >= 0x0) { sprite->data[0x3]--; if (sprite->animDelayCounter == 0x0) @@ -4166,7 +4039,7 @@ void sub_8119BCC(struct Sprite *sprite) } else { - if (!(sprite->data[0x1] < 0x0)) + if (sprite->data[0x1] >= 0x0) { sprite->pos1.x += t[eRoulette->var38->data[0x0]] * z[0x7 - sprite->data[0x1]][0x0]; sprite->pos1.y += z[0x7 - sprite->data[0x1]][0x1]; @@ -4189,7 +4062,7 @@ void sub_8119D08(struct Sprite *sprite) { s8 t[0x2]; //sign memcpy(t, &gUnknown_083FA64A, 0x2); - if (!(sprite->data[0x1]-- < 0x0)) + if (sprite->data[0x1]-- >= 0x0) { sprite->pos1.x += t[eRoulette->var38->data[0x0]] * 0x2; gSprites[sprite->data[0x6]].invisible ^= 0x1; -- cgit v1.2.3 From f70f8a62842670eb5979ef18487a2ab25bca7922 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 7 Feb 2018 23:15:00 -0500 Subject: Fix debug rom (?) --- src/roulette.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index f447cb05e..9197fe6be 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -3345,7 +3345,7 @@ void sub_8118F8C(struct Sprite *sprite) / ((float)(s16)(p[eRoulette->var04_0].var04 + 0x1)); sprite->data[0x1] = 0x4; #if DEBUG - if (unk_2039560) + if (unk_2039560[0]) sprite->callback = debug_sub_812E698; else #endif -- cgit v1.2.3 From 605c4b66f0d53198413a3ebe69171eefa193f3b0 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 18 Feb 2018 16:14:49 -0600 Subject: decompile more debug code --- src/roulette.c | 256 ++++++++++++++++----------------------------------------- 1 file changed, 73 insertions(+), 183 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 9197fe6be..85b1c053b 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -317,7 +317,7 @@ extern const s8 gUnknown_083FA64C[0x8][0x2]; #if DEBUG EWRAM_DATA u8 unk_203955C[4] = { 0 }; -EWRAM_DATA u8 unk_2039560[4] = { 0 }; +EWRAM_DATA u8 unk_2039560 = 0; #endif @@ -1008,7 +1008,7 @@ void sub_811597C(u8 taskid) void sub_81159BC(u8 taskid) { s16 i; - if(eRoulette->var08 & 0x20) + if (eRoulette->var08 & 0x20) { for (i = 0xB; (i < 0xE); i++) if ((eRoulette->var08 & gUnknown_083F8C00[i].var08) == 0) @@ -1380,9 +1380,9 @@ void sub_8116474(u8 taskid) { if (gTasks[taskid].data[0x1]-- > 0x0) { - if(gTasks[taskid].data[0x1] > 0x2) + if (gTasks[taskid].data[0x1] > 0x2) gSpriteCoordOffsetX -= 0x2; - if((eRoulette->var26 -= 0x4) == 0x68) + if ((eRoulette->var26 -= 0x4) == 0x68) gSprites[eRoulette->var3C[0x19]].callback = &sub_81184CC; } else @@ -1400,7 +1400,7 @@ void sub_8116514(u8 taskid) { if (gTasks[taskid].data[0x1]-- > 0x1) { - switch(gTasks[taskid].data[0x1] % 0x10) + switch (gTasks[taskid].data[0x1] % 0x10) { case 0x8: sub_8117AA8(0x0, 0xFF); @@ -1420,14 +1420,14 @@ void sub_8116514(u8 taskid) void sub_811659C(u8 taskid) { - switch(gTasks[taskid].data[0x5]) + switch (gTasks[taskid].data[0x5]) { case 0x1: case 0x2: if (IsFanfareTaskInactive()) { u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS); - if(wins < ++gTasks[taskid].data[0xB]) + if (wins < ++gTasks[taskid].data[0xB]) SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskid].data[0xB]); sub_8116C34(taskid, &sub_811677C, 0xFFFF, 0x3); } @@ -1444,7 +1444,7 @@ void sub_811659C(u8 taskid) void sub_8116638(u8 taskid) { - switch(gTasks[taskid].data[0x5]) + switch (gTasks[taskid].data[0x5]) { case 0x1: case 0x2: @@ -1474,7 +1474,7 @@ void sub_8116638(u8 taskid) void sub_81166E8(u8 taskid) { s32 r0 = gTasks[taskid].data[0x7]; - switch(r0) + switch (r0) { case 0x0: gTasks[taskid].data[0xD]++; @@ -1684,7 +1684,7 @@ void sub_8116B40(u8 taskid) // end roulette ? void sub_8116BC0(u8 taskid) { - if(eRoulette->varA8 == 0 || gMain.newKeys & eRoulette->varAA) + if (eRoulette->varA8 == 0 || gMain.newKeys & eRoulette->varAA) { gTasks[taskid].func = eRoulette->varAC; if (eRoulette->varAA > 0) @@ -1700,7 +1700,7 @@ void sub_8116BC0(u8 taskid) void sub_8116C34(u8 taskid, TaskFunc r1, u16 r2, u16 r3) { eRoulette->varB4 = gTasks[taskid].func; - if(r1 == NULL) + if (r1 == NULL) r1 = eRoulette->varB4; eRoulette->varAC = r1; eRoulette->varA8 = r2; @@ -1780,7 +1780,7 @@ u8 sub_8116E5C(u8 r0, u8 r1) u8 t = r0; if (--r0 < 0x13) { - switch(r1) + switch (r1) { case 0x0: return 0x3; @@ -1810,7 +1810,7 @@ void sub_8116EF8(u8 r0) u8 var2; u16 var3; u8 i; - switch(r0) + switch (r0) { case 0x5: case 0xA: @@ -1889,7 +1889,7 @@ void sub_8117158(u8 r0) eRoulette->var2A = 0x1; sub_8117AA8(0x0, 0x0); sub_8124E2C(gBGTilemapBuffers[1], (u16 *)ewram18800, 0xE, 0x7, 0x10, 0xD); - switch(r0) + switch (r0) { case 0x0: return; @@ -2327,7 +2327,7 @@ void debug_sub_812CDE4() } __attribute__((naked)) -void debug_sub_812CFE8() +void debug_sub_812CFE8(u8 taskId) { asm("\ push {r4, r5, lr}\n\ @@ -2403,66 +2403,22 @@ void debug_sub_812CFE8() #endif -#if DEBUG -__attribute__((naked)) -void PlayRoulette(void) -{ - asm("\ - push {lr}\n\ - bl ScriptContext2_Enable\n\ - ldr r1, ._604 @ unk_2039560\n\ - mov r0, #0x0\n\ - strb r0, [r1]\n\ - ldr r0, ._604 + 4 @ unk_203955C\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._602 @cond_branch\n\ - ldr r0, ._604 + 8 @ debug_sub_812CFE8\n\ - mov r1, #0x0\n\ - bl CreateTask\n\ - b ._603\n\ -._605:\n\ - .align 2, 0\n\ -._604:\n\ - .word unk_2039560\n\ - .word unk_203955C\n\ - .word debug_sub_812CFE8+1\n\ -._602:\n\ - ldr r0, ._606 @ Task_Roulette_0\n\ - mov r1, #0x0\n\ - bl CreateTask\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r2, ._606 + 4 @ gTasks\n\ - lsl r1, r0, #0x2\n\ - add r1, r1, r0\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r2\n\ - ldr r0, ._606 + 8 @ gSaveBlock1\n\ - ldr r2, ._606 + 12 @ 0x494\n\ - add r0, r0, r2\n\ - ldrh r0, [r0]\n\ - strh r0, [r1, #0x22]\n\ -._603:\n\ - pop {r0}\n\ - bx r0\n\ -._607:\n\ - .align 2, 0\n\ -._606:\n\ - .word Task_Roulette_0+1\n\ - .word gTasks\n\ - .word gSaveBlock1\n\ - .word 0x494"); -} -#else void PlayRoulette(void) { u8 taskid; + ScriptContext2_Enable(); - taskid = CreateTask(&Task_Roulette_0, 0x0); +#if DEBUG + unk_2039560 = 0; + if (unk_203955C[0] != 0) + { + taskid = CreateTask(debug_sub_812CFE8, 0); + return; + } +#endif + taskid = CreateTask(Task_Roulette_0, 0); gTasks[taskid].data[0xD] = gSaveBlock1.coins; } -#endif void sub_8117838(u8 r0) { @@ -2548,7 +2504,7 @@ void unref_sub_8117A74(void) //destroy all sprites at 0x1D void sub_8117AA8(u8 r0, u8 r1) { u8 i; - switch(r0) + switch (r0) { case 0x1: for (i = 0x0; i < 0x13; i++) @@ -2564,7 +2520,7 @@ void sub_8117AA8(u8 r0, u8 r1) else gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE; } - for ( ; i < 0x13; i++) + for (; i < 0x13; i++) gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE; break; } @@ -2577,7 +2533,7 @@ void sub_8117BBC(void) { eRoulette->var3C[0x31 + i] = CreateSprite(&gSpriteTemplate_83FA40C, 0x74, 0x14, 0xA); gSprites[eRoulette->var3C[0x31 + i]].invisible = TRUE; - gSprites[eRoulette->var3C[0x31 + i]].data[0] = 0x1; + gSprites[eRoulette->var3C[0x31 + i]].data[0] = 0x1; gSprites[eRoulette->var3C[0x31 + i]].callback = &sub_81184CC; gSprites[eRoulette->var3C[0x31 + i]].oam.priority = 0x1; StartSpriteAnim(&gSprites[eRoulette->var3C[0x31 + i]], 0x8); @@ -2731,7 +2687,7 @@ u8 sub_81181E8(u8 r0) // u8 t = {0, 1, 2, 3, 4}; if (r0 >= 20) r0 = 0; - switch(gUnknown_083F8C00[r0].var01_0) + switch (gUnknown_083F8C00[r0].var01_0) { case 0x3: r0 = r0 / 5 - 1; @@ -2766,7 +2722,7 @@ void sub_81182F8(u8 r0) u8 t = 0x0; if (eRoulette->var19 == 0x1) t = 0x2; - switch(r0) + switch (r0) { case 0x6: for (i = 0x0; i < 0x3; i++) @@ -3006,7 +2962,7 @@ void sub_81189A8(struct Sprite *sprite) float f0, f1, f2; struct StructgUnknown_083F8DF4 *p; sub_8118724(sprite); - switch(sprite->data[0x3]) + switch (sprite->data[0x3]) { case 0: if (sprite->data[0x0] != 0x1) @@ -3072,7 +3028,7 @@ void sub_8118BD8(struct Sprite *sprite) if (sprite->data[0x2]++ < 45) { sprite->pos2.y--; - if(sprite->data[0x2] == 45) + if (sprite->data[0x2] == 45) { if (gSprites[eRoulette->var3C[0x37]].animCmdIndex == 0x1) sprite->pos2.y++; @@ -3106,7 +3062,7 @@ void sub_8118BD8(struct Sprite *sprite) void sub_8118CAC(struct Sprite *sprite) { sub_8118724(sprite); - switch(sprite->data[0x3]) + switch (sprite->data[0x3]) { case 90: if (sprite->data[0x0] != 0x1) @@ -3128,7 +3084,7 @@ void sub_8118CAC(struct Sprite *sprite) void sub_8118CEC(struct Sprite *sprite) { sub_8118724(sprite); - switch(eRoulette->var03_0) + switch (eRoulette->var03_0) { default: case 0x0: @@ -3171,96 +3127,30 @@ void sub_8118D2C(struct Sprite *sprite) } #if DEBUG -__attribute__((naked)) -void debug_sub_812E698() + +void debug_sub_812E698(struct Sprite *sprite) { - asm("\ - push {r4, r5, r6, r7, lr}\n\ - add r7, r0, #0\n\ - bl sub_8118724\n\ - mov r0, #0x0\n\ - strh r0, [r7, #0x32]\n\ - add r0, r7, #0\n\ - bl sub_81186B8\n\ - mov r0, #0x38\n\ - bl m4aSongNumStart\n\ - bl Random\n\ - mov r1, #0x1\n\ - and r1, r1, r0\n\ - cmp r1, #0\n\ - beq ._837 @cond_branch\n\ - ldr r4, ._839 @ 0x2019000\n\ - add r1, r4, #0\n\ - add r1, r1, #0x8c\n\ - ldr r0, ._839 + 4 @ 0x0\n\ - str r0, [r1]\n\ - add r0, r4, #0\n\ - add r0, r0, #0x7e\n\ - ldrb r0, [r0]\n\ - add r0, r0, #0x1\n\ - mov r1, #0xc\n\ - bl __modsi3\n\ - add r1, r4, #0\n\ - add r1, r1, #0x7f\n\ - strb r0, [r1]\n\ - add r1, r4, #0\n\ - ldr r4, ._839 + 8 @ gUnknown_083F8DF4\n\ - b ._838\n\ -._840:\n\ - .align 2, 0\n\ -._839:\n\ - .word 0x2019000\n\ - .word 0x0\n\ - .word gUnknown_083F8DF4\n\ -._837:\n\ - ldr r6, ._841 @ 0x2019000\n\ - add r5, r6, #0\n\ - add r5, r5, #0x8c\n\ - ldr r4, ._841 + 4 @ gUnknown_083F8DF4\n\ - ldrb r0, [r6, #0x4]\n\ - lsl r0, r0, #0x1e\n\ - lsr r0, r0, #0x19\n\ - add r1, r4, #0\n\ - add r1, r1, #0x1c\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - add r0, r1, #0\n\ - bl __addsf3\n\ - str r0, [r5]\n\ - add r0, r6, #0\n\ - add r0, r0, #0x7e\n\ - ldrb r0, [r0]\n\ - add r1, r6, #0\n\ - add r1, r1, #0x7f\n\ - strb r0, [r1]\n\ - add r1, r6, #0\n\ -._838:\n\ - mov r0, #0x1\n\ - strh r0, [r7, #0x2e]\n\ - ldrb r0, [r1, #0x4]\n\ - lsl r0, r0, #0x1e\n\ - lsr r0, r0, #0x19\n\ - add r0, r0, r4\n\ - ldrb r0, [r0, #0x2]\n\ - strh r0, [r7, #0x32]\n\ - add r1, r1, #0x98\n\ - ldr r0, ._841 + 8 @ 0x3dae147b\n\ - str r0, [r1]\n\ - ldr r0, ._841 + 12 @ sub_8118D2C\n\ - str r0, [r7, #0x1c]\n\ - mov r0, #0x5\n\ - strh r0, [r7, #0x30]\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._842:\n\ - .align 2, 0\n\ -._841:\n\ - .word 0x2019000\n\ - .word gUnknown_083F8DF4\n\ - .word 0x3dae147b\n\ - .word sub_8118D2C+1"); + sub_8118724(sprite); + sprite->data[2] = 0; + sub_81186B8(sprite); + m4aSongNumStart(0x38); + if (Random() & 1) + { + eRoulette->var8C = 0; + eRoulette->var7F = (eRoulette->var7E + 1) % 12; + } + else + { + eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C * 2; + eRoulette->var7F = eRoulette->var7E; + } + sprite->data[0] = 1; + sprite->data[2] = gUnknown_083F8DF4[eRoulette->var04_0].var02; + eRoulette->var98 = 0.085; + sprite->callback = sub_8118D2C; + sprite->data[1] = 5; } + #endif void sub_8118DE4(struct Sprite *sprite) @@ -3345,7 +3235,7 @@ void sub_8118F8C(struct Sprite *sprite) / ((float)(s16)(p[eRoulette->var04_0].var04 + 0x1)); sprite->data[0x1] = 0x4; #if DEBUG - if (unk_2039560[0]) + if (unk_2039560 != 0) sprite->callback = debug_sub_812E698; else #endif @@ -3852,17 +3742,16 @@ void sub_811952C(struct Sprite *sprite) void sub_8119780(struct Sprite *sprite) { - if (sprite->data[0x1]++ >= sprite->data[0x3]) + if (sprite->data[1]++ >= sprite->data[3]) { - if ((sprite->pos1.x -= 0x2) < -0x10) + sprite->pos1.x -= 2; + if (sprite->pos1.x < -16) { if (!eRoulette->var03_6) - { eRoulette->var03_6 = TRUE; - } DestroySprite(sprite); - eRoulette->var01 = 0x0; - eRoulette->var34 = gUnknown_083FA61E[0x0]; + eRoulette->var01 = 0; + eRoulette->var34 = gUnknown_083FA61E[0]; } } } @@ -3871,18 +3760,19 @@ void sub_81197D8(struct Sprite *sprite) { u16 t[0x3][0x4]; s32 p, z; - memcpy(t, &gUnknown_083FA632, 0x18); - if (sprite->data[0x1]++ < sprite->data[0x3]) + + memcpy(t, &gUnknown_083FA632, 24); + if (sprite->data[1]++ < sprite->data[3]) { - if(sprite->data[0x1] & 0x1) + if (sprite->data[1] & 1) { - gSpriteCoordOffsetY = t[sprite->data[0x2] / 0x2][sprite->data[0x7]]; - p = z = sprite->data[0x7] + 0x1; + gSpriteCoordOffsetY = t[sprite->data[2] / 2][sprite->data[7]]; + p = z = sprite->data[7] + 1; if (z < 0) - p += 0x3; - sprite->data[0x7] = z - ((p >> 2) * 4); + p += 3; + sprite->data[7] = z - ((p >> 2) * 4); } - sprite->invisible ^= 0x1; + sprite->invisible ^= 1; } else { @@ -3915,7 +3805,7 @@ void sub_8119898(struct Sprite *sprite) void sub_8119964(struct Sprite *sprite) { - if(sprite->data[0x7] == 0x0) + if (sprite->data[0x7] == 0x0) { register u32 t asm("r2"); u32 z ; @@ -4047,7 +3937,7 @@ void sub_8119BCC(struct Sprite *sprite) else { m4aSongNumStartOrChange(0x5E); - if(eRoulette->var38->data[0x0] == 0x0) + if (eRoulette->var38->data[0x0] == 0x0) PlayCry1(SPECIES_TAILLOW, 0x3F); else PlayCry1(SPECIES_TAILLOW, -0x3F); -- cgit v1.2.3 From 5388d28bf33b38bb8dbb825564491feaa89c1787 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 18 Feb 2018 17:37:29 -0600 Subject: decompile more debug code --- src/roulette.c | 509 +++------------------------------------------------------ 1 file changed, 27 insertions(+), 482 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index 85b1c053b..fe6c6dc8e 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -133,7 +133,7 @@ struct StructgUnknown_083F8D90 }; #if DEBUG -u8 gUnknown_Debug_03005FB8; +void *gUnknown_Debug_03005FB8; #endif #define static @@ -304,6 +304,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83FA434; extern void (*gFieldCallback)(void); extern struct MusicPlayerInfo gMPlay_SE1; extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlay_SE3; extern const u16 gUnknown_083FA60E[0x2][0x2]; extern const struct SpriteTemplate gSpriteTemplate_83FA50C; extern const struct SpriteTemplate gSpriteTemplate_83FA5C0[]; @@ -403,309 +404,15 @@ void sub_8115238(void) RtcCalcLocalTime(); } -#if DEBUG -__attribute__((naked)) -void sub_8115384(void) -{ - asm("\ - push {r4, lr}\n\ - add sp, sp, #0xfffffffc\n\ - ldr r1, ._35 @ gUnknown_Debug_03005FB8\n\ - ldr r0, ._35 + 4 @ 0x2019000\n\ - str r0, [r1]\n\ - ldr r1, ._35 + 8 @ gMain\n\ - ldr r2, ._35 + 12 @ 0x43c\n\ - add r0, r1, r2\n\ - ldrb r0, [r0]\n\ - add r2, r1, #0\n\ - cmp r0, #0x7\n\ - bls ._33 @cond_branch\n\ - b ._64\n\ -._33:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._35 + 16 @ \n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._36:\n\ - .align 2, 0\n\ -._35:\n\ - .word gUnknown_Debug_03005FB8\n\ - .word 0x2019000\n\ - .word gMain\n\ - .word 0x43c\n\ - .word ._37\n\ -._37:\n\ - .word ._38\n\ - .word ._39\n\ - .word ._40\n\ - .word ._41\n\ - .word ._42\n\ - .word ._43\n\ - .word ._44\n\ - .word ._45\n\ -._38:\n\ - mov r0, #0x0\n\ - bl SetVBlankCallback\n\ - bl ScanlineEffect_Stop\n\ - bl ClearVideoCallbacks\n\ - bl sub_80F9368\n\ - ldr r1, ._47 @ 0x400000c\n\ - ldr r3, ._47 + 4 @ 0x4686\n\ - add r0, r3, #0\n\ - strh r0, [r1]\n\ - sub r1, r1, #0x2\n\ - ldr r2, ._47 + 8 @ 0x4401\n\ - add r0, r2, #0\n\ - strh r0, [r1]\n\ - add r1, r1, #0x46\n\ - mov r3, #0x90\n\ - lsl r3, r3, #0x6\n\ - add r0, r3, #0\n\ - strh r0, [r1]\n\ - add r1, r1, #0x2\n\ - ldr r2, ._47 + 12 @ 0x60a\n\ - add r0, r2, #0\n\ - strh r0, [r1]\n\ - ldr r0, ._47 + 16 @ gUnknown_08E8096C\n\ - mov r1, #0xc0\n\ - lsl r1, r1, #0x13\n\ - bl LZ77UnCompVram\n\ - ldr r0, ._47 + 20 @ gRouletteWheelTiles\n\ - ldr r1, ._47 + 24 @ 0x6004000\n\ - bl LZ77UnCompVram\n\ - ldr r1, ._47 + 28 @ gMain\n\ - ldr r3, ._47 + 32 @ 0x43c\n\ - add r1, r1, r3\n\ - b ._61\n\ -._48:\n\ - .align 2, 0\n\ -._47:\n\ - .word 0x400000c\n\ - .word 0x4686\n\ - .word 0x4401\n\ - .word 0x60a\n\ - .word gUnknown_08E8096C\n\ - .word gRouletteWheelTiles\n\ - .word 0x6004000\n\ - .word gMain\n\ - .word 0x43c\n\ -._39:\n\ - bl ResetPaletteFade\n\ - bl ResetSpriteData\n\ - bl ResetTasks\n\ - ldr r1, ._50 @ gMain\n\ - ldr r0, ._50 + 4 @ 0x43c\n\ - add r1, r1, r0\n\ - b ._61\n\ -._51:\n\ - .align 2, 0\n\ -._50:\n\ - .word gMain\n\ - .word 0x43c\n\ -._40:\n\ - ldr r0, ._53 @ gWindowTemplate_81E6C3C\n\ - bl Text_LoadWindowTemplate\n\ - ldr r0, ._53 + 4 @ gWindowTemplate_81E6CE4\n\ - bl InitMenuWindow\n\ - ldr r0, ._53 + 8 @ gUnknown_083F86BC\n\ - mov r2, #0xe0\n\ - lsl r2, r2, #0x1\n\ - mov r1, #0x0\n\ - bl LoadPalette\n\ - ldr r1, ._53 + 12 @ gMain\n\ - ldr r2, ._53 + 16 @ 0x43c\n\ - add r1, r1, r2\n\ - b ._61\n\ -._54:\n\ - .align 2, 0\n\ -._53:\n\ - .word gWindowTemplate_81E6C3C\n\ - .word gWindowTemplate_81E6CE4\n\ - .word gUnknown_083F86BC\n\ - .word gMain\n\ - .word 0x43c\n\ -._41:\n\ - bl sub_8115238\n\ - bl ClearBGTilemapBuffers\n\ - ldr r0, ._56 @ gUnknown_083F88BC\n\ - ldr r1, ._56 + 4 @ 0x2018800\n\ - bl LZ77UnCompWram\n\ - ldr r0, ._56 + 8 @ gUnknown_083F8A60\n\ - ldr r1, ._56 + 12 @ 0x6003000\n\ - bl LZ77UnCompVram\n\ - ldr r1, ._56 + 16 @ gMain\n\ - ldr r3, ._56 + 20 @ 0x43c\n\ - add r1, r1, r3\n\ - b ._61\n\ -._57:\n\ - .align 2, 0\n\ -._56:\n\ - .word gUnknown_083F88BC\n\ - .word 0x2018800\n\ - .word gUnknown_083F8A60\n\ - .word 0x6003000\n\ - .word gMain\n\ - .word 0x43c\n\ -._42:\n\ - mov r0, #0x0\n\ - bl sub_8117838\n\ - bl sub_811857C\n\ - bl sub_81184D8\n\ - bl sub_8117F2C\n\ - bl sub_8117900\n\ - bl sub_8117BBC\n\ - bl sub_8117DF4\n\ - ldr r1, ._59 @ gMain\n\ - ldr r0, ._59 + 4 @ 0x43c\n\ - add r1, r1, r0\n\ - b ._61\n\ -._60:\n\ - .align 2, 0\n\ -._59:\n\ - .word gMain\n\ - .word 0x43c\n\ -._43:\n\ - bl AnimateSprites\n\ - bl BuildOamBuffer\n\ - ldr r0, ._62 @ gSaveBlock1\n\ - ldr r1, ._62 + 4 @ 0x494\n\ - add r0, r0, r1\n\ - ldrh r0, [r0]\n\ - bl sub_81180F4\n\ - mov r0, #0x6\n\ - bl sub_81182F8\n\ - mov r0, #0x0\n\ - bl sub_811829C\n\ - mov r0, #0x0\n\ - bl sub_8117158\n\ - mov r0, #0x0\n\ - mov r1, #0xe\n\ - mov r2, #0x1d\n\ - mov r3, #0x13\n\ - bl Menu_DrawStdWindowFrame\n\ - ldr r0, ._62 + 8 @ gUnknown_081C4157\n\ - mov r1, #0x1\n\ - mov r2, #0xf\n\ - bl Menu_PrintText\n\ - ldr r1, ._62 + 12 @ gSpriteCoordOffsetX\n\ - mov r2, #0x3c\n\ - neg r2, r2\n\ - add r0, r2, #0\n\ - strh r0, [r1]\n\ - ldr r1, ._62 + 16 @ gSpriteCoordOffsetY\n\ - mov r0, #0x0\n\ - strh r0, [r1]\n\ - ldr r1, ._62 + 20 @ gMain\n\ - ldr r3, ._62 + 24 @ 0x43c\n\ - add r1, r1, r3\n\ - b ._61\n\ -._63:\n\ - .align 2, 0\n\ -._62:\n\ - .word gSaveBlock1\n\ - .word 0x494\n\ - .word gUnknown_081C4157\n\ - .word gSpriteCoordOffsetX\n\ - .word gSpriteCoordOffsetY\n\ - .word gMain\n\ - .word 0x43c\n\ -._44:\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x13\n\ - ldr r3, ._65 @ 0x1741\n\ - add r0, r3, #0\n\ - strh r0, [r1]\n\ - ldr r0, ._65 + 4 @ 0x43c\n\ - add r1, r2, r0\n\ -._61:\n\ - ldrb r0, [r1]\n\ - add r0, r0, #0x1\n\ - strb r0, [r1]\n\ - b ._64\n\ -._66:\n\ - .align 2, 0\n\ -._65:\n\ - .word 0x1741\n\ - .word 0x43c\n\ -._45:\n\ - ldr r3, ._67 @ 0x4000208\n\ - ldrh r2, [r3]\n\ - mov r0, #0x0\n\ - strh r0, [r3]\n\ - ldr r4, ._67 + 4 @ 0x4000200\n\ - ldrh r0, [r4]\n\ - mov r1, #0x1\n\ - orr r0, r0, r1\n\ - strh r0, [r4]\n\ - strh r2, [r3]\n\ - ldr r2, ._67 + 8 @ 0x4000004\n\ - ldrh r0, [r2]\n\ - mov r1, #0x8\n\ - orr r0, r0, r1\n\ - strh r0, [r2]\n\ - ldr r0, ._67 + 12 @ sub_8115124\n\ - bl SetVBlankCallback\n\ - mov r0, #0x1\n\ - str r0, [sp]\n\ - mov r0, #0xff\n\ - mov r1, #0x0\n\ - mov r2, #0x10\n\ - mov r3, #0x0\n\ - bl BeginHardwarePaletteFade\n\ - ldr r0, ._67 + 16 @ sub_81156BC\n\ - mov r1, #0x0\n\ - bl CreateTask\n\ - ldr r4, ._67 + 20 @ 0x2019000\n\ - add r1, r4, #0\n\ - add r1, r1, #0xa4\n\ - strb r0, [r1]\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r2, ._67 + 24 @ gTasks\n\ - lsl r1, r0, #0x2\n\ - add r1, r1, r0\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r2\n\ - mov r0, #0x6\n\ - strh r0, [r1, #0x14]\n\ - ldr r0, ._67 + 28 @ gSaveBlock1\n\ - ldr r2, ._67 + 32 @ 0x494\n\ - add r0, r0, r2\n\ - ldrh r0, [r0]\n\ - strh r0, [r1, #0x22]\n\ - ldr r0, ._67 + 36 @ sub_8115634\n\ - mov r1, #0x1\n\ - bl CreateTask\n\ - add r4, r4, #0xa5\n\ - strb r0, [r4]\n\ - ldr r0, ._67 + 40 @ sub_81150FC\n\ - bl SetMainCallback2\n\ -._64:\n\ - add sp, sp, #0x4\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ -._68:\n\ - .align 2, 0\n\ -._67:\n\ - .word 0x4000208\n\ - .word 0x4000200\n\ - .word 0x4000004\n\ - .word sub_8115124+1\n\ - .word sub_81156BC+1\n\ - .word 0x2019000\n\ - .word gTasks\n\ - .word gSaveBlock1\n\ - .word 0x494\n\ - .word sub_8115634+1\n\ - .word sub_81150FC+1"); -} -#else void sub_8115384(void) { u32 temp_IME; u8 taskid; + +#if DEBUG + gUnknown_Debug_03005FB8 = eRoulette; +#endif + switch (gMain.state) { case 0x0: @@ -783,125 +490,13 @@ void sub_8115384(void) break; } } -#endif -#if DEBUG -__attribute__((naked)) -void sub_8115634(u8 unused) -{ - asm("\ - push {r4, r5, r6, lr}\n\ - ldr r0, ._75 @ 0x2019000\n\ - add r3, r0, #0\n\ - add r3, r3, #0x21\n\ - ldrb r1, [r3]\n\ - add r2, r1, #1\n\ - strb r2, [r3]\n\ - add r2, r0, #0\n\ - add r2, r2, #0x23\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x18\n\ - add r6, r0, #0\n\ - ldrb r2, [r2]\n\ - cmp r1, r2\n\ - bne ._70 @cond_branch\n\ - mov r0, #0x0\n\ - strb r0, [r3]\n\ - add r2, r6, #0\n\ - add r2, r2, #0x22\n\ - ldrb r1, [r2]\n\ - ldrh r0, [r6, #0x24]\n\ - sub r0, r0, r1\n\ - strh r0, [r6, #0x24]\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - bge ._70 @cond_branch\n\ - ldrb r1, [r2]\n\ - mov r2, #0xb4\n\ - lsl r2, r2, #0x1\n\ - add r0, r2, #0\n\ - sub r0, r0, r1\n\ - strh r0, [r6, #0x24]\n\ -._70:\n\ - add r4, r6, #0\n\ - ldrh r0, [r4, #0x24]\n\ - bl Sin2\n\ - lsl r0, r0, #0x10\n\ - lsr r5, r0, #0x10\n\ - ldrh r0, [r4, #0x24]\n\ - bl Cos2\n\ - lsl r0, r0, #0x10\n\ - lsr r1, r0, #0x10\n\ - lsl r0, r5, #0x10\n\ - asr r0, r0, #0x10\n\ - cmp r0, #0\n\ - bge ._71 @cond_branch\n\ - add r0, r0, #0xf\n\ -._71:\n\ - lsl r0, r0, #0xc\n\ - lsr r5, r0, #0x10\n\ - lsl r0, r1, #0x10\n\ - asr r0, r0, #0x10\n\ - cmp r0, #0\n\ - bge ._72 @cond_branch\n\ - add r0, r0, #0xf\n\ -._72:\n\ - asr r0, r0, #0x4\n\ - strh r0, [r6, #0x32]\n\ - strh r0, [r6, #0x2c]\n\ - strh r5, [r6, #0x2e]\n\ - lsl r0, r5, #0x10\n\ - asr r0, r0, #0x10\n\ - neg r0, r0\n\ - strh r0, [r6, #0x30]\n\ - ldr r0, ._75 + 4 @ unk_203955C\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._74 @cond_branch\n\ - ldr r0, ._75 + 8 @ gMain\n\ - ldrh r1, [r0, #0x2e]\n\ - mov r0, #0x8\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._74 @cond_branch\n\ - ldr r2, ._75 + 12 @ gTasks\n\ - add r0, r6, #0\n\ - add r0, r0, #0xa4\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r2\n\ - ldr r1, ._75 + 16 @ sub_81157AC\n\ - str r1, [r0]\n\ - ldr r0, ._75 + 20 @ gMPlay_SE1\n\ - bl m4aMPlayStop\n\ - ldr r0, ._75 + 24 @ gMPlay_SE2\n\ - bl m4aMPlayStop\n\ - ldr r0, ._75 + 28 @ gMPlay_SE3\n\ - bl m4aMPlayStop\n\ -._74:\n\ - pop {r4, r5, r6}\n\ - pop {r0}\n\ - bx r0\n\ -._76:\n\ - .align 2, 0\n\ -._75:\n\ - .word 0x2019000\n\ - .word unk_203955C\n\ - .word gMain\n\ - .word gTasks\n\ - .word sub_81157AC+1\n\ - .word gMPlay_SE1\n\ - .word gMPlay_SE2\n\ - .word gMPlay_SE3"); -} -#else void sub_8115634(u8 unused) { s16 sin; s16 cos; s32 cos32; + if (eRoulette->var21++ == eRoulette->var23) { eRoulette->var21 = 0x0; @@ -916,8 +511,16 @@ void sub_8115634(u8 unused) eRoulette->var2C.a = cos32; eRoulette->var2C.b = sin; eRoulette->var2C.c = -sin; -} +#if DEBUG + if (unk_203955C[0] != 0 && (gMain.newKeys & 8)) + { + gTasks[eRoulette->varA4].func = sub_81157AC; + m4aMPlayStop(&gMPlay_SE1); + m4aMPlayStop(&gMPlay_SE2); + m4aMPlayStop(&gMPlay_SE3); + } #endif +} void sub_81156BC(u8 taskid) { @@ -984,6 +587,7 @@ void sub_81157D0(u8 r0) temp1 = ((r0 - 1) / 5 * 3 + 0x7); sub_8124DDC(&gBGTilemapBuffers[2][0], 0x0, 0xE, 0x7, 0x10, 0xD); sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18a20, temp0, temp1, 0x3, 0x3); + break; } } @@ -1008,6 +612,7 @@ void sub_811597C(u8 taskid) void sub_81159BC(u8 taskid) { s16 i; + if (eRoulette->var08 & 0x20) { for (i = 0xB; (i < 0xE); i++) @@ -1598,73 +1203,11 @@ void sub_8116AB0(u8 taskid) gTasks[taskid].func = &sub_8116B40; } -#if DEBUG -__attribute__((naked)) -void sub_8116B40(u8 taskid) // end roulette ? -{ - asm("\ - push {r4, r5, r6, lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - bl UpdatePaletteFade\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - cmp r5, #0\n\ - bne ._380 @cond_branch\n\ - mov r0, #0x0\n\ - bl SetVBlankCallback\n\ - ldr r0, ._381 @ 0x2019000\n\ - mov r2, #0xbe\n\ - lsl r2, r2, #0x1\n\ - mov r1, #0x0\n\ - bl memset\n\ - ldr r1, ._381 + 4 @ gSpriteCoordOffsetX\n\ - ldr r0, ._381 + 8 @ gSpriteCoordOffsetY\n\ - mov r4, #0x0\n\ - strh r5, [r0]\n\ - strh r5, [r1]\n\ - bl sub_80F9368\n\ - bl FreeAllSpritePalettes\n\ - bl ResetPaletteFade\n\ - bl ResetSpriteData\n\ - bl ClearBGTilemapBuffers\n\ - ldr r0, ._381 + 12 @ 0x4000050\n\ - strh r5, [r0]\n\ - add r0, r0, #0x2\n\ - strh r5, [r0]\n\ - add r0, r0, #0x2\n\ - strh r5, [r0]\n\ - ldr r1, ._381 + 16 @ gFieldCallback\n\ - ldr r0, ._381 + 20 @ sub_8080990\n\ - str r0, [r1]\n\ - ldr r0, ._381 + 24 @ c2_exit_to_overworld_2_switch\n\ - bl SetMainCallback2\n\ - add r0, r6, #0\n\ - bl DestroyTask\n\ - ldr r0, ._381 + 28 @ unk_203955C\n\ - strb r4, [r0]\n\ -._380:\n\ - pop {r4, r5, r6}\n\ - pop {r0}\n\ - bx r0\n\ -._382:\n\ - .align 2, 0\n\ -._381:\n\ - .word 0x2019000\n\ - .word gSpriteCoordOffsetX\n\ - .word gSpriteCoordOffsetY\n\ - .word 0x4000050\n\ - .word gFieldCallback\n\ - .word sub_8080990+1\n\ - .word c2_exit_to_overworld_2_switch+1\n\ - .word unk_203955C"); -} -#else -void sub_8116B40(u8 taskid) // end roulette ? +void sub_8116B40(u8 taskId) // end roulette ? { if (UpdatePaletteFade() == 0) { - SetVBlankCallback(0x0); + SetVBlankCallback(NULL); memset(eRoulette, 0x0, 0x17C); gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0x0; sub_80F9368(); @@ -1677,10 +1220,12 @@ void sub_8116B40(u8 taskid) // end roulette ? REG_BLDY = 0x0; gFieldCallback = &sub_8080990; SetMainCallback2(&c2_exit_to_overworld_2_switch); - DestroyTask(taskid); + DestroyTask(taskId); +#if DEBUG + unk_203955C[0] = 0; +#endif } } -#endif void sub_8116BC0(u8 taskid) { @@ -2412,8 +1957,8 @@ void PlayRoulette(void) unk_2039560 = 0; if (unk_203955C[0] != 0) { - taskid = CreateTask(debug_sub_812CFE8, 0); - return; + CreateTask(debug_sub_812CFE8, 0); + return; } #endif taskid = CreateTask(Task_Roulette_0, 0); -- cgit v1.2.3 From efa9966f4fd49766114ca5b4abd963f874e283da Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 18 Feb 2018 18:09:34 -0600 Subject: decompile debug code in roulette.c --- src/roulette.c | 394 +++++++++++---------------------------------------------- 1 file changed, 72 insertions(+), 322 deletions(-) (limited to 'src/roulette.c') diff --git a/src/roulette.c b/src/roulette.c index fe6c6dc8e..5e7517d79 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1622,328 +1622,78 @@ void Task_Roulette_0(u8 taskid) #if DEBUG -__attribute__((naked)) -void debug_sub_812CDE4() -{ - asm("\ - push {r4, r5, lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r3, r0, #0x18\n\ - add r4, r3, #0\n\ - ldr r0, ._575 @ gMain\n\ - ldrh r1, [r0, #0x2e]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._572 @cond_branch\n\ - ldr r1, ._575 + 4 @ gTasks\n\ - lsl r0, r3, #0x2\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x3\n\ - add r2, r0, r1\n\ - ldrh r0, [r2, #0x22]\n\ - add r0, r0, #0x1\n\ - strh r0, [r2, #0x22]\n\ - lsl r0, r0, #0x10\n\ - ldr r1, ._575 + 8 @ 0x27100000\n\ - cmp r0, r1\n\ - bne ._573 @cond_branch\n\ - mov r0, #0x0\n\ - strh r0, [r2, #0x22]\n\ -._573:\n\ - ldr r0, ._575 + 12 @ gStringVar1\n\ - mov r3, #0x22\n\ - ldsh r1, [r2, r3]\n\ - b ._584\n\ -._576:\n\ - .align 2, 0\n\ -._575:\n\ - .word gMain\n\ - .word gTasks\n\ - .word 0x27100000\n\ - .word gStringVar1\n\ -._572:\n\ - mov r0, #0x2\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._577 @cond_branch\n\ - ldr r1, ._580 @ gTasks\n\ - lsl r0, r3, #0x2\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x3\n\ - add r2, r0, r1\n\ - ldrh r0, [r2, #0x22]\n\ - sub r0, r0, #0x1\n\ - strh r0, [r2, #0x22]\n\ - lsl r0, r0, #0x10\n\ - asr r0, r0, #0x10\n\ - mov r1, #0x1\n\ - neg r1, r1\n\ - cmp r0, r1\n\ - bne ._578 @cond_branch\n\ - ldr r0, ._580 + 4 @ 0x270f\n\ - strh r0, [r2, #0x22]\n\ -._578:\n\ - ldr r0, ._580 + 8 @ gStringVar1\n\ - mov r3, #0x22\n\ - ldsh r1, [r2, r3]\n\ - b ._584\n\ -._581:\n\ - .align 2, 0\n\ -._580:\n\ - .word gTasks\n\ - .word 0x270f\n\ - .word gStringVar1\n\ -._577:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._582 @cond_branch\n\ - ldr r1, ._585 @ gTasks\n\ - lsl r0, r3, #0x2\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x3\n\ - add r2, r0, r1\n\ - ldrh r3, [r2, #0x22]\n\ - add r0, r3, #0\n\ - add r0, r0, #0xa\n\ - strh r0, [r2, #0x22]\n\ - lsl r0, r0, #0x10\n\ - ldr r1, ._585 + 4 @ 0x270f0000\n\ - cmp r0, r1\n\ - ble ._583 @cond_branch\n\ - ldr r1, ._585 + 8 @ 0xffffd8fb\n\ - add r0, r3, r1\n\ - strh r0, [r2, #0x22]\n\ -._583:\n\ - ldr r0, ._585 + 12 @ gStringVar1\n\ - mov r3, #0x22\n\ - ldsh r1, [r2, r3]\n\ - b ._584\n\ -._586:\n\ - .align 2, 0\n\ -._585:\n\ - .word gTasks\n\ - .word 0x270f0000\n\ - .word 0xffffd8fb\n\ - .word gStringVar1\n\ -._582:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x2\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._587 @cond_branch\n\ - ldr r0, ._590 @ gTasks\n\ - lsl r1, r3, #0x2\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - ldrh r2, [r1, #0x22]\n\ - add r0, r2, #0\n\ - sub r0, r0, #0xa\n\ - strh r0, [r1, #0x22]\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - bge ._588 @cond_branch\n\ - ldr r3, ._590 + 4 @ 0x2705\n\ - add r0, r2, r3\n\ - strh r0, [r1, #0x22]\n\ -._588:\n\ - ldr r0, ._590 + 8 @ gStringVar1\n\ - mov r2, #0x22\n\ - ldsh r1, [r1, r2]\n\ -._584:\n\ - mov r2, #0x1\n\ - mov r3, #0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r4, ._590 + 12 @ gStringVar4\n\ - ldr r1, ._590 + 16 @ gOtherText_Coins\n\ - add r0, r4, #0\n\ - bl StringExpandPlaceholders\n\ - add r0, r4, #0\n\ - mov r1, #0x9\n\ - mov r2, #0x1\n\ - bl MenuPrint_RightAligned\n\ - b ._596\n\ -._591:\n\ - .align 2, 0\n\ -._590:\n\ - .word gTasks\n\ - .word 0x2705\n\ - .word gStringVar1\n\ - .word gStringVar4\n\ - .word gOtherText_Coins\n\ -._587:\n\ - mov r0, #0x8\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._592 @cond_branch\n\ - ldr r0, ._594 @ gSaveBlock1\n\ - ldr r2, ._594 + 4 @ gTasks\n\ - lsl r1, r3, #0x2\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r2\n\ - ldrh r2, [r1, #0x22]\n\ - ldr r3, ._594 + 8 @ 0x494\n\ - add r0, r0, r3\n\ - mov r5, #0x0\n\ - strh r2, [r0]\n\ - ldr r0, ._594 + 12 @ Task_Roulette_0\n\ - str r0, [r1]\n\ - ldr r0, ._594 + 16 @ gStringVar1\n\ - mov r2, #0x22\n\ - ldsh r1, [r1, r2]\n\ - mov r2, #0x1\n\ - mov r3, #0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r4, ._594 + 20 @ gStringVar4\n\ - ldr r1, ._594 + 24 @ gOtherText_Coins\n\ - add r0, r4, #0\n\ - bl StringExpandPlaceholders\n\ - add r0, r4, #0\n\ - mov r1, #0x9\n\ - mov r2, #0x1\n\ - bl MenuPrint_RightAligned\n\ - ldr r0, ._594 + 28 @ unk_2039560\n\ - strb r5, [r0]\n\ - b ._596\n\ -._595:\n\ - .align 2, 0\n\ -._594:\n\ - .word gSaveBlock1\n\ - .word gTasks\n\ - .word 0x494\n\ - .word Task_Roulette_0+1\n\ - .word gStringVar1\n\ - .word gStringVar4\n\ - .word gOtherText_Coins\n\ - .word unk_2039560\n\ -._592:\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._596 @cond_branch\n\ - ldr r0, ._597 @ gSaveBlock1\n\ - ldr r2, ._597 + 4 @ gTasks\n\ - lsl r1, r4, #0x2\n\ - add r1, r1, r4\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r2\n\ - ldrh r2, [r1, #0x22]\n\ - ldr r3, ._597 + 8 @ 0x494\n\ - add r0, r0, r3\n\ - strh r2, [r0]\n\ - ldr r0, ._597 + 12 @ Task_Roulette_0\n\ - str r0, [r1]\n\ - ldr r0, ._597 + 16 @ gStringVar1\n\ - mov r2, #0x22\n\ - ldsh r1, [r1, r2]\n\ - mov r2, #0x1\n\ - mov r3, #0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r4, ._597 + 20 @ gStringVar4\n\ - ldr r1, ._597 + 24 @ gOtherText_Coins\n\ - add r0, r4, #0\n\ - bl StringExpandPlaceholders\n\ - add r0, r4, #0\n\ - mov r1, #0x9\n\ - mov r2, #0x1\n\ - bl MenuPrint_RightAligned\n\ - ldr r1, ._597 + 28 @ unk_2039560\n\ - mov r0, #0x1\n\ - strb r0, [r1]\n\ -._596:\n\ - pop {r4, r5}\n\ - pop {r0}\n\ - bx r0\n\ -._598:\n\ - .align 2, 0\n\ -._597:\n\ - .word gSaveBlock1\n\ - .word gTasks\n\ - .word 0x494\n\ - .word Task_Roulette_0+1\n\ - .word gStringVar1\n\ - .word gStringVar4\n\ - .word gOtherText_Coins\n\ - .word unk_2039560"); +void debug_sub_812CDE4(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].data[13]++; + if (gTasks[taskId].data[13] == 10000) + gTasks[taskId].data[13] = 0; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[13]--; + if (gTasks[taskId].data[13] == -1) + gTasks[taskId].data[13] = 9999; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + } + else if (gMain.newKeys & 0x100) + { + gTasks[taskId].data[13] += 10; + if (gTasks[taskId].data[13] > 9999) + gTasks[taskId].data[13] -= 9999; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + } + else if (gMain.newKeys & 0x200) + { + gTasks[taskId].data[13] -= 10; + if (gTasks[taskId].data[13] < 0) + gTasks[taskId].data[13] += 9999; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + } + else if (gMain.newKeys & 8) + { + gSaveBlock1.coins = gTasks[taskId].data[13]; + gTasks[taskId].func = Task_Roulette_0; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + unk_2039560 = 0; + } + else if (gMain.newKeys & 4) + { + gSaveBlock1.coins = gTasks[taskId].data[13]; + gTasks[taskId].func = Task_Roulette_0; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + MenuPrint_RightAligned(gStringVar4, 9, 1); + unk_2039560 = 1; + } } -__attribute__((naked)) +extern const u8 gUnknown_Debug_0842510D[]; + void debug_sub_812CFE8(u8 taskId) { - asm("\ - push {r4, r5, lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r2, ._600 @ gTasks\n\ - lsl r1, r0, #0x2\n\ - add r1, r1, r0\n\ - lsl r1, r1, #0x3\n\ - add r5, r1, r2\n\ - ldr r0, ._600 + 4 @ gSaveBlock1\n\ - ldr r1, ._600 + 8 @ 0x494\n\ - add r0, r0, r1\n\ - ldrh r0, [r0]\n\ - strh r0, [r5, #0x22]\n\ - bl Random\n\ - mov r1, #0x1\n\ - and r1, r1, r0\n\ - cmp r1, #0\n\ - beq ._599 @cond_branch\n\ - ldr r0, ._600 + 12 @ gSpecialVar_0x8004\n\ - ldrh r1, [r0]\n\ - mov r2, #0x80\n\ - orr r1, r1, r2\n\ - strh r1, [r0]\n\ -._599:\n\ - ldr r0, ._600 + 16 @ gStringVar1\n\ - mov r2, #0x22\n\ - ldsh r1, [r5, r2]\n\ - mov r2, #0x1\n\ - mov r3, #0x4\n\ - bl ConvertIntToDecimalStringN\n\ - ldr r4, ._600 + 20 @ gStringVar4\n\ - ldr r1, ._600 + 24 @ gOtherText_Coins\n\ - add r0, r4, #0\n\ - bl StringExpandPlaceholders\n\ - mov r0, #0x0\n\ - mov r1, #0x0\n\ - mov r2, #0x9\n\ - mov r3, #0x3\n\ - bl Menu_DrawStdWindowFrame\n\ - add r0, r4, #0\n\ - mov r1, #0x9\n\ - mov r2, #0x1\n\ - bl MenuPrint_RightAligned\n\ - mov r0, #0x0\n\ - mov r1, #0xe\n\ - mov r2, #0x1d\n\ - mov r3, #0x13\n\ - bl Menu_DrawStdWindowFrame\n\ - ldr r0, ._600 + 28 @ gUnknown_Debug_0842510D\n\ - mov r1, #0x1\n\ - mov r2, #0xf\n\ - bl Menu_PrintText\n\ - ldr r0, ._600 + 32 @ debug_sub_812CDE4\n\ - str r0, [r5]\n\ - pop {r4, r5}\n\ - pop {r0}\n\ - bx r0\n\ -._601:\n\ - .align 2, 0\n\ -._600:\n\ - .word gTasks\n\ - .word gSaveBlock1\n\ - .word 0x494\n\ - .word gSpecialVar_0x8004\n\ - .word gStringVar1\n\ - .word gStringVar4\n\ - .word gOtherText_Coins\n\ - .word gUnknown_Debug_0842510D\n\ - .word debug_sub_812CDE4+1"); + gTasks[taskId].data[13] = gSaveBlock1.coins; + if (Random() & 1) + gSpecialVar_0x8004 |= 0x80; + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[13], 1, 4); + StringExpandPlaceholders(gStringVar4, gOtherText_Coins); + Menu_DrawStdWindowFrame(0, 0, 9, 3); + MenuPrint_RightAligned(gStringVar4, 9, 1); + Menu_DrawStdWindowFrame(0, 14, 29, 19); + Menu_PrintText(gUnknown_Debug_0842510D, 1, 15); + gTasks[taskId].func = debug_sub_812CDE4; } #endif @@ -2681,13 +2431,13 @@ void debug_sub_812E698(struct Sprite *sprite) m4aSongNumStart(0x38); if (Random() & 1) { - eRoulette->var8C = 0; - eRoulette->var7F = (eRoulette->var7E + 1) % 12; + eRoulette->var8C = 0; + eRoulette->var7F = (eRoulette->var7E + 1) % 12; } else { - eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C * 2; - eRoulette->var7F = eRoulette->var7E; + eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C * 2; + eRoulette->var7F = eRoulette->var7E; } sprite->data[0] = 1; sprite->data[2] = gUnknown_083F8DF4[eRoulette->var04_0].var02; -- cgit v1.2.3