mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-04 00:19:27 -04:00
get ShowContestPainting to match
This commit is contained in:
+59
-227
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user