Skip to content

Commit 6dee2f4

Browse files
Hide text screen when paused
1 parent e7e047b commit 6dee2f4

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed

src/less/emulator.less

+5
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,9 @@
2121
filter: blur(2px);
2222
z-index: -100;
2323
}
24+
25+
#emulator-text-screen {
26+
display: none;
27+
visibility: hidden;
28+
}
2429
}

src/renderer/emulator.tsx

+30-14
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ export class Emulator extends React.Component<{}, EmulatorState> {
225225
{this.renderInfo()}
226226
{this.renderUI()}
227227
<div id="emulator">
228-
<div></div>
229-
<canvas></canvas>
228+
<div id="emulator-text-screen"></div>
229+
<canvas id="emulator-canvas"></canvas>
230230
</div>
231231
</>
232232
);
@@ -263,11 +263,9 @@ export class Emulator extends React.Component<{}, EmulatorState> {
263263
*/
264264
public showDiskImage() {
265265
// Contents/Resources/app/dist/static
266-
const imagePath = path.join(__dirname, "../../images/windows95.img");
266+
console.log(`Showing disk image in ${CONSTANTS.IMAGE_PATH}`);
267267

268-
console.log(`Showing disk image in ${imagePath}`);
269-
270-
shell.showItemInFolder(imagePath);
268+
shell.showItemInFolder(CONSTANTS.IMAGE_PATH);
271269
}
272270

273271
/**
@@ -281,7 +279,8 @@ export class Emulator extends React.Component<{}, EmulatorState> {
281279
memory_size: 128 * 1024 * 1024,
282280
vga_memory_size: 64 * 1024 * 1024,
283281
screen_container: document.getElementById("emulator"),
284-
preserve_mac_from_state_image: true,
282+
// preserve_mac_from_state_image: true,
283+
use_graphical_text: true,
285284
net_device: {
286285
relay_url: "fetch",
287286
type: "ne2k",
@@ -364,6 +363,7 @@ export class Emulator extends React.Component<{}, EmulatorState> {
364363
this.unlockMouse();
365364
await emulator.stop();
366365
this.setState({ isRunning: false });
366+
this.resetCanvas();
367367

368368
document.body.classList.add("paused");
369369
ipcRenderer.send(IPC_COMMANDS.MACHINE_STOPPED);
@@ -405,23 +405,25 @@ export class Emulator extends React.Component<{}, EmulatorState> {
405405
* Restores state to the emulator.
406406
*/
407407
private async restoreState() {
408-
const { emulator } = this.state;
408+
const { emulator, isBootingFresh } = this.state;
409409
const state = await this.getState();
410410

411-
// Nothing to do with if we don't have a state
412-
if (!state) {
411+
if (isBootingFresh) {
412+
console.log(`restoreState: Booting fresh, not restoring.`);
413+
return;
414+
} else if (!state) {
413415
console.log(`restoreState: No state present, not restoring.`);
414-
}
415-
416-
if (!emulator) {
416+
return;
417+
} else if (!emulator) {
417418
console.log(`restoreState: No emulator present`);
419+
return;
418420
}
419421

420422
try {
421423
await this.state.emulator.restore_state(state);
422424
} catch (error) {
423425
console.log(
424-
`State: Could not read state file. Maybe none exists?`,
426+
`restoreState: Could not read state file. Maybe none exists?`,
425427
error,
426428
);
427429
}
@@ -441,6 +443,8 @@ export class Emulator extends React.Component<{}, EmulatorState> {
441443

442444
if (fs.existsSync(statePath)) {
443445
return fs.readFileSync(statePath).buffer;
446+
} else {
447+
console.log(`getState: No state file found at ${statePath}`);
444448
}
445449

446450
return null;
@@ -504,4 +508,16 @@ export class Emulator extends React.Component<{}, EmulatorState> {
504508
this.state.emulator.keyboard_send_scancodes(scancodes);
505509
}
506510
}
511+
512+
/**
513+
* Reset the canvas
514+
*/
515+
private resetCanvas() {
516+
const canvas = document.getElementById("emulator-canvas");
517+
518+
if (canvas instanceof HTMLCanvasElement) {
519+
const ctx = canvas.getContext('2d');
520+
ctx?.clearRect(0, 0, canvas.width, canvas.height);
521+
}
522+
}
507523
}

0 commit comments

Comments
 (0)