Add repo docs

This commit is contained in:
Ethan O'Brien 2023-07-18 10:56:27 -05:00
parent 299c04c234
commit eb6d7be2d0
40 changed files with 6172 additions and 36 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']

30
.github/ISSUE_TEMPLATE/bug.md vendored Normal file
View file

@ -0,0 +1,30 @@
---
name: Bug
about: Something isn't functioning as intended
title: "[Bug]"
labels: ''
assignees: ''
---
#### Make sure your issue doesn't get closed! Make sure you have done the following items
- [ ] I have collected a **FULL** log of the console, with `EJS_DEBUG_XX` set to true, and uploaded it straight to GitHub.
- [ ] I have not made any changes to the EmulatorJS instance I am running into this bug on.
- [ ] I am on the latest version of EmulatorJS
- [ ] I have not attached any images or logs via external sites. I have uploaded them straight to GitHub and acknowledge that external sites may pose a security issue.
- [ ] I have included, **IN DETAIL**, the steps to reproduce the bug.
<!--
To collect a log of the console.
1. Add the following line to your code
```
EJS_DEBUG_XX = true;
```
2. Right click and click `inspect`.
3. Select the `console` tab at the top.
4. then reload the broken page.
5. Right click on the console and click `Save as...`
6. Upload it to your issue.
-->

42
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,42 @@
name: Minify Code
on: [push, pull_request, workflow_dispatch]
jobs:
paths-filter:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.filter.outputs.data }}
steps:
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
data:
- 'data/**'
# run only if 'data' files were changed
- name: workflow tests
if: steps.filter.outputs.data == 'true'
run: echo "Data file"
# run only if not 'data' files were changed
- name: not workflow tests
if: steps.filter.outputs.data != 'true'
run: echo "NOT Data file"
next-job:
runs-on: ubuntu-latest
# Wait from the paths-filter to be completed before starting next-job
needs: paths-filter
if: needs.paths-filter.outputs.output1 == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '12'
- run: cd data/minify && npm install
- run: cd data/minify && npm run build
- uses: EndBug/add-and-commit@v9
with:
default_author: github_actions

1
.gitignore vendored
View file

@ -1,4 +1,3 @@
**/node_modules/ **/node_modules/
data/minify/package-lock.json data/minify/package-lock.json
*.db *.db
roms/

247
CHANGES.md Normal file
View file

@ -0,0 +1,247 @@
# Changes
# 4.0 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/f7fa5d41487a424233b40e903020455606d68fee)
- Fixed iOS bug for iPads
- Added netplay! (only working on new cores)
# 3.1.5 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/f7fa5d41487a424233b40e903020455606d68fee)
- Fixed iOS bug for iPads
- Added netplay! (only working on new cores)
# 3.1.0 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/614f5cb55e2768199ba05b756b47d0ab7ab283fd)
- 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/EmulatorJS/EmulatorJS/tree/44c31371fb3c314cd8dea36ccbaad89fb3ab98e6)
- 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.
# 2.3.9 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/a5a9916aba041e75ee73815376ed4fd2e22701bd)
- Use regex to detect and replace invalid characters in filename/gamename settings.
# 2.3.4 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/45d982b6362cfd29cb2eda9721066e03893ba0d8)
- Add new arcade core.
- Fix patch file game id set bug.
# 2.3.4 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/45d982b6362cfd29cb2eda9721066e03893ba0d8)
- Add new arcade core.
# 2.3.3 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/0fd6d58e2011fa1a39bd2e11ba3d2f17773f0961)
- Use let instead of var.
# 2.3.0 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/018c39d4065b866487f8f18ca88c9488eab69a6d)
- Added feature to save save files to indexeddb every 5 minutes.
# 2.2.8 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/9860d662d02b56417044cca11937448041d9cf43)
- Re-write gamepad handler.
# 2.2.7 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/c03d18990b6536c1503bba2c640dbc13db982bb3)
- Removed un-needed FS proxy functions.
# 2.2.6 [View Tree](https://github.com/EmulatorJS/EmulatorJS/tree/fd71b5dfc2bd44d8e1f0e7c6c7b3ee1a1127a696)
- Added fps counter.
- Fixed gba core aspect.
# 2.2.5 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/41eed05677b4927bd114613040bfe4572c92c4b4)
- Fixed rar unarchiving function reference.
- Updated rar header detection.
- Removed netplay.
# 2.2.1 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/638658e6202fd39cb5c94bedcfa00ccdf8b25840)
- Updated beta core files.
# 1.1.6 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/EmulatorJS/tree/5d97620b25a81e49c6ba313e586fb37a5ce66002)
- Start emulator.js deobsfocuting.
# 0.4.23-01 [View Tree](https://github.com/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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/EmulatorJS/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.

