Match sub_810287C

This commit is contained in:
PikalaxALT
2019-12-09 20:03:05 -05:00
parent efb171875c
commit 0adc6186bc
+3 -437
View File
@@ -23,7 +23,7 @@ struct PokedexScreenData
u8 field_01;
u8 filler_02[0x6];
u32 field_08;
s32 field_0C;
u32 field_0C;
u16 field_10;
u16 field_12;
u8 field_14;
@@ -205,7 +205,6 @@ void sub_8102858(void)
}
}
#ifdef NONMATCHING
void sub_810287C(u8 taskId)
{
int i;
@@ -214,7 +213,7 @@ void sub_810287C(u8 taskId)
case 0:
gUnknown_203ACF0->field_08 = 0;
for (i = 0; i < 9; i++)
gUnknown_203ACF0->field_08 |= sub_81068A0(i);
gUnknown_203ACF0->field_08 |= (sub_81068A0(i) << i);
gUnknown_203ACF0->field_01 = 2;
break;
case 1:
@@ -266,11 +265,9 @@ void sub_810287C(u8 taskId)
// FIXME: Get this switch to behave
switch (gUnknown_203ACF0->field_0C)
{
case -2:
case LIST_CANCEL:
gUnknown_203ACF0->field_01 = 1;
break;
case -1:
return;
case 0:
case 1:
case 2:
@@ -346,434 +343,3 @@ void sub_810287C(u8 taskId)
break;
}
}
#else
NAKED
void sub_810287C(u8 taskId)
{
asm_unified("\tpush {r4,r5,lr}\n"
"\tsub sp, 0x8\n"
"\tlsls r0, 24\n"
"\tlsrs r5, r0, 24\n"
"\tldr r1, _0810289C @ =gUnknown_203ACF0\n"
"\tldr r0, [r1]\n"
"\tldrb r0, [r0, 0x1]\n"
"\tadds r4, r1, 0\n"
"\tcmp r0, 0x9\n"
"\tbls _08102892\n"
"\tb _08102C18\n"
"_08102892:\n"
"\tlsls r0, 2\n"
"\tldr r1, _081028A0 @ =_081028A4\n"
"\tadds r0, r1\n"
"\tldr r0, [r0]\n"
"\tmov pc, r0\n"
"\t.align 2, 0\n"
"_0810289C: .4byte gUnknown_203ACF0\n"
"_081028A0: .4byte _081028A4\n"
"\t.align 2, 0\n"
"_081028A4:\n"
"\t.4byte _081028CC\n"
"\t.4byte _081028FC\n"
"\t.4byte _08102930\n"
"\t.4byte _08102940\n"
"\t.4byte _08102964\n"
"\t.4byte _081029D0\n"
"\t.4byte _08102A14\n"
"\t.4byte _08102B24\n"
"\t.4byte _08102B94\n"
"\t.4byte _08102BD8\n"
"_081028CC:\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0\n"
"\tstr r0, [r1, 0x8]\n"
"\tmovs r4, 0\n"
"_081028D4:\n"
"\tlsls r0, r4, 24\n"
"\tlsrs r0, 24\n"
"\tbl sub_81068A0\n"
"\tldr r1, _081028F8 @ =gUnknown_203ACF0\n"
"\tldr r2, [r1]\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tlsls r0, r4\n"
"\tldr r1, [r2, 0x8]\n"
"\torrs r1, r0\n"
"\tstr r1, [r2, 0x8]\n"
"\tadds r4, 0x1\n"
"\tcmp r4, 0x8\n"
"\tble _081028D4\n"
"\tmovs r0, 0x2\n"
"\tstrb r0, [r2, 0x1]\n"
"\tb _08102C18\n"
"\t.align 2, 0\n"
"_081028F8: .4byte gUnknown_203ACF0\n"
"_081028FC:\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x60\n"
"\tldrb r0, [r0]\n"
"\tbl RemoveScrollIndicatorArrowPair\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x14\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x15\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x16\n"
"\tbl sub_81047B0\n"
"\tldr r0, _0810292C @ =sub_8102858\n"
"\tbl SetMainCallback2\n"
"\tadds r0, r5, 0\n"
"\tbl DestroyTask\n"
"\tb _08102C18\n"
"\t.align 2, 0\n"
"_0810292C: .4byte sub_8102858\n"
"_08102930:\n"
"\tbl sub_8102C28\n"
"\tldr r0, _0810293C @ =gUnknown_203ACF0\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x3\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_0810293C: .4byte gUnknown_203ACF0\n"
"_08102940:\n"
"\tmovs r0, 0x3\n"
"\tbl CopyBgTilemapBufferToVram\n"
"\tmovs r0, 0x2\n"
"\tbl CopyBgTilemapBufferToVram\n"
"\tmovs r0, 0x1\n"
"\tbl CopyBgTilemapBufferToVram\n"
"\tmovs r0, 0\n"
"\tbl CopyBgTilemapBufferToVram\n"
"\tldr r0, _08102960 @ =gUnknown_203ACF0\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x4\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_08102960: .4byte gUnknown_203ACF0\n"
"_08102964:\n"
"\tmovs r0, 0x3\n"
"\tbl ShowBg\n"
"\tmovs r0, 0x2\n"
"\tbl ShowBg\n"
"\tmovs r0, 0x1\n"
"\tbl ShowBg\n"
"\tmovs r0, 0\n"
"\tbl ShowBg\n"
"\tldr r2, _081029A4 @ =gPaletteFade\n"
"\tldrb r1, [r2, 0x8]\n"
"\tmovs r0, 0x80\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _081029AC\n"
"\tmovs r0, 0x7F\n"
"\tands r0, r1\n"
"\tstrb r0, [r2, 0x8]\n"
"\tmovs r0, 0x1\n"
"\tnegs r0, r0\n"
"\tldr r1, _081029A8 @ =0x0000ffff\n"
"\tstr r1, [sp]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tmovs r3, 0\n"
"\tbl BeginNormalPaletteFade\n"
"\tb _081029BC\n"
"\t.align 2, 0\n"
"_081029A4: .4byte gPaletteFade\n"
"_081029A8: .4byte 0x0000ffff\n"
"_081029AC:\n"
"\tldr r0, _081029C4 @ =0xffff7fff\n"
"\tldr r1, _081029C8 @ =0x0000ffff\n"
"\tstr r1, [sp]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0x10\n"
"\tmovs r3, 0\n"
"\tbl BeginNormalPaletteFade\n"
"_081029BC:\n"
"\tldr r0, _081029CC @ =gUnknown_203ACF0\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x5\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_081029C4: .4byte 0xffff7fff\n"
"_081029C8: .4byte 0x0000ffff\n"
"_081029CC: .4byte gUnknown_203ACF0\n"
"_081029D0:\n"
"\tldr r4, _081029EC @ =gUnknown_203ACF0\n"
"\tldr r1, [r4]\n"
"\tldrb r0, [r1, 0x17]\n"
"\tadds r1, 0x62\n"
"\tmovs r2, 0\n"
"\tbl ListMenuGetScrollAndRow\n"
"\tbl IsNationalPokedexEnabled\n"
"\tcmp r0, 0\n"
"\tbeq _081029F4\n"
"\tldr r0, _081029F0 @ =gUnknown_84520E4\n"
"\tb _081029F6\n"
"\t.align 2, 0\n"
"_081029EC: .4byte gUnknown_203ACF0\n"
"_081029F0: .4byte gUnknown_84520E4\n"
"_081029F4:\n"
"\tldr r0, _08102A0C @ =gUnknown_84520D4\n"
"_081029F6:\n"
"\tldr r1, [r4]\n"
"\tadds r1, 0x62\n"
"\tbl AddScrollIndicatorArrowPair\n"
"\tldr r1, [r4]\n"
"\tadds r1, 0x60\n"
"\tstrb r0, [r1]\n"
"\tldr r0, _08102A10 @ =gUnknown_203ACF0\n"
"\tldr r1, [r0]\n"
"\tmovs r0, 0x6\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_08102A0C: .4byte gUnknown_84520D4\n"
"_08102A10: .4byte gUnknown_203ACF0\n"
"_08102A14:\n"
"\tldr r0, [r4]\n"
"\tldrb r0, [r0, 0x17]\n"
"\tbl ListMenu_ProcessInput\n"
"\tldr r1, [r4]\n"
"\tstr r0, [r1, 0xC]\n"
"\tldrb r0, [r1, 0x17]\n"
"\tadds r1, 0x62\n"
"\tmovs r2, 0\n"
"\tbl ListMenuGetScrollAndRow\n"
"\tldr r0, _08102A4C @ =gMain\n"
"\tldrh r1, [r0, 0x2E]\n"
"\tmovs r3, 0x1\n"
"\tmovs r0, 0x1\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbeq _08102B14\n"
"\tldr r2, [r4]\n"
"\tldr r1, [r2, 0xC]\n"
"\tcmp r1, 0xD\n"
"\tbhi _08102A50\n"
"\tcmp r1, 0xA\n"
"\tbcs _08102ADC\n"
"\tcmp r1, 0x8\n"
"\tbls _08102A62\n"
"\tb _08102AA4\n"
"\t.align 2, 0\n"
"_08102A4C: .4byte gMain\n"
"_08102A50:\n"
"\tcmp r1, 0xE\n"
"\tbeq _08102AA4\n"
"\tmovs r0, 0x2\n"
"\tnegs r0, r0\n"
"\tcmp r1, r0\n"
"\tbeq _08102A5E\n"
"\tb _08102C18\n"
"_08102A5E:\n"
"\tstrb r3, [r2, 0x1]\n"
"\tb _08102C18\n"
"_08102A62:\n"
"\tlsls r0, r1, 24\n"
"\tlsrs r0, 24\n"
"\tbl sub_81068A0\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbne _08102A72\n"
"\tb _08102C18\n"
"_08102A72:\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x60\n"
"\tldrb r0, [r0]\n"
"\tbl RemoveScrollIndicatorArrowPair\n"
"\tldr r0, [r4]\n"
"\tldr r1, [r0, 0xC]\n"
"\tadds r0, 0x28\n"
"\tstrb r1, [r0]\n"
"\tldr r0, _08102A9C @ =0xffff7fff\n"
"\tldr r1, _08102AA0 @ =0x0000ffff\n"
"\tstr r1, [sp]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tmovs r3, 0x10\n"
"\tbl BeginNormalPaletteFade\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0x7\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_08102A9C: .4byte 0xffff7fff\n"
"_08102AA0: .4byte 0x0000ffff\n"
"_08102AA4:\n"
"\tldr r4, _08102AD0 @ =gUnknown_203ACF0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x60\n"
"\tldrb r0, [r0]\n"
"\tbl RemoveScrollIndicatorArrowPair\n"
"\tldr r1, [r4]\n"
"\tldr r0, [r1, 0xC]\n"
"\tsubs r0, 0x9\n"
"\tadds r1, 0x42\n"
"\tstrb r0, [r1]\n"
"\tldr r0, _08102AD4 @ =0xffff7fff\n"
"\tldr r1, _08102AD8 @ =0x0000ffff\n"
"\tstr r1, [sp]\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tmovs r3, 0x10\n"
"\tbl BeginNormalPaletteFade\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0x9\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_08102AD0: .4byte gUnknown_203ACF0\n"
"_08102AD4: .4byte 0xffff7fff\n"
"_08102AD8: .4byte 0x0000ffff\n"
"_08102ADC:\n"
"\tadds r0, r2, 0\n"
"\tadds r0, 0x60\n"
"\tldrb r0, [r0]\n"
"\tbl RemoveScrollIndicatorArrowPair\n"
"\tldr r0, [r4]\n"
"\tldr r1, [r0, 0xC]\n"
"\tsubs r1, 0x9\n"
"\tadds r0, 0x42\n"
"\tmovs r2, 0\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tstrh r2, [r0, 0x3A]\n"
"\tstrh r2, [r0, 0x38]\n"
"\tldr r0, _08102B0C @ =0xffff7fff\n"
"\tldr r1, _08102B10 @ =0x0000ffff\n"
"\tstr r1, [sp]\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0x10\n"
"\tbl BeginNormalPaletteFade\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0x8\n"
"\tb _08102C16\n"
"\t.align 2, 0\n"
"_08102B0C: .4byte 0xffff7fff\n"
"_08102B10: .4byte 0x0000ffff\n"
"_08102B14:\n"
"\tmovs r0, 0x2\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbne _08102B1E\n"
"\tb _08102C18\n"
"_08102B1E:\n"
"\tldr r0, [r4]\n"
"\tstrb r3, [r0, 0x1]\n"
"\tb _08102C18\n"
"_08102B24:\n"
"\tldr r2, [r4]\n"
"\tldrb r0, [r2, 0x17]\n"
"\tadds r1, r2, 0\n"
"\tadds r1, 0x12\n"
"\tadds r2, 0x10\n"
"\tbl DestroyListMenuTask\n"
"\tmovs r0, 0x20\n"
"\tstr r0, [sp]\n"
"\tmovs r0, 0x14\n"
"\tstr r0, [sp, 0x4]\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tmovs r3, 0\n"
"\tbl FillBgTilemapBufferRect_Palette0\n"
"\tmovs r0, 0x1\n"
"\tbl CopyBgTilemapBufferToVram\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x14\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x15\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x16\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x2B\n"
"\tmovs r2, 0\n"
"\tstrb r2, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x2D\n"
"\tstrb r2, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x2F\n"
"\tstrb r2, [r0]\n"
"\tldr r1, _08102B8C @ =gTasks\n"
"\tlsls r0, r5, 2\n"
"\tadds r0, r5\n"
"\tlsls r0, 3\n"
"\tadds r0, r1\n"
"\tldr r1, _08102B90 @ =sub_8103AC8\n"
"\tstr r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tstrb r2, [r0, 0x1]\n"
"\tb _08102C18\n"
"\t.align 2, 0\n"
"_08102B8C: .4byte gTasks\n"
"_08102B90: .4byte sub_8103AC8\n"
"_08102B94:\n"
"\tldr r2, [r4]\n"
"\tldrb r0, [r2, 0x17]\n"
"\tadds r1, r2, 0\n"
"\tadds r1, 0x12\n"
"\tadds r2, 0x10\n"
"\tbl DestroyListMenuTask\n"
"\tmovs r0, 0x1\n"
"\tbl HideBg\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x14\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x15\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x16\n"
"\tbl sub_81047B0\n"
"\tldr r1, _08102BD0 @ =gTasks\n"
"\tlsls r0, r5, 2\n"
"\tadds r0, r5\n"
"\tlsls r0, 3\n"
"\tadds r0, r1\n"
"\tldr r1, _08102BD4 @ =sub_8103238\n"
"\tb _08102C10\n"
"\t.align 2, 0\n"
"_08102BD0: .4byte gTasks\n"
"_08102BD4: .4byte sub_8103238\n"
"_08102BD8:\n"
"\tldr r2, [r4]\n"
"\tldrb r0, [r2, 0x17]\n"
"\tadds r1, r2, 0\n"
"\tadds r1, 0x12\n"
"\tadds r2, 0x10\n"
"\tbl DestroyListMenuTask\n"
"\tmovs r0, 0x1\n"
"\tbl HideBg\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x14\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x15\n"
"\tbl sub_81047B0\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x16\n"
"\tbl sub_81047B0\n"
"\tldr r1, _08102C20 @ =gTasks\n"
"\tlsls r0, r5, 2\n"
"\tadds r0, r5\n"
"\tlsls r0, 3\n"
"\tadds r0, r1\n"
"\tldr r1, _08102C24 @ =sub_8102F80\n"
"_08102C10:\n"
"\tstr r1, [r0]\n"
"\tldr r1, [r4]\n"
"\tmovs r0, 0\n"
"_08102C16:\n"
"\tstrb r0, [r1, 0x1]\n"
"_08102C18:\n"
"\tadd sp, 0x8\n"
"\tpop {r4,r5}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_08102C20: .4byte gTasks\n"
"_08102C24: .4byte sub_8102F80");
}
#endif //NONMATCHING