Version 3.0.5 is finally here!

Changes:
- Fixed screen recording on devices that do not support getUserMedia api.
- Added C label buttons to nintendo 64 virtual gamepad.
- Fixed EJS_color bug.
- Savestates are pulled from the core itself, to always be correct.
- Several new cores. (a5200, beetle_vb, desmume2015, fbalpha2012_cps1, fbalpha2012_cps2, fceumm, gambatte, mame2003, mednafen_psx, mednafen_psx_hw, melonds, mgba, mupen64plus_next, nestopia, snes9x)
- D-pad for virtual gamepad.
- Updated translation files to include new menu options.
- Ability to add more than one zone object to virtual gamepads.
- Added ability to set custom menu options.
- Virtual gamepad left handed mode.
- Fixed Screen record svg.
- Updated svg icons.
- Cache "clear all" button.
- Cache button moved to menu bar.
- Added feature that will display the current downloaded size when the content length is not available.
- Updated repository docs
This commit is contained in:
Ethan O'Brien 2022-09-24 12:50:44 -05:00
parent f7a3d788fd
commit 084365a1b4
79 changed files with 5745 additions and 1951 deletions

View file

@ -1,24 +0,0 @@
---
name: bug - beta
about: Use this when you find a problem with the beta emulator cores
title: "[beta]"
labels: ''
assignees: ''
---
<!--
First, collect a console log.
1. Please add the line of code to your html
```
EJS_DEBUG_XX = true
```
2. then reload the broken page.
3. Right click and click `inspect`.
4. Select the `console` tab at the top.
5. Right click on the console and click `save console log to file`
6. Upload the file here
If no log of the console is present. I will immediately close the issue without any comment.
Please upload straight to github and not to some other website.
-->

View file

@ -1,24 +0,0 @@
---
name: bug
about: Use this when you find a bug and you are not using the beta cores
title: ''
labels: ''
assignees: ''
---
<!--
First, collect a console log.
1. Please add the line of code to your html
```
EJS_DEBUG_XX = true
```
2. then reload the broken page.
3. Right click and click `inspect`.
4. Select the `console` tab at the top.
5. Right click on the console and click `save console log to file`
6. Upload the file here
If no log of the console is present. I will immediately close the issue without any comment.
Please upload straight to github and not to some other website.
-->

View file

@ -1,10 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---

View file

@ -35,12 +35,8 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: '12'
- run: cd data/minify && npm install && npm run build
- run: cd data/minify && npm install
- run: cd data/minify && npm run build
- uses: EndBug/add-and-commit@v9
with:
author_name: Ethan O'Brien
author_email: emulatorjs.ethanaobrien@gmail.com
committer_name: Ethan O'Brien
committer_email: emulatorjs.ethanaobrien@gmail.com
default_author: user_info
message: 'Minify files'
default_author: github_actions

232
CHANGES.md Normal file
View file

