diff --git a/Core/Console.cpp b/Core/Console.cpp index 7ab350f..7bdd58d 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -123,6 +123,9 @@ void Console::Run() stats.DisplayStats(lastFrameTime); } + _controlManager->UpdateInputState(); + _internalRegisters->ProcessAutoJoypadRead(); + previousFrameCount = _ppu->GetFrameCount(); } } @@ -138,6 +141,9 @@ void Console::RunSingleFrame() uint32_t lastFrameNumber = _ppu->GetFrameCount(); _emulationThreadId = std::this_thread::get_id(); + _controlManager->UpdateInputState(); + _internalRegisters->ProcessAutoJoypadRead(); + while(_ppu->GetFrameCount() == lastFrameNumber) { _cpu->Exec(); } diff --git a/Core/Ppu.cpp b/Core/Ppu.cpp index 1802d51..1d68b07 100644 --- a/Core/Ppu.cpp +++ b/Core/Ppu.cpp @@ -399,8 +399,6 @@ bool Ppu::ProcessEndOfScanline(uint16_t hClock) _frameCount++; _console->GetSpc()->ProcessEndFrame(); - _console->GetControlManager()->UpdateInputState(); - _regs->ProcessAutoJoypadRead(); _regs->SetNmiFlag(true); SendFrame();