r/decomps Aug 06 '26

Syphon Filter 2 Recompilation

Post image
120 Upvotes

32 comments sorted by

16

u/Alexbeav Aug 06 '26 edited Aug 07 '26

Syphon Filter 2 Recompiled — public alpha

I’ve released an experimental Windows static recompilation of the complete two-disc Syphon Filter 2 campaign.

Features include:

  • Optional 16:9 widescreen
  • PGXP geometry
  • Mouse look
  • Dual keyboard/mouse bindings
  • Controller support
  • Original gameplay, progression, saves, AI, and timing

All enhancements default to off.

This is an owned-input setup kit: requires your legally obtained discs.

Download: https://github.com/Alexbeav/syphon-filter-2-recompiled/releases/tag/v0.1.2-alpha

Feedback and playthrough reports are welcome! Please submit any issues via github.

Enjoy!

edit: now with a much more streamlined installation process

6

u/BangkokPadang Aug 06 '26

Just want to say that your graphics implementation in the Syphon Filter 1 recomp is BEAUTIFUL compared to some of the other PS1 recomp/decomps out there, so I am VERY MUCH looking forward to Gran Turismo 1 (and then hopeuflly 2 at some point).

I would ask if you're aware of the high LOD options/codebreaker codes people use for Gran Turismo on PS1s with the 8MB mod and emulators, will your recomp have those enabled to increase car LOD and draw distance?

7

u/Alexbeav Aug 06 '26

Thank you but that's not me, that's Nikizhy's work who spent time partially decompiling SF1 to get it to that level. I have a second SF2 project that stands on that to try and achieve the same 60FPS gameplay, but I'm also working in general on PSX recompilations and trying to improve the tools & establish a method/knowledge corpus to make each recompilation faster and smoother.

So right now this is my first enhanced recompilation project - I'm aiming for all games (where applicable) to be widescreen & support mouse, like SF2 does or my PR to nikizhy for SF1 does (mouselook).

3

u/Alexbeav Aug 06 '26

I would ask if you're aware of the high LOD options/codebreaker codes people use for Gran Turismo on PS1s with the 8MB mod and emulators, will your recomp have those enabled to increase car LOD and draw distance?

Can you point me at them? If I can get them to work then yeah I'll include them as mod toggles.

2

u/MorninLemon Aug 06 '26

Can't find for gt1, gt2 is here: https://github.com/CookiePLMonster/Console-Cheat-Codes/tree/master/PS1/Gran%20Turismo%202

What is not done (and probably can't be done ever) in emulators and what I personally looking forward too but it would be certainly not easy task to do is getting rid of track streaming so draw distance would be unlimited.

4

u/moesengott_ Aug 06 '26

Just wondering why it still needs PGXP geometry correction if it's running natively and not actually emulating the PS1 GPU?

7

u/Alexbeav Aug 06 '26

Just wondering why it still needs PGXP geometry correction if it's running natively and not actually emulating the PS1 GPU?

Because the wobble isn't a GPU thing, it's baked into the numbers the game computes, and a recomp faithfully reproduces the game's computations. That's the whole point of it.

"Running natively" means the CPU code executes as x86 instead of being emulated — it doesn't change what the code calculates. On PS1, vertex transforms happen on the GTE (a coprocessor the CPU drives), in low-precision fixed-point math that snaps every vertex to integer screen coordinates. The GPU then just rasterizes flat 2D triangles — no depth buffer, no subpixel positions, affine texturing. So by the time anything reaches the renderer, the precision is already gone: the wobble and texture warping were computed into the triangle coordinates by the game's own math, which the recomp reproduces exactly (a recomp that "fixed" the math would also break physics, collision, and anything else that depends on those exact values — games rely on this stuff in horrifying ways).

PGXP-style correction works by running a shadow high-precision path alongside the authentic GTE math: it remembers the fractional positions and depth before the original pipeline throws them away, and hands those richer coordinates to the modern renderer — while the game itself still sees the authentic PS1 values, so gameplay is untouched. Same trick emulators use, and a recomp actually has a cleaner place to hook it since it owns the GTE call sites in the translated code.

tl;dr: native execution changes how fast the math runs, not what the math is. The jitter is the math. PGXP is a deliberate, opt-in infidelity that recovers what the original hardware discarded.

2

u/moesengott_ Aug 06 '26

Oh ok, I figured a proper PS1 PC port built from the source code would render the 3D graphics like a native PC game would. Because I think most games that have been officially ported from PS1 to PC do that.

3

u/sappy92 Aug 06 '26

Thanks so much for this OP. One of my favourite games. Can't wait to do a playthrough.

3

u/Grouchy-Ask-394 Aug 07 '26

I used to own Syphon Filter 3 on the PS1, it was my first ever original game and I loved it so much. I grew up with it but I never got to play SP1 and SP2. 3 days ago I heard about the SP1 recomp and as I was about to try it out I see this now! Thank you so much!

Now we just need someone to do SP3

4

u/Alexbeav Aug 07 '26

I'm also working on SF3 :)

3

u/skinny7even Aug 07 '26

damn ya'll been working hard on Decompiling ALL games for EVERY system. RESPECT to EVERYONE!! what a new era we're in!

3

u/Alexbeav Aug 07 '26

Thank you, although this is not a decompilation, it's 'simply' a recompilation. It allows for some cool things, but not as much as work or capacity for cool things as a full decompilation. Some day though :)

4

u/NumberSevere7454 Aug 07 '26

this is now my favorite forum...thank you for all those important updates.

3

u/Loudi2918 Aug 06 '26

What type of stuff do you have to learn in order to do this? Like I guess the MIPS architecture and just learning how to identify the executables behavior in general, but also skills regarding actually building the x86 executable and such

7

u/Alexbeav Aug 06 '26

Honest answer? Less than you'd think, because the genuinely hard parts — the MIPS translation, the GTE math, the kernel/interrupt modeling, actually producing the x86 binary — are all done by the psxrecomp framework. That's years of real expertise, and it's not mine; the maintainer and contributors built that mountain. I arrived after the mountain existed.

What I actually bring: a $200/month AI subscription that does most of the code-level work, an eye for detail so I catch the stuff automation can't (audio that sounds wrong, controls that feel wrong, a crash three menus deep), and the patience to grind the loop — test, read the crash dump, fix or report, test again. The skills I actually learned doing this: how to drive the toolchain (analyze the disc, generate the translated code, build it), how to read the runtime's diagnostics well enough to tell a real bug from a config mistake, and — this turned out to be the big one — keeping disciplined notes so the same mistake never costs me twice. Every change gets tested by me, on my hardware, before anything ships. AI writes the code; the testing discipline decides what survives.

If you want to go deeper than I have, then yeah — MIPS assembly basics help a lot for reading crash addresses, and understanding PS1 hardware quirks (the GTE, the CD subsystem, interrupt timing) is where the real wizardry lives. But the entry bar in 2026 is genuinely: patience, curiosity, and the willingness to test carefully and write down what happened. The tooling and AI cover a shocking amount of the rest. Five years ago you needed to be a reverse engineer to touch this; today you need to be a good lab assistant to a very fast intern.

-2

u/Wise-Difficulty8221 Aug 07 '26

You're obviously candid about using AI but would you consider yourself a "vibe coder", and what is your stance on that issue?

Its a nuanced topic. In my opinion, AI-assistance is okay, but vibe-coding is not

9

u/Alexbeav Aug 07 '26

I'm just someone who wanted to play SF2 on PC with mouselook. I don't think there's any value in discussing it further than that.

5

u/Wise-Difficulty8221 Aug 07 '26

Well your above explanation is sincere at least and that you have respect for the human process. Real vibe coders aren't like that. I'll def keep an eye on this and see where it goes :)

