core1/code_9D30.c progress
This commit is contained in:
parent
7e2298a89c
commit
e52ce38d7f
|
@ -1,4 +1,4 @@
|
|||
# banjo (90.8926%)
|
||||
# banjo (90.9653%)
|
||||
|
||||
<img src="./progress/progress_total.svg">
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h44v20H0z"/>
|
||||
<path fill="#4ce000" d="M44 0h67v20H44z"/>
|
||||
<path fill="#49e000" d="M44 0h67v20H44z"/>
|
||||
<path fill="url(#b)" d="M0 0h111v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
|
@ -17,7 +17,7 @@
|
|||
<text x="22.0" y="14">core1</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">83.1424%</text>
|
||||
<text x="77.5" y="14">83.1424%</text>
|
||||
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">83.6434%</text>
|
||||
<text x="77.5" y="14">83.6434%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
@ -9,7 +9,7 @@
|
|||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h150v20H0z"/>
|
||||
<path fill="#29e000" d="M150 0h67v20H150z"/>
|
||||
<path fill="#28e000" d="M150 0h67v20H150z"/>
|
||||
<path fill="url(#b)" d="M0 0h217v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
|
@ -17,7 +17,7 @@
|
|||
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">90.8926%</text>
|
||||
<text x="183.5" y="14">90.8926%</text>
|
||||
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">90.9653%</text>
|
||||
<text x="183.5" y="14">90.9653%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
@ -460,7 +460,7 @@ s32 func_80240204(s32 addr, s32 len, void *state){
|
|||
}
|
||||
temp_s0_3 = D_8027D5B0.unk8;
|
||||
if (temp_s0_3 == NULL) {
|
||||
func_80247F24(2, 0x7D1, sp30, addr);
|
||||
func_80247F24(2, 0x7D1);
|
||||
func_802483D8();
|
||||
return osVirtualToPhysical(D_8027D5B0.unk4);
|
||||
}
|
||||
|
|
|
@ -169,7 +169,77 @@ void func_802424D4(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], f32 arg4[3], f3
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_3A70/func_80242BE8.s")
|
||||
#else
|
||||
void func_80242BE8(Gfx **gfx, Vtx **arg1, f32 arg2[2][2][2][3], s32 arg3[3], s32 *arg4, s32 arg5) {
|
||||
f32 sp84[3];
|
||||
f32 *temp_a0;
|
||||
f32 *var_v0;
|
||||
f32 temp_f12;
|
||||
f32 var_f18;
|
||||
s32 temp_a2;
|
||||
s32 var_a2;
|
||||
s32 var_a3;
|
||||
s32 var_t2;
|
||||
s32 var_v1;
|
||||
void *temp_v0;
|
||||
void *temp_v0_10;
|
||||
void *temp_v0_11;
|
||||
void *temp_v0_12;
|
||||
void *temp_v0_13;
|
||||
void *temp_v0_14;
|
||||
void *temp_v0_15;
|
||||
void *temp_v0_16;
|
||||
void *temp_v0_2;
|
||||
void *temp_v0_3;
|
||||
void *temp_v0_4;
|
||||
void *temp_v0_5;
|
||||
void *temp_v0_6;
|
||||
void *temp_v0_7;
|
||||
void *temp_v0_8;
|
||||
void *temp_v0_9;
|
||||
|
||||
// BREAK???===
|
||||
func_8024C5CC(sp84);
|
||||
gSPDisplayList((*gfx)++, D_80275880);
|
||||
var_t2 = 0;
|
||||
if(arg5){
|
||||
gSPSetGeometryMode((*gfx)++, G_CULL_BACK);
|
||||
}
|
||||
else{
|
||||
gSPSetGeometryMode((*gfx)++, G_CULL_FRONT);
|
||||
}
|
||||
gSPVertex((*gfx)++, *arg1, 8, 0);
|
||||
for(var_t2 = 0; var_t2 < 2; var_t2++){
|
||||
for(var_a3 = 0; var_a3 < 2; var_a3++){
|
||||
for(var_v1 = 0; var_v1 < 2; var_v1++){
|
||||
(*arg1)->v.ob[0] = arg2[var_t2][var_a3][var_v1][0] - sp84[0];
|
||||
(*arg1)->v.ob[1] = arg2[var_t2][var_a3][var_v1][1] - sp84[1];
|
||||
(*arg1)->v.ob[2] = arg2[var_t2][var_a3][var_v1][2] - sp84[2];
|
||||
(*arg1)->v.flag = 0;
|
||||
(*arg1)->v.tc[0] = 0;
|
||||
(*arg1)->v.tc[1] = 0;
|
||||
(*arg1)->v.cn[0] = 0;
|
||||
(*arg1)->v.cn[1] = 0;
|
||||
(*arg1)->v.cn[2] = 0;
|
||||
(*arg1)->v.cn[3] = 0;
|
||||
(*arg1)++;
|
||||
}
|
||||
}
|
||||
}
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], *arg4);
|
||||
gSP2Triangles((*gfx)++, 7, 3, 5, 0, 5, 3, 1, 0);
|
||||
gSP1Quadrangle((*gfx)++, 6, 4, 0, 2, 0);
|
||||
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], *arg4);
|
||||
gSP1Quadrangle((*gfx)++, 7, 6, 2, 3, 0);
|
||||
gSP2Triangles((*gfx)++, 4, 5, 0, 0, 5, 1, 0, 0);
|
||||
|
||||
gDPPipeSync((*gfx)++);
|
||||
gDPSetPrimColor((*gfx)++, 0, 0, arg3[0], arg3[1], arg3[2], *arg4);
|
||||
gSP1Quadrangle((*gfx)++, 5, 4, 6, 7, 0);
|
||||
gSP2Triangles((*gfx)++, 0, 1, 2, 0, 1, 3, 2, 0);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -86,8 +86,49 @@ void func_80245F34(f32 *arg0, f32 *arg1, f32 *arg2) {
|
|||
*arg2 *= inv_len;
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
void func_80245FB8(f32 mf[4][4], u16 *perspNorm, f32 fovy, f32 aspect, f32 near, f32 far, f32 scale);
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_7F60/func_80245FB8.s")
|
||||
#else
|
||||
void func_80245FB8(float mf[4][4], u16 *perspNorm, float fovy, float aspect, float near, float far, float scale)
|
||||
{
|
||||
float cot;
|
||||
f32 tmp;
|
||||
int i, j;
|
||||
|
||||
near = (near < 1) ? 1 : near;
|
||||
far = (far < near + 100) ? near + 100 : far;
|
||||
tmp = ((2 * near * far) / (near - far));
|
||||
if( ( tmp*scale > 32767) || (tmp*scale < -32767)) {
|
||||
tmp = ((tmp*scale > 32767) ? 32767.0f : -32767.0f);
|
||||
near = (-(tmp/scale) * far) / ((2 * far) - (tmp/scale));
|
||||
}
|
||||
|
||||
guMtxIdentF(mf);
|
||||
fovy *= 3.1415926 / 180.0;
|
||||
cot = cosf (fovy/2) / sinf (fovy/2);
|
||||
mf[0][0] = cot / aspect;
|
||||
mf[1][1] = cot;
|
||||
mf[2][2] = (near + far) / (near - far);
|
||||
mf[2][3] = -1;
|
||||
mf[3][2] = ((2 * near * far) / (near - far));
|
||||
mf[3][3] = 0;
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
for (j=0; j<4; j++)
|
||||
mf[i][j] *= scale;
|
||||
|
||||
if (perspNorm != (u16 *) NULL) {
|
||||
if ((near + far)<=2.0) {
|
||||
*perspNorm = (u16) 0xFFFF;
|
||||
} else {
|
||||
*perspNorm = (u16) ((2.0*65536.0)/(near + far));
|
||||
if (*perspNorm<=0)
|
||||
*perspNorm = (u16) 0x0001;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void guPerspective(Mtx *m, u16 *perspNorm, f32 fovy, f32 aspect, f32 near, f32 far, f32 scale) {
|
||||
f32 sp28[4][4];
|
||||
|
|
|
@ -25,8 +25,7 @@ extern u8 D_80275A74[];
|
|||
extern u32 D_80275A7C[][2];
|
||||
|
||||
extern s16 D_80275BBC;
|
||||
|
||||
|
||||
extern s16 D_80275BC0;
|
||||
extern s16 D_80275BC4;
|
||||
|
||||
extern s16 D_80275BC8;
|
||||
|
@ -34,15 +33,23 @@ extern s16 D_80275BC8;
|
|||
extern s16 D_80275BCC;
|
||||
extern s16 D_80275BD0;
|
||||
extern s16 D_80275BD4;
|
||||
extern s16 D_80275BD8;
|
||||
extern s16 D_80275BDC;
|
||||
extern u8 D_80275BE0;
|
||||
extern s32 D_80275BE4;
|
||||
|
||||
extern u8 D_80275BE8[];
|
||||
/* .bss */
|
||||
s32 D_802806E0;
|
||||
s32 D_802806E4;
|
||||
s32 D_802806E8;
|
||||
s32 D_802806EC;
|
||||
|
||||
/* .h */
|
||||
void func_802484D0(void);
|
||||
void func_8024856C(void);
|
||||
void func_80248520(void);
|
||||
|
||||
/* code */
|
||||
void func_80247750(s32 r, s32 g, s32 b){
|
||||
D_80275A68 = r;
|
||||
D_80275A6C = g;
|
||||
|
@ -180,9 +187,53 @@ void func_80247CEC(s32 arg0, s32 arg1, s32 arg2) {
|
|||
func_80247A7C(arg0, arg1, arg2, 0, 1, D_80275A50[D_80275A74[arg0]][0], D_80275A50[D_80275A74[arg0]][1], D_80275A50[D_80275A74[arg0]][2]);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80247D80.s")
|
||||
void func_80247D80(s32 arg0, s32 arg1, s32 arg2) {
|
||||
s16 temp_v0;
|
||||
s32 var_a1;
|
||||
s32 var_s0;
|
||||
s32 var_s1;
|
||||
|
||||
D_80275BC4 = D_80275BBC;
|
||||
D_80275BD4 = arg2;
|
||||
if (arg1 < 0) {
|
||||
func_80247CEC(arg0, 0x26, arg2);
|
||||
arg1 *= -1;
|
||||
}
|
||||
|
||||
for(var_s0 = 1000000000; var_s0 >= 10 && arg1 < var_s0; var_s0 /= 10){
|
||||
continue;
|
||||
}
|
||||
|
||||
for(var_s0 = var_s0; var_s0 >= 10; var_s0 /= 10){
|
||||
for(var_a1 = 0; arg1 >= var_s0; var_a1++){
|
||||
arg1 -= var_s0;
|
||||
}
|
||||
func_80247CEC(arg0, var_a1, arg2);
|
||||
}
|
||||
|
||||
func_80247CEC(arg0, arg1, arg2);
|
||||
func_8024856C();
|
||||
if (arg2 == 7) {
|
||||
D_80275BD8 = D_80275BC4;
|
||||
D_80275BDC = 0;
|
||||
}
|
||||
else if (D_80275BC4 >= D_80275BDC) {
|
||||
D_80275BDC = D_80275BC4;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80247F24(s32 arg0, s32 arg1) {
|
||||
D_80275BD0 = 0;
|
||||
D_80275BCC = arg0;
|
||||
D_80275BBC = 0xE;
|
||||
D_80275BC8 = 0xA;
|
||||
func_80247D80(arg0, arg1, 7);
|
||||
func_802484D0();
|
||||
D_80275BC0 = D_80275BC8;
|
||||
D_80275BDC = D_80275BBC;
|
||||
D_80275BE0 = 1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80247F24.s")
|
||||
|
||||
void func_80247F9C(s32 arg0){
|
||||
func_80247D80(D_80275BCC, arg0, 2);
|
||||
|
@ -193,7 +244,34 @@ void func_80247F9C(s32 arg0){
|
|||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248098.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_8024824C.s")
|
||||
s32 func_8024824C(s32 arg0) {
|
||||
if ((arg0 >= (s32) D_80275BE8[0]) && ((s32) D_80275BE8[1] >= arg0)) {
|
||||
return (arg0 - D_80275BE8[0]) + 0xA;
|
||||
}
|
||||
|
||||
if ((arg0 >= (s32) D_80275BE8[2]) && ((s32) D_80275BE8[3] >= arg0)) {
|
||||
return (arg0 - D_80275BE8[2]) + 0xA;
|
||||
}
|
||||
|
||||
if ((arg0 >= (s32) D_80275BE8[4]) && ((s32) D_80275BE8[5] >= arg0)) {
|
||||
return (arg0 - D_80275BE8[4]);
|
||||
}
|
||||
|
||||
if (arg0 == D_80275BE8[6]) {
|
||||
return 0x24;
|
||||
}
|
||||
if (arg0 == D_80275BE8[7]) {
|
||||
return 0x25;
|
||||
}
|
||||
if (arg0 == D_80275BE8[8]) {
|
||||
return 0x26;
|
||||
}
|
||||
if (arg0 == D_80275BE8[9]) {
|
||||
return 0x27;
|
||||
}
|
||||
return 0x27;
|
||||
}
|
||||
|
||||
|
||||
#ifndef NONMATCHING
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248330.s")
|
||||
|
@ -204,9 +282,13 @@ void func_80248330(u8 *arg0){
|
|||
|
||||
D_80275BC4 = D_80275BBC;
|
||||
D_80275BD4 = 2;
|
||||
for(i = 0; arg0[i] != 0; i++){
|
||||
func_8024824C(arg0[i]);
|
||||
func_80247CEC(D_80275BCC, arg0[i], 2);
|
||||
i = 0;
|
||||
val = arg0[i];
|
||||
while(arg0[i] != 0){
|
||||
val = arg0[i];
|
||||
func_8024824C(val);
|
||||
func_80247CEC(D_80275BCC, val, 2);
|
||||
i++;
|
||||
}
|
||||
func_80248520();
|
||||
}
|
||||
|
@ -235,15 +317,41 @@ void func_80248404(s32 arg0){
|
|||
D_80275BD0 = 0;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248444.s")
|
||||
void func_80248444(s32 arg0) {
|
||||
D_80275BC8 += arg0;
|
||||
if (D_80275BC8 >= 0xCD) {
|
||||
D_80275BBC = D_80275BDC + 4;
|
||||
D_80275BC4 = D_80275BBC;
|
||||
D_80275BC8 = (D_80275BD8 < D_80275BC4) ? 0xA : D_80275BC0;
|
||||
D_80275BDC = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_802484D0.s")
|
||||
void func_802484D0(void){
|
||||
func_80248444( D_80275BD4*5 + 2);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248500.s")
|
||||
void func_80248500(void){
|
||||
func_80248444(2);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248520.s")
|
||||
void func_80248520(void){
|
||||
func_8024856C();
|
||||
if(D_80275BC4 >= D_80275BDC){
|
||||
D_80275BDC = D_80275BC4;
|
||||
}
|
||||
func_802484D0();
|
||||
}
|
||||
|
||||
void func_8024856C(void) {
|
||||
s16 sp1E;
|
||||
s16 temp_v0;
|
||||
|
||||
sp1E = D_80275BC4--;
|
||||
func_80247CEC(D_80275BCC, 0x27, D_80275BD4);
|
||||
D_80275BC4 = sp1E;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_8024856C.s")
|
||||
|
||||
s32 func_802485BC(void){
|
||||
return D_80275BD0;
|
||||
|
|
|
@ -285,8 +285,7 @@ segments:
|
|||
- [0x39C30, bin, data_39C30] # .rodata, code_3A70]
|
||||
- [0x39C40, .rodata, code_5650]
|
||||
- [0x39CA0, .rodata, code_72B0]
|
||||
- [0x39CC0, bin, data_39CC0]
|
||||
- [0x39CD0, .rodata, code_7F60]
|
||||
- [0x39CC0, .rodata, code_7F60]
|
||||
- [0x39CE0, bin, data_39CE0] # .rodata, code_9D30]
|
||||
- [0x39D00, .rodata, done/code_CE60]
|
||||
- [0x39FD0, .rodata, code_EAF0]
|
||||
|
|
Loading…
Reference in New Issue