diff --git a/assets/xml/objects/object_zl2.xml b/assets/xml/objects/object_zl2.xml
index 9c7a6e681b..71be043317 100644
--- a/assets/xml/objects/object_zl2.xml
+++ b/assets/xml/objects/object_zl2.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/data/z_vr_box.data.s b/data/z_vr_box.data.s
deleted file mode 100644
index 92c30ab5c3..0000000000
--- a/data/z_vr_box.data.s
+++ /dev/null
@@ -1,49 +0,0 @@
-.include "macro.inc"
-
-# assembler directives
-.set noat # allow manual use of $at
-.set noreorder # don't insert nops after branches
-.set gp=64 # allow use of 64-bit general purpose registers
-
-.section .data
-
-.balign 16
-
-glabel D_8012AC90
- .incbin "baserom.z64", 0xBA1E30, 0x10
-
-glabel D_8012ACA0
- .incbin "baserom.z64", 0xBA1E40, 0x80
-
-glabel D_8012AD20
- .incbin "baserom.z64", 0xBA1EC0, 0xC
-
-glabel D_8012AD2C
- .incbin "baserom.z64", 0xBA1ECC, 0x14
-
-glabel D_8012AD40
- .incbin "baserom.z64", 0xBA1EE0, 0x80
-
-glabel D_8012ADC0
- .incbin "baserom.z64", 0xBA1F60, 0x18
-
-glabel D_8012ADD8
- .incbin "baserom.z64", 0xBA1F78, 0x40
-
-glabel D_8012AE18
- .incbin "baserom.z64", 0xBA1FB8, 0xC
-
-glabel D_8012AE24
- .incbin "baserom.z64", 0xBA1FC4, 0xC
-
-glabel D_8012AE30
- .incbin "baserom.z64", 0xBA1FD0, 0xC
-
-glabel D_8012AE3C
- .incbin "baserom.z64", 0xBA1FDC, 0x80
-
-glabel D_8012AEBC
- .incbin "baserom.z64", 0xBA205C, 0x50
-
-glabel D_8012AF0C
- .incbin "baserom.z64", 0xBA20AC, 0x84
diff --git a/include/z64.h b/include/z64.h
index 060ca295ee..000e591d14 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -322,10 +322,11 @@ typedef enum {
typedef struct {
/* 0x000 */ char unk_00[0x128];
- /* 0x128 */ void* staticSegments[3];
- /* 0x134 */ Gfx* dListBuf;
+ /* 0x128 */ void* staticSegments[2];
+ /* 0x130 */ u16 (*palettes)[256];
+ /* 0x134 */ Gfx (*dListBuf)[150];
/* 0x138 */ Gfx* unk_138;
- /* 0x13C */ void* roomVtx;
+ /* 0x13C */ Vtx* roomVtx;
/* 0x140 */ s16 unk_140;
/* 0x144 */ Vec3f rot;
/* 0x150 */ char unk_150[0x10];
@@ -1776,7 +1777,7 @@ typedef struct {
typedef struct {
/* 0x00 */ RomFile file;
- /* 0x08 */ RomFile pallete;
+ /* 0x08 */ RomFile palette;
} SkyboxFile; // size = 0x10
#define ROM_FILE(name) \
diff --git a/include/z64environment.h b/include/z64environment.h
index 6369b95750..b2badccd37 100644
--- a/include/z64environment.h
+++ b/include/z64environment.h
@@ -43,7 +43,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u16 startTime;
/* 0x02 */ u16 endTime;
- /* 0x04 */ u8 blend; // if true, blend between.. skyboxes? palletes?
+ /* 0x04 */ u8 blend; // if true, blend between.. skyboxes? palettes?
/* 0x05 */ u8 skybox1Index; // whats the difference between _pal and non _pal files?
/* 0x06 */ u8 skybox2Index;
} struct_8011FC1C; // size = 0x8
diff --git a/spec b/spec
index b314bee58f..d0a6bb7321 100644
--- a/spec
+++ b/spec
@@ -358,7 +358,6 @@ beginseg
include "build/src/code/z_vismono.o"
include "build/src/code/code_800AD920.o"
include "build/src/code/z_vr_box.o"
- include "build/data/z_vr_box.data.o"
include "build/src/code/z_vr_box_draw.o"
include "build/src/code/z_player_call.o"
include "build/src/code/z_fbdemo.o"
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 92aeeeeaef..9681064f4d 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -696,16 +696,17 @@ void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxCon
envCtx->skyboxDmaState = SKYBOX_DMA_PAL1_START;
if ((newSkybox1Index & 1) ^ ((newSkybox1Index & 4) >> 2)) {
- size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart;
+ size = gSkyboxFiles[newSkybox1Index].palette.vromEnd - gSkyboxFiles[newSkybox1Index].palette.vromStart;
+
osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
- DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2],
- gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->palettes,
+ gSkyboxFiles[newSkybox1Index].palette.vromStart, size, 0, &envCtx->loadQueue, NULL,
"../z_kankyo.c", 1307);
} else {
- size = gSkyboxFiles[newSkybox1Index].pallete.vromEnd - gSkyboxFiles[newSkybox1Index].pallete.vromStart;
+ size = gSkyboxFiles[newSkybox1Index].palette.vromEnd - gSkyboxFiles[newSkybox1Index].palette.vromStart;
osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
- DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size,
- gSkyboxFiles[newSkybox1Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->palettes + size,
+ gSkyboxFiles[newSkybox1Index].palette.vromStart, size, 0, &envCtx->loadQueue, NULL,
"../z_kankyo.c", 1320);
}
}
@@ -714,16 +715,17 @@ void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxCon
envCtx->skyboxDmaState = SKYBOX_DMA_PAL2_START;
if ((newSkybox2Index & 1) ^ ((newSkybox2Index & 4) >> 2)) {
- size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart;
+ size = gSkyboxFiles[newSkybox2Index].palette.vromEnd - gSkyboxFiles[newSkybox2Index].palette.vromStart;
+
osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
- DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2],
- gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->palettes,
+ gSkyboxFiles[newSkybox2Index].palette.vromStart, size, 0, &envCtx->loadQueue, NULL,
"../z_kankyo.c", 1342);
} else {
- size = gSkyboxFiles[newSkybox2Index].pallete.vromEnd - gSkyboxFiles[newSkybox2Index].pallete.vromStart;
+ size = gSkyboxFiles[newSkybox2Index].palette.vromEnd - gSkyboxFiles[newSkybox2Index].palette.vromStart;
osCreateMesgQueue(&envCtx->loadQueue, &envCtx->loadMsg, 1);
- DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->staticSegments[2] + size,
- gSkyboxFiles[newSkybox2Index].pallete.vromStart, size, 0, &envCtx->loadQueue, NULL,
+ DmaMgr_SendRequest2(&envCtx->dmaRequest, (u32)skyboxCtx->palettes + size,
+ gSkyboxFiles[newSkybox2Index].palette.vromStart, size, 0, &envCtx->loadQueue, NULL,
"../z_kankyo.c", 1355);
}
}
diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c
index 4d603ee368..87c0ebd33b 100644
--- a/src/code/z_vr_box.c
+++ b/src/code/z_vr_box.c
@@ -2,6 +2,63 @@
#include "vt.h"
#include "z64environment.h"
+u32 D_8012AC90[4] = {
+ 0x00000000,
+ 0x00010000,
+ 0x00020000,
+ 0x00030000,
+};
+
+u16 D_8012ACA0[2][0x20] = {
+ { 0x00, 0x02, 0x0A, 0x0C, 0x02, 0x04, 0x0C, 0x0E, 0x0A, 0x0C, 0x14, 0x16, 0x0C, 0x0E, 0x16, 0x18,
+ 0x01, 0x03, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0B, 0x0D, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x15, 0x17 },
+ { 0x14, 0x16, 0x1E, 0x20, 0x16, 0x18, 0x20, 0x22, 0x1E, 0x20, 0x28, 0x2A, 0x20, 0x22, 0x2A, 0x2C,
+ 0x15, 0x17, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1F, 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x29, 0x2B },
+};
+
+s16 D_8012AD20[5] = {
+ 0x0000, 0x0FC0, 0x1F80, 0x2F40, 0x3F00,
+};
+
+s16 D_8012AD2C[9] = {
+ 0x0000, 0x07C0, 0x0F80, 0x1740, 0x1F00, 0x26C0, 0x2E80, 0x3640, 0x3E00,
+};
+
+s16 D_8012AD40[0x40] = {
+ 0x00, 0x10, 0x13, 0x12, 0x10, 0x01, 0x14, 0x13, 0x01, 0x11, 0x15, 0x14, 0x11, 0x05, 0x16, 0x15,
+ 0x12, 0x13, 0x17, 0x02, 0x13, 0x14, 0x03, 0x17, 0x14, 0x15, 0x18, 0x03, 0x15, 0x16, 0x07, 0x18,
+ 0x02, 0x17, 0x1A, 0x19, 0x17, 0x03, 0x1B, 0x1A, 0x03, 0x18, 0x1C, 0x1B, 0x18, 0x07, 0x1D, 0x1C,
+ 0x19, 0x1A, 0x1E, 0x0A, 0x1A, 0x1B, 0x0B, 0x1E, 0x1B, 0x1C, 0x1F, 0x0B, 0x1C, 0x1D, 0x0F, 0x1F,
+};
+
+u32 D_8012ADC0[6] = {
+ 0x00000000, 0x00002000, 0x00004000, 0x00006000, 0x00008000, 0x0000C000,
+};
+
+u16 D_8012ADD8[0x20] = {
+ 0x00, 0x02, 0x0A, 0x0C, 0x02, 0x04, 0x0C, 0x0E, 0x0A, 0x0C, 0x14, 0x16, 0x0C, 0x0E, 0x16, 0x18,
+ 0x01, 0x03, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0B, 0x0D, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x15, 0x17,
+};
+
+s16 D_8012AE18[5] = {
+ 0x0000, 0x07C0, 0x0F80, 0x1740, 0x1F00,
+};
+
+s16 D_8012AE24[5] = {
+ 0x0000, 0x07C0, 0x0F80, 0x1740, 0x1F00,
+};
+
+s16 D_8012AE30[5] = {
+ 0x0000, 0x07C0, 0x0F80, 0x07C0, 0x0000,
+};
+
+s16 D_8012AE3C[0x40] = {
+ 0x00, 0x10, 0x13, 0x12, 0x10, 0x01, 0x14, 0x13, 0x01, 0x11, 0x15, 0x14, 0x11, 0x05, 0x16, 0x15,
+ 0x12, 0x13, 0x17, 0x02, 0x13, 0x14, 0x03, 0x17, 0x14, 0x15, 0x18, 0x03, 0x15, 0x16, 0x07, 0x18,
+ 0x02, 0x17, 0x1A, 0x19, 0x17, 0x03, 0x1B, 0x1A, 0x03, 0x18, 0x1C, 0x1B, 0x18, 0x07, 0x1D, 0x1C,
+ 0x19, 0x1A, 0x1E, 0x0A, 0x1A, 0x1B, 0x0B, 0x1E, 0x1B, 0x1C, 0x1F, 0x0B, 0x1C, 0x1D, 0x0F, 0x1F,
+};
+
typedef struct {
/* 0x000 */ s32 unk_0;
/* 0x004 */ s32 unk_4;
@@ -10,23 +67,391 @@ typedef struct {
/* 0x010 */ s32 unk_10;
} Struct_8012AF0C; // size = 0x14
-extern Struct_8012AF0C D_8012AF0C[6];
-extern Struct_8012AF0C D_8012AEBC[4];
-extern struct_8011FC1C D_8011FC1C[][9];
+Struct_8012AF0C D_8012AEBC[4] = {
+ { -0x7E, 0x7C, -0x7E, 0x3F, -0x1F },
+ { 0x7E, 0x7C, -0x7E, 0x3F, -0x1F },
+ { 0x7E, 0x7C, 0x7E, -0x3F, -0x1F },
+ { -0x7E, 0x7C, 0x7E, -0x3F, -0x1F },
+};
-typedef struct {
- /* 0x00 */ u32 unk_0; // start
- /* 0x04 */ u32 unk_4; // end
- /* 0x08 */ u32 unk_8; // pal start
- /* 0x0C */ u32 unk_C; // pal end
-} Struct_8011FD3C; // size = 0x10
+Struct_8012AF0C D_8012AF0C[6] = {
+ { -0x40, 0x40, -0x40, 0x20, -0x20 }, { 0x40, 0x40, 0x40, -0x20, -0x20 }, { -0x40, 0x40, 0x40, -0x20, -0x20 },
+ { 0x40, 0x40, -0x40, 0x20, -0x20 }, { -0x40, 0x40, 0x40, 0x20, -0x20 }, { -0x40, -0x40, -0x40, 0x20, 0x20 },
+};
+#ifdef NON_MATCHING
+// Loops have very strange structure. In principle, they're the double loop over a 2D array shown below them.
+// However, that gives wildly different codegen and the part after the switch suggests a linear array.
+s32 func_800ADBB0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7,
+ s32 arg8, s32 arg9) {
+ u32 pad42C;
+ // 42C
+ s32 pad428;
+ // 428
+ s32 sp424;
+ s32 pad420;
+ // 420
+ s32 i;
+ // 41C
+ s32 j;
+ // 418
+ u16 index;
+ s16 phi_t1;
+ // 414
+ s16 phi_a2_4;
+ s16 phi_a0_4;
+ // 410
+ s16 phi_t2_4;
+ s16 phi_ra;
+ // 40C
+ s32 sp358[9 * 5];
+ s32 sp2A4[9 * 5];
+ s32 sp1F0[9 * 5];
+ s32 sp13C[9 * 5];
+ s32 sp88[9 * 5];
+ s32* temp358;
+ s32* temp2A4;
+ s32* temp1F0;
+ s32* temp13C;
+ s32* temp88;
+ s16 temp3;
+
+ switch (arg8) {
+ case 0:
+ case 2:
+ temp358 = sp358;
+ temp2A4 = sp2A4;
+ temp1F0 = sp1F0;
+ temp13C = sp13C;
+ temp88 = sp88;
+ pad428 = arg4;
+
+ for (i = 0; temp88 < sp88 + 45; pad428 += arg7, i++) {
+ pad42C = arg3;
+ temp3 = D_8012AD2C[i];
+ for (j = 0; j < 5; j++, pad42C += arg6) {
+ *(temp358++) = pad42C;
+ *(temp2A4++) = pad428;
+ *(temp1F0++) = arg5;
+ *(temp13C++) = D_8012AD20[j];
+ *(temp88++) = temp3;
+ }
+ }
+ // for (i = 0; i < 9; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp358[i][j] = arg3 + j * arg6;
+ // sp2A4[i][j] = arg4 + i * arg7;
+ // sp1F0[i][j] = arg5;
+ // sp13C[i][j] = D_8012AD20[j];
+ // sp88[i][j] = D_8012AD2C[i];
+ // }
+ // }
+ break;
+ case 1:
+ case 3:
+ temp358 = sp358;
+ temp2A4 = sp2A4;
+ temp1F0 = sp1F0;
+ temp13C = sp13C;
+ temp88 = sp88;
+ pad428 = arg4;
+
+ for (i = 0; temp88 < sp88 + 9 * 5; pad428 += arg7, i++) {
+ pad42C = arg5;
+ temp3 = D_8012AD2C[i];
+ for (j = 0; j < 5; j++, pad42C += arg6) {
+ *(temp358++) = arg3;
+ *(temp2A4++) = pad428;
+ *(temp1F0++) = pad42C;
+ *(temp13C++) = D_8012AD20[j];
+ *(temp88++) = temp3;
+ }
+ }
+ // for (i = 0; i < 9; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp358[i][j] = arg3;
+ // sp2A4[i][j] = arg4 + i * arg7;
+ // sp1F0[i][j] = arg5 + j * arg6;
+ // sp13C[i][j] = D_8012AD20[j];
+ // sp88[i][j] = D_8012AD2C[i];
+ // }
+ // }
+ break;
+ case 4:
+ case 5:
+ temp358 = sp358;
+ temp2A4 = sp2A4;
+ temp1F0 = sp1F0;
+ temp13C = sp13C;
+ temp88 = sp88;
+ pad428 = arg5;
+
+ for (i = 0; temp88 < sp88 + 9 * 5; pad428 += arg7, i++) {
+ pad42C = arg3;
+ temp3 = D_8012AD2C[i];
+ for (j = 0; j < 5; j++, pad42C += arg6) {
+ *(temp358++) = pad42C;
+ *(temp2A4++) = arg4;
+ *(temp1F0++) = pad428;
+ *(temp13C++) = D_8012AD20[j];
+ *(temp88++) = temp3;
+ }
+ }
+ // for (i = 0; i < 9; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp358[i][j] = arg3 + j * arg6;
+ // sp2A4[i][j] = arg4;
+ // sp1F0[i][j] = arg5 + i * arg7;
+ // sp13C[i][j] = D_8012AD20[j];
+ // sp88[i][j] = D_8012AD2C[i];
+ // }
+ // }
+ break;
+ }
+
+ for (phi_a2_4 = 0, sp424 = 0; sp424 < 2; sp424++) {
+ skyboxCtx->unk_138 = skyboxCtx->dListBuf[arg9 + sp424];
+
+ for (pad420 = 0; pad420 < 0x20; pad420++) {
+ index = D_8012ACA0[sp424][pad420];
+
+ roomVtx[arg2 + pad420].v.ob[0] = sp358[index];
+ roomVtx[arg2 + pad420].v.ob[1] = sp2A4[index];
+ roomVtx[arg2 + pad420].v.ob[2] = sp1F0[index];
+ roomVtx[arg2 + pad420].v.flag = 0;
+ roomVtx[arg2 + pad420].v.tc[0] = sp13C[index];
+ roomVtx[arg2 + pad420].v.tc[1] = sp88[index];
+ roomVtx[arg2 + pad420].v.cn[1] = 0;
+ roomVtx[arg2 + pad420].v.cn[2] = 0;
+ roomVtx[arg2 + pad420].v.cn[0] = 255;
+ }
+ gSPVertex(skyboxCtx->unk_138++, &roomVtx[arg2], 32, 0);
+ arg2 += pad420;
+ gSPCullDisplayList(skyboxCtx->unk_138++, 0, 15);
+
+ for (phi_t2_4 = 0, phi_ra = 0; phi_ra < 4; phi_ra++, phi_a2_4 += 0x1F) {
+ for (phi_a0_4 = 0, phi_t1 = 0; phi_t1 < 4; phi_t1++, phi_a0_4 += 0x3F, phi_t2_4 += 4) {
+ gDPLoadTextureTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[0] + D_8012AC90[arg8],
+ G_IM_FMT_CI, G_IM_SIZ_8b, 256, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x3F,
+ phi_a2_4 + 0x1F, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
+ gSP1Quadrangle(skyboxCtx->unk_138++, D_8012AD40[phi_t2_4 + 1], D_8012AD40[phi_t2_4 + 2],
+ D_8012AD40[phi_t2_4 + 3], D_8012AD40[phi_t2_4 + 0], 3);
+ }
+ }
+ gSPEndDisplayList(skyboxCtx->unk_138++);
+ }
+ return arg2;
+}
+#else
s32 func_800ADBB0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, s32,
s32);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vr_box/func_800ADBB0.s")
+#endif
+#ifdef NON_MATCHING
+// Loops have very strange structure. In principle, they're the double loop over a 2D array shown below them.
+// However, that gives wildly different codegen and the part after the switch suggests a linear array.
+s32 func_800AE2C0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7,
+ s32 arg8) {
+ s32 pad334;
+ s32 pad330;
+ s32 i;
+ // 32C
+ s32 j;
+ // 328
+ s16 phi_a2_4;
+ s16 phi_a0_4;
+ // 324
+ s16 phi_t1;
+ u16 index;
+ // 320
+ s16 sp320;
+ s16 sp31E;
+ // 31C
+ s16 phi_t2_4;
+ s16 phi_ra;
+ // 318
+ s32 sp2B4[5 * 5];
+ s32 sp250[5 * 5];
+ s32 sp1EC[5 * 5];
+ s32 sp188[5 * 5];
+ s32 sp124[5 * 5];
+ s32* temp2B4;
+ s32* temp250;
+ s32* temp1EC;
+ s32* temp188;
+ s32* temp124;
+ s32 temp1;
+ s32 temp2;
+ s16 temp3;
+
+ switch (arg8) {
+ case 0:
+ case 1:
+ temp2B4 = sp2B4;
+ temp250 = sp250;
+ temp1EC = sp1EC;
+ temp188 = sp188;
+ temp124 = sp124;
+ temp1 = arg4;
+
+ for (i = 0; temp124 < sp124 + 5 * 5; temp1 += arg7, i++) {
+ temp2 = arg3;
+ temp3 = D_8012AE30[i];
+ for (j = 0; j < 5; j++, temp2 += arg6) {
+ *(temp2B4++) = temp2;
+ *(temp250++) = temp1;
+ *(temp1EC++) = arg5;
+ *(temp188++) = D_8012AE18[j];
+ *(temp124++) = temp3;
+ }
+ }
+ // for (i = 0; i < 5; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp2B4[i][j] = arg3 + j * arg6;
+ // sp250[i][j] = arg4 + i * arg7;
+ // sp1EC[i][j] = arg5;
+ // sp188[i][j] = D_8012AE18[j];
+ // sp124[i][j] = D_8012AE30[i];
+ // }
+ // }
+ break;
+ case 2:
+ case 3:
+ temp2B4 = sp2B4;
+ temp250 = sp250;
+ temp1EC = sp1EC;
+ temp188 = sp188;
+ temp124 = sp124;
+ temp1 = arg4;
+
+ for (i = 0; temp124 < sp124 + 5 * 5; temp1 += arg7, i++) {
+ temp2 = arg5;
+ temp3 = D_8012AE30[i];
+ for (j = 0; j < 5; j++, temp2 += arg6) {
+ *(temp2B4++) = arg3;
+ *(temp250++) = temp1;
+ *(temp1EC++) = temp2;
+ *(temp188++) = D_8012AE18[j];
+ *(temp124++) = temp3;
+ }
+ }
+ // for (i = 0; i < 5; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp2B4[i][j] = arg3;
+ // sp250[i][j] = arg4 + i * arg7;
+ // sp1EC[i][j] = arg5 + j * arg6;
+ // sp188[i][j] = D_8012AE18[j];
+ // sp124[i][j] = D_8012AE30[i];
+ // }
+ // }
+ break;
+ case 4:
+ case 5:
+ temp2B4 = sp2B4;
+ temp250 = sp250;
+ temp1EC = sp1EC;
+ temp188 = sp188;
+ temp124 = sp124;
+ temp1 = arg5;
+
+ for (i = 0; temp124 < sp124 + 5 * 5; temp1 += arg7, i++) {
+ temp2 = arg3;
+ temp3 = D_8012AE24[i];
+ for (j = 0; j < 5; j++, temp2 += arg6) {
+ *(temp2B4++) = temp2;
+ *(temp250++) = arg4;
+ *(temp1EC++) = temp1;
+ *(temp188++) = D_8012AE18[j];
+ *(temp124++) = temp3;
+ }
+ }
+ // for (i = 0; i < 5; i++) {
+ // for (j = 0; j < 5; j++) {
+ // sp2B4[i][j] = arg3 + j * arg6;
+ // sp250[i][j] = arg4;
+ // sp1EC[i][j] = arg5 + i * arg7;
+ // sp188[i][j] = D_8012AE18[j];
+ // sp124[i][j] = D_8012AE24[i];
+ // }
+ // }
+ break;
+ }
+ skyboxCtx->unk_138 = &skyboxCtx->dListBuf[2 * arg8];
+
+ for (pad330 = 0; pad330 < 0x20; pad330++) {
+ index = D_8012ADD8[pad330];
+
+ roomVtx[arg2 + pad330].v.ob[0] = sp2B4[index];
+ roomVtx[arg2 + pad330].v.ob[1] = sp250[index];
+ roomVtx[arg2 + pad330].v.ob[2] = sp1EC[index];
+ roomVtx[arg2 + pad330].v.flag = 0;
+ roomVtx[arg2 + pad330].v.tc[0] = sp188[index];
+ roomVtx[arg2 + pad330].v.tc[1] = sp124[index];
+ roomVtx[arg2 + pad330].v.cn[1] = 0;
+ roomVtx[arg2 + pad330].v.cn[2] = 0;
+ roomVtx[arg2 + pad330].v.cn[0] = 255;
+ }
+ gSPVertex(skyboxCtx->unk_138++, &roomVtx[arg2], 32, 0);
+ arg2 += pad330;
+ gSPCullDisplayList(skyboxCtx->unk_138++, 0, 15);
+
+ if ((arg8 == 4) || (arg8 == 5)) {
+ phi_a2_4 = 0;
+ for (phi_t2_4 = 0, phi_ra = 0; phi_ra < 4; phi_ra++, phi_a2_4 += 0x1F) {
+ for (phi_a0_4 = 0, phi_t1 = 0; phi_t1 < 4; phi_t1++, phi_a0_4 += 0x1F, phi_t2_4 += 4) {
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[0] + D_8012ADC0[arg8], 0,
+ G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F,
+ phi_a2_4 + 0x1F, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[1] + D_8012ADC0[arg8], 0x80, 1,
+ G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F, phi_a2_4 + 0x1F,
+ 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gSP1Quadrangle(skyboxCtx->unk_138++, D_8012AE3C[phi_t2_4 + 1], D_8012AE3C[phi_t2_4 + 2],
+ D_8012AE3C[phi_t2_4 + 3], D_8012AE3C[phi_t2_4 + 0], 3);
+ }
+ }
+ } else {
+ phi_a2_4 = 0;
+ for (phi_t2_4 = 0, phi_ra = 0; phi_ra < 2; phi_ra++, phi_a2_4 += 0x1F) {
+ for (phi_a0_4 = 0, phi_t1 = 0; phi_t1 < 4; phi_t1++, phi_a0_4 += 0x1F, phi_t2_4 += 4) {
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[0] + D_8012ADC0[arg8], 0,
+ G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F,
+ phi_a2_4 + 0x1F, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[1] + D_8012ADC0[arg8], 0x80, 1,
+ G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F, phi_a2_4 + 0x1F,
+ 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gSP1Quadrangle(skyboxCtx->unk_138++, D_8012AE3C[phi_t2_4 + 1], D_8012AE3C[phi_t2_4 + 2],
+ D_8012AE3C[phi_t2_4 + 3], D_8012AE3C[phi_t2_4 + 0], 3);
+ }
+ }
+ phi_a2_4 -= 0x1F;
+ for (phi_ra = 0; phi_ra < 2; phi_ra++, phi_a2_4 -= 0x1F) {
+ for (phi_a0_4 = 0, phi_t1 = 0; phi_t1 < 4; phi_t1++, phi_a0_4 += 0x1F, phi_t2_4 += 4) {
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[0] + D_8012ADC0[arg8], 0,
+ G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F,
+ phi_a2_4 + 0x1F, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
+ gDPLoadMultiTile(skyboxCtx->unk_138++, (u32)skyboxCtx->staticSegments[1] + D_8012ADC0[arg8], 0x80, 1,
+ G_IM_FMT_CI, G_IM_SIZ_8b, 128, 0, phi_a0_4, phi_a2_4, phi_a0_4 + 0x1F, phi_a2_4 + 0x1F,
+ 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMASK, G_TX_NOLOD);
+ gSP1Quadrangle(skyboxCtx->unk_138++, D_8012AE3C[phi_t2_4 + 1], D_8012AE3C[phi_t2_4 + 2],
+ D_8012AE3C[phi_t2_4 + 3], D_8012AE3C[phi_t2_4 + 0], 3);
+ }
+ }
+ }
+ gSPEndDisplayList(skyboxCtx->unk_138++);
+ return arg2;
+}
+#else
s32 func_800AE2C0(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE, s32);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_vr_box/func_800AE2C0.s")
+#endif
void func_800AEFC8(SkyboxContext* skyboxCtx, s16 skyboxId) {
s32 i;
@@ -112,27 +537,27 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
1064);
if ((sp41 & 1) ^ ((sp41 & 4) >> 2)) {
- size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1072);
+ size = gSkyboxFiles[sp41].palette.vromEnd - gSkyboxFiles[sp41].palette.vromStart;
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1072);
+
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1073);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp41].pallete.vromStart, size,
- "../z_vr_box.c", 1075);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp40].pallete.vromStart,
- size, "../z_vr_box.c", 1077);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, gSkyboxFiles[sp41].palette.vromStart, size, "../z_vr_box.c", 1075);
+ DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gSkyboxFiles[sp40].palette.vromStart, size,
+ "../z_vr_box.c", 1077);
} else {
- size = gSkyboxFiles[sp41].pallete.vromEnd - gSkyboxFiles[sp41].pallete.vromStart;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1085);
+ size = gSkyboxFiles[sp41].palette.vromEnd - gSkyboxFiles[sp41].palette.vromStart;
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1085);
+
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1086);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], gSkyboxFiles[sp40].pallete.vromStart, size,
- "../z_vr_box.c", 1088);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, gSkyboxFiles[sp41].pallete.vromStart,
- size, "../z_vr_box.c", 1090);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, gSkyboxFiles[sp40].palette.vromStart, size, "../z_vr_box.c", 1088);
+ DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, gSkyboxFiles[sp41].palette.vromStart, size,
+ "../z_vr_box.c", 1090);
}
break;
@@ -149,11 +574,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_SP1a_pal_staticSegmentRomStart;
size = _vr_SP1a_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1132);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1132);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1133);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1134);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1134);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_OVERCAST_SUNSET:
@@ -173,12 +598,12 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_cloud2_pal_staticSegmentRomStart;
size = _vr_cloud2_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1170);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1170);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1171);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1173);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, start, size, "../z_vr_box.c", 1175);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1173);
+ DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, start, size, "../z_vr_box.c", 1175);
break;
case SKYBOX_MARKET_ADULT:
skyboxCtx->unk_140 = 1;
@@ -195,11 +620,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
size = _vr_RUVR_pal_staticSegmentRomEnd - start;
osSyncPrintf("SIZE = %d\n", size);
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1188);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1188);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1189);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1190);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1190);
break;
case SKYBOX_CUTSCENE_MAP:
start = _vr_holy0_staticSegmentRomStart;
@@ -220,12 +645,12 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_holy0_pal_staticSegmentRomStart;
size = _vr_holy0_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1211);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size * 2, "../z_vr_box.c", 1211);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1212);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1214);
- DmaMgr_SendRequest1((u32)skyboxCtx->staticSegments[2] + size, _vr_holy1_pal_staticSegmentRomStart, size,
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1214);
+ DmaMgr_SendRequest1((u32)skyboxCtx->palettes + size, _vr_holy1_pal_staticSegmentRomStart, size,
"../z_vr_box.c", 1216);
break;
case SKYBOX_HOUSE_LINK:
@@ -241,11 +666,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_LHVR_pal_staticSegmentRomStart;
size = _vr_LHVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1231);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1231);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1232);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1233);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1233);
break;
case SKYBOX_MARKET_CHILD_DAY:
skyboxCtx->unk_140 = 1;
@@ -260,11 +685,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_MDVR_pal_staticSegmentRomStart;
size = _vr_MDVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1262);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1262);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1263);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1264);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1264);
break;
case SKYBOX_MARKET_CHILD_NIGHT:
skyboxCtx->unk_140 = 1;
@@ -281,11 +706,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
size = _vr_MNVR_pal_staticSegmentRomEnd - start;
osSyncPrintf("SIZE = %d\n", size);
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1277);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1277);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1278);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1279);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1279);
break;
case SKYBOX_HAPPY_MASK_SHOP:
skyboxCtx->unk_140 = 1;
@@ -300,11 +725,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_FCVR_pal_staticSegmentRomStart;
size = _vr_FCVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1291);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1291);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1292);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1293);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1293);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_HOUSE_KNOW_IT_ALL_BROTHERS:
@@ -320,11 +745,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_KHVR_pal_staticSegmentRomStart;
size = _vr_KHVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1306);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1306);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1307);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1308);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1308);
break;
case SKYBOX_HOUSE_OF_TWINS:
skyboxCtx->unk_140 = 2;
@@ -339,11 +764,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_K3VR_pal_staticSegmentRomStart;
size = _vr_K3VR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1336);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1336);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1337);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1338);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1338);
break;
case SKYBOX_STABLES:
skyboxCtx->unk_140 = 1;
@@ -358,11 +783,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_MLVR_pal_staticSegmentRomStart;
size = _vr_MLVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1350);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1350);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1351);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1352);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1352);
break;
case SKYBOX_HOUSE_KAKARIKO:
skyboxCtx->unk_140 = 1;
@@ -377,11 +802,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_KKRVR_pal_staticSegmentRomStart;
size = _vr_KKRVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1364);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1364);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1365);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1366);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1366);
break;
case SKYBOX_KOKIRI_SHOP:
skyboxCtx->unk_140 = 1;
@@ -396,11 +821,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_KSVR_pal_staticSegmentRomStart;
size = _vr_KSVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1378);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1378);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1379);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1380);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1380);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_GORON_SHOP:
@@ -416,11 +841,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_GLVR_pal_staticSegmentRomStart;
size = _vr_GLVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1410);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1410);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1411);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1412);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1412);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_ZORA_SHOP:
@@ -436,11 +861,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_ZRVR_pal_staticSegmentRomStart;
size = _vr_ZRVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1425);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1425);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1426);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1427);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1427);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_POTION_SHOP_KAKARIKO:
@@ -456,11 +881,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_DGVR_pal_staticSegmentRomStart;
size = _vr_DGVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1456);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1456);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1457);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1458);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1458);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_POTION_SHOP_MARKET:
@@ -476,11 +901,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_ALVR_pal_staticSegmentRomStart;
size = _vr_ALVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1471);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1471);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1472);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1473);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1473);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_BOMBCHU_SHOP:
@@ -496,11 +921,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_NSVR_pal_staticSegmentRomStart;
size = _vr_NSVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1486);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1486);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1487);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1488);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1488);
skyboxCtx->rot.y = 0.8f;
break;
case SKYBOX_HOUSE_RICHARD:
@@ -516,11 +941,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_IPVR_pal_staticSegmentRomStart;
size = _vr_IPVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1517);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1517);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1518);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1519);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1519);
break;
case SKYBOX_HOUSE_IMPA:
skyboxCtx->unk_140 = 1;
@@ -535,11 +960,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_LBVR_pal_staticSegmentRomStart;
size = _vr_LBVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1531);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1531);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1532);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1533);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1533);
break;
case SKYBOX_TENT:
skyboxCtx->unk_140 = 2;
@@ -554,11 +979,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_TTVR_pal_staticSegmentRomStart;
size = _vr_TTVR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1545);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1545);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1546);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1547);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1547);
break;
case SKYBOX_HOUSE_MIDO:
skyboxCtx->unk_140 = 2;
@@ -573,11 +998,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_K4VR_pal_staticSegmentRomStart;
size = _vr_K4VR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1565);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1565);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1566);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1567);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1567);
break;
case SKYBOX_HOUSE_SARIA:
skyboxCtx->unk_140 = 2;
@@ -592,11 +1017,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_K5VR_pal_staticSegmentRomStart;
size = _vr_K5VR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1579);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1579);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1580);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1581);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1581);
break;
case SKYBOX_HOUSE_ALLEY:
skyboxCtx->unk_140 = 2;
@@ -611,11 +1036,11 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
start = _vr_KR3VR_pal_staticSegmentRomStart;
size = _vr_KR3VR_pal_staticSegmentRomEnd - start;
- skyboxCtx->staticSegments[2] = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1593);
- ASSERT(skyboxCtx->staticSegments[2] != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
+ skyboxCtx->palettes = GameState_Alloc(&globalCtx->state, size, "../z_vr_box.c", 1593);
+ ASSERT(skyboxCtx->palettes != NULL, "vr_box->vr_box_staticSegment[2] != NULL", "../z_vr_box.c",
1594);
- DmaMgr_SendRequest1(skyboxCtx->staticSegments[2], start, size, "../z_vr_box.c", 1595);
+ DmaMgr_SendRequest1(skyboxCtx->palettes, start, size, "../z_vr_box.c", 1595);
break;
case SKYBOX_UNSET_27:
break;
@@ -624,9 +1049,7 @@ void Skybox_Setup(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skybox
void Skybox_Init(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyboxId) {
skyboxCtx->unk_140 = 0;
- skyboxCtx->rot.x = 0.0f;
- skyboxCtx->rot.y = 0.0f;
- skyboxCtx->rot.z = 0.0f;
+ skyboxCtx->rot.x = skyboxCtx->rot.y = skyboxCtx->rot.z = 0.0f;
Skybox_Setup(globalCtx, skyboxCtx, skyboxId);
osSyncPrintf("\n\n\n********************\n\n\n"
@@ -638,7 +1061,7 @@ void Skybox_Init(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyboxI
osSyncPrintf(VT_FGCOL(GREEN));
if (skyboxCtx->unk_140 != 0) {
- skyboxCtx->dListBuf = GameState_Alloc(&globalCtx->state, 1200 * sizeof(Gfx), "../z_vr_box.c", 1636);
+ skyboxCtx->dListBuf = GameState_Alloc(&globalCtx->state, 8 * 150 * sizeof(Gfx), "../z_vr_box.c", 1636);
ASSERT(skyboxCtx->dListBuf != NULL, "vr_box->dpList != NULL", "../z_vr_box.c", 1637);
skyboxCtx->roomVtx = GameState_Alloc(&globalCtx->state, 256 * sizeof(Vtx), "../z_vr_box.c", 1639);
@@ -646,7 +1069,7 @@ void Skybox_Init(GlobalContext* globalCtx, SkyboxContext* skyboxCtx, s16 skyboxI
func_800AEFC8(skyboxCtx, skyboxId);
} else {
- skyboxCtx->dListBuf = GameState_Alloc(&globalCtx->state, 1800 * sizeof(Gfx), "../z_vr_box.c", 1643);
+ skyboxCtx->dListBuf = GameState_Alloc(&globalCtx->state, 12 * 150 * sizeof(Gfx), "../z_vr_box.c", 1643);
ASSERT(skyboxCtx->dListBuf != NULL, "vr_box->dpList != NULL", "../z_vr_box.c", 1644);
if (skyboxId == SKYBOX_CUTSCENE_MAP) {
diff --git a/src/code/z_vr_box_draw.c b/src/code/z_vr_box_draw.c
index 14ad03d662..85f7894aeb 100644
--- a/src/code/z_vr_box_draw.c
+++ b/src/code/z_vr_box_draw.c
@@ -18,7 +18,7 @@ void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyb
gSPSegment(POLY_OPA_DISP++, 0x7, skyboxCtx->staticSegments[0]);
gSPSegment(POLY_OPA_DISP++, 0x8, skyboxCtx->staticSegments[1]);
- gSPSegment(POLY_OPA_DISP++, 0x9, skyboxCtx->staticSegments[2]);
+ gSPSegment(POLY_OPA_DISP++, 0x9, skyboxCtx->palettes);
gDPSetPrimColor(POLY_OPA_DISP++, 0x00, 0x00, 0, 0, 0, blend);
gSPTexture(POLY_OPA_DISP++, 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON);
@@ -36,44 +36,42 @@ void SkyboxDraw_Draw(SkyboxContext* skyboxCtx, GraphicsContext* gfxCtx, s16 skyb
gDPSetColorDither(POLY_OPA_DISP++, G_CD_MAGICSQ);
gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_BILERP);
- gDPLoadTLUT_pal256(POLY_OPA_DISP++, skyboxCtx->staticSegments[2]);
+ gDPLoadTLUT_pal256(POLY_OPA_DISP++, skyboxCtx->palettes[0]);
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_RGBA16);
gDPSetTextureConvert(POLY_OPA_DISP++, G_TC_FILT);
if (skyboxCtx->unk_140) {
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 1);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[0]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[1]);
gDPPipeSync(POLY_OPA_DISP++);
-
- gDPLoadTLUT_pal256(POLY_OPA_DISP++, (u16*)skyboxCtx->staticSegments[2] + 256 * 1);
-
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 2);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 3);
+ gDPLoadTLUT_pal256(POLY_OPA_DISP++, skyboxCtx->palettes[1]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[2]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[3]);
if (skyboxId != SKYBOX_BAZAAR) {
if (skyboxId <= SKYBOX_HOUSE_KAKARIKO || skyboxId > SKYBOX_BOMBCHU_SHOP) {
gDPPipeSync(POLY_OPA_DISP++);
- gDPLoadTLUT_pal256(POLY_OPA_DISP++, (u16*)skyboxCtx->staticSegments[2] + 256 * 2);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 4);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 5);
- gDPPipeSync(POLY_OPA_DISP++);
+ gDPLoadTLUT_pal256(POLY_OPA_DISP++, skyboxCtx->palettes[2]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[4]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[5]);
+ gDPPipeSync(POLY_OPA_DISP++);
if (skyboxCtx->unk_140 != 2) {
- gDPLoadTLUT_pal256(POLY_OPA_DISP++, (u16*)skyboxCtx->staticSegments[2] + 256 * 3);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 6);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 7);
+ gDPLoadTLUT_pal256(POLY_OPA_DISP++, skyboxCtx->palettes[3]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[6]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[7]);
}
}
}
} else {
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 2);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 4);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 6);
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 8);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[0]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[2]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[4]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[6]);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[8]);
if (skyboxId == SKYBOX_CUTSCENE_MAP) {
- gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf + 150 * 10);
+ gSPDisplayList(POLY_OPA_DISP++, skyboxCtx->dListBuf[10]);
}
}