Skip to content

Netplay and Rollback

DoubleGate edited this page Jul 8, 2026 · 1 revision

Netplay and Rollback

Status: not started. rustysnes-netplay is currently a 1-line stub crate — no rollback netplay implementation exists yet.

Where it fits in the roadmap

Netplay is planned as v1.2.0, a post-v1.0.0 "Reach" release (see Roadmap). It is deliberately sequenced after v1.0.0 — the production cut is gated on core accuracy, a stable save-state API, and a shippable app, not on feature breadth like netplay.

Why it depends on save-states

Rollback netplay needs to repeatedly snapshot and restore full emulator state at frame granularity — a requirement v0.2.0 "Persistence"'s save-state format and v0.3.0 "Continuum"'s rewind/run-ahead mechanism already exist to serve. See Frontend-Architecture for how save-states, rewind, and run-ahead are implemented today; netplay will build directly on that same primitive rather than inventing a separate one.

The determinism prerequisite

Rollback netplay only works if replaying the same input sequence from the same snapshot always produces the same result — which is exactly RustySNES's existing hard determinism contract (see Architecture-Overview). v1.2.0 is scheduled after v1.0.0 specifically because that contract needs to be stable (not still shifting under active development) before anything durably depends on it across a network boundary.

What to expect

No design document, protocol choice, or implementation exists yet. Check Roadmap and the project's to-dos/VERSION-PLAN.md for the current sequencing; this page will be filled in once work actually begins.

Clone this wiki locally