# Gundam Breaker 4 — UltraWide Fix UltraWide (32:9) fix for **Gundam Breaker 4** on PC, targeting the **Samsung 49" Odyssey G93SC** (5120×1440). Works on **Linux/Proton** and Windows. ## What it fixes At 32:9 the game keeps a fixed *horizontal* FOV, so a wider display just **zooms the camera in** instead of showing more. This forces the camera to keep *vertical* FOV constant and expand horizontally (**Hor+**), and disables the pillarbox/letterbox clamp — the correct ultrawide behavior. ## How it works (and why it has to work this way) - GB4 is **Unreal Engine 4.27**. The classic fix is to set `AspectRatioAxisConstraint = MaintainYFOV`, but doing it in `Engine.ini` **reverts once a mission loads** — the game re-sets the camera constraint per view at runtime. - The shipping exe (`GB4-Win64-Shipping.exe`) is wrapped in **SteamStub DRM**: `.text` is encrypted on disk (entropy 8.0), so a static hex patch of the file is impossible. The real code only exists decrypted in memory. - So the fix is a **runtime memory patch** via [SUWSF](https://github.com/PhantomGamers/SUWSF) (Somewhat Universal Widescreen Fix) loaded by [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader). SUWSF scans the *decrypted* image at launch and rewrites the instruction that selects the FOV axis — surviving into missions. ## Install (Linux / Proton) ```bash ./install.sh ``` This drops `SUWSF.asi`, `dsound.dll` (ASI loader), and `SUWSF.ini` next to the shipping exe, and adds the `MaintainYFOV` tweak to the Proton-prefix `Engine.ini` (fixes menus/lobby instantly; SUWSF covers missions). It **never modifies the exe or any game file** and keeps an `Engine.ini.bak-bg4uw` backup. **REQUIRED on Proton** — add this to GB4's **Steam → Properties → Launch Options**, or the ASI loader is ignored and the fix only works in the lobby: ``` WINEDLLOVERRIDES="dsound=n,b" %command% ``` Then set the in-game resolution to **5120×1440** fullscreen. (If `dsound` ever collides, `LOADER_NAME=version.dll ./install.sh` with `version=n,b` works too.) > ✅ Confirmed working in gameplay at 5120×1440 (32:9) on Proton — Hor+ FOV holds through missions. ### Install (Windows) Extract `dist/GB4_UltraWide_Fix.zip` into `...\GB4\Binaries\Win64\` (next to `GB4-Win64-Shipping.exe`). ### Uninstall ```bash ./install.sh uninstall ``` ## Status & the one open step The byte patterns in [`patch/SUWSF.ini`](patch/SUWSF.ini) are **candidate UE4 patterns** proven on other UE4 titles (Trepang2, Lies of P). Because the DRM encrypts the exe, they can only be verified against GB4's **decrypted memory at runtime**. If they hit (likely — same engine family), you're done. If a patch reports no change: ```bash # with the game running at the main menu: python3 tools/dump_decrypted.py # dumps decrypted image via /proc//mem python3 tools/aob.py # reports which patterns matched (OK / MISS / MANY) ``` Send me the `aob.py` output and I'll derive GB4's exact pattern from the dump. ## Layout | Path | What | |---|---| | `patch/SUWSF.ini` | The ultrawide patch definitions (HOR+, pillarbox, fallbacks) | | `install.sh` | Proton/Linux installer + uninstaller | | `tools/dump_decrypted.py` | Dumps the decrypted exe image from the running process | | `tools/aob.py` | Verifies/derives AOB patterns against a dump | | `tools/find_projfunc.py` | Static fingerprint scan (confirmed the DRM encryption) | | `dist/GB4_UltraWide_Fix.zip` | Drop-in bundle for manual/Windows install | | `vendor/SUWSF-x64/` | Upstream SUWSF 2.3.0 + Ultimate ASI Loader | ## Credits [SUWSF](https://github.com/PhantomGamers/SUWSF) by PhantomGamers · [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader) by ThirteenAG · AspectRatioAxisConstraint / pillarbox patterns adapted from [Lyall's UltrawidePatches](https://codeberg.org/Lyall/UltrawidePatches).