Compatibility, Game Modes & Rollback Netplay

Measured playability across Smash modes, 13.0.5 DLC fighters, Quickplay & Battle Arenas, SSBU_RB rollback frame timings, and experimental Linux/macOS builds.

  • 13.0.5 full DLC roster
  • 1v1 Rollback default
  • EU & NA 39421 lobbies
  • Cross-play Win & Linux
Platform-fighter esports tournament venue packed with spectators watching a main-stage bracket match
Competitive Smash Ultimate bracket crowd and 60 FPS tournament stage pacing

Game modes, roster & platform compatibility matrix

Unified OpenSmash-Ultimate/OpenSmash-Ultimate targets Super Smash Bros. Ultimate version 13.0.5 exclusively, meaning every base fighter, stage, balance patch, and owned DLC fighter up through Fighters Pass Vol. 2 (Kazuya and Sora) shares a single deterministic simulation binary:

Mode / PlatformCurrent StatusMeasured Upstream Notes
Boot, Opening Movie (VP9) & MenusPlayableFull 60 FPS menu navigation, Opus BGM, and VP9 cutscenes via bundled libopus / libvpx or FFmpeg.
Smash (Local 1v1 & up to 8 Players)PlayableComplete matches through the results screen across base + all 13.0.5 DLC fighters (up to Kazuya & Sora).
Online → Quickplay (1v1 Rollback)Active (Default Rollback)Matches against the community NEX game server (port 39421) with SSBU_RB rollback on by default in v0.3.0-alpha.3 and GSP tracking.
Online → Battle ArenasExperimentalCreate Arena, Advanced Search, waiting ring tokens, and 2-player rollback fights work on the 39421 server; 3–4p and Arena ID/password search still in testing.
Local Wireless (Public Lobby, Code & LAN)PlayableUp to 24-room paging, Netplay v3 Room Browser & mod-diff view, UDP hole punching, 1v1 rollback, and zero-config LAN multicast (239.255.13.13:39501).
Training, Classic Mode & Home-Run ContestPlayableVerified starting and playing through matches; run-ahead and savestate infrastructure built into runtime.
Spirits, Vault Album & Mii FightersReachable / WorkingIn-game pause snapshots save as album/*.bmp; up to 100 custom Miis load from miis/*.charinfo.
Adventure (World of Light) & Replay Video ExportPartial / UnsupportedWorld of Light intro reached (full map/fights not yet audited); converting saved replays into video files is not yet implemented.
Linux x86-64 (DXVK) & macOS (Apple silicon Metal)ExperimentalLinux builds run matches and cross-platform lobbies with Windows; macOS 14.5+ verified at 60 FPS through menus and character/stage select on M-series chips.

Online multiplayer architecture: Lobbies, Quickplay & LAN

OpenSmash-Ultimate never touches Nintendo’s servers. Instead, OpenSmash.exe connects to lightweight community Python servers (tools/ssbu_online_lobby.py on TCP+UDP port 39421, or legacy relay-only port 39420):

  • Automatic fastest regional lobby (online_server.txt = auto): At launch, the client times a handshake to Europe (opensmash-lobby.duckdns.org:39421) and North America (smash.recomps.wtf:39421) and joins whichever responds faster (pin manually with eu or na).
  • Direct P2P UDP hole punching (#139): Once two players enter a Local Wireless room, the lobby introduces them and opens a direct UDP path even across symmetric NAT routers via port learning, UPnP / NAT-PMP / PCP, and sequential port prediction. Press F1 to verify direct 12 ms vs relayed.
  • Netplay v3 Room Browser (#122): Setting Netplay version = 3 in Esc → Online enables the Lobby tab (5), listing up to 30 rooms per page, showing why incompatible rooms cannot be joined (version or exact mod list mismatch), and pinning your chosen room to the top of Local Wireless → Rooms List.
  • Zero-address LAN discovery: On a home router or local venue network, one PC hosts via Host SSBU Netplay.bat (announcing over UDP multicast 239.255.13.13:39501) while other PCs set Play online in → this network (LAN) to join automatically within 1.5 seconds.

Measured SSBU_RB rollback netcode benchmarks

In 1v1 Quickplay, 2-player Battle Arenas, and 1v1 Local Wireless rooms, both games negotiate SSBU_RB rollback within 15 seconds (3- and 4-player free-for-alls fall back automatically to standard delay netcode). Because a 60 FPS frame budget is 16.7 ms, any rollback catch-up under 16.7 ms is completely invisible:

Round-Trip PingInput DelayRollbacks (3-min Match)Frames Re-runCatch-Up Time (Mean / Worst)End-of-Fight State Hash
~1 ms (Same PC / loopback)1 frame (auto)1–62 frames7–10 msIdentical
~40 ms (Live 2-PC match)2 frames (floor)15 across 2 fights2 frames< 16.7 ms (locked 60 FPS)Identical
~65 ms (Simulated RTT)1–2 frames800–1,200 (bot stress)2–3 frames11–12 ms (27 ms worst)Identical
~115 ms (Cross-region)2 frames (auto)790–1,280 (bot stress)2–3 frames13–15 ms (41 ms worst)Identical
120–150 ms one-way6–9 frames (auto cap 9)High-ping fallback3–5 frames< 5% catch-ups over 16.7 ms at delay 7Identical

If two clients ever diverge or a peer disconnects for 8 seconds, OpenSmash alerts you cleanly and writes reports\rollback_<date>_<time>.txt for bug reporting.

Current known visual & workflow limitations

  • Blue KO finish zoom: As noted in the v0.3.0-alpha.1 and v0.3.0-alpha.2 release notes, the red screen-flash zoom on match-ending KOs currently renders blue instead of red.
  • Intel Iris Xe Vulkan driver bug: Tracked in GitHub Issues #333, #346, and #327; work around immediately by switching renderer = direct3d11 in config\display.ini.
  • Adding new DLC after initial build: Tracked in Issue #340; place newly dumped DLC packages next to your 13.0.5 game files and re-run setup / build_game.py so dump/modules/aoc.cfg and DLC fighter NROs update.

OpenSmash-Ultimate and WindowSmash support up to 8 concurrent players via SDL3, XInput, and native Wii U / Switch GameCube USB adapter polling (both Windows HID and Zadig WinUSB drivers, with analog L/R triggers and rumble):

HardwareBest For in OpenSmash-UltimateInput Path & Latency NotesLink
Mayflash 4-Port GameCube Controller USB Adapter4-port GameCube controller playSwitch to Wii U mode for native 4-port GameCube input + rumble (second grey USB plug)View on Amazon
Nintendo Switch Pro ControllerNative positional ABXY layoutMatches Switch button positions out of the box via SDL3 (`[device switchpro]`)View on Amazon
GameSir Cyclone 2Low-latency 1000 Hz wireless SmashZero-drift TMR sticks, microswitch face buttons, XInput & Switch SDL3 modesView on Amazon
8BitDo Ultimate 2 WirelessDesktop & SteamOS handheld dockTMR sticks, charging dock, 2.4 GHz dongle + Switch / XInput mode switchView on Amazon
Sony DualSensePlayStation pad (`[device ps5]`)Full SDL3 support with configurable per-device rumble and deadzone in `controllers.ini`View on Amazon
Xbox Wireless ControllerZero-setup Windows 10/11 XInputWorks natively for players 1–4; set `layout = labels` or `style = gamecube` if desiredView on Amazon

As an Amazon Associate, this site earns from qualifying purchases.

Nintendo GameCube controller showing octagonal analog gate, C-stick, L/R analog shoulder triggers and A/B/X/Y layout
Native GameCube controller input via 4-port Wii U USB adapters (WinUSB / HID) with analog L/R triggers
Desktop gaming PC workstation with dual monitors and tempered glass chassis
Windows 10/11 x64 desktop build host for AArch64-to-C static recompilation, Direct3D 11 and Vulkan
Macro view of a multi-core x86-64 processor and integrated GPU silicon package
AVX2 / SSE4.2 CPU compiler pipeline and 40,000-shader ahead-of-time cache

Common questions

Can Windows and Linux players fight each other online?

Yes. Both Windows (OpenSmash.exe) and Linux (play-ssbu.sh / run.sh) compile from the exact same 13.0.5 C translation and speak the same lobby and Local Wireless protocol.

How do I disable rollback netcode if I want to test standard netplay?

Press Esc in-game, go to Online → Rollback netcode, and switch it to off (which writes off to online_rollback.txt on next start), or launch with environment variable SSBU_RB=0.

Can a tournament or Discord community host its own private lobby server?

Yes. Run python tools/ssbu_online_lobby.py --port 39421 --state online-state --verbose (requires Python 3.8+ and TCP+UDP port 39421, plus UDP 39431 for NAT hole-punching; zero game files required on the server).