Compare commits

...

3 Commits

Author SHA1 Message Date
Thomas Lindner 60110d4e84 add icon and title 2022-04-02 18:36:41 +02:00
Thomas Lindner 5bed8aa933 resize to viewport 2022-04-02 18:23:23 +02:00
hagi cceb5afae8 add save and load state functions to nes.embed.js 2022-04-02 17:32:51 +02:00
6 changed files with 38 additions and 23 deletions

5
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.xdc
.nes
.DS_Store
*.nes
*.swp
.DS_Store

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,29 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>NES Emulator</title>
<script type="text/javascript" src="jsnes.js"></script>
<script type="text/javascript" src="nes-embed.js"></script>
<script>window.onload = function(){nes_load_url("nes-canvas", "mario.nes");}</script>
</head>
<body>
<div style="margin: auto; width: 75%;">
<canvas id="nes-canvas" width="256" height="240" style="width: 100%"/>
</div>
<p>DPad: Arrow keys<br/>Start: Return, Select: Tab<br/>A Button: A, B Button: S</p>
</body>
</html>
<!-- <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Super Mario Bros. (World)</title>
<script src="webxdc.js"></script>
<script src="jsnes.min.js"></script>
<script src="nes-embed.js"></script>
</head>
<body>
<body style="margin: 0;">
<!--
<input id="input" type="text"/>
<a href="" onclick="sendMsg(); return false;">Send</a>
<p id="output"></p>
@ -39,6 +24,11 @@
window.webxdc.setUpdateListener(receiveUpdate, 0);
</script>
-->
<canvas id="nes-canvas" width="256" height="240" style="width: 100vw; height: 100vh; margin: 0; object-fit: contain;"/>
<p>DPad: Arrow keys<br/>Start: Return, Select: Tab<br/>A Button: A, B Button: S</p>
<script>
nes_load_url("nes-canvas", "Super Mario Bros. (World).nes");
</script>
</body>
</html>
-->

View File

1
manifest.toml Normal file
View File

@ -0,0 +1 @@
name = "Super Mario Bros. (World)"

View File

@ -130,3 +130,26 @@ function nes_load_url(canvas_id, path){
document.addEventListener('keydown', (event) => {keyboard(nes.buttonDown, event)});
document.addEventListener('keyup', (event) => {keyboard(nes.buttonUp, event)});
function saveState(){
try{
var saveData = JSON.stringify(nes.toJSON());
localStorage.setItem(romName, saveData);
}catch(oException){
if(oException.name == 'QuotaExceededError'){
console.log('localStorage out of memory');
localStorage.clear();
localStorage.setItem(calcMD5(rompath), saveData);
}
}
}
function loadState(){
var saveData = localStorage.getItem(romName);
if( saveData == null ) {
console.log("nothing to load");
return;
}
var decodedData = JSON.parse(saveData);
nes.fromJSON(decodedData);
}