BETA

melee-pc

A native port of Super Smash Bros. Melee for Linux, Windows, macOS, Android and iOS, built from the decompilation and compiled straight to your CPU. No emulator, no game data shipped: you bring your own disc.

Download the latest release

Or play in your browser (experimental; needs WebGPU, e.g. a current Chrome or Edge). The page reads your own raw GALE01 rev 2 image (.iso/.gcm) locally; nothing is uploaded.

What it is

melee-pc recompiles the C source recovered by doldecomp/melee for x86-64 and ARM64, on top of aurora (a GameCube GX/OS/PAD/DVD/CARD compatibility layer with a WebGPU renderer) and SDL3. The game logic runs natively at 60 Hz; the graphics go through Vulkan, Direct3D 12/11 or Metal.

Nothing from the game ships here. Textures, models, music, even the two HSD font atlases are read out of the disc image you supply at boot. The repository and the release archives contain only the port code and third-party libraries.

It is a beta, for testing. Expect crashes. Online play with rollback netcode is planned and not implemented yet. Every game mode runs -- VS, 1-P Classic / Adventure / All-Star, Training, Stadium, Trophies, Event Match -- alongside PC extras like internal resolution up to 10x, a 16:9 combat camera, post-processing shaders, gamepad remapping, custom soundtracks and HD texture packs. Feature by feature, including what is only half done, the status table in the README is the authoritative list; this page does not keep its own copy.

Download

Grab the file for your platform from the latest release. Every build is produced by the public CI from the tagged source.

PlatformFileNotes
Linux x86-64Melee-x86_64.AppImage / melee-linux-x86_64.tar.gzNeeds a Vulkan driver. chmod +x the AppImage, or run run.sh in the tarball.
Linux ARM64Melee-aarch64.AppImage / melee-linux-aarch64.tar.gzRaspberry Pi 5, Asahi Linux, RK3588 boards, ARM handhelds.
Windows x86-64Melee-Windows-x86_64.zipExtract, run melee.exe. Keep the DLLs and resources/ beside it.
Windows ARM64Melee-Windows-arm64.zipNative build for Snapdragon X / Surface Pro.
macOSMelee-macOS-arm64.zip / Melee-macOS-x86_64.zipApple Silicon tested; Intel built but untested. Ad-hoc signed: right-click > Open on first launch.
Android arm64Melee-Android-arm64.apkSigned release build; allow installs from unknown sources.
iOS arm64Melee-iOS-arm64.ipaSideload with AltStore, Sideloadly or TrollStore.

Requirements

Setup in five steps

  1. Dump your disc. Use a homebrew-enabled Wii or GameCube with CleanRip to read your own Melee disc to an SD card. The result should be about 1.36 GB (1,459,978,240 bytes).
  2. Download and unpack the build for your platform from the table above. On Windows, extract the whole zip into its own folder; on macOS right-click > Open the first time.
  3. Start the launcher (double-click melee.exe / the AppImage / Melee.app, or open the APK) and choose your image with Select disc.
  4. Verify the disc. Press Verify. The launcher hashes the image with SHA-1 and compares it with the Redump entry (d4e70c064cc714ba8400a849cf299dbd1aa326fc). A green check means the exact supported disc. Unverified images still play, but if something breaks, the first question will be "did it verify?".
  5. Play. Press Play Melee. In game, F1 (or Back/Select on a pad) opens the settings overlay for resolution, fullscreen, audio, cheats and controller mapping. The game pauses underneath.

Command line users: ./Melee-x86_64.AppImage /path/to/melee.iso or melee.exe C:\path\to\melee.iso skips the launcher.

Default keyboard layout

GameCubeKeyGameCubeKey
Control stickArrow keysC-stickI J K L
A / BX / ZX / YC / V
L / RQ / EZTab
StartEnterD-padT F G H

Gamepads are mapped automatically and can be remapped per device in the Controls tab of the launcher or the F1 overlay: pick the port, pick a GameCube button, press the physical one.

Where your settings live

Everything (selected disc, graphics, audio, cheats) is one text file, launcher.cfg. Controller bindings sit beside it in per-device .controller files; memory cards, music/ and textures/ too.