1
CNAME Normal file
View file

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

128
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
ethan.a.obrien@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

193
README.md Normal file
View file

@ -0,0 +1,193 @@
<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>
<br>
<br>
[![Badge License]][License]
Self-hosted **Javascript** emulation for various system.
<br>
Try out netplay [here](https://demo.emulatorjs.org/demos/netplay.html)!
<br>
[![Button Website]][Website]
[![Button Usage]][Usage]<br>
[![Button Configurator]][Configurator]<br>
[![Button Demo]][Demo]
[![Button Legacy]][Legacy]
[![Button Contributors]][Contributors]
Join our Discord server:
[![Join our Discord server!](https://invite.caspertheghost.me/?inviteCode=6akryGkETU&format=svg)](https://discord.gg/6akryGkETU)
</div>
<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
*If something doesn't work, please consider opening an* ***[Issue]*** <br>
*with as many details as possible, as well as the console log.*
<br>
### Extensions
**[GameLibrary]**
*A library overview for your **ROM** folder.*
<br>
**>>When reporting bugs, please specify that you are using the old version**
<br>
<br>
<br>
<h1 align = center>Supported Systems</h1>
<br>
<div align = center>
### Nintendo
**[Game Boy Advance][Nintendo Game Boy Advance]**|
**[Famicom / NES][NES / Famicom]**|
**[Virtual Boy][Virtual Boy]**
**[Game Boy][Nintendo Game Boy]**|
**[SNES]**|
**[DS][Nintendo DS]**|
**[64][Nintendo 64]**
<br>
<br>
### Sega
**[Master System][Sega Master System]**|
**[Mega Drive][Sega Mega Drive]**|
**[Game Gear][Sega Game Gear]**
**[Saturn][Sega Saturn]**|
**[CD][Sega CD]**
<br>
<br>
### Atari
**[2600][Atari 2600]**|
**[5200][Atari 5200]**|
**[7800][Atari 7800]**|
**[Lynx][Atari Lynx]**|
**[Jaguar][Atari Jaguar]**
<br>
<br>
### Other
**[PlayStation]**|
**[Arcade]**|
**[3DO]**|
**[MAME 2003]**
</div>
<br>
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[License]: LICENSE
[Issue]: https://github.com/ethanaobrien/emulatorjs/issues
[patreon]: https://patreon.com/EmulatorJS
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Extensions 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[GameLibrary]: https://github.com/Ramaerel/emulatorjs-GameLibrary
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Quicklinks 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[Configurator]: https://emulatorjs.org/editor.html
[Contributors]: docs/Contributors.md
[Website]: https://emulatorjs.org/
[Legacy]: https://coldcast.org/games/1/Super-Mario-Bros
[Usage]: https://emulatorjs.org/docs/
[Demo]: https://demo.emulatorjs.org/
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Systems 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 -->
[Nintendo Game Boy Advance]: docs/Systems/Nintendo%20Game%20Boy%20Advance.md
[Nintendo Game Boy]: docs/Systems/Nintendo%20Game%20Boy.md
[Nintendo 64]: docs/Systems/Nintendo%2064.md
[Nintendo DS]: docs/Systems/Nintendo%20DS.md
[Sega Master System]: docs/Systems/Sega%20Master%20System.md
[Sega Mega Drive]: docs/Systems/Sega%20Mega%20Drive.md
[Sega Game Gear]: docs/Systems/Sega%20Game%20Gear.md
[Sega Saturn]: docs/Systems/Sega%20Saturn.md
[Sega 32X]: docs/Systems/Sega%2032X.md
[Sega CD]: docs/Systems/Sega%20CD.md
[Atari Jaguar]: docs/Systems/Atari%20Jaguar.md
[Atari Lynx]: docs/Systems/Atari%20Lynx.md
[Atari 7800]: docs/Systems/Atari%207800.md
[Atari 2600]: docs/Systems/Atari%202600.md
[Atari 5200]: docs/Systems/Atari%205200.md
[NES / Famicom]: docs/Systems/NES-Famicom.md
[SNES]: docs/Systems/SNES.md
[TurboGrafs-16 / PC Engine]: docs/Systems/TurboGrafs%2016-PC%20Engine.md
[WanderSwan / Color]: docs/Systems/WanderSwan-Color.md
[Neo Geo Poket]: docs/Systems/Neo%20Geo%20Poket.md
[PlayStation]: docs/Systems/PlayStation.md
[Virtual Boy]: docs/Systems/Virtual%20Boy.md
[Arcade]: docs/Systems/Arcade.md
[MSX]: docs/Systems/MSX.md
[3DO]: docs/Systems/3DO.md
[MAME 2003]: docs/Systems/MAME%202003.md
<!-- 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 Badges 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 🎮 --->
[Badge License]: https://img.shields.io/badge/License-GPLv3-blue.svg?style=for-the-badge
[Button Configurator]: https://img.shields.io/badge/Configurator-992cb3?style=for-the-badge
[Button Contributors]: https://img.shields.io/badge/Contributors-54b7dd?style=for-the-badge
[Button Website]: https://img.shields.io/badge/Website-736e9b?style=for-the-badge
[Button Legacy]: https://img.shields.io/badge/Legacy-ab910b?style=for-the-badge
[Button Usage]: https://img.shields.io/badge/Usage-2478b5?style=for-the-badge
[Button Demo]: https://img.shields.io/badge/Demo-528116?style=for-the-badge
[Button Beta]: https://img.shields.io/badge/Beta-bb044f?style=for-the-badge

28
a.html
View file

@ -1,28 +0,0 @@
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
EJS_core = 'nes';
EJS_gameUrl = 'roms/mega_mountain.nes';
EJS_DEBUG_XX = true;
//EJS_AdUrl = "https://www.google.com/search?igu=1";
EJS_Buttons = {
restart: false
}
EJS_volume = 1;
EJS_startOnLoaded = true;
//EJS_loadStateURL = "mega_mountain.state";
//EJS_netplayServer = "http://"+window.location.hostname+":3000/";
EJS_gameID = 1;
</script>
<script src='data/loader.js'></script>
</body>
</html>

1
ads.txt Normal file
View file

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

View file

@ -20,7 +20,6 @@ class EmulatorJS {
'mame2003': 'mame2003', 'mame2003': 'mame2003',
'fbalpha2012_cps1': 'arcade', 'fbalpha2012_cps1': 'arcade',
'fbalpha2012_cps2': 'arcade', 'fbalpha2012_cps2': 'arcade',
'mednafen_psx': 'psx',
'mednafen_psx_hw': 'psx', 'mednafen_psx_hw': 'psx',
'melonds': 'nds', 'melonds': 'nds',
'nestopia': 'nes', 'nestopia': 'nes',
@ -157,14 +156,27 @@ class EmulatorJS {
})(); })();
} }
} }
checkForUpdates() {
fetch('https://raw.githack.com/EmulatorJS/EmulatorJS/main/data/version.json').then(response => {
if (response.ok) {
response.text().then(body => {
let version = JSON.parse(body);
if (this.ejs_num_version < version.current_version) {
console.log('Using emulatorjs version ' + this.ejs_num_version + ' but the newest version is ' + version.current_version + '\nopen https://github.com/EmulatorJS/EmulatorJS to update');
}
})
}
})
}
constructor(element, config) { constructor(element, config) {
this.ejs_version = "4.0"; this.ejs_version = "4.0.1";
this.ejs_num_version = 40.1;
this.debug = (window.EJS_DEBUG_XX === true);
if (this.debug || (window.location && ['localhost', '127.0.0.1'].includes(location.hostname))) this.checkForUpdates();
this.netplay = false; //DO NOT ENABLE UNLESS YOU KNOW WHAT YOU'RE DOING this.netplay = false; //DO NOT ENABLE UNLESS YOU KNOW WHAT YOU'RE DOING
this.config = config; this.config = config;
window.EJS_TESTING = this;
this.currentPopup = null; this.currentPopup = null;
this.touch = false; this.touch = false;
this.debug = (window.EJS_DEBUG_XX === true);
this.cheats = []; this.cheats = [];
this.started = false; this.started = false;
this.volume = (typeof this.config.volume === "number") ? this.config.volume : 0.5; this.volume = (typeof this.config.volume === "number") ? this.config.volume : 0.5;

View file

@ -41,7 +41,7 @@
await loadScript('gamepad.js'); await loadScript('gamepad.js');
await loadScript('GameManager.js'); await loadScript('GameManager.js');
await loadScript('socket.io.min.js'); await loadScript('socket.io.min.js');
await loadStyle('css/main.css'); await loadStyle('emulator.css');
} }
const config = {}; const config = {};
config.gameUrl = window.EJS_gameUrl; config.gameUrl = window.EJS_gameUrl;
@ -51,7 +51,7 @@
config.gameName = window.EJS_gameName; config.gameName = window.EJS_gameName;
config.color = window.EJS_color; config.color = window.EJS_color;
config.adUrl = window.EJS_AdUrl; config.adUrl = window.EJS_AdUrl;
config.adTimer = window.EJS_AdTimer config.adTimer = window.EJS_AdTimer;
config.VirtualGamepadSettings = window.EJS_VirtualGamepadSettings; config.VirtualGamepadSettings = window.EJS_VirtualGamepadSettings;
config.buttonOpts = window.EJS_Buttons; config.buttonOpts = window.EJS_Buttons;
config.volume = window.EJS_volume; config.volume = window.EJS_volume;
@ -83,6 +83,15 @@
} }
} }
new EmulatorJS(EJS_player, config); window.EJS_emulator = new EmulatorJS(EJS_player, config);
if (typeof window.EJS_onGameStart === "function") {
window.EJS_emulator.on("start", window.EJS_onGameStart);
}
if (typeof window.EJS_onLoadState === "function") {
window.EJS_emulator.on("load", window.EJS_onLoadState);
}
if (typeof window.EJS_onSaveState === "function") {
window.EJS_emulator.on("save", window.EJS_onSaveState);
}
})(); })();

