Various JSystem work (#2383)

* JKernel and JStudio cleanup

* JMessage cleanup

* JAudio cleanup

* JASBNKParser work

* functionvalue work

* fvb work

* J2D and J3D cleanup

* steal from tww

* J2DPictureEx mostly done

* fix build
This commit is contained in:
Caroline Madsen
2025-04-09 16:45:30 -04:00
committed by GitHub
parent 6672817e41
commit c6f76e7240
78 changed files with 1793 additions and 2710 deletions
+7 -8
View File
@@ -7,7 +7,6 @@
#include "JSystem/J3DGraphBase/J3DGD.h"
#include "JSystem/J3DGraphBase/J3DSys.h"
#include "JSystem/J3DGraphBase/J3DTransform.h"
#include "dol2asm.h"
#include "dolphin/os.h"
#include "string.h"
#include "global.h"
@@ -359,8 +358,8 @@ void J3DColorBlockLightOff::load() {
mColorChanOffset = GDGetCurrOffset();
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
}
@@ -376,8 +375,8 @@ void J3DColorBlockAmbientOn::load() {
mColorChanOffset = GDGetCurrOffset();
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
}
@@ -390,8 +389,8 @@ void J3DColorBlockLightOn::load() {
mColorChanOffset = GDGetCurrOffset();
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
for (u32 i = 0; i < 8; i++) {
if (mLight[i] != NULL) {
@@ -423,8 +422,8 @@ void J3DColorBlockLightOff::patchLight() {
GDOverflowCheck(SizeOfLoadColorChans);
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
void* end = GDGetCurrPointer();
DCStoreRange(start, (u32)end - (u32)start);
@@ -453,8 +452,8 @@ void J3DColorBlockLightOn::patchLight() {
GDOverflowCheck(SizeOfLoadColorChans);
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
for (u32 i = 0; i < 8; i++) {
if (mLight[i] != NULL) {
@@ -484,8 +483,8 @@ void J3DColorBlockLightOff::diffColorChan() {
GDOverflowCheck(SizeOfLoadColorChans);
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
}
@@ -521,8 +520,8 @@ void J3DColorBlockLightOn::diffColorChan() {
GDOverflowCheck(SizeOfLoadColorChans);
J3DGDWriteXFCmdHdr(0x100e, 4);
mColorChan[0].load();
mColorChan[1].load();
mColorChan[2].load();
mColorChan[1].load();
mColorChan[3].load();
}
-1
View File
@@ -288,7 +288,6 @@ void J3DMaterial::setCurrentMtx() {
}
/* 80316AC8-80316D68 311408 02A0+00 1/1 0/0 0/0 .text calcCurrentMtx__11J3DMaterialFv */
// NONMATCHING Issues with setCurrentTexMtx
void J3DMaterial::calcCurrentMtx() {
if (!j3dSys.checkFlag(0x40000000)) {
mCurrentMtx.setCurrentTexMtx(
+6 -16
View File
@@ -10,16 +10,6 @@
#include <dolphin/os.h>
#include "global.h"
//
// External References:
//
extern "C" void countVertex__12J3DShapeDrawFUl();
extern "C" void* __nwa__FUli();
extern "C" void __dl__FPv();
extern "C" void _savegpr_18();
extern "C" void _restgpr_18();
/* 80314924-80314974 30F264 0050+00 1/1 0/0 0/0 .text countVertex__12J3DShapeDrawFUl */
u32 J3DShapeDraw::countVertex(u32 stride) {
u32 count = 0;
@@ -54,18 +44,18 @@ void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
// Copy count
// regalloc (I suspect there's a way to shove this in a u16 temp without an mr)
u32 vtxNum = *((u16*)(oldDL + 1));
s32 vtxNum = *((u16*)(oldDL + 1));
*((u16*)newDL) = vtxNum;
newDL += 2;
for (s32 i = 0; i < (u16)vtxNum; i++) {
for (s32 i = 0; i < vtxNum; i++) {
u8* oldDLVtx = &oldDL[stride * i + 3];
u8 pnmtxidx = *oldDLVtx;
memcpy(newDL, oldDLVtx, attrOffs);
u8* newDL1 = &newDL[attrOffs];
*newDL1++ = valueBase + pnmtxidx;
memcpy(newDL1, oldDLVtx + attrOffs, stride - attrOffs);
newDL = newDL1 + (stride - attrOffs);
newDL += attrOffs;
*newDL++ = valueBase + pnmtxidx;
memcpy(newDL, oldDLVtx + attrOffs, stride - attrOffs);
newDL += (stride - attrOffs);
}
oldDL += stride * vtxNum;