Skip to content

Releases: 999sian/melee-pc

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 00:08

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 @rpath libraries, 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 @rpath dependencies
    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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

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

Read more

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 07:01

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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

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

Upstream Projects & Foundations

  • ...
Read more

v0.4.0-beta

v0.4.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 23:54
c37c1f4

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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

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

Upstream Projects & Foundations

Read more

v0.3.1-beta

v0.3.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 00:31

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
    reusable LruCache texture 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_SortNamesByKOs indexing beyond its buffer and corrupting adjacent
    menu descriptors (#123).

  • Replaced indexed stack reads in ftCo_DeadUpStar_Anim with direct ftCommonData
    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-map in 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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

Previous 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...
Read more

v0.3.0-beta

v0.3.0-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 21:02

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
    reusable LruCache texture 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_SortNamesByKOs indexing beyond its buffer and corrupting adjacent
    menu descriptors (#123).

  • Replaced indexed stack reads in ftCo_DeadUpStar_Anim with direct ftCommonData
    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-map in 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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

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

Upstream Projects & Foundations

-...

Read more

v0.2.2-beta

v0.2.2-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Sep 08:50

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_DIR to record offline or online VS matches as .slp replays
    (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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

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

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

v0.2.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 19:05

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 char as
    unsigned
    , unlike the original game; the new-unlock notice drew its random
    number 6 frames early there. Everything is now compiled with signed char.
  • 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=1 restores the old wait-for-compile
    behaviour, and MELEE_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,
    .rvz or 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

Previous 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
    ...
Read more

v0.2-beta

v0.2-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 16:35

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 forged RULES that
    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 a struct in_addr whose 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 at resources/ for the launcher's own assets, which also moved
    the lookup for initial_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 as bool, 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
    snprintf length accumulated past its buffer on the desync path, a SHA-1
    length over-reading a stack buffer, and an unchecked XXH3_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 RULES packet, so a forged
    16-byte RelAck can no longer end a session permanently, and REL_DELAY is
    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=1 restores the old wait-for-compile
    behaviour, and MELEE_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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

Previous 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"...
Read more

v0.1.10.1-beta

v0.1.10.1-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 18:08

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.key whose 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 in resources/.

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=1 restores 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

Previous 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, winsock accept clash) 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...
Read more

v0.1.10-beta

v0.1.10-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Sep 16:24

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=1 restores 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 run RUN-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. A DXGI_ERROR_DEVICE_HUNG mid-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 the melee-pc preference 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 .gci files and are unchanged by this
    release.
  • Gamepad bindings live in aurora's per-device .controller files next to
    launcher.cfg.
  • The pipeline cache (pipeline_cache.db in 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, .ciso or .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.iso

Previous 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 macOS Support (Apple Silicon & Intel) (#65):
    • Native macOS .app bundle packages (Melee-macOS-arm64.zip and Melee-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.
  • 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 now floor(floor(floor(d/3 + 3) * e) * c)
    capped at 20, with the 1.5x electric multiplier on th...
Read more