Skip to content

SF4Enhanced 0.5.5 — source is public, security upgrades

Choose a tag to compare

@fabeloper fabeloper released this 23 Sep 14:39
· 5 commits to main since this release

Rollback netcode for Ultra Street Fighter IV.

Play USF4 online with rollback netcode, lobby codes and spectating. No port forwarding, and nothing to configure on your router.

Install

  1. Download sf4e-0.5.5-win32.zip below
  2. Unzip anywhere
  3. Run SF4Enhanced.exe

Requires Ultra Street Fighter IV on Steam. The game is not included.
If SmartScreen warns you: More info → Run anyway (the build is unsigned).

Both players need the same version. 0.5.5 does not connect to older builds, and the servers have been updated; if the lobby says UPDATE AVAILABLE, grab this one.

⚠️ Read this or you will desync

In the game's graphics options, set "frames per second" / "imágenes por segundo" to Variable, and make sure both players use the same setting.


The source is now public

The full source code is at github.com/fabeloper/sf4e. Before opening it we had the whole project audited, and this release is mostly what came out of that. It is built on sf4e by Anthony Danducci, whose reverse-engineered engine, save states and GGPO integration are the core of everything here.

Security upgrades

  • A lobby code is now the key to the lobby. Every code comes with a secret the server checks on join, so nobody can walk into a lobby by guessing which port it lives on.
  • The match relay is tied to the two players. Each relay seat belongs to a specific player's address for the duration of the match instead of the first two senders.
  • The game checks what your opponent sends. Character, costume, colour, ultra and stage choices are range-checked on the server and again in the game before they are used. Handicap is forced to neutral.
  • Abuse limits on the servers. Requests are rate-limited per address, one address can hold two lobbies, lobbies expire, and connection counts are capped.
  • Tokens and replies. The peer-to-peer handshake token comes from a proper random source, the game only accepts matchmaker replies from the server it asked, and a handshake reply only counts if it comes from the address your opponent offered.

Privacy, said plainly

  • The CONNECTION option on the lobby's home screen now says what it does: PEER TO PEER (the default) gives the lowest ping but your opponent's game learns your IP address, and the game asks your router over UPnP to open the match port for the duration. SERVER RELAY keeps your address private.
  • INSTALL.md in the zip has a new section listing exactly what the mod sends, what it stores on your PC, and what a crash dump contains. Nothing is uploaded automatically.

Everything else

  • SECURITY.md in the repository describes how to report a problem and how the pieces trust each other. SERVER.md is a complete guide to running your own lobby server.
  • The zip now ships the license text of every bundled library in a licenses folder.
  • Settings (input delay, server, connection) are stored in %APPDATA%\sf4e\settings.txt. They reset once with this update.
  • Version numbers shown in Windows file properties now match the build.

Bugs and questions: github.com/fabeloper/sf4e/issues