Member
- Jun
- Threads
- 2
- 79
- 7
- 8
AD: Mt2009 - Mobile & PC - 30 January 2026 CHECK THE PRESENTATION!
I have been using this forum a lot recently, and I want to sincerely thank all of you for everything you do here. You are making a great contribution by keeping it alive!
So, I have decided to contribute as well. It's not something big, but I hope it will be useful for those looking for a framework to develop something professional.
I wish you all the best, and if you need any help or want to integrate new modules into it, please send me a private message here on the forum I will be more than happy to assist you!
On this occasion, I also want to thank the admins for their work.
PatchMaker
AutoPatcherCore
So, I have decided to contribute as well. It's not something big, but I hope it will be useful for those looking for a framework to develop something professional.
I wish you all the best, and if you need any help or want to integrate new modules into it, please send me a private message here on the forum I will be more than happy to assist you!
On this occasion, I also want to thank the admins for their work.
To see the download links,
Log in or register now.
PatchMaker
Key Features:
- Folder Scanning & Manifest Generation:
Users can select a folder containing patch files. The application recursively scans the folder and collects details such as file paths, default version, and file hashes (using SHA256). It then generates a JSON manifest that includes each file's information—combining the file path with its version—and additional data such as download URLs and optional delta download URLs. - FTP Upload:
PatchMaker supports uploading patches and the manifest file directly to an FTP server. Users can configure FTP credentials and target folder details, and the application handles connection management, directory creation, and file transfers, logging progress and results throughout the process. - Settings Management:
A dedicated settings window allows users to configure various parameters, including:- Base and delta download URLs
- FTP server credentials (host, username, password, target folder)
- Default file version
- An option to enable or disable delta downloads
- Language selection for the UI
All settings are automatically saved upon closing the settings window, ensuring that any changes persist for subsequent sessions.
- Multilingual Support:
The application includes a mechanism to switch languages dynamically using resource dictionaries. This allows the UI texts to be updated based on the selected language, making PatchMaker accessible to users in multiple regions. - Modern Dark-Themed UI:
The user interface is designed with a dark theme using Material Design principles. It features a custom title bar, a set of compact action buttons (e.g., Select Folder, Generate Manifest, Upload Patches, Settings, About), and a ListView that presents patch information clearly with combined columns for file info. The design emphasizes high contrast, ensuring that all text and controls are easily visible.
Summary:
PatchMaker automates the generation and distribution of software patches by combining folder scanning, manifest creation, and FTP upload functionalities into a single, professional application. Its settings window allows for extensive customization, and its multilingual support makes it adaptable to different user locales. The use of a modern dark theme and adherence to the MVVM pattern further enhance its usability and maintainability.AutoPatcherCore
Key Components and Functionality
- Manifest Handling:
The library defines two primary model classes:- ManifestEntry: Represents an individual file entry, including its relative file path, version, SHA256 hash, download URL, and an optional delta download URL.
- Manifest: Contains a list of ManifestEntry objects and offers a static asynchronous method (LoadFromUrl) to fetch and deserialize a manifest from a given URL. This enables dynamic updates by retrieving the manifest over HTTP.
- File Downloading and Patching:
The Patcher class is responsible for the core patching logic. Its main tasks include:- Scanning for Updates: It compares the local file’s hash with the one specified in the manifest to determine if an update is necessary.
- Backup and Rollback: Before applying an update, it creates a backup of the current file. If the update process fails, a rollback is performed to restore the previous version.
- Downloading Files: The class downloads files (or delta patches, if available) using HTTP with retry logic and progress reporting. It leverages parallel downloads with an adaptive limit to improve efficiency.
- File Verification: After downloading, it computes the SHA256 hash of the file and (optionally) verifies its digital signature to ensure file integrity and authenticity.
- Progress Reporting: The patcher emits progress updates via an event, including a percentage and status message that reflect the current download speed and estimated time remaining.
- Logging and Telemetry:
A static Logger class records events and errors by writing them both to the console and to a log file. It also supports sending telemetry data (e.g., via a Discord webhook) to help monitor the patching process. - Concurrency and Resilience:
The library uses asynchronous methods and parallel processing (with a configurable maximum number of parallel downloads) to efficiently handle large updates. It also implements retry logic for network operations and includes mechanisms for rollback if any file fails to update correctly.

