diff --git a/configure.py b/configure.py index 3e38f5066..2f85b251f 100644 --- a/configure.py +++ b/configure.py @@ -321,7 +321,7 @@ config.libs = [ Object(Matching, "f_pc/f_pc_layer_tag.cpp"), Object(Matching, "f_pc/f_pc_line.cpp"), Object(Matching, "f_pc/f_pc_load.cpp"), - Object(NonMatching, "f_pc/f_pc_manager.cpp"), + Object(Matching, "f_pc/f_pc_manager.cpp"), Object(Matching, "f_pc/f_pc_method.cpp"), Object(Matching, "f_pc/f_pc_node.cpp"), Object(Matching, "f_pc/f_pc_node_req.cpp"), diff --git a/include/JSystem/JParticle/JPAEmitter.h b/include/JSystem/JParticle/JPAEmitter.h index 5c0d4d598..e9ed101ff 100644 --- a/include/JSystem/JParticle/JPAEmitter.h +++ b/include/JSystem/JParticle/JPAEmitter.h @@ -160,8 +160,8 @@ public: bool doTerminationProcess(); void calcEmitterGlobalPosition(JGeometry::TVec3&); void calcgReRDirection(); - u32 getPivotX(); - u32 getPivotY(); + u8 getPivotX(); + u8 getPivotY(); void setStatus(u32 status) { mFlags |= status; } void clearStatus(u32 status) { mFlags &= ~status; } diff --git a/src/JSystem/J2DGraph/J2DWindow.cpp b/src/JSystem/J2DGraph/J2DWindow.cpp index 732e4da97..77741913f 100644 --- a/src/JSystem/J2DGraph/J2DWindow.cpp +++ b/src/JSystem/J2DGraph/J2DWindow.cpp @@ -142,7 +142,7 @@ void J2DWindow::draw_private(const JGeometry::TBox2& frameBox, const JGeome drawFrameTexture(mpFrameTexture4, right, top, (field_0x110 >> 1) & 1, - (field_0x110 >> 0) & 1, (field_0x111 & 1)); + (field_0x110 >> 0) & 1, (field_0x111 & 2)); s0 = ((field_0x110 >> 1) & 1) ? (u16)0x8000 : (u16)0; t0 = ((field_0x110 >> 0) & 1) ? (u16)0 : (u16)0x8000; @@ -156,7 +156,7 @@ void J2DWindow::draw_private(const JGeometry::TBox2& frameBox, const JGeome drawFrameTexture(mpFrameTexture3, 0.0f, top, (field_0x110 >> 3) & 1, - (field_0x110 >> 2) & 1, (field_0x111 & 1)); + (field_0x110 >> 2) & 1, (field_0x111 & 4)); s0 = ((field_0x110 >> 3) & 1) ? (u16)0 : (u16)0x8000; s1 = (u16)(s0 ^ 0x8000); diff --git a/src/JSystem/J3DGraphAnimator/J3DModel.cpp b/src/JSystem/J3DGraphAnimator/J3DModel.cpp index 547f0ccd2..bbb4fd2f6 100644 --- a/src/JSystem/J3DGraphAnimator/J3DModel.cpp +++ b/src/JSystem/J3DGraphAnimator/J3DModel.cpp @@ -596,37 +596,34 @@ extern void J3DPSMtxArrayConcat(f32(*)[4], f32(*)[4], f32(*)[4], u32); /* 802EEBDC-802EEE30 .text calcDrawMtx__8J3DModelFv */ void J3DModel::calcDrawMtx() { + /* Nonmatching - regalloc */ switch (getMtxCalcMode()) { case 0: MtxP viewMtx = j3dSys.getViewMtx(); for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++) { u16 drawMtxIdx = getModelData()->getDrawMtxIndex(i); - MTXConcat(viewMtx, getAnmMtx(drawMtxIdx), getDrawMtxPtr()[i]); + MTXConcat(viewMtx, getAnmMtx(drawMtxIdx), getDrawMtx(i)); } if (getModelData()->getDrawMtxNum() > getModelData()->getDrawFullWgtMtxNum()) { - MtxP weightAnmMtx = getWeightAnmMtx(0); - MtxP drawMtx = getDrawMtxPtr()[getModelData()->getDrawFullWgtMtxNum()]; - J3DPSMtxArrayConcat(viewMtx, weightAnmMtx, drawMtx, getModelData()->getWEvlpMtxNum()); + J3DPSMtxArrayConcat(viewMtx, getWeightAnmMtx(0), getDrawMtx(getModelData()->getDrawFullWgtMtxNum()), getModelData()->getWEvlpMtxNum()); } break; case 1: - for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++) - MTXCopy(getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtxPtr()[i]); + for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++) { + MTXCopy(getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtx(i)); + } for (u16 i = 0; i < getModelData()->getWEvlpMtxNum(); i++) { - MtxP drawMtx = getDrawMtxPtr()[getModelData()->getDrawFullWgtMtxNum() + i]; - setWeightAnmMtx(i, drawMtx); + MTXCopy(getWeightAnmMtx(i), getDrawMtx(getModelData()->getDrawFullWgtMtxNum() + i)); } break; case 2: calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, mViewBaseMtx); for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++) { - MtxP anmMtx = getAnmMtx(getModelData()->getDrawMtxIndex(i)); - MTXConcat(mViewBaseMtx, anmMtx, getDrawMtxPtr()[i]); + u16 drawMtxIdx = getModelData()->getDrawMtxIndex(i); + MTXConcat(mViewBaseMtx, getAnmMtx(drawMtxIdx), getDrawMtx(i)); } - if (getModelData()->getDrawFullWgtMtxNum() > getModelData()->getDrawMtxNum()) { - MtxP weightAnmMtx = getWeightAnmMtx(0); - MtxP drawMtx = getDrawMtxPtr()[getModelData()->getDrawFullWgtMtxNum()]; - J3DPSMtxArrayConcat(mViewBaseMtx, weightAnmMtx, drawMtx, getModelData()->getWEvlpMtxNum()); + if (getModelData()->getDrawMtxNum() > getModelData()->getDrawFullWgtMtxNum()) { + J3DPSMtxArrayConcat(mViewBaseMtx, getWeightAnmMtx(0), getDrawMtx(getModelData()->getDrawFullWgtMtxNum()), getModelData()->getWEvlpMtxNum()); } break; } diff --git a/src/JSystem/J3DGraphBase/J3DTransform.cpp b/src/JSystem/J3DGraphBase/J3DTransform.cpp index 076db8dc4..71dfd94f0 100644 --- a/src/JSystem/J3DGraphBase/J3DTransform.cpp +++ b/src/JSystem/J3DGraphBase/J3DTransform.cpp @@ -18,29 +18,9 @@ void J3DGQRSetup7(u32, u32, u32, u32) { } /* 802DA0E8-802DA120 .text J3DCalcZValue__FPA4_f3Vec */ - -// matches debug -f32 J3DCalcZValue(register MtxP m, register Vec v) { - register f32 temp_f4; - register f32 out; - register f32 temp_f0; - register f32 temp_f2; - register f32 temp_f1 = 1.0f; - - // clang-format off - asm { - psq_l temp_f0, 0(v), 0, 0 /* qr0 */ - lfs temp_f2, 8(v) - psq_l temp_f4, 32(m), 0, 0 /* qr0 */ - psq_l out, 40(m), 0, 0 /* qr0 */ - ps_merge00 temp_f2, temp_f2, temp_f1 - ps_mul temp_f4, temp_f0, temp_f4 - ps_madd out, temp_f2, out, temp_f4 - ps_sum0 out, out, out, out - } - // clang-format on - - return out; +f32 J3DCalcZValue(MtxP m, Vec v) { + /* Nonmatching */ + return m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3]; } /* 802DA120-802DA2E0 .text J3DCalcBBoardMtx__FPA4_f */ diff --git a/src/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp b/src/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp index 9bc12ed88..1a3838b73 100644 --- a/src/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp +++ b/src/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp @@ -17,12 +17,12 @@ u16 J3DMaterialFactory_v21::countUniqueMaterials() { } /* 802F9C8C-802F9CC4 .text countTexGens__22J3DMaterialFactory_v21CFi */ -void J3DMaterialFactory_v21::countTexGens(int) const { +u32 J3DMaterialFactory_v21::countTexGens(int) const { /* Nonmatching */ } /* 802F9CC4-802F9D4C .text countStages__22J3DMaterialFactory_v21CFi */ -void J3DMaterialFactory_v21::countStages(int) const { +u32 J3DMaterialFactory_v21::countStages(int) const { /* Nonmatching */ } diff --git a/src/JSystem/JParticle/JPAEmitter.cpp b/src/JSystem/JParticle/JPAEmitter.cpp index 5bee20d7c..a74b6139e 100644 --- a/src/JSystem/JParticle/JPAEmitter.cpp +++ b/src/JSystem/JParticle/JPAEmitter.cpp @@ -419,7 +419,7 @@ void JPABaseEmitter::calcgReRDirection() { } /* 8025DDE8-8025DE2C .text getPivotX__14JPABaseEmitterFv */ -u32 JPABaseEmitter::getPivotX() { +u8 JPABaseEmitter::getPivotX() { if (getEmitterDataBlockInfoPtr()->getExtraShape() != NULL) return getEmitterDataBlockInfoPtr()->getExtraShape()->getPivotX(); else @@ -427,7 +427,7 @@ u32 JPABaseEmitter::getPivotX() { } /* 8025DE2C-8025DE70 .text getPivotY__14JPABaseEmitterFv */ -u32 JPABaseEmitter::getPivotY() { +u8 JPABaseEmitter::getPivotY() { if (getEmitterDataBlockInfoPtr()->getExtraShape() != NULL) return getEmitterDataBlockInfoPtr()->getExtraShape()->getPivotY(); else diff --git a/src/f_pc/f_pc_manager.cpp b/src/f_pc/f_pc_manager.cpp index a0aab1f2b..aa6a8dde7 100644 --- a/src/f_pc/f_pc_manager.cpp +++ b/src/f_pc/f_pc_manager.cpp @@ -215,7 +215,7 @@ void drawDvdCondition(long status) { } /* 8003EBD4-8003EC84 .text checkDvdCondition__Fv */ -static int checkDvdCondition() { +int checkDvdCondition() { static int l_dvdError = 0; int status = DVDGetDriveStatus(); diff --git a/src/f_pc/f_pc_manager_data.inc b/src/f_pc/f_pc_manager_data.inc index c80273d60..734968a2f 100644 --- a/src/f_pc/f_pc_manager_data.inc +++ b/src/f_pc/f_pc_manager_data.inc @@ -86,6 +86,7 @@ const u8 msg_data[] ALIGN_DECL(32) = { #endif }; +#if VERSION == VERSION_PAL const u8 msg_data_ge[] ALIGN_DECL(32) = { 0x4D, 0x45, 0x53, 0x47, 0x62, 0x6D, 0x67, 0x31, 0x00, 0x00, 0x02, 0xA0, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -253,6 +254,7 @@ const u8 msg_data_it[] ALIGN_DECL(32) = { 0x69, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +#endif const u8 font_data[] ALIGN_DECL(32) = { #if VERSION == VERSION_JPN