// Run a frame (with or without sound) int RunFrame(int Draw,short *pSound) { if (!NoInput) InputGet(); MastDrawDo=Draw; pMsndOut=pSound; // Run frame EmuFrame(); RunPreChangeStatus(); // Update status window StatusCount--; if (StatusCount==0) { if (StatusMode==STATUS_AUTO) ShowWindow(hFrameStatus,SW_HIDE); SetWindowText(hFrameStatus,""); StatusCount=-1; } RunPostChangeStatus(); if (Draw) DispDraw(); PythonPostFrame(); return 0; }
static void EmuThreadFunc() { setCurrentThreadName("Emu"); while (true) { switch ((EmuThreadState)emuThreadState) { case EmuThreadState::START_REQUESTED: emuThreadState = EmuThreadState::RUNNING; /* fallthrough */ case EmuThreadState::RUNNING: EmuFrame(); break; case EmuThreadState::PAUSE_REQUESTED: emuThreadState = EmuThreadState::PAUSED; /* fallthrough */ case EmuThreadState::PAUSED: sleep_ms(1); break; default: case EmuThreadState::QUIT_REQUESTED: emuThreadState = EmuThreadState::STOPPED; ctx->StopThread(); return; } } }
static int DoGame() { if(fastForward) { PicoSkipFrame+=1; PicoSkipFrame&=7; } else PicoSkipFrame=0; if(frameStep==1) return 0; else if(frameStep==3) frameStep=1; EmuFrame(); emu_frame++; if (Inp.held[7]==1) LoopMode=2; // Right thumb = Toggle Menu return 0; }