diff --git a/progress/progress.global_asm.csv b/progress/progress.global_asm.csv index 8f3cbc26..6e75eb66 100644 --- a/progress/progress.global_asm.csv +++ b/progress/progress.global_asm.csv @@ -698,7 +698,7 @@ us,asm,func_global_asm_806F12FC,84,yes us,asm,func_global_asm_8060B4D4,136,yes us,asm,func_global_asm_80652EBC,104,yes us,asm,func_global_asm_806E7050,56,yes -us,asm,func_global_asm_805FE398,316,no +us,asm,func_global_asm_805FE398,316,yes us,asm,func_global_asm_8064F84C,264,no us,asm,func_global_asm_80654A2C,404,no us,asm,func_global_asm_807085D0,1512,no diff --git a/progress/progress.total.csv b/progress/progress.total.csv index c7df424a..79a3da5a 100644 --- a/progress/progress.total.csv +++ b/progress/progress.total.csv @@ -698,7 +698,7 @@ us,asm,func_global_asm_806F12FC,84,yes us,asm,func_global_asm_8060B4D4,136,yes us,asm,func_global_asm_80652EBC,104,yes us,asm,func_global_asm_806E7050,56,yes -us,asm,func_global_asm_805FE398,316,no +us,asm,func_global_asm_805FE398,316,yes us,asm,func_global_asm_8064F84C,264,no us,asm,func_global_asm_80654A2C,404,no us,asm,func_global_asm_807085D0,1512,no diff --git a/progress/progress_global_asm.svg b/progress/progress_global_asm.svg index a9a54b63..7996d0a8 100644 --- a/progress/progress_global_asm.svg +++ b/progress/progress_global_asm.svg @@ -17,7 +17,7 @@ global_asm - 35.5987% - 35.5987% + 35.6243% + 35.6243% diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 1ed149d4..1446e472 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Donkey Kong 64 (US) - 36.0219% - 36.0219% + 36.0411% + 36.0411% diff --git a/src/global_asm/code_0.c b/src/global_asm/code_0.c index 2914ef94..00fdb015 100644 --- a/src/global_asm/code_0.c +++ b/src/global_asm/code_0.c @@ -275,6 +275,7 @@ void func_global_asm_805FBE04(void) { guPerspective(&D_global_asm_80768E98, &D_global_asm_8076A09C, D_global_asm_807444B8, D_global_asm_807444BC * FOV, D_global_asm_807444C8, D_global_asm_807444C4, 1.0f); } +// close, just missing some nops #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_0/func_global_asm_805FBFF4.s") extern s32 D_global_asm_8076A070; @@ -289,7 +290,6 @@ extern u8 D_global_asm_807444F0; extern s32 D_global_asm_80767CC0; /* -// TODO: Remarkably close, just missing some NOPs void func_global_asm_805FBFF4(s32 arg0) { s32 phi_s4; OSMesg* sp38; @@ -497,13 +497,25 @@ Gfx *func_global_asm_805FD030(Gfx *dl) { // Displaylist stuff #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_0/func_global_asm_805FD088.s") -// Displaylist stuff, doable -#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_0/func_global_asm_805FE398.s") - -extern s32 D_global_asm_80744470[]; +extern void *D_8076A060; extern s16 D_global_asm_80744490; extern s16 D_global_asm_80744494; +Gfx *func_global_asm_805FE398(Gfx *dl) { + gDPPipeSync(dl++); + gDPSetRenderMode(dl++, G_RM_NOOP, G_RM_NOOP2); + gDPSetCycleType(dl++, G_CYC_FILL); + gSPClearGeometryMode(dl++, G_ZBUFFER); + gDPSetDepthImage(dl++, osVirtualToPhysical(D_8076A060)); + gDPSetColorImage(dl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, D_global_asm_80744490, osVirtualToPhysical(D_8076A060)); + gDPSetFillColor(dl++, 0xFFFCFFFC); + gDPFillRectangle(dl++, 0, 0, D_global_asm_80744490 - 1, D_global_asm_80744494 - 1); + gDPPipeSync(dl++); + return dl; +} + +extern s32 D_global_asm_80744470[]; + Gfx *func_global_asm_805FE4D4(Gfx *arg0) { gDPSetColorImage(arg0++, 0, 2, D_global_asm_80744490, osVirtualToPhysical(D_global_asm_80744470[D_global_asm_807444FC])); return arg0; diff --git a/src/global_asm/code_42630.c b/src/global_asm/code_42630.c index ae595021..5234c0e7 100644 --- a/src/global_asm/code_42630.c +++ b/src/global_asm/code_42630.c @@ -3318,11 +3318,10 @@ u8 func_global_asm_8064EC04(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { return ((s16)func_global_asm_806FB418() >= D_global_asm_807446D0[sp1E]); } -// Doable +// Doable, pretty close #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_global_asm_8064EC60.s") /* -// TODO: Pretty close u8 func_global_asm_8064EC60(s32 arg0, s16 arg1, s16 arg2, s16 arg3) { u8 sp1B; s32 temp_v0;