@ -0,0 +1,232 @@
# Changes
# 3.0.5
- Fixed screen recording on devices that do not support getUserMedia api.
- Added C label buttons to nintendo 64 virtual gamepad.
- Fixed EJS_color bug.
- Savestates are pulled from the core itself, to always be correct.
- Several new cores. ()
- D-pad for virtual gamepad.
- Updated translation files to include new menu options.
- Ability to add more than one zone object to virtual gamepads.
- Added ability to set custom menu options.
- Virtual gamepad left handed mode.
- Fixed Screen record svg.
- Updated svg icons.
- Cache "clear all" button.
- Cache button moved to menu bar.
- Added feature that will display the current downloaded size when the content length is not available.
# 2.3.9 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/088942083e44510f07133f2074a2d63a8af477cd)
- Fixed incorrect variable referencing when update bios download data callback.
- Fixed rom storage size limits.
- Fixed download percent not showing with some files.
# 2.3.8 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/5f176b963e4b2055983b82396378d1e3837a69c4)
- Remove broken shader.
- Add download percent message.
- Fixed UI "saving state" message not going away.
# 2.3.7 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/8b9607becfe0aaad42b8b8486c7d379821b72125)
- Add more shaders.
- Add bold fontsize option to custom virtual gamepad settings.
- No longer set "normalOptions" from localization file.
# 2.3.6 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/b2919bc2c3d2d4c9fe3ab4f4486790a376b7acfe)
- Remove default control mappings for gamepads.
- Upgraded invalid character regex to catch more characters.
# 2.3.5 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/a5a9916aba041e75ee73815376ed4fd2e22701bd)
- Use regex to detect and replace invalid characters in filename/gamename settings.
# 2.3.4 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/45d982b6362cfd29cb2eda9721066e03893ba0d8)
- Add new arcade core.
- Fix patch file game id set bug.
# 2.3.4 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/45d982b6362cfd29cb2eda9721066e03893ba0d8)
- Add new arcade core.
# 2.3.3 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/11bddd5a4277aa04f80b941f05cc024b3de58bfc)
- Make version in loader.js reasonable.
- Created function to return the game id to prevent unnecessary data stored.
# 2.3.2 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/e9e017435f2c41c6c2b127024cc88ac51bdf04d9)
- Fix reference error.
- Fix bug in custom virtual gamepad processor where if value is set to 0 it will see that as the value being missing.
# 2.3.1 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/0fd6d58e2011fa1a39bd2e11ba3d2f17773f0961)
- Use let instead of var.
# 2.3.0 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/2fd0f545285151524262cc799efef6d996d7c6c1)
- Added ability to customize virtual gamepad UI.
- Fixed bug where shader is not set on start.
# 2.2.9 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/018c39d4065b866487f8f18ca88c9488eab69a6d)
- Added feature to save save files to indexeddb every 5 minutes.
# 2.2.8 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/9860d662d02b56417044cca11937448041d9cf43)
- Re-write gamepad handler.
# 2.2.7 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/c03d18990b6536c1503bba2c640dbc13db982bb3)
- Removed un-needed FS proxy functions.
# 2.2.6 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/fd71b5dfc2bd44d8e1f0e7c6c7b3ee1a1127a696)
- Added fps counter.
- Fixed gba core aspect.
# 2.2.5 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/4b444ec23918149a6052807d778af82f79883c01)
- Added ability to set custom control mappings.
- Added ability to set custom default volume value.
- Fixed gamepad axis as button, gamepad varaible compared to incorrect value.
- Added ability to hide/show menu/context menu buttons.
- Added ability to set game url to other data types.
# 2.2.3 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/41eed05677b4927bd114613040bfe4572c92c4b4)
- Fixed rar unarchiving function reference.
- Updated rar header detection.
- Removed netplay.
# 2.2.1 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/19980deb12c3f0790176db6fc7b8b2de4069bf4e)
- Added core menu options for new cores.
- Added new mame2003 core.
- Added support for debug emscripten setting for new cores.
# 2.0.1 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/a72222c39a793c4ff470ebb2b71c04829fee4b5e)
- Control mapping for beta cores.
- Updated beta cores.
- Beta cores now the default option!
- Added a5200 core.
- Fixed save state for new n64 core.
# 1.2.2 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/8ab7bb3f49da373ed5d291c5f72039bbabf2fbc8)
- Moved virtual gamepad menu button to the top left as 3 lines.
- Added screen orientation lock.
- Added beta n64 core!
# 1.2.1 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/638658e6202fd39cb5c94bedcfa00ccdf8b25840)
- Updated beta core files.
# 1.1.6 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/fa153ba76791184d978f9fb8b69991b05b161bc8)
- Replaced axios module with custom script.
- Added pause/play for beta cores.
- Sepperated css into its own file.
- Renamed emu-min.js to emulator.min.js.
# 1.1.5 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/2767c635b8a6e05c57e054d2f9d01ae0c4ff6d47)
- Cleaned up fetch error function.
- Cleaned up virtual gamepad event listeners.
- Add code of conduct.
# 1.1.2 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/64731dd8219931155b4e698aa98dbf65c2120038)
- Fixed error where mame files were misnamed.
- Fixed bug where variable referenced was not defined in loader.js.
- Added .gitignore
- Added nodejs script to minify js files.
- Added audio to screen recording.
- Removed lots of dead code from emulator.js file.
- Update axios module.
- Added CORS error message
- Update nodejs buffer module.
# 1.1.0 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/715ded4ae23c2135bc9a8b9b7599f12c905393b3)
- Added minify feature.
- Added emulatorjs logo.
- Added beta nds and gb core.
- Fixed bug where when wasm was supported on the beta cores and not the old cores, a network error would appear if not using beta.
- Added volume setting and cheats to beta cores.
# 1.0 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/fde44b095bb89e299daaaa4c8d7deebc79019865)
- Official release of the beta cores.
- Ability to use beta cores in production.
- Ability to use the old emulatorjs netplay server.
- Set screen recording out file name to gamename if present.
- Set screenshot out file name to gamename if present.
- Fixed virtual gamepad bug where a function was referenced to as an array.
# 0.4.26 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/0709829a11266b6ab4bbbf3e61d6dd6d3c372133)
- Sepperated emulator.js file into 2 files.
- Added support for a custom netplay server.
- Fixed netplay room password input bug.
- Fixed bug on iOS where virtual gamepad zone was un-responsive.
- Added save state location feature.
- Added mame core setting.
- Added beta cores!
- Added localization.
- Re-wrote virtual gamepad code.
- Added EJS_terminate function.
- Exposed simulate_input function to window.
- Update webrtc adapter.
# 0.4.25 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/ef3200ef87bffe57241e05ae9646cc201142ec46)
- Moved load state on start from loader.js file to emulator.js file.
- Moved data path function from loader.js file to emulator.js file.
- Added ability to set custom path to data through `EJS_pathtodata` variable.
- Added support for custom paths.
- Expose the module and loader to window.
- Added `EJS_startOnLoaded` to start the emulator on load.
- Added quick save state slots.
- Added save state message.
- Only show save state slot in settings when save states are supported.
- Added ds pointer lock.
- Added menu button to virtual gamepad. Menu will only open when clicked on mobile.
- Created licenese
- Created official emulatorjs website.
# 0.4.24 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/73ff641616bcd10f088a004002183760832a1afc)
- Deobsfocuted emulator.js and loader.js files to the most of my extent.
- Added quick save/load hotkeys.
- Added ability to use gamepad axis as button.
- Fixed typo in controls title.
- Only show needed inputs per system in control settings.
- Re-write the loader.js file.
- Exposed some variables to window.
- Cleaned up context menu code.
- Cleaned up some syntax in emulator.js file.
- Declared `EJS_AdUrl` through loader.js file.
- Fixed bug where mapping an axis as a button didn't work.
- Added missing legacy n64 core.
- Updated n64 core.
# 0.4.23-07 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/83e148c82cbc8b4e835a808dcf84456975f82a7c)
- Removed not needed code.
- Added reset button to control settings.
- Added clear button to control settings.
- Added `EJS_AdUrl` option, the ability to add an ad to the emulator.
- Cleaned up some file fetching.
- Fixed RAR unarchiving.
# 0.4.23-05 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/018c787ccf6daca58c863d38fff61910f33f98ec)
- No longer cache games with the protocols of `file:`, and `chrome-extension:`.
- Changed default keymappings.
- Added screen recording button.
# 0.4.23-04 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/6464bbedc1cd58c023cd66656540fc174aedde8b)
- Added mame2003, snes2002, snes2005, snes2010, and vbanext cores.
- Added asmjs for all supported cores.
# 0.4.23-03 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/c883f267e1e56ed6b6472b891f78704c6e4b4c17)
- Start loader.js deobsfocuting.
- Deobsfocute extractzip.js.
- Added `EJS_gameName`, the ability to change the file name of save states.
# 0.4.23-02 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/5d97620b25a81e49c6ba313e586fb37a5ce66002)
- Start emulator.js deobsfocuting.
# 0.4.23-01 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/42a7e129cfded266b72539e8d1b5978d5e4119d8)
- Added support for loading "blob:" urls.
- Added support for loading state on game start.
# 0.4.23 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/5f5cf5cbba29cfd772d525a4c73a4bc5ea26654c)
- Added update available message.
- Fixed a bug where the 'x' from the ad iframe was still visible on game start.
- Added a2600 and mame cores.
- Remove visible 'x'
- Add rar extraction support.
# 0.4.19 [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/4fd22871663e5896bb5d0ce29a50ad508462387a)
- Added support for 32x, 3do, a7800, arcade, bluemsx, jaguar, lynx, ngp, pce, saturn, sega, segacd, and ws cores.
# Initial release [View Tree](https://github.com/ethanaobrien/emulatorjs/tree/be2db16cba8bd85bf901cd89ca6de51414cea792)
- Support for unzipping zip files.
- Support for unzipping 7zip files.
- Support for vb, snes, psx, nes, nds, n64, gba, and gb systems. Only support for WASM.

