Skip to content

Releases: Aelvryx/mgba-wifi-link

GBA Wi-Fi Link v0.2.0 alpha

Pre-release

Choose a tag to compare

@Aelvryx Aelvryx released this 07 Aug 12:14
86cc1c2

GBA Wi-Fi Link v0.2.0 alpha

Documentation-only asset corrections: the offline guide, archive, and
checksum manifest were repacked after publication to align public privacy,
licensing, source-provenance, and public-reporting material. The latest
correction prohibits public raw endpoint logs until the separately reviewed
sanitized diagnostic workflow in issue #20 exists. The v0.2.0 source
commit, Android core, and both CC0 fixtures are byte-identical to the
original prerelease. The hashes below identify the current public assets.

This is the first release of the fork as one coherent GBA Wi-Fi Link
product: two-player GBA Multi-Pak play between physical devices through stock
RetroArch's Netpacket transport.

Highlights since v0.1.0-alpha.2

  • Canonical GBA Wi-Fi Link frontend surface over the retained version-2 wire
    compatibility contract.
  • Deterministic emulator-profile negotiation, RTC normalization, and early
    rejection of unsupported tilt, gyro, solar/luminance, and e-Reader inputs.
  • Transport-only latency calibration with Auto (Stable) and
    Auto (Low Latency, Experimental) policies.
  • Transactional state/save checkpoints and guest-visible cable topology before
    either replicated CPU resumes.
  • Zelda: Four Swords discovery and extended shared gameplay qualified alongside
    Mario Kart: Super Circuit.
  • Retired protocol-v1 runtime, selector, tests, and tooling removed from the
    shipped product.
  • Structured, privacy-bounded qualification diagnostics and stronger Android
    preparation checks.

Install or upgrade on Android

  1. Download mgba_libretro_android.so (or extract it from the bundle).
  2. In RetroArch, choose Load Core → Install or Restore a Core and select the
    downloaded file.
  3. Repeat on the second device with the identical artifact.
  4. Load the same ROM revision on both devices, host on player one, and join from
    player two through RetroArch's normal Netplay menu.

Installing the core does not replace normal save files. Backing up important
saves before upgrading any emulator remains sensible. A stale
mgba_gba_link_netplay_runtime line is inert and may be removed from old
configurations.

Auto (Stable) remains the default and uses a minimum two-frame input buffer.
Low Latency may select one frame on a suitable path, but remains an opt-in
experiment because rare waits on the qualified direct-hotspot run exceeded the
bilateral publication thresholds.

Qualified scope

  • Exactly two physical devices on a trusted LAN or direct Android hotspot.
  • GBA MULTI-mode Multi-Pak with identical effective ROM bytes.
  • Android ARM64 in stock RetroArch.
  • Verified workloads: the redistributable continuous fixture, LinkCable
    compatibility workload, Mario Kart: Super Circuit, Zelda: Four Swords, and
    an Advance Wars user playtest.

This remains an experimental alpha. Untested games remain untested. Single-Pak
multiboot, three/four players, Wireless Adapter/RFU, live-session savestates,
reconnection, host migration, internet relay, and synchronized cartridge
sensors are not supported.

Provenance

  • Source: 86cc1c26eaf26b5024689c5cb723aa6152efb795
  • Tag: v0.2.0
  • Platform: Android 21+, ARM64/AArch64 libretro
  • Toolchain: Android NDK 27.2.12479018 (r27c), CMake, Ninja
  • Core SHA-256: b16873176e358883acc7e7cb8f0312b9a275610a6a9e84c87e092accc3748910
  • gba-link-test.gba SHA-256: 2f662e4bcf2ac81c438ae5eacc786b2d2984c00807d3656b4990da66a99edc13
  • gba-link-continuous.gba SHA-256: c1fe01752d4f5863d6e3e1a9866b061aaadf2927ccc3df31ba9ecbf4bc68fe9d
  • Bundle SHA-256: 0bdf9546a7e8d25e8064d0db3849c0d68c627fd03d5da35606dc61e1c84c851f
  • Offline guide SHA-256: 93357893a8b967cb0961a6818e2b6b9b957ea92bef3eed1d00bfe9846f3970dd
  • Checksum manifest SHA-256: 13222ac91cffe21a5286aa7f53af79b6d9e571753fc9a3d21ef4d342e67f4669
  • Protected CI: run 30983222882, all six jobs passed
  • Reproducibility: two clean pinned-toolchain builds were byte-identical before
    deterministic release stripping; the final distributable retained its
    embedded full source commit, product identity, protocol identity, and public
    libretro entry points.
  • Exact-artifact smoke: the final stripped core was installed on two physical Android devices
    and ran the isolated Stable-policy CC0 fixture for 4,200 synchronized frames
    at about 60.36 FPS, with a two-frame selection, 2,098 completed two-player
    transfers, 69+ matching verification rounds, seven matching trace samples,
    zero empty-audio frames, and no structured failure.

The bundle also contains the two CC0 fixture ROMs, current installation and
operating guidance, and internal checksums. No commercial content, saves, or
private qualification evidence is included.

This is an independent experimental fork and is not an official upstream mGBA
release.

mGBA Wi-Fi Link Netplay v0.1.0-alpha.2

Pre-release

Choose a tag to compare

@Aelvryx Aelvryx released this 01 Aug 08:51

Historical prerelease: Superseded by GBA Wi-Fi Link v0.2.0 alpha. Kept for provenance; use v0.2.0 for current testing and documentation.

mGBA Wi-Fi Link Netplay v0.1.0-alpha.2

This experimental alpha replaces the latency-bound distributed-cable runtime from alpha.1 with the reviewed protocol-v2 replicated-pair architecture. Each Android device runs the same local P0/P1 mGBA pair; RetroArch Netpacket exchanges frame inputs and verification data rather than placing every cable word behind a Wi-Fi round trip.

The result is full-speed two-player Multi-Pak play in the validated workloads. PR #3 was independently code-reviewed and merged into master. This release binary is the exact physically exercised ARM64 artifact built from source commit c9b181aa24d5f2136a6e11fca56179b5204555be:

14978106a3978ab4ef6ec025add82e0e9a38decda72404e3dc8c02b3373f179d  mgba_libretro_android.so

Install

Download the Android ARM64 bundle, extract it, then install mgba_libretro_android.so through RetroArch → Load Core → Install or Restore a Core on both devices. Both players must load byte-identical ROM revisions with this same core.

Player one starts a Netplay host. Player two connects to the host's LAN address. Wait for the replicated-link-ready message on both devices, return to the running games, and enter the title's Multi-Pak flow.

Qualification and compatibility

  • Mario Kart: Super Circuit: verified, including a complete three-lap VS race on the protocol-v2 architecture and an exact-artifact corrective smoke
  • continuous diagnostic and LinkCable workloads: verified
  • Advance Wars: successful ad-hoc playtest
  • Zelda: Four Swords: known compatibility failure during cable discovery
  • other commercial titles: unverified

The exact release artifact sustained approximately 60 FPS with matching replica checks, normal audio delivery, 6,550 Mario Kart transfers in its corrective smoke, and safe verified-checkpoint restoration after forced peer stop. Longer qualification evidence from earlier protocol-v2 candidates is retained in the repository validation matrix.

Scope and limitations

  • two players on the same LAN
  • GBA MULTI mode and Multi-Pak only
  • exact ROM-byte matching
  • Android ARM64/API 21+
  • stock RetroArch with Netpacket command 78

Four-player sessions, Single-Pak multiboot, Wireless Adapter/RFU, internet relay, reconnection, host migration, and savestates during live sessions are not supported. Sensor inputs and wall-clock RTC observations are not synchronized, and the protocol-v2 wire contract is not frozen.

This is intentionally an experimental compatibility alpha, not a claim that every Multi-Pak title works. The attached .gba files are redistributable CC0 diagnostics. See INSTALL-AND-USAGE.md and SHA256SUMS in the bundle for full instructions and verification.

