Phase 8D: universal deployment package (XP + Win10/11, two entry points)
One RIOJoy-<ver>.zip now deploys on both OS generations (~75 MB with the offline XP prerequisites): - Layout: RIOJoy\app (net48 x64) + RIOJoy\app-xp (net40 x86) + RIOJoy\vendor (ViGEmBus; vendor\xp: .NET 4.0 offline installer + KB2468871, both signature-verified; RioGamepadXP driver slots in when 8B lands - build warns/skips until then). - RIOJoy\install-core.bat: shared OS-detecting install logic (ver -> 5.1 = XP); pure cmd.exe on the XP path, delegates to install-rio.ps1 on 10/11. Exports RIOJOY_APPDIR for shortcut creation. - postinstall.bat (TeslaConsole, unattended): elevates, runs the core, then deletes install.bat + README.txt so C:\games stays clean. - install.bat (standalone computers): same core + Start Menu/desktop shortcuts via make-shortcut.vbs (XP-safe); keeps the README. - README.txt at the zip root explains which entry point to run. - deploy *.ps1 re-encoded UTF-8-with-BOM: Windows PowerShell read the BOM-less files as ANSI, where an em-dash byte parses as a curly quote and breaks string parsing (bit install-rio.ps1 in dry-run testing). Verified: zip layout correct; extracted package dispatch-tested on Win10 non-elevated (OS detect -> modern route -> admin guard, system untouched). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+11
-6
@@ -294,7 +294,8 @@ Replaces the legacy Google-Sheet → `.data` → GIMP → Script-Fu pipeline
|
||||
- To confirm at Phase 7: target wallpaper resolution(s); static wallpaper vs.
|
||||
live overlay (e.g. lit-button highlighting mirroring lamp state).
|
||||
|
||||
### Phase 8 — Windows XP compatibility (dual-target) — planned
|
||||
### Phase 8 — Windows XP compatibility (dual-target) — in progress
|
||||
(8A/8C/8D done ✅; remaining: 8B driver + 8E XP-VM/cabinet verification)
|
||||
Bring RIOJoy back to the original XP-era cabinets (x86, XP SP3) **without
|
||||
regressing Windows 10/11**. Strategy: one codebase, two flavors, **one
|
||||
universal deployment archive**. The mapping editor ships everywhere
|
||||
@@ -310,7 +311,7 @@ XP consumes pre-rendered wallpapers.
|
||||
| JSON | System.Text.Json → **Newtonsoft 13** | Newtonsoft 13 (STJ needs net461+; one serializer for both flavors) |
|
||||
| Install scripts | PowerShell | **.bat only** (XP has no in-box PowerShell) |
|
||||
|
||||
- **8A — Core retarget** (`net48;net40` multi-target): de-Span the
|
||||
- **8A — Core retarget — done ✅** (`net48;net40` multi-target): de-Span the
|
||||
protocol/serial layer (≈20 uses / 11 files → `byte[]`/`ArraySegment`;
|
||||
System.Memory doesn't go below net45, and at 9600 baud Span buys nothing);
|
||||
swap System.Text.Json → Newtonsoft in `ConfigStore`/`OverlayTemplateStore`
|
||||
@@ -341,16 +342,20 @@ XP consumes pre-rendered wallpapers.
|
||||
*Staging:* the XP app is useful before the driver lands — milestone 1
|
||||
ships keyboard/mouse + lamps + plasma (joystick = Null sink), the driver
|
||||
follows as milestone 2.
|
||||
- **8C — Tray on net40/x86:** multi-target `RioJoy.Tray` (net40 drops the
|
||||
- **8C — Tray on net40/x86 — done ✅:** multi-target `RioJoy.Tray` (net40 drops the
|
||||
ViGEm + RioJoy.Overlay references); gate `WallpaperMakerForm` + overlay
|
||||
generation; `WallpaperApplier` converts PNG→BMP via GDI+ before
|
||||
`SystemParametersInfo` (harmless on 10/11, required on XP); profile editor
|
||||
stays (Segoe UI falls back to Tahoma). XP cabinets consume wallpapers
|
||||
pre-rendered on a modern machine (`RioProfile.WallpaperPath` travels with
|
||||
the config).
|
||||
- **8D — Packaging (decided: one universal archive, two install entry
|
||||
points).** `build-package.ps1` produces a single `RIOJoy-<ver>.zip` that
|
||||
deploys on **both** XP and 10/11:
|
||||
- **8D — Packaging — done ✅ (one universal archive, two install entry
|
||||
points).** `build-package.ps1` produces a single `RIOJoy-<ver>.zip` (~75 MB
|
||||
with the offline XP redistributables) that deploys on **both** XP and 10/11;
|
||||
the RioGamepadXP driver files bundle automatically once 8B lands
|
||||
(warn/skip until then). The shared OS-detecting install logic lives in
|
||||
`RIOJoy\install-core.bat` (pure cmd on the XP path); shortcuts via
|
||||
`make-shortcut.vbs` (works on XP and 10/11 alike):
|
||||
- Layout: `RIOJoy\app\` (net48 x64) + `RIOJoy\app-xp\` (net40 x86) +
|
||||
`RIOJoy\vendor\` (ViGEmBus installer for 10/11; RioGamepadXP.sys + INF
|
||||
for XP; **.NET 4.0 Full + KB2468871 redistributables** so an offline XP
|
||||
|
||||
Reference in New Issue
Block a user