This commit is contained in:
Ethan O'Brien 2023-06-29 11:49:48 -05:00
parent 8ea6db2b47
commit ebe647b141
4 changed files with 53 additions and 1 deletions

View file

@ -13,7 +13,8 @@ class EJS_GameManager {
getCoreOptions: this.Module.cwrap('get_core_options', 'string', []), getCoreOptions: this.Module.cwrap('get_core_options', 'string', []),
setVariable: this.Module.cwrap('set_variable', 'null', ['string', 'string']), setVariable: this.Module.cwrap('set_variable', 'null', ['string', 'string']),
setCheat: this.Module.cwrap('set_cheat', 'null', ['number', 'number', 'string']), setCheat: this.Module.cwrap('set_cheat', 'null', ['number', 'number', 'string']),
resetCheat: this.Module.cwrap('reset_cheat', 'null', []) resetCheat: this.Module.cwrap('reset_cheat', 'null', []),
toggleShader: this.Module.cwrap('shader_enable', 'null', ['number'])
} }
this.mkdir("/home"); this.mkdir("/home");
this.mkdir("/home/web_user"); this.mkdir("/home/web_user");
@ -21,6 +22,8 @@ class EJS_GameManager {
this.mkdir("/home/web_user/retroarch/userdata"); this.mkdir("/home/web_user/retroarch/userdata");
this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg()); this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg());
this.initShaders();
} }
mkdir(path) { mkdir(path) {
try { try {
@ -30,6 +33,13 @@ class EJS_GameManager {
getRetroArchCfg() { getRetroArchCfg() {
return "\naudio_latency: 256\n"; return "\naudio_latency: 256\n";
} }
initShaders() {
if (!window.EJS_SHADERS) return;
this.mkdir("/shader");
for (const shader in window.EJS_SHADERS) {
this.FS.writeFile('/shader/'+shader, window.EJS_SHADERS[shader]);
}
}
restart() { restart() {
this.functions.restart(); this.functions.restart();
} }
@ -109,6 +119,9 @@ class EJS_GameManager {
resetCheat() { resetCheat() {
this.functions.resetCheat(); this.functions.resetCheat();
} }
toggleShader(active) {
this.functions.toggleShader(active);
}
} }
window.EJS_GameManager = EJS_GameManager; window.EJS_GameManager = EJS_GameManager;

View file

@ -1523,6 +1523,18 @@ class EmulatorJS {
}; };
} }
menuOptionChanged(option, value) { menuOptionChanged(option, value) {
if (option === "shader") {
try {
this.Module.FS.unlink("/shader/shader.glslp");
} catch(e) {}
if (value === "disabled") {
this.gameManager.toggleShader(0);
return;
}
this.Module.FS.writeFile("/shader/shader.glslp", window.EJS_SHADERS[value]);
this.gameManager.toggleShader(1);
return;
}
//console.log(option, value); //console.log(option, value);
this.gameManager.setVariable(option, value); this.gameManager.setVariable(option, value);
} }
@ -1659,6 +1671,18 @@ class EmulatorJS {
'hide': this.localization("hide") 'hide': this.localization("hide")
}, 'hide'); }, 'hide');
if (window.EJS_SHADERS) {
addToMenu(this.localization('Shaders'), 'shader', {
'disabled': "Disabled",
'2xScaleHQ.glslp': "2xScaleHQ",
'4xScaleHQ.glslp': "4xScaleHQ",
'crt-easymode.glslp': 'CRT easymode',
'crt-aperture.glslp': 'CRT aperture',
'crt-geom.glslp': 'CRT geom',
'crt-mattias.glslp': 'CRT mattias'
}, 'disabled');
}
this.settingsMenu.appendChild(nested); this.settingsMenu.appendChild(nested);
this.settingParent.appendChild(this.settingsMenu); this.settingParent.appendChild(this.settingsMenu);

View file

@ -36,6 +36,7 @@
if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) || true) { if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) || true) {
await loadScript('emulator.js'); await loadScript('emulator.js');
await loadScript('nipplejs.js'); await loadScript('nipplejs.js');
await loadScript('shaders.js');
await loadScript('gamepad.js'); await loadScript('gamepad.js');
await loadScript('GameManager.js'); await loadScript('GameManager.js');
await loadStyle('css/main.css'); await loadStyle('css/main.css');

14
src/shaders.js Normal file

File diff suppressed because one or more lines are too long