diff options
| author | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2026-04-03 09:43:16 -0400 |
|---|---|---|
| committer | xXJSONDeruloXx <danielhimebauch@gmail.com> | 2026-04-03 09:43:16 -0400 |
| commit | d1ce48eba2a38909f33df965ab672249156dc47d (patch) | |
| tree | 3f2fd92532066065cd5131e4d83e27f5855e6df9 /defaults | |
| parent | bb35f18ccf17437ee484f92319da314164b4499b (diff) | |
| download | Decky-Framegen-d1ce48eba2a38909f33df965ab672249156dc47d.tar.gz Decky-Framegen-d1ce48eba2a38909f33df965ab672249156dc47d.zip | |
fix: migrate per-game FGType → FGInput/FGOutput on patch and launch
Already-patched games have OptiScaler.ini entries using the old FGType
key (e.g. FGType=nukems). The v0.9-final DLL no longer recognises
FGType and silently falls back to nofg, breaking frame gen without any
error.
Add _migrate_optiscaler_ini() in main.py which:
- detects FGType=<value> in a per-game INI
- if FGInput is absent: replaces the single FGType line with both
FGInput=<value> and FGOutput=<value>
- if FGInput is already present (INI already migrated): just drops the
stale FGType line
- is a no-op when FGType is not present (fresh installs, already
migrated)
Call the migration from _manual_patch_directory_impl immediately before
_disable_hq_font_auto so any re-patch via the GUI heals the INI.
Mirror the same logic in fgmod.sh so that games using the launch
wrapper are migrated automatically on the very next launch, with no
manual re-patch required.
Diffstat (limited to 'defaults')
| -rwxr-xr-x | defaults/assets/fgmod.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index cffce14..efc1d59 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -137,6 +137,25 @@ fi # an external TTF that is not present. Only normalize the default auto value. sed -i 's/^UseHQFont[[:space:]]*=[[:space:]]*auto$/UseHQFont=false/' "$exe_folder_path/OptiScaler.ini" || true +# === Migrate FGType → FGInput/FGOutput (pre-v0.9-final INIs) === +# v0.9-final split the single FGType key into FGInput + FGOutput. Games that were +# patched with an older build will have FGType=<value> with no FGInput/FGOutput, +# causing the new DLL to silently use nofg. Fix that here on every launch. +_fgtype_ini="$exe_folder_path/OptiScaler.ini" +if grep -q '^FGType=' "$_fgtype_ini" 2>/dev/null; then + _fgtype_val=$(sed -n 's/^FGType=\(.*\)/\1/p' "$_fgtype_ini") + echo "🔄 Migrating FGType=$_fgtype_val → FGInput/FGOutput in OptiScaler.ini" + logger -t fgmod "🔄 Migrating FGType=$_fgtype_val → FGInput/FGOutput" + if grep -q '^FGInput=' "$_fgtype_ini"; then + # FGInput already present — INI already in v0.9-final format; just drop FGType + sed -i '/^FGType=/d' "$_fgtype_ini" || true + else + # Replace FGType=X with FGInput=X + FGOutput=X + sed -i "s/^FGType=.*$/FGInput=$_fgtype_val\nFGOutput=$_fgtype_val/" "$_fgtype_ini" || true + fi +fi +unset _fgtype_ini _fgtype_val + # === ASI Plugins Directory === if [[ -d "$fgmod_path/plugins" ]]; then echo "🔌 Installing ASI plugins directory" |
