diff --git a/src/main.c b/src/main.c index 80671cd..42fcf38 100644 --- a/src/main.c +++ b/src/main.c @@ -37,7 +37,6 @@ void func_800E9CEC(); /* extern */ void func_800EA714(); /* extern */ void func_800EA8E0(); /* extern */ void func_8016C900(); /* extern */ -void func_8016CD50(s32); /* extern */ void func_80179060(); /* extern */ void func_8017BDC0(); /* extern */ void func_80184D70(); /* extern */ @@ -47,7 +46,6 @@ extern s32 D_800A81F4; extern s32 D_800A8204; extern Unknown1 D_800ABD80; extern Unknown1 D_800E9C08; -extern s8 D_800A8213; extern u8 D_800AEF98; extern s8 D_800AEF99; extern s8 D_800AEF9A; @@ -64,22 +62,15 @@ extern s32 D_8018FDC0; extern s32 D_80190F10; extern s32 D_80243DB0; -extern s8 D_800A8210; -extern s8 D_800A8211; -extern s8 D_800A8212; -extern s8 D_800A8213; - extern Arg_800712C4* D_800AEF9C; extern s32 D_800A81F4; extern s32 D_800A81F8; extern s32 D_800C4BCC; - extern s8 D_800AEF9A; extern void* D_800C4BB8; -extern OSContPad __GLOBAL_CONTROLLER_DATA_COPY[4]; extern struct { // s32 field_0x0; // s32 field_0x4; @@ -102,6 +93,8 @@ extern struct { s8 field_0x2; } D_800A81F0; +extern void* D_800E8210; + DECLARE_SEGMENT(segment_song); DECLARE_SEGMENT(segment_obdata); @@ -406,7 +399,51 @@ void func_800737A0(void) { gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8); } -INCLUDE_ASM(const s32, "main", func_8007382C); +/* 3C2C 8007382C */ +void func_8007382C(void) { + u32 temp_a1; + + if (__get_compared_osTvType() != 0) + return; + + if (D_800A8213 != 0) { + temp_a1 = D_800C4B20 - 0x80000000; + + gDPSetDepthImage(obPtrDisplayList++, temp_a1); + + gDPPipeSync(obPtrDisplayList++); + + gDPPipeSync(obPtrDisplayList++); + gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL); + + gDPPipeSync(obPtrDisplayList++); + gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2); + gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, temp_a1); + gDPSetFillColor(obPtrDisplayList++, 0xFFFCFFFC); + + gDPPipeSync(obPtrDisplayList++); + gDPFillRectangle(obPtrDisplayList++, 0, 0, 319, 239); + + gDPPipeSync(obPtrDisplayList++); + gDPPipeSync(obPtrDisplayList++); + } + + gDPPipeSync(obPtrDisplayList++); + + gDPPipeSync(obPtrDisplayList++); + gDPSetCycleType(obPtrDisplayList++, G_CYC_FILL); + + gDPPipeSync(obPtrDisplayList++); + gDPSetRenderMode(obPtrDisplayList++, G_RM_NOOP, G_RM_NOOP2); + gDPSetColorImage(obPtrDisplayList++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, osVirtualToPhysical(D_800E8210)); + gDPSetFillColor(obPtrDisplayList++, 0x00010001); + + gDPPipeSync(obPtrDisplayList++); + gDPFillRectangle(obPtrDisplayList++, 0, 0, 319, 239); + + gDPPipeSync(obPtrDisplayList++); + gSPDisplayList(obPtrDisplayList++, DISPLAY_LIST_801869C8); +} INCLUDE_ASM(const s32, "main", func_80073AE4);