diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index 5f4e6f75..48ea34bd 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -17,7 +17,7 @@
core2
- 78.9639%
- 78.9639%
+ 79.1247%
+ 79.1247%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index 7ad8b8dc..3c95b261 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -9,7 +9,7 @@
-
+
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 82.9127%
- 82.9127%
+ 83.0050%
+ 83.0050%
\ No newline at end of file
diff --git a/src/core2/code_79C80.c b/src/core2/code_79C80.c
index 1da24b30..62918ea4 100644
--- a/src/core2/code_79C80.c
+++ b/src/core2/code_79C80.c
@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
+extern f32 func_802FB0E4(struct8s*);
+
extern s32 D_80276588;
extern s32 D_8027658C;
@@ -64,9 +66,6 @@ struct7s *func_80300CD8(enum item_e item_id){
return &D_80381F30;
}
-#ifndef NONMATCHING
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_79C80/func_80300D0C.s")
-#else
void func_80300D0C(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vtx **vtx){
int i;
int tmp_v1;
@@ -88,19 +87,14 @@ void func_80300D0C(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
for(i = D_80381F00-1; i >= 0; i--){//L80300E40
if(i != 0 && (i + 1 != D_80381F00 || D_80381F00 & 1)
){
- if(i & 1){
- s6 = i +1;
- }
- else{
- s6 = i -1;
- }
+ s6 = (i & 1) ? i + 1 : i - 1;
}
else{//L80300E84
s6 = i;
}
gDPPipeSync((*gfx)++);
- if(i < D_80381F04){
- if( 8.0f < i && i < D_80381F04 - 8.0f){
+ if(D_80381F04 > i){
+ if((0 < D_80381F04 - 8.0f) && ((D_80381F04 - 8.0f) > i)){
if(!spD4){
func_80347FC0(gfx, D_8036A914, 0, 0, 0, 0, 0, 2, 2, &spEC, &spE8);
spD4 = TRUE;
@@ -111,22 +105,14 @@ void func_80300D0C(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
else{//L80300F58
gDPSetPrimColor((*gfx)++, 0, 0, 0xFF, 0xFF, 0xFF, 0x78);
}
- f20 = i*0xd + (96.0f - (f32)D_80276588/2);
- f14 = (f32)D_8027658C/2 - func_802FB0E4(arg1);
- f14 = (f14 - D_80381F08[s6]) - -48.0f;
+ f20 = 96.0f - (f32)D_80276588/2 + (i*13);
+ f14 = (f32)D_8027658C/2 - func_802FB0E4(arg1) - D_80381F08[s6] - -48.0f;
f14 = (i & 1) ? f14 + 5.75 : f14 - 5.75;
gSPVertex((*gfx)++, *vtx, 4, 0);
for(tmp_v1 = 0; tmp_v1 < 2; tmp_v1++){//L8030101C
for(tmp_v0 = 0; tmp_v0 < 2; tmp_v0++){//L80301030
- f18 = spEC * D_80381EFC*tmp_v0 - spEC * D_80381EFC/2;
- f18 += f20;
- f18 *= 4.0f;
- (*vtx)->v.ob[0] = f18;
-
- f18 = spE8 * D_80381EFC/2 - spE8 * D_80381EFC*tmp_v1;
- f18 += f14;
- f18 *= 4.0f;
- (*vtx)->v.ob[1] = f18;
+ (*vtx)->v.ob[0] = (((spEC * D_80381EFC)*tmp_v0 - (spEC * D_80381EFC)/2) + f20)*4.0f;
+ (*vtx)->v.ob[1] = (((spE8 * D_80381EFC)/2 - (spE8 * D_80381EFC)*tmp_v1) + f14) * 4.0f;
(*vtx)->v.ob[2] = -0x14;
(*vtx)->v.tc[0] = ((spEC - 1) *tmp_v0) << 6;
(*vtx)->v.tc[1] = ((spE8 - 1) *tmp_v1) << 6;
@@ -140,7 +126,6 @@ void func_80300D0C(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
func_8024C904(gfx, mtx);
}
-#endif
bool func_803012B8(f32 arg0, s32 arg1, s32 arg2){
if(arg1 == 0)
@@ -234,4 +219,4 @@ void func_80301348(enum item_e item_id, struct8s *arg1) {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/core2/code_7A760.c b/src/core2/code_7A760.c
index 741c24ce..857a860e 100644
--- a/src/core2/code_7A760.c
+++ b/src/core2/code_7A760.c
@@ -59,7 +59,6 @@ void func_803017D0(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
s32 spD0;
s32 var_s4;
s32 var_s6;
- s32 var_s7;
s32 var_v0;
s32 var_v1;
@@ -68,9 +67,8 @@ void func_803017D0(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
func_80347FC0(gfx, D_8036A960, 0, 0, 0, 0, 0, 2, 2, &spD4, &spD0);
func_8024C7B8(gfx, mtx);
for(var_s4 = 0; var_s4 < 6; var_s4++){
- var_s7 = var_s4 & 1;
if ((var_s4 != 0) && (var_s4 != 5)) {
- var_s6 = (var_s7) ? var_s4 + 1 : var_s4 - 1;
+ var_s6 = (var_s4 & 1) ? var_s4 + 1 : var_s4 - 1;
} else {
var_s6 = var_s4;
}
@@ -84,7 +82,7 @@ void func_803017D0(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
temp_f16 = (-40.0f + temp_f16);
var_f14 = (temp_f16 + D_80381F68[var_s6]) - ((f32) D_80276588 / 2);
temp_f16 = (((var_s4 * 15.5) + 78.0) - ((f32) D_8027658C / 2));
- var_f14 = (var_s7) ? var_f14 + 5.0f : var_f14 - 5.0f;
+ var_f14 = (var_s4 & 1) ? var_f14 + 5.0f : var_f14 - 5.0f;
gSPVertex((*gfx)++, *vtx, 4, 0);
for(var_v1 = 0; var_v1 < 2; var_v1++){
for(var_v0 = 0; var_v0 < 2; var_v0++){
diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml
index c663b5f8..071d0ae0 100644
--- a/subyaml/core2.us.v10.yaml
+++ b/subyaml/core2.us.v10.yaml
@@ -282,7 +282,7 @@ segments:
- [0x78100, c, code_78100]
- [0x78E50, c, code_78E50]
- [0x79830, c, fxcommon3score] #DONE
- - [0x79C80, c, code_79C80]
+ - [0x79C80, c, code_79C80] #DONE
- [0x7A760, c, code_7A760] #DONE
- [0x7AF80, c, code_7AF80]
- [0x82000, c, code_82000]