diff --git a/src/devices/chihiro/MediaBoard.cpp b/src/devices/chihiro/MediaBoard.cpp index 4ff753d2e..d17092f8f 100644 --- a/src/devices/chihiro/MediaBoard.cpp +++ b/src/devices/chihiro/MediaBoard.cpp @@ -90,6 +90,9 @@ void MediaBoard::ComRead(uint32_t offset, void* buffer, uint32_t length) void MediaBoard::ComWrite(uint32_t offset, void* buffer, uint32_t length) { + // Instant replies cause race conditions, software seems to expect at least a little delay + Sleep(100); + if (offset == 0x900000) { // Some kind of reset? memcpy(readBuffer, buffer, 0x20); return; @@ -115,7 +118,7 @@ void MediaBoard::ComWrite(uint32_t offset, void* buffer, uint32_t length) // Read the given Command and handle it uint32_t command = inputBuffer16[1]; switch (command) { - case MB_CMD_DIMM_SIZE: + case MB_CMD_DIMM_SIZE: outputBuffer32[1] = 1024 * ONE_MB; break; case MB_CMD_STATUS: