Play Game Boy, Game Boy Color, or Game Boy Advance ROMs directly in a browser.
Self host a retro game emulator on a static hosting provider or your own server.
Export and import save files so progress carries between browser sessions.
Apply video filters like CRT style or upscaling to change how the game looks.
| alliance-sky/mgba-web | 00kaku/gallery-slider-block | 0xkinno/vellum | |
|---|---|---|---|
| Stars | 0 | — | 0 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | — | 2021-05-19 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | easy | easy | hard |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Local dev is a simple npm install and npm run dev, but production hosting requires configuring COOP and COEP headers for WebAssembly to work.
mGBA Web is a browser based emulator for classic Nintendo Game Boy, Game Boy Color, and Game Boy Advance games. It is built with React and Vite on the frontend, and it runs the mGBA emulator core through WebAssembly so the actual game logic executes at close to native speed inside the browser. You can drag in a ROM file in the gb, gbc, gba, or zip format and play it right on the page, no installation needed. The emulator includes speed controls that let you fast forward up to five times normal speed, frame skipping options, and automatic muting. For visuals, it ships several video filters, including AMD FSR 2.0 upscaling, a few crisp and smooth style filters, and a CRT style filter that mimics an old television screen. It also supports touch controls for mobile devices alongside full keyboard remapping for desktop use, and it can export and import save files and save states, syncing them automatically through the browser's IndexedDB storage. Running it locally just needs Node.js and npm, after which a single install command and a dev server command get it working at a local address. Building for production compiles everything into static files, though the build step intentionally keeps only compressed versions of the JavaScript, CSS, and WebAssembly assets to save space, which means the hosting server needs to support serving pre compressed files. Because the emulator core uses shared memory for multithreading, any server hosting the built app must send two specific security headers, Cross Origin Opener Policy and Cross Origin Embedder Policy, or the emulator will fail to load. The README gives configuration examples for Netlify, Vercel, and a self managed Nginx server with these headers included. The project credits the mGBA emulator core and its WebAssembly build, and is released under the MIT license.
A browser based Game Boy, Game Boy Color, and Game Boy Advance emulator built with React and WebAssembly that lets you play ROM files directly in a web page.
Mainly JavaScript. The stack also includes JavaScript, React, Vite.
MIT license: free to use, modify, and distribute, including commercially, as long as the copyright notice stays with it.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.