Skip to content

Roadmap

abduznik edited this page Jul 17, 2026 · 8 revisions

Roadmap

Completed

SV_MODE_STRATEGY / Phase 3

Status: Implemented and tested (48 strategy tests + 34 Phase 3 regression tests).

  • Manifest lifecycle (create, free, load, save) with key-value text format
  • Identity resolution with tiered fallback: serial extraction → checksum → pluggable hash-DB
  • sv_register_with_manifest() for auto-detecting game_id at registration time
  • Integration with existing save/pull/retention pipeline
  • Graceful degradation: missing manifest, malformed header, pattern mismatch, hash-DB failure all fall back to DEFAULT behavior without crashing

Next

Manifest Schema Finalization

The manifest format (key-value text) is implemented but the schema for per-platform/emulator configs is not yet formalized. Real emulator strategies (RetroArch, PPSSPP, Dolphin) need concrete manifest files ported from Freegosy's existing logic.

Hash-Database Tier 3 Design

The pluggable callback API exists (sv_hash_db_lookup_fn) but no concrete DAT-format parser is shipped. The core remains database-free by design.

Directory/Archive Sub-file Granularity

Whether SAVE_SHAPE_DIRECTORY/ARCHIVE entries need per-file hash lists for finer diffing, or whether whole-container hashing is sufficient for v1. Current behavior: whole-container hashing.

Metadata Store On-Disk Format

Deliberately left as an implementation detail. The current binary TLV format works but could be optimized for larger datasets.

Relocation Poke-Check

sv_update_register()'s relocation logic for live_path — the poke check against destination path and copy-verify-then-delete-source flow needs more thorough testing.

Pull-External Buffer Model

sv_pull_external() currently uses a fixed 4KB buffer for pulled data. A streaming or callback-based model would handle larger saves.

IPC Binary (Layer 1)

A standalone binary exposing the same operations over an IPC protocol. Not yet implemented — the C ABI is the primary interface.

Thread Safety

No mutexes or thread-local storage. The library is not thread-safe. Callers must serialize access.

Windows Support

Currently uses POSIX APIs (/dev/urandom, mkdir, rename, unlink). A Windows port would need _mktemp_s, MoveFileEx, etc.


See also: Architecture-Overview | Layer-2-Registration-and-Identity

Clone this wiki locally