diff --git a/src/less/emulator.less b/src/less/emulator.less index 5d3d631..5009dc6 100644 --- a/src/less/emulator.less +++ b/src/less/emulator.less @@ -21,4 +21,9 @@ filter: blur(2px); z-index: -100; } + + #emulator-text-screen { + display: none; + visibility: hidden; + } } diff --git a/src/renderer/emulator.tsx b/src/renderer/emulator.tsx index 2d821fd..6e678c2 100644 --- a/src/renderer/emulator.tsx +++ b/src/renderer/emulator.tsx @@ -225,8 +225,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { {this.renderInfo()} {this.renderUI()}
-
- +
+
); @@ -263,11 +263,9 @@ export class Emulator extends React.Component<{}, EmulatorState> { */ public showDiskImage() { // Contents/Resources/app/dist/static - const imagePath = path.join(__dirname, "../../images/windows95.img"); + console.log(`Showing disk image in ${CONSTANTS.IMAGE_PATH}`); - console.log(`Showing disk image in ${imagePath}`); - - shell.showItemInFolder(imagePath); + shell.showItemInFolder(CONSTANTS.IMAGE_PATH); } /** @@ -281,7 +279,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { memory_size: 128 * 1024 * 1024, vga_memory_size: 64 * 1024 * 1024, screen_container: document.getElementById("emulator"), - preserve_mac_from_state_image: true, + // preserve_mac_from_state_image: true, + use_graphical_text: true, net_device: { relay_url: "fetch", type: "ne2k", @@ -364,6 +363,7 @@ export class Emulator extends React.Component<{}, EmulatorState> { this.unlockMouse(); await emulator.stop(); this.setState({ isRunning: false }); + this.resetCanvas(); document.body.classList.add("paused"); ipcRenderer.send(IPC_COMMANDS.MACHINE_STOPPED); @@ -405,23 +405,25 @@ export class Emulator extends React.Component<{}, EmulatorState> { * Restores state to the emulator. */ private async restoreState() { - const { emulator } = this.state; + const { emulator, isBootingFresh } = this.state; const state = await this.getState(); - // Nothing to do with if we don't have a state - if (!state) { + if (isBootingFresh) { + console.log(`restoreState: Booting fresh, not restoring.`); + return; + } else if (!state) { console.log(`restoreState: No state present, not restoring.`); - } - - if (!emulator) { + return; + } else if (!emulator) { console.log(`restoreState: No emulator present`); + return; } try { await this.state.emulator.restore_state(state); } catch (error) { console.log( - `State: Could not read state file. Maybe none exists?`, + `restoreState: Could not read state file. Maybe none exists?`, error, ); } @@ -441,6 +443,8 @@ export class Emulator extends React.Component<{}, EmulatorState> { if (fs.existsSync(statePath)) { return fs.readFileSync(statePath).buffer; + } else { + console.log(`getState: No state file found at ${statePath}`); } return null; @@ -504,4 +508,16 @@ export class Emulator extends React.Component<{}, EmulatorState> { this.state.emulator.keyboard_send_scancodes(scancodes); } } + + /** + * Reset the canvas + */ + private resetCanvas() { + const canvas = document.getElementById("emulator-canvas"); + + if (canvas instanceof HTMLCanvasElement) { + const ctx = canvas.getContext('2d'); + ctx?.clearRect(0, 0, canvas.width, canvas.height); + } + } }