EmulatorJS
EmulatorJS is a self-hosted, browser-based retro game emulator for home servers.
Platform availability
Available on 2 of 9 platforms
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
Variants
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
- emulatorJS : r/selfhosted - Reddit (reddit)
- How to properly selfhost EmulatorJS : r/selfhosted - Reddit (reddit)
- Server for my emulated games : r/selfhosted - Reddit (reddit)
- help with getting emulatorjs up and running. : r/selfhosted - Reddit (reddit)
- How does emulatorjs deliver content : r/selfhosted - Reddit (reddit)
Collected 16 days ago - public community threads