Skip to content

Releases: 0x000NULL/GBA_Emulator

Strawberry v1.7.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 03:13

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 in fruit-basket-ios/docs/CORE-ABI.md). The iOS app's fbcore staticlib
    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

Choose a tag to compare

@github-actions github-actions released this 04 Oct 16:12

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 .state file, 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

Choose a tag to compare

@github-actions github-actions released this 03 Oct 23:13

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

Choose a tag to compare

@github-actions github-actions released this 03 Oct 22:22

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' .sav files gain a 16-byte trailer after the save data
    (plain .sav files 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. .sav files 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

Choose a tag to compare

@github-actions github-actions released this 03 Oct 18:58

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

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:31

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). --slot needs 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 by scripts/build-mgba.ps1) captures mGBA's
    pictures, memory, registers, IO changes and instruction traces headless, and
    scripts/compare-trace.py diffs instruction timing against ours. gba-test gained --png-at,
    --regs, --poll, --trace-frames and --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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 23:57

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/checkout v7, upload-artifact v7, download-artifact v8 and
    action-gh-release v3, all on the Node 24 runtime the self-hosted runners already provide.

Strawberry v1.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 18:50

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 existing gba-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, and Open <folder> (Z) /
    Settings buttons. Settings is now reachable from the Library.

GBA Emulator v1.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 16:19

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.ps1 builds tools/mgba-wav.exe, a headless libmgba audio capture, and
    scripts/compare-audio.py records a title set with both emulators and reports level, balance
    and alignment figures (tools/audio-ref/report.md); scripts/compare-wav.py now uses the
    same analysis. gba-test --mute-channels MASK silences 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

Choose a tag to compare

@github-actions github-actions released this 02 Oct 03:02
3d29b87

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 LOAD and can be deleted;
    the library, settings and .sav files are unaffected.