Version 3.1.0

Co-authored-by: Allan Niles <74841470+allancoding@users.noreply.github.com>
This commit is contained in:
Ethan O'Brien 2022-11-25 09:23:00 -06:00
parent 4f4b87386e
commit cc37200ac3
13 changed files with 668 additions and 3299 deletions

13
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,13 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: EmulatorJS # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View file

@ -1,6 +1,13 @@
# Changes # Changes
# 3.0.5 # 3.1.0
- Added ability to drag and drop save states.
- Fixed some "update" and "cancel" and "close" button confustion
- Removed save state retroarch messages
- Beta netplay cleanup (not yet working)
- (Theoretically) fixed a bug that did not allow iOS devices to work
# 3.0.5 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/44c31371fb3c314cd8dea36ccbaad89fb3ab98e6)
- Fixed screen recording on devices that do not support getUserMedia api. - Fixed screen recording on devices that do not support getUserMedia api.
- Added C label buttons to nintendo 64 virtual gamepad. - Added C label buttons to nintendo 64 virtual gamepad.
- Fixed EJS_color bug. - Fixed EJS_color bug.

1
CNAME Normal file
View file

@ -0,0 +1 @@
demo.emulatorjs.org

View file

@ -26,6 +26,26 @@ Self-hosted **Javascript** emulation for various system.
<br> <br>
### Issues
*If something doesn't work, please consider opening an* ***[Issue]*** <br>
*with as many details as possible, as well as the console log.*
<br>
### Ads
*This project has no ads.* <br>
*Although, the demo page currently has an ad to help fund this project.* <br>
*Ads on the demo page may come and go depending on how many people are* <br>
*funding this project.* <br>
*You can help fund this project on* ***[patreon]***
<br>
### Issues ### Issues
*If something doesn't work, please consider opening an* ***[Issue]*** <br> *If something doesn't work, please consider opening an* ***[Issue]*** <br>
@ -124,6 +144,7 @@ EJS_oldCores = true;
[License]: LICENSE [License]: LICENSE
[Issue]: https://github.com/ethanaobrien/emulatorjs/issues [Issue]: https://github.com/ethanaobrien/emulatorjs/issues
[patreon]: https://patreon.com/EmulatorJS
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Extensions 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 ---> <!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Extensions 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
@ -138,7 +159,7 @@ EJS_oldCores = true;
[Website]: https://emulatorjs.org/ [Website]: https://emulatorjs.org/
[Legacy]: https://coldcast.org/games/1/Super-Mario-Bros [Legacy]: https://coldcast.org/games/1/Super-Mario-Bros
[Usage]: https://emulatorjs.org/docs/ [Usage]: https://emulatorjs.org/docs/
[Demo]: https://emulatorjs.github.io/EmulatorJS/ [Demo]: https://demo.emulatorjs.org/
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Systems 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --> <!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Systems 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 -->

1
ads.txt Normal file
View file

