Skip to content

tzero86/warwolf-patcher

Repository files navigation

██     ██  ▄▄▄  ▄▄▄▄  ██     ██  ▄▄▄  ▄▄    ▄▄▄▄▄   █████▄  ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄ ▄▄ ▄▄ ▄▄▄▄▄ ▄▄▄▄  
██ ▄█▄ ██ ██▀██ ██▄█▄ ██ ▄█▄ ██ ██▀██ ██    ██▄▄    ██▄▄█▀ ██▀██  ██  ██▀▀▀ ██▄██ ██▄▄  ██▄█▄ 
 ▀██▀██▀  ██▀██ ██ ██  ▀██▀██▀  ▀███▀ ██▄▄▄ ██      ██     ██▀██  ██  ▀████ ██ ██ ██▄▄▄ ██ ██
        Ace Combat: Assault Horizon - Enhanced Edition Save Fix
                   Warwolf Patcher  v1.0

────────────────────────────────────────────────────────────────────────────────
A fix for the delisted Enhanced Edition that can no longer create save data
through Steam Cloud. Warwolf Patcher installs a small proxy DLL that keeps
every other Steam API function unchanged, but redirects only the
ISteamRemoteStorage file operations to your local folder:

    C:\Users\<you>\Documents\NAMCO\ACAH\savedata

Your game executable is NOT modified. Named for Warwolf Squadron (Bishop's unit).


QUICK START (recommended)
─────────────────────────
1. Get WarwolfPatcher.exe (from the latest release, or build it - see below).
2. Run WarwolfPatcher.exe (no install needed).
   - It auto-detects your game folder from Steam. If it can't, just drop the
     .exe next to Ace Combat_AH.exe and run it again.
3. In the menu choose  Apply fix  and press Enter.
4. Launch the game normally from Steam.

That's it - saves now write locally and the in-game "limited space" error is gone.


USING THE PATCHER
─────────────────
WarwolfPatcher.exe is a small native TUI (~140 KB, no dependencies):

  WarwolfPatcher.exe            Interactive menu (default)
  WarwolfPatcher.exe --apply    Apply fix silently / for scripts
  WarwolfPatcher.exe --restore  Restore the original Steam API
  WarwolfPatcher.exe --preview  Render the menu once and exit
  WarwolfPatcher.exe --version  Print version
  WarwolfPatcher.exe --help     Usage

Menu actions:
  - Apply fix          installs the proxy and creates the save folder
  - Restore original   undoes the fix (restores the backed-up DLL)
  - Open save folder   opens Documents\NAMCO\ACAH\savedata in Explorer
  - About              what the fix does and why


FALLBACK: the .bat scripts
──────────────────────────
If you can't or don't want to run the .exe (e.g. antivirus blocks it):

  warwolf_apply.bat     installs the fix (same effect as "Apply fix")
  warwolf_restore.bat   restores the original Steam API

Both must sit next to warwolf_proxy.dll in the game folder.


FILES IN THIS REPO
──────────────────
  WarwolfPatcher.exe          Prebuilt native patcher (bundled proxy DLL).
  warwolf_patcher.c           Patcher source.
  warwolf_patcher.rc          Manifest resource script.
  WarwolfPatcher.exe.manifest asInvoker manifest (prevents UAC prompts).
  proxy_data.h                Generated: the proxy DLL embedded as a C array.
  gen_payload.py              Regenerates proxy_data.h from warwolf_proxy.dll.
  warwolf_proxy.dll           The 32-bit proxy DLL itself.
  warwolf_proxy.c             Full source of the proxy DLL.
  warwolf_proxy.def           Export forwarding definitions for the proxy.
  warwolf_apply.bat           Batch installer (fallback).
  warwolf_restore.bat         Batch uninstaller (fallback).
  README.txt                  This file.

Note: Valve's original steam_api.dll is NOT included. The patcher backs up
your own installed copy as steam_api_original.dll on first apply.


BUILDING
────────
Requires MinGW-w64 (i686, 32-bit) since the game is a 32-bit executable.

  # 1. Build the proxy DLL
  gcc -m32 -shared -O2 -o warwolf_proxy.dll warwolf_proxy.c \
      warwolf_proxy.def -lshell32 -lshlwapi -Wl,--enable-stdcall-fixup

  # 2. Regenerate the embedded payload header
  python gen_payload.py warwolf_proxy.dll proxy_data.h

  # 3. Build the patcher (the manifest stops UAC installer-detection prompts)
  windres warwolf_patcher.rc -O coff -o warwolf_patcher_res.o
  gcc -m32 -O2 -o WarwolfPatcher.exe warwolf_patcher.c warwolf_patcher_res.o \
      -lshlwapi -lshell32 -Wl,--enable-stdcall-fixup


HOW IT WORKS
────────────
- steam_api.dll in the game folder is replaced by our proxy.
- All exports are forwarded to steam_api_original.dll (your real Valve DLL),
  so achievements, matchmaking, leaderboards, etc. keep working.
- Only SteamRemoteStorage() is intercepted: the returned interface's vtable is
  patched in place so the save-related methods (FileWrite/FileRead/FileExists/
  FileDelete/GetFileSize/GetFileCount/GetFileNameAndSize/GetQuota) read and
  write to your local Documents folder instead of Steam Cloud.


IMPORTANT NOTES
───────────────
- Do NOT run Steam's "Verify integrity of game files" while the fix is active.
  If you do, just run WarwolfPatcher.exe -> Apply fix again.
- Saves are LOCAL ONLY. They do not sync through Steam Cloud. Back up the
  savedata folder yourself if you care about it.
- If your antivirus quarantines the proxy DLL (heuristics on injected DLLs),
  add the game folder to exclusions, or use the .bat installer.


TROUBLESHOOTING
───────────────
- "Game folder not found": place WarwolfPatcher.exe next to
  Ace Combat_AH.exe and run it again.
- Still can't save after applying: confirm steam_api.dll in the game folder
  has the same size/date as the bundled proxy. Check the log at
  Documents\NAMCO\ACAH\steam_api_proxy.log.

License: MIT (see LICENSE). Valve's steam_api.dll is not redistributed.

About

Warwolf Patcher — native TUI save fix for Ace Combat: Assault Horizon Enhanced Edition (delisted). Redirects Steam Cloud saves to local disk.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages