MCPcopy Index your code
hub / github.com/EmulatorJS/EmulatorJS

github.com/EmulatorJS/EmulatorJS @v4.2.3 sqlite

repository ↗ · DeepWiki ↗ · release v4.2.3 ↗
628 symbols 1,886 edges 15 files 0 documented · 0%
README

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 in the root of the project.

  2. Install the dependencies with:

sh npm i

  1. Start the minification with:

sh node start

  1. 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

Core symbols most depended-on inside this repo

localization
called by 464
data/src/emulator.js
createElement
called by 225
data/src/emulator.js
assert
called by 92
data/compression/extractzip.js
assert
called by 82
data/compression/extract7z.js
get
called by 73
data/src/storage.js
addEventListener
called by 69
data/src/emulator.js
on
called by 52
data/src/emulator.js
mkdir
called by 51
data/src/GameManager.js

Shape

Function 433
Method 183
Class 12

Languages

TypeScript100%

Modules by API surface

data/compression/extract7z.js171 symbols
data/compression/extractzip.js127 symbols
data/src/emulator.js114 symbols
data/compression/libunrar.js63 symbols
data/src/GameManager.js47 symbols
data/src/socket.io.min.js42 symbols
data/src/nipplejs.js19 symbols
data/src/storage.js16 symbols
data/src/gamepad.js11 symbols
data/src/compression.js7 symbols
update.js4 symbols
data/loader.js4 symbols

Dependencies from manifests, versioned

@emulatorjs/core-81latest · 1×
@emulatorjs/core-a5200latest · 1×
@emulatorjs/core-beetle_vblatest · 1×
@emulatorjs/core-cap32latest · 1×
@emulatorjs/core-crocodslatest · 1×
@emulatorjs/core-desmumelatest · 1×
@emulatorjs/core-desmume2015latest · 1×
@emulatorjs/core-fbalpha2012_cps1latest · 1×
@emulatorjs/core-fbalpha2012_cps2latest · 1×
@emulatorjs/core-fbneolatest · 1×
@emulatorjs/core-fceummlatest · 1×
@emulatorjs/core-fuselatest · 1×

For agents

$ claude mcp add EmulatorJS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact