Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MegaVolts Patcher Tool

A small Windows tool I use to package and ship game updates for MegaVolts.

I point it at the game build folder, it splits every file into fixed-size chunks, builds a signed manifest, and uploads everything to my web host. The launcher on the client side reads the manifest and only downloads the chunks that actually changed, so patches stay small.

What it does

  • Scans the game folder and lists every file (with a search box to filter and checkboxes to exclude files you don't want shipped).
  • Splits each file into 4 MB chunks and names each chunk by its SHA-1 hash. Identical chunks are stored once, so unchanged files cost nothing to re-ship.
  • Writes a manifest.json describing every file and the chunks it's made of.
  • Signs the manifest with RSA so the client can verify it wasn't tampered with.
  • Deploys the chunks and manifest to a remote with rclone.

Output lands in Output/:

Output/
  chunks/      content-addressed chunk files (aa/bb/aabb....chunk)
  manifests/   manifest.json + manifest.json.sig
  signing/     RSA keypair (private.key stays local)

Why chunks

The idea is borrowed from how Steam ships updates. Instead of downloading a whole new build every patch, the game is broken into small content-addressed pieces. A chunk only exists once no matter how many files or builds contain it, and the client only pulls the pieces it's missing. A one-line code change means the player downloads a few kilobytes, not the whole game.

Usage

  1. Build the solution in Visual Studio (x64).
  2. Run the tool from the root of your game build folder.
  3. Uncheck anything you don't want shipped, then hit Generate.
  4. Set up an rclone remote (rclone config) and edit deploy.cfg so the remote name matches, then hit Deploy.

Excluded files are remembered in exclude_list.cfg between runs.

About

Native Windows desktop app. Plain Win32 for the UI and modern C++ for the rest — std::filesystem, threads, and atomics for the parallel chunking, and the Windows CNG API (bcrypt) for SHA-1 hashing and RSA signing. No external runtime and no dependencies beyond rclone for the upload step.

About

Windows desktop tool for packaging and deploying game updates using content-addressed chunking, SHA-1 deduplication, RSA-signed manifests, and rclone-based deployment

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages