Decomped gfx setup code & changed player pos coords to array (#84)

* Decomped gfx setup code and changed player pos coords to array
This commit is contained in:
CoderStig
2021-12-09 14:10:39 -07:00
committed by GitHub
parent bfcbb8aada
commit 46247502ad
49 changed files with 827 additions and 4259 deletions
+21 -20
View File
@@ -40,7 +40,7 @@ extern s8 D_8018EDF3;
extern s8 gCupSelection;
extern u32 gIsMirrorMode;
extern u32 D_800DC530;
extern u32 D_8015F730;
extern u32 D_8015F734;
@@ -77,20 +77,6 @@ extern f32 gCourseDirection;
extern u16 D_8015F900;
struct UnkStruct800DC64C {
s32 unk0;
s32 unk4;
s32 unk8;
};
extern struct UnkStruct800DC64C D_800DC64C;
struct UnkStruct800DC658 {
u16 unk0;
u16 unk2;
u16 unk4;
};
extern struct UnkStruct800DC658 D_800DC658;
extern s16 D_800DC5BC, D_800DC5C8;
extern u16 D_80150110;
@@ -108,6 +94,24 @@ struct UnkStruct_800DC5EC *D_800DC5F0 = &D_8015F480[1];
struct UnkStruct_800DC5EC *D_800DC5F4 = &D_8015F480[2];
struct UnkStruct_800DC5EC *D_800DC5F8 = &D_8015F480[3];
s16 D_800DC5FC = 0;
u8 *D_800DC600 = &osAppNmiBuffer[0];
s32 gIsMirrorMode = 0;
f32 D_800DC608 = 1.0f;
Lights1 D_800DC610[] = {
{
{175, 175, 175, 0, 175, 175, 175, 0},
{255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 120, 0},
},
{
{115, 115, 115, 0, 115, 115, 115, 0},
{255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 120, 0},
},
};
static s32 pad = 0x80000000;
s16 D_800DC644 = 8;
s16 D_800DC648 = 1;
void func_800029B0(void) {
switch(D_800DC5A8) {
@@ -244,11 +248,8 @@ void func_80003010(void) {
void func_80003040(void) {
u32 pad[2];
f32 sp34;
struct UnkStruct800DC64C sp28;
struct UnkStruct800DC658 sp20;
sp28 = D_800DC64C;
sp20 = D_800DC658;
s32 sp28[3] = {0};
s16 sp20[3] = {0};
D_800DC5BC = 0;
D_800DC5C8 = 0;
+2 -2
View File
@@ -9560,7 +9560,7 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80055F48.s")
? func_80022180(void *, ? *); // extern
? func_800425D0(? *, void *, void *, s32); // extern
? func_802B4FF8(? *, ?); // extern
? func_802B53C8(? *); // extern
? mtxf_identity(? *); // extern
extern ? D_0D0077A0;
extern ? D_80165C18;
extern s32 D_8018D120;
@@ -9608,7 +9608,7 @@ void func_80055FA0(s32 arg0, ? arg1) {
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->unk0 = 0x1010040;
temp_v0_6->unk4 = &gGfxPool->buffer[56] & 0x1FFFFFFF;
func_802B53C8(&sp40);
mtxf_identity(&sp40);
func_802B4FF8(&sp40, 0);
}
}
+8 -8
View File
@@ -52,10 +52,10 @@ void func_80280038(void) {
guPerspective(&gGfxPool->buffer[8], &sp44[37], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp44[37]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gCurrentCourseId = D_800DC644;
func_802B53C8(&sp44);
mtxf_identity(&sp44);
func_802B4FF8(&sp44, 0);
func_80295A38(D_800DC5EC);
func_802A3008(D_800DC5EC);
@@ -97,9 +97,9 @@ void func_802802AC(void) {
D_802874FC = 0;
func_80283648(camera);
temp_f12 = camera->unk - camera->posX;
temp = camera->unk1 - camera->posY;
temp_f14 = camera->unk2 - camera->posZ;
temp_f12 = camera->unk - camera->pos[0];
temp = camera->unk1 - camera->pos[1];
temp_f14 = camera->unk2 - camera->pos[2];
camera->rotX2 = func_802B7830(temp_f12, temp_f14);
camera->rotX = func_802B7830(sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14)), temp);
camera->rotY = 0;
@@ -147,9 +147,9 @@ void func_80280420(void) {
D_800DC5BC = 0;
D_800DC5C8 = 0;
D_8015F580 = gPrevLoadedAddress;
camera->posX = 1400.0f;
camera->posY = 300.0f;
camera->posZ = 1400.0f;
camera->pos[0] = 1400.0f;
camera->pos[1] = 300.0f;
camera->pos[2] = 1400.0f;
camera->unk = 0.0f;
camera->unk1 = 0.0f;
camera->unk2 = 0.0f;
+6 -6
View File
@@ -15,9 +15,9 @@ void func_80281610(void) {
func_80283648(camera);
temp_f12 = camera->unk - camera->posX;
temp = camera->unk1 - camera->posY;
temp_f14 = camera->unk2 - camera->posZ;
temp_f12 = camera->unk - camera->pos[0];
temp = camera->unk1 - camera->pos[1];
temp_f14 = camera->unk2 - camera->pos[2];
camera->rotX2 = func_802B7830(temp_f12, temp_f14);
camera->rotX = func_802B7830(sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14)), temp);
camera->rotY = 0;
@@ -30,9 +30,9 @@ extern f32 D_80150130, D_80150148, D_8015014C, D_80150150;
extern const f32 D_80286B90, D_80286B94, D_80286B98, D_80286B9C, D_80286BA0;
void func_802816B8(void) {
cameras[0].posX = D_80286B90;
cameras[0].posY = 19.0f;
cameras[0].posZ = D_80286B94;
cameras[0].pos[0] = D_80286B90;
cameras[0].pos[1] = 19.0f;
cameras[0].pos[2] = D_80286B94;
cameras[0].unk = D_80286B98;
cameras[0].unk1 = 21.0f;
cameras[0].unk2 = -528.0f;
+2 -2
View File
@@ -67,9 +67,9 @@ void func_80281D00(void) {
guPerspective((Mtx*) &gGfxPool->buffer[8], &sp64[39], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp64[39]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt((Mtx*) &gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt((Mtx*) &gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(&sp64[6]);
mtxf_identity(&sp64[6]);
func_802B4FF8(&sp64[6], 0);
gSPDisplayList(gDisplayListHead++, &D_00284F70);
func_800212B4();
+639 -1763
View File
File diff suppressed because it is too large Load Diff
+27 -27
View File
@@ -409,7 +409,7 @@ void func_802972B8(Camera *arg0, Item *arg1) {
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
s32 func_802B4FF8(? *, ?); /* extern */
? func_802B5520(? *, ? *); /* extern */
? mtxf_translate(? *, ? *); /* extern */
extern ? D_0D001C20;
extern ? D_0D001C88;
extern s32 D_800DC50C;
@@ -431,7 +431,7 @@ void func_80297340(void *arg0) {
void *temp_v0_6;
sp36 = D_8015F8D0.unk8;
if ((D_800DC50C != 9) && (func_802B5520(&sp38, &D_8015F8D0), (func_802B4FF8(&sp38, 0) != 0))) {
if ((D_800DC50C != 9) && (mtxf_translate(&sp38, &D_8015F8D0), (func_802B4FF8(&sp38, 0) != 0))) {
if (sp36 < arg0->unk8) {
if (D_800DC5BC != 0) {
temp_v0 = gDisplayListHead;
@@ -2778,7 +2778,7 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029AC18.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_802B4FF8(? *, ?); // extern
? func_802B5520(? *, ? *); // extern
? mtxf_translate(? *, ? *); // extern
? func_802B59DC(? *, s16); // extern
? func_802B5F74(? *, s32, s32); // extern
? func_802B71CC(? *, ? *, ? *); // extern
@@ -2844,7 +2844,7 @@ void func_8029AE1C(void *arg0, void *arg1, ? arg2, s32 arg3) {
temp_v0_6->unk0 = 0x6000000;
func_802B59DC(&spE0, arg1->unk6);
load_giant_egg(&sp120, 0, 0x41800000, 0xC37F0000);
func_802B5520(&spA0, &sp120);
mtxf_translate(&spA0, &sp120);
func_802B71CC(&sp60, &spE0, &spA0);
if (func_802B4FF8(&sp60, 3) != 0) {
temp_v0_7 = gDisplayListHead;
@@ -3224,7 +3224,7 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029B6EC.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_802B4FF8(? *, ?); // extern
? func_802B5520(? *, ? *); // extern
? mtxf_translate(? *, ? *); // extern
? func_802B59DC(? *, s16); // extern
? func_802B5F74(? *, ? *, s32); // extern
? func_802B71CC(? *, ? *, ? *); // extern
@@ -3333,7 +3333,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_9->unk0 = 0x6000000;
func_802B59DC(&sp120, arg1->unk6);
load_giant_egg(&sp160, 0x41880000, 0x40C00000, 0x42000000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_10 = gDisplayListHead;
@@ -3347,7 +3347,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
sp30 = &D_06022DB8;
func_802B59DC(&sp120, arg1->unk6);
load_giant_egg(&sp160, 0xC1880000, 0x40C00000, 0x42000000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_12 = gDisplayListHead;
@@ -3360,7 +3360,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_13->unk0 = 0xBD000000;
func_802B59DC(&sp120, arg1->unk6 + 0x16C);
load_giant_egg(&sp160, 0x41880000, 0x40C00000, 0x41800000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_14 = gDisplayListHead;
@@ -3373,7 +3373,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_15->unk0 = 0xBD000000;
func_802B59DC(&sp120, arg1->unk6 + 0x16C);
load_giant_egg(&sp160, 0xC1880000, 0x40C00000, 0x41800000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_16 = gDisplayListHead;
@@ -3386,7 +3386,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_17->unk0 = 0xBD000000;
func_802B59DC(&sp120, arg1->unk6 + 0x444);
load_giant_egg(&sp160, 0x41880000, 0x41400000, 0xC1400000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_18 = gDisplayListHead;
@@ -3400,7 +3400,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
sp30 = &D_06022D70;
func_802B59DC(&sp120, arg1->unk6 + 0x444);
load_giant_egg(&sp160, 0xC1880000, 0x41400000, 0xC1400000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_20 = gDisplayListHead;
@@ -3413,7 +3413,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_21->unk0 = 0xBD000000;
func_802B59DC(&sp120, arg1->unk6 + 0x2D8);
load_giant_egg(&sp160, 0x41880000, 0x41400000, 0xC2080000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_22 = gDisplayListHead;
@@ -3426,7 +3426,7 @@ void func_8029B8E8(void *arg0, void *arg1) {
temp_v0_23->unk0 = 0xBD000000;
func_802B59DC(&sp120, arg1->unk6 + 0x2D8);
load_giant_egg(&sp160, 0xC1880000, 0x41400000, 0xC2080000);
func_802B5520(&spE0, &sp160);
mtxf_translate(&spE0, &sp160);
func_802B71CC(&spA0, &sp120, &spE0);
if (func_802B4FF8(&spA0, 3) != 0) {
temp_v0_24 = gDisplayListHead;
@@ -3460,7 +3460,7 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029B8E8.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_802B4FF8(? *, ?); // extern
? func_802B5520(? *, ? *); // extern
? mtxf_translate(? *, ? *); // extern
? func_802B59DC(? *, s16); // extern
? func_802B5F74(? *, ? *, s32); // extern
? func_802B71CC(? *, ? *, ? *); // extern
@@ -3542,7 +3542,7 @@ void func_8029BFB0(void *arg0, void *arg1) {
temp_v0_6->unk0 = 0x6000000;
func_802B59DC(&sp100, arg1->unk6);
load_giant_egg(&spF4, 0x41880000, 0x40C00000, 0x41000000);
func_802B5520(&spB4, &spF4);
mtxf_translate(&spB4, &spF4);
func_802B71CC(&sp74, &sp100, &spB4);
if (func_802B4FF8(&sp74, 3) != 0) {
temp_v0_7 = gDisplayListHead;
@@ -3556,7 +3556,7 @@ void func_8029BFB0(void *arg0, void *arg1) {
sp30 = &D_06022DB8;
func_802B59DC(&sp100, arg1->unk6);
load_giant_egg(&spF4, 0xC1880000, 0x40C00000, 0x41000000);
func_802B5520(&spB4, &spF4);
mtxf_translate(&spB4, &spF4);
func_802B71CC(&sp74, &sp100, &spB4);
if (func_802B4FF8(&sp74, 3) != 0) {
temp_v0_9 = gDisplayListHead;
@@ -3569,7 +3569,7 @@ void func_8029BFB0(void *arg0, void *arg1) {
temp_v0_10->unk0 = 0xBD000000;
func_802B59DC(&sp100, arg1->unk6 + 0x444);
load_giant_egg(&spF4, 0x41880000, 0x40C00000, 0xC1000000);
func_802B5520(&spB4, &spF4);
mtxf_translate(&spB4, &spF4);
func_802B71CC(&sp74, &sp100, &spB4);
if (func_802B4FF8(&sp74, 3) != 0) {
temp_v0_11 = gDisplayListHead;
@@ -3582,7 +3582,7 @@ void func_8029BFB0(void *arg0, void *arg1) {
temp_v0_12->unk0 = 0xBD000000;
func_802B59DC(&sp100, arg1->unk6 + 0x444);
load_giant_egg(&spF4, 0xC1880000, 0x40C00000, 0xC1000000);
func_802B5520(&spB4, &spF4);
mtxf_translate(&spB4, &spF4);
func_802B71CC(&sp74, &sp100, &spB4);
if (func_802B4FF8(&sp74, 3) != 0) {
temp_v0_13 = gDisplayListHead;
@@ -3612,7 +3612,7 @@ GLOBAL_ASM("asm/non_matchings/code_actors/func_8029BFB0.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_802B4FF8(? *, ?); // extern
? func_802B5520(? *, ? *); // extern
? mtxf_translate(? *, ? *); // extern
? func_802B59DC(? *, s16); // extern
? func_802B5F74(? *, ? *, s32); // extern
? func_802B71CC(? *, ? *, ? *); // extern
@@ -3720,7 +3720,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_9->unk0 = 0x6000000;
func_802B59DC(&sp128, arg1->unk6);
load_giant_egg(&sp11C, 0x41880000, 0x40C00000, 0x41E00000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_10 = gDisplayListHead;
@@ -3734,7 +3734,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
sp2C = &D_06022DB8;
func_802B59DC(&sp128, arg1->unk6);
load_giant_egg(&sp11C, 0xC1880000, 0x40C00000, 0x41E00000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_12 = gDisplayListHead;
@@ -3747,7 +3747,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_13->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x222);
load_giant_egg(&sp11C, 0x41880000, 0x40C00000, 0x41400000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_14 = gDisplayListHead;
@@ -3760,7 +3760,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_15->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x222);
load_giant_egg(&sp11C, 0xC1880000, 0x40C00000, 0x41400000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_16 = gDisplayListHead;
@@ -3773,7 +3773,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_17->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x5B0);
load_giant_egg(&sp11C, 0x41880000, 0x40C00000, 0xC1000000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_18 = gDisplayListHead;
@@ -3786,7 +3786,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_19->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x5B0);
load_giant_egg(&sp11C, 0xC1880000, 0x40C00000, 0xC1000000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_20 = gDisplayListHead;
@@ -3799,7 +3799,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_21->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x16C);
load_giant_egg(&sp11C, 0x41880000, 0x40C00000, 0xC1C00000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_22 = gDisplayListHead;
@@ -3812,7 +3812,7 @@ void func_8029C3CC(void *arg0, void *arg1) {
temp_v0_23->unk0 = 0xBD000000;
func_802B59DC(&sp128, arg1->unk6 + 0x16C);
load_giant_egg(&sp11C, 0xC1880000, 0x40C00000, 0xC1C00000);
func_802B5520(&spDC, &sp11C);
mtxf_translate(&spDC, &sp11C);
func_802B71CC(&sp9C, &sp128, &spDC);
if (func_802B4FF8(&sp9C, 3) != 0) {
temp_v0_24 = gDisplayListHead;
+27 -27
View File
@@ -987,12 +987,12 @@ void func_802A59A4(void) {
gDPHalf1(gDisplayListHead++, spAA[23]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ,
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2],
camera->unk, camera->unk1, camera->unk2, camera->angleX,
camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp5C);
mtxf_identity(sp5C);
func_802B4FF8(sp5C, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1000,7 +1000,7 @@ void func_802A59A4(void) {
func_80295A38(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp5C);
mtxf_identity(sp5C);
func_802B4FF8(sp5C, 0);
}
func_802A3008(D_800DC5EC);
@@ -1036,12 +1036,12 @@ void func_802A5CB4(void) {
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1051,7 +1051,7 @@ void func_802A5CB4(void) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
func_802A3008(D_800DC5EC);
@@ -1085,13 +1085,13 @@ void func_802A5FAC(void) {
guPerspective(&gGfxPool->buffer[16], &sp9A[17], D_80150134, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[16]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[64], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[64], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
//D_801647A8, D_801647AC, D_801647B0, D_801647B4, D_801647B8, D_801647BC, D_801647C0, D_801647C4, D_801647C8);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1099,7 +1099,7 @@ void func_802A5FAC(void) {
func_80295A38(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
func_802A3008(D_800DC5F0);
@@ -1133,12 +1133,12 @@ void func_802A62A4(void) {
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1146,7 +1146,7 @@ void func_802A62A4(void) {
func_80295A38(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
func_802A3008(D_800DC5EC);
@@ -1181,11 +1181,11 @@ void func_802A65B8(void) {
guPerspective(&gGfxPool->buffer[16], &sp9A[17], D_80150134, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[16]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[64], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[64], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1193,7 +1193,7 @@ void func_802A65B8(void) {
func_80295A38(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(&sp58);
mtxf_identity(&sp58);
func_802B4FF8(&sp58, 0);
}
func_802A3008(D_800DC5F0);
@@ -1227,11 +1227,11 @@ void func_802A68CC(void) {
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(&sp58);
mtxf_identity(&sp58);
func_802B4FF8(&sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1239,7 +1239,7 @@ void func_802A68CC(void) {
func_80295A38(D_800DC5EC);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(&sp58);
mtxf_identity(&sp58);
func_802B4FF8(&sp58, 0);
}
func_802A3008(D_800DC5EC);
@@ -1274,10 +1274,10 @@ void func_802A6BB0(void) {
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[16]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[64], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[64], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1285,7 +1285,7 @@ void func_802A6BB0(void) {
func_80295A38(D_800DC5F0);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
func_802A3008(D_800DC5F0);
@@ -1318,11 +1318,11 @@ void func_802A6E94(void) {
guPerspective(&gGfxPool->buffer[24], &sp9A[17], D_80150138, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp9A[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[24]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[72], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[72], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[72]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[72]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1330,7 +1330,7 @@ void func_802A6E94(void) {
func_80295A38(D_800DC5F4);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[72]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp58);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
func_802A3008(D_800DC5F4);
@@ -1373,10 +1373,10 @@ void func_802A7178(void) {
guPerspective(&gGfxPool->buffer[32], &sp92[17], D_8015013C, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, sp92[17]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[32]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[80], camera->posX, camera->posY, camera->posZ, camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
guLookAt(&gGfxPool->buffer[80], camera->pos[0], camera->pos[1], camera->pos[2], camera->unk, camera->unk1, camera->unk2, camera->angleX, camera->angleY, camera->angleZ);
if (D_800DC5C8 == 0) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[80]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp50);
mtxf_identity(sp50);
func_802B4FF8(sp50, 0);
} else {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[80]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@@ -1384,7 +1384,7 @@ void func_802A7178(void) {
func_80295A38(D_800DC5F8);
if (D_800DC5C8 == 1) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[80]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_802B53C8(sp50);
mtxf_identity(sp50);
func_802B4FF8(sp50, 0);
}
func_802A3008(D_800DC5F8);
+22 -57
View File
@@ -44,7 +44,7 @@ GLOBAL_ASM("asm/non_matchings/math_util/func_802B4F60.s")
extern u16 D_80150112;
extern void *gDisplayListHead;
? func_802B4FF8(s32 arg0, s32 arg1) {
? func_802B4FF8(Mat4 arg0, s32 arg1) {
s32 temp_a3;
u16 temp_v0;
void *temp_v0_2;
@@ -226,44 +226,16 @@ void func_802B5398(void *arg0, s32 *arg1, s32 arg2) {
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5398.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
void func_802B53C8(void *arg0) {
s32 temp_v0;
s32 phi_v0;
void *phi_v1;
void mtxf_identity(Mat4 mtx) {
register s32 i;
register s32 k;
phi_v0 = 0;
phi_v1 = arg0;
do {
if (phi_v0 == 0) {
phi_v1->unk0 = 1.0f;
} else {
phi_v1->unk0 = 0.0f;
for (i = 0; i < 4; i++) {
for (k = 0; k < 4; k++) {
mtx[i][k] = (i == k) ? 1.0f : 0.0f;
}
if (phi_v0 == 1) {
phi_v1->unk4 = 1.0f;
} else {
phi_v1->unk4 = 0.0f;
}
if (phi_v0 == 2) {
phi_v1->unk8 = 1.0f;
} else {
phi_v1->unk8 = 0.0f;
}
if (phi_v0 == 3) {
phi_v1->unkC = 1.0f;
} else {
phi_v1->unkC = 0.0f;
}
temp_v0 = phi_v0 + 1;
phi_v0 = temp_v0;
phi_v1 += 0x10;
} while (temp_v0 != 4);
}
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B53C8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
@@ -288,25 +260,18 @@ void func_802B5450(void *arg0, void *arg1, void *arg2) {
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5450.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_802B53C8(); /* extern */
void func_802B5520(void *arg0, void *arg1) {
func_802B53C8();
arg0->unk30 = arg1->unk0;
arg0->unk34 = arg1->unk4;
arg0->unk38 = arg1->unk8;
/* extern */
void mtxf_translate(Mat4 dest, Vec3f b) {
mtxf_identity(dest);
dest[3][0] = b[0];
dest[3][1] = b[1];
dest[3][2] = b[2];
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5520.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
f32 cosf(f32, f32); /* extern */
? func_802B53C8(f32); /* extern */
? mtxf_identity(f32); /* extern */
f32 sinf(f32); /* extern */
static f64 D_802B9FB0 = 0.017453292222222222;
@@ -346,7 +311,7 @@ void func_802B5564(void *arg0, s16 *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5
temp_f14 = arg2;
arg2 = temp_f14;
func_802B53C8(temp_f14);
mtxf_identity(temp_f14);
temp_f14_2 = arg2 * D_802B9FB0;
temp_f12 = temp_f14_2 / 2.0f;
sp1C = temp_f12;
@@ -492,7 +457,7 @@ GLOBAL_ASM("asm/non_matchings/math_util/func_802B5794.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_802B53C8(void *); /* extern */
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
@@ -508,7 +473,7 @@ void func_802B59DC(void *arg0, s32 arg1) {
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
func_802B53C8(arg0);
mtxf_identity(arg0);
arg0->unk18 = temp_f0;
arg0->unk24 = -temp_f0;
arg0->unk14 = sp28;
@@ -522,7 +487,7 @@ GLOBAL_ASM("asm/non_matchings/math_util/func_802B59DC.s")
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
? func_802B53C8(void *); /* extern */
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
@@ -538,7 +503,7 @@ void func_802B5A44(void *arg0, s32 arg1) {
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
func_802B53C8(arg0);
mtxf_identity(arg0);
arg0->unk20 = temp_f0;
arg0->unk8 = -temp_f0;
arg0->unk0 = sp28;
@@ -552,7 +517,7 @@ GLOBAL_ASM("asm/non_matchings/math_util/func_802B5A44.s")
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
? func_802B53C8(void *); /* extern */
? mtxf_identity(void *); /* extern */
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
@@ -568,7 +533,7 @@ void func_802B5AAC(void *arg0, s32 arg1) {
temp_f0 = sins(temp_a0);
sp2C = temp_f0;
sp28 = coss(temp_a0);
func_802B53C8(arg0);
mtxf_identity(arg0);
arg0->unk4 = temp_f0;
arg0->unk10 = -temp_f0;
arg0->unk0 = sp28;