MASTER SYSTEM GAME GEAR EMULATOR
jsSMS
jsSMS is an open-source JavaScript emulator that implements Sega Master System and Game Gear game ROMs. It uses a dynamic recompiler (JIT-style engine) to improve performance in browsers and was derived from the JavaGear project.

WHY IT MATTERS
Why use jsSMS
jsSMS is a compact, browser-focused SMS/Game Gear emulator implemented in JavaScript with a dynamic recompilation engine intended for higher performance on mobile and desktop browsers. It is useful for quick in-browser testing, demos, or embedding into web pages where a lightweight JavaScript emulator is desirable.
BEST FOR
Best for
Embedding or running Master System / Game Gear ROMs in a web page or local browser environment where simplicity and a JS-only implementation are preferred.
The people behind jsSMS
History and status
jsSMS is a JavaScript port/evolution of JavaGear and implements a dynamic recompiler located in its src/compiler folder. The repository documents its lineage to Chris White's JavaGear and credits JSNES as an influence. The project is published under GPL-3.0 and contains many historical commits (the repository shows hundreds of commits). Public metadata and project listings indicate the project is effectively inactive: there are no signs of recent development activity or ongoing maintenance in the project metadata consulted. The author and repo pages remain available for clone/download and documentation.
What jsSMS supports
- Web browsers (desktop and mobile) – runs via provided index.html/demo
- Any OS with a modern browser (Windows, macOS, Linux, Android, iOS via compatible browser)
- Local use via clone and opening index.html
- No dedicated native builds or frontend cores documented
Download and availability
OFFICIAL DOWNLOADS
Get jsSMS
Official source and release assets are published on the project's GitHub. You can download zipped source or release artifacts from the repository's Releases page or clone the repository and use the included index.html/demo files.
Get jsSMS ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗jsSMS setup guide
Setup note: Below are practical, verified steps to obtain and run jsSMS in a browser from the official project sources. Follow them exactly; do not expect commercial game ROMs, BIOS, or firmware to be included.
- 1) Get the code or releases: Official repository and releases are hosted on GitHub. Visit the project repository and use the Releases tab to download published release assets when available, or clone the repository to get the full source tree.
- 2) Use the hosted demo (quickest): The project provides a hosted documentation/demo page. Opening the project's gh-pages/demo site in a browser lets you try the emulator without building. Use the page's UI to load a ROM from your local filesystem if the demo exposes a file chooser.
- 3) Run locally from the repository: If you cloned or downloaded the repo, open index.html from the repository in a modern browser. For best results run a local static file server (for example: python -m http.server 8000 in the repo folder) and point a browser at http://localhost:8000/index.html to avoid any file:// restrictions.
- 4) Load ROM files: The project UI and index.html expect standard Sega Master System (.sms/.bin/.rom) and Game Gear ROM images. Use the emulator's file input to load a ROM when prompted. The project does not include commercial ROMs or BIOS files; provide your own copies compliant with applicable copyright law.
- 5) Controls and input: Controller mappings are documented on the project's demo/docs page (examples: arrow keys for directions, X/Z for fire buttons, Enter for Start). For two-player controls, the repository's demo lists numeric keypad mappings. Use a browser that supports keyboard and gamepad APIs if you plan to use a connected gamepad.
- 6) Troubleshooting and performance: Because jsSMS uses a dynamic recompilation approach, browser JavaScript engines and mobile browsers affect performance. If the emulator is slow, try a desktop browser with a high-performance JavaScript engine (latest stable Chrome/Edge/Firefox) and ensure any browser power- or battery-saving modes are disabled. If local testing exhibits CORS or file access errors, serve the files over a local HTTP server instead of using file://.
- 7) Building or modifying: If you want to rebuild or modify the emulator, clone the repository and inspect package.json, Gruntfile.js, and the src/ folder. The recompiler/technical insights live under src/compiler. Follow repository README and contributing notes for build steps; the project uses standard web build tools (see repo files) but may be unmaintained, so some build steps could require resolving outdated tool versions.
Software reminder: The emulator does not include commercial games, firmware, or BIOS images. Obtain ROMs and any required system files legally and separately.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for jsSMS as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation