Skip to content

Agree netplay execution profiles before core init - #8

Merged
mstan merged 1 commit into
mainfrom
feat/netplay-host-profiles
Oct 15, 2026
Merged

mstan merged 1 commit into
mainfrom
feat/netplay-host-profiles

Conversation

@mstan

@mstan mstan commented Oct 15, 2026

Copy link
Copy Markdown
Member

Complete execution-profile agreement before core init/guest boot instead of forcing every capable peer onto a portable backend. Rcore draft 10 appends a pre-init capability/qualification query and an agreed profile index in init params. The runner uses recomp-net's fixed offer/ACK barrier, adds the common profile plus capability transcript to existing identity, and preserves core/package/content/boot checks. Old runners/cores retain their safe startup behavior; unsupported new barriers refuse startup.

Also process final control acknowledgements before classifying BYE as a disconnect, so a coordinated clean stop is recognized when both packets arrive together. No UI or live profile/HLE/LLE switching is added.

Validation: 33 Windows static runner tests; 33 Linux static and 33 Linux loaded-module tests, including optimized/fallback pre-init agreement, changed-preparation refusal, and one-peer clean stop. Real two-process Smash cold boots retain Windows TLS+AVX2 when shared and choose portable when one peer withholds optimizations; forced rollbacks have zero desyncs and matching confirmed state. Existing netplay load-state refusal remains.

Requires recomp-net startup_profiles.h (194dafb; module ABI minor 1). Windows static netplay is validated; the pre-existing optional Unix dlfcn module loader is not newly supported on Windows.

Tracking: beads-hn9l.2.47. Consumer: n64lle 0.456.0, followed by Retro-Launcher runtime pin.

@mstan
mstan merged commit 2374599 into main Oct 15, 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.

2 participants