summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler McGavran <tyler.taggerung@gmail.com>2022-01-09 22:02:34 -0500
committerGitHub <noreply@github.com>2022-01-09 20:02:34 -0700
commitdd05d49f5f854cbd98a2995efa02db6935923636 (patch)
tree86edec090da89e89d346ba6a65dd91dbefe56623 /src
parentbc99dedb8bc0d8a1f6fed20e36ed60a3ed70b01b (diff)
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>
Diffstat (limited to 'src')
-rw-r--r--src/code_80040E50.c164
-rw-r--r--src/code_80040E50.h11
-rw-r--r--src/code_800431B0.c57
-rw-r--r--src/code_80057C60.c32
-rw-r--r--src/code_80091750.c599
-rw-r--r--src/code_80091750.h48
-rw-r--r--src/code_800AF9B0.h1
-rw-r--r--src/code_80280000.c8
-rw-r--r--src/code_80280650.c13
-rw-r--r--src/code_80281C40.c8
-rw-r--r--src/code_802A3730.c116
-rw-r--r--src/gbiMacro.c4
-rw-r--r--src/main.c12
-rw-r--r--src/main.h13
14 files changed, 459 insertions, 627 deletions
diff --git a/src/code_80040E50.c b/src/code_80040E50.c
index 19c0526f9..ff7767a79 100644
--- a/src/code_80040E50.c
+++ b/src/code_80040E50.c
@@ -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
+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
-//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
+? func_80022180(s32, ? *, s32 *); /* extern */
+? func_80041A78(? *, s32, ?); /* extern */
+extern s32 D_8018D120;
extern void *gDisplayListHead;
+extern s32 gGfxPool;
-void func_80041EF4(void) {
+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
diff --git a/src/code_80040E50.h b/src/code_80040E50.h
new file mode 100644
index 000000000..0f5015d70
--- /dev/null
+++ b/src/code_80040E50.h
@@ -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 \ No newline at end of file
diff --git a/src/code_800431B0.c b/src/code_800431B0.c
index 16f66f07f..4052f3168 100644
--- a/src/code_800431B0.c
+++ b/src/code_800431B0.c
@@ -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);
}
diff --git a/src/code_80057C60.c b/src/code_80057C60.c
index 5192b92f5..abd9bcd80 100644
--- a/src/code_80057C60.c
+++ b/src/code_80057C60.c
@@ -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);
}
diff --git a/src/code_80091750.c b/src/code_80091750.c
index f49aefb3a..d5d79122f 100644
--- a/src/code_80091750.c
+++ b/src/code_80091750.c
@@ -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")
diff --git a/src/code_80091750.h b/src/code_80091750.h
index 404f2bf48..ea57ed5ae 100644
--- a/src/code_80091750.h
+++ b/src/code_80091750.h
@@ -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
diff --git a/src/code_800AF9B0.h b/src/code_800AF9B0.h
index 535298cb6..46f7ab4ef 100644
--- a/src/code_800AF9B0.h
+++ b/src/code_800AF9B0.h
@@ -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);
diff --git a/src/code_80280000.c b/src/code_80280000.c
index 5ab7f74f3..4beb8d9db 100644
--- a/src/code_80280000.c
+++ b/src/code_80280000.c
@@ -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);
diff --git a/src/code_80280650.c b/src/code_80280650.c
index fa30634f2..e94d72c2f 100644
--- a/src/code_80280650.c
+++ b/src/code_80280650.c
@@ -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")
diff --git a/src/code_80281C40.c b/src/code_80281C40.c
index b2ef6bf8d..b14f2781c 100644
--- a/src/code_80281C40.c
+++ b/src/code_80281C40.c
@@ -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);
diff --git a/src/code_802A3730.c b/src/code_802A3730.c
index 88e06db69..ddfa1a8b2 100644
--- a/src/code_802A3730.c
+++ b/src/code_802A3730.c
@@ -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);
}
diff --git a/src/gbiMacro.c b/src/gbiMacro.c
index 610cd8678..ca925951e 100644
--- a/src/gbiMacro.c
+++ b/src/gbiMacro.c
@@ -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);
diff --git a/src/main.c b/src/main.c
index 5370cce47..bbccb7747 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}
diff --git a/src/main.h b/src/main.h
index 0398c1730..cd15cbb32 100644
--- a/src/main.h
+++ b/src/main.h
@@ -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;