From daaf010b94bca0460ae1b4a8aa19a9a69da843f8 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien <77750390+ethanaobrien@users.noreply.github.com> Date: Mon, 3 Jul 2023 09:31:38 -0500 Subject: [PATCH] Check for fullscreen and state support --- src/GameManager.js | 14 +++++++++++--- src/emulator.js | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/GameManager.js b/src/GameManager.js index e34645b..984286f 100644 --- a/src/GameManager.js +++ b/src/GameManager.js @@ -18,7 +18,9 @@ class EJS_GameManager { getDiskCount: this.Module.cwrap('get_disk_count', 'number', []), getCurrentDisk: this.Module.cwrap('get_current_disk', 'number', []), setCurrentDisk: this.Module.cwrap('set_current_disk', 'null', ['number']), - setVolume: this.Module.cwrap('set_volume', 'null', ['number']) + getSaveFilePath: this.Module.cwrap('save_file_path', 'string', []), + saveSaveFiles: this.Module.cwrap('cmd_savefiles', '', []), + supportsStates: this.Module.cwrap('supports_states', 'number', []) } this.mkdir("/home"); this.mkdir("/home/web_user"); @@ -135,8 +137,14 @@ class EJS_GameManager { setCurrentDisk(disk) { this.functions.setCurrentDisk(disk); } - setVolume(volume) { - this.functions.setVolume(volume); + getSaveFilePath() { + return this.functions.getSaveFilePath(); + } + saveSaveFiles() { + this.functions.saveSaveFiles(); + } + supportsStates() { + return !!this.functions.supportsStates(); } } diff --git a/src/emulator.js b/src/emulator.js index b6c6962..f1c4c3c 100644 --- a/src/emulator.js +++ b/src/emulator.js @@ -635,6 +635,7 @@ class EmulatorJS { this.virtualGamepad.style.display = ""; } + this.checkSupportedOpts(); this.setupSettingsMenu(); this.handleResize(); this.updateCheatUI(); @@ -667,6 +668,12 @@ class EmulatorJS { this.gamepad.on('buttondown', this.gamepadEvent.bind(this)); this.gamepad.on('buttonup', this.gamepadEvent.bind(this)); } + checkSupportedOpts() { + if (!this.gameManager.supportsStates()) { + this.elements.bottomBar.saveState.setAttribute("hidden", ""); + this.elements.bottomBar.loadState.setAttribute("hidden", ""); + } + } updateGamepadLabels() { for (let i=0; i