From 7c72e31e631726c2bbbe9017b02ae0fc009124e6 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Fri, 12 Aug 2022 13:40:48 -0500 Subject: [PATCH] core2/code_79C80.c done --- progress/progress_core2.svg | 4 ++-- progress/progress_total.svg | 6 +++--- src/core2/code_79C80.c | 35 ++++++++++------------------------- src/core2/code_7A760.c | 6 ++---- subyaml/core2.us.v10.yaml | 2 +- 5 files changed, 18 insertions(+), 35 deletions(-) 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]