OpenSmash-Ultimate PC, Linux & Mac Requirements

Hardware specifications, AVX2 vs SSE4.2 compiler targets, 60 GB build storage breakdown, shader prewarm RAM budgets, and config/display.ini reference.

  • Win 10/11 · Linux · macOS 14.5+
  • AVX2 rec. (SSE4.2 ok)
  • 4–8 GB min / 16 GB rec.
  • ~60 GB build space
Front view of a Valve Steam Deck handheld PC running Linux
Experimental Linux x86-64 build (DXVK + vkd3d-shader) and gamepad-friendly OpenSmash Launcher in Steam Game Mode

Because OpenSmash-Ultimate translates ARM64 instructions to native machine code ahead of time, runtime CPU overhead is substantially lighter than dynamic Switch emulation, while first-time setup requires enough disk space and memory to run LLVM Clang across all 98 fighter modules:

ComponentMinimum SupportedRecommended Configuration
Operating system64-bit Windows 10 / 11; or x86-64 Linux with glibc 2.35+ (Ubuntu 22.04+, Debian 12+, Fedora 36+, SteamOS); or Apple silicon macOS 14.5+64-bit Windows 11 or Desktop Linux (Arch / Fedora / Ubuntu 24.04) with latest GPU drivers
Processor (CPU)x86-64 with SSE4.2 (x86-64-v2: Intel Nehalem / AMD Bulldozer or newer; runs slower) or Apple M18-to-16-thread CPU with AVX2 (Intel 4th-gen Haswell 2013+ or any AMD Ryzen) or Apple M2/M3/M4 Pro
Graphics (GPU)DirectX 11 or Vulkan 1.3 capable GPU (Intel Raptor Lake iGPU measured at 59–60 FPS in fights; Intel Iris Xe should force direct3d11)Discrete NVIDIA GeForce or AMD Radeon GPU supporting VK_KHR_dynamic_rendering, Direct3D 11, and G-Sync / FreeSync VRR
System memory (RAM)4–8 GB RAM supported during build via automatic job throttling (PR #114; 12 GB+ recommended on Linux desktop)16 GB to 32 GB RAM (allows 8–16 parallel compiler jobs and full startup shader cache prewarming)
Free disk space~60 GB free on Windows (~30 GB on Linux, ~40 GB on macOS) + ~17 GB for your own 13.0.5 game filesNVMe SSD with 80+ GB free (covers build/ ~30 GB, dump/shadercache/ ~2.7–4 GB, and temporary update extraction)

CPU instruction sets: AVX2 vs x86-64-v2 (SSE4.2)

During setup, tools/isa.py inspects your host processor and records the target ISA in build/ (or build-linux/isa.txt):

  • AVX2 (Default on modern CPUs): Every Intel Core 4th-generation (Haswell, 2013+) and every AMD Ryzen processor supports AVX2, enabling fast 256-bit SIMD translation of ARM64 NEON vector instructions.
  • SSE4.2 (x86-64-v2 fallback): Older Intel Core, Pentium, Celeron, or older AMD processors lacking AVX2 can still compile and run OpenSmash-Ultimate in SSE4.2 mode, though heavy 4-to-8-player fights run slower. Developers packaging builds for mixed hardware can override the target via SSBU_ISA=x86-64-v2.
  • Apple silicon (ARM64 native): On M1 and newer Macs (macOS 14.5+ Sonoma with Command Line Tools 16 / macOS 15 SDK), Apple Clang compiles lifted C into native arm64 macOS code inside build-mac/WindowSmash.app. Intel Macs are not supported.

Graphics backends, shader caches & measured GPU speeds

  • Direct3D 11 & Vulkan on Windows: A typical fight frame submits roughly 3,000 draw calls. Following PR #131 in v0.3.0-alpha.2, the Vulkan backend (gpu_vk.c using VK_KHR_dynamic_rendering) reduced CPU per-draw cost from 4–8 µs down to ~2.5 µs, matching Direct3D 11 in normal 60 FPS matches. In ssbu-recomp’s Vulkan tests, an integrated Intel Raptor Lake iGPU sustained 59–60 FPS across a full fight with 0 pipeline holds.
  • Startup shader prewarm (PR #119): At launch, compiler threads warm cached shaders within a budget of one-third of system RAM (overridable via SSBU_SHADER_PREWARM_MB or disabled via SSBU_SHADER_PREWARM=0). On PCs with 12 GB+ RAM, unplayed cached shaders are prewarmed too; 8–12 GB prewarms unplayed vertex shaders first.
  • Ahead-of-time shader compilation: Running python tools\shader_aot.py on Windows precompiles ~40,000 shaders (~30 min on 16 threads, 1–2 hrs on 4–8 threads). On Linux, bash launchers/prepare-shaders.sh compiles ~65,000 shaders (~2.7 GB DXBC) and performs a headless DXVK pipeline warm pass (~6.5 min on 16 threads).

Display, VRR & low-latency tuning (config/display.ini)

All display parameters can be adjusted live via Esc → Display or edited in config\display.ini:

SettingAccepted Values & BehaviorDefault
windowwindowed (16:9 locked resize), borderless, or fullscreenwindowed
render_scale0.5 to 4, or auto (matches native screen height, e.g. 1.33 at 1440p; 2 = 4x pixels, ~200 MB extra VRAM)1
rendererauto (Vulkan on AMD/NVIDIA/Intel, falls back to D3D11 after two early startup faults), direct3d11, or vulkanauto
pacingclock (steady 60 FPS), vrr (G-Sync / FreeSync immediate presentation), or display (60/120/240 Hz sync)clock
low_latency1 waits until late in the refresh window before polling inputs, cutting up to most of a frame of input delay1
latency1–3 maximum queued GPU frames (Vulkan keeps at least 2 so CPU and GPU do not serialize)3
gpuauto (picks discrete NVIDIA/AMD over laptop iGPU) or substring such as nvidia, radeon, intelauto

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.

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
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

Common questions

Can OpenSmash-Ultimate run on integrated Intel or AMD laptop graphics?

Yes. An integrated Intel Raptor Lake iGPU ran full 1v1 matches at 59–60 FPS in upstream tests. Keep render_scale = 1 on integrated GPUs, and if you have an Intel Iris Xe chip exhibiting black menu backgrounds or broken stage geometry (Issues #333 / #346), set renderer = direct3d11 in config\display.ini.

Why does OpenSmash ask for 60 GB of free space when the Switch game is 17 GB?

During setup, the installer may temporarily decrypt base and 13.0.5 update containers (~15 GB + ~4 GB), emit C source and object files for main plus 98 fighter NROs (~30 GB in build/), and store ~2.5–4 GB of precompiled shaders in dump/shadercache/.

Does OpenSmash-Ultimate support ultrawide or uncapped frame rates above 60 FPS?

Super Smash Bros. Ultimate ties frame data, physics, and online rollback hashes strictly to 60 ticks per second and a 16:9 camera (pillarboxed in wider windows; tracked in Issue #343). However, you can scale internal resolution up to render_scale = 4 (7680x4320) and sync presentation to 120 Hz / 240 Hz or VRR monitors via pacing = vrr or pacing = display.