View file

@ -1,6 +1,6 @@
<div align = center>
<img width = 300 src = docs/Logo-light.png#gh-dark-mode-only>
<img width = 300 src = docs/Logo.png#gh-light-mode-only>
@ -18,8 +18,7 @@ Self-hosted **Javascript** emulation for various system.
[![Button Usage]][Usage]<br>
[![Button Configurator]][Configurator]<br>
[![Button Demo]][Demo]
[![Button Legacy]][Legacy]
[![Button Beta]][Beta]
[![Button Legacy]][Legacy]
[![Button Contributors]][Contributors]
@ -113,7 +112,8 @@ EJS_oldCores = true;
**[PlayStation]**|
**[Arcade]**|
**[MSX]**|
**[3DO]**
**[3DO]**|
**[MAME 2003]**
</div>
@ -123,7 +123,7 @@ EJS_oldCores = true;
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[License]: LICENSE
[Issue]: https://github.com/emulatorjs/emulatorjs/issues
[Issue]: https://github.com/ethanaobrien/emulatorjs/issues
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Extensions 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
@ -133,13 +133,12 @@ EJS_oldCores = true;
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Quicklinks 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[Configurator]: https://emulatorjs.ga/editor.html
[Configurator]: https://emulatorjs.netlify.app/editor.html
[Contributors]: docs/Contributors.md
[Website]: https://emulatorjs.ga/
[Website]: https://emulatorjs.netlify.app/
[Legacy]: https://coldcast.org/games/1/Super-Mario-Bros
[Usage]: docs/Usage.md
[Demo]: https://emulatorjs.ga/demo/
[Beta]: https://emulatorjs.ga/beta/
[Usage]: https://emulatorjs.netlify.app/docs/
[Demo]: https://emulatorjs.github.io/EmulatorJS/
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Systems 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 -->
@ -173,6 +172,7 @@ EJS_oldCores = true;
[Arcade]: docs/Systems/Arcade.md
[MSX]: docs/Systems/MSX.md
[3DO]: docs/Systems/3DO.md
[MAME 2003]: docs/Systems/MAME%202003.md
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Badges 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data/cores/fceumm-wasm.data Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data/cores/mgba-asmjs.data Normal file

Binary file not shown.