OSFolder
Windows%APPDATA%\melee-pc\ (usually C:\Users\<you>\AppData\Roaming\melee-pc\)
Linux~/.local/share/melee-pc/
macOS~/Library/Application Support/melee-pc/
AndroidThe app's private storage; use the in-app settings.

Delete launcher.cfg to reset every setting. The dawn_cache.db next to it is the compiled-shader cache; deleting it is harmless but brings back the first-use stutter.

FAQ

Where do I get the game? Can you send me the ISO?

No. melee-pc contains no Nintendo assets and we will not link, host, or help you find a disc image. The only supported way to obtain one is to dump the disc you own (see Setup). Requests for ROMs on the issue tracker or Discord are closed and removed.

Which disc version do I need?

USA revision 2 — NTSC-U 1.02, game ID GALE01. This is the only version the code was recovered from, and the only one the disc verifier has a reference hash for. A PAL (GALP01) image also boots, experimentally: it runs the USA game code on the PAL files, with English (UK) text and at 60 Hz. PAL images always show as "unverified" because there is no reference hash for them.

1.00 and 1.01 discs, the Japanese release, and any modified image will not work. If you own a 1.00/1.01 US disc you are out of luck for now.

Sources: README, release notes.

Can I play 20XX, UnclePunch Training Pack, Slippi Nightly, or another modded ISO?

No. Those projects patch the PowerPC executable on the disc. melee-pc does not run that executable at all: it is the game's C source compiled for your CPU, so assembly patches and Gecko codes have nothing to attach to. A modded image will crash at boot or verify as unknown. Features from those mods (UCF, training tools, …) have to be reimplemented natively, and some are on the roadmap.

Source: #28.

Verify says "unverified" or a different hash. Is it broken?

Verification reads the whole image through nod (compressed .ciso/.rvz included) and compares the SHA-1 with Redump's d4e70c064cc714ba8400a849cf299dbd1aa326fc, 1,459,978,240 bytes. A mismatch means the image is not a clean NTSC-U 1.02 dump: another revision or region, a scrubbed/trimmed rip, or a modded build. PAL is expected to be unverified. Unverified images still launch, but bug reports about them are triaged last.

Sources: README, #28.

Windows says "Windows protected your PC" / SmartScreen blocks melee.exe.

The executable is not code-signed (certificates cost money and this is a hobby beta), so SmartScreen warns on first launch. Click More info > Run anyway. If an antivirus quarantines the exe, restore it and add the folder to its exclusions. You can always rebuild from source if you would rather not trust a binary.

Windows: the launcher works but the game closes the moment I press Play.

First, update. Every release from v0.1.4 to v0.1.6 had one variant of this and each was fixed in the next build: Failed to commit memory for MEM1 strictly under 4GB (v0.1.5, fixed in v0.1.6) and a null write inside melee.exe right after Initialized 0x1000000 bytes of ARAM (v0.1.6, fixed in v0.1.7).

Still crashing on the latest release? Run RUN-AND-LOG.bat from the game folder instead of melee.exe. It sets verbose logging, runs the game, and leaves melee-pc.log, melee-pc-env.log and melee-frames.log beside the exe. Attach melee-pc.log to a bug report. Even the plain melee.exe writes melee-pc.log next to itself on Windows, flushed line by line, so it survives a crash.

Sources: #40, #43, #49, #62, #63.

Windows: DXGI_ERROR_DEVICE_HUNG / "Device lost" on an older Intel laptop.

Intel HD 4000/4400/4600 (Haswell) iGPUs cannot use Direct3D 12 here: Dawn refuses D3D12 on Intel Gen7 outright and Intel never shipped a Windows Vulkan driver for them, so Auto is meant to land on Direct3D 11. That fallback is built but nobody has confirmed it working on such a machine yet, so a report with a log from one is genuinely useful. A DXGI_ERROR_DEVICE_HUNG in the log on one of these machines is Intel's last Haswell driver (20.19.15.x, from 2020) timing out the GPU mid-match — Pokémon Stadium transformations are a reliable trigger — and there is no further API to fall back to on that hardware.

The graphics backend can be pinned from the launcher's Graphics tab (Direct3D 11) or with MELEE_BACKEND=d3d11, which is useful when reporting so the log shows the same path every run.

