|
@@ -33,19 +33,16 @@ void EmuThread::run()
|
|
|
stop_run = false;
|
|
stop_run = false;
|
|
|
while (!stop_run)
|
|
while (!stop_run)
|
|
|
{
|
|
{
|
|
|
- for (int tight_loop = 0; tight_loop < 10000; ++tight_loop)
|
|
|
|
|
|
|
+ if (cpu_running)
|
|
|
{
|
|
{
|
|
|
- if (cpu_running || exec_cpu_step)
|
|
|
|
|
- {
|
|
|
|
|
- if (exec_cpu_step)
|
|
|
|
|
- exec_cpu_step = false;
|
|
|
|
|
-
|
|
|
|
|
- Core::SingleStep();
|
|
|
|
|
- if (!cpu_running) {
|
|
|
|
|
- emit CPUStepped();
|
|
|
|
|
- yieldCurrentThread();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ Core::RunLoop();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (exec_cpu_step)
|
|
|
|
|
+ {
|
|
|
|
|
+ exec_cpu_step = false;
|
|
|
|
|
+ Core::SingleStep();
|
|
|
|
|
+ emit CPUStepped();
|
|
|
|
|
+ yieldCurrentThread();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
render_window->moveContext();
|
|
render_window->moveContext();
|