Files
riojoy/deploy/README-DEPLOY.txt
T
CydandClaude Opus 4.8 67b56559f7 Deploy: RIOJoy payload folder + pre-uninstall cleanup
Rename the package payload folder to RIOJoy (was riojoy) so it extracts
to C:\games\RIOJoy, and add a pre-uninstall path the console can run
before deleting the folder.

- pre-uninstall.bat (inside RIOJoy\): self-elevating entry point that
  runs uninstall-rio.ps1.
- uninstall-rio.ps1: stops the tray app, removes the HKLM Run entry,
  uninstalls ViGEmBus (-KeepDriver to skip), and clears per-user config
  for every profile (-KeepConfig to skip). Idempotent and non-fatal.
- build-package.ps1 bundles both; README documents the uninstall flow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:31:08 -05:00

67 lines
3.3 KiB
Plaintext

RIOJoy — cockpit deployment package
====================================
This package deploys RIOJoy to a single directory (e.g. C:\games\RIOJOY) and runs
all local installation steps from postinstall.bat. It uses the signed ViGEmBus
virtual-controller driver, so there is NO test signing, NO Secure Boot change, and
NO reboot.
Contents
--------
postinstall.bat Entry point (at the root). Elevates, then runs
RIOJoy\install-rio.ps1.
RIOJoy\ The payload folder:
app\ The RIOJoy tray application (self-contained .NET 8 — no runtime
install required on the target machine).
vendor\ The signed ViGEmBus installer (Nefarius, WHQL/attestation-signed).
install-rio.ps1 The actual install steps (idempotent).
pre-uninstall.bat Cleanup entry point. Elevates, then runs uninstall-rio.ps1.
Run this before deleting the RIOJoy folder.
uninstall-rio.ps1 The actual cleanup steps (idempotent).
VERSION.txt Build stamp (date + git short SHA).
What postinstall.bat does
-------------------------
1. Elevates to administrator (UAC) if not already elevated.
2. Installs ViGEmBus silently if its driver service is not already present.
3. Registers RIOJoy to start at logon (HKLM ...\Run, machine-wide).
4. Launches RIOJoy.
Deploying with TeslaConsole
---------------------------
1. Extract this zip so that postinstall.bat and the RIOJoy\ folder sit together
(e.g. under C:\games\, giving C:\games\postinstall.bat and C:\games\RIOJoy\).
2. Run postinstall.bat ELEVATED (TeslaConsole should run it as administrator).
It is idempotent — re-running it is safe (e.g. for updates). The app and
ViGEmBus install from the RIOJoy\ folder; install-rio.ps1 locates itself, so
the RIOJoy\ folder can live wherever it is extracted.
Uninstalling with TeslaConsole
------------------------------
Before deleting the RIOJoy folder, run RIOJoy\pre-uninstall.bat ELEVATED. It
stops the tray app (releasing file locks), removes the logon entry, uninstalls
ViGEmBus, and clears per-user config (%APPDATA%\RIOJoy) for every profile. It is
idempotent and non-fatal — safe even if RIOJoy was never fully installed. The
console can then delete the folder cleanly. Use -KeepDriver to leave ViGEmBus in
place, or -KeepConfig to leave per-user config.
After install
-------------
* RIOJoy runs in the system tray. Right-click it to pick/edit profiles, set the
auto-switch executables, and toggle output to the PC.
* The RIO's joystick output appears to games as a standard "Xbox 360 Controller"
(verify in joy.cpl). Note the XInput layout limits joystick BUTTONS to 11
(A, B, X, Y, LB, RB, Back, Start, L3, R3, Guide); bind everything else to the
keyboard. The hat maps to the D-pad; axes map to the sticks and triggers.
* Per-machine config lives in %APPDATA%\RIOJoy\config.json for the running user.
Building this package (on a dev machine)
-----------------------------------------
Requires the .NET 8 SDK and the signed ViGEmBus installer.
powershell -ExecutionPolicy Bypass -File deploy\build-package.ps1 `
-VigemInstaller <path-to-ViGEmBus_x.y.z_x64_x86_arm64.exe>
(Or drop ViGEmBus_*.exe into deploy\vendor\ and omit -VigemInstaller.)
Output: dist\RIOJoy-<version>.zip