No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-16 16:39:13 -04:00
.gitignore Initial Mario Tennis Aces Nextendo Network server 2026-08-16 00:45:06 -04:00
dashboard.go Initial Mario Tennis Aces Nextendo Network server 2026-08-16 00:45:06 -04:00
example.env Enable NEXTENDO_OPEN_PARTICIPATION — fixes double-host deadlock in free play 2026-08-16 01:19:35 -04:00
gates.go Initial Mario Tennis Aces Nextendo Network server 2026-08-16 00:45:06 -04:00
go.mod Initial Mario Tennis Aces Nextendo Network server 2026-08-16 00:45:06 -04:00
LICENSE.md Initial Mario Tennis Aces Nextendo Network server 2026-08-16 00:45:06 -04:00
main.go Enable FindByParticipantEnabled — fixes co-op/friend-room lookup 2026-08-16 01:24:10 -04:00
presence.go Fix presence-batch missing X-Internal-Key auth header 2026-08-16 03:28:22 -04:00
README.md Update README.md 2026-08-16 16:39:13 -04:00
tennis_stubs.go Fix DataStore::PostMetaBinary (method 21) — was silently killing tournament entry 2026-08-16 01:58:19 -04:00

mario-tennis-aces

Nextendo Network game server for Mario Tennis Aces.

License: PolyForm Shield 1.0.0 Go 1.23+


What is this?

The NEX game server for Mario Tennis Aces on Nextendo Network. It handles authentication and matchmaking, speaking the same NEX protocol the retail servers did — access key 29f267b9 per kinnay/NintendoClients' Game Server List (server ID 23932A00).

It is built on the nextendo-nex core (PRUDP transport, RMC layer, common service protocols) and follows the same shape as arms: auth (:443) + secure NEX endpoints in one process, P2P gameplay once matched. Unlike SMB35, Tennis Aces has no dedicated Matchmake Extension Protocol wiki page, so it needs nothing game-specific beyond the generic matchmaking method set.

Status: Fully functional besides Rankings page.

  • NEX version — no public source documents it the way the access key is; started with 40305 (same as arms, a contemporaneous release) as the best available guess.
  • SecureConnection Pia config — started with the plain default (nex.SecureConnectionHandler(), what mk8 uses); if the client stalls at secure-connect, try nex.SecureConnectionHandlerWithConfig(nex.LegacyPiaConfig()) next, the override arms needed.

Running

cp example.env .env    # then edit .env
go run .

Configuration is entirely through environment variables — see example.env.

What this is not

This server ships no Nintendo code, keys, or copyrighted assets. It is an independent reimplementation for use with a community-run replacement service, not affiliated with, endorsed by, or associated with Nintendo. The NEX access key it uses is a well-known per-title value derivable from the game itself, not a secret.

License

Released under the PolyForm Shield License 1.0.0 — source-available: read, use, modify, and self-host, but do not use it to provide a product that competes with Nextendo Network.