Repository navigation
Linux
Note
Coming soon (PR #90): this page describes a change that is not in the Nightly build yet.
Ember runs under Proton inside the game's own Steam prefix. Steam then counts Ember sessions as USFIV playtime, and the Steam overlay and controller support work as for the game. You need an owned Steam copy of Ultra Street Fighter IV and nothing else.
On a Steam Deck, use the Steam Deck guide instead: its installer does the steps below for you and adds a library tile. This guide is for other Linux systems, where those steps are done by hand.
Install Ultra Street Fighter IV from Steam and start it once with Proton (Properties → Compatibility → force Proton Experimental, or whatever Proton you normally use). This creates the prefix at steamapps/compatdata/45760/pfx. Quit the game.
-
Download the latest
sf4-ember-netplay-<version>.zipfrom the releases page. Not the-setup.exe, not the source code. -
Find the prefix. Usually
~/.steam/steam/steamapps/compatdata/45760/pfx, or the same path under the library the game is installed in. If you cannot find it, open Protontricks, pick USFIV, choose "Select the default wineprefix", then "Browse files". -
Inside
pfx/drive_c, make a folder namedEmber(no spaces) and extract the zip into it. The zip holds one top-level folder; move its contents up soLauncher.exesits directly inEmber. -
Check the download if you like:
sha256sum -c sf4-ember-netplay-<version>.zip.sha256.
Keep Ember inside drive_c. On SteamOS, Wine reports the home folder as a link, and Ember's updater refuses to replace files in a folder reached through one; other systems may do the same.
-
Steam → Add a Non-Steam Game → Browse →
.../compatdata/45760/pfx/drive_c/Ember/Launcher.exe. -
Right-click the new entry → Properties. Rename it, then set Launch options to the compatdata folder of the game (everything before
/pfx):STEAM_COMPAT_DATA_PATH="/path/to/steamapps/compatdata/45760" %command%Other wrappers go between the path and
%command%, for examplemangohudorgame-performance. -
Compatibility → force the same Proton as the game. Without this the entry does nothing.
Press Play. Ember starts, finds the game in the same prefix and launches it. If the recovery screen asks for the game folder, choose Z: → your Steam library → steamapps/common/Super Street Fighter IV - Arcade Edition. Ember remembers it.
Alternative without a Steam entry: protontricks-launch --appid 45760 /path/to/pfx/drive_c/Ember/Launcher.exe. Playtime is not tracked that way.
No separate entry at all: set the game's own launch options so Play on Ultra Street Fighter IV runs Ember, which then starts the game. Steam's artwork, playtime, overlay and controller settings for the game all apply. Properties → Launch options of USFIV:
bash -c 'exec "${@/*SSFIV.exe//path/to/compatdata/45760/pfx/drive_c/Ember/Launcher.exe}"' -- %command%
Clear the launch options to get the plain game back.
Open Ember ID and create a passphrase. Wine and Proton cannot use Windows' key protection, so the passphrase protects your key instead. Ember asks for it once each time the game starts. Rooms and everything else work after that.
Ember's in-app updater needs a release that unpacks updates itself. 1.3.0 and older use Windows' tar.exe, which Proton does not have, so their update downloads and then fails at "Could not extract update package". Update those by extracting the new zip over the Ember folder with the game closed. All players in a room need the same release, so update when Windows players do.
-
preflight.cmdpasses without checking anything: Wine'spowershell.exeis a stub. To verify the files, runsed 's#\\#/#g; s/\r$//' MANIFEST.txt | sha256sum -c --quietinside theEmberfolder. -
The Visual C++ runtime check accepts Wine's own runtime. Do not install the Microsoft redistributable with winetricks; it is not needed.
-
Logs live in
pfx/drive_c/users/steamuser/AppData/Roaming/sf4e/logs. See saving logs. -
Updater log, when an in-app update was attempted:
pfx/drive_c/users/steamuser/Temp/sf4-netplay-update.log.
See troubleshooting for everything that is not Linux-specific.
The Proton-in-the-game-prefix method comes from Discord user @2000tears, who worked it out and wrote it up for the community. Thanks also to a second Discord tester who prefers to stay hidden, like Gouken on the vanilla SF4 select screen: everyone knows they are there, nobody gets to see them.
Generated from the docs at cf0c5c83c; edit the docs, not this page.
Coming soon, from open pull requests:
- #51 Allow reading and sending chat directly in the room
- #76 Endless lobby music at the main menu, with a setting
- #90 Add a Linux guide for installing Ember by hand under Proton
- #100 Let spectators toggle the lobby with Start
- #102 Make table actions controller accessible and consolidate room settings
- #104 Expire chat notifications after four seconds and retain unread badges
- #105 Add LAN room discovery and direct local connections
- #108 Install Ember on a Steam Deck with a double-click
- #111 Let older copies take new package files, setup upgrade an Ember folder, and switch channel in game
- #116 Keep Ember's menu confirm on A and B for every XInput pad
- #133 Add the Ember ID passphrase and keyboard tips to the Steam Deck guide
- #139 Show the watched game in the room column, with a toggle on the board
Getting started
Playing online
Training
Frame Data
Integrations
Troubleshooting
More guides