The official home of the EmulatorJS project
Go to file
Allan Niles 0c9107c990
Squashed commit of the following:
commit a70811c175
Merge: 86081d4 ce15c9b
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Fri May 16 11:48:29 2025 -0600

    Merge branch 'upstream/main' into screenshot

commit 86081d435d
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Wed May 14 10:07:27 2025 -0600

    no no

commit 9e2a5d2aab
Merge: eeeaa5c f70e897
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Wed May 14 09:54:30 2025 -0600

    Merge 'main-upstream' into screenshot

commit eeeaa5cb4e
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Wed May 14 09:52:06 2025 -0600

    normalize "

commit 92a772d3e1
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Wed May 14 09:28:47 2025 -0600

    change to this.capture

commit 74fe692129
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Mon May 12 15:06:38 2025 -0600

    retroarch if 0

commit 73ade64626
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Mon May 12 14:47:41 2025 -0600

    takeScreenshot

commit e03a2807ca
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Mon May 12 14:33:47 2025 -0600

    Screen Record

commit 057a644e51
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Sat May 10 21:11:35 2025 -0600

    screenShot function

commit ba27a6c231
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Fri May 9 22:34:35 2025 -0600

    nice screenshots

commit db1c2ddbfe
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Fri May 9 17:50:11 2025 -0600

    newline

commit 888adec7f9
Merge: 62cc259 3794c08
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Fri May 9 17:48:34 2025 -0600

    Merge branch 'upstream/main' into screenshot

commit 62cc259038
Author: Allan Niles <allancoding.dev@gmail.com>
Date:   Fri May 2 18:23:55 2025 -0600

    screenshot
2025-05-19 17:13:08 -06:00
.github Add newline workflow (#1002) 2025-04-30 11:04:01 -05:00
data Squashed commit of the following: 2025-05-19 17:13:08 -06:00
docs Add newline workflow (#1002) 2025-04-30 11:04:01 -05:00
minify Update docs & formating (#991) 2025-05-07 15:50:24 -06:00
.gitignore Add build script (#989) 2025-04-23 17:08:30 -06:00
.npmignore Add build script (#989) 2025-04-23 17:08:30 -06:00
build.js Update docs & formating (#991) 2025-05-07 15:50:24 -06:00
CHANGES.md Update docs & formating (#991) 2025-05-07 15:50:24 -06:00
CODE_OF_CONDUCT.md Add repo docs 2023-07-18 10:56:27 -05:00
CONTRIBUTING.md Update docs & formating (#991) 2025-05-07 15:50:24 -06:00
index.html Add demo autoload (#1004) 2025-05-02 17:31:33 -06:00
LICENSE 4.2.1 2025-01-07 09:27:27 -06:00
package.json Add update script (#990) 2025-04-28 22:24:19 -06:00
README.md Update docs & formating (#991) 2025-05-07 15:50:24 -06:00
update.js Add update script (#990) 2025-04-28 22:24:19 -06:00



Badge License

Self-hosted Javascript emulation for various systems.


Button Website Button Usage
Button Configurator
Button Demo
Button Contributors

Join our Discord server:

Join our Discord server!

Or the Matrix server (#emulatorjs:matrix.emulatorjs.org):

Chat on Matrix


Note

As of EmulatorJS version 4.0, this project is no longer a reverse-engineered version of the emulatorjs.com project. It is now a complete rewrite.

Warning

As of version 4.0.9 cores and minified files are no longer included in the repository. You will need to get them separately. You can get it from releases or the * new CDN (see this for more info). There is also a new version system that we will be using. (read here for more info).

Tip

Cloning the repository is no longer recommended for production use. You should use releases or the CDN instead.


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.


3rd Party Projects

EmulatorJS itself is built to be a plugin, rather than an entire website. This is why there is no docker container of this project. However, there are several projects you can use that use EmulatorJS!

Looking for projects that integrate EmulatorJS? Check out https://emulatorjs.org/docs/3rd-party


Versioning

There are three different version names that you need to be aware of:

  1. stable - This will be the most stable version of the emulator both code and cores will be tested before release. It will be updated every time a new version is released on GitHub. This is the default version on the Demo.
  2. latest - This will contain the latest code but use the stable cores. This will be updated every time the main branch is updated.
  3. nightly - This will contain the latest code and the latest cores. The cores will be updated every day, so this is considered alpha.

CDN

EmulatorJS provides a CDN at https://cdn.emulatorjs.org/, allowing access to any version of the emulator.

To use it, set EJS_pathtodata to https://cdn.emulatorjs.org/<version>/data/, replacing <version> with stable, latest, nightly, or another main release.

Be sure to also update the loader.js path to: https://cdn.emulatorjs.org/<version>/data/loader.js


Development:

Run a local server with:

  1. Open a terminal inthe root of the project.

  2. Install the dependencies with:

    npm i
    
  3. Start the minification with:

    node start
    
  4. Open your browser and go to http://localhost:8080/ to see the demo page.



Minifying

Before pushing the script files onto your production server it is recommended to minify them to save on load times as well as bandwidth.

Read the minifying documentation for more info.


Localization

If you want to help with localization, please check out the localization documentation.


>>When reporting bugs, please specify what version you are using




Supported Systems


Nintendo

Game Boy Advance| Famicom / NES| Virtual Boy

Game Boy| SNES| DS| 64



Sega

Master System| Mega Drive| Game Gear

Saturn| 32X| CD



Atari

2600| 5200| 7800| Lynx| Jaguar



Commodore

Commodore 64 | Commodore 128 | Commodore Amiga

Commodore PET | Commodore Plus/4 | Commodore VIC-20



Other

PlayStation| PlayStation Portable| Arcade

3DO | MAME 2003 | ColecoVision


Star History

Star History Chart