GP-180 Firmware Patcher - Portable single EXE - PARA RC1
======================================================

Windows 10/11 x64. Run GP180FirmwarePatcher.exe and keep this README.txt
next to it. No Python, pip, .NET or other separate installation is needed.
The EXE is unsigned. It runs offline without administrator privileges.
APK is separate; this application produces firmware only and never flashes.

Use
---
1. Open the EXE and optionally click Check components.
2. Choose your untouched GP-180 Firmware V1.1.1.bin.
3. Choose a NEW output filename and click Create & verify.
4. Wait for SUCCESS. Existing files and the original are never overwritten.

Input SHA-256:
e6512040f1a3b7c61a9bbdb32e39adc0dd504c0ea8804ad145a775304653060a
Output SHA-256 (unchanged two-slot PARA RC1):
ab1b92975472983f7250150e639c0f70a009efac42a170960f2f8684b5ec8976

Checks: exact input and output hashes, seven region CRCs, container CRC,
decompression, bounds, read-back and unchanged original. Other firmware
versions, R2/R3 and already modified input are rejected.

Block controls
--------------
Only physical WAH and AMP change type. Select None, then briefly press PARA:
PRE -> WAH -> DST -> AMP -> NR -> EQ -> MOD -> PRE.
Choose an effect after its type. PARA on an active effect changes parameter
pages as usual. Long press is unchanged. Both slots can use the same type
independently; CTRL/footswitch assignments remain tied to physical slots.
CAB, N-S, DLY, RVB and VOL remain fixed. R2/UNI preset migration is not included.
Use the separate shared ValetonSuite GP150/GP180 B2 APK. Existing B2 installs
need no update. Its Block type selector is below the WAH/AMP effects list.

Device testing and recovery
---------------------------
GP-180 RC1 is an experimental community-test build. It has not been booted
on a physical GP-180. Offline emulation, preset/CTRL/resource checks and the
official Suite file-checksum test passed. PASS in this tool verifies the
file, not successful boot, hardware safety or real-time DSP performance.
Back up presets, retain original GP-180 firmware and confirm the official
recovery procedure before a controlled test. Use official Valeton Suite
for flashing. This patcher has no device access and never flashes anything.
Firmware and original download: https://www.valeton.net/firmware/#130-246-wpfd-gp-180
Do not use GP-150 firmware on GP-180 or vice versa. Original files are
identified by their exact hash, regardless of their filename.


Bundling and protection
-----------------------
The runtime extracts into a unique temporary folder at launch and normally
cleans it on exit. No external interpreter or network downloads are used.
Allow approximately 100 MB free temporary space. Do not run as administrator.
Project source files are not distributed. The engine uses compiled Python
bytecode with renamed internal identifiers, packaged inside the EXE.
The executable, engine, patch data and LZO extension have integrity checks.
These are lightweight analysis deterrents and corruption checks, NOT DRM or
a security boundary: a skilled local analyst can bypass them. There is no
anti-debugging, telemetry, machine binding or secret encryption key.
The EXE is not Authenticode-signed; hashes do not prove publisher identity.

Sharing
-------
Share this EXE and README together. No complete original/custom firmware,
APK, signing key or project source is included. Recipients provide their own
original firmware. Patch data contains changed bytes and copy instructions;
this packaging does not establish rights to redistribute vendor material.
This unofficial experimental tool is not affiliated with Valeton.

Command line (optional, windowless)
----------------------------------
GP180FirmwarePatcher.exe --check --report check.json
GP180FirmwarePatcher.exe --create original.bin new.bin --report result.json
GP180FirmwarePatcher.exe --verify new.bin --report verify.json
Quote paths containing spaces. Report filenames must also be new.
Exit code 0 means success, nonzero means failure.

Portable release verification
-----------------------------
18 checks passed on the built Windows EXE and matching GUI engine.
Includes byte-identical GP-180 RC1 output, all CRCs, no external Python on
PATH, wrong model/input rejection, corrupted output rejection, existing
file/hardlink protection, EXE/component tamper detection, temporary-file
cleanup and GUI Create & verify callback. Original firmware stayed unchanged.
Tested on this Windows host, not a clean Windows VM or physical GP-180.

GP180FirmwarePatcher.exe SHA-256:
3c79da909b6da77e761167063bce9ec715a429d06960db04f5bb603a3822e951