@ -0,0 +1 @@
google.com, pub-8832864985153925, DIRECT, f08c47fec0942fa0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
(async function() { (async function() {
let VERSION = 30.5; let VERSION = 31.0;
if ((window.location && ['localhost', '127.0.0.1'].includes(location.hostname)) || if ((window.location && ['localhost', '127.0.0.1'].includes(location.hostname)) ||
'undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) { 'undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) {
fetch('https://raw.githack.com/EmulatorJS/EmulatorJS/main/data/version.json').then(response => { fetch('https://raw.githack.com/EmulatorJS/EmulatorJS/main/data/version.json').then(response => {
@ -49,7 +49,8 @@
script.onload = resolve; script.onload = resolve;
}) })
} }
if ('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) { if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) ||
/(iPad|iPhone|iPod)/gi .test(navigator.platform)) {
await loadStyle('emu-css.css'); await loadStyle('emu-css.css');
await loadScript('emu-main.js'); await loadScript('emu-main.js');
await loadScript('emulator.js'); await loadScript('emulator.js');

View file

@ -2,62 +2,62 @@
"oldCores" : {"nes":{"version":"25","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes":{"version":"22","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2010":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2005":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2002":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"arcade":{"version":"16","netplay":1,"state":1,"asmjs":1,"wasm":1},"fba0.2.97.29":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"pce":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"pceCD":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"ngp":{"version":"2","netplay":0,"state":1,"asmjs":1,"wasm":1},"ws":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1},"msx":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"bluemsx":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"vb":{"version":"8","netplay":0,"state":1,"asmjs":1,"wasm":1},"atari2600":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"a7800":{"version":"4","netplay":0,"state":0,"asmjs":1,"wasm":0},"atari7800":{"version":"4","netplay":0,"state":1,"asmjs":1,"wasm":0},"lynx":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1},"jaguar":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"gb":{"version":"13","netplay":0,"state":1,"asmjs":1,"wasm":0},"gbc":{"version":"4","netplay":0,"state":1,"asmjs":1,"wasm":0},"gba":{"version":"11","netplay":0,"state":1,"asmjs":1,"wasm":0},"segaGG":{"version":"9","netplay":0,"state":1,"asmjs":1,"wasm":1},"segaMD":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":1},"segaMS":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":1},"segaCD":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":0},"segaSaturn":{"version":"3","netplay":0,"state":1,"asmjs":1,"wasm":0},"psx":{"version":"11","netplay":0,"state":1,"asmjs":0,"wasm":1},"n64":{"version":"14","netplay":1,"state":1,"asmjs":1,"wasm":0},"nds":{"version":"17","netplay":0,"state":1,"asmjs":1,"wasm":1},"3do":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":0},"sega32x":{"version":"2","netplay":1,"state":1,"asmjs":1,"wasm":1},"mame2003":{"version":"6","netplay":1,"state":1,"asmjs":1,"wasm":0},"mame":{"version":"4","netplay":0,"state":0,"asmjs":0,"wasm":1},"vbanext":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1}}, "oldCores" : {"nes":{"version":"25","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes":{"version":"22","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2010":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2005":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"snes2002":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"arcade":{"version":"16","netplay":1,"state":1,"asmjs":1,"wasm":1},"fba0.2.97.29":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"pce":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"pceCD":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"ngp":{"version":"2","netplay":0,"state":1,"asmjs":1,"wasm":1},"ws":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1},"msx":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"bluemsx":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"vb":{"version":"8","netplay":0,"state":1,"asmjs":1,"wasm":1},"atari2600":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":1},"a7800":{"version":"4","netplay":0,"state":0,"asmjs":1,"wasm":0},"atari7800":{"version":"4","netplay":0,"state":1,"asmjs":1,"wasm":0},"lynx":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1},"jaguar":{"version":"1","netplay":0,"state":0,"asmjs":1,"wasm":1},"gb":{"version":"13","netplay":0,"state":1,"asmjs":1,"wasm":0},"gbc":{"version":"4","netplay":0,"state":1,"asmjs":1,"wasm":0},"gba":{"version":"11","netplay":0,"state":1,"asmjs":1,"wasm":0},"segaGG":{"version":"9","netplay":0,"state":1,"asmjs":1,"wasm":1},"segaMD":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":1},"segaMS":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":1},"segaCD":{"version":"9","netplay":1,"state":1,"asmjs":1,"wasm":0},"segaSaturn":{"version":"3","netplay":0,"state":1,"asmjs":1,"wasm":0},"psx":{"version":"11","netplay":0,"state":1,"asmjs":0,"wasm":1},"n64":{"version":"14","netplay":1,"state":1,"asmjs":1,"wasm":0},"nds":{"version":"17","netplay":0,"state":1,"asmjs":1,"wasm":1},"3do":{"version":"1","netplay":1,"state":1,"asmjs":1,"wasm":0},"sega32x":{"version":"2","netplay":1,"state":1,"asmjs":1,"wasm":1},"mame2003":{"version":"6","netplay":1,"state":1,"asmjs":1,"wasm":0},"mame":{"version":"4","netplay":0,"state":0,"asmjs":0,"wasm":1},"vbanext":{"version":"1","netplay":0,"state":1,"asmjs":1,"wasm":1}},
"newCores": { "newCores": {
"fceumm": { "fceumm": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"a5200": { "a5200": {
"version":"5", "version":"6",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"mame2003": { "mame2003": {
"version":"6", "version":"7",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
}, },
"mupen64plus_next": { "mupen64plus_next": {
"version":"0", "version":"1",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
}, },
"desmume2015": { "desmume2015": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"mgba": { "mgba": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"gambatte": { "gambatte": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"beetle_vb": { "beetle_vb": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
"fbalpha2012_cps1": { "fbalpha2012_cps1": {
"version":"0", "version":"1",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
}, },
"fbalpha2012_cps2": { "fbalpha2012_cps2": {
"version":"0", "version":"1",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
}, },
"snes9x": { "snes9x": {
"version":"0", "version":"1",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
}, },
"nestopia": { "nestopia": {
"version":"0", "version":"1",
"asmjs": 1, "asmjs": 1,
"wasm": 1 "wasm": 1
}, },
@ -72,7 +72,12 @@
"wasm": 1 "wasm": 1
}, },
"melonds": { "melonds": {
"version":"0", "version":"1",
"asmjs": 0,
"wasm": 1
},
"opera": {
"version":"1",
"asmjs": 0, "asmjs": 0,
"wasm": 1 "wasm": 1
} }

View file

@ -1 +1 @@
{ "current_version": 30.5 } { "current_version": 31.0 }

View file

@ -8,49 +8,49 @@
</div> </div>
<script type='text/javascript'> <script type='text/javascript'>
EJS_player = '#game'; EJS_player = '#game';
EJS_core = '3do';
// Can also be opera
// URL to Bios file EJS_core = 'nes';
// URL to BIOS file
EJS_biosUrl = ''; EJS_biosUrl = '';
// URL to Game rom // URL to Game rom
EJS_gameUrl = ''; EJS_gameUrl = '';
/* // Path to the data directory
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/'; EJS_pathtodata = 'data/';
</script> </script>
<script src='data/loader.js'></script> <script src='data/loader.js'></script>
``` ```
## ROM Type ## ROM Type
Your **ROM** can have the following types: Your **ROM** can have the following types:
- `bin`
- `cue`
- `iso` - `iso`
- `bin`
- `chd`
- `cue`
## ROM List ### BIOS
| Name | MD5 Checksum | | File Name | Description | md5sum |
|------|--------------| | ----------- | ------------- | ----------- |
| Panasonic FZ-1 | `f47264dd47fe30f73ab3c010015c155b` | panafz1.bin | Panasonic FZ-1 | `f47264dd47fe30f73ab3c010015c155b`
| Panasonic FZ-10 | `51f2f43ae2f3508a14d9f56597e2d3ce` | panafz10.bin | Panasonic FZ-10 | `51f2f43ae2f3508a14d9f56597e2d3ce`
| Panasonic FZ-10 | `1477bda80dc33731a65468c1f5bcbee9` | panafz10-norsa.bin | Panasonic FZ-10 [RSA Patch] | `1477bda80dc33731a65468c1f5bcbee9`
| Panasonic FZ-10-E | `a48e6746bd7edec0f40cff078f0bb19f` | panafz10e-anvil.bin | Panasonic FZ-10-E [Anvil] | `a48e6746bd7edec0f40cff078f0bb19f`
| Panasonic FZ-10-E | `cf11bbb5a16d7af9875cca9de9a15e09` | panafz10e-anvil-norsa.bin | Panasonic FZ-10-E [Anvil RSA Patch] | `cf11bbb5a16d7af9875cca9de9a15e09`
| Goldstar GDO-101M | `8639fd5e549bd6238cfee79e3e749114` | panafz1j.bin | Panasonic FZ-1J | `a496cfdded3da562759be3561317b605`
| Sanyo IMP-21J TRY | `35fa1a1ebaaeea286dc5cd15487c13ea` | panafz1j-norsa.bin | Panasonic FZ-1J [RSA Patch] | `f6c71de7470d16abe4f71b1444883dc8`
| Shootout At Old Tucson | `8970fc987ab89a7f64da9f8a8c4333ff` | goldstar.bin | Goldstar GDO-101M | `8639fd5e549bd6238cfee79e3e749114`
| Panasonic FZ-1 Kanji ROM | `b8dc97f778a6245c58e064b0312e8281` | sanyotry.bin | Sanyo IMP-21J TRY | `35fa1a1ebaaeea286dc5cd15487c13ea`
| Panasonic FZ-10JA Kanji ROM | `428577250f43edc902ea239c50d2240d` | 3do_arcade_saot.bin | Shootout At Old Tucson | `8970fc987ab89a7f64da9f8a8c4333ff`
| Panasonic FZ-1J Kanji ROM | `c23fb5d5e6bb1c240d02cf968972be37`
### CORES
The *nes* system supports 1 core
- `opera`
If set to `3do`, emulator will use the `opera` core.

View file

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8832864985153925" crossorigin="anonymous"></script>
<title>EmulatorJS</title> <title>EmulatorJS</title>
<link rel = icon href = docs/favicon.ico sizes = "16x16 32x32 48x48 64x64" type = image/vnd.microsoft.icon> <link rel = icon href = docs/favicon.ico sizes = "16x16 32x32 48x48 64x64" type = image/vnd.microsoft.icon>
@ -168,6 +169,10 @@
window.EJS_core = core window.EJS_core = core
window.EJS_pathtodata = "data/" window.EJS_pathtodata = "data/"
window.EJS_startOnLoaded = true; window.EJS_startOnLoaded = true;
if (window.location.hostname === "demo.emulatorjs.org") {
window.EJS_AdUrl = "https://ads.emulatorjs.org/";
}
script.src = "data/loader.js" script.src = "data/loader.js"
@ -178,4 +183,4 @@
box.ondragleave = () => box.removeAttribute("drag") box.ondragleave = () => box.removeAttribute("drag")
</script> </script>
</body> </body>
</html> </html>