CDROM: Hack timings to get further with booting

This commit is contained in:
Connor McLaughlin 2019-09-22 21:40:44 +10:00
parent c772047715
commit f2d62fcce0
2 changed files with 10 additions and 8 deletions

View File

@ -80,7 +80,7 @@ int main(int argc, char* argv[])
{ {
// set log flags // set log flags
// g_pLog->SetConsoleOutputParams(true, nullptr, LOGLEVEL_DEBUG); // g_pLog->SetConsoleOutputParams(true, nullptr, LOGLEVEL_DEBUG);
g_pLog->SetConsoleOutputParams(true, "GPU GPU_HW_OpenGL Pad DigitalController", LOGLEVEL_DEBUG); g_pLog->SetConsoleOutputParams(true, "GPU GPU_HW_OpenGL DMA Pad DigitalController", LOGLEVEL_DEBUG);
#ifdef Y_BUILD_CONFIG_RELEASE #ifdef Y_BUILD_CONFIG_RELEASE
g_pLog->SetFilterLevel(LOGLEVEL_INFO); g_pLog->SetFilterLevel(LOGLEVEL_INFO);
@ -88,6 +88,7 @@ int main(int argc, char* argv[])
#else #else
// g_pLog->SetFilterLevel(LOGLEVEL_TRACE); // g_pLog->SetFilterLevel(LOGLEVEL_TRACE);
g_pLog->SetFilterLevel(LOGLEVEL_DEBUG); g_pLog->SetFilterLevel(LOGLEVEL_DEBUG);
// g_pLog->SetFilterLevel(LOGLEVEL_DEV);
#endif #endif
// return NoGUITest(); // return NoGUITest();

View File

@ -505,7 +505,7 @@ void CDROM::ExecuteCommand()
m_response_fifo.Push(m_secondary_status.bits); m_response_fifo.Push(m_secondary_status.bits);
SetInterrupt(Interrupt::INT3); SetInterrupt(Interrupt::INT3);
StopReading(); StopReading();
NextCommandStage(true, 100); NextCommandStage(true, 1000);
} }
else else
{ {
@ -525,7 +525,7 @@ void CDROM::ExecuteCommand()
m_response_fifo.Push(m_secondary_status.bits); m_response_fifo.Push(m_secondary_status.bits);
SetInterrupt(Interrupt::INT3); SetInterrupt(Interrupt::INT3);
StopReading(); StopReading();
NextCommandStage(true, 100); NextCommandStage(true, 1000);
} }
else else
{ {
@ -586,7 +586,7 @@ void CDROM::BeginReading()
m_secondary_status.reading = true; m_secondary_status.reading = true;
m_reading = true; m_reading = true;
m_sector_read_remaining_ticks = 100; m_sector_read_remaining_ticks = 4000;
m_system->SetDowncount(m_sector_read_remaining_ticks); m_system->SetDowncount(m_sector_read_remaining_ticks);
UpdateStatusRegister(); UpdateStatusRegister();
} }
@ -596,9 +596,10 @@ void CDROM::DoSectorRead()
if (HasPendingInterrupt()) if (HasPendingInterrupt())
{ {
// can't read with a pending interrupt? // can't read with a pending interrupt?
m_sector_read_remaining_ticks += 10; Log_WarningPrintf("Missed sector read...");
m_system->SetDowncount(m_sector_read_remaining_ticks); //m_sector_read_remaining_ticks += 10;
return; //m_system->SetDowncount(m_sector_read_remaining_ticks);
//return;
} }
Log_DebugPrintf("Reading sector %llu", m_media->GetCurrentLBA()); Log_DebugPrintf("Reading sector %llu", m_media->GetCurrentLBA());
@ -612,7 +613,7 @@ void CDROM::DoSectorRead()
SetInterrupt(Interrupt::INT1); SetInterrupt(Interrupt::INT1);
UpdateStatusRegister(); UpdateStatusRegister();
m_sector_read_remaining_ticks += 100; m_sector_read_remaining_ticks += 4000;
m_system->SetDowncount(m_sector_read_remaining_ticks); m_system->SetDowncount(m_sector_read_remaining_ticks);
} }