1
data/version.json Normal file
View file

@ -0,0 +1 @@
{ "current_version": 40.1 }

109
docs/Contributors.md Normal file
View file

@ -0,0 +1,109 @@
<br>
<div align = center>
# Owner
<br>
<br>
![Ethan Avatar]
**[![Badge Ethan GitHub]][Ethan GitHub]**
<br>
<br>
<br>
<br>
# Contributors
<br>
<br>
![Allan Avatar]
### Co-Owner
***Various Fixes & Additions***
**[![Badge Allan GitHub]][Allan GitHub]**
**[![Badge Allan Website]][Allan Website]**
<br>
<br>
<br>
![Archiver Avatar]
***Documentation Design***
**[![Badge Archiver GitHub]][Archiver GitHub]**
**[![Badge Archiver Marked]][Archiver Marked]**
<br>
<br>
<br>
[![Avatar Nekro]][GitHub Nekro]
[![Avatar Grey]][GitHub Grey]
[![Avatar Kyle]][GitHub Kyle]
[![Avatar Protektor]][GitHub Protektor]
[![Avatar ericKuang]][GitHub ericKuang]
[![Avatar seedgou]][GitHub seedgou]
</div>
<!------------------------------------------------------------------------------>
[Avatar Nekro]: https://github.com/imneckro.png?size=100
[GitHub Nekro]: https://github.com/imneckro 'ImNekro - ck-oneman'
[Avatar Grey]: https://github.com/Grey41.png?size=100
[GitHub Grey]: https://github.com/Grey41 'Grey41 - Grey Hope'
[Avatar Kyle]: https://github.com/cheesykyle.png?size=100
[GitHub Kyle]: https://github.com/cheesykyle 'CheesyKyle - Kyle Steffel'
[Avatar Protektor]: https://github.com/Protektor-Desura.png?size=100
[GitHub Protektor]: https://github.com/Protektor-Desura 'Protektor-Desura - Protektor'
[Avatar ericKuang]: https://github.com/eric183.png?size=100
[GitHub ericKuang]: https://github.com/eric183 'eric183 - ericKuang'
[Avatar seedgou]: https://github.com/rwv.png?size=100
[GitHub seedgou]: https://github.com/rwv 'rwv - seedgou'
<!----------------------------------{ 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=90 'Ethan O\'Brien'
[Ethan GitHub]: https://github.com/ethanaobrien
<!---------------------------{ ElectronicsArchiver }--------------------------->
[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=90 'ElectronicsArchiver - トトも'
[Archiver GitHub]: https://github.com/ElectronicsArchiver
[Archiver Marked]: https://github.com/MarkedDown
<!----------------------------------{ Allan }---------------------------------->
[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=90 'Allancoding - Allan Niles'
[Allan GitHub]: https://github.com/allancoding
[Allan Website]: https://allancoding.ga/

BIN
docs/Logo-light.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
docs/Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

4487
docs/Logo.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 170 KiB

56
docs/Systems/3DO.md Normal file
View file

@ -0,0 +1,56 @@
# 3DO
## Code example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be opera
EJS_core = 'nes';
// URL to BIOS file
EJS_biosUrl = '';
// 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 types:
- `iso`
- `bin`
- `chd`
- `cue`
### BIOS
| File Name | Description | md5sum |
| ----------- | ------------- | ----------- |
| panafz1.bin | Panasonic FZ-1 | `f47264dd47fe30f73ab3c010015c155b`
| panafz10.bin | Panasonic FZ-10 | `51f2f43ae2f3508a14d9f56597e2d3ce`
| panafz10-norsa.bin | Panasonic FZ-10 [RSA Patch] | `1477bda80dc33731a65468c1f5bcbee9`
| panafz10e-anvil.bin | Panasonic FZ-10-E [Anvil] | `a48e6746bd7edec0f40cff078f0bb19f`
| panafz10e-anvil-norsa.bin | Panasonic FZ-10-E [Anvil RSA Patch] | `cf11bbb5a16d7af9875cca9de9a15e09`
| panafz1j.bin | Panasonic FZ-1J | `a496cfdded3da562759be3561317b605`
| panafz1j-norsa.bin | Panasonic FZ-1J [RSA Patch] | `f6c71de7470d16abe4f71b1444883dc8`
| goldstar.bin | Goldstar GDO-101M | `8639fd5e549bd6238cfee79e3e749114`
| sanyotry.bin | Sanyo IMP-21J TRY | `35fa1a1ebaaeea286dc5cd15487c13ea`
| 3do_arcade_saot.bin | Shootout At Old Tucson | `8970fc987ab89a7f64da9f8a8c4333ff`
### CORES
The *nes* system supports 1 core
- `opera`
If set to `3do`, emulator will use the `opera` core.

37
docs/Systems/Arcade.md Normal file
View file

@ -0,0 +1,37 @@
# Arcade
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be fbalpha2012_cps1 or fbalpha2012_cps2
EJS_core = 'arcade';
// 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 *arcade* system supports 2 cores
- `fbalpha2012_cps1`
- `fbalpha2012_cps2`
If set to `arcade`, emulator will use the `fbalpha2012_cps1` core.

View file

@ -0,0 +1,35 @@
# Atari 2600
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## 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 = 'atari2600';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```

View file

@ -0,0 +1,37 @@
# Atari 5200
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be a5200
EJS_core = 'atari5200';
// 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:
- `a52`
- `bin`
### CORES
The *atari5200* system supports 1 core
- `a5200`
If set to `atari5200`, emulator will use the `a5200` core.

View file

@ -0,0 +1,33 @@
# Atari 7800
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## 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 = 'atari7800';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```

View file

@ -0,0 +1,37 @@
# Atari Jaguar
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## 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 = 'jaguar';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```

View file

@ -0,0 +1,32 @@
# Atari Lynx
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## 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 = 'lynx';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```

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

@ -0,0 +1,52 @@
# NES / Famicom
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be fceumm or nestopia
EJS_core = 'nes';
EJS_lightgun = false; // Lightgun
// URL to BIOS file
EJS_biosUrl = '';
// 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:
- `fds`
- `nes`
- `unif`
- `unf`
### BIOS
| 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

@ -0,0 +1,42 @@
# Nintendo 64
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</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 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

@ -0,0 +1,54 @@
# Nintendo DS
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</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 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

@ -0,0 +1,50 @@
# Nintendo GameBoy Advance
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be mgba
EJS_core = 'gba';
// URL to BIOS file
EJS_biosUrl = '';
// 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:
- `gb`
- `gbc`
- `gba`
### 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

@ -0,0 +1,49 @@
# Nintendo GameBoy
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be gambatte or mgba
EJS_core = 'gb';
// URL to BIOS file
EJS_biosUrl = '';
// 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:
- `gb`
- `gbc`
- `dmg`
### 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

@ -0,0 +1,54 @@
# PlayStation
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// Can also be mednafen_psx or mednafen_psx_hw
EJS_core = 'psx';
// URL to BIOS file
EJS_biosUrl = '';
// 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:
- `cue`
- `toc`
- `m3u`
- `ccd`
- `exe`
- `pbp`
- `chd`
### BIOS
| 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 |
### CORES
The *psx* system supports 2 cores
- `mednafen_psx_hw`
- `mednafen_psx`
If set to `psx`, emulator will use the `mednafen_psx_hw` core.

57
docs/Systems/SNES.md Normal file
View file

@ -0,0 +1,57 @@
# SNES
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</div>
<script type='text/javascript'>
EJS_player = '#game';
// 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 data directory
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## ROM Type
Your **ROM** can have the following extensions:
- `smc`
- `sfc`
- `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.

43
docs/Systems/Sega CD.md Normal file
View file

@ -0,0 +1,43 @@
# Sega CD
I do not know the file extension limits for this system.
## 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 = 'segaCD';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
You can search for the BIOS you need by utilizing the **MD5** checksum.
| Type | MD5 Checksum |
|------|--------------|
| MegaCD EU | `e66fa1dc5820d254611fdcdba0662372`
| SegaCD US | `854b9150240a198070150e4566ae1290`
| MegaCD EU | `278a9397d192149e84e820ac621a8edd`
<!-- Are those names correct / intended? -->

View file

@ -0,0 +1,35 @@
# Sega Game Gear
I do not know the file extension limits for this system.
## 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 = 'segaGG';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
GameGear BIOS (bootrom) - Optional `672e104c3be3a238301aceffc3b23fd6`

View file

@ -0,0 +1,45 @@
# Sega Master System
I do not know the file extension limits for this system.
## 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 = 'segaMS';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
You can search for the BIOS you need by utilizing the **MD5** checksum.
(bootrom) - Optional
| Name | MD5 Checksum | Description |
|------|--------------|-------------|
| `bios_E.sms` | `840481177270d5642a14ca71ee72844c` | MasterSystem EU BIOS
| `bios_U.sms` | `840481177270d5642a14ca71ee72844c` | MasterSystem US BIOS
| `bios_J.sms` | `24a519c53f67b00640d0048ef7089105` | MasterSystem JP BIOS
<!-- EU & US have the same checksum? -->

View file

@ -0,0 +1,32 @@
# Sega Mega Drive
I do not know the file extension limits for this system. <br>
There is no bios for this system.
## 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 = 'segaMD';
// URL to Game rom
EJS_gameUrl = '';
/*
* Path to the WASM / JS files
* HAS TO BE in the same directory.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```

View file

@ -0,0 +1,39 @@
# Sega Saturn
I do not know the file extension limits for this system.
## 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 = 'segaSaturn';
// 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.
*/
EJS_pathtodata = 'data/';
</script>
<script src='data/loader.js'></script>
```
## BIOS
Saturn BIOS - Optional `af5828fdff51384f99b3c4926be27762`

View file

@ -0,0 +1,38 @@
# Virtual Boy
## Code Example
```html
<div style='width:640px;height:480px;max-width:100%'>
<div id='game'></div>
</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 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.

BIN
docs/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB