mirror of
https://github.com/zeldaret/tww.git
synced 2026-09-12 20:26:07 -04:00
Merge pull request #10 from TakaRikka/hio
m_Do_hostIO OK, m_Do_mtx work
This commit is contained in:
+34
-28
@@ -4,39 +4,45 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "MSL_C/string.h"
|
||||
|
||||
mDoHIO_root_c mDoHIO_root;
|
||||
|
||||
/* 80017A4C-80017A50 .text update__13mDoHIO_root_cFv */
|
||||
void mDoHIO_root_c::update() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
void mDoHIO_root_c::update() {}
|
||||
|
||||
/* 80017A50-80017B20 .text createChild__16mDoHIO_subRoot_cFPCcP13JORReflexible */
|
||||
void mDoHIO_subRoot_c::createChild(const char*, JORReflexible*) {
|
||||
/* Nonmatching */
|
||||
s8 mDoHIO_subRoot_c::createChild(const char* i_name, JORReflexible* i_reflexible) {
|
||||
for (int i = 0; i < 64; i++) {
|
||||
if (mChild[i].mReflexible == i_reflexible) {
|
||||
// "Danger: Trying to register an already registered HostIO<%s>\n"
|
||||
OSReport_Error("危険:既に登録されているホストIOをふたたび登録しようとしています<%s>\n", i_name);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 64; i++) {
|
||||
if (mChild[i].mReflexible == NULL) {
|
||||
strncpy(mChild[i].mName, i_name, sizeof(mChild[i].mName));
|
||||
mChild[i].mReflexible = i_reflexible;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
// "No free HostIO entries. Could not register. \n"
|
||||
OSReport_Error("ホストIOの空きエントリがありません。登録できませんでした。\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* 80017B20-80017B88 .text deleteChild__16mDoHIO_subRoot_cFSc */
|
||||
void mDoHIO_subRoot_c::deleteChild(signed char) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80017C00-80017C84 .text __dt__13mDoHIO_root_cFv */
|
||||
mDoHIO_root_c::~mDoHIO_root_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80017C84-80017CF4 .text __dt__16mDoHIO_subRoot_cFv */
|
||||
mDoHIO_subRoot_c::~mDoHIO_subRoot_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80017CF4-80017D30 .text __dt__14mDoHIO_child_cFv */
|
||||
mDoHIO_child_c::~mDoHIO_child_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80017D30-80017D40 .text __ct__14mDoHIO_child_cFv */
|
||||
mDoHIO_child_c::mDoHIO_child_c() {
|
||||
/* Nonmatching */
|
||||
void mDoHIO_subRoot_c::deleteChild(s8 i_childID) {
|
||||
if (i_childID >= 0) {
|
||||
if (mChild[i_childID].mReflexible == NULL) {
|
||||
// "Danger: Trying to delete HostIO that has already been deleted<%s>\n"
|
||||
OSReport_Error("危険:すでに削除されているホストIOをさらに削除しようとしています<%s>\n", mChild[i_childID].mName);
|
||||
} else {
|
||||
mChild[i_childID].mReflexible = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+133
-49
@@ -4,75 +4,122 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 8000CB48-8000CBEC .text mDoMtx_XYZrotM__FPA4_fsss */
|
||||
void mDoMtx_XYZrotM(float(*)[4], short, short, short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_XYZrotM(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000CBEC-8000CC84 .text mDoMtx_ZXYrotS__FPA4_fsss */
|
||||
void mDoMtx_ZXYrotS(float(*)[4], short, short, short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_ZXYrotS(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(mtx, y);
|
||||
} else {
|
||||
PSMTXIdentity(mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000CC84-8000CD28 .text mDoMtx_ZXYrotM__FPA4_fsss */
|
||||
void mDoMtx_ZXYrotM(float(*)[4], short, short, short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_ZXYrotM(Mtx mtx, s16 x, s16 y, s16 z) {
|
||||
Mtx tmp;
|
||||
if (y != 0) {
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (x != 0) {
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
if (z != 0) {
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8000CD28-8000CD88 .text mDoMtx_XrotS__FPA4_fs */
|
||||
void mDoMtx_XrotS(float(*)[4], short) {
|
||||
void mDoMtx_XrotS(Mtx, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000CD88-8000CDC8 .text mDoMtx_XrotM__FPA4_fs */
|
||||
void mDoMtx_XrotM(float(*)[4], short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_XrotM(Mtx mtx, s16 x) {
|
||||
Mtx tmp;
|
||||
mDoMtx_XrotS(tmp, x);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
/* 8000CDC8-8000CE28 .text mDoMtx_YrotS__FPA4_fs */
|
||||
void mDoMtx_YrotS(float(*)[4], short) {
|
||||
void mDoMtx_YrotS(Mtx, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000CE28-8000CE68 .text mDoMtx_YrotM__FPA4_fs */
|
||||
void mDoMtx_YrotM(float(*)[4], short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_YrotM(Mtx mtx, s16 y) {
|
||||
Mtx tmp;
|
||||
mDoMtx_YrotS(tmp, y);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
/* 8000CE68-8000CEC8 .text mDoMtx_ZrotS__FPA4_fs */
|
||||
void mDoMtx_ZrotS(float(*)[4], short) {
|
||||
void mDoMtx_ZrotS(Mtx, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000CEC8-8000CF08 .text mDoMtx_ZrotM__FPA4_fs */
|
||||
void mDoMtx_ZrotM(float(*)[4], short) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_ZrotM(Mtx mtx, s16 z) {
|
||||
Mtx tmp;
|
||||
mDoMtx_ZrotS(tmp, z);
|
||||
PSMTXConcat(mtx, tmp, mtx);
|
||||
}
|
||||
|
||||
/* 8000CF08-8000D10C .text mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs */
|
||||
void mDoMtx_lookAt(float(*)[4], const Vec*, const Vec*, short) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000D10C-8000D148 .text __dt__4cXyzFv */
|
||||
cXyz::~cXyz() {
|
||||
void mDoMtx_lookAt(Mtx, const Vec*, const Vec*, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000D148-8000D284 .text mDoMtx_lookAt__FPA4_fPC3VecPC3VecPC3Vecs */
|
||||
void mDoMtx_lookAt(float(*)[4], const Vec*, const Vec*, const Vec*, short) {
|
||||
void mDoMtx_lookAt(Mtx, const Vec*, const Vec*, const Vec*, s16) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000D284-8000D388 .text mDoMtx_concatProjView__FPA4_CfPA4_CfPA4_f */
|
||||
void mDoMtx_concatProjView(const float(*)[4], const float(*)[4], float(*)[4]) {
|
||||
void mDoMtx_concatProjView(const Mtx, const Mtx, Mtx) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 8000D388-8000D530 .text mDoMtx_inverseTranspose__FPA4_CfPA4_f */
|
||||
void mDoMtx_inverseTranspose(const float(*)[4], float(*)[4]) {
|
||||
void mDoMtx_inverseTranspose(const Mtx, Mtx) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -82,51 +129,88 @@ void mDoMtx_QuatConcat(const Quaternion*, const Quaternion*, Quaternion*) {
|
||||
}
|
||||
|
||||
/* 8000D634-8000D74C .text mDoMtx_MtxToRot__FPA4_CfP5csXyz */
|
||||
void mDoMtx_MtxToRot(const float(*)[4], csXyz*) {
|
||||
/* Nonmatching */
|
||||
// NONMATCHING - sqrtf issues
|
||||
void mDoMtx_MtxToRot(const Mtx m, csXyz* o_rot) {
|
||||
o_rot->x = cM_atan2s(-m[1][2], sqrtf(m[0][2] * m[0][2] + m[2][2] * m[2][2]));
|
||||
|
||||
if (o_rot->x == 0x4000 || o_rot->x == -0x4000) {
|
||||
o_rot->z = 0;
|
||||
o_rot->y = cM_atan2s(-m[2][0], m[0][0]);
|
||||
} else {
|
||||
o_rot->y = cM_atan2s(m[0][2], m[2][2]);
|
||||
o_rot->z = cM_atan2s(m[1][0], m[1][1]);
|
||||
}
|
||||
}
|
||||
|
||||
Mtx mDoMtx_stack_c::now;
|
||||
Mtx mDoMtx_stack_c::buffer[16];
|
||||
|
||||
Mtx* mDoMtx_stack_c::next = mDoMtx_stack_c::buffer;
|
||||
Mtx* mDoMtx_stack_c::end = mDoMtx_stack_c::buffer + 16;
|
||||
|
||||
/* 8000D74C-8000D7CC .text push__14mDoMtx_stack_cFv */
|
||||
void mDoMtx_stack_c::push() {
|
||||
/* Nonmatching */
|
||||
bool mDoMtx_stack_c::push() {
|
||||
if (next >= end) {
|
||||
JUT_ASSERT(723, next < end)
|
||||
return false;
|
||||
}
|
||||
Mtx* old = next++;
|
||||
PSMTXCopy(now, *old);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8000D7CC-8000D850 .text pop__14mDoMtx_stack_cFv */
|
||||
void mDoMtx_stack_c::pop() {
|
||||
/* Nonmatching */
|
||||
bool mDoMtx_stack_c::pop() {
|
||||
if (next <= buffer) {
|
||||
JUT_ASSERT(745, next > buffer)
|
||||
return false;
|
||||
}
|
||||
next--;
|
||||
PSMTXCopy(*next, now);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8000D850-8000D888 .text transM__14mDoMtx_stack_cFfff */
|
||||
void mDoMtx_stack_c::transM(float, float, float) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_stack_c::transM(f32 x, f32 y, f32 z) {
|
||||
Mtx tmp;
|
||||
PSMTXTrans(tmp, x, y, z);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
|
||||
/* 8000D888-8000D8C0 .text scaleM__14mDoMtx_stack_cFfff */
|
||||
void mDoMtx_stack_c::scaleM(float, float, float) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_stack_c::scaleM(f32 x, f32 y, f32 z) {
|
||||
Mtx tmp;
|
||||
PSMTXScale(tmp, x, y, z);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
|
||||
/* 8000D8C0-8000D904 .text lYrotM__14mDoMtx_stack_cFl */
|
||||
void mDoMtx_stack_c::lYrotM(long) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_stack_c::lYrotM(s32 param_0) {
|
||||
Mtx m;
|
||||
mDoMtx_YrotS(m, param_0 >> 16);
|
||||
MTXConcat(now, m, now);
|
||||
}
|
||||
|
||||
/* 8000D904-8000D940 .text rYrotM__14mDoMtx_stack_cFf */
|
||||
void mDoMtx_stack_c::rYrotM(float) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_stack_c::rYrotM(f32 i_rad) {
|
||||
Mtx m;
|
||||
PSMTXRotRad(m, 'Y', i_rad);
|
||||
MTXConcat(now, m, now);
|
||||
}
|
||||
|
||||
/* 8000D940-8000D97C .text quatM__14mDoMtx_stack_cFPC10Quaternion */
|
||||
void mDoMtx_stack_c::quatM(const Quaternion*) {
|
||||
/* Nonmatching */
|
||||
void mDoMtx_stack_c::quatM(const Quaternion* param_0) {
|
||||
Mtx tmp;
|
||||
PSMTXQuat(tmp, param_0);
|
||||
PSMTXConcat(now, tmp, now);
|
||||
}
|
||||
|
||||
/* 8000D9F8-8000DA34 .text __dt__18mDoMtx_quatStack_cFv */
|
||||
mDoMtx_quatStack_c::~mDoMtx_quatStack_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
static mDoMtx_stack_c mDoMtx_stack;
|
||||
|
||||
/* 8000DA34-8000DA70 .text __dt__14mDoMtx_stack_cFv */
|
||||
mDoMtx_stack_c::~mDoMtx_stack_c() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
static mDoMtx_quatStack_c mDoMtx_quatStack;
|
||||
|
||||
extern Mtx g_mDoMtx_identity = {
|
||||
{1.0f, 0.0f, 0.0f, 0.0f},
|
||||
{0.0f, 1.0f, 0.0f, 0.0f},
|
||||
{0.0f, 0.0f, 1.0f, 0.0f},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user