Update the GfxPool struct and match some functions (#134)

* Update the GfxPool struct and match some functions

Also reordered variables.h a bit

* Match 2 more functions

* Replace reaming ->buffer references with ->mtxPool

Update the mips_to_c output of a couple functions based on new GfxPool
 definition

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran
2022-01-09 22:02:34 -05:00
committed by GitHub
parent bc99dedb8b
commit dd05d49f5f
26 changed files with 811 additions and 1489 deletions
+138 -30
View File
@@ -1,6 +1,9 @@
#include <ultra64.h>
#include <macros.h>
#include <common_structs.h>
#include "code_80040E50.h"
#include "main.h"
#include "variables.h"
//#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@@ -696,59 +699,164 @@ GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80041D24.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
//generated by mips_to_c commit 5bd751fca3befef73d6a2e20d84a88cc918a77fe
void guOrtho(Mtx *, f32, f32, f32, f32, f32, f32, f32); /* extern */
extern s32 D_800DC52C;
extern s8 D_801658FE;
extern Mtx D_80183D60;
void func_80041D34(void) {
s32 temp_v0;
guOrtho(&D_80183D60, 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
temp_v0 = D_800DC52C;
if (temp_v0 != 0) {
if (temp_v0 != 1) {
if (temp_v0 != 2) {
if (temp_v0 != 3) {
return;
}
guOrtho(&gGfxPool->buffer[40], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
return;
}
guOrtho(&gGfxPool->buffer[40], 0.0f, 160.0f, 120.0f, 0.0f, -1.0f, 1.0f, 1.0f);
return;
}
switch (D_800DC52C) { /* irregular */
case 0:
guOrtho(&gGfxPool->mtxPool[5], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
break;
case 2:
guOrtho(&gGfxPool->mtxPool[5], 0.0f, 160.0f, 120.0f, 0.0f, -1.0f, 1.0f, 1.0f);
break;
case 1:
if (D_801658FE == 0) {
guOrtho(&gGfxPool->buffer[40], 0.0f, 320.0f, 120.0f, 0.0f, -1.0f, 1.0f, 1.0f);
return;
guOrtho(&gGfxPool->mtxPool[5], 0.0f, 320.0f, 120.0f, 0.0f, -1.0f, 1.0f, 1.0f);
break;
}
guOrtho(&gGfxPool->buffer[40], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
return;
guOrtho(&gGfxPool->mtxPool[5], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
break;
case 3:
guOrtho(&gGfxPool->mtxPool[5], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
break;
}
guOrtho(&gGfxPool->buffer[40], 0.0f, 320.0f, 240.0f, 0.0f, -1.0f, 1.0f, 1.0f);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80041D34.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern void *gDisplayListHead;
void func_80041EF4(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[5]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
}
#ifdef MIPS_TO_C
? func_80022180(s32, ? *, s32 *); /* extern */
? func_80041A78(? *, s32, ?); /* extern */
extern s32 D_8018D120;
extern void *gDisplayListHead;
extern s32 gGfxPool;
UNUSED void func_80041F54(s32 arg0, ? arg1) {
? sp20;
void *temp_v1;
func_80041A78(&sp20, arg0, arg1);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp20, &D_8018D120);
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
temp_v1->unk0 = 0x01020040;
temp_v1->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80041F54.s")
#endif
#ifdef MIPS_TO_C
? func_80022180(s32, ? *, s32 *); /* extern */
? func_80041AD8(? *, s32); /* extern */
extern s32 D_8018D120;
extern void *gDisplayListHead;
extern s32 gGfxPool;
UNUSED void func_80042000(s32 arg0) {
? sp20;
void *temp_v1;
func_80041AD8(&sp20, arg0 & 0xFFFF);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp20, &D_8018D120);
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
temp_v1->unk0 = 0x01020040;
temp_v1->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80042000.s")
#endif
#ifdef MIPS_TO_C
? func_80022180(s32, ? *, s32 *); /* extern */
? func_80041B68(? *, f32); /* extern */
extern s32 D_8018D120;
extern void *gDisplayListHead;
extern s32 gGfxPool;
UNUSED void func_800420A8(f32 arg0) {
? sp20;
void *temp_v1;
func_80041B68(&sp20, arg0);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp20, &D_8018D120);
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
temp_v1->unk0 = 0x01020040;
temp_v1->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_800420A8.s")
#endif
#ifdef MIPS_TO_C
? func_80022180(s32, ? *, s32 *); /* extern */
? func_80041BBC(?, ? *, u16, ?); /* extern */
extern s32 D_8018D120;
extern void *gDisplayListHead;
extern s32 gGfxPool;
UNUSED void func_8004214C(u16 arg0, ? arg1) {
? sp20;
void *temp_v1;
func_80041BBC(arg1, &sp20, arg0, arg1);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp20, &D_8018D120);
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
temp_v1->unk0 = 0x01020040;
temp_v1->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_8004214C.s")
#endif
#ifdef MIPS_TO_C
? func_80022180(s32, ? *); /* extern */
? func_80041A78(? *, s32, s32); /* extern */
? func_80041B68(? *, s32, void **); /* extern */
extern s32 D_8018D120;
extern void *gDisplayListHead;
extern s32 gGfxPool;
UNUSED void func_800421FC(s32 arg0, s32 arg1, s32 arg2) {
? sp30;
void *temp_v1;
void *temp_v1_2;
func_80041A78(&sp30, arg0, arg1);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp30);
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
temp_v1->unk4 = 0x80000;
temp_v1->unk0 = 0xBA001301;
temp_v1->unk0 = 0x01020040;
temp_v1->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
func_80041B68(&sp30, arg2, &gDisplayListHead);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp30);
temp_v1_2 = gDisplayListHead;
gDisplayListHead = temp_v1_2 + 8;
temp_v1_2->unk0 = 0x1030040;
temp_v1_2->unk4 = &gGfxPool->buffer[40] & 0x1FFFFFFF;
temp_v1_2->unk0 = 0x01000040;
temp_v1_2->unk4 = (s32) ((gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF);
D_8018D120 += 1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80041EF4.s")
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_800421FC.s")
#endif
#ifdef MIPS_TO_C
+11
View File
@@ -0,0 +1,11 @@
#ifndef CODE_80040E50_H
#define CODE_80040E50_H
#include "common_structs.h"
/* Function Prototypes */
void func_80041EF4();
/* This is where I'd put my static data, if I had any */
#endif
+16 -41
View File
@@ -9449,58 +9449,33 @@ GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80055F48.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80022180(void *, ? *); // extern
? func_800425D0(? *, void *, void *, s32); // extern
? func_802B4FF8(? *, ?); // extern
? mtxf_identity(? *); // extern
extern ? D_0D0077A0;
//generated by mips_to_c commit 5bd751fca3befef73d6a2e20d84a88cc918a77fe
? func_80022180(Mtx *, ? *); /* extern */
? func_800425D0(? *, void *, void *, s32); /* extern */
? func_802B4FF8(? *, ?); /* extern */
? mtxf_identity(? *); /* extern */
extern Gfx D_0D0077A0[];
extern ? D_80165C18;
extern s32 D_8018D120;
extern void *gDisplayListHead;
void func_80055FA0(s32 arg0, ? arg1) {
void func_80055FA0(s32 arg0, s32 arg1) {
? sp80;
? sp40;
void *sp20;
void *temp_t0;
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
void *temp_v0_6;
temp_t0 = (arg0 * 0xE0) + &D_80165C18;
if (temp_t0->unkA6 >= 2) {
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk0 = 0x1030040;
temp_v0->unk4 = &gGfxPool->buffer[8] & 0x1FFFFFFF;
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0x1020040;
temp_v0_2->unk4 = &gGfxPool->buffer[56] & 0x1FFFFFFF;
if ((s32) temp_t0->unkA6 >= 2) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
sp20 = temp_t0;
func_800425D0(&sp80, temp_t0 + 4, temp_t0 + 0xBE, temp_t0->unk0);
func_80022180(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp80);
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk0 = 0x1000040;
temp_v0_3->unk4 = (gGfxPool + (D_8018D120 << 6) + 0x2C0) & 0x1FFFFFFF;
temp_v0_4 = gDisplayListHead;
D_8018D120 = D_8018D120 + 1;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk4 = &D_0D0077A0;
temp_v0_4->unk0 = 0x6000000;
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk0 = 0x6000000;
temp_v0_5->unk4 = temp_t0->unk70;
temp_v0_6 = gDisplayListHead;
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->unk0 = 0x1010040;
temp_v0_6->unk4 = &gGfxPool->buffer[56] & 0x1FFFFFFF;
func_80022180(&gGfxPool->mtxPool[D_8018D120 + 0xB], &sp80);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_8018D120 + 0xB]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
D_8018D120++;
gSPDisplayList(gDisplayListHead++, D_0D0077A0);
gSPDisplayList(gDisplayListHead++, sp20->unk70);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(&sp40);
func_802B4FF8(&sp40, 0);
}
+16 -16
View File
@@ -185,8 +185,8 @@ extern u16 D_800DC51C;
void func_800581C8(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_8001C3C4(0);
if (D_800DC50C == ENDING_SEQUENCE) {
@@ -205,8 +205,8 @@ void func_800581C8(void) {
void func_800582CC(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[16]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_8001C3C4(1);
if (D_800DC51C == 0) {
func_800532A4(1);
@@ -216,8 +216,8 @@ void func_800582CC(void) {
void func_80058394(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[24]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[72]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[9]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_8001C3C4(2);
if (D_800DC51C == 0) {
func_800532A4(2);
@@ -228,8 +228,8 @@ void func_80058394(void) {
void func_8005845C(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[32]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[80]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[4]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[10]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_8001C3C4(3);
if ((D_800DC51C == 0) && (gPlayerCountSelection1 == 4)) {
func_800532A4(3);
@@ -289,8 +289,8 @@ void func_80058B58();
void func_80058640(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[56]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
if (D_800DC50C != ENDING_SEQUENCE) {
func_80058B58(0);
}
@@ -298,22 +298,22 @@ void func_80058640(void) {
void func_800586FC(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[16]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[64]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_80058B58(1);
}
void func_800587A4(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[24]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[72]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[9]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_80058B58(2);
}
void func_8005884C(void) {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[32]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[80]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[4]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[10]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
func_80058B58(3);
}
+149 -450
View File
@@ -4,6 +4,9 @@
#include "code_80091750.h"
#include "code_800AF9B0.h"
#include "variables.h"
// TODO: Move gGfxPool out of main.h
// Unfortunately that's not a small effort due to weird import structure in this project
#include "main.h"
f64 exponent_by_squaring(f64 base, s32 exponent) {
s32 positive_exponent;
@@ -535,18 +538,16 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80092258.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void *segmented_to_virtual_dupe(segment_address_t); // extern
extern s32 D_800E84C0;
extern ? D_800E84CC;
extern s32 gGlobalTimer;
//generated by mips_to_c commit 5bd751fca3befef73d6a2e20d84a88cc918a77fe
extern ? D_02007BB8;
extern ? D_02007CD8;
extern ? D_02007DF8;
static u32 D_800E84C0[3] = { (u32) &D_02007BB8, (u32) &D_02007CD8, (u32) &D_02007DF8 }; /* const */
static ? D_800E84CC; /* unable to generate initializer; const */
void func_80092290(s32 arg0, s32 *arg1, s32 *arg2, s32 arg3) {
s32 *temp_a2;
s32 *temp_s0;
void func_80092290(s32 arg0, s32 *arg1, s32 *arg2) {
s32 temp_a0;
s32 temp_a1;
s32 temp_a3;
s32 temp_s4;
s32 temp_t0;
s32 temp_t6;
@@ -554,26 +555,22 @@ void func_80092290(s32 arg0, s32 *arg1, s32 *arg2, s32 arg3) {
s32 temp_t8;
s32 temp_t8_2;
s32 temp_t9;
s32 temp_v0;
u32 *temp_s0;
void *temp_a2;
void *temp_v0;
void *temp_v1;
void *temp_v1_2;
s32 *phi_s0;
s32 *phi_a1;
s32 *phi_a2;
s32 phi_a3;
u32 *phi_s0;
phi_a1 = arg1;
phi_a2 = arg2;
phi_a3 = arg3;
if ((arg0 >= 4) && (arg0 < 6)) {
temp_t8 = *arg2 + 0x10;
*arg2 = temp_t8;
if (temp_t8 >= 0x100) {
*arg2 = 0;
*arg1 = (*arg1 + 1) % 3;
*arg1 = (s32) (*arg1 + 1) % 3;
}
temp_s4 = (((arg0 * 4) + ((gGlobalTimer % 2) * 2)) - 6) * 0x10;
phi_s0 = &D_800E84C0;
temp_s4 = (((arg0 * 4) + (((s32) gGlobalTimer % 2) * 2)) - 6) * 0x10;
phi_s0 = D_800E84C0;
do {
temp_v0 = segmented_to_virtual_dupe(*phi_s0);
temp_a0 = *arg2;
@@ -582,24 +579,20 @@ void func_80092290(s32 arg0, s32 *arg1, s32 *arg2, s32 arg3) {
temp_s0 = phi_s0 + 4;
temp_t0 = (*arg1 * 2) + 2;
temp_v1 = temp_v0 + (temp_t0 * 0x10);
temp_a3 = (temp_t0 % 6) + 2;
temp_v1_2 = temp_v0 + (temp_a3 * 0x10);
temp_t6 = ((temp_a1 * temp_v1->unkC) + (temp_a0 * temp_v1_2->unkC)) / 0x100;
temp_a2->unkC = temp_t6;
temp_t9 = ((temp_a1 * temp_v1->unkD) + (temp_a0 * temp_v1_2->unkD)) / 0x100;
temp_a2->unkD = temp_t9;
temp_t7 = ((temp_a1 * temp_v1->unkE) + (temp_a0 * temp_v1_2->unkE)) / 0x100;
temp_a2->unkE = temp_t7;
temp_t8_2 = ((temp_a1 * temp_v1->unkF) + (temp_a0 * temp_v1_2->unkF)) / 0x100;
temp_a2->unkF = temp_t8_2;
temp_a2->unk1C = temp_t6;
temp_a2->unk1D = temp_t9;
temp_a2->unk1E = temp_t7;
temp_a2->unk1F = temp_t8_2;
temp_v1_2 = temp_v0 + (((temp_t0 % 6) + 2) * 0x10);
temp_t6 = (s32) ((temp_a1 * temp_v1->unkC) + (temp_a0 * temp_v1_2->unkC)) / 256;
temp_a2->unkC = (s8) temp_t6;
temp_t9 = (s32) ((temp_a1 * temp_v1->unkD) + (temp_a0 * temp_v1_2->unkD)) / 256;
temp_a2->unkD = (s8) temp_t9;
temp_t7 = (s32) ((temp_a1 * temp_v1->unkE) + (temp_a0 * temp_v1_2->unkE)) / 256;
temp_a2->unkE = (s8) temp_t7;
temp_t8_2 = (s32) ((temp_a1 * temp_v1->unkF) + (temp_a0 * temp_v1_2->unkF)) / 256;
temp_a2->unkF = (s8) temp_t8_2;
temp_a2->unk1C = (s8) temp_t6;
temp_a2->unk1D = (s8) temp_t9;
temp_a2->unk1E = (s8) temp_t7;
temp_a2->unk1F = (s8) temp_t8_2;
phi_s0 = temp_s0;
phi_a1 = temp_t8_2;
phi_a2 = temp_a2;
phi_a3 = temp_a3;
} while (temp_s0 != &D_800E84CC);
}
}
@@ -1277,41 +1270,13 @@ void func_80093C1C(void) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80093C1C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8009CA6C(?); // extern
? func_800A54EC(); // extern
? func_800A8250(); // extern
extern ? D_02007F18;
extern s16 D_80164AF0;
extern s32 D_80165754;
extern ? D_802B8880;
extern void *gDisplayListHead;
void func_80093C98(s32 arg0) {
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk4 = &D_802B8880 & 0x1FFFFFFF;
temp_v0->unk0 = 0x3800010;
guOrtho(gGfxPool + (D_80164AF0 << 6) + 0xFAC0, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0x1030040;
temp_v0_2->unk4 = (gGfxPool + (D_80164AF0 << 6) + 0xFAC0) & 0x1FFFFFFF;
temp_v0_3 = gDisplayListHead;
D_80164AF0 = D_80164AF0 + 1;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk0 = 0x6000000;
temp_v0_3->unk4 = &D_02007F18;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk0 = 0xED000000;
temp_v0_4->unk4 = 0x5003C0;
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
guOrtho(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
D_80164AF0++;
gSPDisplayList(gDisplayListHead++, D_02007F18);
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
func_800A8250();
if (arg0 == 0) {
func_800A54EC();
@@ -1320,9 +1285,6 @@ void func_80093C98(s32 arg0) {
D_80164AF0 = 0;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80093C98.s")
#endif
void func_80093E20(void) {
func_80093C98(0);
@@ -1375,51 +1337,13 @@ void func_80093E60(void) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80093E60.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80092290(?, ? *, ? *); // extern
? func_80099A70(); // extern
? func_80099AEC(); // extern
? func_80099E54(); // extern
? func_80099EC4(); // extern
? func_8009C918(); // extern
? func_8009CA2C(); // extern
? func_800A8230(); // extern
extern ? D_02007F18;
extern ? D_02007F48;
extern s16 D_80164AF0;
extern ? D_8018E850;
extern ? D_8018E854;
extern ? D_8018E858;
extern ? D_8018E85C;
extern ? D_802B8880;
extern void *gDisplayListHead;
void func_80093F10(void) {
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk4 = &D_802B8880 & 0x1FFFFFFF;
temp_v0->unk0 = 0x3800010;
guOrtho(gGfxPool + (D_80164AF0 << 6) + 0xFAC0, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0x1030040;
temp_v0_2->unk4 = (gGfxPool + (D_80164AF0 << 6) + 0xFAC0) & 0x1FFFFFFF;
temp_v0_3 = gDisplayListHead;
D_80164AF0 = D_80164AF0 + 1;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk0 = 0x6000000;
temp_v0_3->unk4 = &D_02007F18;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk0 = 0xED000000;
temp_v0_4->unk4 = 0x5003C0;
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
guOrtho(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
D_80164AF0++;
gSPDisplayList(gDisplayListHead++, D_02007F18);
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
func_80092290(4, &D_8018E850, &D_8018E858);
func_80092290(5, &D_8018E854, &D_8018E85C);
func_8009C918();
@@ -1429,62 +1353,17 @@ void func_80093F10(void) {
func_80099AEC();
func_80099EC4();
func_8009CA2C();
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk0 = 0x6000000;
temp_v0_5->unk4 = &D_02007F48;
gSPDisplayList(gDisplayListHead++, D_02007F48);
D_80164AF0 = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80093F10.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80057CE4(); // extern
? func_80092148(); // extern
? func_80092290(?, ? *, ? *); // extern
? func_80099A70(); // extern
? func_80099AEC(); // extern
? func_80099E54(); // extern
? func_80099EC4(); // extern
? func_8009CA6C(s32); // extern
? func_800A8230(); // extern
extern ? D_02007F18;
extern ? D_02007F48;
extern s16 D_80164AF0;
extern ? D_8018E850;
extern ? D_8018E854;
extern ? D_8018E858;
extern ? D_8018E85C;
extern ? D_802B8880;
extern void *gDisplayListHead;
void func_800940EC(s32 arg0) {
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk4 = &D_802B8880 & 0x1FFFFFFF;
temp_v0->unk0 = 0x3800010;
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0xED000000;
temp_v0_2->unk4 = 0x5003C0;
guOrtho(gGfxPool + (D_80164AF0 << 6) + 0xFAC0, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk0 = 0x1030040;
temp_v0_3->unk4 = (gGfxPool + (D_80164AF0 << 6) + 0xFAC0) & 0x1FFFFFFF;
temp_v0_4 = gDisplayListHead;
D_80164AF0 = D_80164AF0 + 1;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk0 = 0x6000000;
temp_v0_4->unk4 = &D_02007F18;
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
guOrtho(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
D_80164AF0++;
gSPDisplayList(gDisplayListHead++, D_02007F18);
func_80092290(4, &D_8018E850, &D_8018E858);
func_80092290(5, &D_8018E854, &D_8018E85C);
func_80092148();
@@ -1494,52 +1373,38 @@ void func_800940EC(s32 arg0) {
func_80099AEC();
func_80099EC4();
func_8009CA6C(arg0);
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk0 = 0x6000000;
temp_v0_5->unk4 = &D_02007F48;
gSPDisplayList(gDisplayListHead++, D_02007F48);
func_80057CE4();
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800940EC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_02007F60;
//generated by mips_to_c commit 5bd751fca3befef73d6a2e20d84a88cc918a77fe
extern ? D_06009410;
extern f32 D_800E8530;
extern f32 D_800E8534;
extern f32 D_8018EDC4;
extern f32 D_8018EDC8;
extern f32 D_8018EDCC;
extern void *gDisplayListHead;
void func_800942D0(void) {
? *sp6C;
Gfx *temp_s1;
Gfx *temp_s1_2;
Gfx *temp_s4;
Gfx *temp_v0;
Gfx *temp_v0_10;
Gfx *temp_v0_11;
Gfx *temp_v0_12;
Gfx *temp_v0_13;
Gfx *temp_v0_14;
Gfx *temp_v0_15;
Gfx *temp_v0_16;
Gfx *temp_v0_2;
Gfx *temp_v0_3;
Gfx *temp_v0_4;
Gfx *temp_v0_5;
Gfx *temp_v0_6;
Gfx *temp_v0_7;
Gfx *temp_v0_8;
Gfx *temp_v0_9;
Mtx *temp_s1;
Mtx *temp_s1_2;
Mtx *temp_s1_3;
Mtx *temp_s4;
Mtx *temp_s4_2;
f32 temp_f26;
s32 temp_s3;
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;
Mtx *phi_s1;
s32 phi_s2;
f32 phi_f26;
@@ -1547,53 +1412,52 @@ void func_800942D0(void) {
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk0 = 0x1030040;
temp_v0->unk4 = gGfxPool;
temp_v0->words.w0 = 0x01030040;
temp_v0->words.w1 = (u32) gGfxPool;
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0x1020040;
temp_s1 = &gGfxPool->buffer[6488];
temp_v0_2->unk4 = &gGfxPool->buffer[56];
temp_v0_2->words.w0 = 0x01020040;
temp_s1 = &gGfxPool->mtxPool[0x32B];
temp_v0_2->words.w1 = (u32) &gGfxPool->mtxPool[7];
guRotate(temp_s1, D_8018EDC8, 1.0f, 0.0f, 0.0f);
temp_s4 = temp_s1 + 0x40;
guRotate(temp_s4, D_8018EDCC, 0.0f, 1.0f, 0.0f);
guScale(temp_s1 + 0x80, 1.0f, 1.0f, D_8018EDC4);
guScale(temp_s1 + 0x80, 1.0f, 1.0f, (bitwise s32) D_8018EDC4);
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk4 = temp_s1;
temp_v0_3->unk0 = 0x1000040;
temp_v0_3->words.w1 = (u32) temp_s1;
temp_v0_3->words.w0 = 0x01000040;
temp_v0_4 = gDisplayListHead;
temp_s1_2 = temp_s4 + 0x40;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk4 = temp_s4;
temp_v0_4->unk0 = 0x1000040;
temp_v0_4->words.w1 = (u32) temp_s4;
temp_v0_4->words.w0 = 0x01000040;
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk4 = temp_s1_2;
temp_v0_5->unk0 = 0x1040040;
temp_v0_5->words.w1 = (u32) temp_s1_2;
temp_v0_5->words.w0 = 0x01040040;
temp_v0_6 = gDisplayListHead;
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->unk0 = 0xB900031D;
temp_v0_6->unk4 = 0x552078;
temp_v0_6->words.w0 = 0xB900031D;
temp_v0_6->words.w1 = 0x552078;
temp_v0_7 = gDisplayListHead;
gDisplayListHead = temp_v0_7 + 8;
temp_v0_7->unk4 = 0;
temp_v0_7->unk0 = 0xFB000000;
temp_v0_7->words.w1 = 0;
temp_v0_7->words.w0 = 0xFB000000;
temp_v0_8 = gDisplayListHead;
gDisplayListHead = temp_v0_8 + 8;
temp_v0_8->unk4 = &D_02007F60;
temp_v0_8->unk0 = 0x6000000;
temp_v0_8->words.w1 = (u32) D_02007F60;
temp_v0_8->words.w0 = 0x06000000;
temp_v0_9 = gDisplayListHead;
gDisplayListHead = temp_v0_9 + 8;
temp_v0_9->unk4 = 0;
temp_v0_9->unk0 = 0xBD000000;
temp_v0_9->words.w1 = 0;
temp_v0_9->words.w0 = 0xBD000000;
phi_s1 = temp_s1_2 + 0x40;
phi_s2 = 0;
phi_s5 = 0xC0;
if (D_800E8530 > 0.0f) {
temp_f26 = D_800E8534;
phi_f26 = temp_f26;
if (temp_f26 > 10.0f) {
if (0.0f < 0.0f) {
phi_f26 = 3.0f;
if (10.0f < 3.0f) {
phi_f26 = 10.0f;
}
sp6C = &D_06009410;
@@ -1601,37 +1465,37 @@ void func_800942D0(void) {
guRotate(phi_s1, 0.0f, 1.0f, 0.0f, 0.0f);
temp_s3 = phi_s2 + 1;
temp_s4_2 = phi_s1 + 0x40;
guRotate(temp_s4_2, temp_s3 * D_800E8530 * phi_f26, 0.0f, 1.0f, 0.0f);
guScale(phi_s1 + 0x80, 1.0f, 1.0f, 2.0f);
guRotate(temp_s4_2, (f32) temp_s3 * 0.0f * phi_f26, 0.0f, 1.0f, 0.0f);
guScale(phi_s1 + 0x80, 1.0f, 1.0f, 0x40000000);
temp_v0_10 = gDisplayListHead;
gDisplayListHead = temp_v0_10 + 8;
temp_v0_10->unk4 = phi_s1;
temp_v0_10->unk0 = 0x1040040;
temp_v0_10->words.w1 = (u32) phi_s1;
temp_v0_10->words.w0 = 0x01040040;
temp_v0_11 = gDisplayListHead;
temp_s1_3 = temp_s4_2 + 0x40;
gDisplayListHead = temp_v0_11 + 8;
temp_v0_11->unk4 = temp_s4_2;
temp_v0_11->unk0 = 0x1000040;
temp_v0_11->words.w1 = (u32) temp_s4_2;
temp_v0_11->words.w0 = 0x01000040;
temp_v0_12 = gDisplayListHead;
gDisplayListHead = temp_v0_12 + 8;
temp_v0_12->unk4 = temp_s1_3;
temp_v0_12->unk0 = 0x1000040;
temp_v0_12->words.w1 = (u32) temp_s1_3;
temp_v0_12->words.w0 = 0x01000040;
temp_v0_13 = gDisplayListHead;
gDisplayListHead = temp_v0_13 + 8;
temp_v0_13->unk4 = 0x5049D8;
temp_v0_13->unk0 = 0xB900031D;
temp_v0_13->words.w1 = 0x5049D8;
temp_v0_13->words.w0 = 0xB900031D;
temp_v0_14 = gDisplayListHead;
gDisplayListHead = temp_v0_14 + 8;
temp_v0_14->unk4 = phi_s5 & 0xFF;
temp_v0_14->unk0 = 0xFB000000;
temp_v0_14->words.w1 = phi_s5 & 0xFF;
temp_v0_14->words.w0 = 0xFB000000;
temp_v0_15 = gDisplayListHead;
gDisplayListHead = temp_v0_15 + 8;
temp_v0_15->unk0 = 0x6000000;
temp_v0_15->unk4 = sp6C;
temp_v0_15->words.w0 = 0x06000000;
temp_v0_15->words.w1 = (u32) sp6C;
temp_v0_16 = gDisplayListHead;
gDisplayListHead = temp_v0_16 + 8;
temp_v0_16->unk4 = 0;
temp_v0_16->unk0 = 0xBD000000;
temp_v0_16->words.w1 = 0;
temp_v0_16->words.w0 = 0xBD000000;
phi_s1 = temp_s1_3 + 0x40;
phi_s2 = temp_s3;
phi_s5 += -0x10;
@@ -1642,218 +1506,59 @@ void func_800942D0(void) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800942D0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800942D0(); // extern
? move_segment_table_to_dmem(); // extern
extern s32 D_8018EDC0;
extern void *gDisplayListHead;
void func_80094660(Mtx *arg0, ? arg1) {
u16 sp56;
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
void func_80094660(struct GfxPool *arg0, s32 unused) {
u16 perspNorm;
move_segment_table_to_dmem();
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk4 = 0x80000;
temp_v0->unk0 = 0xBA001301;
guPerspective(arg0, &sp56, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0xB4000000;
temp_v0_2->unk4 = sp56;
guLookAt(arg0 + 0x1C0, 0.0f, 0.0f, D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
guPerspective(&arg0->mtxPool[0], &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
gDPHalf1(gDisplayListHead++, perspNorm);
guLookAt(&arg0->mtxPool[7], 0.0f, 0.0f, (f32) D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
func_800942D0();
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk4 = 0;
temp_v0_3->unk0 = 0xE7000000;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk4 = 0;
temp_v0_4->unk0 = 0xBA001301;
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk4 = 0x2000;
temp_v0_5->unk0 = 0xBA000C02;
gDPPipeSync(gDisplayListHead++);
gDPSetTexturePersp(gDisplayListHead++, G_TP_NONE);
gDPSetTextureFilter(gDisplayListHead++, G_TF_BILERP);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80094660.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800B0004(); // extern
? move_segment_table_to_dmem(); // extern
extern ? D_02007650;
extern ? D_02007FC8;
extern s32 D_8018EDC0;
extern f32 D_8018EDC4;
extern f32 D_8018EDC8;
extern f32 D_8018EDCC;
extern f32 D_8018EDD0;
extern f32 D_8018EDD4;
extern f32 D_8018EDD8;
extern f32 D_8018EDDC;
extern void *gDisplayListHead;
void func_800947B4(s32 arg0, ? arg1) {
u16 sp7E;
Mtx *sp50;
Mtx *sp4C;
Mtx *sp48;
Mtx *sp44;
Mtx *sp40;
Mtx *sp3C;
Mtx *sp38;
Mtx *temp_a0;
Mtx *temp_a0_2;
Mtx *temp_a0_3;
Mtx *temp_a0_4;
Mtx *temp_a0_5;
Mtx *temp_a0_6;
Mtx *temp_a0_7;
f32 temp_f0;
void *temp_v0;
void *temp_v0_10;
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;
void func_800947B4(struct GfxPool *arg0, s32 unused) {
u16 perspNorm;
move_segment_table_to_dmem();
temp_a0 = arg0 + 0x40;
sp50 = temp_a0;
guPerspective(temp_a0, &sp7E, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->unk0 = 0xB4000000;
temp_v0->unk4 = sp7E;
temp_a0_2 = arg0 + 0x200;
sp4C = temp_a0_2;
guLookAt(temp_a0_2, 0.0f, 0.0f, D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
temp_a0_3 = arg0 + 0xCAC0;
sp48 = temp_a0_3;
guRotate(temp_a0_3, D_8018EDC8, 1.0f, 0.0f, 0.0f);
temp_a0_4 = arg0 + 0xCB00;
sp44 = temp_a0_4;
guRotate(temp_a0_4, D_8018EDCC, 0.0f, 1.0f, 0.0f);
temp_a0_5 = arg0 + 0xCB40;
sp40 = temp_a0_5;
guRotate(temp_a0_5, D_8018EDD0, 0.0f, 0.0f, 1.0f);
temp_a0_6 = arg0 + 0xCB80;
temp_f0 = D_8018EDC4;
sp3C = temp_a0_6;
guScale(temp_a0_6, temp_f0, temp_f0, temp_f0);
temp_a0_7 = arg0 + 0xCBC0;
sp38 = temp_a0_7;
guTranslate(temp_a0_7, D_8018EDD4, D_8018EDD8, D_8018EDDC);
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->unk0 = 0x1030040;
temp_v0_2->unk4 = sp50;
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->unk0 = 0x1020040;
temp_v0_3->unk4 = sp4C;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->unk0 = 0x1000040;
temp_v0_4->unk4 = sp48;
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->unk0 = 0x1000040;
temp_v0_5->unk4 = sp44;
temp_v0_6 = gDisplayListHead;
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->unk0 = 0x1000040;
temp_v0_6->unk4 = sp40;
temp_v0_7 = gDisplayListHead;
gDisplayListHead = temp_v0_7 + 8;
temp_v0_7->unk0 = 0x1000040;
temp_v0_7->unk4 = sp3C;
temp_v0_8 = gDisplayListHead;
gDisplayListHead = temp_v0_8 + 8;
temp_v0_8->unk0 = 0x1000040;
temp_v0_8->unk4 = sp38;
temp_v0_9 = gDisplayListHead;
gDisplayListHead = temp_v0_9 + 8;
temp_v0_9->unk4 = &D_02007FC8;
temp_v0_9->unk0 = 0x6000000;
guPerspective(&arg0->mtxPool[1], &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
gDPHalf1(gDisplayListHead++, perspNorm);
guLookAt(&arg0->mtxPool[8], 0.0f, 0.0f, (f32) D_8018EDC0, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
guRotate(&arg0->mtxPool[0x32B], D_8018EDC8, 1.0f, 0, 0);
guRotate(&arg0->mtxPool[0x32C], D_8018EDCC, 0, 1.0f, 0);
guRotate(&arg0->mtxPool[0x32D], D_8018EDD0, 0, 0, 1.0f);
guScale(&arg0->mtxPool[0x32E], D_8018EDC4, D_8018EDC4, D_8018EDC4);
guTranslate(&arg0->mtxPool[0x32F], D_8018EDD4, D_8018EDD8, D_8018EDDC);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[1], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[8], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[0x32B], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[0x32C], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[0x32D], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[0x32E], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPMatrix(gDisplayListHead++, &arg0->mtxPool[0x32F], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, D_02007FC8);
func_800B0004();
temp_v0_10 = gDisplayListHead;
gDisplayListHead = temp_v0_10 + 8;
temp_v0_10->unk4 = &D_02007650;
temp_v0_10->unk0 = 0x6000000;
gSPDisplayList(gDisplayListHead++, D_02007650);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800947B4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
? func_80092290(?, ? *, ? *); /* extern */
? func_80093E40(); /* extern */
? func_80094C60(); /* extern */
? func_80095574(); /* extern */
? func_80099A70(); /* extern */
? func_80099AEC(); /* extern */
? func_8009C918(); /* extern */
? func_8009CA2C(); /* extern */
? func_800A8230(); /* extern */
? guOrtho(s32, f32, ?, ?, f32, f32, f32, f32); /* extern */
extern ? D_8018E850;
extern ? D_8018E854;
extern ? D_8018E858;
extern ? D_8018E85C;
extern ? D_802B8880;
static ? D_02007650; /* unable to generate initializer */
static ? D_020076B0; /* unable to generate initializer */
void func_80094A64(s32 arg0) {
Gfx *temp_v0;
Gfx *temp_v0_2;
Gfx *temp_v0_3;
Gfx *temp_v0_4;
Gfx *temp_v0_5;
Gfx *temp_v0_6;
s32 temp_t1;
#ifdef NON_MATCHING
// Non-matching due to .rodata diffs resulting from the switch/case
// jump table
void func_80094A64(Mtx *arg0) {
D_8018D120 = 0;
D_80164AF0 = 0;
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->words.w1 = &D_802B8880 & 0x1FFFFFFF;
temp_v0->words.w0 = 0x3800010;
temp_v0_2 = gDisplayListHead;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->words.w0 = 0xED000000;
temp_v0_2->words.w1 = 0x5003C0;
guOrtho(arg0, 0.0f, 0x439F8000, 0x436F0000, 0.0f, -100.0f, 100.0f, 1.0f);
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->words.w0 = 0x1030040;
temp_v0_3->words.w1 = arg0;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->words.w1 = &D_02007650;
temp_v0_4->words.w0 = 0x6000000;
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_802B8880));
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
guOrtho(arg0, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
gSPMatrix(gDisplayListHead++, arg0, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPDisplayList(gDisplayListHead++, D_02007650);
func_80094C60();
func_80092290(4, &D_8018E850, &D_8018E858);
func_80092290(5, &D_8018E854, &D_8018E85C);
func_80099A70();
func_8009C918();
temp_t1 = gMenuSelection;
switch (temp_t1) {
switch (gMenuSelection) {
case START_MENU:
func_80095574();
func_80093E40();
@@ -1871,15 +1576,9 @@ void func_80094A64(s32 arg0) {
break;
}
func_8009CA2C();
temp_v0_5 = gDisplayListHead;
D_8018E7A8 += 1;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->words.w1 = 0;
temp_v0_5->words.w0 = 0xE7000000;
temp_v0_6 = gDisplayListHead;
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->words.w0 = 0x6000000;
temp_v0_6->words.w1 = &D_020076B0;
gDPPipeSync(gDisplayListHead++);
gSPDisplayList(gDisplayListHead++, D_020076B0);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80094A64.s")
+47 -1
View File
@@ -2,14 +2,17 @@
#define CODE_80091750_H
#include "common_structs.h"
#include "main.h"
/* Function Prototypes */
f64 exponent_by_squaring(f64, s32);
void swap_values(s32*, s32*);
void func_80092148();
void func_800921B4();
void func_800921C0(s32, s32, s32);
void func_80092224(s32, s32, s32);
void func_80092290(s32, s32*, s32*);
void func_80092500();
void func_80092564();
void func_800925A0();
@@ -34,8 +37,17 @@ void func_80093754(s32, s32, char*, s32, f32, f32);
void print_text2(s32, s32, char*, s32, f32, f32, s32);
void func_800939C8(s32, s32, char*, s32, f32, f32);
void text_draw(s32, s32, char*, s32, f32, f32);
void func_80093C98(s32);
void func_80093E20();
void func_80093E40();
void func_80093F10();
void func_800940EC(s32);
void func_800942D0();
void func_80094660(struct GfxPool*, s32);
void func_800947B4(struct GfxPool*, s32);
void func_80094A64(Mtx*);
void func_80094C60();
void func_80095574();
Gfx *func_80098C18(Gfx*, s32, s32, s32, s32, s32, s32, u32, s32);
Gfx *draw_box(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
Gfx *func_80098FC8(Gfx*, s32, s32, s32, s32);
@@ -43,19 +55,27 @@ void func_80099110();
void func_80099184(s32);
void *segmented_to_virtual(segment_address_t);
void *segmented_to_virtual_dupe(segment_address_t);
void func_8009CA2C();
void func_8009CA6C(s32);
void func_80099A94(Mk64_Texture *, s32);
void func_80099AEC();
void func_80099E54();
void func_80099E60(Mk64_Texture *, s32, s32);
void func_80099EC4();
void func_8009A594(s32, s32, segment_address_t);
void func_8009A640(s32, s32, s32, segment_address_t);
void func_80099A70();
segment_address_t func_8009A878(struct_8018DEE0_entry*);
void func_800A54EC();
void func_8009A76C(s32, s32, s32, s32);
void func_8009A7EC(s32, s32, s32, s32, s32);
void func_800A8250();
void func_8009A944(struct_8018DEE0_entry*, s32);
Gfx *func_8009BA74(Gfx *, Mk64_Texture*, s32, s32);
s32 func_8009C434(s32, struct_8018DEE0_entry*, s32, s32, s32);
s32 func_8009C708(s32, struct_8018DEE0_entry *, s32, s32, s32, s32);
void func_8009C918();
void func_8009E1C0();
void func_8009E1E4(void);
void func_8009E208();
void func_8009E258();
void func_800A0AD0(struct_8018D9E0_entry*);
@@ -70,6 +90,7 @@ void write_dashes(char*);
void get_time_record_minutes(s32, char*);
void get_time_record_seconds(s32 , char*);
void get_time_record_centiseconds(s32, char*);
void func_800A8230();
void func_800A86E8(struct_8018D9E0_entry*);
void func_800A8E14(struct_8018D9E0_entry*);
void func_800A8EC0(struct_8018D9E0_entry*);
@@ -80,18 +101,28 @@ struct_8018D9E0_entry *func_800AAEB4(s32);
struct_8018D9E0_entry *func_800AAEF4(s32);
void func_800AAF94(struct_8018D9E0_entry*, s32);
// code_80057C60.c
void func_80057CE4();
/* This is where I'd put my static data, if I had any */
extern Mk64_Texture D_0200157C;
extern Mk64_Texture D_02001874;
extern Gfx D_02004A0C[];
extern Gfx D_02007650[];
extern Gfx D_020076B0[];
extern Gfx D_020077A8[];
extern Gfx D_020077D8[];
extern Gfx D_02007F18[];
extern Gfx D_02007F48[];
extern Gfx D_02007F60[];
extern Gfx D_02007FC8[];
extern Gfx D_02008008[];
extern Gfx D_02008030[];
extern Gfx D_02008058[];
extern Gfx D_06009410[];
extern s16 gGlyphDisplayWidth[]; // D_800EF690
extern RGBA16 D_800E74A8[5];
@@ -107,6 +138,8 @@ extern char *D_800E7A98;
extern char *D_800E7A9C[2];
extern s32 gGlyphTextureLUT[]; // D_800E7E84
extern Mk64_Texture_Group *D_800E82B4[5];
extern f32 D_800E8530;
extern f32 D_800E8534;
extern s8 D_800E86D0[20];
extern f32 D_800F1F30;
extern f32 D_800F24A8;
@@ -115,12 +148,25 @@ extern f32 D_800F24B0;
extern f32 D_800F24B4;
extern f32 D_800F24B8;
extern f64 D_800F24C0;
extern s32 D_80165754;
extern s8 D_8018D9D9;
extern struct_8018D9E0_entry D_8018D9E0[32]; // D_8018D9E0
extern struct_8018DEE0_entry D_8018DEE0[16]; // D_8018DEE0
extern struct_8018E118_entry D_8018E118[200]; // D_8018E118
extern s8 gTextColor; // D_8018E860
extern s8 D_8018ED91;
extern s32 D_8018E850;
extern s32 D_8018E854;
extern s32 D_8018E858;
extern s32 D_8018E85C;
extern s32 D_8018EDC0;
extern f32 D_8018EDC4;
extern f32 D_8018EDC8;
extern f32 D_8018EDCC;
extern f32 D_8018EDD0;
extern f32 D_8018EDD4;
extern f32 D_8018EDD8;
extern f32 D_8018EDDC;
extern s8 D_802874F5;
#endif
+1
View File
@@ -14,6 +14,7 @@ union GrandPrixPointsUnion
/* Function Prototypes */
void func_800AF9B0();
void func_800B0004();
void func_800B053C(struct Controller*, u16);
void func_800B13B0(struct Controller*, u16);
void func_800B15AC(struct Controller*, u16);
+4 -4
View File
@@ -50,11 +50,11 @@ void func_80280038(void) {
func_802A3E3C();
func_80057FC4(0);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[8], &sp44[37], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[1], &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->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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[7], 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->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gCurrentCourseId = gCreditsCourseId;
mtxf_identity(&sp44);
func_802B4FF8(&sp44, 0);
+2 -11
View File
@@ -185,11 +185,8 @@ extern struct UnkStruct_80287500 *D_80287500;
void func_80280A28(s32 arg0, s32 arg1, f32 arg2) {
f32 sp20[14];
//f32 temp_f12;
Gfx *temp_v1;
//temp_f12 = arg2;
//arg2 = temp_f12;
func_80021E10(arg2, &sp20, arg0, arg1);
sp20[0] = D_80287500->unk0[0] * arg2;
sp20[1] = D_80287500->unk10 * arg2;
@@ -200,15 +197,9 @@ void func_80280A28(s32 arg0, s32 arg1, f32 arg2) {
sp20[6] = D_80287500->unk0[2] * arg2;
sp20[7] = D_80287500->unk18 * arg2;
sp20[8] = D_80287500->unk28 * arg2;
func_80022180(arg2, &gGfxPool->buffer[D_80164AF0] + 0xFAC0, &sp20);
func_80022180(arg2, &gGfxPool->mtxPool[D_80164AF0 + 0x3EB], &sp20);
gSPMatrix(gDisplayListHead, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[D_80164AF0 << 6] + 0xFAC0), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
//temp_v1 = gDisplayListHead;
//gDisplayListHead = temp_v1 + 8;
//temp_v1->words.w0 = 0x01020040;
//temp_v1->words.w1 = VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[D_80164AF0 << 6] + 0xFAC0);
gSPMatrix(gDisplayListHead, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80280650/func_80280A28.s")
+4 -4
View File
@@ -64,11 +64,11 @@ void func_80281D00(void) {
}
func_8028150C();
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective((Mtx*) &gGfxPool->buffer[8], &sp64[39], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective((Mtx*) &gGfxPool->mtxPool[1], &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->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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt((Mtx*) &gGfxPool->mtxPool[7], 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->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(&sp64[6]);
func_802B4FF8(&sp64[6], 0);
gSPDisplayList(gDisplayListHead++, &D_00284F70);
+58 -58
View File
@@ -460,9 +460,9 @@ void func_802A487C(Vtx *arg0, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3,
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER | G_LIGHTING);
guOrtho((Mtx *)&gGfxPool->buffer, 0.0f, 320.0f, 0.0f, 240.0f, 0.0f, 5.0f, 1.0f);
guOrtho(&gGfxPool->mtxPool[0], 0.0f, 320.0f, 0.0f, 240.0f, 0.0f, 5.0f, 1.0f);
gDPHalf1(gDisplayListHead++, 0xFFFF);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPVertex(gDisplayListHead++, &arg0[4], 4, 0);
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
@@ -530,9 +530,9 @@ void func_802A4A0C(Vtx *arg0, struct UnkStruct_800DC5EC *arg1, s32 arg2, s32 arg
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
gSPClearGeometryMode(gDisplayListHead++, G_ZBUFFER | G_LIGHTING);
guOrtho(&gGfxPool->buffer, 0.0f, 320.0f, 0.0f, 240.0f, 0.0f, 5.0f, 1.0f);
guOrtho(&gGfxPool->mtxPool[0], 0.0f, 320.0f, 0.0f, 240.0f, 0.0f, 5.0f, 1.0f);
gDPHalf1(gDisplayListHead++, 0xFFFF);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPVertex(gDisplayListHead++, &arg0, 4, 0);
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
@@ -983,23 +983,23 @@ void func_802A59A4(void) {
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
guPerspective(&gGfxPool->buffer[8], &spAA[23], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[1], &spAA[23], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
gDPHalf1(gDisplayListHead++, spAA[23]);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->buffer[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->buffer[56], camera->pos[0], camera->pos[1], camera->pos[2],
guLookAt(&gGfxPool->mtxPool[7], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp5C);
func_802B4FF8(sp5C, 0);
}
@@ -1033,23 +1033,23 @@ void func_802A5CB4(void) {
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[1], &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->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->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[7], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
@@ -1082,23 +1082,23 @@ void func_802A5FAC(void) {
func_802A3730(D_800DC5F0);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[16], &sp9A[17], D_80150134, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[2], &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->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->mtxPool[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[8], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
@@ -1130,22 +1130,22 @@ void func_802A62A4(void) {
func_802A3E3C();
func_802A3730(D_800DC5EC);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[1], &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->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->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[7], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
@@ -1178,21 +1178,21 @@ void func_802A65B8(void) {
func_802A3E3C();
func_802A3730(D_800DC5F0);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[16], &sp9A[17], D_80150134, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[2], &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->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->mtxPool[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[8], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(&sp58);
func_802B4FF8(&sp58, 0);
}
@@ -1224,21 +1224,21 @@ void func_802A68CC(void) {
func_802A3730(D_800DC5EC);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[8], &sp9A[17], D_80150130, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[1], &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->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->mtxPool[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[7], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[7]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(&sp58);
func_802B4FF8(&sp58, 0);
}
@@ -1270,21 +1270,21 @@ void func_802A6BB0(void) {
func_802A3730(D_800DC5F0);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[16], &sp9A[17], D_80150134, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[2], &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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
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);
guLookAt(&gGfxPool->mtxPool[8], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[8]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
@@ -1315,21 +1315,21 @@ void func_802A6E94(void) {
func_802A3E3C();
func_802A3730(D_800DC5F4);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[24], &sp9A[17], D_80150138, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[3], &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->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->mtxPool[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[9], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[9]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[9]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[9]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp58);
func_802B4FF8(sp58, 0);
}
@@ -1370,20 +1370,20 @@ void func_802A7178(void) {
func_802A3730(D_800DC5F8);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
guPerspective(&gGfxPool->buffer[32], &sp92[17], D_8015013C, D_80150148, D_80150150, D_8015014C, 1.0f);
guPerspective(&gGfxPool->mtxPool[4], &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->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->mtxPool[4]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxPool[10], 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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[10]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[10]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
}
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);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[10]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(sp50);
func_802B4FF8(sp50, 0);
}
+2 -2
View File
@@ -2,11 +2,11 @@
#include <macros.h>
#include "types.h"
#include "PR/gu.h"
#include "main.h"
extern s16 D_800E43A8;
extern Mtx D_0D008E98;
extern Gfx* gDisplayListHead;
extern Mtx* gGfxPool;
// rsp init
void gfx_func_80040D00(void) {
@@ -15,7 +15,7 @@ void gfx_func_80040D00(void) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
guOrtho((Mtx *) gGfxPool, 0.0f, 320.0f, 0.0f, 240.0f, -1.0f, 1.0f, 1.0f);
guOrtho(&gGfxPool->mtxPool[0], 0.0f, 320.0f, 0.0f, 240.0f, -1.0f, 1.0f, 1.0f);
gDPHalf1(gDisplayListHead++, 0x0000FFFF);
gSPMatrix(gDisplayListHead++, (u32) gGfxPool & 0x1FFFFFFF, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, (u32) &D_0D008E98 & 0x1FFFFFFF, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+6 -6
View File
@@ -335,8 +335,8 @@ void func_800006E8(void) {
gGfxSPTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8;
gGfxSPTask->task.t.output_buff = (u64 *) &gGfxSPTaskOutputBuffer;
gGfxSPTask->task.t.output_buff_size = (u64 *) &gGfxSPTaskOutputBufferSize;
gGfxSPTask->task.t.data_ptr = (u64 *) &gGfxPool->buffer[0x3418];
gGfxSPTask->task.t.data_size = (gDisplayListHead - &gGfxPool->buffer[0x3418]) * sizeof(Gfx);
gGfxSPTask->task.t.data_ptr = (u64 *) gGfxPool->gfxPool;
gGfxSPTask->task.t.data_size = (gDisplayListHead - gGfxPool->gfxPool) * sizeof(Gfx);
func_8008C214();
gGfxSPTask->task.t.yield_data_ptr = (u64 *) &gGfxSPTaskYieldBuffer;
gGfxSPTask->task.t.yield_data_size = 0xD00; /* Not equal to OS_YIELD_DATA_SIZE */
@@ -466,9 +466,9 @@ void *clear_framebuffer(s32 color) {
void rendering_init(void) {
gGfxPool = &gGfxPools[0];
set_segment_base_addr(1, gGfxPool->buffer);
set_segment_base_addr(1, gGfxPool);
gGfxSPTask = &gGfxPool->spTask;
gDisplayListHead = &gGfxPool->buffer[0x3418];
gDisplayListHead = gGfxPool->gfxPool;
func_80000CA8();
clear_framebuffer(0);
func_80000CE8();
@@ -479,8 +479,8 @@ void rendering_init(void) {
void config_gfx_pool(void) {
gGfxPool = &gGfxPools[gGlobalTimer & 1];
set_segment_base_addr(1, gGfxPool->buffer);
gDisplayListHead = &gGfxPool->buffer[0x3418];
set_segment_base_addr(1, gGfxPool);
gDisplayListHead = gGfxPool->gfxPool;
gGfxSPTask = &gGfxPool->spTask;
}
+7 -6
View File
@@ -2,13 +2,14 @@
#define MAIN_H
#include "types.h"
// 20836
// 655
#define GFX_POOL_SIZE 20836
#define MTX_POOL_SIZE 0x0683
#define GFX_POOL_SIZE 0x1D4C
struct GfxPool {
Gfx buffer[GFX_POOL_SIZE];
struct SPTask spTask;
};
/* 0x00000 */ Mtx mtxPool[MTX_POOL_SIZE];
/* 0x1A0C0 */ Gfx gfxPool[GFX_POOL_SIZE];
/* 0x28B20 */ struct SPTask spTask;
}; // size = 0x28B70
extern struct GfxPool *gGfxPool;