diff --git a/README.md b/README.md
index 98c970fe..2c1439fc 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# banjo (95.8191%)
+# banjo (95.8644%)
diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml
index dd385d0a..64cfde66 100644
--- a/decompressed.us.v10.yaml
+++ b/decompressed.us.v10.yaml
@@ -752,7 +752,7 @@ segments:
- [0xFCBD30, c, code_763D0] #DONE
- [0xFCC6F0, c, code_76D90] #DONE
- [0xFCD7B0, c, code_77E50] #DONE
- - [0xFCDA60, c, code_78100]
+ - [0xFCDA60, c, code_78100] #DONE
- [0xFCE7B0, c, code_78E50] #DONE
- [0xFCF190, c, fxcommon3score] #DONE
- [0xFCF5E0, c, code_79C80] #DONE
diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index 62fe6fed..a07cfa0c 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -17,7 +17,7 @@
core2
- 94.5791%
- 94.5791%
+ 94.6580%
+ 94.6580%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index edcf84d5..abc2bd3b 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 95.8191%
- 95.8191%
+ 95.8644%
+ 95.8644%
\ No newline at end of file
diff --git a/src/core2/code_6A4B0.c b/src/core2/code_6A4B0.c
index a1455637..e5c3617c 100644
--- a/src/core2/code_6A4B0.c
+++ b/src/core2/code_6A4B0.c
@@ -53,26 +53,27 @@ void func_802F1440(Struct_Core2_6A4B0_2 *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx);
#else
void func_802F1440(Struct_Core2_6A4B0_2 *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
Vtx *sp9C;
- s32 sp58;
+ Vtx *var_s2_2;
s32 sp54;
s32 sp50;
s32 sp4C;
- Struct_Core2_6A4B0_1 *temp_v0_2;
s32 var_s3;
+ Struct_Core2_6A4B0_1 *temp_v0_2;
s32 *var_s1;
s32 *var_s2;
-
+ u16* temp;
+
if (arg0->unk10 == 0) {
func_8024C7B8(gfx, mtx);
}
gSPDisplayList((*gfx)++, D_803689D0);
- sp9C = *vtx;
+ var_s2_2 = sp9C = *vtx;
for(sp4C = 0; sp4C < 6; sp4C++){
for(sp50 = 0; sp50 < 9; sp50++){
- for(sp54 = 0, sp58 = 0; sp54 < 2; sp54++, sp58 += 3){
- var_s1 = D_80368A10 + sp58;\
- var_s2 = D_80368A28 + sp58;
+ for(sp54 = 0; sp54 < 2; sp54++){
+ var_s1 = D_80368A10 + 3*sp54;\
+ var_s2 = D_80368A28 + 3*sp54;
for(var_s3 = 0; var_s3 < 3; var_s3++){
temp_v0_2 = func_802F1804(arg0, sp50, sp4C, sp54, var_s3);
sp9C->n.ob[0] = temp_v0_2->unk0[0];
@@ -83,7 +84,6 @@ void func_802F1440(Struct_Core2_6A4B0_2 *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx)
sp9C->n.tc[0] = *var_s1;
sp9C->n.tc[1] = *var_s2;
-
sp9C->n.n[0] = -1;
sp9C->n.n[1] = -1;
sp9C->n.n[2] = -1;
@@ -96,11 +96,13 @@ void func_802F1440(Struct_Core2_6A4B0_2 *arg0, Gfx **gfx, Mtx **mtx, Vtx **vtx)
}
}
*vtx = sp9C;
+ sp9C = var_s2_2;
var_s3 = 0;
gSPVertex((*gfx)++, osVirtualToPhysical(sp9C), 16, 0);
for(sp4C = 0; sp4C < 6; sp4C++){
for(sp50 = 0; sp50 < 9; sp50++){
- gDPLoadTextureTile((*gfx)++, osVirtualToPhysical((u16*)arg0->unk8 + (sp4C*0x20 + 0xC) * framebuffer_width + (sp50*0x20 + 1)), G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, 0, 0, 0, 33, 33, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
+ temp = (0x20*sp50 + 1) + ((u16*)arg0->unk8 + (0x20*sp4C + 0xC)*framebuffer_width);
+ gDPLoadTextureTile((*gfx)++, osVirtualToPhysical(temp), G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, 0, 0, 0, 33, 33, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
for(sp54 = 0; sp54 < 2; sp54++){
gSP1Triangle((*gfx)++, var_s3, var_s3 + 1, var_s3 + 2, 0);
var_s3 += 3;
diff --git a/src/core2/code_78100.c b/src/core2/code_78100.c
index 94f21384..bdd4aa70 100644
--- a/src/core2/code_78100.c
+++ b/src/core2/code_78100.c
@@ -45,91 +45,77 @@ struct7s D_80381E90;
/* .code */
-#ifndef nonmatching
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_78100/func_802FF090.s")
-#else
-struct7s *func_802FF090(s32 arg0) {
- f32 *var_s6;
- f64 temp_f20;
- f64 temp_f22;
- f64 temp_f28;
- s32 temp_t6;
- s32 temp_t8;
+struct7s *func_802FF090(enum item_e arg0){
+ s32 i;
+ s32 red;
s32 green;
s32 blue;
- s32 red;
s32 alpha;
- s32 tmp_blue;
s32 tmp_green;
- s32 tmp_red;
s32 tmp_alpha;
- s32 var_t2;
- s8 *var_s5;
- u16 *var_ra;
- u16 *var_t3;
+ s32 j;
u16 rgba;
u32 jinjo_id;
- void *var_s3;
- void *var_t4;
- s32 i;
D_80381E54 = 1.0f;
- for(jinjo_id = 0; jinjo_id < 5; jinjo_id++){
+ for (jinjo_id = 0; jinjo_id < 5; jinjo_id++)
+ {
D_80381E60[jinjo_id] = 0.0f;
- D_80381E58[jinjo_id] = (item_getCount(ITEM_12_JINJOS) & (1 << jinjo_id)) ? 3 : 0;
- for(i = 0; i < 0xD; i++){
- for(var_t2 = 0; var_t2 < 0x10; var_t2++){
- rgba = D_8036A070[i][var_t2];
- red = tmp_red = (rgba >> 0xB) & 0x1F;
- green = tmp_green = (rgba >> 6) & 0x1F;
- blue = tmp_blue = (rgba >> 1) & 0x1F;
- alpha = tmp_alpha = (rgba >> 0) & 0x1;
- if ((red < 0x10) || (green < 0x10) || (blue < 0x10)) {
- switch (jinjo_id) {
- case 3:
- red = tmp_red;
- green = tmp_green;
- blue = tmp_blue;
- alpha = tmp_alpha;
- break;
-
- case 0:
- green = tmp_green * 1.5;
- red = tmp_red * 0.25;
- blue = tmp_blue;
- alpha = tmp_alpha;
- break;
+ D_80381E58[jinjo_id] = (item_getCount(ITEM_12_JINJOS) & (1 << jinjo_id)) ? (3) : (0);
+ for (i = 0; i < 0xD; i++)
+ {
+ for (j = 0; j < 0x10; j++)
+ {
+ rgba = D_8036A070[i][j];
+ tmp_alpha = (rgba >> 0) & 0x1;
- case 1:
- red = tmp_red * 0.2;
- green = tmp_blue;
- blue = tmp_blue * 0.2;
- alpha = tmp_alpha;
- break;
+ red = (rgba >> 0xB) & 0x1F;
+ tmp_green = green = ((rgba >> 6) & 0x1F);
+ blue = (rgba >> 1) & 0x1F;
+ alpha = tmp_alpha;
+ if (((red < 0x10) || (green < 0x10)) || (blue < 0x10))
+ {
+ switch (jinjo_id)
+ {
+
+ case 0:
+ red = red * 0.25;
+ green = tmp_green * 1.5;
+ break;
+
+ case 1:
+ red = red * 0.2;
+ green = blue;
+ blue = blue * 0.2;
+ break;
+
+ case 2:
+ green = blue;
+ blue = tmp_green * 0.4;
+ green *= 0.6;
+ break;
+
+ case 3:
+ green = green;
+ blue = blue;
+ break;
+
+ case 4:
+ green = blue;
+ blue = tmp_green * 0.4;
+ alpha = tmp_alpha;
+ break;
- case 2:
- {s32 var_v1;
- red = tmp_red;
- blue = tmp_green * 0.4;
- green = tmp_blue * 0.6;
- alpha = tmp_alpha;
- }
- break;
- case 4:
- red = tmp_red;
- green = tmp_blue;
- blue = tmp_green * 0.4;
- alpha = tmp_alpha;
- break;
}
+
}
- D_80381620[i][jinjo_id][var_t2] = ((red << 0xB) | (green << 6) | (blue << 1) | alpha);
+ D_80381620[i][jinjo_id][j] = (((red << 0xB) | (green << 6)) | (blue << 1)) | alpha;
}
+
}
}
return &D_80381E90;
}
-#endif
void fxjinjoscore_free(enum item_e item_id, struct8s * arg1){
s32 i;