mGBA Wi-Fi Link Netplay v0.1.0-alpha.1

Pre-release

Choose a tag to compare

@Aelvryx Aelvryx released this 31 Jul 11:45

Historical prerelease: Superseded by GBA Wi-Fi Link v0.2.0 alpha. Kept for provenance; use v0.2.0 for current testing and documentation.

This reviewed alpha refresh adds deterministic two-device GBA Multi-Pak link-cable emulation to the mGBA libretro core through stock RetroArch's Netpacket transport. It supersedes the earlier v0.1.0-alpha binary from the integration branch; use this release for testing.

The release is built from the independently approved PR #2 head a5a215929fbd5dffceaba2b1be9fc8f520e346bc. The exact binary attached here passed the focused automated suite and a final two-device Android test on RetroArch 1.22.2: both peers completed all 16 CC0 diagnostic transfers at all four MULTI baud settings, producing the expected yellow host and blue client results without a protocol failure.

Download and install

Most Android users should download mgba-wifi-link-netplay-v0.1.0-alpha.1-android-arm64.zip, extract it, then install mgba_libretro_android.so through RetroArch → Load Core → Install or Restore a Core on both devices.

Load byte-identical ROMs with this core. Start Netplay → Host on player one, connect player two to the host's LAN IP address, and wait for both GBA link ready messages before entering the game's multiplayer flow.

Scope

  • Two players on the same LAN
  • GBA MULTI mode and Multi-Pak only
  • Exact ROM-byte matching; saves and inputs remain independent
  • Android ARM64/API 21+
  • Stock RetroArch 1.22.2 or compatible Netpacket command-78 frontend

Single-Pak multiboot, Wireless Adapter/RFU, NORMAL8/NORMAL32, three/four players, internet relay, reconnection, and host migration are not supported. Savestates, cheats, and timing-sensitive changes are rejected during live sessions.

Alpha warning

Commercial-game performance is not yet qualified. The correctness-first conservative lockstep can pause emulation during Wi-Fi round trips; games with frequent link traffic may slow down or stutter. Please enable verbose RetroArch file logging and retain both endpoint logs when reporting a failure.

The attached gba-link-test.gba is a CC0 diagnostic fixture. Verify downloads with SHA256SUMS. The project source and MPL-2.0 license are available in this repository.

mGBA Wi-Fi Link Netplay v0.1.0-alpha

Pre-release

Choose a tag to compare

@Aelvryx Aelvryx released this 31 Jul 05:20

Historical prerelease: Superseded by GBA Wi-Fi Link v0.2.0 alpha. Kept for provenance; use v0.2.0 for current testing and documentation.

Experimental Android ARM64 prerelease of the mGBA Wi-Fi link-netplay libretro core.

Install

  1. Download mgba_libretro_android.so to the Android Downloads folder.
  2. In RetroArch, choose Load Core → Install or Restore a Core and select the downloaded file.
  3. Install this build on both devices and load exactly the same GBA ROM bytes on each.
  4. Put both devices on the same LAN. One player chooses Netplay → Host; the other chooses Connect to Netplay Host.
  5. Wait for the GBA link ready message before entering the game multiplayer flow.

Supported scope

  • Two players
  • GBA MULTI-mode Multi-Pak link play
  • Stock RetroArch Netpacket transport
  • Exact effective-ROM matching; independent saves and inputs are allowed

Single-Pak, Wireless Adapter/RFU, NORMAL8/NORMAL32 networking, three/four players, internet relay, reconnection, host migration, and live-session savestates are not supported in this alpha.

Artifact

  • Platform: Android ARM64 (arm64-v8a), API 21+
  • Toolchain: Android NDK r27
  • SHA-256: 73b86256b7599714a29874ef8406c01d96b773b275dcbbcd8841fdd69461f563
  • Source: v0.1.0-alpha
  • License: Mozilla Public License 2.0

This build contains no commercial ROM, save data, or external BIOS.