Freedom251 › Game Boy Advance Emulators
Sapphire

What Sapphire is
Sapphire is an open-source Game Boy Advance emulator written in Go, with a WebAssembly browser build and a macOS desktop frontend. It emulates the ARM7TDMI processor and supports ARM and THUMB instruction sets. Display modes cover sprites, backgrounds, and direct writes. Save states work in both versions: browser progress can be stored in local storage, while desktop progress can be saved to a file. The maker says browser audio works on iPhone; the desktop build is silent. Running it requires a Game Boy Advance BIOS file, and the browser version also needs a game file. The project reports Pokémon Sapphire and uCity Advance as playable, though some homebrew games fail to run. Browser play is fixed at 1× speed, and smoother mobile operation remains in progress. The maker reports visual bugs in Pokémon cave fog blending and Mario Kart sprite priority. Object window, EEPROM saves, and serial or link cable are not implemented, and timing is approximate rather than cycle-accurate. Sapphire is licensed under MIT. Its maker describes it as a personal project for learning about computer internals and low-level systems.
Who it suits
Sapphire may suit people interested in Game Boy Advance emulation or exploring low-level systems and machine code. It is for users prepared to provide a BIOS file and, for browser play, a game file, while accepting the listed incomplete features and visual issues.
What it does well
- Runs in a browser through WebAssembly.
- Save states work in browser and desktop builds.
- Supports ARM and THUMB instruction sets.
- Open source under the MIT License.
What to know first
- Requires a Game Boy Advance BIOS file.
- Desktop build has no audio.
- Browser version is fixed at 1× speed.
- Object window, EEPROM saves, and link cable are unimplemented.
Verdict
Sapphire provides browser and macOS emulator builds with save states, but its timing and several features remain incomplete. Check the listed requirements and compatibility notes before relying on it for a particular game.
Facts from Sapphire's own pages
- Audio
- The repository says browser audio is wired up and works on iPhone, while the desktop build is currently silent. · github.com, 9 Oct 2026
- Browser performance
- The browser version is fixed at 1× speed, and smoother operation on mobile devices is still a work in progress. · dylanbutler.dev, 9 Oct 2026
- Browser play
- The emulator runs in the browser via WebAssembly, and the maker says it runs locally in the browser. · dylanbutler.dev, 9 Oct 2026
- Browser version
- The emulator runs in the browser through WebAssembly, and the maker says the build runs locally in the browser. · dylanbutler.dev, 9 Oct 2026
- Desktop platform
- The repository documents a macOS desktop frontend and installation by building from source. · github.com, 9 Oct 2026
- Desktop version
- The repository documents a macOS desktop frontend and instructions to build a macOS app from source. · github.com, 9 Oct 2026
- Display
- The project page says it supports display modes for sprites, backgrounds, and direct writes. · dylanbutler.dev, 9 Oct 2026
- Game compatibility
- The repository says Pokémon Sapphire and uCity Advance are playable, and notes that some homebrew games fail to run. · github.com, 9 Oct 2026
- Incomplete features
- The repository lists object window, EEPROM saves, and serial/link cable as unimplemented, and says timing is approximate rather than cycle-accurate. · github.com, 9 Oct 2026
- Intended audience
- The maker describes the project as a personal effort to understand computer internals, low-level systems, machine code, and how programs run. · dylanbutler.dev, 9 Oct 2026
- Known issues
- The maker reports that Pokémon cave fog blending and Mario Kart sprite priority still have visual bugs. · dylanbutler.dev, 9 Oct 2026
- Known limitations
- The repository lists object window, EEPROM saves, and serial or link cable as unimplemented, and says timing is approximate rather than cycle-accurate. · github.com, 9 Oct 2026
- License
- Sapphire is licensed under the MIT License. · github.com, 9 Oct 2026
- Maker and location
- The maker identifies himself as Dylan Butler, a software engineer in Melbourne. · dylanbutler.dev, 9 Oct 2026
- Processor
- It emulates the ARM7TDMI processor and supports both ARM and THUMB instruction sets. · dylanbutler.dev, 9 Oct 2026
- Product
- Sapphire is a Game Boy Advance emulator written from scratch in Go. · dylanbutler.dev, 9 Oct 2026
- Purpose
- Sapphire is a Game Boy Advance emulator written from scratch in Go. · dylanbutler.dev, 9 Oct 2026
- Requirements
- Running Sapphire requires a Game Boy Advance BIOS file; the browser build also needs a game file. · github.com, 9 Oct 2026
- Save states
- Save states work on desktop and in the browser, saving progress to a file or browser local storage. · dylanbutler.dev, 9 Oct 2026
Where Sapphire stands on Freedom251
- Game Boy Advance Emulators#29 of 29