GAME BOY COLOR EMULATOR
jsGBC
jsGBC — a JavaScript Game Boy / Game Boy Color emulator with a browser frontend and an emulator core repository. It is open-source and intended to run .gb / .gbc ROMs in modern browsers (and can be packaged as a desktop app).

WHY IT MATTERS
Why jsGBC exists
jsGBC provides a portable, web-first Game Boy / Game Boy Color implementation written in JavaScript/TypeScript so people can run Game Boy and Game Boy Color ROMs in modern browsers or packaged Electron apps. The project separates the core emulator logic (jsGBC-core) from the web UI (jsGBC / jsGBC-web), enabling reuse of the core in different frontends.
BEST FOR
Where jsGBC is useful
Run Game Boy / Game Boy Color ROMs inside a browser for quick testing or demonstration, embed the core as an ES module, or build and package the project as a desktop Electron app. The split core/web structure makes it suitable for developers who want a JS/TypeScript emulator core for experimentation or embedding in web projects.
The people behind jsGBC
History and status
jsGBC and its companion packages (notably jsGBC-core and jsGBC-web) are maintained in the ardean GitHub organization. The public jsGBC repository contains the web UI and packaging files; a separate jsGBC-core repository contains the emulator core as an importable package. The repositories and documentation indicate activity through the late 2010s and early 2020s (the core package metadata and repository activity reference 2016–2022 updates). The project is distributed under an MIT license and published as an npm package for the core. Current development cadence appears low but the repositories and a working web demo are available for use and local builds. If you need information about the very latest commits or release dates, check the project repositories and releases pages; those are the canonical sources.
What jsGBC supports
- Web — modern desktop and mobile browsers (HTML5 canvas, Web APIs)
- Desktop — can be packaged with Electron (project includes electron-builder config)
- Core as ES module — jsGBC-core is published for use as an importable package in JS/TypeScript projects (CDN/npm)
- Gamepad API support — browser gamepad mapping supported
Download and availability
OFFICIAL DOWNLOADS
Get jsGBC
Official downloads and source: the project source and any release artifacts are published on the project's GitHub repository and Releases page (jsGBC on GitHub). The emulator core is published as an npm package (jsgbc) and is available via CDN/npm.
Get jsGBC ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗jsGBC setup guide
Setup note: Practical setup notes — verified sources and practical steps for running jsGBC from the web demo, running locally from source, or packaging the desktop app. This guide assumes you have a modern desktop with Git, Node.js (for local build or packaging), and a browser for the demo. jsGBC does not include commercial ROMs, BIOS, or firmware files.
- Run the online demo (fastest): Open the project's web demo (jsGBC-web demo) in a modern browser. Use the UI to upload a Game Boy (.gb) or Game Boy Color (.gbc) ROM file. The demo runs entirely in the browser; save states, battery saves, and input are handled by the UI. This is the quickest way to try the emulator without installing anything.
- Download releases from GitHub: Visit the jsGBC repository on GitHub and open the Releases section to download any prebuilt release artifacts provided by the author. Releases may contain packaged builds or installers when available. If a release artifact is present, follow the included README/packaging notes in the release for installation and platform specifics.
- Clone and run locally (web UI): 1) Clone the repository: git clone https://github.com/ardean/jsGBC.git 2) Inspect package.json in the repo root for build and dev scripts. 3) Install dependencies: run npm install (or yarn) in the project directory. 4) Use the project’s documented dev/start script (npm run dev or npm start if present) to start a local dev server and open the web UI. 5) In the web UI, upload a .gb or .gbc ROM to run it. Note: exact script names and commands are in the repository package.json; follow those rather than guessing.
- Use the core as a library (jsGBC-core): If you want just the emulator core for embedding: use the jsGBC-core package (published to npm and available via CDN). Add it to your project as an npm dependency (npm install jsgbc) or import from a supported CDN. Follow the core repository README for the API and examples; the core is intended to be consumed by web frontends or build systems.
- Build/package an Electron desktop app: The jsGBC repository includes electron-builder configuration files. To create a desktop build: 1) Ensure Node.js and npm are installed. 2) Clone the repository and run npm install. 3) Build the web assets (npm run build or the repository’s build command). 4) Run the packaging command referenced in the repo (often npm run package or a script that invokes electron-builder). 5) Follow electron-builder output for platform-specific installers. Packaging requires reviewing and following the repository’s packaging scripts and electron-builder config; exact commands live in package.json and electron-builder.yml.
- Controls, saves, and files: jsGBC supports keyboard controls and the browser Gamepad API. The web UI accepts .gb and .gbc ROM uploads and offers battery (.sav) upload/download support. Save-state features may be described as "NYI" or incomplete in the web UI—check the README and docs for the current status before relying on save-state exports/imports.
Software reminder: jsGBC does not bundle commercial games, BIOS/firmware, or other proprietary files. You must provide your own legally obtained ROM and any required save files. The emulator core and UI are MIT-licensed open-source software.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for jsGBC as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
