runToVsync() keeps probe output for last frame (on Machine platforms only)

This commit is contained in:
Steven Hugg 2020-01-04 13:17:42 -06:00
parent 7357063b72
commit 6ddcfb1d1d
5 changed files with 23 additions and 5 deletions

View File

@ -304,7 +304,7 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
<span class="control-def"><span class="control-key">&#x2190;&#x2191;&#x2193;&#x2192;</span> Joystick</span>
<span class="control-def"><span class="control-key small">Space</span> Button</span>
</div>
<div class="emucontrols-nes text-center small control-insns" style="display:none">
<div class="emucontrols-nes emucontrols-atari7800 text-center small control-insns" style="display:none">
<span class="control-def"><span class="control-key">&#x2190;&#x2191;&#x2193;&#x2192;</span> Joypad</span>
<span class="control-def"><span class="control-key small">Space</span> Button A</span>
<span class="control-def"><span class="control-key small">Shift</span> Button B</span>

6
package-lock.json generated
View File

@ -3015,6 +3015,12 @@
"extsprintf": "^1.2.0"
}
},
"vgm-parser": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/vgm-parser/-/vgm-parser-0.6.2.tgz",
"integrity": "sha512-YenDnwDe9jwTz5MWRQhQwqgSbZ14y2MOiUXBzrDkwSE8T/JX0ugZAMxq6mTXSwz7wSMsof5b1rNL0/i+p5efvw==",
"dev": true
},
"w3c-hr-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",

View File

@ -28,7 +28,8 @@
"pngjs": "^3.4.0",
"rgbquant": "^1.1.2",
"typescript": "^3.7.4",
"typescript-formatter": "^7.2.2"
"typescript-formatter": "^7.2.2",
"vgm-parser": "^0.6.2"
},
"main": "main.js",
"directories": {

View File

@ -1057,6 +1057,17 @@ export abstract class BaseMachinePlatform<T extends Machine> extends BaseDebugPl
pause() {
this.timer.stop();
this.audio && this.audio.stop();
if (this.probeRecorder) {
this.probeRecorder.singleFrame = true;
}
}
// so probe views stick around
runToVsync() {
if (this.probeRecorder) {
this.probeRecorder.reset();
this.probeRecorder.singleFrame = false;
}
super.runToVsync();
}
// TODO: reset target clock counter
@ -1237,7 +1248,7 @@ export class WASMMachine implements Machine {
var cpf = 19656; // TODO: pal, const
if (trap) {
for (i=0; i<cpf; i++) {
if (trap && trap()) {
if (trap()) {
break;
}
this.exports.machine_tick(this.sys);

View File

@ -1099,8 +1099,8 @@ function checkRunReady() {
}
function openRelevantListing(state: EmuState) {
// if we clicked on disassembly window, retain it
if (lastViewClicked == '#disasm' && projectWindows.getActive() instanceof Views.DisassemblerView) return;
// if we clicked on another window, retain it
if (lastViewClicked != null) return;
// search through listings
var listings = current_project.getListings();
var bestid = "#disasm";