Skip to content

About

Skinnable C++17 game launcher for Windows — Dear ImGui/DirectX 11 UI, chunked patcher with RSA-signed manifests, and megavolts:// custom protocol handler

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MegaVolts Launcher

C++ game launcher for MegaVolts. A small, skinnable launcher for Windows that draws its own borderless UI with Dear ImGui and DirectX 11, keeps the game up to date with a chunked patcher, and can start the game from the website through a megavolts:// link, like Steam's steam://.

Features

Launcher

  • Custom borderless window with rounded corners, transparency and a shadow
  • Fully skinnable from launcher.ini (window, logo, buttons, news, progress bars, fonts, colors), missing keys are filled with defaults
  • FreeType fonts with configurable size, spacing and outline
  • DPI aware with runtime scaling
  • Single instance only, using a named mutex
  • Play, Update and Exit buttons plus web links (Club, Shop, Support, Discord, News)
  • Animated progress bars that follow the real patch progress
  • Starts the game without the launcher's elevated token

Patcher (src/patch/)

  • Chunked patching, files are split into 4 MiB chunks and only the changed ones download
  • JSON manifest with per-chunk SHA-1, read by a small custom parser (MiniJsonParser)
  • Manifest is verified with an RSA signature (BCrypt) before anything is applied
  • Every chunk is SHA-1 checked before it's kept
  • Self update: the launcher can patch itself, restart, and clean up the old copy
  • A bare exe can pull its own skin files (LR\) through the same chunk system
  • Won't patch while the game or launcher is running, shows per file and total progress plus speed
  • Networking over WinHTTP, no extra HTTP library

megavolts:// link

  • The launcher registers itself for megavolts:// in the user registry, no admin needed
  • The Start button on the website opens megavolts://startgame, then it patches and runs the game

How it's built

  • Multithreaded: the patcher runs on its own thread so the UI stays smooth, the progress animation runs on another
  • Thread safe state with std::atomic and std::mutex so the UI and patch threads don't clash
  • Patching can be cancelled with a flag the worker checks between steps
  • Progress is sent back to the UI through callbacks so the two sides stay separate
  • RAII wrappers for handles, the mutex and process tokens so nothing leaks on errors
  • INI reader handles UTF-8 and UTF-16 byte order marks
  • DPI and monitor functions loaded at runtime with fallbacks, runs on Windows 7 to 11
  • Written in C++17, just the Windows SDK and a few small vendored libraries

Dependencies

About

Skinnable C++17 game launcher for Windows — Dear ImGui/DirectX 11 UI, chunked patcher with RSA-signed manifests, and megavolts:// custom protocol handler

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages