From 1e7edc161c9a7ec190c82db6def9c2b2e2631cfd Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 30 Jun 2025 10:59:01 -0400 Subject: [PATCH 1/3] Renamed two NetManager functions --- config/RMCP01/module/symbols.txt | 4 ++-- src/net/NetManager.cpp | 7 +++---- src/net/NetManager.hpp | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/config/RMCP01/module/symbols.txt b/config/RMCP01/module/symbols.txt index b98dc2e9..c29f0dc8 100644 --- a/config/RMCP01/module/symbols.txt +++ b/config/RMCP01/module/symbols.txt @@ -7199,14 +7199,14 @@ setToMMSuspensionUnk3__Q23Net10NetManagerFv = .text:0x00146554; // type:function setDisconnectInfo__Q23Net10NetManagerFQ23Net14DisconnectTypel = .text:0x0014656C; // type:function size:0x94 getDisconnectInfo__Q23Net10NetManagerFv = .text:0x00146600; // type:function size:0x7C resetDisconnectInfo__Q23Net10NetManagerFv = .text:0x0014667C; // type:function size:0x5C -getTimeDiff__Q23Net10NetManagerFv = .text:0x001466D8; // type:function size:0x60 +getLatency__Q23Net10NetManagerFv = .text:0x001466D8; // type:function size:0x60 fn_1_146738 = .text:0x00146738; // type:function size:0x58 fn_1_146790 = .text:0x00146790; // type:function size:0x28 fn_1_1467B8 = .text:0x001467B8; // type:function size:0x134 fn_1_1468EC = .text:0x001468EC; // type:function size:0xCC fn_1_1469B8 = .text:0x001469B8; // type:function size:0x30 isConnectionStateIdleOrInMM__Q23Net10NetManagerFv = .text:0x001469E8; // type:function size:0xA8 -isTaskExist__Q23Net10NetManagerFv = .text:0x00146A90; // type:function size:0x2C +isTaskThreadIdle__Q23Net10NetManagerFv = .text:0x00146A90; // type:function size:0x2C isConnectionStateIdle__Q23Net10NetManagerFv = .text:0x00146ABC; // type:function size:0x90 hasFoundMatch__Q23Net10NetManagerFv = .text:0x00146B4C; // type:function size:0x40 fn_1_146B8C = .text:0x00146B8C; // type:function size:0xB8 diff --git a/src/net/NetManager.cpp b/src/net/NetManager.cpp index 77e66c93..8abab3e4 100644 --- a/src/net/NetManager.cpp +++ b/src/net/NetManager.cpp @@ -155,7 +155,7 @@ void NetManager::resetDisconnectInfo() { OSUnlockMutex(&m_mutex); } -s32 NetManager::getTimeDiff() { +s32 NetManager::getLatency() { s32 time = m_matchMakingInfos[m_currMMInfo].m_MMStartTime; // has to do u64 comparison @@ -164,7 +164,7 @@ s32 NetManager::getTimeDiff() { } OSTime currTime = OSGetTime(); - return ((s32)currTime - time) / OS_TIMER_CLOCK; + return OSTicksToSeconds((s32)currTime - time); } bool NetManager::isConnectionStateIdleOrInMM() { @@ -180,8 +180,7 @@ bool NetManager::isConnectionStateIdleOrInMM() { return idleOrMM; } -bool NetManager::isTaskExist() { - // checks if we've requested mainNetworkLoop +bool NetManager::isTaskThreadIdle() { return m_taskThread->isTaskExist() ? false : true; } diff --git a/src/net/NetManager.hpp b/src/net/NetManager.hpp index 9641e6c9..c38fceb8 100644 --- a/src/net/NetManager.hpp +++ b/src/net/NetManager.hpp @@ -76,13 +76,13 @@ class NetManager { void resetDisconnectInfo(); - s32 getTimeDiff(); + s32 getLatency(); void initMMInfos(); bool isConnectionStateIdleOrInMM(); - bool isTaskExist(); + bool isTaskThreadIdle(); bool isConnectionStateIdle(); From 6d59ab341f4a04d113ce2c7df9db4ec30ad24ddf Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 30 Jun 2025 11:49:07 -0400 Subject: [PATCH 2/3] Added const to NetManager functions where applicable --- config/RMCP01/module/symbols.txt | 10 +++++----- src/net/NetManager.cpp | 20 +++++++++----------- src/net/NetManager.hpp | 12 ++++++------ src/net/packets/RACEHEADER1.hpp | 7 +++---- src/net/packets/ROOM.hpp | 1 - src/net/packets/USER.hpp | 6 ++---- 6 files changed, 25 insertions(+), 31 deletions(-) diff --git a/config/RMCP01/module/symbols.txt b/config/RMCP01/module/symbols.txt index c29f0dc8..69bad200 100644 --- a/config/RMCP01/module/symbols.txt +++ b/config/RMCP01/module/symbols.txt @@ -7197,18 +7197,18 @@ resetRH1andROOM__Q23Net10NetManagerFv = .text:0x001464E4; // type:function size: setToMMSuspensionUnk2__Q23Net10NetManagerFv = .text:0x0014653C; // type:function size:0x18 setToMMSuspensionUnk3__Q23Net10NetManagerFv = .text:0x00146554; // type:function size:0x18 setDisconnectInfo__Q23Net10NetManagerFQ23Net14DisconnectTypel = .text:0x0014656C; // type:function size:0x94 -getDisconnectInfo__Q23Net10NetManagerFv = .text:0x00146600; // type:function size:0x7C +getDisconnectInfo__Q23Net10NetManagerCFv = .text:0x00146600; // type:function size:0x7C resetDisconnectInfo__Q23Net10NetManagerFv = .text:0x0014667C; // type:function size:0x5C -getLatency__Q23Net10NetManagerFv = .text:0x001466D8; // type:function size:0x60 +matchMakingElapsedSeconds__Q23Net10NetManagerFv = .text:0x001466D8; // type:function size:0x60 fn_1_146738 = .text:0x00146738; // type:function size:0x58 fn_1_146790 = .text:0x00146790; // type:function size:0x28 fn_1_1467B8 = .text:0x001467B8; // type:function size:0x134 fn_1_1468EC = .text:0x001468EC; // type:function size:0xCC fn_1_1469B8 = .text:0x001469B8; // type:function size:0x30 -isConnectionStateIdleOrInMM__Q23Net10NetManagerFv = .text:0x001469E8; // type:function size:0xA8 +isConnectionStateIdleOrInMM__Q23Net10NetManagerCFv = .text:0x001469E8; // type:function size:0xA8 isTaskThreadIdle__Q23Net10NetManagerFv = .text:0x00146A90; // type:function size:0x2C -isConnectionStateIdle__Q23Net10NetManagerFv = .text:0x00146ABC; // type:function size:0x90 -hasFoundMatch__Q23Net10NetManagerFv = .text:0x00146B4C; // type:function size:0x40 +isConnectionStateIdle__Q23Net10NetManagerCFv = .text:0x00146ABC; // type:function size:0x90 +hasFoundMatch__Q23Net10NetManagerCFv = .text:0x00146B4C; // type:function size:0x40 fn_1_146B8C = .text:0x00146B8C; // type:function size:0xB8 setConnectionStateIdle__Q23Net10NetManagerFv = .text:0x00146C44; // type:function size:0xC RKNetController_construct = .text:0x00146C50; // type:function size:0x3D8 scope:global align:4 diff --git a/src/net/NetManager.cpp b/src/net/NetManager.cpp index 8abab3e4..83f890c3 100644 --- a/src/net/NetManager.cpp +++ b/src/net/NetManager.cpp @@ -127,10 +127,10 @@ void NetManager::setDisconnectInfo(DisconnectType dcType, s32 errorCode) { OSUnlockMutex(&m_mutex); } -DisconnectInfo NetManager::getDisconnectInfo() { +DisconnectInfo NetManager::getDisconnectInfo() const { DisconnectInfo dcInfo; - OSLockMutex(&m_mutex); + OSLockMutex(const_cast(&m_mutex)); if (m_disconnectInfo.type != DISCONNECT_TYPE_UNRECOVERABLE_ERROR && m_hasEjectedDisk) { @@ -141,7 +141,7 @@ DisconnectInfo NetManager::getDisconnectInfo() { dcInfo.type = m_disconnectInfo.type; dcInfo.code = m_disconnectInfo.code; } - OSUnlockMutex(&m_mutex); + OSUnlockMutex(const_cast(&m_mutex)); return dcInfo; } @@ -155,7 +155,7 @@ void NetManager::resetDisconnectInfo() { OSUnlockMutex(&m_mutex); } -s32 NetManager::getLatency() { +s32 NetManager::matchMakingElapsedSeconds() { s32 time = m_matchMakingInfos[m_currMMInfo].m_MMStartTime; // has to do u64 comparison @@ -167,7 +167,7 @@ s32 NetManager::getLatency() { return OSTicksToSeconds((s32)currTime - time); } -bool NetManager::isConnectionStateIdleOrInMM() { +bool NetManager::isConnectionStateIdleOrInMM() const { bool idleOrMM = false; switch (getConnectionState()) { @@ -180,15 +180,13 @@ bool NetManager::isConnectionStateIdleOrInMM() { return idleOrMM; } -bool NetManager::isTaskThreadIdle() { - return m_taskThread->isTaskExist() ? false : true; -} +bool NetManager::isTaskThreadIdle() { return !m_taskThread->isTaskExist(); } -bool NetManager::isConnectionStateIdle() { +bool NetManager::isConnectionStateIdle() const { return getConnectionState() == CONNECTION_STATE_IDLE; } -bool NetManager::hasFoundMatch() { +bool NetManager::hasFoundMatch() const { bool inMatch = false; bool isMyAidInMatch = (1 << m_matchMakingInfos[m_currMMInfo].m_myAid) & @@ -210,7 +208,7 @@ void NetManager::setConnectionState(ConnectionState connState) { m_connectionState = connState; } -NetManager::ConnectionState NetManager::getConnectionState() { +NetManager::ConnectionState NetManager::getConnectionState() const { s32 code; u32 type; DWC_GetLastErrorEx(&code, &type); diff --git a/src/net/NetManager.hpp b/src/net/NetManager.hpp index c38fceb8..4b669bb2 100644 --- a/src/net/NetManager.hpp +++ b/src/net/NetManager.hpp @@ -72,27 +72,27 @@ class NetManager { void setToMMSuspensionUnk3(); - DisconnectInfo getDisconnectInfo(); + DisconnectInfo getDisconnectInfo() const; void resetDisconnectInfo(); - s32 getLatency(); + s32 matchMakingElapsedSeconds(); void initMMInfos(); - bool isConnectionStateIdleOrInMM(); + bool isConnectionStateIdleOrInMM() const; bool isTaskThreadIdle(); - bool isConnectionStateIdle(); + bool isConnectionStateIdle() const; - bool hasFoundMatch(); + bool hasFoundMatch() const; void setConnectionStateIdle(); void setConnectionState(ConnectionState connState); - inline ConnectionState getConnectionState(); + inline ConnectionState getConnectionState() const; void* alloc(u32 size, s32 alignment); diff --git a/src/net/packets/RACEHEADER1.hpp b/src/net/packets/RACEHEADER1.hpp index 5d6b184b..f3584e15 100644 --- a/src/net/packets/RACEHEADER1.hpp +++ b/src/net/packets/RACEHEADER1.hpp @@ -11,14 +11,13 @@ static_assert(sizeof(RACEHEADER1Packet) == 0x28); class RACEHEADER1Handler { public: - static RACEHEADER1Handler *getInstance() { - return spInstance; - } - void setPrepared(); void reset(); + static RACEHEADER1Handler *getInstance() { + return spInstance; + } private: bool m_prepared; u8 _004[0x260 - 0x001]; diff --git a/src/net/packets/ROOM.hpp b/src/net/packets/ROOM.hpp index bbc48467..8cf770ac 100644 --- a/src/net/packets/ROOM.hpp +++ b/src/net/packets/ROOM.hpp @@ -35,7 +35,6 @@ class ROOMHandler { static ROOMHandler *getInstance() { return spInstance; } - private: u8 _00[0x80 - 0x00]; diff --git a/src/net/packets/USER.hpp b/src/net/packets/USER.hpp index a9d092be..acfdc00b 100644 --- a/src/net/packets/USER.hpp +++ b/src/net/packets/USER.hpp @@ -11,14 +11,12 @@ static_assert(sizeof(USERPacket) == 0xc0); class USERHandler { public: + void update(); + static USERHandler *getInstance() { return spInstance; } - - void update(); - private: - u8 _000[0x9f0 - 0x000]; static USERHandler *spInstance; From 8aee8bc06f6d1c8e47808f7a6a594ef942aece80 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 30 Jun 2025 12:09:46 -0400 Subject: [PATCH 3/3] Remove const from getDisconnectInfo() --- config/RMCP01/module/symbols.txt | 2 +- src/net/NetManager.cpp | 6 +++--- src/net/NetManager.hpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/RMCP01/module/symbols.txt b/config/RMCP01/module/symbols.txt index 69bad200..f3fbb269 100644 --- a/config/RMCP01/module/symbols.txt +++ b/config/RMCP01/module/symbols.txt @@ -7197,7 +7197,7 @@ resetRH1andROOM__Q23Net10NetManagerFv = .text:0x001464E4; // type:function size: setToMMSuspensionUnk2__Q23Net10NetManagerFv = .text:0x0014653C; // type:function size:0x18 setToMMSuspensionUnk3__Q23Net10NetManagerFv = .text:0x00146554; // type:function size:0x18 setDisconnectInfo__Q23Net10NetManagerFQ23Net14DisconnectTypel = .text:0x0014656C; // type:function size:0x94 -getDisconnectInfo__Q23Net10NetManagerCFv = .text:0x00146600; // type:function size:0x7C +getDisconnectInfo__Q23Net10NetManagerFv = .text:0x00146600; // type:function size:0x7C resetDisconnectInfo__Q23Net10NetManagerFv = .text:0x0014667C; // type:function size:0x5C matchMakingElapsedSeconds__Q23Net10NetManagerFv = .text:0x001466D8; // type:function size:0x60 fn_1_146738 = .text:0x00146738; // type:function size:0x58 diff --git a/src/net/NetManager.cpp b/src/net/NetManager.cpp index 83f890c3..d985f2b9 100644 --- a/src/net/NetManager.cpp +++ b/src/net/NetManager.cpp @@ -127,10 +127,10 @@ void NetManager::setDisconnectInfo(DisconnectType dcType, s32 errorCode) { OSUnlockMutex(&m_mutex); } -DisconnectInfo NetManager::getDisconnectInfo() const { +DisconnectInfo NetManager::getDisconnectInfo() { DisconnectInfo dcInfo; - OSLockMutex(const_cast(&m_mutex)); + OSLockMutex(&m_mutex); if (m_disconnectInfo.type != DISCONNECT_TYPE_UNRECOVERABLE_ERROR && m_hasEjectedDisk) { @@ -141,7 +141,7 @@ DisconnectInfo NetManager::getDisconnectInfo() const { dcInfo.type = m_disconnectInfo.type; dcInfo.code = m_disconnectInfo.code; } - OSUnlockMutex(const_cast(&m_mutex)); + OSUnlockMutex(&m_mutex); return dcInfo; } diff --git a/src/net/NetManager.hpp b/src/net/NetManager.hpp index 4b669bb2..fdc8039e 100644 --- a/src/net/NetManager.hpp +++ b/src/net/NetManager.hpp @@ -72,7 +72,7 @@ class NetManager { void setToMMSuspensionUnk3(); - DisconnectInfo getDisconnectInfo() const; + DisconnectInfo getDisconnectInfo(); void resetDisconnectInfo();