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;