2 Commits
Author SHA1 Message Date
ckochandClaude Opus 4.8 83748d6422 Remove Clair Obscur: Expedition 33 from the collection
The game supports ultrawide natively, so there is nothing for this project to
fix. Deletes games/Expedition33 and all references (README table, THIRD_PARTY,
the never-published v1.2.0 changelog section). A one-line changelog note records
why it was dropped, and the METHOD=native tooling capability stays for any
future works-out-of-the-box title.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 10:46:37 -04:00
ckochandClaude Opus 4.8 97d3c3e72a Expedition 33: drop vendored fix, mark native (fixes crash)
After a reboot E33 kept crashing. The ClairObscurFix.log showed why the earlier
'reduced profile' never helped: config flags gate behaviour INSIDE the fix's
hooks, but the .asi installs all its hooks (Level Load, Widgets, cutscene,
PostProcess) regardless. So the crash surface was never reduced - only removing
the fix stops it.

The game added official ultrawide support in patch 1.2.3 and renders correctly
at 5120x1440 natively, so the archived fix was pure liability. Removed it
entirely and marked the entry native.

- New METHOD=native: install.sh no-ops with a message, build/publish skip it.
- Deleted vendor/ClairObscurFix and the tuned ini (unused, crash-causing).
- README/THIRD_PARTY/CHANGELOG updated; ClairObscurFix recorded as historical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 19:10:50 -04:00
16 changed files with 29 additions and 286 deletions
+13 -14
View File
@@ -1,23 +1,22 @@
# Changelog # Changelog
## Unreleased
- **Dropped Clair Obscur: Expedition 33.** Evaluated and removed from the
collection: the game supports ultrawide natively (official support since patch
1.2.3), so there is nothing for this project to fix. The archived third-party
fix we briefly vendored crashed on current builds and is gone too. A
`METHOD=native` capability remains in the tooling for any future
works-out-of-the-box title.
- **New game: ONE PIECE ODYSSEY** (UE4 + SteamStub). SUWSF loads, but the
GB4 patterns don't match this build (FOV pattern 0 matches; pillarbox pattern
false-matched). Needs runtime-derived patterns. ⚠️ in progress.
Versioning applies to the collection as a whole: **adding a game is a minor bump**, Versioning applies to the collection as a whole: **adding a game is a minor bump**,
fixes/tuning to existing entries are patch bumps. fixes/tuning to existing entries are patch bumps.
## v1.2.0 — Clair Obscur: Expedition 33
- **New game: Clair Obscur: Expedition 33** (Unreal Engine 5, no DRM) — ⚠️ partial support. ## v1.1.0 — Burglin' Gnomes *(unreleased)*
Adds a third install method, `external`: where a good third-party fix already
exists and its license allows redistribution, it is vendored **unmodified**
with our tuned config and full credit, rather than reimplemented.
The fix itself is [ClairObscurFix](https://github.com/Lyall/ClairObscurFix)
by **Lyall** (MIT).
- Ships a **reduced profile** (only `Center HUD` enabled). Upstream v0.0.10 is
archived and predates current game builds; with full features it crashed on
save load. Documented with a revalidation checklist rather than marked working.
- `publish.sh` now cuts **one release for the whole collection**, attaching every
game's zip, and replaces same-named assets so re-runs are idempotent.
## v1.1.0 — Burglin' Gnomes *(never released; folded into v1.2.0)*
- **New game: Burglin' Gnomes** (Unity 6, Mono) — ✅ confirmed working at 5120×1440. - **New game: Burglin' Gnomes** (Unity 6, Mono) — ✅ confirmed working at 5120×1440.
Adds the `bepinex` install method and a purpose-built C# plugin. Adds the `bepinex` install method and a purpose-built C# plugin.
-1
View File
@@ -17,7 +17,6 @@ Most force **Hor+ FOV** (a wider screen shows you *more* rather than zooming in)
| [Gundam Breaker 4](games/GundamBreaker4/) | Unreal Engine 4.27 | SUWSF | ✅ Confirmed working at 5120×1440 | | [Gundam Breaker 4](games/GundamBreaker4/) | Unreal Engine 4.27 | SUWSF | ✅ Confirmed working at 5120×1440 |
| [Burglin' Gnomes](games/BurglinGnomes/) | Unity 6 (Mono) | BepInEx plugin | ✅ Confirmed working at 5120×1440 | | [Burglin' Gnomes](games/BurglinGnomes/) | Unity 6 (Mono) | BepInEx plugin | ✅ Confirmed working at 5120×1440 |
| [ONE PIECE ODYSSEY](games/OnePieceOdyssey/) | Unreal Engine 4 | SUWSF | ⚠️ New — unverified | | [ONE PIECE ODYSSEY](games/OnePieceOdyssey/) | Unreal Engine 4 | SUWSF | ⚠️ New — unverified |
| [Clair Obscur: Expedition 33](games/Expedition33/) | Unreal Engine 5 | External ([ClairObscurFix](https://github.com/Lyall/ClairObscurFix) by Lyall) | ⚠️ Partial — reduced profile, see notes |
## Install ## Install
-7
View File
@@ -32,13 +32,6 @@ them; all runtime patching is performed by SUWSF.
- Used only for runtime inspection while developing a fix; it is NOT part of any - Used only for runtime inspection while developing a fix; it is NOT part of any
release package and is not required by end users. release package and is not required by end users.
## ClairObscurFix (the entire Expedition 33 fix)
- Author: **Lyall** — https://github.com/Lyall/ClairObscurFix
- License: MIT (see `vendor/ClairObscurFix/LICENSE`)
- Files: `vendor/ClairObscurFix/**` — vendored **unmodified**
- Version: v0.0.10 (upstream repo is archived)
- The ultrawide fix for Clair Obscur: Expedition 33 is entirely Lyall's work.
This repo contributes only a 32:9-tuned `ClairObscurFix.ini` and packaging.
## Patch patterns ## Patch patterns
The `AspectRatioAxisConstraint` (HOR+) and `ConstrainAspectRatio` (pillarbox) The `AspectRatioAxisConstraint` (HOR+) and `ConstrainAspectRatio` (pillarbox)
-52
View File
@@ -1,52 +0,0 @@
;;;;;;;;;; General ;;;;;;;;;;
[Developer Console]
; Set "Enabled" to true to enable the console.
; By default you can access it with the key "Tilde".
Enabled = false
[Skip Intro Logos]
; Skips splash screen logos, epilepsy warning and autosave warning.
Enabled = false
[Uncap Cutscene FPS]
; Removes 30fps cap in cutscenes.
; DISABLED: bisecting a crash-on-save-load with game build > fix v0.0.10.
Enabled = false
[Adjust Resolution Checks]
; Adjusts resolution checks to use the monitor's maximum supported resolution, rather than the "native" resolution.
; DISABLED: its pattern scan already fails on this game build ("Resolution Checks: Pattern scan failed").
Enabled = false
[Background Audio]
; Set "Enabled" to true to allow audio to continue playing when the game window has lost focus.
Enabled = false
;;;;;;;;;; Ultrawide/Narrower ;;;;;;;;;;
[Cutscene Letterboxing]
; Set "Enabled" to true to re-enable pillarboxing/letterboxing in cutscenes.
Enabled = false
[Fix Movies]
; Crops letterboxing from pre-rendered movies at ultrawide resolutions.
; DISABLED: bisecting; re-enable once the crash source is known.
Enabled = false
[Center HUD]
; Set "Enabled" to true to center certain parts of the HUD to 16:9 at ultrawide resolutions.
Enabled = true
; Adjust "AspectRatio" to set the aspect ratio of the HUD. i.e 1.77778 for 16:9, 2.33333 for 21:9 etc
AspectRatio = 1.77778
;;;;;;;;;; Graphics ;;;;;;;;;;
[Disable Subtitle Blur]
; Set "Enabled" to true to disable the background blur on cutscene subtitle lines.
Enabled = false
[Sharpening]
; Adjust "Strength" to control the intensity of the forced post-process sharpening.
; Valid range: 0 to 2.0 Game Default = 1.0
Strength = 0
-101
View File
@@ -1,101 +0,0 @@
# Clair Obscur: Expedition 33 — UltraWide
⚠️ **Partial support — reduced feature profile.** ClairObscurFix v0.0.10 is archived and predates the current game build; running it with upstream defaults **crashed on save load**. This repo ships a reduced profile with only the 32:9 HUD centering enabled.
- **Engine:** Unreal Engine 5 — **no DRM** (no SteamStub; `.text` entropy 6.74)
- **Steam AppID:** 1903340
- **Executable:** `SandFall-Win64-Shipping.exe`
- **Method:** `external` — vendored third-party fix + our 32:9 config
## We did not write this fix
The ultrawide work here is **[ClairObscurFix](https://github.com/Lyall/ClairObscurFix) by [Lyall](https://github.com/Lyall)** (MIT), vendored unmodified. It is mature and already handles the hard parts; reimplementing it would be duplicated effort for no benefit. **All credit for the fix itself goes to Lyall.**
What this repo adds is the **32:9 configuration** verified on a Samsung 49" G93SC, packaging, and a one-command installer consistent with the other games here.
> The upstream repo is **archived**, so it will not receive further updates. Vendoring it here means the version you need stays available.
## Install (Linux / Proton)
```bash
./install.sh Expedition33
```
Then **required** — Steam → Properties → Launch Options:
```
WINEDLLOVERRIDES="dsound=n,b" %command%
```
Set **5120×1440** fullscreen in-game.
## Install (Windows)
Extract the release zip into `…\Expedition 33\Sandfall\Binaries\Win64\`.
## Our 32:9 config
`ClairObscurFix.ini` ships with upstream defaults **except**:
| Option | Upstream | Ours | Why |
|---|---|---|---|
| `[Center HUD] Enabled` | `false` | **`true`** | At 5120px wide, HUD elements anchored to screen edges end up absurdly far apart |
Everything else is left at upstream defaults, which are already ultrawide-friendly:
| Option | Default | Effect |
|---|---|---|
| `Cutscene Letterboxing` | `false` | No bars in cutscenes |
| `Fix Movies` | `true` | Crops letterboxing from pre-rendered video |
| `Adjust Resolution Checks` | `true` | Uses the monitor's max resolution rather than "native" |
| `Uncap Cutscene FPS` | `true` | Removes the 30fps cutscene cap |
### Tuning
Edit `…/Sandfall/Binaries/Win64/ClairObscurFix.ini` (requires a restart — this fix has no live reload):
- **HUD too cramped?** Raise `[Center HUD] AspectRatio` from `1.77778` (16:9) to `2.33333` (21:9) — usually the sweet spot at 32:9.
- **Prefer the HUD spanning the full width?** Set `[Center HUD] Enabled = false`.
- **Want cinematic bars back?** `[Cutscene Letterboxing] Enabled = true`.
## Uninstall
```bash
./install.sh Expedition33 uninstall
```
## Known issue: version drift
**ClairObscurFix v0.0.10 (May 2025) is archived and no longer tracks the game.**
Observed on a current build (2026-07-21), with upstream defaults:
```
[error] Resolution Checks: Pattern scan failed.
[error] Resolution Scale Bug: Pattern scan failed.
```
…followed by a **crash when loading a save**. Removing the fix entirely made the
game load normally, isolating the fix as the cause. The crash coincides with the
fix's `Level Load` hook, which is consistent with a hook attaching to shifted
code in a newer binary.
**Mitigation:** ship a reduced profile — everything disabled except `Center HUD`,
the only option genuinely needed at 32:9. The failing scans are disabled outright
since they were already inert.
## Maintenance / revalidation
Because upstream is archived, this entry decays as the game patches. Re-check
after any significant game update:
1. Launch and load a save. If it crashes, remove the fix (`./install.sh Expedition33 uninstall`) and retry to confirm the fix is the cause rather than the game or Proton.
2. Read `Sandfall/Binaries/Win64/ClairObscurFix.log``Pattern scan failed` lines mark hooks that no longer match the binary.
3. Disable any newly-failing feature in `ClairObscurFix.ini`; a failed scan is inert, but a *wrongly-attached* hook is what crashes.
4. If `Center HUD` itself stops working, this entry should be marked unsupported. The game has **no DRM**, so writing a small dedicated HUD-centering patch is a viable replacement.
## Still unverified at 32:9
- [ ] Is `Center HUD` at 16:9 right, or is 21:9 (`2.33333`) better?
- [ ] Camera FOV — Hor+ (see more) or Vert- (zoomed)?
- [ ] Pillarboxing in cutscenes / pre-rendered movies (`Fix Movies` currently **off**)
-19
View File
@@ -1,19 +0,0 @@
# Clair Obscur: Expedition 33 — metadata for ../../install.sh
TITLE="Clair Obscur: Expedition 33"
APPID=1903340
EXE="SandFall-Win64-Shipping.exe"
COMMON_SUBDIR="Expedition 33/Sandfall/Binaries/Win64"
ENGINE="Unreal Engine 5 (no DRM)"
# Fix method: EXTERNAL — we ship an upstream third-party fix (MIT) plus our own
# 32:9-tuned config. We deliberately do NOT reimplement it; see README.md.
METHOD="external"
VENDOR_PAYLOAD="ClairObscurFix/Sandfall/Binaries/Win64" # contents copied into the exe dir
EXTERNAL_CONFIG="ClairObscurFix.ini" # our tuned copy overrides upstream's
EXTERNAL_FILES="ClairObscurFix.asi ClairObscurFix.ini dsound.dll"
LOADER="dsound.dll"
LAUNCH_OPTION='WINEDLLOVERRIDES="dsound=n,b" %command%'
PREFIX_INI=""
STATUS="PARTIAL — reduced profile (Center HUD only); upstream v0.0.10 is archived and crashes with full features on current builds"
+6
View File
@@ -107,6 +107,12 @@ remove_ini() {
METHOD="${METHOD:-suwsf}" METHOD="${METHOD:-suwsf}"
if [ "$METHOD" = "native" ]; then
echo "[i] ${TITLE:-$GAME} supports ultrawide natively — no fix to install or remove."
echo " ${STATUS:-}"
exit 0
fi
if [ "$ACTION" = "uninstall" ]; then if [ "$ACTION" = "uninstall" ]; then
echo "[+] Uninstalling..." echo "[+] Uninstalling..."
if [ "$METHOD" = "external" ]; then if [ "$METHOD" = "external" ]; then
+4
View File
@@ -15,6 +15,10 @@ GDIR="games/$GAME"
. "$GDIR/game.conf" . "$GDIR/game.conf"
METHOD="${METHOD:-suwsf}" METHOD="${METHOD:-suwsf}"
if [ "${METHOD:-suwsf}" = "native" ]; then
echo "[i] $GAME is native (no fix) — nothing to package."; exit 0
fi
OUT="dist/${GAME}_UltraWide_Fix" OUT="dist/${GAME}_UltraWide_Fix"
rm -rf "$OUT" "$OUT.zip" rm -rf "$OUT" "$OUT.zip"
mkdir -p "$OUT" mkdir -p "$OUT"
+6 -1
View File
@@ -15,7 +15,12 @@ REPO="${GITEA_REPO:-UltraWidePatches}"
# GAME may be a space-separated list; empty/"all" = every game in games/ # GAME may be a space-separated list; empty/"all" = every game in games/
GAME="${GAME:-all}" GAME="${GAME:-all}"
if [ "$GAME" = "all" ]; then if [ "$GAME" = "all" ]; then
GAME=$(for d in games/*/; do [ -f "$d/game.conf" ] && basename "$d"; done | tr '\n' ' ') GAME=$(for d in games/*/; do
[ -f "$d/game.conf" ] || continue
m=$(. "$d/game.conf" >/dev/null 2>&1; echo "${METHOD:-suwsf}")
[ "$m" = "native" ] && continue # native entries have no release zip
basename "$d"
done | tr '\n' ' ')
fi fi
TAG="${TAG:?set TAG explicitly, e.g. TAG=v1.2.0 (see CHANGELOG.md)}" TAG="${TAG:?set TAG explicitly, e.g. TAG=v1.2.0 (see CHANGELOG.md)}"
# Single game -> its own README; multiple -> the collection README. # Single game -> its own README; multiple -> the collection README.
BIN
View File
Binary file not shown.
View File
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 Lyall
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Binary file not shown.
@@ -1,49 +0,0 @@
;;;;;;;;;; General ;;;;;;;;;;
[Developer Console]
; Set "Enabled" to true to enable the console.
; By default you can access it with the key "Tilde".
Enabled = false
[Skip Intro Logos]
; Skips splash screen logos, epilepsy warning and autosave warning.
Enabled = false
[Uncap Cutscene FPS]
; Removes 30fps cap in cutscenes.
Enabled = true
[Adjust Resolution Checks]
; Adjusts resolution checks to use the monitor's maximum supported resolution, rather than the "native" resolution.
Enabled = true
[Background Audio]
; Set "Enabled" to true to allow audio to continue playing when the game window has lost focus.
Enabled = false
;;;;;;;;;; Ultrawide/Narrower ;;;;;;;;;;
[Cutscene Letterboxing]
; Set "Enabled" to true to re-enable pillarboxing/letterboxing in cutscenes.
Enabled = false
[Fix Movies]
; Crops letterboxing from pre-rendered movies at ultrawide resolutions.
Enabled = true
[Center HUD]
; Set "Enabled" to true to center certain parts of the HUD to 16:9 at ultrawide resolutions.
Enabled = false
; Adjust "AspectRatio" to set the aspect ratio of the HUD. i.e 1.77778 for 16:9, 2.33333 for 21:9 etc
AspectRatio = 1.77778
;;;;;;;;;; Graphics ;;;;;;;;;;
[Disable Subtitle Blur]
; Set "Enabled" to true to disable the background blur on cutscene subtitle lines.
Enabled = false
[Sharpening]
; Adjust "Strength" to control the intensity of the forced post-process sharpening.
; Valid range: 0 to 2.0 Game Default = 1.0
Strength = 0
Binary file not shown.
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 ThirteenAG
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.