aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 648ded2..935c9e7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,7 +24,7 @@ static void run_frame(GB *gb) {
gb->ppu.frame_ready = false;
// safety bound in case LCD is off (no frame_ready)
u64 budget = gb->cycles + 70224 * 2;
- while (!gb->ppu.frame_ready && gb->cycles < budget)
+ while (!gb->ppu.frame_ready && gb->cycles < budget && !gb->poweroff)
cpu_step(gb);
}
@@ -120,7 +120,7 @@ int main(int argc, char **argv) {
double start_t = now_sec();
u64 start_cyc = gb->cycles;
const double HZ = 4194304.0;
- while (running) {
+ while (running && !gb->poweroff) {
run_frame(gb); // advance ~a frame's worth of cycles
if (!uncapped) {
double target = start_t + (gb->cycles - start_cyc) / HZ;