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.
Only USA revision 2 (NTSC-U 1.02, GALE01) is supported.
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.
|
| Windows x86-64 | Melee-Windows-x86_64.zip
| Extract and run melee.exe. Keep the DLLs and resources/ beside it.
|
| Android arm64 | Melee-Android-arm64.apk
| Release build, signed. Allow install from unknown sources. |
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.isoChanges since v0.1.1-beta
- Fixed disc pointers being used without resolution in the HSD object
loaders.HSD_IDGetDatais keyed on the resolved host pointer, but jobj,
pobj and robj looked up with the raw 32-bit disc slot, so those lookups
always missed and left child joints and envelope references null. - Rewrote the AObj animation callback dispatch. It previously guessed at
four signatures, reading a float out of parameters that hold an integer
or a pointer and dropping arguments entirely in other cases; it now
dispatches on the real calling convention. - Kept MEM1 below 4GB on Windows. The allocator fell back to letting the OS
place it anywhere, which on 64-bit Windows means above 4GB, and every
32-bit disc pointer slot into it then truncates. MELEE_BACKENDpins the graphics backend (vulkan,d3d12,null, ...)
and the log now records which one a run selected. Thanks to
@alexscott2718-gif.- The log is timestamped, records a marker for any frame over 50ms, and
survives a crash: output is flushed per line, Windows writes
melee-pc.logbeside the exe, and a fault logs a backtrace naming the
module it came from. - The Windows zip ships a pipeline cache seed, so shaders are not all
compiled the first time each one is used.
Changes in v0.1.1-beta
- Fixed a crash in the attract demo. Kirby's and Jigglypuff's multi-jump
attributes are read straight off the disc, but were decoded in the wrong
byte order, so the second jump looked up motion state0x55010000instead
of341and faulted. - Fixed the remaining places where a pointer was stashed in a 32-bit field
and truncated on 64-bit builds: the HSD id table and object heap, the
sislib text cursor stack, the THP video decoder, and pointer slots in the
Hyrule Castle, Brinstar, Big Blue and Fountain of Dreams stage state. - Fixed the Windows build failing to start on a real Windows PC. The zip did
not ship the Visual C++ runtime that Dawn, dxcompiler, SDL3 and nod import,
so Windows refused to load it with "VCRUNTIME140.dll was not found". Wine
and Proton supply that runtime themselves, which is why it only broke on
actual Windows. Those DLLs now ship in the zip, and packaging fails if any
import is left unresolved. - The Android APK is now a signed release build rather than a debug build,
and is namedMelee-Android-arm64.apk. - Fixed the Android CI build, which depended on a toolchain path that only
existed on one machine.
What works
Boot and opening movie, memory card create/load, title and attract demos, main
menu, VS Mode with character and stage select, 1-P Classic and Adventure to
completion with results saved, Training, Stadium (Target Test, Home-Run
Contest, 10-Man Melee), Trophy gallery, Event Match list, music and sound.
What does not
Online play with rollback netcode is not implemented. All-Star is
unreachable until the roster is unlocked. Widescreen camera and HUD are
incomplete. There is no macOS build: the game code depends on GCC's
scalar_storage_order, which Clang does not implement.
Controls
Arrows = 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. F1 opens the settings overlay.