/rpatchur

A customizable, cross-platform patcher for Ragnarok Online clients.

Primary LanguageRustApache License 2.0Apache-2.0

RPatchur

Build Status Build status

rpatchur is a customizable, cross-platform patcher for Ragnarok Online clients.

Screenshot

screen

Features

  • Customizable, web-based UI
  • Configurable through an external YAML file
  • HTTP/HTTPS support
  • GRF file patching (version 0x101, 0x102, 0x103 and 0x200)
  • THOR patch format support
  • Drop-in replacement for the Thor patcher
  • Cross-platform (Windows, Linux, macOS)

Known Limitations

  • Can only build GRF files in version 0x200
  • Cannot auto-update
  • No support for RGZ/GPF patch formats
  • Cannot patch GRF files containing multiple entries pointing to the same offset

Documentation

You can find the project's documentation here.

Examples

You can find example files for the UI and the configuration file in the examples directory.

Building

The rpatchur directory contains the actual patcher code (UI, archive merging, etc.). The mkpatch directory contains a THOR patch archive generation utility. The gruf directory contains the core library for parsing and building GRF and THOR archives.

To clone the repository and build everything, simply run:

$ git clone https://github.com/L1nkZ/rpatchur.git
$ cd rpatchur
$ cargo build --release

Note: Rust 1.42 or later is required.

Cross Compilation

It is recommended to build the project on the platform that you target. However, for those of you who'd like to compile from Linux and distribute to Windows, there's a Dockerfile here. This Dockerfile builds a Docker image that can be used to easily cross-compile the project from Linux to Windows.

Note: The executable's icon and description will be missing for cross compiled builds.

Additional Notes

The icon used for Windows executables was taken from rathena.org.

License

Copyright (c) 2020-2021 rpatchur developers

rpatchur is distributed under the terms of both the MIT License and the Apache License 2.0.

See the LICENSE-APACHE and LICENSE-MIT files for license details.