Case study

3SX: a native Street Fighter III: 3rd Strike port continuing the PS2 decompilation

Builds Street Fighter III: 3rd Strike as native C for Windows, macOS and Linux, continuing the 3s-decomp PS2 decompilation, with SDL3 for video, input and audio and GekkoNet for rollback netplay. README stresses that it is neither a recompilation nor emulation. The port needs the player’s own PS2 game files and works toward arcade-accurate balance, which an optional Statcheck build tests against CPS3 RAM states recorded from Fightcade replays.

Requirements & limits

  • README calls 3SX a native port and a continuation of 3s-decomp, explicitly neither a recompilation nor emulation. At the reviewed commit the game code under src/sf33rd has no remaining INCLUDE_ASM stubs, and src/port supplies SDL3 platform, input and sound layers, including its own ADX decoder. This is a modified port: its goals include fixing balance regressions the PS2 version introduced, and the arcade-balance option is marked work in progress. The only release is a rolling pre-release rebuilt from main, and goals such as stable PC play and the arcade ROM as sole dependency remain on the 1.0 milestone.
  • Play requires a legally obtained PS2 copy of Street Fighter III: 3rd Strike or Street Fighter Anniversary Collection: a startup wizard reads the user’s disc image, or SF33RD.AFS from it is placed in the resources folder, and release builds compare that file with a SHA-256 in resources.c. The arcade-balance option also needs the user’s sfiii3nr1.zip CPS3 ROM set. The tree ships no game archives, but src/bin2obj carries large C data tables from the decompilation.
  • Prebuilt rolling releases cover Windows, macOS, and x86_64 and arm64 Linux. Source builds use CMake 3.24+ with Clang, after MSYS2 MinGW64 packages on Windows, the listed Ubuntu packages or Xcode Command Line Tools on macOS; build-deps.sh fetches and builds SDL3, SDL_net, GekkoNet, libcdio, minizip-ng and TF-PSA-Crypto. CMake and CI also carry a PSP branch built with Docker tooling.
  • Pull-request CI only builds the Windows, macOS, Linux and PSP targets. Arcade accuracy is checked with the optional Statcheck build: tools/fcade-replays, described as a reverse-engineering helper for Fightcade’s replay stream, downloads replays; a custom FBNeo fork records per-frame CPS3 RAM dumps; and Statcheck stops at the first mismatch in health, positions, stun, super-art meter, timer or round phase. The reviewed tree publishes no Statcheck results, and this collection built or ran nothing.
  • The repository carries an agent skill with a Codex interface file. It directs a coding agent to compare local functions with a CPS3 program through a read-only Ghidra MCP server, mark each function’s parity and add CPS3 behaviour behind the arcade-balance flag; the reviewed files do not say how much code was written this way, and no REA use is established. LICENSE is AGPL-3.0. THIRD_PARTY_NOTICES lists GPLv3+ libcdio with zlib, BSD-2-Clause, MIT and Apache-2.0 components, the game and its assets keep their own rights, and README says the project does not condone piracy.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · crowded-street/3sx · Revision bdc2cd3
  2. docs/building.md GitHub · crowded-street/3sx · Revision bdc2cd3
  3. docs/statcheck.md GitHub · crowded-street/3sx · Revision bdc2cd3
  4. docs/config.md GitHub · crowded-street/3sx · Revision bdc2cd3
  5. docs/resources.md GitHub · crowded-street/3sx · Revision bdc2cd3
  6. CMakeLists.txt GitHub · crowded-street/3sx · Revision bdc2cd3
  7. build-deps.sh GitHub · crowded-street/3sx · Revision bdc2cd3
  8. src/port/resources.c GitHub · crowded-street/3sx · Revision bdc2cd3
  9. src/arcade/rom/rom.c GitHub · crowded-street/3sx · Revision bdc2cd3
  10. src/port GitHub · crowded-street/3sx · Revision bdc2cd3
  11. src/bin2obj GitHub · crowded-street/3sx · Revision bdc2cd3
  12. tools/fcade-replays/README.md GitHub · crowded-street/3sx · Revision bdc2cd3
  13. .agents/skills/compare-cps3-code/SKILL.md GitHub · crowded-street/3sx · Revision bdc2cd3
  14. .agents/skills/compare-cps3-code/agents/openai.yaml GitHub · crowded-street/3sx · Revision bdc2cd3
  15. .github/workflows/build_linux.yml GitHub · crowded-street/3sx · Revision bdc2cd3
  16. .github/workflows/build_psp.yml GitHub · crowded-street/3sx · Revision bdc2cd3
  17. .github/workflows/release.yml GitHub · crowded-street/3sx · Revision bdc2cd3
  18. THIRD_PARTY_NOTICES.txt GitHub · crowded-street/3sx · Revision bdc2cd3
  19. LICENSE GitHub · crowded-street/3sx · Revision bdc2cd3
  20. https://github.com/crowded-street/3sx/releases/tag/rolling-pre-release
  21. https://github.com/crowded-street/3sx/milestone/1

More in Games

All 231 entries in GamesGames case studies (189)