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;