Skip to content

0.0.1 - Initial release

Pre-release
Pre-release

Choose a tag to compare

@diviatrix diviatrix released this 07 Aug 10:12
· 7 commits to main since this release

This is initial GORO Patcher release.
It works, but this release is for testing purposes and feedback collection.

Patcher UI

Features

  • GRF 2.0 read/write/merge — full format implementation with 46-byte header (rAthena layout), zlib-compressed file table, EUC-KR filename decoding
  • GRF patching — merge .grf files directly or extract .zip contents into target GRF
  • Raw patching — extract zip files to game directory with backup support
  • HTTP downloader — resume support (Range headers), retry with backoff, xxhash64 verification
  • Self-update — patcher can update itself from manifest
  • Process detection — checks if game is running before patching
  • State machine — clean state transitions (idle → checking → downloading → patching → ready/error)
  • Polling-based progress — real-time progress via GetProgress() bound method
  • Crash recovery — atomic GRF save, .bak restoration, re-download on hash failure
  • Auto-check on start — patcher checks for updates automatically on launch
  • Cross-platform buildsscripts/build.sh (Linux/cross-compile) and scripts/build.bat (native Windows)
  • Hash toolhashfile command for generating XXHash64 hashes for manifest
  • Patch validation — patcher validates applied patches against manifest on start
  • Repair — redownload and reapply from first mismatching patch when corruption detected

Technical

  • Stack: Go + Wails v3 + vanilla HTML/CSS/JS
  • GRF format: 46-byte header, FileTableOffset relative to header end (SEEK_CUR), data blocks before file table
  • Version tracking: patch ID = version, stored in goro-patch.json with patch metadata, no separate version field in manifest
  • Config: goro-config.json with manifest_url and exe_name
  • Manifest: plist.json with patch_base_url and patches array
  • File encoding: EUC-KR filenames decoded to UTF-8 via golang.org/x/text/encoding/korean

Project Structure

  • Source code in src/ directory
  • Build output to build/ directory
  • Documentation in doc/
  • Build script build.sh for Linux and Windows