Repository navigation
Releases: 999sian/melee-pc
Release list
v0.4.2
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Fixed the Adventure mode Mushroom Kingdom crash when blocks are hit (#144).
- Fixed macOS bundles missing transitive
@rpathlibraries, including
libbrotlicommon.1.dylib, which could prevent the app from launching (#145). - Fixed coloured bars at the top left of widescreen fights when off-screen
fighter magnifiers are drawn. Verified on Linux/Vulkan in Kongo Jungle and
Onett; Windows/Direct3D hardware verification is still pending.
Fixes
- Replaced GameCube byte-offset overlays with native field access for
Mushroom Kingdom block objects, Multi-Man Melee record initialization, and
Super Scope charge resets. This avoids invalid pointers, missing records,
and writes into unrelated CPU state on 64-bit hosts (#144). - macOS packaging now resolves and bundles transitive
@rpathdependencies
and rejects bundles with missing libraries before publishing (#145). - Magnifier capture cameras now copy and clear their whole temporary viewport,
preserving fighter proportions and preventing leftover depth from hiding
parts of the stage. Added a regression test for original, widescreen and
ultrawide framebuffer aspects.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Rendering artifacts and Kirby grab/throw behaviour remain under investigation (#130).
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should use the same release. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, shaders compile inline to avoid driver failures seen when
pipelines are created on a second thread, so expect first-use stutter. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- Classic mode startup crashes remain under investigation (#128).
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Battle rendering is reported blank unless paused on Pixel 9 Pro (#129).
This release does not yet have a verified fix for that device. - Startup or Play-button crashes remain reported on Retroid Pocket 6 and
AYN Odin 2 (#136, #137); device logs and hardware verification are outstanding. - Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @forkyfoo — Mushroom Kingdom, Multi-Man Melee and Super Scope 64-bit fixes (#144), and macOS library bundling fix (#145).
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @alexscott2718-gif — Graphics backend selection, command line overrides, and engine logging.
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation foundations.
- @Joyastick — Real two-machine netplay testing and fixes (#91, #92, #93).
Community Testers & Issue Reporters
Special thanks to our community members whose detailed bug reports and reproduction steps directly helped diagnose and resolve issues in these releases:
v0.4.1
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Fixed empty off-screen fighter circles on Android and macOS. A byte-order
mismatch in the image-copy helper is corrected by building it with the same
GCC toolchain as the game code. Verified with Link and Mario on a Samsung
tablet; Mac and Pixel hardware confirmation is still pending. - Expanded the bundled Android shader coverage and prepare recorded shaders
before gameplay to reduce missing effects and first-use compilation. - Android compatibility, fullscreen and touch-input improvements since
v0.4.0-beta.
Fixes
- Corrected magnifier copy dimensions and preserved big-endian image
descriptors across widescreen copies, also used by Pokémon Stadium. - Added regression checks for image-copy byte order and compiler selection.
- Fixed the Android touch test's SDL include paths in CI.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Rendering artifacts and Kirby grab/throw behaviour remain under investigation (#130).
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should use the same release. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, shaders compile inline to avoid driver failures seen when
pipelines are created on a second thread, so expect first-use stutter. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- Classic mode startup crashes remain under investigation (#128).
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Battle rendering is reported blank unless paused on Pixel 9 Pro (#129).
This release does not yet have a verified fix for that device. - Startup or Play-button crashes remain reported on Retroid Pocket 6 and
AYN Odin 2 (#136, #137); device logs and hardware verification are outstanding. - Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation foundations.
- @Joyastick — Real two-machine netplay testing and fixes (#91, #92, #93).
Community Testers & Issue Reporters
Special thanks to our community members whose detailed bug reports and reproduction steps directly helped diagnose and resolve issues in these releases:
- @jennywakeman-xj9 (#30, #31, #32, #33, #34, #35, #36, #38, #39, #51, #53, #54, #55, #56, #57, #58)
- @omega-tuna (#48)
- @VTuberSkye (#45)
- @4zy1 (#49, #50)
- @stevenstallone (#52)
- @mmedeiro1-a11y (#43)
- @Keithmccloud (#59)
- @Smashhacker (#41, #60)
- @whirlwindpedro (#40)
- @zamiba (#42)
- @nitrostemp (#37)
Upstream Projects & Foundations
- ...
v0.4.0-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Launcher improvements: version display, portable installs, keyboard remapping
and settings available before starting the game. - Release checks now include the browser build, both macOS architectures and
renderer FIFO, texture-cache, worker and recording tests.
Fixes
- Fixed uninitialized credits text pointers on 64-bit platforms by clearing the
entire allocated staff table (#140). - Fixed browser linking after the launcher changes and restored browser default
keyboard bindings and the persistent save-directory path. - Fixed missing browser rendering on GPUs using the two-pass alpha fallback:
the alpha prepass now remains paired with the asynchronously compiled colour pass. - Added a credits boot smoke test and regression checks for the credits table,
browser platform stubs and alpha-pipeline scheduling.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Rendering artifacts and Kirby grab/throw behaviour remain under investigation (#130).
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should use the same release. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, shaders compile inline to avoid driver failures seen when
pipelines are created on a second thread, so expect first-use stutter. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- Classic mode startup crashes remain under investigation (#128).
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Battle rendering is reported blank unless paused on Pixel 9 Pro (#129).
This release does not yet have a verified fix for that device. - Startup or Play-button crashes remain reported on Retroid Pocket 6 and
AYN Odin 2 (#136, #137); device logs and hardware verification are outstanding. - Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation foundations.
- @Joyastick — Real two-machine netplay testing and fixes (#91, #92, #93).
Community Testers & Issue Reporters
Special thanks to our community members whose detailed bug reports and reproduction steps directly helped diagnose and resolve issues in these releases:
- @jennywakeman-xj9 (#30, #31, #32, #33, #34, #35, #36, #38, #39, #51, #53, #54, #55, #56, #57, #58)
- @omega-tuna (#48)
- @VTuberSkye (#45)
- @4zy1 (#49, #50)
- @stevenstallone (#52)
- @mmedeiro1-a11y (#43)
- @Keithmccloud (#59)
- @Smashhacker (#41, #60)
- @whirlwindpedro (#40)
- @zamiba (#42)
- @nitrostemp (#37)
Upstream Projects & Foundations
- **[doldecomp/melee](https://github.com/d...
v0.3.1-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Upstream doldecomp/melee sync: 57 upstream commits ported up to
79b13a324,
incorporating archive data annotations, typed item and stage attributes,
and structured control flow improvements. - Renderer & dependency updates: Vendored Aurora updated to
40cf48fce, adding
reusableLruCachetexture management, compiled pipeline prepasses, dual-source
blending, and an updated gamepad/input layer. - SDL3 tracking: Pinned to latest development main (
a419debd2). - Custom SDL on every platform: Desktop packages bundle the patched SDL
shared library; Android, iOS and browser builds link it into the application.
Fixes
-
Restored mouse and keyboard input in the launcher and F1 settings menu with
Aurora's updated input router. -
Fixed garbled, overlapping and off-centre original menu text caused by incorrect
indexing into the font spacing table. -
Restored libusb support in the Windows SDL build for GameCube-compatible
adapters, including Lossless Adapter console mode. Builds now reject a
missing USB backend instead of silently shipping without adapter support. -
Fixed name-menu animation selection, VS Records popup timing, results-screen
capture and distance tracking by removing assumptions that separate static
objects are adjacent in memory. -
Fixed
mnDiagram_SortNamesByKOsindexing beyond its buffer and corrupting adjacent
menu descriptors (#123). -
Replaced indexed stack reads in
ftCo_DeadUpStar_Animwith directftCommonData
member accesses (#122). -
Fixed Pikachu Thunder segfault caused by host 64-bit struct padding leaving stale
Thunder GObj pointers (#121). -
Enforced deterministic build paths with
-ffile-prefix-mapin CMake and
-fmacro-prefix-map(#114). -
Fixed Pokemon Stadium stage transformation table indexing and guarded async archive
parsing loop (#113). -
Resolved Apple Silicon macOS archive crashes caused by variadic 64-bit zero sentinel
promotions (#112). -
Corrected Windows updater browser redirects from showing false download completions (#108).
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should update to v0.3.0. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, Qualcomm Adreno GPUs still compile shaders inline, because the
Adreno 750 driver fails when pipelines are created on a second thread, so
expect some first-use stutter there. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @alexscott2718-gif — Graphics backend selection, command line overrides, and engine logging.
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation fou...
v0.3.0-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Upstream doldecomp/melee sync: 57 upstream commits ported up to
79b13a324,
incorporating archive data annotations, typed item and stage attributes,
and structured control flow improvements. - Renderer & dependency updates: Vendored Aurora updated to
40cf48fce, adding
reusableLruCachetexture management, compiled pipeline prepasses, dual-source
blending, and an updated gamepad/input layer. - SDL3 tracking: Pinned to latest development main (
a419debd2).
Fixes
-
Fixed garbled, overlapping and off-centre original menu text caused by incorrect
indexing into the font spacing table. -
Fixed
mnDiagram_SortNamesByKOsindexing beyond its buffer and corrupting adjacent
menu descriptors (#123). -
Replaced indexed stack reads in
ftCo_DeadUpStar_Animwith directftCommonData
member accesses (#122). -
Fixed Pikachu Thunder segfault caused by host 64-bit struct padding leaving stale
Thunder GObj pointers (#121). -
Enforced deterministic build paths with
-ffile-prefix-mapin CMake and
-fmacro-prefix-map(#114). -
Fixed Pokemon Stadium stage transformation table indexing and guarded async archive
parsing loop (#113). -
Resolved Apple Silicon macOS archive crashes caused by variadic 64-bit zero sentinel
promotions (#112). -
Corrected Windows updater browser redirects from showing false download completions (#108).
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should update to v0.3.0. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, Qualcomm Adreno GPUs still compile shaders inline, because the
Adreno 750 driver fails when pipelines are created on a second thread, so
expect some first-use stutter there. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @alexscott2718-gif — Graphics backend selection, command line overrides, and engine logging.
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation foundations.
- @Joyastick — Real two-machine netplay testing and fixes (#91, #92, #93).
Community Testers & Issue Reporters
Special thanks to our community members whose detailed bug reports and reproduction steps directly helped diagnose and resolve issues in these releases:
- @jennywakeman-xj9 (#30, #31, #32, #33, #34, #35, #36, #38, #39, #51, #53, #54, #55, #56, #57, #58)
- @omega-tuna (#48)
- @VTuberSkye (#45)
- @4zy1 (#49, #50)
- @stevenstallone (#52)
- @mmedeiro1-a11y (#43)
- @Keithmccloud (#59)
- @Smashhacker (#41, #60)
- @whirlwindpedro (#40)
- @zamiba (#42)
- @nitrostemp (#37)
Upstream Projects & Foundations
-...
v0.2.2-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Direct Connect accepts a friend's eight-character code in the game,
offers clipboard and recent opponents, and lets either player call. - Set
MELEE_SLP_DIRto record offline or online VS matches as.slpreplays
(off by default).
Fixes
- Fixed Items: Off online handshakes, sped up matchmaking, and corrected LAN
discovery on non-release builds and Windows VPN setups (thanks @Joyastick,
#91–#93). - Improved rollback, desync handling and netplay sound effects.
- Fixed the Android startup library mismatch. Android now warms known graphics
pipelines while Direct Connect waits; occasional frame stalls remain.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs in general and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 9), and the LAN lobby
only pairs identical builds, so both players should update to v0.2.2. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, Qualcomm Adreno GPUs still compile shaders inline, because the
Adreno 750 driver fails when pipelines are created on a second thread, so
expect some first-use stutter there. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
See earlier releases for prior changelogs.
What works
Every game mode runs. The per-feature list, including what is only partly
done, is the status table in
README.md; it is the single
source of truth and these notes defer to it.
Controls
Arrows or WASD = stick, IJKL = C-stick, X = A, Z = B, C = X, V = Y, Q/E = L/R,
Tab = Z, Enter = Start, TFGH = D-pad. Gamepads work through SDL and can be
remapped; an official GameCube adapter is read directly. F1 opens the
settings overlay.
Contributors
Project Contributors
- @999sian — Project Lead, Phase 1 features, multi-core optimizations, file cache, Android & Windows porting, and stability fixes.
- @theofficialgman — Linux aarch64 (ARM64) support, Nod aarch64 prebuilts, 4-core & ARM scheduling optimizations (#44, #47).
- @r-burns — Melee decompilation and 64-bit portability foundations.
- @MarkMcCaskey — Decompilation and core engine maintenance.
- @ribbanya (Robin Avery) — Decompilation and memory card subsystem.
- @PsiLupan (Will Carter) — Decompilation and subsystem typing.
- @itsgrimetime (Mike Grimes) — Decompilation foundations.
- @Joyastick — Real two-machine netplay testing and fixes (#91, #92, #93).
Community Testers & Issue Reporters
Special thanks to our community members whose detailed bug reports and reproduction steps directly helped diagnose and resolve issues in these releases:
- @jennywakeman-xj9 (#30, #31, #32, #33, #34, #35, #36, #38, #39, #51, #53, #54, #55, #56, #57, #58)
- @omega-tuna (#48)
- @VTuberSkye (#45)
- @4zy1 (#49, #50)
- @stevenstallone (#52)
- @mmedeiro1-a11y (#43)
- @Keithmccloud (#59)
- @Smashhacker (#41, #60)
- @whirlwindpedro (#40)
- @zamiba (#42)
- @nitrostemp (#37)
Upstream Projects & Foundations
- doldecomp/melee — The Super Smash Bros. Melee decompilation team and contributors.
- encounter/aurora — Luke Street (@encounter) and contributors for the GameCube hardware emulation layer and WebGPU backend.
- TwilitRealm/dusklight — Architectural inspiration for GameCube PC ports.
- SDL3, RmlUi, stb_vorbis, and Dawn teams for the runtime engine libraries.
v0.2.1-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Play in your browser. https://999sian.github.io/melee-pc/play/ runs the
same game and renderer as the native builds, at 60 fps, in Chrome or Edge
with WebGPU. Your own disc image is read in the page and never uploaded. The
platform was contributed by @turtlesoupy (#85). The first visit reloads the
page once to enable the threads the engine needs. - Rollback netplay recovers from hitches instead of stalling. A side whose
game froze now catches up in whole frames: after a 250 ms freeze the two
sides are back within one frame instead of drifting for seconds, and the
stalls per freeze fell from about 3.5 to about 1.1. Packets are received,
acknowledged and timed on their own thread, so a freeze on one side no
longer shows up as a ping spike on both (339 ms -> 27 ms in the test). The
fight input delay never drops below 2 frames, which cut the waits on a
~60 ms link from 7,996 to 1,365 per fight. - Android: shaders no longer compile in the middle of a frame. On most
GPUs they are built on a background thread, and only pipelines this device
has already built are warmed at startup. On a Pixel 8 Pro the PC's waits on
the phone in a LAN match went from 300-480 to 1. The game asks for a 60 Hz
display, supports Android's game modes, and no longer restarts when the font
size changes. - Lighter on weak machines. The frame and disc-wait loops sleep instead of
spinning (a core at 94 % after a hitch now sits at 8 %), the per-frame
texture sweep went from 1.8 ms to 0.1 ms on a slow core, and the reverb only
runs while something feeds it. That alone took the audio thread from 7.9 %
to 0.6 % of a slow core. Settings gain a reverb toggle and a one-press
Performance preset (native resolution, no MSAA or anisotropic filtering,
reverb off).
Fixes
- Audio and video froze every ~2 s with an Xbox controller on the Xbox
Wireless Adapter (#90). While no GameCube adapter was plugged in, the game
re-scanned every HID device once a second under the joystick lock, which
takes ~800 ms per scan on Windows with that controller attached. It now looks
again only when a USB/HID device is added or removed. - The launcher's shader wait never ended on Android. Play waited for
pipelines that no thread would ever build; it now waits only for work that
is actually queued. - A disc read in progress dropped a whole netplay session into lockstep,
logged as out of memory. A refused rollback snapshot now costs one lockstep
frame. - LAN lobby: a match is refused when the two peers are on different
screens (a desync at frame 141), peers are kept across a lobby restart, a
failed lobby can be retried, and the host sends the rules as soon as it opens
the session. - ARM builds (Android, iOS, Windows ARM64, Linux aarch64) treated
charas
unsigned, unlike the original game; the new-unlock notice drew its random
number 6 frames early there. Everything is now compiled with signedchar. - Rendering on PowerVR and Adreno: the shader bit-extract form is kept off
PowerVR only, since the Adreno 750 driver cannot link the shift form.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated (protocol 8, since v0.2), and the LAN lobby
only pairs identical builds, so both players should update to v0.2.1. A
connect code is 8 characters after the#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count.
On Android, Qualcomm Adreno GPUs still compile shaders inline, because the
Adreno 750 driver fails when pipelines are created on a second thread, so
expect some first-use stutter there. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Browser
- Tested in Chrome only; Firefox and Safari WebGPU support is incomplete.
- Only a raw, uncompressed USA revision 2 (GALE01) image loads: no
.ciso,
.rvzor PAL. - No online play, and no gamepad remapping (the default mapping is used; the
keys are listed under the canvas).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. Browser: Chrome or
Edge with WebGPU. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
| Browser | 999sian.github.io/melee-pc/play | Chrome or Edge with WebGPU. Raw .iso/.gcm only; no online play. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
Changes in v0.2-beta
Highlights
- Online play is authenticated end to end. Every datagram now carries a
keyed MAC over its header and body (protocol 8), so someone who can reach
...
v0.2-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Online play is authenticated end to end. Every datagram now carries a
keyed MAC over its header and body (protocol 8), so someone who can reach
your address can no longer inject inputs, acknowledgements, delay changes or
a disconnect into a session. The same review closed a forgedRULESthat
could lock out the real host, made LAN auto-join require a peer that has
actually been seen in the lobby, stopped DHT matchmaking from dialling
private, broadcast and multicast addresses, and pinned ranked history to its
genesis rating. - Connect codes are longer, and everyone's code has changed. The suffix
after the#is now 8 characters instead of 4, carrying 40 bits of your key.
Read the new one off the Online Profile screen and send that. Peers must be
on the same build: a v0.2 client and a v0.1.10 client cannot play each other. - Shader stutter is largely gone on a fresh install. The bundled pipeline
cache had not been found since v0.1.8 (#79), so every packaged build was
compiling every shader from scratch; and the launcher now spends that
compilation queue while you are already waiting there instead of during your
first matches.
Fixes
- Windows: online matches could never start (#87). The peer address was
rebuilt through astruct in_addrwhose first member is a byte array on
Windows, so only the first octet survived: a peer at 74.244.47.247 was dialled
as 74.0.0.0, the game sat on frame 0 and the session died on the connect
timeout. It was reported as a crash because the window stopped redrawing. - The bundled shader cache was never loaded (#79). v0.1.8 pointed the
resource path atresources/for the launcher's own assets, which also moved
the lookup forinitial_pipeline_cache.db-- and every packaging script still
writes it beside the executable. Since v0.1.8 the 11,905-config seed was found
on no platform, which is what "the shaders take a long time to load" was. - Marth's Dancing Blade and Roy's Double-Edge Dance did not glow (#86). The
colour-animation duration was declared asbool, so every value above 1
became 1 and the overlay was removed on the next frame. A live match asks for
13 frames. - The F1 menu went on acting on input after it was closed (#84). Hiding it
leaves RmlUi's focus inside the hidden page, so Return still reached the
widgets and applied them -- the select sound playing over live gameplay. - Android: the launcher could not be used, and hiding the touch controls was
permanent (#88, #75). The touch overlay is the only touch entry point and
its analog-stick zone covers the lower-left quarter of the screen, so it
swallowed the taps meant for "Choose disc"; it is now inert while the launcher
is up. "Hide Touch Controls" also hid the settings pill that owns the toggle,
so the hide could not be undone; it is a toggle now and the pill stays. - Netplay no longer hangs or wedges. The scene hand-off had no deadline; a
peer could freeze the game for ever by advancing one frame just under the
no-progress bound; and a direct session could run unagreed, each side playing
on its own boot seed. A desync is now reported rather than silently absorbed. - Three memory-safety defects in the netplay layer, found by review: a
snprintflength accumulated past its buffer on the desync path, a SHA-1
length over-reading a stack buffer, and an uncheckedXXH3_createState. - Rollback corrections and pacing: latency stability, per-scene delay,
phase-sync on frame advantage, and a recording that replays without
diverging. - A session id can only be established by a
RULESpacket, so a forged
16-byteRelAckcan no longer end a session permanently, andREL_DELAYis
no longer accepted from the guest with an unbound frame field.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified.
Every datagram is authenticated as of this release (protocol 8), so both peers
must run the same version, and a connect code is now 8 characters after the
#. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect whose shader is still compiling is missing from the
picture for a few frames (previously a freeze, #46). The bundled seed is
queued for compilation on worker threads when the game starts, and the
launcher waits for that queue when you press Play -- press Play again to skip
the wait.MELEE_PIPELINE_SYNC=1restores the old wait-for-compile
behaviour, andMELEE_PIPELINE_JOBS=<n>sets the compile thread count. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
Changes in v0.1.10.1-beta
Highlights
A point release for two bugs reported against v0.1.10-beta, both hit on a
first online visit.
Fixes
- Online Profile said "Identity unavailable. Check your profile files"...
v0.1.10.1-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
A point release for two bugs reported against v0.1.10-beta, both hit on a
first online visit.
Fixes
- Online Profile said "Identity unavailable. Check your profile files", and
Direct Connect then hosted an empty code, so nobody could be dialed. An
identity.keywhose length was not 32 bytes (a 0-byte file left by a crash
or a full disk between the create and the write, or a truncated copy) was
refused forever: every later run failed the same way until the file was
deleted by hand. A file that cannot hold a key is now replaced, and every
failure logs the path and errno. A readable 32-byte key is never touched.
If yours was damaged, your connect code changes: the old key was
unrecoverable either way. - The launcher's Discord icon never loaded (
Failed to open file '<game dir>\discord.png'). Relative assets in the launcher page were looked
up beside the executable instead of inresources/.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect used for the first time may be missing from the
picture for a few frames while its shader compiles (previously a freeze,
#46);MELEE_PIPELINE_SYNC=1restores the old wait-for-compile behaviour. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
Changes in v0.1.10-beta
Highlights
- Internet play over the DHT (prototype): signed Direct, Unranked and
Ranked best-of-three matchmaking, rendezvous through the public Mainline DHT
with no server of ours in the path, plus burst hole punching for cellular
and double-NAT links. Public DHT storage is verified; two-NAT pairing and
live ranked acceptance are still pending. - Direct Connect asks for the code in game: the lobby prompts for your
friend's connect code instead of silently reusing whatever the launcher
field last held. Stick or D-pad left/right picks a slot, up/down cycles the
character, START connects, and a blank code hosts your own code for a friend
to dial. Previously two players who both opened Direct Connect each hosted
their own code and never met. - Rollback snapshots on every supported platform, so Windows and macOS no
longer fall back to lockstep from the first frame.
Fixes
- Ask for the connect code before starting a Direct Connect session, and keep
the "not a connect code" message on screen until the code is edited. - Retry after a failed direct session re-opens code entry instead of dropping
the code and restarting as public matchmaking. Untested: forcing a direct
session to fail needs a second peer, so this path is reviewed but not
exercised by a run. - Handle a graceful peer disconnect and stop the lobby from exhausting memory
while it waits. - Restore unranked and LAN stage picking, and fix the LAN lobby menu exit.
- Stop the idle attract loop from running under the online lobby, suppress SFX
overflow spam, and disconnect cleanly when the window closes. - Announce immediately on the DHT and improve bootstrapping so a search finds
peers without waiting for the next announce window. - Repair the Windows (MinGW
uint32_t, winsockacceptclash) and macOS
x86_64 (symbol-less object in the snapshot sectioner) builds, and point the
python netplay fixtures at the configured build directory in CI.
Changes in v0.1.9-beta
Highlights
This maintenance release improved controller input, LAN session startup and
safe update selection, and included the fixes merged since v0.1.8-beta.
Fixes
- Correct GameCube-range analog scaling and full-strength button-to-stick bindings.
- Publish GameCube adapter input safely between the polling and game threads,
including disconnects and rumble commands. - Keep held adapter and touch buttons suppressed when closing the settings
overlay until those controls are released. - Prevent the updater from freezing when a release has no compatible asset.
- Preserve rollback corrections when snapshot allocation fails, and use lockstep
from the start on platforms without snapshot support. - Keep LAN peers at the agreed start frame while waiting for readiness.
- Restore Windows builds by using SDL for environment-file settings.
- Include the recent Polar Bear Adventure Mode crash fix, Linux GameCube
adapter detection improvements, and bundled controller database. - Include the upstream scene timing, asynchronous disc transfer and deterministic
replay fixes. Netplay remains a prototype; this release does not claim universal
cross-platform determinism.
Changes in v0.1.8-beta
Highlights
- Rollback Netplay & LAN Play Prototype (#72):
- Native in-game Online menu (
VS Mode > ONLINE) featuring LAN Play and Direct IP connect, complete with an interactive Mario Kart: Double Dash-style LAN lobby counter. - Nati...
- Native in-game Online menu (
v0.1.10-beta
Beta, for testing only. Expect crashes and missing features.
You need your own Super Smash Bros. Melee disc image. No game data ships in
these artifacts — the port reads everything, including its font atlases, from
the image you supply at runtime.
USA revision 2 (NTSC-U 1.02, GALE01) is the supported disc. A Europe (PAL,
GALP01) image boots experimentally, running the USA game code on PAL data with
English (UK) text.
Highlights
- Internet play over the DHT (prototype): signed Direct, Unranked and
Ranked best-of-three matchmaking, rendezvous through the public Mainline DHT
with no server of ours in the path, plus burst hole punching for cellular
and double-NAT links. Public DHT storage is verified; two-NAT pairing and
live ranked acceptance are still pending. - Direct Connect asks for the code in game: the lobby now prompts for your
friend's connect code instead of silently reusing whatever the launcher
field last held. Stick or D-pad left/right picks a slot, up/down cycles the
character, START connects, and a blank code hosts your own code for a friend
to dial. Previously two players who both opened Direct Connect each hosted
their own code and never met. - Rollback snapshots on every supported platform, so Windows and macOS no
longer fall back to lockstep from the first frame.
Fixes
- Ask for the connect code before starting a Direct Connect session, and keep
the "not a connect code" message on screen until the code is edited. - Retry after a failed direct session re-opens code entry instead of dropping
the code and restarting as public matchmaking. Untested: forcing a direct
session to fail needs a second peer, so this path is reviewed but not
exercised by a run. - Handle a graceful peer disconnect and stop the lobby from exhausting memory
while it waits. - Restore unranked and LAN stage picking, and fix the LAN lobby menu exit.
- Stop the idle attract loop from running under the online lobby, suppress SFX
overflow spam, and disconnect cleanly when the window closes. - Announce immediately on the DHT and improve bootstrapping so a search finds
peers without waiting for the next announce window.
Known issues
Open reports are tracked on the issue tracker;
the numbers below link there.
All platforms
- Online play is a prototype. LAN Play, Direct Connect, Unranked and Ranked are
implemented and rendezvous through the public DHT, but pairing across two
NATs and live ranked acceptance are unproven, and cross-platform simulation
determinism is not claimed. Ratings are community-computed and unverified. - Widescreen applies to fights (VS, Sudden Death, Training); menus, results and
cutscenes stay at the original aspect. The wide HUD is a separate toggle and
only moves the timer and the 2-4 player HUD groups. - A move, stage or effect used for the first time may be missing from the
picture for a few frames while its shader compiles (previously a freeze,
#46);MELEE_PIPELINE_SYNC=1restores the old wait-for-compile behaviour. - Only Vulkan, Direct3D 12/11 and Metal backends are shipped; OpenGL and
OpenGL ES-only GPUs and drivers do not run the game (#64, #66). - Gamepad buttons, sticks and triggers can be remapped; dash sensitivity,
tap-jump disable and input buffer settings are not available (#3). - Some users cannot get past the launcher; if the launcher shows but the game
never starts, run with the log enabled and attach it (#40).
Windows
- v0.1.6-beta and later can close immediately when starting the game from the
launcher on machines where v0.1.5-beta worked (#62, #63). Attach
melee-pc.log(or runRUN-AND-LOG.bat). - Intel Gen7 iGPUs (HD 4000/4400/4600, Ivy Bridge/Haswell, e.g. i5-4200U) are
refused by D3D12, and the Direct3D 11 path they are meant to fall back to has
not been verified on that hardware. ADXGI_ERROR_DEVICE_HUNGmid-match
there (#67) is the 2020-era Intel driver timing out on the GPU; there is no
further API to fall back to on it. The log names the adapter, backend and
driver version.
Android
- Some devices close the app at launch before the launcher appears, reported
on an Honor 200 (Snapdragon 7 Gen 3) and an AYN Odin 2 (#59, #23). - Android 9 and devices without Vulkan are not supported (#66).
macOS
- The macOS builds are experimental; the Intel one is untested on hardware.
The game's C is compiled with Homebrew GCC (scalar_storage_order), the
C++ with Apple clang.
Config / save compatibility
launcher.cfg(key/value text in themelee-pcpreference directory:
~/.local/share/melee-pc,%APPDATA%\melee-pc, or
~/Library/Application Support/melee-pc) loads across versions: unknown
keys are ignored and missing keys take their defaults.- Memory cards are Dolphin-compatible
.gcifiles and are unchanged by this
release. - Gamepad bindings live in aurora's per-device
.controllerfiles next to
launcher.cfg. - The pipeline cache (
pipeline_cache.dbin the same directory) is rebuilt as
needed; deleting it only costs first-use shader stutter.
Requirements
- Windows 10/11 (x86-64 or ARM64): Direct3D 12 feature level 11_0 or Vulkan
1.1; a Direct3D 11 fallback exists but is unverified.
Linux (x86-64 or aarch64): Vulkan 1.1. macOS: Metal (Apple Silicon tested).
Android: arm64 with Vulkan 1.1. iOS 14+: arm64, Metal. - Keep
resources/(and on Windows the DLLs) beside the executable. - A Melee USA 1.02 (GALE01) disc image (
.iso,.gcm,.cisoor.rvz).
Downloads
| Platform | File | Notes |
|---|---|---|
| Linux x86-64 | Melee-x86_64.AppImage |
Needs a Vulkan driver. chmod +x, then run. |
| Linux x86-64 | melee-linux-x86_64.tar.gz |
Portable directory; run run.sh. |
| Linux aarch64 (ARM64) | Melee-aarch64.AppImage |
For 64-bit ARM Linux (Raspberry Pi 5, Asahi Linux, Orange Pi). |
| Linux aarch64 (ARM64) | melee-linux-aarch64.tar.gz |
Portable directory for 64-bit ARM Linux; run run.sh. |
| Windows x86-64 | Melee-Windows-x86_64.zip |
Extract and run melee.exe. Keep the DLLs and resources/ beside it. |
| Windows ARM64 | Melee-Windows-arm64.zip |
Native 64-bit ARM build for Windows on ARM (Snapdragon X Elite, Surface Pro). |
| Android arm64 | Melee-Android-arm64.apk |
Release build, signed. Allow install from unknown sources. |
| iOS arm64 | Melee-iOS-arm64.ipa |
Sideloadable IPA (AltStore, Sideloadly, TrollStore) with Metal backend. |
| macOS arm64 | Melee-macOS-arm64.zip |
Apple Silicon. Ad-hoc signed: right-click > Open on first launch. |
| macOS x86_64 | Melee-macOS-x86_64.zip |
Intel. Same notes; built but not yet tested on Intel hardware. |
Launch with no arguments to open the launcher and pick a disc, or pass the
image path directly:
./Melee-x86_64.AppImage /path/to/melee.isoPrevious releases
Changes in v0.1.9-beta
Highlights
This maintenance release improved controller input, LAN session startup and
safe update selection, and included the fixes merged since v0.1.8-beta.
Fixes
- Correct GameCube-range analog scaling and full-strength button-to-stick bindings.
- Publish GameCube adapter input safely between the polling and game threads,
including disconnects and rumble commands. - Keep held adapter and touch buttons suppressed when closing the settings
overlay until those controls are released. - Prevent the updater from freezing when a release has no compatible asset.
- Preserve rollback corrections when snapshot allocation fails, and use lockstep
from the start on platforms without snapshot support. - Keep LAN peers at the agreed start frame while waiting for readiness.
- Restore Windows builds by using SDL for environment-file settings.
Changes in v0.1.8-beta
Highlights
- Rollback Netplay & LAN Play Prototype (#72):
- Native in-game Online menu (
VS Mode > ONLINE) featuring LAN Play and Direct IP connect, complete with an interactive Mario Kart: Double Dash-style LAN lobby counter. - Native rollback netplay engine with state snapshotting, deterministic simulation rollbacks, reliable UDP messaging, and live in-game network HUD showing ping, delay, and rollback frame count.
- Cross-platform floating-point determinism (
-ffp-contract=off, unified musl trigonometry) guaranteeing simulation parity across Linux, Windows, and Android.
- Native in-game Online menu (
- Native macOS Support (Apple Silicon & Intel) (#65):
- Native macOS
.appbundle packages (Melee-macOS-arm64.zipandMelee-macOS-x86_64.zip) using the Apple Metal graphics backend via WebGPU/Dawn. - Built with Homebrew GCC big-endian scalar storage order translation and automatic dylib staging.
- Native macOS
- Experimental PAL Disc Support (#65):
- Boot European / PAL disc images (GALP01) using USA game code with automatic string index remapping, PAL kerning tables, and single-byte SIS font decoding.
- Hitlag, SDI and DI are fixed: Every build before this one gave every
hit in the game exactly 3 frames of hitlag regardless of damage, instead of
4-20. Hits had almost no freeze, SDI was effectively impossible (one input at
best, usually none), and because DI is established from the stick at the
moment hitlag ends, the DI window was 3 frames too, so launches landed at
their raw undirected endpoint. That reads in play as "no hitlag, no SDI, and
everybody gets sent way further than usual" — thanks to Syrox for the report
that identified it. Hitlag is nowfloor(floor(floor(d/3 + 3) * e) * c)
capped at 20, with the 1.5x electric multiplier on th...