Sources: #67, #64.

The game freezes for a second the first time a character uses a move or a stage loads. Audio keeps playing.

That is shader (pipeline) compilation. The GameCube has no programmable shaders; every new combination of TEV stages, blend modes and lighting the game asks for is turned into a GPU pipeline the first time it is seen, and your driver compiles it synchronously. The result is cached on disk (dawn_cache.db in the settings folder), so each hitch happens once per machine. Releases ship a pre-seeded cache (initial_pipeline_cache.db) covering common cases; the rest fill in as you play. Deleting dawn_cache.db or changing GPU/driver/backend starts over.

Source: #46.

Fullscreen crashes at launch, windowed is fine.

Two different bugs looked like this. Overlays that hook the swapchain (NVIDIA ShadowPlay, Discord, Steam) briefly hand the game a 0x0 surface when fullscreen toggles; fixed in v0.1.6. Fullscreen driver buffers fragmenting the low 4 GB of address space before the GameCube memory was mapped; also fixed in v0.1.6. If you still see it on a current build, attach the log.

Sources: #52, #43.

Android: what phones work, and why does it close immediately on mine?

Requirements: Android 8.0+, 64-bit ARM, a Vulkan-capable GPU. Devices stuck on OpenGL ES (many Android 9 phones and cheap tablets) are not supported and there is no plan to add a GLES renderer. Inverted red/blue colours on Adreno GPUs were fixed in v0.1.6. Some Snapdragon 7 Gen 3 / 8 Gen 2 devices (Honor 200, OnePlus Ace 3, AYN Odin 2) still close at boot on v0.1.7 and this is being investigated; a logcat capture filtered on the tag Aurora is what helps most.

Sources: #66, #20, #23, #59.

I built it myself and the textures cycle through garbage / the log says OpenGLES.

You compiled the Linux build and ran it under WSL. WSL has no real GPU driver for this, so Dawn falls back to a software OpenGL ES path that renders wrong and slowly. On Windows, build the Windows package (tools/package_windows.sh cross-compiles from Linux with MinGW) or download the release zip.

Source: #69.

Can I remap buttons, turn off tap jump, change what the C-stick does?

Button, stick and trigger remapping per controller is built in (Controls tab, launcher or F1). Tap jump, C-stick macros and input buffers are game-engine behaviour from vanilla 1.02, not settings; toggles for them are tracked as feature requests and would have to be disabled for online play later.

Sources: README, #3.

It runs below 60 FPS on my Switch / Raspberry Pi / 4-core ARM board.

v0.1.6 removed thread pinning that had squeezed the game, FIFO and render threads onto two cores of quad-core ARM devices. If a current build still drops frames, lower internal resolution to 1x and turn off MSAA and post-processing in the Graphics tab. MELEE_FPS=1 prints the frame rate to the log once a second.

Source: #47.

Is there online play?

Not yet. Rollback netcode with serverless peer discovery is Phase 4 of the roadmap. Until then, local multiplayer with up to four controllers works.

macOS: "Melee.app is damaged" or it will not open.

The app is ad-hoc signed, not notarised. Right-click > Open the first time, or run xattr -d com.apple.quarantine Melee.app. Apple Silicon is tested; the Intel build is produced by CI but nobody has run it on Intel hardware yet.

Source: README.

Where is the log file?
OSLog
Windowsmelee-pc.log in the folder with melee.exe (always written). RUN-AND-LOG.bat adds melee-pc-env.log and melee-frames.log.
Linux / macOSConsole output. To keep it: MELEE_LOG_FILE=melee-pc.log ./Melee-x86_64.AppImage disc.iso.
Androidadb logcat -s Aurora.

The log records CPU, GPU, driver, backend, and on a crash the faulting address and module. It contains your username in file paths and nothing else personal.

Known issues

All platforms

Windows

Linux

macOS

Android / iOS

Community

Credits

AI coding tools were used extensively to write and debug the PC layer of this port; every change is reviewed, built and played by a person before it is released, and the game code itself is the decompilation team's work.

Super Smash Bros. Melee is a trademark of Nintendo / HAL Laboratory. This project is not affiliated with or endorsed by them.