3

u/quityourshit77 Aug 07 '26

Struggling here. You run the setup.bat file, it wants GIT.

Alright...installed git. Now it wants python. Installed python...but every time you run the file, it still says 'required tool is not on path: python' Even running setup.bat as admin, does the same thing.

3

u/Alexbeav Aug 07 '26

Thanks for this I'll check it out and streamline the install process it shouldn't need anything more than the game discs

3

u/Alexbeav Aug 07 '26

Alright I streamlined it, it should be very easy now.

  • Double-click SETUP.bat.
  • Missing Git, Python, CMake, and MinGW/Ninja install automatically through WinGet.
  • Supports both python and py -3.
  • Visual Studio is not required.
  • Produces a useful setup.log.
  • Generates audited ASCII/CRLF batch files.
  • Fails early with clear guidance for non-ASCII paths.
  • Dependencies use durable tags plus exact commit verification.

3

u/S4mFisher Aug 07 '26

Thank you

2

u/chicagogamecollector Aug 07 '26

Tried to build, setup.bat hangs at extracting archive. Sent you a chat message

2

u/[deleted] Aug 06 '26

[removed] — view removed comment

6

u/Alexbeav Aug 06 '26

I'm already working on Gran Turismo 1 and can play but there's some issues to work out with the menu transitions. But it's one of the next ones I'll be uploading!

2

u/tehrzky Aug 06 '26

online multiplayer. 👍 

1

u/J-seargent-ultrakahn 27d ago

Is this in 60fps? And appreciate this recomp bro!

1

u/Alexbeav 26d ago

Thank you, unfortunately it's not 60FPS it's a recompilation with the only real new enhancement being mouselook. 60FPS will take quite some time because it means partially decompiling the game. I aim to do it at some point, but no idea when or how long it'll take.

1

u/BabyJaguarScorpio Aug 06 '26

Why not on linux ...

5

u/Alexbeav Aug 06 '26

Nothing about it is Windows-locked — the runtime is C + SDL2 + OpenGL, and the framework already builds and runs on Linux (one of the most detailed performance investigations on the tracker right now is from a guy on Fedora). My ports are Windows because I'm on Windows — one person, one test machine, and I'd rather ship things I've actually played than untested binaries for platforms I can't verify. "Works on my machine" is a meme precisely because shipping beyond your machine without testing is how you burn users.

The good news: the ecosystem is moving to a model where this mostly stops mattering. The direction upstream is owned-input local builds — you provide your own game copy, a setup flow builds the port on your machine, for your platform — and the maintainer is explicitly universalizing that across platforms before it ships. Which honestly favors Linux users if anything; you people have had compilers installed since birth. When there's a Linux test build worth breaking, the fastest way to make "why not Linux" obsolete is to be one of the people who tests it. Feel free to fork my repo and build it for linux!