diff --git a/src/frontend/App.cpp b/src/frontend/App.cpp index d25d2c19..0d6e0d88 100644 --- a/src/frontend/App.cpp +++ b/src/frontend/App.cpp @@ -7,7 +7,6 @@ void App::Run() { const u8* state = SDL_GetKeyboardState(nullptr); SDL_EventState(SDL_DROPFILE, SDL_ENABLE); while (!core.done) { - core.UpdateController(state); core.Run(window, window.volumeL, window.volumeR); SDL_Event event; @@ -54,6 +53,8 @@ void App::Run() { } } break; } + + core.UpdateController(state); } } } diff --git a/src/n64/Core.cpp b/src/n64/Core.cpp index 09d3ddf8..cc711dc4 100644 --- a/src/n64/Core.cpp +++ b/src/n64/Core.cpp @@ -32,7 +32,6 @@ CartInfo Core::LoadROM(const std::string& rom_) { void Core::Run(Window& window, float volumeL, float volumeR) { MMIO& mmio = mem.mmio; Controller& controller = mmio.si.controller; - int cycles = 0; for(int field = 0; field < mmio.vi.numFields; field++) { int frameCycles = 0; if(!pause && romLoaded) { diff --git a/src/n64/Core.hpp b/src/n64/Core.hpp index 734acf97..2a15dea5 100644 --- a/src/n64/Core.hpp +++ b/src/n64/Core.hpp @@ -18,6 +18,7 @@ struct Core { VI& GetVI() { return mem.mmio.vi; } u32 breakpoint = 0; + int cycles = 0; bool pause = true; bool romLoaded = false; diff --git a/src/n64/core/rsp/decode.cpp b/src/n64/core/rsp/decode.cpp index 9eeacd1a..084909a7 100644 --- a/src/n64/core/rsp/decode.cpp +++ b/src/n64/core/rsp/decode.cpp @@ -95,7 +95,7 @@ inline void cop2(RSP& rsp, u32 instr) { case 0x04: rsp.mtc2(instr); break; case 0x06: rsp.ctc2(instr); break; case 0x10: case 0x1C: case 0x1E: - case 0x1F: case 0x14: break; + case 0x1F: case 0x14: rsp.vzero(instr); break; default: util::panic("Unhandled RSP COP2 sub ({:05b})\n", mask_sub); } break;