dirkvdb/ps3netsrv--

XMB hangs when mounting PSX ISO from mmCM

Closed this issue · 2 comments

Mounting a PS3 ISO via MultiMan/mmCM works as expected, but when selecting a PSX ISO image, the PS3 XMB hangs (you see the glittering dots appearing but they stay forever) upon exiting mmCM.

When killing the ps3netsrv process, startup continues.

Okay, I think I found the issue in customReadFile(). The pointer to read the chunks variable from is calculated wrongly. I think pointer tricks aren't even necessary here.

diff --git a/ps3netsrv.cpp b/ps3netsrv.cpp
index 8252036..24df1e0 100644
--- a/ps3netsrv.cpp
+++ b/ps3netsrv.cpp
@@ -206,7 +206,7 @@ public:

         throwOnBadReadFile();
         uint64_t offset = 2352 * m_Command.count;
-        uint32_t chunks = *reinterpret_cast<uint32_t*>((&m_Command.offset) + sizeof(uint32_t));
+       uint32_t chunks = m_Command.offset >> 32;

         if ((chunks * m_ChunkSize) > m_BufferSize)
         {

This does the trick for me (on ARM host).

Correct, pull request was merged