homeplay/public/emulator.html
2025-03-11 13:58:20 -05:00

122 lines
2.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Test</title>
<style type="text/css">
body,html {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
background: transparent;
}
.game {
width: 100%;
height: 100%;
max-width: 100%;
display: block;
margin: 0 auto;
}
.ejs_menu_bar {
display: none !important;
}
</style>
</head>
<body>
<div class="game" id="game">
</div>
<script type="text/javascript" language="javascript">
let scriptElement = null;
EJS_player = "#game";
EJS_pathtodata = "https://cdn.emulatorjs.org/stable/data/";
EJS_language = "en-US";
EJS_volume = 0;
EJS_startOnLoaded = true;
EJS_backgroundColor = '#000';
EJS_Buttons = {
playPause: false,
restart: false,
mute: false,
settings: false,
fullscreen: false,
saveState: false,
loadState: false,
screenRecord: false,
gamepad: false,
cheat: false,
volume: false,
saveSavFiles: false,
loadSavFiles: false,
quickSave: false,
quickLoad: false,
screenshot: false,
cacheManager: false,
exitEmulation: false
}
EJS_defaultOptions = {
};
const emulatorInit = data => {
EJS_gameUrl = `/api/v1/rom?id=${data.gameId}`;
EJS_core = data.core;
EJS_gameName = data.gameName;
scriptElement = document.createElement('script');
scriptElement.src = 'https://cdn.emulatorjs.org/stable/data/loader.js';
document.body.appendChild(scriptElement);
}
const send = data => {
window.parent.postMessage(data, '*');
}
window.onmessage = (e) => {
const { data } = e;
if(!data) {
console.error('No data');
return;
}
const { message } = data;
switch(message) {
case 'init':
emulatorInit(data);
break;
case 'volume':
EJS_emulator.setVolume(data.volume);
break;
default:
console.error('Unknown message', message);
}
};
EJS_ready = () => {
send({ message: 'ready' });
}
EJS_onSaveState = () => {
send({ message: 'save' });
}
EJS_onLoadState = () => {
send({ message: 'load' });
}
EJS_onGameStart = () => {
send({ message: 'start' });
}
</script>
</body>
</html>