BIN
data/cores/mgba-wasm.data Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data/cores/snes9x-wasm.data Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -935,7 +935,7 @@ a.ejs--73f9b4e94a7a1fe74e11107d5ab2ef:hover{
margin:0 10px;
color:#fff !important
}
.ejs--5e71fd80268afbb1d588e40b993508 .ejs--580e3c22e63f8a1eb29694fd0b141b a.ejs--ad20569e1449d7b8e99e6465960456{
.ejs--5e71fd80268afbb1d588e40b993508 .ejs--580e3c22e63f8a1eb29694fd0b141b a.ejs--ad20569e1449d7b8e99e6465960456 a.ejs--ad20569e1449d54yiohfg8u8559656{
background-color:#929292
}
.ejs--5e71fd80268afbb1d588e40b993508 .ejs--8e7922427f460a31935084b7acfb1a{
@ -971,6 +971,9 @@ a.ejs--73f9b4e94a7a1fe74e11107d5ab2ef:hover{
.ejs--ad20569e1449d7b8e99e6465960456{
float:none
}
.ejs--ad20569e1449d54yiohfg8u8559656{
float:none
}
.ejs--ad20569e1449d7b8e99e6465963825{
float:none
}
@ -1564,6 +1567,7 @@ a.ejs--73f9b4e94a7a1fe74e11107d5ab2ef:hover{
width:100%;
height:auto !important
}
.ejs--33643265135cf89e6c0a0d9866d6f1{
transition:none !important
}
@ -1579,3 +1583,111 @@ a.ejs--73f9b4e94a7a1fe74e11107d5ab2ef:hover{
.ejs--7a5f920ceffb2913f6dbda780573cf [hidden]{
display:none !important
}
.ejs--914358605501b11476e86626b2ff16{
width:120px;
height:120px;
user-select:none
}
@media (min-width: 480px){
.ejs--914358605501b11476e86626b2ff16{
width:130px;
height:130px
}
}
.ejs--be66239219d594001da38f91c9ad02{
opacity:0.7
}
.ejs--be66239219d594001da38f91c9ad02,.ejs--9dbb9be3403878e912527181e2d41b{
touch-action:none;
position:absolute;
top:0;
left:0;
width:100%;
height:100%
}
.ejs--f9c7797bdf05569bdc13b4f2074270{
width:36px;
height:100%;
transform:translate(-50%, 0%);
position:absolute;
left:50%;
border-radius:5px;
overflow:hidden
}
.ejs--f9c7797bdf05569bdc13b4f2074270:before{
content:"";
position:absolute;
top:0;
left:50%;
z-index:1;
transform:translate(-50%, 0%);
width:0;
height:0;
border:8px solid;
border-color:transparent transparent #333 transparent
}
.ejs--f9c7797bdf05569bdc13b4f2074270:after{
content:"";
position:absolute;
bottom:0;
left:50%;
z-index:1;
transform:translate(-50%, 0);
width:0;
height:0;
border:8px solid;
border-color:#333 transparent transparent transparent
}
.ejs--f0b89ca5b5621659af184c8e012ccb .ejs--f9c7797bdf05569bdc13b4f2074270:before{
border-bottom-color:#fff
}
.ejs--8de361d6b01eaa181f8db4ac3eb7af .ejs--f9c7797bdf05569bdc13b4f2074270:after{
border-top-color:#fff
}
.ejs--2645f3bad105488a313c5e30dab74f{
width:100%;
height:36px;
transform:translate(0%, -50%);
position:absolute;
left:0;
top:50%;
border-radius:5px;
overflow:hidden
}
.ejs--2645f3bad105488a313c5e30dab74f:before{
content:"";
position:absolute;
left:0;
top:50%;
z-index:1;
transform:translate(0%, -50%);
width:0;
height:0;
border:8px solid;
border-color:transparent #333 transparent transparent
}
.ejs--2645f3bad105488a313c5e30dab74f:after{
content:"";
position:absolute;
right:0;
top:50%;
z-index:1;
transform:translate(0%, -50%);
width:0;
height:0;
border:8px solid;
border-color:transparent transparent transparent #333
}
.ejs--bd9311b0a4f654af6ab5ba28bcf358 .ejs--2645f3bad105488a313c5e30dab74f:before{
border-right-color:#fff
}
.ejs--704d45ea060cc6809451a0d9d47ad7 .ejs--2645f3bad105488a313c5e30dab74f:after{
border-left-color:#fff
}
.ejs--a57cf324c8ff108947112e35e589b5,.ejs--4873d94c18140ab195da609b40b71a{
position:absolute;
width:100%;
height:100%;
background:#787878
}

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

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
(async function() {
let VERSION = 23.9;
let VERSION = 30.5;
if ((window.location && ['localhost', '127.0.0.1'].includes(location.hostname)) ||
'undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) {
fetch('https://raw.githack.com/EmulatorJS/EmulatorJS/main/data/version.json').then(response => {
@ -61,22 +61,23 @@
config.gameUrl = EJS_gameUrl;
'undefined' != typeof EJS_mameCore && (config.mameCore = EJS_mameCore);
'undefined' != typeof EJS_biosUrl && (config.biosUrl = EJS_biosUrl);
'undefined' != typeof EJS_gameID && (config.gameId = EJS_gameID);
'undefined' != typeof EJS_gameParentUrl && (config.gameParentUrl = EJS_gameParentUrl);
'undefined' != typeof EJS_gamePatchUrl && (config.gamePatchUrl = EJS_gamePatchUrl);
'undefined' != typeof EJS_AdUrl && (config.adUrl = EJS_AdUrl);
'undefined' != typeof EJS_paths && (config.paths = EJS_paths);
'undefined' != typeof EJS_gameID && (config.gameId = EJS_gameID);
'undefined' != typeof EJS_netplayUrl && (config.netplayUrl = EJS_netplayUrl);
'undefined' != typeof EJS_startOnLoaded && (config.startOnLoad = EJS_startOnLoaded);
'undefined' != typeof EJS_core && (config.system = EJS_core);
'undefined' != typeof EJS_oldCores && (config.oldCores = EJS_oldCores);
'undefined' != typeof EJS_loadStateURL && (config.loadStateOnStart = EJS_loadStateURL);
'undefined' != typeof EJS_defaultOptions && (config.defaultMenuOptions = EJS_defaultOptions);
'undefined' != typeof EJS_language && (config.lang = EJS_language);
'undefined' != typeof EJS_noAutoCloseAd && (config.noAutoAdClose = EJS_noAutoCloseAd);
'undefined' != typeof EJS_VirtualGamepadSettings && (config.VirtualGamepadSettings = EJS_VirtualGamepadSettings);
'undefined' != typeof EJS_oldEJSNetplayServer && (config.oldNetplayServer = EJS_oldEJSNetplayServer);
'undefined' != typeof EJS_Buttons && (config.buttons = EJS_Buttons);
'undefined' != typeof EJS_Settings && (config.settings = EJS_Settings);
'undefined' != typeof EJS_CacheLimit && (config.cacheLimit = EJS_CacheLimit);
config.onsavestate = null;
config.onloadstate = null;
'undefined' != typeof EJS_onSaveState && (config.onsavestate = EJS_onSaveState);

View file

@ -20,6 +20,7 @@ var data = {
"settings": "-Settings",
"saveState": "-Save State (Shift + F2)",
"loadState": "-Load State (Shift + F4)",
"cacheManager": "-Cache Manager",
"screenRecord": "-Start Screen Recording",
"netplay": "-Netplay",
"gamepad": "-Control Settings",
@ -41,7 +42,8 @@ var data = {
"4xScaleHQ.glslp": "-4xScaleHQ",
"crt-easymode.glslp": "-CRT easymode",
"crt-aperture.glslp": "-CRT aperture",
"crt-geom.glslp": "-CRT geom"
"crt-geom.glslp": "-CRT geom",
"crt-mattias.glslp": "-CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "Paramètres",
"saveState": "Enregistrer l'état (Maj + F2)",
"loadState": "État de charge (Maj + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Démarrer l'enregistrement d'écran",
"netplay": "Netplay",
"gamepad": "Paramètres de contrôle",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT mode facile",
"crt-aperture.glslp": "Ouverture CRT",
"crt-geom.glslp": "CRT geom"
"crt-geom.glslp": "CRT geom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": " الإعدادات",
"saveState": " حفظ الحالة (إزاحة + F2)",
"loadState": " حالة التحميل (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": " بدء تسجيل الشاشة",
"netplay": " نيت بلاي",
"gamepad": " إعدادات التحكم",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": " 4xScaleHQ",
"crt-easymode.glslp": " وضع CRT السهل",
"crt-aperture.glslp": " فتحة CRT",
"crt-geom.glslp": " CRT geom"
"crt-geom.glslp": " CRT geom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "সেটিংস",
"saveState": "সেভ স্টেট (Shift + F2)",
"loadState": "লোড স্টেট (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "স্ক্রিন রেকর্ডিং শুরু করুন",
"netplay": "নেটপ্লে",
"gamepad": "নিয়ন্ত্রণ সেটিংস",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "সিআরটি ইজিমোড",
"crt-aperture.glslp": "সিআরটি অ্যাপারচার",
"crt-geom.glslp": "সিআরটি জিওম"
"crt-geom.glslp": "সিআরটি জিওম",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "Einstellungen",
"saveState": "Zustand speichern (Umschalt + F2)",
"loadState": "Zustand laden (Umschalt + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Bildschirmaufnahme starten",
"netplay": "Netzspiel",
"gamepad": "Steuerungseinstellungen",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT Easymode",
"crt-aperture.glslp": "CRT-Öffnung",
"crt-geom.glslp": "Kathodengeom"
"crt-geom.glslp": "Kathodengeom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "Ρυθμίσεις",
"saveState": "Αποθήκευση (Shift + F2)",
"loadState": "Φόρτωση (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Εγγραφή οθόνης",
"netplay": "Online παιχνίδι",
"gamepad": "Ρυθμίσεις χειρισμού",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "Κλίμακα x4",
"crt-easymode.glslp": "Λειτουργία οθόνης παλαιού τύπου απλή",
"crt-aperture.glslp": "Λειτουργία οθόνης παλαιού τύπου με άνοιγμα",
"crt-geom.glslp": "Λειτουργία οθόνης παλαιού τύπου με θόλο"
"crt-geom.glslp": "Λειτουργία οθόνης παλαιού τύπου με θόλο",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -13,6 +13,7 @@
"saveState": "-Save State (Shift + F2)",
"loadState": "-Load State (Shift + F4)",
"screenRecord": "-Start Screen Recording",
"cacheManager": "-Cache Manager",
"netplay": "-Netplay",
"gamepad": "-Control Settings",
"cheat": "-Cheats",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "-4xScaleHQ",
"crt-easymode.glslp": "-CRT easymode",
"crt-aperture.glslp": "-CRT aperture",
"crt-geom.glslp": "-CRT geom"
"crt-geom.glslp": "-CRT geom",
"crt-mattias.glslp": "-CRT mattias"
},
"default": "disabled"
},

View file

@ -1,28 +1,29 @@
{
"i18n": {
"restart": "Restart",
"play": "Jugar",
"pause": "Pausa",
"played": "Jugó",
"volume": "Volumen",
"mute": "Silencio (F9)",
"unmute": "Activar (F9)",
"enterFullscreen": "Pantalla completa",
"exitFullscreen": "Salir de pantalla completa",
"settings": "Ajustes",
"saveState": "Guardar Estado (Shift + F2)",
"loadState": "Cargar Estado (Shift + F4)",
"screenRecord": "Comenzar gravacion de pantalla",
"netplay": "Netplay",
"gamepad": "Ajustes de control",
"cheat": "Trampas",
"menuBack": "Volver al menú anterior",
"normal": "Normal",
"all": "Todo",
"reset": "Reset",
"disabled": "Desactivar",
"enabled": "Activar",
"playNow": "Jugar ahora"
"restart": "Restart",
"play": "Jugar",
"pause": "Pausa",
"played": "Jugó",
"volume": "Volumen",
"mute": "Silencio (F9)",
"unmute": "Activar (F9)",
"enterFullscreen": "Pantalla completa",
"exitFullscreen": "Salir de pantalla completa",
"settings": "Ajustes",
"saveState": "Guardar Estado (Shift + F2)",
"loadState": "Cargar Estado (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Comenzar gravacion de pantalla",
"netplay": "Netplay",
"gamepad": "Ajustes de control",
"cheat": "Trampas",
"menuBack": "Volver al menú anterior",
"normal": "Normal",
"all": "Todo",
"reset": "Reset",
"disabled": "Desactivar",
"enabled": "Activar",
"playNow": "Jugar ahora"
},
"normalOptions": {
"shader": {
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT easymode",
"crt-aperture.glslp": "CRT aperture",
"crt-geom.glslp": "CRT geom"
"crt-geom.glslp": "CRT geom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},
@ -43,7 +45,7 @@
"disabled": "Discapacitado",
"enabled": "Activado"
},
"default": "enabled"
"default": "enabled"
}
},
"Control Settings": "Ajustes de control",

View file

@ -12,6 +12,7 @@
"settings": "सेटिंग्स",
"saveState": "राज्य बचाओ (Shift + F2)",
"loadState": "लोड स्टेट (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "स्क्रीन रिकॉर्डिंग शुरू करें",
"netplay": "नेटप्ले",
"gamepad": "नियंत्रण सेटिंग्स",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "सीआरटी ईज़ीमोड",
"crt-aperture.glslp": "सीआरटी एपर्चर",
"crt-geom.glslp": "सीआरटी जियोम"
"crt-geom.glslp": "सीआरटी जियोम",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "設定",
"saveState": "状態の保存Shift + F2",
"loadState": "ロード状態Shift + F4",
"cacheManager": "Cache Manager",
"screenRecord": "画面記録を開始します",
"netplay": "ネットプレイ",
"gamepad": "制御設定",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": " 4xScaleHQ",
"crt-easymode.glslp": " CRTイージーモード",
"crt-aperture.glslp": " CRTアパーチャ",
"crt-geom.glslp": " CRTジオメトリ"
"crt-geom.glslp": " CRTジオメトリ",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": " Setelan",
"saveState": "Simpen Status (Shift + F2)",
"loadState": "Muat Status (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": " Miwiti Rekaman Layar",
"netplay": " Netplay",
"gamepad": " Setelan Kontrol",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xSkalaHQ",
"crt-easymode.glslp": "CRT mode gampang",
"crt-aperture.glslp": " Bukaan CRT",
"crt-geom.glslp": " CRT geom"
"crt-geom.glslp": " CRT geom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -12,6 +12,7 @@
"settings": "설정",
"saveState": "상태 저장(Shift + F2)",
"loadState": "로드 상태(Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "화면 녹화 시작",
"netplay": "넷플레이",
"gamepad": "제어 설정",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT 이지모드",
"crt-aperture.glslp": "CRT 조리개",
"crt-geom.glslp": "CRT 지오메트리"
"crt-geom.glslp": "CRT 지오메트리",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -1,28 +1,29 @@
{
"i18n": {
"restart": "Restart",
"play": "Jogar",
"pause": "Pausar",
"played": "Jogado",
"volume": "Volume",
"mute": "Mudo (F9)",
"unmute": "Desmutar (F9)",
"enterFullscreen": "Tela cheia",
"exitFullscreen": "Sair da tela cheia",
"settings": "Configurações",
"saveState": "Salvar Estado (Shift + F2)",
"loadState": "Carregar Estado (Shift + F4)",
"screenRecord": "Começar Gravar Tela",
"netplay": "Netplay",
"gamepad": "Configurações do Controle",
"cheat": "Trapaças",
"menuBack": "Voltar ao menu anterior",
"normal": "Normal",
"all": "Todos",
"reset": "Reset",
"disabled": "Desativar",
"enabled": "Ativar",
"playNow": "Jogar agora"
"restart": "Restart",
"play": "Jogar",
"pause": "Pausar",
"played": "Jogado",
"volume": "Volume",
"mute": "Mudo (F9)",
"unmute": "Desmutar (F9)",
"enterFullscreen": "Tela cheia",
"exitFullscreen": "Sair da tela cheia",
"settings": "Configurações",
"saveState": "Salvar Estado (Shift + F2)",
"loadState": "Carregar Estado (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Começar Gravar Tela",
"netplay": "Netplay",
"gamepad": "Configurações do Controle",
"cheat": "Trapaças",
"menuBack": "Voltar ao menu anterior",
"normal": "Normal",
"all": "Todos",
"reset": "Reset",
"disabled": "Desativar",
"enabled": "Ativar",
"playNow": "Jogar agora"
},
"normalOptions": {
"shader": {
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT easymode",
"crt-aperture.glslp": "CRT aperture",
"crt-geom.glslp": "CRT geom"
"crt-geom.glslp": "CRT geom",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -8,7 +8,7 @@ Supported languages
`es-ES` - Spanish<br>
`el-GR` - Greek<br>
`ja-JA` - Japanese<br>
`chi-CHI` - Chinese<br>
`zh-CN` - Chinese<br>
`hi-HI` - Hindi<br>
`ar-AR` - Arabic<br>
`jv-JV` - Javanese<br>
@ -32,14 +32,15 @@ If the language file is not found or there was an error fetching the file, the e
## credits
translated for `pt-BR` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
translated for `es-ES` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
translated for `el-GR` by [@imneckro](https://github.com/imneckro) <br>
translated for `ja-JA`, `chi-CHI`, `hi-HI`, `ar-AR`, `jv-JV`, `ben-BEN`, `ru-RU`, `de-GER`, `ko-KO`, `af-FR` by [@allancoding](https://github.com/allancoding) <br>
Translated for `pt-BR` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
Translated for `es-ES` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
Translated for `el-GR` by [@imneckro](https://github.com/imneckro) <br>
Translated for `ja-JA`, `hi-HI`, `ar-AR`, `jv-JV`, `ben-BEN`, `ru-RU`, `de-GER`, `ko-KO`, `af-FR` by [@allancoding](https://github.com/allancoding) <br>
Translated for `zh-CN` originally by [@allancoding](https://github.com/allancoding) and updated by [@eric183](https://github.com/eric183)<br>
## contributing
download the default `en.json` file and simply translate all the words that start with the `-` (remove the dash afterwards) then perform a pull request or open an issue with the file uploaded and I will add your work
Download the default `en.json` file and simply translate all the words that start with the `-` (remove the dash afterwards) then perform a pull request or open an issue with the file uploaded and I will add your work
Please contribute!!

View file

@ -12,6 +12,7 @@
"settings": "Настройки",
"saveState": "Сохранить состояние (Shift + F2)",
"loadState": "Загрузить состояние (Shift + F4)",
"cacheManager": "Cache Manager",
"screenRecord": "Начать запись экрана",
"netplay": "Сетевая игра",
"gamepad": "Настройки управления",
@ -33,7 +34,8 @@
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "ЭЛТ простой режим",
"crt-aperture.glslp": "ЭЛТ-диафрагма",
"crt-geom.glslp": "ЭЛТ геометрия"
"crt-geom.glslp": "ЭЛТ геометрия",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},

View file

@ -28,19 +28,20 @@
"shader": {
"label": "着色器",
"options": {
"disabled": "残人士",
"disabled": "残人士",
"2xScaleHQ.glslp": "2xScaleHQ",
"4xScaleHQ.glslp": "4xScaleHQ",
"crt-easymode.glslp": "CRT 简易模式",
"crt-aperture.glslp": "CRT孔径",
"crt-geom.glslp": "CRT几何"
"crt-geom.glslp": "CRT几何",
"crt-mattias.glslp": "CRT mattias"
},
"default": "disabled"
},
"virtual-gamepad": {
"label": "虚拟游戏手柄",
"options": {
"disabled": "残人士",
"disabled": "残人士",
"enabled": "启用"
},
"default": "enabled"
@ -191,4 +192,4 @@
"Take Screenshot": "截图",
"Quick Save": "快速保存",
"Quick Load": "快速加载"
}
}

View file

@ -1 +0,0 @@
node_modules/

View file

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

View file

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

2
data/webrtc-adapter.js Normal file

File diff suppressed because one or more lines are too long

View file

@ -54,34 +54,30 @@
[![Avatar Grey]][GitHub Grey]
[![Avatar Kyle]][GitHub Kyle]
[![Avatar Protektor]][GitHub Protektor]
[![Avatar Eric]][GitHub Eric]
</div>
<!------------------------------------------------------------------------------>
[Avatar Nekro]: https://github.com/imneckro.png?size=100
[Avatar Nekro]: https://github.com/imneckro.png?size=120
[GitHub Nekro]: https://github.com/imneckro 'ImNekro - ck-oneman'
[Avatar Grey]: https://github.com/Grey41.png?size=100
[Avatar Grey]: https://github.com/Grey41.png?size=120
[GitHub Grey]: https://github.com/Grey41 'Grey41 - Grey Hope'
[Avatar Kyle]: https://github.com/cheesykyle.png?size=100
[Avatar Kyle]: https://github.com/cheesykyle.png?size=120
[GitHub Kyle]: https://github.com/cheesykyle 'CheesyKyle - Kyle Steffel'
[Avatar Protektor]: https://github.com/Protektor-Desura.png?size=120
[GitHub Protektor]: https://github.com/Protektor-Desura 'Protektor-Desura - Protektor'
[Avatar Eric]: https://github.com/eric183.png?size=100
[GitHub Eric]: https://github.com/eric183 'Eric183 - Eric Kuang'
[GitHub Protektor]: https://github.com/Protektor-Desura 'Protektor-Desura - Protektor-Desura'
<!----------------------------------{ Ethan }----------------------------------->
[Badge Ethan GitHub]: https://img.shields.io/badge/Ethan_O'_Brien-181717.svg?style=for-the-badge&logo=GitHub&logoColor=white
[Ethan Avatar]: https://avatars.githubusercontent.com/u/77750390?s=110 'Ethan O\'Brien'
[Ethan Avatar]: https://avatars.githubusercontent.com/u/77750390?s=80 'Ethan O\'Brien'
[Ethan GitHub]: https://github.com/ethanaobrien
@ -90,7 +86,7 @@
[Badge Archiver GitHub]: https://img.shields.io/badge/ElectronicsArchiver-181717.svg?style=for-the-badge&logo=GitHub&logoColor=white
[Badge Archiver Marked]: https://img.shields.io/badge/-49a2d5.svg?style=for-the-badge&logo=GitHub&logoColor=white
[Archiver Avatar]: https://avatars.githubusercontent.com/u/85485984?s=110 'ElectronicsArchiver - トトも'
[Archiver Avatar]: https://avatars.githubusercontent.com/u/85485984?s=80 'ElectronicsArchiver - トトも'
[Archiver GitHub]: https://github.com/ElectronicsArchiver
[Archiver Marked]: https://github.com/MarkedDown
@ -100,6 +96,6 @@
[Badge Allan GitHub]: https://img.shields.io/badge/allancoding-181717.svg?style=for-the-badge&logo=GitHub&logoColor=white
[Badge Allan Website]: https://img.shields.io/badge/AllanCoding.ga-lightgray.svg?style=for-the-badge&logo=GitHub&logoColor=white
[Allan Avatar]: https://avatars.githubusercontent.com/u/74841470?s=110 'AllanCoding - Allan Niles'
[Allan Avatar]: https://avatars.githubusercontent.com/u/74841470?s=80 'AllanCoding - Allan Niles'
[Allan GitHub]: https://github.com/allancoding
[Allan Website]: https://allancoding.ga/

View file

@ -1,6 +1,6 @@
# Arcade
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -8,41 +8,30 @@
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be fbalpha2012_cps1 or fbalpha2012_cps2
EJS_core = 'arcade';
// URL to Bios file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROMS
## ROM Type
Only use **FBA ROMs** of version`0.2.97.42`
Your **ROM** can have the following extensions:
- `zip`
### ROM List
### CORES
The following **ROMs** must use the listed name.
The *arcade* system supports 2 cores
- `fbalpha2012_cps1`
- `fbalpha2012_cps2`
| Name | MD5 Checksum | Description |
|------|--------------|-------------|
| `neogeo.zip` | `410c65b2debdf4f2dac9ea2b23aa496e` | Required for **Neo Geo Games**
| `pgm.zip` | `653e991a39e867354d090c3394157d1c` | Required for **IGS Games**
| `isgsm.zip` | `4a56d56e2219c5e2b006b66a4263c01c` | **ISG Selection Master Type 2006 BIOS**
If set to `arcade`, emulator will use the `fbalpha2012_cps1` core.

View file

@ -1,9 +1,6 @@
# Atari 5200
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -11,25 +8,30 @@ There is no bios for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be a5200
EJS_core = 'atari5200';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `a52`
- `bin`
### CORES
The *atari5200* system supports 1 core
- `a5200`
If set to `atari5200`, emulator will use the `a5200` core.

35
docs/Systems/MAME 2003.md Normal file
View file

@ -0,0 +1,35 @@
# MAME 2003
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
EJS_core = 'mame2003';
// URL to Game rom
EJS_gameUrl = '';
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `zip`
### CORES
The *mame2003* system supports 2 cores
- `mame2003`
If set to `mame2003`, emulator will use the `mame2003` core.

View file

@ -8,37 +8,28 @@
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be fceumm or nestopia
EJS_core = 'nes';
// Lightgun
EJS_lightgun = false; // Lightgun
EJS_lightgun = false;
// URL to Famicom Disk System bios
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following types:
Your **ROM** can have the following extensions:
- `fds`
- `nes`
- `unif`
@ -46,5 +37,16 @@ Your **ROM** can have the following types:
### BIOS
You can find the **Famicon BIOS** by looking up the **MD5** checksum: <br>
`ca30b50f880eb660a320674ed365ef7a`
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| disksys.rom | Family Computer Disk System BIOS -<br> Required for Famicom Disk System emulation | ca30b50f880eb660a320674ed365ef7a |
| gamegenie.nes | Game Genie add-on cartridge -<br> Required for Game Genei Add-on emulation<br> (Only supported on the fceumm core) | 7f98d77d7a094ad7d069b74bd553ec98 |
### CORES
The *nes* system supports 2 cores
- `fceumm`
- `nestopia`
If set to `nes`, emulator will use the `fceumm` core.

View file

@ -1,9 +1,5 @@
# Nintendo 64
I do not know the file extension limits for this system. <br>
I know the `.z64` roms work. <br>
There is no bios for this system
## Code Example
```html
@ -12,24 +8,35 @@ There is no bios for this system
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be mupen64plus_next
EJS_core = 'n64';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `n64`
- `v64`
- `z64`
- `bin`
- `u1`
- `ndd`
- `gb`
### CORES
The *n64* system supports 1 core
- `mupen64plus_next`
If set to `n64`, emulator will use the `mupen64plus_next` core.

View file

@ -1,10 +1,6 @@
# Nintendo DS
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -12,23 +8,47 @@ There is no bios for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be desmume2015 or melonds
EJS_core = 'nds';
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `nds`
- `bin` (desmume2015 core only)
### BIOS (melonds core only)
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| bios7.bin | NDS ARM7 BIOS - Required | df692a80a5b1bc90728bc3dfc76cd948 |
| bios9.bin | NDS ARM9 BIOS - Required | a392174eb3e572fed6447e956bde4b25 |
| firmware.bin | NDS Firmware - Required | 145eaef5bd3037cbc247c213bb3da1b3 |
| dsi_bios7.bin | DSi ARM7 BIOS - Optional | |
| dsi_bios9.bin | DSi ARM9 BIOS - Optional | |
| dsi_firmware.bin | DSi Firmware - Optional | |
| dsi_nand.bin | DSi NAND - Optional | |
| dsi_sd_card.bin | DSi SD Card - Optional | |
### CORES
The *nds* system supports 2 cores
- `melonds`
- `desmume2015`
If set to `nds`, emulator will use the `melonds` core.

View file

@ -1,8 +1,6 @@
# Nintendo Game Boy Advance
# Nintendo GameBoy Advance
I do not know the file extension limits for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -10,38 +8,43 @@ I do not know the file extension limits for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be mgba
EJS_core = 'gba';
// URL to Bios file
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
## ROM Type
You can search for the BIOS you need by utilizing the **MD5** checksum.
Your **ROM** can have the following extensions:
- `gb`
- `gbc`
- `gba`
| Type | MD5 Checksum |
|------|--------------|
| Game Boy Advance | `a860e8c0b6d573d191e4ec7db1b1e4f6`
| Game Boy | `32fbbd84168d3482956eb3c5051637f5`
| Game Boy Color | `dbfce9db9deaa2567f6a84fde55f9680`
| Super Game Boy | `d574d4f9c12f305074798f54c091a8b4`
### BIOS
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| gb_bios.bin | Game Boy BIOS - Optional | 32fbbd84168d3482956eb3c5051637f5 |
| gbc_bios.bin | Game Boy Color BIOS - Optional | dbfce9db9deaa2567f6a84fde55f9680 |
| gba_bios.bin | Game Boy Advance BIOS - Optional | a860e8c0b6d573d191e4ec7db1b1e4f6 |
| sgb_bios.bin | Super Game Boy BIOS - Optional | d574d4f9c12f305074798f54c091a8b4 |
### CORES
The *gba* system supports 1 core
- `mgba`
If set to `gba`, emulator will use the `mgba` core.

View file

@ -1,8 +1,6 @@
# Nintendo Game Boy
# Nintendo GameBoy
I do not know the file extension limits for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -10,36 +8,42 @@ I do not know the file extension limits for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be gambatte or mgba
EJS_core = 'gb';
// URL to Bios file
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
## ROM Type
You can search for the BIOS you need by utilizing the **MD5** checksum.
Your **ROM** can have the following extensions:
- `gb`
- `gbc`
- `dmg`
| Type | MD5 Checksum |
|------|--------------|
| Game Boy | `32fbbd84168d3482956eb3c5051637f5`
| Game Boy Color | `dbfce9db9deaa2567f6a84fde55f9680`
### BIOS
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| gb_bios.bin | Game Boy BIOS - Optional | 32fbbd84168d3482956eb3c5051637f5 |
| gbc_bios.bin | Game Boy Color BIOS - Optional | dbfce9db9deaa2567f6a84fde55f9680 |
### CORES
The *gb* system supports 2 cores
- `gambatte`
- `mgba`
If set to `gb`, emulator will use the `gambatte` core.

View file

@ -1,6 +1,6 @@
# PlayStation
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -8,50 +8,47 @@
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be mednafen_psx or mednafen_psx_hw
EJS_core = 'psx';
// URL to Bios file
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following types:
- `bin`
Your **ROM** can have the following extensions:
- `cue`
- `img`
- `mdf`
- `pbp`
- `toc`
- `cbn`
- `m3u`
- `ccd`
- `exe`
- `pbp`
- `chd`
## BIOS
### BIOS
You can search for the BIOS you need by utilizing the **MD5** checksum.
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| scph5500.bin | PS1 JP BIOS - Required for JP games | 8dd7d5296a650fac7319bce665a6a53c |
| scph5501.bin | PS1 US BIOS - Required for US games | 490f666e1afb15b7362b406ed1cea246 |
| scph5502.bin | PS1 EU BIOS - Required for EU games | 32736f17079d0b2b7024407c39bd3050 |
| Type | MD5 Checksum |
|------|--------------|
| PlayStation 1 JP | `8dd7d5296a650fac7319bce665a6a53c`
| PlayStation 1 US | `490f666e1afb15b7362b406ed1cea246`
| PlayStation 1 EU | `32736f17079d0b2b7024407c39bd3050`
### CORES
The *psx* system supports 2 cores
- `mednafen_psx_hw`
- `mednafen_psx`
If set to `psx`, emulator will use the `mednafen_psx_hw` core.

View file

@ -1,8 +1,6 @@
# SNES
There is no bios for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -10,43 +8,50 @@ There is no bios for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
EJS_core = 'snes';
// SNES Mouse
// Can also be snes9x
EJS_core = 'snes';
//SNES mouse
EJS_mouse = false;
// SNES Multitap
EJS_multitap = false;
// URL to BIOS file
EJS_biosUrl = '';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following types:
Your **ROM** can have the following extensions:
- `smc`
- `fig`
- `sfc`
- `gd3`
- `gd7`
- `dx2`
- `bsx`
- `swc`
- `fig`
- `bs`
- `st`
### BIOS
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| BS-X.bin | BS-X - Sore wa Namae o Nusumareta Machi no<br> Monogatari (Japan) (Rev 1) - Optional | fed4d8242cfbed61343d53d48432aced |
| STBIOS.bin | Sufami Turbo (Japan) - Optional | d3a44ba7d42a74d3ac58cb9c14c6a5ca |
### CORES
The *snes* system supports 1 core
- `snes9x`
If set to `snes`, emulator will use the `snes9x` core.

View file

@ -1,9 +1,6 @@
# Virtual Boy
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## Code example
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
@ -11,25 +8,31 @@ There is no bios for this system.
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be beetle_vb
EJS_core = 'vb';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
// Path to the data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `vb`
- `vboy`
- `bin`
### CORES
The *vb* system supports 1 core
- `beetle_vb`
If set to `vb`, emulator will use the `beetle_vb` core.

View file

@ -1,143 +0,0 @@
# Usage
*For questions please use the* ***[Issue]*** *tab.*
<br>
## Setup
1. Download this repository.<br>
*`Code ➞ Download As Zip`*
2. Use a **WebServer** to host the emulator.
3. Use your **Browser** to navigate to `localhost`
<br>
## ROMs
**ROMs** can be used as `zip` / `rar` / `7z` archives.
<br>
## Netplay
By default **Netplay** is ***disabled***, <br>
to enable it, add the following:
```js
// ID in your website, required for netplay. Each game in your site should have a different ID
EJS_gameID = 1;
```
<br>
by default, the netplay server url will be `emuserver.emulatorjs.ga`, but to default to the default `ws.emulatorjs.com` server add the following line
```js
EJS_oldEJSNetplayServer = true;
```
<br>
*To self host:*
1. Download the **[Server]**.
2. Specify the servers address with:
```js
EJS_netplayUrl = 'http://localhost:3000/'; // Absolute Url To Your Netplay Server
```
<br>
## Custom Save Filename
To customize the filename of save states <br>
simply add the following lines of code.
```js
EJS_gameName = 'Game Name';
```
**➞ Save Filename:** `Game Name.state`
<br>
## AD
To place an advertisement in front of the <br>
`play now` screen, include the following line:
```js
EJS_AdUrl = 'URL';
```
<br>
## Interface Color
To use a different color for the emulator interface, use:
```js
EJS_color = '#FF0000'; // Hex Color Code
```
<br>
## Direct Start
To start the emulator immediately, add this line:
```js
EJS_startOnLoaded = true;
```
*For audio to play the user still* <br>
*needs to interact with the page.*
<br>
## Custom Paths
Paths to emulator files can be customized with:
```js
EJS_paths = {
'fileName' : '/somepath',
'emulator.js' : 'https://example.com/emulator.js',
'n64-asmjs.data' : '/asdfds.data'
};
```
*If a file is not defined, the default is used.*
<br>
## Localization
Please see [the localization README].
<br>
## Using MAME
To use the **MAME** system you will have to add:
```js
EJS_core = 'mame';
EJS_mameCore = '' // mame core options (example: '4|0')
```
to your code.
Set the mame core value to the mame core number ( `1` - `6` ) + `|` + save states supported ( `0` or `1` )
<!----------------------------------------------------------------------------->
[Issue]: https://github.com/ethanaobrien/emulatorjs/issues
[Server]: https://github.com/ethanaobrien/emuserver/releases
[the localization readme]: data/localization/