From c19d9b02be5d894f91cd45884eed67152dffffa4 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Tue, 6 Feb 2024 07:04:35 +0200 Subject: J3D work (#2064) --- libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp | 16 +- libs/JSystem/J3DGraphBase/J3DStruct.cpp | 42 ++---- libs/JSystem/J3DGraphBase/J3DTevs.cpp | 243 +++++++++--------------------- 3 files changed, 92 insertions(+), 209 deletions(-) (limited to 'libs/JSystem/J3DGraphBase') diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 453101a0e0..d5c1405b65 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -296,17 +296,19 @@ void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { int tex_gen_type = tex_coord->getTexGenType(); if (tex_gen_type == 1 || tex_gen_type == 0) { tex_mtx = tex_gen_block->getTexMtx(i); - u8 tex_gen_src = tex_coord->getTexGenSrc(); + u8 tex_gen_src = tex_mtx->getTexMtxInfo().mInfo; u32 unk; switch (tex_gen_src & 0x3f) { case 3: case 9: - mtx = &tex_mtx_obj->getMtx(i); + Mtx& tmp5 = tex_mtx_obj->getMtx(i); + mtx = &tmp5; break; case 1: case 6: case 7: - mtx = &tex_mtx_obj->getMtx(i); + Mtx& tmp6 = tex_mtx_obj->getMtx(i); + mtx = &tmp6; break; case 2: case 8: @@ -368,7 +370,8 @@ void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { mtx = &tmp2; break; default: - mtx = &tex_mtx_obj->getMtx(i); + Mtx& tmp7 = tex_mtx_obj->getMtx(i); + mtx = &tmp7; break; } GXLoadTexMtxImm(*mtx, i * 3 + 0x40, GX_MTX3x4); @@ -376,11 +379,10 @@ void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { } } else { for (u16 i = 0; i < (u16)tex_mtx_num; i++) { - tex_coord = tex_gen_block->getTexCoord(i); - int tex_gen_type = tex_coord->getTexGenType(); + int tex_gen_type = tex_gen_block->getTexCoord(i)->getTexGenType(); if (tex_gen_type == 1 || tex_gen_type == 0) { tex_mtx = tex_gen_block->getTexMtx(i); - u8 tex_gen_src = tex_coord->getTexGenSrc(); + u8 tex_gen_src = tex_mtx->getTexMtxInfo().mInfo; u32 unk; switch (tex_gen_src & 0x3f) { case 3: diff --git a/libs/JSystem/J3DGraphBase/J3DStruct.cpp b/libs/JSystem/J3DGraphBase/J3DStruct.cpp index 6b1cec2e2a..b2d537934d 100644 --- a/libs/JSystem/J3DGraphBase/J3DStruct.cpp +++ b/libs/JSystem/J3DGraphBase/J3DStruct.cpp @@ -1,15 +1,9 @@ // -// Generated By: dol2asm -// Translation Unit: J3DStruct +// J3DStruct // #include "JSystem/J3DGraphBase/J3DStruct.h" #include "JSystem/JMath/JMath.h" -#include "dol2asm.h" - -// -// Declarations: -// /* 803256C4-80325718 320004 0054+00 0/0 11/11 24/24 .text __as__12J3DLightInfoFRC12J3DLightInfo */ J3DLightInfo& J3DLightInfo::operator=(J3DLightInfo const& param_0) { @@ -29,39 +23,23 @@ J3DTexMtxInfo& J3DTexMtxInfo::operator=(J3DTexMtxInfo const& param_0) { return *this; } -/* ############################################################################################## */ -/* 80456410-80456414 004A10 0004+00 1/1 0/0 0/0 .sdata2 @409 */ -SECTION_SDATA2 static f32 lit_409 = 1.0f; - -/* 80456414-80456418 004A14 0004+00 1/1 0/0 0/0 .sdata2 @410 */ -SECTION_SDATA2 static u8 lit_410[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; +// Helper functions to set float literal order +static f32 dummyLiteralOrder() { + return 1.0f; +} /* 80325794-803257DC 3200D4 0048+00 0/0 2/2 7/7 .text setEffectMtx__13J3DTexMtxInfoFPA4_f */ -// needs inline asm? -#ifdef NONMATCHING void J3DTexMtxInfo::setEffectMtx(Mtx param_0) { JMath::gekko_ps_copy12(&mEffectMtx, param_0); - mEffectMtx[3][0] = 0.0f; - mEffectMtx[3][1] = 0.0f; + register f32 zero = 0.0f; + register f32* mtx = (f32*)mEffectMtx; + asm { + psq_st zero, 0x30(mtx), 0, 0 + }; mEffectMtx[3][2] = 0.0f; mEffectMtx[3][3] = 1.0f; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtxInfo::setEffectMtx(f32 (*param_0)[4]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DStruct/setEffectMtx__13J3DTexMtxInfoFPA4_f.s" -} -#pragma pop -#endif /* 803257DC-80325800 32011C 0024+00 0/0 5/5 0/0 .text * __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo */ diff --git a/libs/JSystem/J3DGraphBase/J3DTevs.cpp b/libs/JSystem/J3DGraphBase/J3DTevs.cpp index 040d734260..917edb672f 100644 --- a/libs/JSystem/J3DGraphBase/J3DTevs.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTevs.cpp @@ -1,6 +1,5 @@ // -// Generated By: dol2asm -// Translation Unit: J3DTevs +// J3DTevs // #include "JSystem/J3DGraphBase/J3DTevs.h" @@ -9,75 +8,9 @@ #include "JSystem/J3DGraphBase/J3DSys.h" #include "JSystem/J3DGraphBase/J3DTexture.h" #include "JSystem/J3DGraphBase/J3DTransform.h" -#include "dol2asm.h" -// -// Types: -// - -// -// Forward References: -// - -extern "C" void load__11J3DLightObjCFUl(); -extern "C" void loadTexCoordGens__FUlP11J3DTexCoord(); -extern "C" void load__9J3DTexMtxCFUl(); -extern "C" void calc__9J3DTexMtxFPA4_Cf(); -extern "C" void calcTexMtx__9J3DTexMtxFPA4_Cf(); -extern "C" void calcPostTexMtx__9J3DTexMtxFPA4_Cf(); -extern "C" void isTexNoReg__FPv(); -extern "C" void getTexNoReg__FPv(); -extern "C" void loadTexNo__FUlRCUs(); -extern "C" void patchTexNo_PtrToIdx__FUlRCUs(); -extern "C" void loadNBTScale__FR11J3DNBTScale(); -extern "C" void makeTexCoordTable__Fv(); -extern "C" void makeAlphaCmpTable__Fv(); -extern "C" void makeZModeTable__Fv(); -extern "C" void makeTevSwapTable__Fv(); -extern "C" void loadTexMtx__9J3DTexMtxCFUl(); -extern "C" void loadPostTexMtx__9J3DTexMtxCFUl(); -extern "C" static void J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType(); -extern "C" static void J3DGDLoadPostTexMtxImm__FPA4_fUl(); -extern "C" extern GXColor j3dDefaultColInfo; -extern "C" extern u32 j3dDefaultAmbInfo; -extern "C" extern u8 data_804563C8; -extern "C" extern GXColorS10 j3dDefaultTevColor; -extern "C" extern GXColor j3dDefaultTevKColor; -extern "C" extern u8 j3dDefaultTevSwapMode[4]; -extern "C" extern u16 data_804563F8; - -// -// External References: -// - -extern void J3DGDSetTexImgPtrRaw(_GXTexMapID param_0, u32 param_1); - -extern "C" void J3DGDSetLightAttn__F10_GXLightIDffffff(); -extern "C" void J3DGDSetLightColor__F10_GXLightID8_GXColor(); -extern "C" void J3DGDSetLightPos__F10_GXLightIDfff(); -extern "C" void J3DGDSetLightDir__F10_GXLightIDfff(); -extern "C" void J3DGDSetTexCoordGen__F13_GXTexGenType12_GXTexGenSrc(); -extern "C" void -J3DGDSetTexLookupMode__F11_GXTexMapID14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilterfffUcUc13_GXAnisotropy(); -extern "C" void J3DGDSetTexImgAttr__F11_GXTexMapIDUsUs9_GXTexFmt(); -extern "C" void J3DGDSetTexImgPtr__F11_GXTexMapIDPv(); -extern "C" void J3DGDSetTexTlut__F11_GXTexMapIDUl10_GXTlutFmt(); -extern "C" void J3DGDLoadTlut__FPvUl11_GXTlutSize(); -extern "C" void J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f(); -extern "C" void J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f(); -extern "C" void J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f(); -extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f(); -extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f(); -extern "C" void GDOverflowed(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */]; - -// -// Declarations: -// +static void J3DGDLoadTexMtxImm(f32 (*)[4], u32, _GXTexMtxType); +static void J3DGDLoadPostTexMtxImm(f32 (*)[4], u32); /* 80323590-80323644 31DED0 00B4+00 0/0 3/3 0/0 .text load__11J3DLightObjCFUl */ void J3DLightObj::load(u32 lightIdx) const { @@ -344,16 +277,6 @@ u16 getTexNoReg(void* param_0) { return *(u32*)((u8*)param_0 + 1); } -/* ############################################################################################## */ -/* 804563B0-804563B4 0049B0 0004+00 1/1 0/0 0/0 .sdata2 @1167 */ -SECTION_SDATA2 static f32 lit_1167 = 0.125f; - -/* 804563B4-804563B8 0049B4 0004+00 1/1 0/0 0/0 .sdata2 @1168 */ -SECTION_SDATA2 static f32 lit_1168 = 1.0f / 100.0f; - -/* 804563B8-804563C0 0049B8 0008+00 1/1 0/0 0/0 .sdata2 @1171 */ -SECTION_SDATA2 static f64 lit_1171 = 4503601774854144.0 /* cast s32 to float */; - /* 80323F94-8032413C 31E8D4 01A8+00 0/0 20/20 0/0 .text loadTexNo__FUlRCUs */ void loadTexNo(u32 param_0, u16 const& param_1) { ResTIMG* resTIMG = j3dSys.getTexture()->getResTIMG(param_1); @@ -387,91 +310,62 @@ void loadNBTScale(J3DNBTScale& param_0) { /* ############################################################################################## */ /* 803A1EC8-803A1EFC 02E528 0034+00 0/0 9/9 24/24 .rodata j3dDefaultLightInfo */ -SECTION_RODATA extern const J3DLightInfo j3dDefaultLightInfo = { +extern const J3DLightInfo j3dDefaultLightInfo = { 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xff, 0xff, 0xff, 0xff, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, }; -COMPILER_STRIP_GATE(0x803A1EC8, &j3dDefaultLightInfo); /* 803A1EFC-803A1F1C 02E55C 0020+00 0/0 5/5 0/0 .rodata j3dDefaultTexCoordInfo */ -SECTION_RODATA extern J3DTexCoordInfo const j3dDefaultTexCoordInfo[8] = { +extern J3DTexCoordInfo const j3dDefaultTexCoordInfo[8] = { {GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0}, }; -COMPILER_STRIP_GATE(0x803A1EFC, &j3dDefaultTexCoordInfo); /* 803A1F1C-803A1F80 02E57C 0064+00 0/0 1/1 0/0 .rodata j3dDefaultTexMtxInfo */ -SECTION_RODATA extern u8 const j3dDefaultTexMtxInfo[100] = { - 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, +extern J3DTexMtxInfo const j3dDefaultTexMtxInfo = { + 0x01, + 0x00, + 0xFF, + 0xFF, + {0.0f, 0.0f, 0.0f}, + {1.0f, 1.0f, 0, 0.0f, 0.0f}, + {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 1.0f}, }; -COMPILER_STRIP_GATE(0x803A1F1C, &j3dDefaultTexMtxInfo); /* 803A1F80-803A1F9C 02E5E0 001C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTexMtxInfo */ -SECTION_RODATA extern J3DIndTexMtxInfo const j3dDefaultIndTexMtxInfo = { +extern J3DIndTexMtxInfo const j3dDefaultIndTexMtxInfo = { 0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1 }; -COMPILER_STRIP_GATE(0x803A1F80, &j3dDefaultIndTexMtxInfo); /* 803A1F9C-803A1FB0 02E5FC 0014+00 0/0 1/1 0/0 .rodata j3dDefaultTevStageInfo */ -SECTION_RODATA extern J3DTevStageInfo const j3dDefaultTevStageInfo = { +extern J3DTevStageInfo const j3dDefaultTevStageInfo = { 0x04, 0x0A, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, }; -COMPILER_STRIP_GATE(0x803A1F9C, &j3dDefaultTevStageInfo); /* 803A1FB0-803A1FBC 02E610 000C+00 0/0 2/2 0/0 .rodata j3dDefaultIndTevStageInfo */ -SECTION_RODATA extern J3DIndTevStageInfo const j3dDefaultIndTevStageInfo = { +extern J3DIndTevStageInfo const j3dDefaultIndTevStageInfo = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -COMPILER_STRIP_GATE(0x803A1FB0, &j3dDefaultIndTevStageInfo); /* 803A1FBC-803A1FE8 02E61C 002C+00 0/0 3/3 0/0 .rodata j3dDefaultFogInfo */ -SECTION_RODATA extern J3DFogInfo const j3dDefaultFogInfo = { +extern J3DFogInfo const j3dDefaultFogInfo = { 0x00, 0x00, 0x0140, 0.0f, 0.0f, 0.1f, 10000.0f, 0xFF, 0xFF, 0xFF, 0x00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, }; -COMPILER_STRIP_GATE(0x803A1FBC, &j3dDefaultFogInfo); /* 803A1FE8-803A1FF8 02E648 0010+00 0/0 3/3 0/0 .rodata j3dDefaultNBTScaleInfo */ -SECTION_RODATA extern J3DNBTScaleInfo const j3dDefaultNBTScaleInfo = { +extern J3DNBTScaleInfo const j3dDefaultNBTScaleInfo = { 0x00, 1.0f, 1.0f, 1.0f, }; -COMPILER_STRIP_GATE(0x803A1FE8, &j3dDefaultNBTScaleInfo); - -/* 803A1FF8-803A2008 02E658 000B+05 1/1 0/0 0/0 .rodata @1197 */ -SECTION_RODATA static u8 const lit_1197[11 + 5 /* padding */] = { - 0x1E, - 0x21, - 0x24, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x803A1FF8, &lit_1197); /* 80434C98-80436A60 0619B8 1DC7+01 1/1 0/0 0/0 .bss j3dTexCoordTable */ static u8 j3dTexCoordTable[7623 + 1 /* padding */]; @@ -507,11 +401,9 @@ void makeTexCoordTable() { /* ############################################################################################## */ /* 80436A60-80436E60 063780 0400+00 1/1 3/3 0/0 .bss j3dTevSwapTableTable */ -extern u8 j3dTevSwapTableTable[1024]; u8 j3dTevSwapTableTable[1024]; /* 80436E60-80437160 063B80 0300+00 1/1 2/2 0/0 .bss j3dAlphaCmpTable */ -extern u8 j3dAlphaCmpTable[768]; u8 j3dAlphaCmpTable[768]; /* 8032423C-803242A8 31EB7C 006C+00 0/0 1/1 0/0 .text makeAlphaCmpTable__Fv */ @@ -564,67 +456,78 @@ void makeTevSwapTable() { } /* 80324358-803243BC 31EC98 0064+00 1/1 0/0 0/0 .text loadTexMtx__9J3DTexMtxCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::loadTexMtx(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadTexMtx__9J3DTexMtxCFUl.s" +void J3DTexMtx::loadTexMtx(u32 param_0) const { + GDOverflowCheck(0x35); + J3DGDLoadTexMtxImm((MtxP)mMtx, param_0 * 3 + 30, (_GXTexMtxType)mTexMtxInfo.mProjection); } -#pragma pop /* 803243BC-8032441C 31ECFC 0060+00 1/1 0/0 0/0 .text loadPostTexMtx__9J3DTexMtxCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::loadPostTexMtx(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadPostTexMtx__9J3DTexMtxCFUl.s" +void J3DTexMtx::loadPostTexMtx(u32 param_0) const { + GDOverflowCheck(0x35); + J3DGDLoadPostTexMtxImm((MtxP)mMtx, param_0 * 3 + 0x40); } -#pragma pop /* 8032441C-8032499C 31ED5C 0580+00 1/1 0/0 0/0 .text J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DGDLoadTexMtxImm(f32 (*param_0)[4], u32 param_1, _GXTexMtxType param_2) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType.s" +static void J3DGDLoadTexMtxImm(f32 (*param_1)[4], u32 param_2, _GXTexMtxType param_3) { + u16 addr = param_2 << 2; + u8 len = param_3 == GX_MTX2x4 ? 8 : 12; + J3DGDWriteXFCmdHdr(addr & 0xffff, len); + J3DGDWrite_f32(param_1[0][0]); + J3DGDWrite_f32(param_1[0][1]); + J3DGDWrite_f32(param_1[0][2]); + J3DGDWrite_f32(param_1[0][3]); + J3DGDWrite_f32(param_1[1][0]); + J3DGDWrite_f32(param_1[1][1]); + J3DGDWrite_f32(param_1[1][2]); + J3DGDWrite_f32(param_1[1][3]); + if (param_3 == GX_MTX3x4) { + J3DGDWrite_f32(param_1[2][0]); + J3DGDWrite_f32(param_1[2][1]); + J3DGDWrite_f32(param_1[2][2]); + J3DGDWrite_f32(param_1[2][3]); + } } -#pragma pop /* 8032499C-80324F08 31F2DC 056C+00 1/1 0/0 0/0 .text J3DGDLoadPostTexMtxImm__FPA4_fUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DGDLoadPostTexMtxImm(f32 (*param_0)[4], u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/J3DGDLoadPostTexMtxImm__FPA4_fUl.s" +static void J3DGDLoadPostTexMtxImm(f32 (*param_1)[4], u32 param_2) { + u16 addr = (param_2 - 0x40) * 4 + 0x500; + J3DGDWriteXFCmdHdr(addr, 12); + J3DGDWrite_f32(param_1[0][0]); + J3DGDWrite_f32(param_1[0][1]); + J3DGDWrite_f32(param_1[0][2]); + J3DGDWrite_f32(param_1[0][3]); + J3DGDWrite_f32(param_1[1][0]); + J3DGDWrite_f32(param_1[1][1]); + J3DGDWrite_f32(param_1[1][2]); + J3DGDWrite_f32(param_1[1][3]); + J3DGDWrite_f32(param_1[2][0]); + J3DGDWrite_f32(param_1[2][1]); + J3DGDWrite_f32(param_1[2][2]); + J3DGDWrite_f32(param_1[2][3]); } -#pragma pop /* ############################################################################################## */ /* 804563C0-804563C4 0049C0 0004+00 0/0 4/4 0/0 .sdata2 j3dDefaultColInfo */ -SECTION_SDATA2 extern GXColor j3dDefaultColInfo = {0xFF, 0xFF, 0xFF, 0xFF}; +extern const GXColor j3dDefaultColInfo = {0xFF, 0xFF, 0xFF, 0xFF}; /* 804563C4-804563C8 0049C4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultAmbInfo */ -SECTION_SDATA2 extern u32 j3dDefaultAmbInfo = 0x32323232; +extern const u32 j3dDefaultAmbInfo = 0x32323232; /* 804563C8-804563CC 0049C8 0004+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u8 data_804563C8 = 0x01; +extern const u8 data_804563C8 = 0x01; /* 804563CC-804563D0 0049CC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultTevOrderInfoNull */ -SECTION_SDATA2 extern J3DTevOrderInfo j3dDefaultTevOrderInfoNull = {0xFF, 0xFF, 0xFF, 0x00}; +extern const J3DTevOrderInfo j3dDefaultTevOrderInfoNull = {0xFF, 0xFF, 0xFF, 0x00}; /* 804563D0-804563D4 0049D0 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexOrderNull */ -SECTION_SDATA2 extern J3DIndTexOrderInfo j3dDefaultIndTexOrderNull = {0xFF, 0xFF, 0x00, 0x00}; +extern const J3DIndTexOrderInfo j3dDefaultIndTexOrderNull = {0xFF, 0xFF, 0x00, 0x00}; /* 804563D4-804563D8 0049D4 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevColor */ -SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = {0xFF, 0xFF, 0xFF, 0xFF}; +extern const GXColorS10 j3dDefaultTevColor = {0xFF, 0xFF, 0xFF, 0xFF}; /* 804563DC-804563E0 0049DC 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexCoordScaleInfo */ -SECTION_SDATA2 extern J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo = { +extern const J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo = { 0x00, 0x00, 0x00, @@ -632,10 +535,10 @@ SECTION_SDATA2 extern J3DIndTexCoordScaleInfo j3dDefaultIndTexCoordScaleInfo = { }; /* 804563E0-804563E4 0049E0 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevKColor */ -SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = {0xFF, 0xFF, 0xFF, 0xFF}; +extern const GXColor j3dDefaultTevKColor = {0xFF, 0xFF, 0xFF, 0xFF}; /* 804563E4-804563E8 0049E4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapMode */ -SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = { +extern J3DTevSwapModeInfo const j3dDefaultTevSwapMode = { 0x00, 0x00, 0x00, @@ -643,21 +546,21 @@ SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = { }; /* 804563E8-804563EC 0049E8 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapModeTable */ -SECTION_SDATA2 extern J3DTevSwapModeTableInfo j3dDefaultTevSwapModeTable = {0x00, 0x01, 0x02, 0x03}; +extern const J3DTevSwapModeTableInfo j3dDefaultTevSwapModeTable = {0x00, 0x01, 0x02, 0x03}; /* 804563EC-804563F0 0049EC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultBlendInfo */ -SECTION_SDATA2 extern const J3DBlendInfo j3dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP}; +extern const J3DBlendInfo j3dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP}; /* 804563F0-804563F8 0049F0 0008+00 0/0 3/3 0/0 .sdata2 j3dDefaultColorChanInfo */ -SECTION_SDATA2 extern J3DColorChanInfo j3dDefaultColorChanInfo = { +extern const J3DColorChanInfo j3dDefaultColorChanInfo = { 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0xFF, 0xFF, }; /* 804563F8-804563FA 0049F8 0002+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u16 data_804563F8 = 0x1B00; +extern const u16 data_804563F8 = 0x1B00; /* 804563FA-804563FC 0049FA 0002+00 0/0 1/1 0/0 .sdata2 j3dDefaultAlphaCmpID */ -SECTION_SDATA2 extern const u16 j3dDefaultAlphaCmpID = 0x00E7; +const u16 j3dDefaultAlphaCmpID = 0x00E7; /* 804563FC-80456400 0049FC 0002+02 0/0 3/3 0/0 .sdata2 j3dDefaultZModeID */ -SECTION_SDATA2 extern const u16 j3dDefaultZModeID = 0x0017; +const u16 j3dDefaultZModeID = 0x0017; -- cgit v1.2.3