Releases: diviatrix/GORO-Patcher
Releases · diviatrix/GORO-Patcher
Release list
0.0.2 - Patchnotes
[0.0.2] - 2026-08-08
Features
- Notes system — display markdown notes (patch notes, news, announcements) in the patcher UI
- Configured via
notes_urlingoro-config.jsonpointing tonotes.json - Notes are markdown files rendered to HTML on the Go side (
gomarkdown/markdown) - Custom CSS support via
notes_css_urlfor styling notes - Notes sorted by ID descending — newest first
- Supports
file://,http://,https://protocols
- Configured via
Fixes
- External link handling — links in notes open in default browser, not inside patcher
- Drag-and-drop prevention — dropping files onto patcher UI no longer opens them
0.0.1 - Initial release
This is initial GORO Patcher release.
It works, but this release is for testing purposes and feedback collection.
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
.grffiles directly or extract.zipcontents 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,
.bakrestoration, re-download on hash failure - Auto-check on start — patcher checks for updates automatically on launch
- Cross-platform builds —
scripts/build.sh(Linux/cross-compile) andscripts/build.bat(native Windows) - Hash tool —
hashfilecommand 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,
FileTableOffsetrelative to header end (SEEK_CUR), data blocks before file table - Version tracking: patch ID = version, stored in
goro-patch.jsonwith patch metadata, no separate version field in manifest - Config:
goro-config.jsonwithmanifest_urlandexe_name - Manifest:
plist.jsonwithpatch_base_urland 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.shfor Linux and Windows
