Skip to content

asdfmonster261/patchforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

241 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PatchForge

A video game binary patch and installer generator that produces self-contained Windows executables. Three modes:

  • Update Patch — diff an old and new copy of a game directory and produce a standalone patcher .exe users double-click to update their install
  • Repack — compress a complete game directory into a standalone installer .exe users double-click to install the game from scratch
  • Archive — log into Steam, watch one or more appids, download every new build to a 7z archive, optionally crack + upload + post — fully automated mirroring of game updates

Full documentation is on the wiki.


Requirements

  • Python 3.10+
  • PySide6 ≥ 6.5.0 (GUI only; CLI works without it)
  • Linux build host (outputs are Windows executables)
  • xz CLI (for multi-threaded LZMA repack compression)
  • zstd CLI (for Zstandard repack compression)
  • MinGW-w64 cross-compiler (only needed to rebuild stubs from source)

For Steam archive mode (downloads, polling, BBCode posts), install with the optional archive extra: pip install -e ".[archive]".

Installation

git clone https://github.com/asdfmonster261/patchforge
cd patchforge
pip install -e .                    # patch + repack mode only
pip install -e ".[archive]"         # + Steam archive mode (steam[client], gevent, etc.)

The Linux engine binaries (engines/linux-x64/) are included in the repository. They are statically linked against everything except libc and run on any x86-64 Linux.


Quick start

# GUI
patchforge

# Update patch (CLI)
patchforge build \
  --source-dir game_v1.0/ \
  --target-dir game_v1.1/ \
  --output-dir dist/ \
  --app-name "My Game" \
  --version 1.1

# Repack installer (CLI)
patchforge repack \
  --game-dir game/ \
  --output-dir dist/ \
  --app-name "My Game" \
  --codec lzma \
  --compression max \
  --threads 8

# Archive mode — log in once, then watch an appid
patchforge archive login           # one-shot QR / password login
patchforge archive download \
  --project mygame.xarchive \
  --restart-delay 1800             # poll every 30 minutes

For the full CLI reference, engine presets, repack options, archive-mode polling cadence, project file formats, and binary format documentation see the wiki.

About

Video game binary patch maker — PySide6 GUI + CLI, HDiffPatch/xdelta3/JojoDiff engines, custom Win32 stub output

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages