EmulatorJS

EmulatorJS is a self-hosted, browser-based retro game emulator for home servers.

  • Game Servers
  • Media Applications
  • Media Servers
  • Other
  • Tools & Utilities
EmulatorJS is a self-hosted, browser-based retro game emulator for home servers. It scans your ROMs and artwork, builds a static frontend, and serves retro console games through any modern web browser on nearly any device — no client software required.

Platform availability

Available on 2 of 9 platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS
  • Proxmox (not listed)
  • Helm (not listed)
  • Mac (not listed)
  • Windows (not listed)
  • Linux (not listed)

Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.

26/100 Low

Maintained
0GitHub repository is archived
Popular
54486 GitHub stars
Easy to install
452 install platforms, install notes, Docker image
Light to run
No data

Based on 3 of 4 factors.

Availability: platform listings confirmed today, links checked 15 days ago

GitHub stars
486
Open issues
0
Last commit
2024-09-12
Latest release
1.9.2
Activity
stale

Checked 6 days ago - source: GitHub (linuxserver/emulatorjs)

Resources & Compatibility

ARM (e.g. Raspberry Pi) is supported.

Checked 17 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Set the EmulatorJS data path first Tell the app where to find its data files by setting the data path to a CDN (a public web server that hosts the files) link, using stable for a safer start, or to your own local files folder. If it points to the wrong place, the app can't load the parts it needs and games won't start. source
  • Install the console core you need Use npm (the tool that downloads packages) to install the core package for the console you want to play. A core is the small engine that runs that console, so without it the app can see the game file but can't actually run it. source
  • Install all cores only if you use many If you plan to use several consoles, use the all-cores package instead of picking one at a time. It gives the app the engines for many consoles, but you download and keep more files than if you only need one console. source
  • Backend runs once Run the backend once to build your menus; the resulting static frontend can then be hosted on any basic web server. source

Fetched 4 days ago - each note links to its source

Alternatives

No alternatives collected yet.

Common questions

Do I need to keep the EmulatorJS helper backend running after setup?

No. After the backend scans ROMs and ingests art assets, the generated static frontend can be served by a basic webserver without the backend helper.

Which ports should I expose for the Docker container?

Expose port 3000 for the backend where you add ROMs and configure menus. The static frontend is served on port 80, where you play the games.

Why can EmulatorJS list a ROM but not run it?

You need to install the console core package for that console with npm. Without the correct core, EmulatorJS can see the game file but cannot run it.

Can save data be used on another device?

Save data can be uploaded to the host server. On another device, select Pull From Server to download the save file.

Answers sourced from github.com, github.com, sowhatisit.uk

Community

Collected 16 days ago - public community threads