diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..8692f15
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -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']
diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md
new file mode 100644
index 0000000..432b5e5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.md
@@ -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.
+
+
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..0a35840
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -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
diff --git a/.gitignore b/.gitignore
index 8e06e59..e8c826a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
**/node_modules/
data/minify/package-lock.json
*.db
-roms/
diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
index 0000000..37b8cf9
--- /dev/null
+++ b/CHANGES.md
@@ -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.
diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000..7032dd5
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+demo.emulatorjs.org
\ No newline at end of file
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..d026035
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -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.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a8e4bf0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,193 @@
+
+
+
+
+
+### Ads
+
+*This project has no ads.*
+*Although, the demo page currently has an ad to help fund this project.*
+*Ads on the demo page may come and go depending on how many people are*
+*funding this project.*
+
+*You can help fund this project on* ***[patreon]***
+
+
+
+
+
+### Issues
+
+*If something doesn't work, please consider opening an* ***[Issue]***
+*with as many details as possible, as well as the console log.*
+
+
+
+### Extensions
+
+ **[GameLibrary]**
+
+ *A library overview for your **ROM** folder.*
+
+
+
+**>> When reporting bugs, please specify that you are using the old version**
+
+
+
+
+
+
+
+
+
+```
+
+## 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.
diff --git a/docs/Systems/Arcade.md b/docs/Systems/Arcade.md
new file mode 100644
index 0000000..6c4a450
--- /dev/null
+++ b/docs/Systems/Arcade.md
@@ -0,0 +1,37 @@
+# Arcade
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/Atari 2600.md b/docs/Systems/Atari 2600.md
new file mode 100644
index 0000000..fea3feb
--- /dev/null
+++ b/docs/Systems/Atari 2600.md
@@ -0,0 +1,35 @@
+# Atari 2600
+
+I do not know the file extension limits for this system.
+There is no bios for this system.
+
+## Code example
+
+```html
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/Atari 7800.md b/docs/Systems/Atari 7800.md
new file mode 100644
index 0000000..16b28e7
--- /dev/null
+++ b/docs/Systems/Atari 7800.md
@@ -0,0 +1,33 @@
+# Atari 7800
+
+I do not know the file extension limits for this system.
+There is no bios for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
+
diff --git a/docs/Systems/Atari Jaguar.md b/docs/Systems/Atari Jaguar.md
new file mode 100644
index 0000000..0a9a748
--- /dev/null
+++ b/docs/Systems/Atari Jaguar.md
@@ -0,0 +1,37 @@
+# Atari Jaguar
+
+
+I do not know the file extension limits for this system.
+There is no bios for this system.
+
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
+
+
+
diff --git a/docs/Systems/Atari Lynx.md b/docs/Systems/Atari Lynx.md
new file mode 100644
index 0000000..5f4f50f
--- /dev/null
+++ b/docs/Systems/Atari Lynx.md
@@ -0,0 +1,32 @@
+# Atari Lynx
+
+I do not know the file extension limits for this system.
+There is no bios for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
\ No newline at end of file
diff --git a/docs/Systems/MAME 2003.md b/docs/Systems/MAME 2003.md
new file mode 100644
index 0000000..daea3b8
--- /dev/null
+++ b/docs/Systems/MAME 2003.md
@@ -0,0 +1,35 @@
+# MAME 2003
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/NES-Famicom.md b/docs/Systems/NES-Famicom.md
new file mode 100644
index 0000000..4fc4799
--- /dev/null
+++ b/docs/Systems/NES-Famicom.md
@@ -0,0 +1,52 @@
+# NES / Famicom
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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 - Required for Famicom Disk System emulation | ca30b50f880eb660a320674ed365ef7a |
+| gamegenie.nes | Game Genie add-on cartridge - Required for Game Genei Add-on emulation (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.
+
diff --git a/docs/Systems/Nintendo 64.md b/docs/Systems/Nintendo 64.md
new file mode 100644
index 0000000..a490a10
--- /dev/null
+++ b/docs/Systems/Nintendo 64.md
@@ -0,0 +1,42 @@
+# Nintendo 64
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/Nintendo DS.md b/docs/Systems/Nintendo DS.md
new file mode 100644
index 0000000..7c5ac13
--- /dev/null
+++ b/docs/Systems/Nintendo DS.md
@@ -0,0 +1,54 @@
+# Nintendo DS
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/Nintendo Game Boy Advance.md b/docs/Systems/Nintendo Game Boy Advance.md
new file mode 100644
index 0000000..af5f054
--- /dev/null
+++ b/docs/Systems/Nintendo Game Boy Advance.md
@@ -0,0 +1,50 @@
+# Nintendo GameBoy Advance
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/Nintendo Game Boy.md b/docs/Systems/Nintendo Game Boy.md
new file mode 100644
index 0000000..775dff3
--- /dev/null
+++ b/docs/Systems/Nintendo Game Boy.md
@@ -0,0 +1,49 @@
+# Nintendo GameBoy
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/PlayStation.md b/docs/Systems/PlayStation.md
new file mode 100644
index 0000000..e12d060
--- /dev/null
+++ b/docs/Systems/PlayStation.md
@@ -0,0 +1,54 @@
+# PlayStation
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/Systems/SNES.md b/docs/Systems/SNES.md
new file mode 100644
index 0000000..b3cb058
--- /dev/null
+++ b/docs/Systems/SNES.md
@@ -0,0 +1,57 @@
+# SNES
+
+## Code Example
+
+```html
+
+
+
+
+
+
+```
+
+## 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 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.
+
diff --git a/docs/Systems/Sega CD.md b/docs/Systems/Sega CD.md
new file mode 100644
index 0000000..1619be5
--- /dev/null
+++ b/docs/Systems/Sega CD.md
@@ -0,0 +1,43 @@
+# Sega CD
+
+I do not know the file extension limits for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
+
+## 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`
+
+
diff --git a/docs/Systems/Sega Game Gear.md b/docs/Systems/Sega Game Gear.md
new file mode 100644
index 0000000..be9eb4c
--- /dev/null
+++ b/docs/Systems/Sega Game Gear.md
@@ -0,0 +1,35 @@
+# Sega Game Gear
+
+I do not know the file extension limits for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
+
+## BIOS
+
+GameGear BIOS (bootrom) - Optional `672e104c3be3a238301aceffc3b23fd6`
diff --git a/docs/Systems/Sega Master System.md b/docs/Systems/Sega Master System.md
new file mode 100644
index 0000000..3c073a9
--- /dev/null
+++ b/docs/Systems/Sega Master System.md
@@ -0,0 +1,45 @@
+# Sega Master System
+
+I do not know the file extension limits for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
+
+## 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
+
+
\ No newline at end of file
diff --git a/docs/Systems/Sega Mega Drive.md b/docs/Systems/Sega Mega Drive.md
new file mode 100644
index 0000000..a2299ce
--- /dev/null
+++ b/docs/Systems/Sega Mega Drive.md
@@ -0,0 +1,32 @@
+# Sega Mega Drive
+
+I do not know the file extension limits for this system.
+There is no bios for this system.
+
+## Code example
+
+```html
+
+
+
+
+
+
+
+```
diff --git a/docs/Systems/Sega Saturn.md b/docs/Systems/Sega Saturn.md
new file mode 100644
index 0000000..587ff61
--- /dev/null
+++ b/docs/Systems/Sega Saturn.md
@@ -0,0 +1,39 @@
+# Sega Saturn
+
+I do not know the file extension limits for this system.
+
+## Code example
+
+```html
+
+
+
+
+```
+
+## 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.
+
diff --git a/docs/favicon.ico b/docs/favicon.ico
new file mode 100644
index 0000000..4af671c
Binary files /dev/null and b/docs/favicon.ico differ