a bunch of graphics related functions and data importation (#31)

* graphics?

* more stuff

* missed one

* headers

* data import and such
This commit is contained in:
petrie911
2023-11-26 15:27:05 -06:00
committed by GitHub
parent d6fc56adc0
commit 0205789a28
24 changed files with 2901 additions and 184 deletions
+2
View File
@@ -1,5 +1,7 @@
#include "global.h"
#include "fox_rcp_setup.c"
void func_800B8DD0(Gfx** gfxP, s16 i) {
gSPDisplayList((*gfxP)++, &((Gfx*) gSetupDLs)[i * 9]);
}
File diff suppressed because it is too large Load Diff
+21
View File
@@ -1,6 +1,27 @@
#include "global.h"
SaveFile gSaveFile;
Save gDefaultSave = {
{
// Replace with SaveData once that struct is complete
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x02, 0x03, 0x04, 0x00, 0x63, 0x63, 0x63, 0x46, 0x4F, 0x58, 0x50, 0x45, 0x50, 0x53, 0x4C, 0x50, 0x46,
0x41, 0x4C, 0x57, 0x4C, 0x46, 0x4C, 0x4F, 0x4E, 0x50, 0x49, 0x47, 0x41, 0x4E, 0x52, 0x42, 0x49, 0x4C,
0x4B, 0x41, 0x54, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x90, 0x09, 0x57, 0x09, 0xB7, 0x09, 0x87,
0x09, 0x37, 0x09, 0x17, 0x09, 0xF7, 0x5A, 0x90, 0x09, 0x54, 0x09, 0x64, 0x09, 0xD4, 0x09, 0x74, 0x09,
0x14, 0x09, 0xF4, 0x50, 0x90, 0x09, 0x02, 0x09, 0xC2, 0x09, 0x42, 0x09, 0xA2, 0x09, 0x22, 0x09, 0xE2,
0x46, 0x90, 0x09, 0x01, 0x09, 0xC1, 0x09, 0x41, 0x09, 0xA1, 0x09, 0x21, 0x09, 0xE1, 0x3C, 0x90, 0x09,
0x05, 0x09, 0xC5, 0x09, 0x45, 0x09, 0xA5, 0x09, 0x25, 0x09, 0xE5, 0x32, 0x90, 0x04, 0x03, 0x09, 0xC3,
0x09, 0x43, 0x09, 0xA3, 0x09, 0x23, 0x09, 0xE3, 0x28, 0x90, 0x01, 0x06, 0x02, 0xC6, 0x09, 0x46, 0x09,
0xA6, 0x09, 0x26, 0x09, 0xE6, 0x1E, 0x90, 0x01, 0x02, 0x01, 0xC4, 0x01, 0x47, 0x08, 0xA5, 0x09, 0x23,
0x09, 0xE6, 0x14, 0x90, 0x01, 0x03, 0x01, 0xC5, 0x01, 0x47, 0x01, 0xA4, 0x06, 0x22, 0x09, 0xE1, 0x0A,
0x90, 0x01, 0x07, 0x01, 0xC4, 0x01, 0x44, 0x01, 0xA2, 0x01, 0x21, 0x04, 0xE5, 0xFF, 0x09, 0x01, 0x02,
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
},
0,
};
u16 Save_Checksum(Save* arg0) {
u16 var_v1;
+1 -1
View File
@@ -1,6 +1,6 @@
#include "global.h"
s32 Lib_vsPrintf(char* dst, char* fmt, va_list args) {
s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args) {
return vsprintf(dst, fmt, args);
}
+1 -1
View File
@@ -59,7 +59,7 @@ Gfx* gMasterDisp;
Gfx* gUnkDisp2;
Lightsn* gLight;
FrameBuffer* gFrameBuffer;
s32* D_80137E74;
u16* D_80137E74;
u8 D_80137E78;
u32 gFrameCounter;
+114 -14
View File
@@ -1,5 +1,7 @@
#include "global.h"
char D_800CF970[] = "$Id: fox_edisplay.c,v 1.196 1997/05/08 08:31:50 morita Exp $";
void func_800596C0(void) {
Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 13.0f * M_DTOR, 1);
Matrix_Scale(gGfxMatrix, 1.02f, 0.98f, 1.0f, 1);
@@ -48,6 +50,17 @@ void func_800599A4(s32 arg0, Vec3f* arg1, s32* arg2) {
}
}
f32 D_800CF9B0[] = {
-12.32422638f, -12.00849533f, -11.08310699f, -9.561470032f, -7.440753937f, -4.713317871f, -1.393303037f,
2.485869884f, 6.872662067f, 11.66899109f, 16.7521019f, 21.98126984f, 27.19302368f, 32.21533966f,
36.87569427f, 41.0078125f, 44.46230316f, 47.09422302f, 48.7610054f, 49.34596634f, 47.64530182f,
42.98818588f, 36.06262207f, 27.66272163f, 18.64647293f, 9.883304596f, 2.113918066f, -4.157948017f,
-8.673706055f, -11.39522171f, -12.32422638f,
};
f32 D_800CFA2C[] = {
1.0f, 1.0f, 0.95f, 0.9f, 0.85f, 0.8f, 0.75f, 0.7f, 0.65f, 0.6f,
};
void func_80059A24(Object_2F4* arg0) {
Vec3f sp30[30];
f32 temp = D_800CF9B0[arg0->unk_0B6] - 114.0f;
@@ -63,7 +76,7 @@ void func_80059AEC(Object_80* arg0) {
}
void func_80059B20(Object_80* arg0) {
if (arg0->obj.id == 0x1D) {
if (arg0->obj.id == 29) {
gSPDisplayList(gMasterDisp++, D_7007350);
} else {
func_8005980C(D_800CF9B0[arg0->obj.id + 2]);
@@ -153,17 +166,78 @@ void func_8005A07C(void* arg0) {
void func_8005A088(void* arg0) {
}
Gfx* D_800CFA54[] = {
0x06027960, 0x060273A0, 0x060183B0, 0x060121E0, 0x0602A2E0, 0x0602A720, 0x0602B8F0,
0x0602A8C0, 0x06028E70, 0x0602E0A0, 0x0602DE70, 0x0602DC40, 0x0602D830, 0x0602D340,
0x06031280, 0x06031130, 0x06030850, 0x06030FD0, 0x0602DD40, 0x06033AF0, 0x060186E0,
0x06024160, 0x06033290, 0x06017F10, 0x060074E0, 0x06007590, 0x06007730, 0x06005CC0,
};
Gfx* D_800CFAC4[] = {
0x060176D0, 0x06017810, 0x06017770, 0x06016D90, 0x06016E30, 0x060178B0,
};
Gfx* D_800CFADC[] = {
0x06023690, 0x06021BB0, 0x06021C50, 0x06021CE0, 0x06021D80, 0x06016350,
0x06021E20, 0x060222A0, 0x06022BE0, 0x06022D70, 0x06022F00,
};
Gfx* D_800CFB08[] = {
0x06020F10,
0x06021100,
0x060214B0,
};
Gfx* D_800CFB14[] = {
0x060163E0, 0x060165D0, 0x06016880, 0x06016B50, 0x06000C40,
};
Gfx* D_800CFB28[] = {
0x06018E80, 0x0601F620, 0x0601F420, 0x06018C80, 0x0601F940, 0x0601F260,
};
Gfx* D_800CFB40[] = {
0x06014DB0, 0x060146D0, 0x06014B80, 0x06014470, 0x06014930, 0x060138A0, 0x060151A0, 0x0600F750, 0x06015810,
};
Gfx* D_800CFB64[] = {
0x0600D4A0, 0x0600D720, 0x0600D810, 0x0600CFF0, 0x0600BD20, 0x0600D390, 0x0600E150, 0x06007160, 0x0600D900,
};
Gfx* D_800CFB88[] = {
0x0600A8E0, 0x0600A840, 0x0600A480, 0x0600A720, 0x0600A970, 0x06007D70, 0x0600A520, 0x06009990,
};
Gfx* D_800CFBA8[] = {
0x06026460, 0x060266B0, 0x06026950, 0x060276F0, 0x06027810, 0x06027330, 0x060273C0, 0x06026E30,
0x06026EC0, 0x06026DA0, 0x06026D10, 0x06026C80, 0x06026BF0, 0x06027460, 0x06026F60,
};
Gfx* D_800CFBE4[] = {
0x060040F0, 0x06027C90, 0x06027FA0, 0x06003350, 0x06028240,
0x06028550, 0x06004DB0, 0x06027930, 0x0600F030, 0x060050F0,
};
Gfx* D_800CFC0C[] = {
0x060294A0, 0x060291B0, 0x060287F0, 0x06029330, 0x06029240, 0x06029790, 0x06029900,
0x06028F50, 0x060290C0, 0x06029530, 0x060296A0, 0x06028A80, 0x06028910,
};
Gfx* D_800CFC40[] = {
0x06014FD0,
0x06014FD0,
0x06014FD0,
0x06014FD0,
};
Gfx* D_800CFC50[] = {
0x0601EDE0, 0x0601F2F0, 0x0601F830, 0x0601FD70, 0x0601D110,
};
Gfx* D_800CFC64[] = {
0x06023940, 0x06023D70, 0x060249C0, 0x06023EB0, 0x060249C0, 0x06023B80,
};
Gfx* D_800CFC7C[] = {
0x0601B570, 0x0601B710, 0x060209B0, 0x06020B70, 0x06020D50, 0x0601B8F0, 0x0601B3B0, 0x0601B1C0, 0x06011660,
};
void func_8005A094(Object_2F4* arg0) {
switch (arg0->unk_0B8) {
case 0:
Matrix_Translate(gGfxMatrix, 18.0f, 15.0f, -15.0f, 1);
Matrix_RotateY(gGfxMatrix, M_PI, 1U);
Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_3016660);
break;
case 1:
Matrix_Translate(gGfxMatrix, -18.0f, 15.0f, -15.0f, 1);
Matrix_RotateY(gGfxMatrix, M_PI, 1U);
Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_3015D80);
break;
@@ -396,13 +470,17 @@ void func_8005ADAC(Object_2F4* arg0) {
}
}
f32 D_800CFCA0[] = {
1.7f, 1.8f, 2.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f,
};
void func_8005B1E8(Object_2F4* arg0, s32 arg1) {
f32 var_fv0;
if ((arg0->unk_07C != 0) && (arg0->obj.status == 2)) {
var_fv0 = 0.63f;
if (arg0->unk_07C >= 2) {
var_fv0 = D_800CFC98[arg0->unk_07C] * 0.45f;
var_fv0 = D_800CFCA0[arg0->unk_07C - 2] * 0.45f;
}
if (D_80177DB0 & 1) {
var_fv0 *= 1.2f;
@@ -421,7 +499,7 @@ void func_8005B1E8(Object_2F4* arg0, s32 arg1) {
#ifdef NON_MATCHING
void func_8005B388(Object_2F4* arg0) {
Vec3f sp3C = D_800CFCC0;
Vec3f sp3C = { 0.0f, 0.0f, 0.0f };
Vec3f sp30;
Matrix_MultVec3f(gGfxMatrix, &sp3C, &sp30);
@@ -465,6 +543,7 @@ void func_8005B388(Object_2F4* arg0) {
func_8005ADAC(arg0);
}
#else
Vec3f D_800CFCC0 = { 0.0f, 0.0f, 0.0f };
void func_8005B388(Object_2F4*);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005B388.s")
#endif
@@ -514,8 +593,8 @@ void func_8005B848(Object_2F4* arg0) {
void func_8005B9A4(Object_2F4* arg0) {
Matrix_Translate(gGfxMatrix, 0.0f, -124.0f, 0.0f, 1);
func_8009AA20(D_6029528, arg0->unk_0B6, &arg0->unk_18C);
func_8009A72C(1, &D_6029674, &arg0->unk_18C, NULL, NULL, (s32*) arg0, &gIdentityMatrix);
func_8009AA20(&D_6029528, arg0->unk_0B6, &arg0->unk_18C);
func_8009A72C(1, D_6029674, &arg0->unk_18C, NULL, NULL, (s32*) arg0, &gIdentityMatrix);
}
void func_8005BA30(Object_2F4* arg0) {
@@ -529,6 +608,10 @@ void func_8005BA30(Object_2F4* arg0) {
void func_8005BAAC(void) {
}
f32 D_800CFCCC[] = {
0.0f, 0.05f, 0.03f, 0.02f, 0.01f, 0.05f, 0.0f, 0.02f,
};
void func_8005BAB4(s32 arg0, s32 arg1) {
f32 temp_fv0;
f32 temp1;
@@ -899,7 +982,7 @@ void func_8005D8B8(Object_4C* arg0, s32 arg1) {
}
void func_8005D954(Object_2F4* arg0) {
Vec3f sp34 = D_800CFCEC;
Vec3f sp34 = { 0.0f, 0.0f, 0.0f };
if (arg0->unk_01C.unk_00 != NULL) {
switch (arg0->obj.id) {
@@ -947,7 +1030,7 @@ void func_8005D954(Object_2F4* arg0) {
#ifdef NON_MATCHING
void func_8005DBC0(Object_2F4* arg0) {
s32 var_v1;
Vec3f sp50 = D_800CFCF8;
Vec3f sp50 = { 0.0f, 0.0f, 0.0f };
f32 var_fa1;
f32 var_ft5;
f32 var_fv0;
@@ -1029,6 +1112,7 @@ void func_8005DBC0(Object_2F4* arg0) {
arg0->unk_0B0 = D_801615EC;
}
#else
Vec3f D_800CFCF8 = { 0.0f, 0.0f, 0.0f };
void func_8005DBC0(Object_2F4* arg0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005DBC0.s")
#endif
@@ -1040,7 +1124,7 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) {
f32 var_fv0;
f32 var_fv1;
f32 sp3C;
Vec3f sp30 = D_800CFD04;
Vec3f sp30 = { 0.0f, 0.0f, 0.0f };
if (arg0->unk_01C.unk_19 != 0) {
arg0->obj.pos.y += arg0->unk_068 + D_8017847C;
@@ -1094,6 +1178,7 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) {
}
}
#else
Vec3f D_800CFD04 = { 0.0f, 0.0f, 0.0f };
void func_8005E1B8(Object_408* arg0, s32 arg1);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E1B8.s")
#endif
@@ -1118,7 +1203,7 @@ void func_8005E454(Object_8C* arg0, s32 arg1) {
#ifdef NON_MATCHING
void func_8005E538(Object_8C* arg0) {
Vec3f sp4C = D_800CFD10;
Vec3f sp4C = { 0.0f, 0.0f, 0.0f };
Vec3f sp40;
f32 var_fv0;
u8 sp3B = 0;
@@ -1151,13 +1236,14 @@ void func_8005E538(Object_8C* arg0) {
}
}
#else
Vec3f D_800CFD10 = { 0.0f, 0.0f, 0.0f };
void func_8005E538(Object_8C* arg0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E538.s")
#endif
#ifdef NON_MATCHING
void func_8005E7B8(Object_6C* arg0, s32 arg1) {
Vec3f sp44 = D_800CFD1C;
Vec3f sp44 = { 0.0f, 0.0f, 0.0f };
Vec3f sp38;
u8 var_v0;
@@ -1185,6 +1271,7 @@ void func_8005E7B8(Object_6C* arg0, s32 arg1) {
}
}
#else
Vec3f D_800CFD1C = { 0.0f, 0.0f, 0.0f };
void func_8005E7B8(Object_6C* arg0, s32 arg1);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E7B8.s")
#endif
@@ -1298,7 +1385,7 @@ void func_8005F0E8(Vec3f* arg0, Vec3f* arg1) {
}
void func_8005F1EC(Vec3f* arg0) {
Vec3f sp2C = D_800CFD28;
Vec3f sp2C = { 0.0f, 0.0f, 0.0f };
Vec3f sp20;
s32 pad;
@@ -1330,7 +1417,7 @@ void func_8005F290(Vec3f* arg0, Vec3f* arg1) {
#ifdef NON_MATCHING
void func_8005F2F4(Object_58* arg0) {
Vec3f sp54 = D_800CFD34;
Vec3f sp54 = { 0.0f, 0.0f, 0.0f };
Vec3f sp48;
f32 sp44 = 1000.0f;
f32 sp40 = -12000.0f;
@@ -1375,6 +1462,7 @@ void func_8005F2F4(Object_58* arg0) {
}
}
#else
Vec3f D_800CFD34 = { 0.0f, 0.0f, 0.0f };
void func_8005F2F4(Object_58*);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005F2F4.s")
#endif
@@ -1662,6 +1750,18 @@ void func_8006089C(u8 arg0) {
D_80161410 = 1;
}
Vtx D_800CFD40[] = {
VTX(1, 0, 0, 0, 0, 255, 255, 255, 255),
VTX(-1, 0, 0, 0, 0, 255, 255, 255, 255),
VTX(-1, 0, -1, 0, 0, 255, 255, 255, 255),
VTX(1, 0, -1, 0, 0, 255, 255, 255, 255),
};
Gfx D_800CFD80[] = {
gsSPVertex(D_800CFD40, 4, 0),
gsSP1Quadrangle(1, 2, 3, 0, 0),
gsSPEndDisplayList(),
};
#ifdef NON_MATCHING
void func_80060968(void) {
s32 i;
+26 -1
View File
@@ -1,5 +1,30 @@
#include "global.h"
ObjectInit* D_800CFDA0[] = {
0x060371A4, 0x06026CC4, 0x0602A164, 0x06023F64, 0x060287A4, 0x0602E4F4, 0x06007E74,
0x0601F234, 0x06026714, 0x0C035154, 0x06006AA4, 0x06031000, 0x06006C60, 0x0602E5C8,
0x0600EAD4, NULL, 0x06011044, 0x0600FF74, 0x06006EB4, 0x06014D94, 0x0302DE3C,
};
s32 D_800CFDF4[] = {
0, 0x144, 0x144, 0x144, 0x144, 0x147, 0x147, 0x147, 0x147, 0x142, 0x142, 0x142, 0x142,
0x14F, 0x150, 0x150, 0x150, 0x150, 0x150, 0x142, 0x147, 0x144, 0x144, 0x151, 0, 0x145,
};
f32 D_800CFE5C[] = {
0.0f, 1.0f, 0.5f, 0.33f, 0.25f, 1.0f, 0.5f, 0.33f, 0.25f, 1.0f, 0.5f, 0.33f, 0.25f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 0.1f, 1.0f, 1.0f, 1.0f,
};
Vec3f D_800CFEC4[6] = {
{ 0.0f, 0.0f, 50.0f }, { -50.0f, 0.0f, 0.0f }, { 50.0f, 0.0f, 0.0f },
{ 0.0f, 50.0f, 0.0f }, { 0.0f, 0.0f, -50.0f }, { 0.0f, -50.0f, 0.0f },
};
Vec3f D_800CFF0C[6] = {
{ 0.0f, 0.0f, 0.0f }, { 0.0f, -90.0f, 0.0f }, { 0.0f, 90.0f, 0.0f },
{ -90.0f, 0.0f, 0.0f }, { 0.0f, 180.0f, 0.0f }, { 90.0f, 0.0f, 0.0f },
};
u32 D_800CFF54[9] = {
0x19404038, 0x19404139, 0x1940423A, 0x1940433B, 0x1940443C, 0x1940453D, 0x1940463E, 0x1940463E, 0x1940463E,
};
void func_80060F30(Vec3f* arg0, u32 arg1, s32 arg2) {
if (D_801778E8 == 0) {
func_80019218(arg1, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
@@ -1643,7 +1668,7 @@ void func_8006654C(Object_2F4* arg0) {
arg0->unk_114 = arg0->unk_114 + 0.5f;
}
arg0->unk_0B6++;
if (func_8009ACDC(D_6029528) < arg0->unk_0B6) {
if (func_8009ACDC(&D_6029528) < arg0->unk_0B6) {
arg0->unk_0B6 = 0;
}
if ((arg0->obj.rot.z < 15.0f) && (arg0->unk_0B6 < 0x14)) {
+152 -5
View File
@@ -10,7 +10,23 @@ void func_800843FC(s32 arg0) {
func_8009F574(&gMasterDisp, 0, SCREEN_HEIGHT - arg0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_80084488.s")
void func_80084488(s32 arg0) {
s32 var_s1;
func_800B8FA8();
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -150.0f, 0);
for (var_s1 = 0; var_s1 < MIN(360, arg0 * 15); var_s1 += 0xF) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, MIN((arg0 - (var_s1 / 15)) * 15, 255));
Matrix_Push(&gGfxMatrix);
Matrix_RotateZ(gGfxMatrix, var_s1 * M_DTOR, 1);
Matrix_Scale(gGfxMatrix, 0.53f, 1.0f, 1.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_Gfx_800D9688);
Matrix_Pop(&gGfxMatrix);
}
Matrix_Pop(&gGfxMatrix);
}
void func_80084688(s32 arg0, s32 arg1) {
if (arg1 != 0) {
@@ -18,18 +34,149 @@ void func_80084688(s32 arg0, s32 arg1) {
case 0:
func_80084488(arg1);
break;
case 1:
func_80084370(arg1);
break;
case 2:
func_800843FC(arg1);
break;
default:
(void) "そのような フェード は ない (%d)\n"; // There is no such fade
break;
}
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_800846F0.s")
#ifdef NON_MATCHING
// pretty sure this is equivalent, but it's almost certainly not implemented this way. Raw m2c included for those who
// want to try.
void func_800846F0(FrameBuffer* arg0) {
s32 sp70;
s32 sp6C;
s32 sp68;
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
s32 sp54;
s32 sp50;
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
s32 sp3C;
s32 sp38;
s32 sp30;
s32 sp2C;
s32 sp28;
s32 sp24;
s32 sp20;
s32 temp_t3;
s32 temp_t3_2;
s32 temp_t4;
s32 temp_t4_2;
s32 temp_t5_2;
s32 temp_t6;
s32 temp_t6_2;
s32 temp_t7;
s32 temp_t7_2;
s32 temp_t7_3;
s32 temp_t8;
s32 temp_t9;
s32 temp_t9_2;
s32 var_t2;
u16* var_v0;
u16 temp_t5;
u32 var_a0;
u32 var_t0;
u32 var_t1;
u32 var_v1;
s32 i;
s32 j;
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/D_800D76F0.s")
for (i = 0; i < gFrameCounter % 240U; i++) {
for (j = 0; j < gFrameCounter % 320U; j++) {
sp64 = RGBA16_RED(arg0->array[i][j]);
sp50 = RGBA16_GRN(arg0->array[i][j]);
sp3C = RGBA16_BLU(arg0->array[i][j]);
sp68 = RGBA16_RED(arg0->array[i][j + 1]);
sp54 = RGBA16_GRN(arg0->array[i][j + 1]);
sp40 = RGBA16_BLU(arg0->array[i][j + 1]);
sp6C = RGBA16_RED(arg0->array[i + 1][j]);
sp58 = RGBA16_GRN(arg0->array[i + 1][j]);
sp44 = RGBA16_BLU(arg0->array[i + 1][j]);
sp70 = RGBA16_RED(arg0->array[i + 1][j + 1]);
sp5C = RGBA16_GRN(arg0->array[i + 1][j + 1]);
sp48 = RGBA16_BLU(arg0->array[i + 1][j + 1]);
sp60 = (sp64 + sp68 + sp6C + sp70) / 4;
sp4C = (sp50 + sp54 + sp58 + sp5C) / 4;
sp38 = (sp3C + sp40 + sp44 + sp48) / 4;
arg0->array[i][j] = RGBA16_PACK(sp60, sp4C, sp38, 0);
}
}
// var_t1 = 0;
// var_t0 = (u32) gFrameCounter % 240U;
// if (var_t0 != 0) {
// var_a0 = (u32) gFrameCounter % 320U;
// var_t2 = 0;
// do {
// var_v0 = (var_t2 * 2) + arg0;
// var_v1 = 0;
// if (var_a0 != 0) {
// do {
// temp_t5 = *var_v0;
// var_v1 += 1;
// var_v0 += 2;
// temp_t3 = ((s32) temp_t5 >> 0xB) & 0x1F;
// sp64 = temp_t3;
// temp_t4 = ((s32) var_v0->unk-2 >> 6) & 0x1F;
// sp50 = temp_t4;
// temp_t9 = ((s32) var_v0->unk-2 >> 1) & 0x1F;
// sp3C = temp_t9;
// temp_t7 = ((s32) var_v0->unk0 >> 0xB) & 0x1F;
// sp68 = temp_t7;
// temp_t6 = ((s32) var_v0->unk0 >> 6) & 0x1F;
// sp54 = temp_t6;
// temp_t5_2 = ((s32) var_v0->unk0 >> 1) & 0x1F;
// sp40 = temp_t5_2;
// sp20 = temp_t3;
// temp_t3_2 = ((s32) var_v0->unk27E >> 0xB) & 0x1F;
// sp6C = temp_t3_2;
// sp24 = temp_t4;
// temp_t4_2 = ((s32) var_v0->unk27E >> 6) & 0x1F;
// sp58 = temp_t4_2;
// sp28 = temp_t9;
// temp_t9_2 = ((s32) var_v0->unk27E >> 1) & 0x1F;
// sp44 = temp_t9_2;
// sp2C = temp_t7;
// temp_t7_2 = ((s32) var_v0->unk280 >> 0xB) & 0x1F;
// sp70 = temp_t7_2;
// sp30 = temp_t6;
// temp_t6_2 = ((s32) var_v0->unk280 >> 6) & 0x1F;
// sp5C = temp_t6_2;
// sp48 = ((s32) var_v0->unk280 >> 1) & 0x1F;
// sp60 = (s32) (temp_t7_2 + sp20 + temp_t7 + temp_t3_2) / 4;
// temp_t8 = (s32) (temp_t6_2 + sp24 + sp30 + temp_t4_2) / 4;
// sp4C = temp_t8;
// temp_t7_3 = (s32) (sp48 + sp28 + temp_t5_2 + temp_t9_2) / 4;
// sp38 = temp_t7_3;
// var_v0->unk-2 = (u16) ((temp_t7_3 * 2) | (sp60 << 0xB) | (temp_t8 << 6));
// var_a0 = (u32) gFrameCounter % 320U;
// } while (var_v1 < var_a0);
// var_t0 = (u32) gFrameCounter % 240U;
// }
// var_t1 += 1;
// var_t2 += 0x140;
// } while (var_t1 < var_t0);
// }
osWritebackDCacheAll();
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_800846F0.s")
#endif
+1160 -45
View File
File diff suppressed because it is too large Load Diff
+18 -15
View File
@@ -1,9 +1,17 @@
#include "global.h"
extern void func_80187520(s32, void*);
#define RGBA16_RED(color16) ((((color16) >> 0xB) & 0x1F) * 8)
#define RGBA16_GREEN(color16) ((((color16) >> 6) & 0x1F) * 8)
#define RGBA16_BLUE(color16) ((((color16) >> 1) & 0x1F) * 8)
s32 D_800D2860[4] = { 1, 1, 1, 1 };
s32 D_800D2870 = 0;
s32 D_800D2874[] = { 0, 160, 0, 160 };
s32 D_800D2884[] = { 159, 319, 159, 319 };
s32 D_800D2894[] = { 0, 0, 120, 120 };
s32 D_800D28A4[] = { 119, 119, 239, 239 };
s32 D_800D28B4[] = {
0x05, 0x06, 0x08, 0x0A, 0x0C, 0x0D, 0x12, 0x0E, 0x0F, 0x10, 0x11,
0x15, 0x07, 0x09, 0x0B, 0x00, 0x13, 0x16, 0x17, 0x18, 0x32,
};
void func_800A18B0(void) {
Memory_FreeAll();
@@ -74,12 +82,11 @@ void func_800A1980(void) {
func_8001D400(0);
}
#ifdef DATA_IMPORT_PENDING
s32 func_800A1B6C(void) {
static u8 D_800D2908 = 5;
static u8 D_800D290C = 5;
static u8 D_800D2910 = 5;
static u8 D_800D2914 = 5;
static u8 D_800D2908 = 0;
static u8 D_800D290C = 99;
static u8 D_800D2910 = 99;
static u8 D_800D2914 = 99;
if (D_801774F8 != D_800D2910) {
D_800D2908 = 2;
@@ -97,10 +104,6 @@ s32 func_800A1B6C(void) {
}
return 0;
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A24B0/func_800A1B6C.s")
#endif
void func_800A1C14(Gfx** arg0) {
gSPDisplayList((*arg0)++, D_Gfx_800DBAA0);
@@ -116,8 +119,8 @@ void func_800A1C14(Gfx** arg0) {
gDPSetCycleType((*arg0)++, G_CYC_1CYCLE);
gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(D_80161A36), RGBA16_GREEN(D_80161A36),
RGBA16_BLUE(D_80161A36), D_80161A38);
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(D_80161A36) * 8, RGBA16_GRN(D_80161A36) * 8,
RGBA16_BLU(D_80161A36) * 8, D_80161A38);
} else {
gDPSetFillColor((*arg0)++, (((D_80161A36 | 1) << 0x10) | (D_80161A36 | 1)));
}
@@ -315,7 +318,7 @@ void func_800A26C0(void) {
break;
case 0x67:
if (Save_Read() != 0) {
gSaveFile = *((SaveFile*) &D_800D4D10);
gSaveFile = *((SaveFile*) &gDefaultSave);
Save_Write();
}
D_80177834++;
+10 -10
View File
@@ -121,27 +121,27 @@ void func_80084E78(Gfx** gfxP, void* arg1, void* arg2, u32 arg3, u32 arg4, f32 a
}
void func_800853A4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009D0BC(&gMasterDisp, &D_1013170, &D_1013570, 24, 17, arg0, arg1, arg2, arg3);
func_8009D0BC(&gMasterDisp, D_1013170, D_1013570, 24, 17, arg0, arg1, arg2, arg3);
}
void func_80085404(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009C320(&gMasterDisp, &D_1011280, &D_10116A0, 48, 44, arg0, arg1, arg2, arg3);
func_8009C320(&gMasterDisp, D_1011280, D_10116A0, 48, 44, arg0, arg1, arg2, arg3);
}
void func_80085464(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011AC0, &D_1011B90, 16, 26, arg0, arg1, 1.0f, 1.0f);
func_8009C320(&gMasterDisp, D_1011AC0, D_1011B90, 16, 26, arg0, arg1, 1.0f, 1.0f);
}
void func_800854BC(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011BB0, &D_1011C80, 16, 26, arg0, arg1, 1.0f, 1.0f);
func_8009C320(&gMasterDisp, D_1011BB0, D_1011C80, 16, 26, arg0, arg1, 1.0f, 1.0f);
}
void func_80085514(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011CA0, &D_1011D70, 16, 26, arg0, arg1, 1.0f, 1.0f);
func_8009C320(&gMasterDisp, D_1011CA0, D_1011D70, 16, 26, arg0, arg1, 1.0f, 1.0f);
}
void func_8008556C(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011D90, &D_1011E60, 16, 26, arg0, arg1, 1.0f, 1.0f);
func_8009C320(&gMasterDisp, D_1011D90, D_1011E60, 16, 26, arg0, arg1, 1.0f, 1.0f);
}
void func_800855C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
@@ -178,9 +178,9 @@ void func_800857DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_80085890(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
if (D_801778E8 != 0) {
func_8009D0BC(&gMasterDisp, &D_300D350, &D_300D398, 24, 3, arg0, arg1, arg2, arg3);
func_8009D0BC(&gMasterDisp, D_300D350, D_300D398, 24, 3, arg0, arg1, arg2, arg3);
} else {
func_8009D0BC(&gMasterDisp, &D_10127D0, &D_1012898, 40, 5, arg0, arg1, arg2, arg3);
func_8009D0BC(&gMasterDisp, D_10127D0, D_1012898, 40, 5, arg0, arg1, arg2, arg3);
}
}
@@ -1123,7 +1123,7 @@ void func_8008D0DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
}
void func_8008D1F0(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009C320(&gMasterDisp, &D_10116B0, &D_1011730, 16, 16, arg0, arg1, arg2, arg3);
func_8009C320(&gMasterDisp, D_10116B0, D_1011730, 16, 16, arg0, arg1, arg2, arg3);
}
#ifdef IMPORT_DATA_PENDING
@@ -1401,7 +1401,7 @@ void func_8008E2C8(f32 arg0, f32 arg1, s32* arg2, f32 arg3) {
if (i & 1) {
func_800BA4F0();
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009C320(&gMasterDisp, &D_1011E80, &D_1011EC0, 0x10, 8, (var_fs0 * arg3) + arg0, arg1, arg3, arg3);
func_8009C320(&gMasterDisp, D_1011E80, D_1011EC0, 0x10, 8, (var_fs0 * arg3) + arg0, arg1, arg3, arg3);
} else {
func_800BA490();
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+3 -1
View File
@@ -1,10 +1,12 @@
#include "global.h"
char D_800C7C80[] = "$Id: sprintf.c,v 1.5 1997/03/19 02:28:53 hayakawa Exp $";
void* proutSprintf(void* dst, const char* fmt, size_t size) {
return (void*) ((uintptr_t) memcpy(dst, fmt, size) + size);
}
s32 vsprintf(char* dst, char* fmt, va_list args) {
s32 vsprintf(char* dst, const char* fmt, va_list args) {
s32 ret = _Printf(proutSprintf, dst, fmt, args);
if (ret > -1) {
+8 -8
View File
@@ -935,7 +935,7 @@ void func_EBFBE0_801962A4(void) {
if (temp_fv0 == 0.0f) {
D_EBFBE0_801B91CC = 3;
gSaveFile = *(SaveFile*) &D_800D4D10;
gSaveFile = *(SaveFile*) &gDefaultSave;
Save_Write();
@@ -1165,7 +1165,7 @@ void func_EBFBE0_801973C0(void) {
func_EBFBE0_8019C824(&D_EBFBE0_801B93F0);
temp_t0 = D_EBFBE0_801B93F0;
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_t0, temp_t0, 255);
func_8009D994(&gMasterDisp, &D_7004010, 8, 8, 70.0f, (D_EBFBE0_801B93E4 * 17.0f) + 55.0f, 1.0f, 1.0f);
func_8009D994(&gMasterDisp, D_7004010, 8, 8, 70.0f, (D_EBFBE0_801B93E4 * 17.0f) + 55.0f, 1.0f, 1.0f);
}
func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
@@ -1220,7 +1220,7 @@ void func_EBFBE0_8019752C(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255);
}
func_8009D994(&gMasterDisp, &D_800D070, 16, 16, 150.0f, 44.0f, 1.0f, 1.0f);
func_8009D994(&gMasterDisp, D_800D070, 16, 16, 150.0f, 44.0f, 1.0f, 1.0f);
if (D_EBFBE0_801B91D4 <= -1055.0f) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 32, 32, 32, 255);
@@ -1230,7 +1230,7 @@ void func_EBFBE0_8019752C(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255);
}
func_8009E4B0(&gMasterDisp, &D_800D070, 0x10, 0x10, 150.0f, 200.0f, 1.0f, 1.0f);
func_8009E4B0(&gMasterDisp, D_800D070, 0x10, 0x10, 150.0f, 200.0f, 1.0f, 1.0f);
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019752C.s")
@@ -1243,7 +1243,7 @@ void func_EBFBE0_80197914(void) {
func_800B8DD0(&gMasterDisp, 0);
for (i = 0, vec1 = &D_EBFBE0_801AF100, vec2 = &D_EBFBE0_801AF118; i < 2; i++, vec1++, vec2++) {
for (i = 0, vec1 = D_EBFBE0_801AF100, vec2 = D_EBFBE0_801AF118; i < 2; i++, vec1++, vec2++) {
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, vec1->x, vec1->y, -500.0f, 1);
Matrix_Scale(gGfxMatrix, vec2->x, vec2->y, 1.0f, 1);
@@ -1289,7 +1289,7 @@ void func_EBFBE0_80197A3C(s32 arg0, s32 arg1, s32 arg2) {
}
void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
u8 temp[4];
char temp[4];
func_800B8DD0(&gMasterDisp, 0x53);
@@ -1298,7 +1298,7 @@ void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
temp[0] = gSaveFile.save.data.unk_18[arg0][0] & 0xFF;
temp[1] = gSaveFile.save.data.unk_18[arg0][1] & 0xFF;
temp[2] = gSaveFile.save.data.unk_18[arg0][2] & 0xFF;
temp[3] = 0;
temp[3] = '\0';
func_800A0094(arg1, arg2, 1.0f, 1.0f, temp);
}
@@ -1306,7 +1306,7 @@ void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
void func_EBFBE0_80197DE4(s32 arg0, s32 arg1, s32 arg2) {
func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 60, 60, 255, 170);
func_8009D994(&gMasterDisp, &D_601B4B0, 24, 17, arg1, arg2, 3.17f, 1.05f);
func_8009D994(&gMasterDisp, D_601B4B0, 24, 17, arg1, arg2, 3.17f, 1.05f);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
func_800A1200(arg1, arg2, 1.0f, 1.0f, "TOTAL HITS");
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);