7 Commits
Author SHA1 Message Date
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
ckochandClaude Opus 4.8 1176df8f20 Add CHANGELOG; require an explicit release TAG
Adding a game is a minor bump, so the collection is at v1.2.0: v1.0.0 shipped
GB4, Burglin' Gnomes was a minor bump that was never cut, and Expedition 33 is
the second. Skipping the unreleased 1.1.0 reflects the real history better than
collapsing two games' worth of additions into one bump.

publish.sh no longer defaults TAG to v1.0.0, which could silently re-cut the
existing release; it now requires TAG explicitly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 17:23:23 -04:00
ckochandClaude Opus 4.8 15d0169f56 publish.sh: one release for the whole collection
GAME now accepts a space-separated list and defaults to 'all', building and
attaching every game's zip to a single release instead of one game per tag -
which matches the repo being a collection. Release body is the game's own
README for a single game, or the collection README for several.

Asset upload replaces same-named assets, so re-running is idempotent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 17:16:54 -04:00
ckochandClaude Opus 4.8 efaab8bd32 Fix release pipeline: bepinex packaging + no silent failures
'GAME=BurglinGnomes ./tools/publish.sh' exited with zero output. Two causes:

1. build_release.sh was SUWSF-only and hard-failed on a missing SUWSF.ini for
   BepInEx games. It now reads METHOD from game.conf and packages BepInEx plus
   the prebuilt plugin instead.
2. publish.sh ran the build with stdout to /dev/null, so that error was
   invisible and  killed the script silently. Build output is now shown
   and failure reported explicitly.

Also: publish.sh creates the tag locally when missing (v1.1.0 never existed, so
the tag push would have failed too), and defaults the release body to the
game's own README so per-game notes are always accurate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 16:40:41 -04:00
ckochandClaude Opus 4.8 9bdb4284d6 Migrate to self-hosted Gitea
- origin now points at git.lazypugs.com/ckoch/UltraWidePatches
- rewrite tools/publish.sh for Gitea's API (token via GITEA_TOKEN env, never
  stored on disk); creates/updates the release and uploads the game zip
- update the remaining self-referential link to the Gitea URL

Upstream links (SUWSF, Ultimate ASI Loader, Lyall's patterns) intentionally
still point at GitHub - those are third-party projects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 12:03:21 -04:00
ckochandClaude Opus 4.8 5d6fd277c9 Restructure into multi-game UltraWidePatches umbrella
Generalize the project from a single GB4 fix into a collection that can host
ultrawide patches for many games.

- games/<Game>/{SUWSF.ini,game.conf,README.md}; GB4 moved in as the first entry
- game.conf carries all game-specific data (appid, exe, paths, loader, launch
  option), so install.sh is fully generic: ./install.sh <Game> [uninstall]
- installer gains GAME_DIR / PREFIX_INI_FILE / LOADER_NAME overrides; verified
  install -> idempotent re-run -> uninstall leaves the tree pristine
- tools de-hardcoded: dump_decrypted.py takes an exe name, read_protonlog.sh
  takes an appid, aob.py takes a dump + game ini, build_release.sh takes a game
- README rewritten as an umbrella index with an "adding a game" guide
- LICENSE copyright -> programmingPug

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 11:21:20 -04:00
ckochandClaude Opus 4.8 b37677cbc1 Add GitHub publish script
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 20:21:52 -04:00