bhuiyah D3D12 Launcher, Save States & Ultrawide

bhuiyah/infamous2-recomp (v0.1.41) statically recompiles North American BCUS98125 (and beta European BCES01143 / BCES01144) copies of inFAMOUS 2 into a native Windows 10/11 Direct3D 12 executable in roughly four minutes, complete with sub-second .p3ss save states and Hor+ ultrawide.

~4 MinutesFull 7-step C++ lift & compile on 16 threads
0.3s LoadF5/F9 + 10-slot .p3ss save states with Undo
Hor+ 32:9Wide HUD placement + 16:9 LOD preservation
AMD Ryzen 7 7800X3D Zen 4 die layout representing AVX2 C++ recompilation
Tested on Ryzen 7 9800X3D + RTX 5080, bhuiyah's D3D12 build uses under 1 GB of VRAM at base resolution while placing PPU and 5 SPU threads across fast AVX2 cores.

Launcher workflow, headless CLI & exit codes 0-8

Extract inFamous2Recomp-v0.1.41-windows.zip to a short ASCII path like C:\Games\inFamous2Recomp. Ensure RPCS3 has Sony PS3 system software 4.92 or newer installed before decrypting EBOOT.BIN -> EBOOT.elf and libsre.sprx -> libsre.prx (4.80 libsre fails).

:: Headless setup, compilation, and launch for RecompLauncher or batch scripts:
start /wait inFamous2Launcher.exe --prepare --disc D:\PS3\BCUS98125 --update D:\RPCS3\dev_hdd0\game\BCUS98125 --libsre D:\RPCS3
start /wait inFamous2Launcher.exe --build --yes
start /wait inFamous2Launcher.exe --play
Exit CodeMeaningDiagnostic Resolution
0CompletedRequested --prepare, --build, or --play steps succeeded.
1Bad command lineUnrecognized switch or malformed argument syntax.
2Game files missing/wrongTitle ID mismatch, unpatched update, encrypted EBOOT.elf, or 4.80 libsre.prx.
3Staging game\ failedFilesystem link/copy error when populating game\ from your disc and update.
4Build tools missingMissing Git Bash, Python 3.10+, CMake 3.20+, Ninja, VS2022 C++, or LLVM 19+ (use GUI winget button).
5Toolkit consent requiredFirst build needs --yes on CLI to clone MIT sp00nznet/ps3recomp (~15 MB).
6Build step failed/stoppedCompiler or lifter error; inspect logs\launcher-<time>.log and press Retry.
7Cannot start gameExecutable not built yet, sources out of date, or infamous2.exe is already running.
8Unusable directory pathFolder path exceeds 150 characters (hits Windows 260-char build depth) or uses non-codepage letters.

Instant .p3ss save states, Hor+ ultrawide & languages

Save states live in savestates\BCUS98125\ alongside standard PS3 autosaves, letting you experiment mid-combat or mid-cutscene without touching campaign save slots.

Save State FeatureShortcut / CommandRuntime Mechanics
Quick Save / Quick LoadF5 / F9 (or Save / Load -> Quick)Freezes threads at safe point for 60-120 ms, compresses RAM via XPRESS Huffman (~200 MB quick.p3ss), restores in ~0.3 s.
10 Named Mission SlotsCtrl+F1..F10 (save) / Ctrl+Shift+F1..F10 (load)Writes slot01.p3ss..slot10.p3ss + 320px PNG + .bak backup, labeled with timestamp, mission name, and play time.
Two-Way Undo Last LoadCtrl+Shift+Z (Load -> Undo Last Load)Snapshots running memory into undo.p3ss (~240 MB) right before loading; pressing Undo twice swaps between the two moments.
0.7s Direct State Boottools\run.ps1 -LoadState 3 (or SS_LOAD)Streams slot file during boot and enters live gameplay in ~0.7 s compared to ~27 s for a normal title-screen checkpoint load.

True Hor+ ultrawide in config/display.ini

By default, aspect = auto in config\display.ini detects any monitor wider than 16:9 (including 64:27 on 2560x1080, 43:18 on 3440x1440, 21:9, and 32:9 on 5120x1440) and expands horizontal view without cropping vertical height. Setting hud = wide anchors Cole's energy meter and minimap to the outer screen corners (or set hud = 16:9 to center them), while lod = 1 preserves 16:9 object detail distances so cars and props never cull early.

Enabling European audio & text on a US disc

North American BCUS98125 discs ship European voice and subtitle data on disc even though a US PS3 hides them. Adding language_edition = europe under [system] in config\options.ini (or setting IF2_LANGUAGE_EDITION=europe) exposes English (UK), French, Italian, German, Spanish, Dutch, Polish, Portuguese, and Russian in PC Settings -> System -> Language while keeping your saves in standard US BCUS98125 format.

Generate display.ini, options.ini & CLI commands

Pre-configured for bhuiyah/infamous2-recomp: switch between save-state CLI flags, ultrawide overrides, and gamepad deduplication.

Verified INI settings & directory paths
# SamiEnazi/infamous2-port (Vulkan v0.5.7)
# Settings Path: %APPDATA%\inFAMOUS2-port\settings.ini (or portable.txt in port root)
Disc / Edition:   BCUS98125 + Update 1.04
Saves Directory:  <port>\game\gamedata\dev_hdd0\home\00000001\savedata\
Trophies JSON:    <port>\game\gamedata\trophies\NPWR01730.json
RPCS3 Trophies:   <port>\game\gamedata\dev_hdd0\home\00000001\trophy\NPWR01730_00\TROPUSR.DAT
Mods Directory:   <port>\mods\<mod_name>\mod.json

# settings.ini (Desktop Vulkan 1080p / 1440p / 4K)
Internal Resolution: 1080p / 1440p / 4K (F2 -> Graphics)
Soft Shadows & AO:   Full-Res SSAO + HD Fire/Smoke (F3 compares PS3)
PS3_TROPHY_RPCS3_DIR=C:\Emulators\RPCS3
PowerShell, Bash & CLI helper commands
# Copy existing RPCS3 inFAMOUS 2 save folders into SamiEnazi port:
$rpcs3 = 'C:\Emulators\RPCS3\dev_hdd0\home\00000001\savedata'
$port  = 'C:\Games\inFAMOUS2\game\gamedata\dev_hdd0\home\00000001\savedata'
Copy-Item "$rpcs3\BCUS98125*" -Destination $port -Recurse -Force

# Sync earned trophies back into RPCS3 & Playnite Achievements:
Add-Content "$env:APPDATA\inFAMOUS2-port\settings.ini" 'PS3_TROPHY_RPCS3_DIR=C:\Emulators\RPCS3'

SamiEnazi backs up saves before every launch and writes TROPUSR.DAT.port-backup once before syncing NPWR01730 trophies into your RPCS3 folder.

Controllers for native PC, Deck & Mac builds

All four recompilation ports support hot-plugged USB and Bluetooth gamepads, dynamic PlayStation or Xbox button prompts, and virtual-pad deduplication when Steam Input or DS4Windows is active.

8BitDo Ultimate 2C Wireless Controller

Hall-effect sticks and analog triggers with low-latency 2.4G dongle and Bluetooth, auto-detected in SDL_GameControllerDB and XInput for New Marais aiming.

Check on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-free Hall sensors, swappable face layout, and Switch/XInput modes supporting six-axis motion sensors and hotplug in bhuiyah D3D12 and SamiEnazi Vulkan.

Check on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical PlayStation-style dual sticks matching DualShock 3 thumb placement, plus rear paddles ideal for Static Thrusters hovering and Kinetic Pulse.

Check on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks and 1000 Hz polling rate built for 120+ FPS rooftop traversal across Windows 11, SteamOS Linux, and Apple Silicon macOS.

Check on Amazon

Affiliate disclosure: As an Amazon Associate, infamous2recomp.wiki earns from qualifying purchases at no added cost to you.

Direct3D 12 & save-state FAQ

Cross-build .p3ss safety, EU pattern resolution, and F1 overlay controls.

What happens to my .p3ss save states when I update to a newer bhuiyah release?

Every rebuild creates a new binary layout. Before stopping the running game, ss_file.c inspects the 4 KB .p3ss header: if memory structures and SPU programs still match, the slot loads with an (older build) notice; if layout or SPU code changed, the menu safely greys out that slot with the exact reason while your normal PS3 campaign saves continue working.

How do European BCES01143 and BCES01144 discs work in beta?

Instead of hardcoding US memory addresses, tools/if2_resolve.py scans your European EBOOT by instruction pattern (config/if2_sigs.json) and writes analysis/resolve_report.txt. Any hook whose address is missing disables itself cleanly so the game still boots and plays; use Report a problem in v0.1.40+ to export an anonymized logs/eu-report-.zip for issue #3.

How do I open the in-game PC Settings overlay in bhuiyah's build?

Press F1 on the keyboard, press the PS / Guide / Home button on your controller, hold L3+R3, or open the native pause menu where PC Settings and Quit Game are injected directly into Sucker Punch's pause list.