summaryrefslogtreecommitdiff
path: root/libs/JSystem/J3DGraphBase/J3DSys.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2022-04-23 15:38:37 -0700
committerJasper St. Pierre <jstpierre@mecheye.net>2022-04-23 15:38:37 -0700
commit5e47481d7ffb5f78073dbc06c7bafa20b97d492a (patch)
treea848fb3713b4d943250eaa1b59013597354512f5 /libs/JSystem/J3DGraphBase/J3DSys.cpp
parent28b51b60108c23cbd98e53f5f857a563941b9320 (diff)
J3DSys::J3DSys
Diffstat (limited to 'libs/JSystem/J3DGraphBase/J3DSys.cpp')
-rw-r--r--libs/JSystem/J3DGraphBase/J3DSys.cpp46
1 files changed, 34 insertions, 12 deletions
diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp
index d1280fc86b..818f07209c 100644
--- a/libs/JSystem/J3DGraphBase/J3DSys.cpp
+++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp
@@ -38,10 +38,10 @@ extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */];
extern void J3DFifoLoadTexCached(GXTexMapID, u32, GXTexCacheSize, u32, GXTexCacheSize);
-extern "C" void makeTexCoordTable__Fv();
-extern "C" void makeAlphaCmpTable__Fv();
-extern "C" void makeZModeTable__Fv();
-extern "C" void makeTevSwapTable__Fv();
+extern void makeTexCoordTable();
+extern void makeAlphaCmpTable();
+extern void makeZModeTable();
+extern void makeTevSwapTable();
extern "C" void GXInvalidateVtxCache();
extern "C" void GXFlush();
extern "C" void _savegpr_25();
@@ -73,17 +73,39 @@ Vec J3DSys::mCurrentS;
Vec J3DSys::mParentS;
/* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */
-u16 J3DSys::sTexCoordScaleTable[34];
+u16 J3DSys::sTexCoordScaleTable[32];
/* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm J3DSys::J3DSys() {
- nofralloc
-#include "asm/JSystem/J3DGraphBase/J3DSys/__ct__6J3DSysFv.s"
+J3DSys::J3DSys() {
+ makeTexCoordTable();
+ makeTevSwapTable();
+ makeAlphaCmpTable();
+ makeZModeTable();
+
+ mFlags = 0;
+ PSMTXIdentity(mViewMtx);
+ mDrawMode = 1;
+ mMaterialMode = 0;
+ mModel = NULL;
+ mShape = NULL;
+ for (u32 i = 0; i < ARRAY_SIZE(mDrawBuffer); i++)
+ mDrawBuffer[i] = NULL;
+ mTexture = NULL;
+ mMatPacket = NULL;
+ mShapePacket = NULL;
+ mModelDrawMtx = NULL;
+ mModelNrmMtx = NULL;
+ mVtxPos = NULL;
+ mVtxNrm = NULL;
+ mVtxCol = NULL;
+
+ for (u32 i = 0; i < 32; i += 4) {
+ sTexCoordScaleTable[i + 0] = 1;
+ sTexCoordScaleTable[i + 1] = 1;
+ sTexCoordScaleTable[i + 2] = 0;
+ sTexCoordScaleTable[i + 3] = 0;
+ }
}
-#pragma pop
static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) {
GFX_FIFO(u8) = cmd;