diff options
author | camthesaxman <cameronghall@cox.net> | 2017-01-07 12:41:48 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-01-07 12:41:48 -0600 |
commit | 50f7bf64ee2dee8cc58e60499ed53eda535cbfcf (patch) | |
tree | 66c38fdb5a97e48dc85d2d58b1aff4cd4d243d99 /src | |
parent | d8aee3a4a5fb66622fe44abb561b3bb49b4a93e5 (diff) |
get ShowContestPainting to match
Diffstat (limited to 'src')
-rw-r--r-- | src/contest_painting.c | 286 |
1 files changed, 59 insertions, 227 deletions
diff --git a/src/contest_painting.c b/src/contest_painting.c index 2e8a73ec4..0cfbd5290 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -68,10 +68,10 @@ struct Unk03005E20 { u8 var_1F; }; +extern u8 gUnknown_03000750; extern struct Unk03005E20 gUnknown_03005E20; -extern u16 (*gUnknown_03005E90)[]; - extern u8 gUnknown_03005E40[]; +extern u16 (*gUnknown_03005E90)[]; extern u8 unk_2000000[]; extern u8 unk_2015de0[]; @@ -161,236 +161,68 @@ _08106664: .4byte 0x00002dfc\n\ .syntax divided\n"); } -void CB2_ContestPainting(void) { +void CB2_ContestPainting(void) +{ ShowContestPainting(); } -#ifdef NONMATCHING -void ShowContestPainting(void) { - switch (gMain.state) { - case 0: - remove_some_task(); - SetVBlankCallback(NULL); - gUnknown_03005E8C->data = &unk_2015de0; - ContestPaintingInitVars(FALSE); - ContestPaintingInitBG(); - gMain.state += 1; - break; - - case 1: - ResetPaletteFade(); - - // DMA STUFF - - ResetSpriteData(); - gMain.state += 1; - break; - - case 2: - SeedRng(gMain.vblankCounter1); - InitKeys(); - ContestPaintingInitWindow(unk_2000000[0x15DDF]); - gMain.state += 1; - break; - - case 3: - sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); - gMain.state += 1; - break; - - case 4: - ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); - LoadPalette(gUnknown_083F6140, 0, 1 * 2); - // DMA STUFF - BeginFastPaletteFade(2); - SetVBlankCallback(VBlankCB_ContestPainting); - REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; - SetMainCallback2(CB2_HoldContestPainting); - break; +void ShowContestPainting(void) +{ + switch (gMain.state) + { + case 0: + remove_some_task(); + SetVBlankCallback(NULL); + gUnknown_03005E8C = (struct ContestEntry *)&unk_2015de0; + ContestPaintingInitVars(TRUE); + ContestPaintingInitBG(); + gMain.state++; + break; + case 1: + { + u8 *addr; + size_t size; + + ResetPaletteFade(); + addr = (void *)VRAM; + size = 0x18000; + while (1) + { + DmaFill32(3, 0, addr, 0x1000); + addr += 0x1000; + size -= 0x1000; + if (size <= 0x1000) + { + DmaFill32(3, 0, addr, size); + break; + } + } + ResetSpriteData(); + gMain.state++; + break; + } + case 2: + SeedRng(gMain.vblankCounter1); + InitKeys(); + ContestPaintingInitWindow(unk_2000000[0x15DDF]); + gMain.state++; + break; + case 3: + sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + gMain.state++; + break; + case 4: + ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + LoadPalette(gUnknown_083F6140, 0, 1 * 2); + DmaClear32(3, PLTT, 0x400); + BeginFastPaletteFade(2); + SetVBlankCallback(VBlankCB_ContestPainting); + gUnknown_03000750 = 0; + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; + SetMainCallback2(CB2_HoldContestPainting); + break; } } -#else -__attribute__((naked)) -void ShowContestPainting(void) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - ldr r1, _08106694 @ =gMain\n\ - ldr r2, _08106698 @ =0x0000043c\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r4, r1, 0\n\ - cmp r0, 0x4\n\ - bls _08106688\n\ - b _081067E0\n\ -_08106688:\n\ - lsls r0, 2\n\ - ldr r1, _0810669C @ =_081066A0\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08106694: .4byte gMain\n\ -_08106698: .4byte 0x0000043c\n\ -_0810669C: .4byte _081066A0\n\ - .align 2, 0\n\ -_081066A0:\n\ - .4byte _081066B4\n\ - .4byte _081066D8\n\ - .4byte _08106734\n\ - .4byte _0810675C\n\ - .4byte _0810678C\n\ -_081066B4:\n\ - bl remove_some_task\n\ - movs r0, 0\n\ - bl SetVBlankCallback\n\ - ldr r1, _081066D0 @ =gUnknown_03005E8C\n\ - ldr r0, _081066D4 @ =0x02015de0\n\ - str r0, [r1]\n\ - movs r0, 0x1\n\ - bl ContestPaintingInitVars\n\ - bl ContestPaintingInitBG\n\ - b _0810676E\n\ - .align 2, 0\n\ -_081066D0: .4byte gUnknown_03005E8C\n\ -_081066D4: .4byte 0x02015de0\n\ -_081066D8:\n\ - bl ResetPaletteFade\n\ - movs r2, 0xC0\n\ - lsls r2, 19\n\ - movs r3, 0xC0\n\ - lsls r3, 9\n\ - movs r5, 0\n\ - ldr r1, _08106724 @ =0x040000d4\n\ - movs r4, 0x80\n\ - lsls r4, 5\n\ - ldr r6, _08106728 @ =0x85000400\n\ - movs r7, 0x85\n\ - lsls r7, 24\n\ -_081066F2:\n\ - str r5, [sp]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - str r6, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - adds r2, r4\n\ - subs r3, r4\n\ - cmp r3, r4\n\ - bhi _081066F2\n\ - str r5, [sp]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - lsrs r0, r3, 2\n\ - orrs r0, r7\n\ - str r0, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - bl ResetSpriteData\n\ - ldr r1, _0810672C @ =gMain\n\ - ldr r2, _08106730 @ =0x0000043c\n\ - adds r1, r2\n\ - b _08106774\n\ - .align 2, 0\n\ -_08106724: .4byte 0x040000d4\n\ -_08106728: .4byte 0x85000400\n\ -_0810672C: .4byte gMain\n\ -_08106730: .4byte 0x0000043c\n\ -_08106734:\n\ - ldrh r0, [r4, 0x20]\n\ - bl SeedRng\n\ - bl InitKeys\n\ - ldr r0, _08106750 @ =0x02000000\n\ - ldr r1, _08106754 @ =0x00015ddf\n\ - adds r0, r1\n\ - ldrb r0, [r0]\n\ - bl ContestPaintingInitWindow\n\ - ldr r2, _08106758 @ =0x0000043c\n\ - adds r1, r4, r2\n\ - b _08106774\n\ - .align 2, 0\n\ -_08106750: .4byte 0x02000000\n\ -_08106754: .4byte 0x00015ddf\n\ -_08106758: .4byte 0x0000043c\n\ -_0810675C:\n\ - ldr r1, _0810677C @ =0x02000000\n\ - ldr r2, _08106780 @ =0x00015dde\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r2, 0x1\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - bl sub_8107090\n\ -_0810676E:\n\ - ldr r1, _08106784 @ =gMain\n\ - ldr r0, _08106788 @ =0x0000043c\n\ - adds r1, r0\n\ -_08106774:\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _081067E0\n\ - .align 2, 0\n\ -_0810677C: .4byte 0x02000000\n\ -_08106780: .4byte 0x00015dde\n\ -_08106784: .4byte gMain\n\ -_08106788: .4byte 0x0000043c\n\ -_0810678C:\n\ - ldr r1, _081067E8 @ =0x02000000\n\ - ldr r2, _081067EC @ =0x00015dde\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r2, 0x1\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - bl ContestPaintingPrintCaption\n\ - ldr r0, _081067F0 @ =gUnknown_083F6140\n\ - movs r1, 0\n\ - movs r2, 0x2\n\ - bl LoadPalette\n\ - movs r1, 0xA0\n\ - lsls r1, 19\n\ - movs r4, 0\n\ - str r4, [sp]\n\ - ldr r0, _081067F4 @ =0x040000d4\n\ - mov r2, sp\n\ - str r2, [r0]\n\ - str r1, [r0, 0x4]\n\ - ldr r1, _081067F8 @ =0x85000100\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - movs r0, 0x2\n\ - bl BeginFastPaletteFade\n\ - ldr r0, _081067FC @ =VBlankCB_ContestPainting\n\ - bl SetVBlankCallback\n\ - ldr r0, _08106800 @ =gUnknown_03000750\n\ - strb r4, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 19\n\ - movs r2, 0x9A\n\ - lsls r2, 5\n\ - adds r0, r2, 0\n\ - strh r0, [r1]\n\ - ldr r0, _08106804 @ =CB2_HoldContestPainting\n\ - bl SetMainCallback2\n\ -_081067E0:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081067E8: .4byte 0x02000000\n\ -_081067EC: .4byte 0x00015dde\n\ -_081067F0: .4byte gUnknown_083F6140\n\ -_081067F4: .4byte 0x040000d4\n\ -_081067F8: .4byte 0x85000100\n\ -_081067FC: .4byte VBlankCB_ContestPainting\n\ -_08106800: .4byte gUnknown_03000750\n\ -_08106804: .4byte CB2_HoldContestPainting\n\ - .syntax divided\n"); -} - -#endif void CB2_HoldContestPainting(void) { HoldContestPainting(); |