summaryrefslogtreecommitdiff
path: root/src/JSystem
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2025-09-24 05:27:24 +0300
committerGitHub <noreply@github.com>2025-09-23 20:27:24 -0600
commit169c7ae4a2e892a78babe26b450a2846ea0d8e38 (patch)
tree085f3eff6babca2b93d25c9b3ac3d2f3cd4885e8 /src/JSystem
parent68b4af5eab55fa9aeff69d8425a7d26d14689264 (diff)
JHOSTIO almost comletely linked (#2689)
Diffstat (limited to 'src/JSystem')
-rw-r--r--src/JSystem/JHostIO/JHIComm.cpp82
-rw-r--r--src/JSystem/JHostIO/JHIMccBuf.cpp14
-rw-r--r--src/JSystem/JHostIO/JHIhioASync.cpp2
-rw-r--r--src/JSystem/JHostIO/JORFile.cpp7
-rw-r--r--src/JSystem/JHostIO/JORServer.cpp2
5 files changed, 53 insertions, 54 deletions
diff --git a/src/JSystem/JHostIO/JHIComm.cpp b/src/JSystem/JHostIO/JHIComm.cpp
index 21238bbb36..f406fb4a47 100644
--- a/src/JSystem/JHostIO/JHIComm.cpp
+++ b/src/JSystem/JHostIO/JHIComm.cpp
@@ -80,31 +80,28 @@ void JHICommBufReader::readEnd() {
m_header.updateGetAdrs();
}
-// NONMATCHING - stack / branch issues
int JHICommBufReader::read(void* param_0, int param_1) {
int sp2C = min(param_1, m_header.getReadableSize());
u32 sp28;
int var_r28 = sp2C;
u8* var_r30 = (u8*)param_0;
- if (var_r28 > 0) {
- int sp24 = m_header.getContSize();
- if (sp24 > 0) {
- int sp20 = min(var_r28, 4 - sp24);
- m_header.alignGetAdrs();
-
- mp_memBuffer->readIO(m_header.getGetAdrs(), &sp28);
-
- int sp1C = sp24;
- int sp18 = sp24 + sp20;
- for (; sp1C < sp18; sp1C++) {
- *var_r30 = sp28 >> ((3 - sp1C) * 8);
- var_r30++;
- }
-
- var_r28 -= sp20;
- m_header.addGetAdrs(sp24 + sp20);
+ int sp24;
+ if (var_r28 > 0 && (sp24 = m_header.getContSize()) > 0) {
+ int sp20 = min(var_r28, 4 - sp24);
+ m_header.alignGetAdrs();
+
+ mp_memBuffer->readIO(m_header.getGetAdrs(), &sp28);
+
+ int sp1C = sp24;
+ int sp18 = sp24 + sp20;
+ for (; sp1C < sp18; sp1C++) {
+ *var_r30 = sp28 >> ((3 - sp1C) * 8);
+ var_r30++;
}
+
+ var_r28 -= sp20;
+ m_header.addGetAdrs(sp24 + sp20);
}
while (var_r28 >= 4) {
@@ -229,34 +226,31 @@ void JHICommBufWriter::writeEnd() {
m_header.updatePutAdrs();
}
-// NONMATCHING - stack / misc issues
int JHICommBufWriter::write(void* param_0, int param_1) {
int sp28 = min(param_1, m_header.getWritebleSize());
int var_r27 = sp28;
u8* var_r29 = (u8*)param_0;
u8* var_r30 = &m_header.field_0x30;
- if (var_r27 > 0) {
- int sp24 = m_header.getRemSize();
- if (sp24 > 0) {
- int sp20 = min(4 - sp24, var_r27);
-
- int sp1C = sp24;
- int sp18 = sp24 + sp20;
- for (; sp1C < sp18; sp1C++) {
- var_r30[sp1C] = *var_r29++;
- }
-
- var_r27 -= sp20;
- m_header.alignPutAdrs();
-
- mp_memBuffer->writeIO(m_header.getPutAdrs(),
- (m_header.field_0x30 << 0x18) |
- (m_header.field_0x31 << 0x10) |
- (m_header.field_0x32 << 0x08) |
- (m_header.field_0x33 << 0x00));
- m_header.addPutAdrs(sp24 + sp20);
+ int sp24;
+ if (var_r27 > 0 && (sp24 = m_header.getRemSize()) > 0) {
+ int sp20 = min(4 - sp24, var_r27);
+
+ int sp1C = sp24;
+ int sp18 = sp24 + sp20;
+ for (; sp1C < sp18; sp1C++) {
+ var_r30[sp1C] = *var_r29++;
}
+
+ var_r27 -= sp20;
+ m_header.alignPutAdrs();
+
+ mp_memBuffer->writeIO(m_header.getPutAdrs(),
+ (var_r30[0] << 0x18) |
+ (var_r30[1] << 0x10) |
+ (var_r30[2] << 0x08) |
+ (var_r30[3] << 0x00));
+ m_header.addPutAdrs(sp24 + sp20);
}
while (var_r27 >= 4) {
@@ -276,14 +270,14 @@ int JHICommBufWriter::write(void* param_0, int param_1) {
int sp14 = var_r27;
for (int i = 0; i < sp14; i++) {
- var_r30[sp14] = *var_r29++;
+ var_r30[i] = *var_r29++;
}
mp_memBuffer->writeIO(m_header.getPutAdrs(),
- (m_header.field_0x30 << 0x18) |
- (m_header.field_0x31 << 0x10) |
- (m_header.field_0x32 << 0x08) |
- (m_header.field_0x33 << 0x00));
+ (var_r30[0] << 0x18) |
+ (var_r30[1] << 0x10) |
+ (var_r30[2] << 0x08) |
+ (var_r30[3] << 0x00));
var_r27 -= sp14;
m_header.addPutAdrs(sp14);
diff --git a/src/JSystem/JHostIO/JHIMccBuf.cpp b/src/JSystem/JHostIO/JHIMccBuf.cpp
index 5d2ae8d78a..6a9df9d841 100644
--- a/src/JSystem/JHostIO/JHIMccBuf.cpp
+++ b/src/JSystem/JHostIO/JHIMccBuf.cpp
@@ -389,15 +389,19 @@ int JHIMccBufWriter::writeBegin() {
return var_r29;
}
-// NONMATCHING - regswap, equivalent
int JHIMccBufWriter::write(void* pBuffer, u32 size) {
if (!isPort()) {
return 0;
}
- u32 var_r29 = setDataToBuf(pBuffer, size);
-
+ u32 var_r26;
u32 var_r27;
+ u32 var_r28;
+
+ // Probably fake match
+ var_r28 = var_r28;
+
+ u32 var_r29 = setDataToBuf(pBuffer, size);
if (mBeginPos == field_0xc) {
var_r27 = field_0x1c + field_0xc;
var_r27 -= 0x20;
@@ -405,10 +409,10 @@ int JHIMccBufWriter::write(void* pBuffer, u32 size) {
var_r27 = mBeginPos - 0x20;
}
- u32 var_r26;
if (mEndPos > var_r27) {
+ int x;
var_r26 = field_0x1c - (mEndPos - var_r27);
- u32 var_r28 = (field_0x1c + field_0xc) - mEndPos;
+ var_r28 = (field_0x1c + field_0xc) - mEndPos;
if (var_r28 >= var_r29) {
if (!JHIMCCWrite(mChannel, mWriteOffset + mEndPos, mTempBuf, var_r29)) {
diff --git a/src/JSystem/JHostIO/JHIhioASync.cpp b/src/JSystem/JHostIO/JHIhioASync.cpp
index 1ad9320da0..e9dfd586e8 100644
--- a/src/JSystem/JHostIO/JHIhioASync.cpp
+++ b/src/JSystem/JHostIO/JHIhioASync.cpp
@@ -48,7 +48,6 @@ static void dummyString() {
DEAD_STRING("INFO:Quitting Hostio...");
}
-// NONMATCHING - small branch issue
u32 JHIEventLoop() {
static u32 tNowWrite;
static u32 tNowRead;
@@ -141,6 +140,7 @@ u32 JHIEventLoop() {
if (!gMccContext.mp_reader->isPort() || !gMccContext.mp_writer->isPort()) {
gsEnableInterface = 0;
}
+ (void)0;
} else if (!gsEnableInterface && gsEnableHostio != 0 && JHIInitInterface()) {
OS_REPORT("INFO: JHostIO: Enabled USB2EXI Interface\n");
bool sp8 = JHINegotiateInterface(800);
diff --git a/src/JSystem/JHostIO/JORFile.cpp b/src/JSystem/JHostIO/JORFile.cpp
index f29c9f9952..b412958d88 100644
--- a/src/JSystem/JHostIO/JORFile.cpp
+++ b/src/JSystem/JHostIO/JORFile.cpp
@@ -9,7 +9,8 @@ JORFile::JORFile()
mFileLength(0),
mStatus(EStatus_WAIT),
mNFileName(0),
- field_0x18(0) {}
+ field_0x18(0),
+ mDataStream() {}
int JORFile::countMaskSize(const char* mask) {
u32 var_r28 = 0;
@@ -77,11 +78,11 @@ int JORFile::open(const char* path, u32 flags, const char* extMask, const char*
return 1;
}
-// NONMATCHING, equivalent?
void JORFile::close() {
+ JORMContext* mctx;
if (mHandle != 0) {
mStatus = EStatus_WAIT;
- JORMContext* mctx = JORServer::getInstance()->attachMCTX(MCTX_MSG_FIO);
+ mctx = JORServer::getInstance()->attachMCTX(MCTX_MSG_FIO);
mctx->closeFile(this);
JORServer::getInstance()->releaseMCTX(mctx);
diff --git a/src/JSystem/JHostIO/JORServer.cpp b/src/JSystem/JHostIO/JORServer.cpp
index a6261f45bc..f453351894 100644
--- a/src/JSystem/JHostIO/JORServer.cpp
+++ b/src/JSystem/JHostIO/JORServer.cpp
@@ -163,7 +163,7 @@ void JORServer::releaseMCTX(JORMContext* mctx) {
ASSERTMSGLINE(292, mctx->msgSize() < 0x10000, "JORServer:releaseMCTX: context buffer probably overflowed.\n");
if (mctx->msgSize() > 4) {
- const void* var_r28 = send(mctx->msgPtr(), mctx->msgSize());
+ const s32 var_r28 = send(mctx->msgPtr(), mctx->msgSize());
}
}