Repository navigation
Releases: 0x000NULL/GBA_Emulator
Release list
Strawberry v1.7.1
v1.7.1 — 2026-10-06
The shared UI crates update to fruit-basket v0.5.0. Games, save files and save states from v1.7.0
work unchanged.
- Built on fruit-basket v0.5.0. The library re-reads each game once after updating.
gba-ffi, a new workspace crate: Strawberry's core behind the Fruit Basket iOS C ABI v1
(fb_gba_*, contract infruit-basket-ios/docs/CORE-ABI.md). The iOS app'sfbcorestaticlib
pins it by git rev (10de245). It is an rlib that depends on gba-core alone, and the desktop player
doesn't use it. The release archives don't change.
Strawberry v1.7.0
v1.7.0 — 2026-10-04
Fruit Basket launcher support and a dependency refresh. Games, save files and save states from
v1.6.x work unchanged (savestate format 5).
- Pictures for the launcher. Every save state also writes
<rom stem>.s<N>.png(the 240x160
picture) beside the.statefile, deleted with it, and every title capture is copied to
%LOCALAPPDATA%\strawberry\covers\<rom stem>.png. For a zipped ROM the stem is the zip's. --no-resume(needs a ROM) is accepted for the launcher's Start fresh. Strawberry never
resumes on its own, so it starts from power-on exactly as a plain launch does.- Built on fruit-basket v0.4.0: minifb 0.29, tiny-skia 0.12, cpal 0.18, png 0.18, toml 1, dirs 7.
Settings, library cache and save paths are unchanged. - Rust edition 2024; building from source needs Rust 1.89 or later. zip 8 for zipped ROMs.
Strawberry v1.6.1
v1.6.1 — 2026-10-03
Documentation only; the player is the same as v1.6.0.
- QUICKSTART (included in the release archives): the
=/-sun keys and the pause menu's SUN
row, a Clock and sunlight section, the 16 bytes clock games add to their.sav, and the note
that save states from before v1.6.0 show CAN'T LOAD. - README: the Settings screenshot shows the new emulator keys.
Strawberry v1.6.0
v1.6.0 — 2026-10-03
Cartridge hardware: the GPIO port in the ROM chip, with the two devices the library needs.
- Real-time clock. The ten carts that carry one (found by the RTC library string in the ROM):
Pokémon Ruby, Sapphire and Emerald (no more "The internal battery has run dry"; berries and
timed events work), Rockman EXE 4.5, Sennen Kazoku, both Legendz titles and the three Boktai
games. The clock reads the computer's local time; a time the game sets is kept as an offset
and saved with the game: RTC carts'.savfiles gain a 16-byte trailer after the save data
(plain.savfiles from before load as usual). - Boktai's solar sensor (Boktai 1 and 2, Shin Bokura no Taiyou). Sunlight is a level from 0
(dark) to 10 (the gauge fills): the pause menu has a SUN row on these carts (LEFT/RIGHT), and
=/-change it while playing with a toast; both are rebindable and the level is
remembered in settings (sun_level, default 5). - Save states from earlier versions no longer load (core state format 5); the slots show
CAN'T LOAD and can be deleted..savfiles are unaffected. - The pause menu's page marker in the slot submenu now draws its left arrow (the 5x5 font had no
glyph for it). - gba-test:
--rtc "YYYY-MM-DD HH:MM[:SS]"(default 2026-01-01 00:00:00, so goldens stay
deterministic),--sun N, and{ frame, sun = N }input-script steps. New compat rows for
Pokémon Emerald and Boktai.
Strawberry v1.5.0
v1.5.0 — 2026-10-03
Couch mode, for launchers that start games on a TV (the Fruit Basket convention, shared with
ps2emu and Crabapple):
--fullscreen: a borderless window covering the primary display, for that run only (the
window size in settings.toml is left alone). It cannot be combined with--scale. Where the
display size cannot be read, Strawberry warns and opens a normal window.--exit-on-quit: the pause menu's QUIT flushes the save and exits with code 0 instead of
returning to the library.- Gamepads reach the pause menu: the Guide button, or Select+Start held for one second (once
per hold; the game still sees both buttons). Either one closes the menu again.
Strawberry v1.4.0
v1.4.0 — 2026-10-02
--slot N(1–8) starts the ROM from that save-state slot before the first frame is shown,
for launchers (Fruit Basket couch mode's Load button).--slotneeds a ROM; an empty or
unreadable slot prints one line to stderr and the game plays on from a fresh boot. The slot
files are unchanged.- Developer tooling:
tools/mgba-ref.exe(built byscripts/build-mgba.ps1) captures mGBA's
pictures, memory, registers, IO changes and instruction traces headless, and
scripts/compare-trace.pydiffs instruction timing against ours. gba-test gained--png-at,
--regs,--poll,--trace-framesand--trace-cycles. - Checked against mGBA: the Initial D garage's blank phone and technique screens and the "0"
under the NES Zelda file name are pixel-identical (game content, not bugs). The music start
offsets of the audio comparison come from mGBA's own timing: it scores 1768/2020 on the
hardware-recorded timing tests that Strawberry passes in full. scripts/build-mgba.ps1: quote the CMake policy argument (PowerShell split it at the dot).
Strawberry v1.3.1
v1.3.1 — 2026-10-02
fruit-basket. The frontend's console-independent half (renderer and design tokens, fonts,
audio, pacing, saves, save-state slots, settings file, library, gamepads, window icon) moved to
the shared crates of the new public repo 0x000NULL/fruit-basket (v0.1.0), which the Crabapple
NES emulator uses too. Nothing a player sees changes: every screen, the slot files, settings.toml
and the library index are byte-identical to v1.3.0 (pinned by gba-frontend/src/pinned.rs).
- README: the lockup follows the reader's light or dark theme, a Screens section shows every
screen (docs/screenshots/), and a Name and mark section describes the brand; stale status
text brought up to v1.2.0. - The settings file's header comment names Strawberry (it still said Advance).
- Release workflow:
actions/checkoutv7,upload-artifactv7,download-artifactv8 and
action-gh-releasev3, all on the Node 24 runtime the self-hosted runners already provide.
Strawberry v1.3.0
v1.3.0 — 2026-10-02
Strawberry. The player has a name and a mark (docs/branding/: a 16x16 four-colour
sprite, Fruit Basket No. 2).
- The window is titled Strawberry and carries the mark as its icon on Windows and X11; the
Windows exe has the icon and a version block too (macOS and Wayland take no runtime icon). - The binary and the release archives are
strawberry/strawberry-vX.Y.Z-<os>. - Settings and the library cache live in
strawberry/under the user's config and cache
folders; an existinggba-advance/is moved there once on first start. - The empty Library is the brand screen from board 05: three rows of placeholders, the
Strawberry cartridge in the handheld with the mark on its screen, andOpen <folder>(Z) /
Settingsbuttons. Settings is now reachable from the Library.
GBA Emulator v1.2.0
v1.2.0 — 2026-10-02
Player
- Gamepad buttons can be rebound. The Controls page shows a second keycap for every GBA button;
click it and press a pad button (a button already in use swaps, like the keyboard). The map is
stored as[gamepad]in settings.toml; the left stick stays a D-pad. The default shoulder
buttons are the bumpers (LB/RB; earlier docs called them LT/RT).
Tooling
scripts/build-mgba.ps1buildstools/mgba-wav.exe, a headless libmgba audio capture, and
scripts/compare-audio.pyrecords a title set with both emulators and reports level, balance
and alignment figures (tools/audio-ref/report.md);scripts/compare-wav.pynow uses the
same analysis.gba-test --mute-channels MASKsilences PSG or FIFO channels in a capture.- Finding, no change: our FIFO and PSG levels follow GBATEK's stated maxima; mGBA 0.10.5 mixes
about 3 dB lower overall and its PSG another 3.5 dB lower relative to FIFO (PROGRESS.md
"Reference audio comparison").
GBA Emulator v1.1.0
v1.1.0 — 2026-10-01
Accuracy
- The BIOS sound driver is emulated (SWI 1A-1E, 28, 29, 2A and the 36 SoundGetJumpList
routines): the six library titles that were silent without a BIOS file (Atari Anniversary
Advance, Lizzie McGuire: On the Go!, Pocket Professor: Kwik Notes, Rampage: Puzzle Attack,
X-Men: Reign of Apocalypse, Saibara Rieko no Dendou Mahjong) now play music; 1,528 of 1,543
library titles boot with sound. Save states made by 1.0.0 are not loadable (format 4).
Player
- Save-state slots written by an older format are shown as
CAN'T LOADand can be deleted;
the library, settings and.savfiles are unaffected.