Skip to content

Runner: netplay through a loadable recomp-net module - #5

Merged
TechnicallyComputers merged 2 commits into
mainfrom
feat/netplay-module-pr
Oct 8, 2026
Merged

TechnicallyComputers merged 2 commits into
mainfrom
feat/netplay-module-pr

Conversation

@TechnicallyComputers

Copy link
Copy Markdown
Member

-DRETRO_RUNTIME_NETPLAY_MODULE=ON (with RETRO_RUNTIME_RECOMP_NET_DIR for headers only) builds retro-core-runner without linking recomp-net. It opens librecomp_net_module (recomp-net PR #31, released from v0.1.0) at run time from --net-module <path> or RETRO_NETPLAY_MODULE.

  • runner/net_module.*: dlopen, checks the module ABI, rbengine, and every function the runner calls; refuses by name, no fallback. The module's wire version joins the build fingerprint (runner_netplay: MODULE … logs which module played).
  • --version prints netplay_module_abi N (0 when netplay is linked in) and runner_probe reads it, so a host can install the module with that ABI without opening it (retcomm-launcher uses this).
  • Default builds (recomp-net linked in, or none) are unchanged apart from the extra --version line.

Verified: all 29 ctests; a missing/bad/wrong module is refused with the reason; two runner processes on loopback, Pokemon Stadium (n64lle generic core), 300 frames, identical state_hash, 0 desyncs, through the v0.1.0-equivalent module (ABI 1, wire 2). Not verified: macOS/Windows module builds of the runner, a netplay session through the hub.

🤖 Generated with Claude Code

TechnicallyComputers and others added 2 commits October 7, 2026 23:55
…DULE)

--net-module / RETRO_NETPLAY_MODULE names librecomp_net_module; the runner checks
ABI, rbengine and every symbol it calls at start, folds the module's wire
version into the build fingerprint, and links no recomp-net.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The recomp-net module ABI the runner loads (0 when netplay is linked in), so a
host installs a module with that ABI without opening it; runner_probe reads it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@TechnicallyComputers
TechnicallyComputers merged commit e7050ef into main Oct 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant