Gundam Breaker 4 UltraWide Fix v1.0.0
32:9 / 21:9 ultrawide support for Gundam Breaker 4 (UE4.27) via SUWSF + Ultimate ASI Loader. Forces Hor+ FOV (AspectRatioAxisConstraint=MaintainYFOV) and disables pillarboxing, patched in decrypted memory at runtime so it holds through missions (the exe is SteamStub-encrypted; a static patch is impossible). Confirmed working in gameplay at 5120x1440 (Samsung Odyssey G93SC) on Proton. Requires WINEDLLOVERRIDES="dsound=n,b" on Proton so the loader injects. Includes: patch/SUWSF.ini, Proton installer with clean uninstall, release-zip builder, and runtime dump/verify tooling. Third-party bundles under MIT (see THIRD_PARTY.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
[UserSettings]
|
||||
; ==========================================================================
|
||||
; Gundam Breaker 4 - UltraWide Fix (SUWSF patch)
|
||||
; Target display: Samsung 49" Odyssey G93SC (5120x1440, 32:9)
|
||||
; Engine: Unreal Engine 4.27 | Exe is SteamStub-encrypted -> runtime patch
|
||||
; ==========================================================================
|
||||
; Your screen resolution used in patch calculations. "auto" reads primary
|
||||
; display; set explicitly if auto misreads under Proton/DPI scaling.
|
||||
Resolution="5120x1440"
|
||||
; Globally enable or disable all patches (default: true)
|
||||
Enabled=true
|
||||
|
||||
; --------------------------------------------------------------------------
|
||||
; WARNING: PATCHES BELOW. These are CANDIDATE UE4 patterns adapted from
|
||||
; known-good UE4 fixes (Trepang2 / Lies of P). Because GB4's .text is
|
||||
; SteamStub-encrypted on disk we cannot verify the exact bytes statically;
|
||||
; SUWSF scans the DECRYPTED image in memory at runtime, so if GB4's UE4.27
|
||||
; codegen matches these generic patterns they apply directly.
|
||||
;
|
||||
; If a patch reports 0 matches (see SUWSF log / no visual change), run
|
||||
; tools/dump_decrypted.sh while the game is running and send me the dump so
|
||||
; I can derive GB4's exact pattern. Each patch is independent - a miss on one
|
||||
; does not stop the others.
|
||||
; --------------------------------------------------------------------------
|
||||
|
||||
; [1] HOR+ FOV -- the primary fix.
|
||||
; Forces ULocalPlayer AspectRatioAxisConstraint to 0 (AspectRatio_MaintainYFOV).
|
||||
; This makes the camera keep VERTICAL FOV constant and expand horizontally
|
||||
; (Hor+), removing the zoomed-in feel at 32:9. Do NOT use at 16:9 or narrower.
|
||||
; Value BA 00 00 00 00 = "mov edx, 0" ; 90 90 90 = pad nops.
|
||||
[Patch:AspectRatioAxisConstraint]
|
||||
Enabled=true
|
||||
Pattern="0F ?? ?? ?? 0F ?? ?? ?? ?? ?? 41 ?? ?? ?? ?? ?? 00 00 48 ?? ?? ?? ?? 00 00 4C ?? ??"
|
||||
Offset=10
|
||||
Value="BA 00 00 00 00 90 90 90"
|
||||
ValueType="byte"
|
||||
Match="1"
|
||||
Module="auto"
|
||||
|
||||
; [2] Disable pillarboxing/letterboxing (bConstrainAspectRatio = 0).
|
||||
; Prevents the game clamping the render to 16:9 with black side bars.
|
||||
[Patch:ConstrainAspectRatio]
|
||||
Enabled=true
|
||||
Pattern="33 ?? ?? 83 ?? 02 31 ?? ?? 0F ?? ?? ?? ?? 00 00"
|
||||
Offset=0
|
||||
Value="90 90 90 90 90 90"
|
||||
ValueType="byte"
|
||||
Match="1"
|
||||
Module="auto"
|
||||
|
||||
; [3] OPTIONAL fallback: some UE builds hardcode 16:9 (1.777778) as a float
|
||||
; (39 8E E3 3F) or (3B 8E E3 3F) and clamp to it. Disabled by default because
|
||||
; it can double-apply with patch [1]. Enable ONLY if [1] misses and you still
|
||||
; see a squeezed/zoomed image. Writes your true aspect ratio in its place.
|
||||
[Patch:HardcodedAspect_16by9_a]
|
||||
Enabled=false
|
||||
Pattern="39 8E E3 3F"
|
||||
Offset=0
|
||||
Value="aspectratio"
|
||||
ValueType="float"
|
||||
Match="all"
|
||||
Module="auto"
|
||||
|
||||
[Patch:HardcodedAspect_16by9_b]
|
||||
Enabled=false
|
||||
Pattern="3B 8E E3 3F"
|
||||
Offset=0
|
||||
Value="aspectratio"
|
||||
ValueType="float"
|
||||
Match="all"
|
||||
Module="auto"
|
||||
Reference in New Issue
Block a user