Skip to content

DS Netplay adapter: connect native Linux melonDS to GameParty and secure peer transport #165

Description

@EriArk

Parent: #162. Depends on #163 Linux core, #164 safe mirror-state boundary, and the actual implemented capabilities of #106.

Goal

Connect a pinned TrainerOS-managed DS netplay runtime to the existing RuntimeMultiplayer/GameParty flows. A user invites friends the same way as for PPSSPP/Dolphin/RetroArch; do not create a melonDS-specific social lobby, second friends list or manual network setup screen.

Adapter contract

Secure connectivity

  • Reuse Shared transport: add authenticated native P2P and relay for system Link or runtime multiplayer #106 authenticated, accepted-session transport route and its real direct/authorized-relay choices. Raw ENet datagrams alone do not provide user authentication, encryption, NAT traversal or a private relay.
  • Translate the emulator's bounded control/input traffic into the selected delivery semantics without sending gameplay frames through ordinary Fluxer chat.
  • Bind every endpoint to session ID, player index, Trainer, game/content identity and runtime profile; only authenticated invited peers may join. Reject stale/replayed packets and peers after leave.
  • Handle ping/jitter estimates, host-selected input delay, input buffer capacity, loss/reorder/disconnect, resync/rejection and network switching as explicit states rather than silent half-speed play.
  • Don't tunnel a virtual Ethernet/LAN for DS solely out of habit; DS deterministic mirrored-consoles netplay is distinct from ordinary game IP LAN networking.

Native launch and save integration

UX acceptance

  • A friend can select a supported DS game in TrainerOS, invite another person, and start an actual local-wireless game using only the standard GameParty user journey.
  • No extra manual LAN/VPN/IP address/port/BIOS sharing dialogs appear; unsupported requirements are reported accurately.
  • Disconnect/reject/host crash and party closure return to a safe normal game/library state without save collision or ghost Ready.
  • Controller Home/voice/notification overlays do not break valid game synchronization solely by focus loss.
  • The exact same DS runtime/adapter contract can be installed in a prepared TrainerOS image or via SteamOS/Bazzite with Distribution: independent image and TrainerOS software release manifests and ownership #119/TrainerOS Software: signed cross-distro updater independent of system image #154 ownership.
  • Native DS/WFC and existing GB/GBA Link/PPSSPP/Dolphin/RetroArch flows remain unaffected.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions