Properties2
| Type | Practice |
| Note created | May 18, 2026 |
This documents the launcher architecture for running FL 26 on the Windows PC in a way that keeps the Steam overlay + Steam Input working, the game elevated, and Sider at Medium integrity at the same time.
The problem
Three constraints conflict on the same launch:
- Steam Controller / Steam Input require Steam’s overlay to attach to the game, which means Steam must launch the chain.
FL_2026.exeneeds to run elevated — when it isn’t, Konami’s online-services dialog steals focus and breaks controller capture.sider.exemust NOT run elevated — it crashes at High IL.
The shipped FL 2026 start.exe (a ~170 MB bundled launcher with an asInvoker manifest) spawns both sider.exe and the game inside its own process, so they always share its integrity level. If you elevate the launcher to satisfy (2), you also elevate Sider and break (3).
How the fix works
sider.dll is already injected into FL_2026.exe via the dxgi.dll proxy chain in the FL26 root (it’s a ReShade build with a Sider chain-load). The in-game hook runs at the game’s IL automatically — the external sider.exe is only the Lua module host / config side-process and can safely live at Medium IL.
So the launcher splits the two halves across integrity levels:
- The game runs at the script’s IL (admin, because Steam launches us admin).
sider.exeis spawned through a de-elevation trampoline so it lands at Medium IL regardless of who started the script.
De-elevation methods tried, in order of reliability:
explorer.exe <path>— the running unelevated Explorer process adopts the launch and creates the child at its own (Medium) IL. Most reliable on modern Windows. This is what currently works on Korolev.- One-shot scheduled task with
RunLevel=Limited— Task Scheduler service spawns the child at the user’s default IL. Diagnostic fallback. IShellDispatch2.ShellExecuteviaShell.ApplicationCOM — historically the canonical Raymond Chen trick, but unreliable on hardened Windows builds. Last resort.
The script tries them in that order and logs which one produced a running sider.exe.
The script
D:\SP Football Life 2026\Launch-FL26.ps1 — writes to %LOCALAPPDATA%\Launch-FL26.log for diagnostics, kills leftovers from previous runs, spawns Sider via the de-elevation chain, waits ~3 s for it to set up, then launches FL_2026.exe at the script’s IL.
Steam shortcut wiring
Add a Non-Steam Game in Steam:
- Target:
powershell.exe - Start In:
D:\SP Football Life 2026 - Launch Options:
-NoProfile -ExecutionPolicy Bypass -File "D:\SP Football Life 2026\Launch-FL26.ps1"
Steam itself is currently run as administrator on Korolev, so the script inherits admin without UAC prompts. The Steam overlay attaches to FL_2026.exe because that exe calls SteamAPI_Init() itself (steam_appid.txt lives in the same folder).
The unresolved problem: Sider HUD doesn’t render
The on-screen Sider HUD (toggle = Space, per sider.ini) is not optional — it’s how stadium, ball, kit, and other module selections are made at runtime. Without it, FL 26 is hard to use even though the mods themselves load.
Three players want to hook the DX11 swap chain (DXGI’s IDXGISwapChain::GetBuffer/Present):
- Sider 7.x — needs
GetBufferto draw its overlay HUD into the back buffer. - ReShade — wraps every DXGI call. FL26 ships a custom
dxgi.dll(5,156,120 bytes) that is a SmokePatch ReShade build with a Sider chain-load (the DLL itself contains both “ReShade” and “sider” strings). - Steam Overlay (
gameoverlayrenderer64.dll) — injected by Steam whenever a game is Steam-launched; also hooks DXGI. Critically, this DLL is what reads & applies per-game Steam Input profiles, so removing it kills the Steam Controller remapping. (Forced-off via Steam’s per-game “Enable Steam Overlay” toggle still injects the DLL — that toggle only hides the Shift+Tab UI.)
Possible setups we tested, all on this machine:
| Setup | Sider mods | Sider HUD | Game stable |
|---|---|---|---|
FL26 bundled dxgi.dll + Sider 7.3.3 (default) | ✅ | ❌ — GetBuffer failed spam in sider.log | ✅ |
FL26 bundled dxgi.dll + Sider 7.4.1 | ✅ | renders for a moment, then crash | ❌ — sider.dll 7.4.1 access violation at offset 0x25066 on overlay toggle. None of the loaded Lua modules match the colorsdemo.lua deprecated pattern that 7.4.0 broke, so the crash is likely FL26’s custom PES21_Hook.dll patching sider.dll based on 7.3.3’s struct layout. |
| ReShade removed + Sider 7.3.3 | ✅ | ✅ — renders cleanly | ❌ — crashes after ~3 s in gameoverlayrenderer64.dll (offset 0x000be1f2, exception 0xc000041d). Without ReShade mediating, Sider and Steam Overlay race the DXGI hooks. |
| ReShade removed + Steam Overlay disabled per-game | n/a | n/a | ❌ — same gameoverlayrenderer64.dll crash. Steam’s “Enable Steam Overlay” toggle does NOT prevent DLL injection; it only hides the UI. |
| Launch FL26 outside Steam (bypass injection) | n/a | n/a | game runs but Steam Input falls back to desktop config — per-game Steam Controller profile only applies when Steam is the launcher. So this kills the controller. |
The combination “Steam Controller + Steam Overlay + Sider HUD + ReShade effects” cannot coexist with the current dxgi.dll + Sider 7.3.3.
Where we left off (2026-05-18)
Restored to the stable baseline:
- Sider 7.3.3 (the FL26-bundled version). 7.4.1 backups kept at
SiderAddons\sider.exe.bak-20260518-0053andsider.dll.bak-20260518-0053for later experiments. Sider 7.4.0 zip cached at%TEMP%\sider-7.4.0\for testing the in-between version. - FL26 bundled
dxgi.dll(5,156,120 bytes) back in place. The original “uninstall ReShade” backup atD:\SP Football Life 2026\ReShade-backup-20260518-0108\is now empty except for a copy ofMachetes PES21 Reshade v3.ini(the external preset, originally in~/Downloads/) — that folder can be deleted later. - Launcher script
Launch-FL26.ps1unchanged and working. Sider runs Medium IL, game runs admin. Mods load —sider.logshows steadyGameplayLoader/kserv/LiveCPKactivity. - Sider HUD does NOT render. Game is otherwise fully functional.
Next steps to try (ranked)
- Ask the FL26 / SmokePatch community for the canonical recipe. They built the bundled
dxgi.dll; they almost certainly know how to make the Sider HUD render alongside Steam Overlay + ReShade. evo-web FL26 thread, SmokePatch Discord, pesmodding.com forums. Cheapest path — one good answer skips weeks of trial and error. - Try stock ReShade 6.7+ with the
ModulePathproxy chain (https://reshade.me/releases). The setup:- Replace FL26’s customised
dxgi.dllwith a stock ReShade 6.7+ build at the root. - Put a “Sider chain-load dxgi.dll” inside a new
sider_proxy\subfolder. - In
ReShade.iniset[INSTALL] ModulePath=.\sider_proxy\. - This orders hooks correctly: ReShade owns DXGI first, forwards to Sider, then to system DXGI — eliminates the GetBuffer race. Unknown: whether Sider distributes a standalone chain-load dxgi.dll (the FL26 one is bundled with ReShade; a clean separation may need help from juce69 or community).
- Replace FL26’s customised
- Sider 7.4.x compatibility test. If we get the HUD working with a stock chain (#2), try Sider 7.4.1 on top. The 7.3.4 → 7.4.0 diff has 355 additions / 58 deletions in
sider.cpp— significant overlay-rendering rework that fixed theGetBufferissue on stock setups. - PES21_Hook.dll bisection. If the 7.4.1 crash at
0x25066is in fact PES21_Hook writing to old sider struct offsets, renamePES21_Hook.dlland see whether the overlay then works in 7.4.1. Sacrifices some FL26 features (online-services patches, model accessories) but isolates the cause.
Cached state on disk (Korolev)
| Path | What it is |
|---|---|
D:\SP Football Life 2026\Launch-FL26.ps1 | The current launcher script. |
D:\SP Football Life 2026\dxgi.dll | FL26 bundled ReShade-with-Sider-chain (5,156,120 B). Active. |
D:\SP Football Life 2026\SiderAddons\sider.exe + sider.dll | Sider 7.3.3 (active). |
D:\SP Football Life 2026\SiderAddons\sider.exe.bak-20260518-0053 + sider.dll.bak-20260518-0053 | 7.3.3 binaries (same as active, just backed up before the 7.4.1 attempt). Can be deleted. |
D:\SP Football Life 2026\SiderAddons\gamepad.ini | New file from Sider 7.4.x; was already present. |
D:\SP Football Life 2026\ReShade-backup-20260518-0108\Machetes PES21 Reshade v3.ini | Copy of the external preset originally at ~\Downloads\Machetes PES21 Reshade v3.ini. |
%TEMP%\sider-7.4.1\unzip\sider-7.4.1\sider\ | Extracted 7.4.1 release (sider.exe, sider.dll, gamepad.ini, default sider.ini). |
%TEMP%\sider-7.4.0\unpack\sider-7.4.0\sider\ | Extracted 7.4.0 release. |
Verifying it worked
After a launch from Steam, check:
%LOCALAPPDATA%\Launch-FL26.log— should report which method spawned Sider and its PID + parent process. Parent should beexplorer(PID of the running Explorer, not the script).- Task Manager → Details tab → enable the “Elevated” column.
sider.exeshould show No,FL_2026.exeshould show Yes. SiderAddons\sider.log— should contain “DLL attaching to … Mapped into PES.” and a steady stream ofGameplayLoader/LiveCPKactivity (mods are working).SiderAddons\sider-app.log— should end withMain: Init DONE.
Related
- My Football Life 26 Setup — the mod content / Sider config / module list for this install.
- Sider for Pro Evolution Soccer — what Sider is and how its hook works.
- ReShade — the post-processing layer that conflicts with Sider’s overlay.
- Korolev — the Windows PC this all runs on.