chihiro: fix an issue where media board detection failed due to instant response time

This commit is contained in:
Luke Usher 2022-03-01 20:37:10 +00:00 committed by RadWolfie
parent f894d31332
commit 3edd8d168b
1 changed files with 4 additions and 1 deletions

View File

@ -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: