From 949e216c6954362cedf976d893b3d257b607366c Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Sat, 30 Dec 2023 15:24:57 -0500 Subject: [PATCH] make sure display + serial is updated if advanceFrame() throws --- src/common/baseplatform.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/common/baseplatform.ts b/src/common/baseplatform.ts index 09e83d94..9129f252 100644 --- a/src/common/baseplatform.ts +++ b/src/common/baseplatform.ts @@ -873,15 +873,19 @@ export abstract class BaseMachinePlatform extends BaseDebugPl advance(novideo:boolean) { let trap = this.getDebugCallback(); - var steps = this.machine.advanceFrame(trap); - if (!novideo && this.video) { - this.video.updateFrame(); - this.updateVideoDebugger(); + try { + var steps = this.machine.advanceFrame(trap); + return steps; + } finally { + // in case EmuHalt is thrown... + if (!novideo && this.video) { + this.video.updateFrame(); + this.updateVideoDebugger(); + } + if (!novideo && this.serialVisualizer) { + this.serialVisualizer.refresh(); + } } - if (!novideo && this.serialVisualizer) { - this.serialVisualizer.refresh(); - } - return steps; } updateVideoDebugger() {