Phase 8: final decisions — editor everywhere, universal archive, dual installers
- Mapping editor ships in all instances, XP included (wallpaper maker stays modern-only with SkiaSharp). - One dist zip deploys on both XP and Win10/11: app (net48 x64) + app-xp (net40 x86) + vendor prereqs incl. offline .NET 4.0/KB2468871 redistributables and RioGamepadXP.sys. - Two entry points: postinstall.bat (TeslaConsole/launcher, unattended) and install.bat (freestanding, adds shortcuts). OS-detected via ver; pure cmd on the XP path. All Phase 8 open decisions are now resolved; ready to implement 8A. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+35
-16
@@ -296,17 +296,17 @@ Replaces the legacy Google-Sheet → `.data` → GIMP → Script-Fu pipeline
|
|||||||
|
|
||||||
### Phase 8 — Windows XP compatibility (dual-target) — planned
|
### Phase 8 — Windows XP compatibility (dual-target) — planned
|
||||||
Bring RIOJoy back to the original XP-era cabinets (x86, XP SP3) **without
|
Bring RIOJoy back to the original XP-era cabinets (x86, XP SP3) **without
|
||||||
regressing Windows 10/11**. Strategy: one codebase, two flavors — modern
|
regressing Windows 10/11**. Strategy: one codebase, two flavors, **one
|
||||||
machines stay the *authoring* platform (editor + wallpaper maker + packaging);
|
universal deployment archive**. The mapping editor ships everywhere
|
||||||
XP gets the full *runtime* (serial, mapping, vJoy joystick, keyboard/mouse,
|
(decided); only wallpaper *generation* (SkiaSharp) stays modern-only —
|
||||||
lamps, plasma, wallpaper apply).
|
XP consumes pre-rendered wallpapers.
|
||||||
|
|
||||||
| | Windows 10/11 (unchanged) | Windows XP SP3 |
|
| | Windows 10/11 (unchanged) | Windows XP SP3 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| TFM / arch | net48, x64 | **net40, x86** (.NET 4.0 is XP's ceiling; 4.5+ needs Vista) |
|
| TFM / arch | net48, x64 | **net40, x86** (.NET 4.0 is XP's ceiling; 4.5+ needs Vista) |
|
||||||
| Virtual joystick | ViGEm → RioGamepad → none (unchanged) | **RioGamepadXP.sys** — our own thin WDM HID minidriver (same feeder contract) — full 6-axis/96-button fidelity |
|
| Virtual joystick | ViGEm → RioGamepad → none (unchanged) | **RioGamepadXP.sys** — our own thin WDM HID minidriver (same feeder contract) — full 6-axis/96-button fidelity |
|
||||||
| Overlay render | SkiaSharp (generate + apply) | consume pre-rendered wallpaper only (**PNG→BMP** — XP's `SystemParametersInfo` takes BMP only) |
|
| Overlay render | SkiaSharp (generate + apply) | consume pre-rendered wallpaper only (**PNG→BMP** — XP's `SystemParametersInfo` takes BMP only) |
|
||||||
| Editor | full (incl. wallpaper maker) | mapping editor only (pure WinForms/GDI+); wallpaper maker gated (Skia) |
|
| Editor | full (incl. wallpaper maker) | **mapping editor included** (decided; pure WinForms/GDI+); wallpaper maker gated (Skia) |
|
||||||
| JSON | System.Text.Json → **Newtonsoft 13** | Newtonsoft 13 (STJ needs net461+; one serializer for both flavors) |
|
| 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) |
|
| Install scripts | PowerShell | **.bat only** (XP has no in-box PowerShell) |
|
||||||
|
|
||||||
@@ -348,10 +348,26 @@ lamps, plasma, wallpaper apply).
|
|||||||
stays (Segoe UI falls back to Tahoma). XP cabinets consume wallpapers
|
stays (Segoe UI falls back to Tahoma). XP cabinets consume wallpapers
|
||||||
pre-rendered on a modern machine (`RioProfile.WallpaperPath` travels with
|
pre-rendered on a modern machine (`RioProfile.WallpaperPath` travels with
|
||||||
the config).
|
the config).
|
||||||
- **8D — Packaging:** `build-package.ps1 -Flavor XP` →
|
- **8D — Packaging (decided: one universal archive, two install entry
|
||||||
`RIOJoy-XP-<ver>.zip` (net40/x86 publish, RioGamepadXP.sys + INF,
|
points).** `build-package.ps1` produces a single `RIOJoy-<ver>.zip` that
|
||||||
`.bat` install/uninstall, README-DEPLOY-XP: prereqs XP SP3 + .NET 4.0 Full
|
deploys on **both** XP and 10/11:
|
||||||
+ KB2468871). Modern zip unchanged; release both to Gitea.
|
- 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
|
||||||
|
cabinet needs nothing else — adds ~70 MB, XP can't download anymore) +
|
||||||
|
`VERSION.txt` + README-DEPLOY.
|
||||||
|
- **`postinstall.bat`** (zip root, unattended): the TeslaConsole/launcher
|
||||||
|
entry point, as today — detects the OS (`ver` → 5.1 = XP, 10.x = modern),
|
||||||
|
installs the matching prereqs (ViGEmBus silently via the existing
|
||||||
|
PowerShell on 10/11; .NET 4.0 + KB2468871 + driver INF on XP), and wires
|
||||||
|
the matching app flavor. No prompts, idempotent.
|
||||||
|
- **`install.bat`** (zip root, freestanding computers): same OS detection
|
||||||
|
and prereq install, plus what a machine without the launcher needs —
|
||||||
|
Start Menu/desktop shortcut to the right flavor's exe (still no logon
|
||||||
|
auto-start; starting RIOJoy stays deliberate). Pure cmd.exe on the XP
|
||||||
|
path; may call PowerShell only on the 10/11 path.
|
||||||
|
- `pre-uninstall.bat` / uninstall mirror both scenarios. Release the one
|
||||||
|
zip to Gitea per the established process.
|
||||||
- **8E — Verification:** full suite stays net48-hosted (xUnit needs
|
- **8E — Verification:** full suite stays net48-hosted (xUnit needs
|
||||||
net452+; shared sources are what's tested) + a tiny net40 console
|
net452+; shared sources are what's tested) + a tiny net40 console
|
||||||
self-test for the shims, run on XP. Ladder: net40/x86 binary boots on
|
self-test for the shims, run on XP. Ladder: net40/x86 binary boots on
|
||||||
@@ -359,13 +375,16 @@ lamps, plasma, wallpaper apply).
|
|||||||
driver needs real/virtualized XP too — vhidmini-class drivers run fine
|
driver needs real/virtualized XP too — vhidmini-class drivers run fine
|
||||||
in a VM) → real cabinet (joy.cpl shows 6 axes + 96 buttons, SendInput
|
in a VM) → real cabinet (joy.cpl shows 6 axes + 96 buttons, SendInput
|
||||||
into a game, lamps, plasma, auto-switch yield, BMP wallpaper).
|
into a game, lamps, plasma, auto-switch yield, BMP wallpaper).
|
||||||
- **To confirm before starting:** (1) keep the mapping editor on XP or ship
|
- **All open decisions resolved:**
|
||||||
runtime-only? (2) which XP cabinets / how do files get onto them (drives
|
1. The Xbox 360 pad (ViGEm) remains the preferred controller on
|
||||||
the .bat installer shape)?
|
Windows 10/11 whenever ViGEmBus is present.
|
||||||
*Decided:* the Xbox 360 pad (ViGEm) remains the preferred controller on
|
2. **No third-party virtual joystick drivers** (vJoy/PPJoy are
|
||||||
Windows 10/11 whenever ViGEmBus is present. **No third-party virtual
|
unmaintained) — XP gets our own RioGamepadXP.sys.
|
||||||
joystick drivers** (vJoy/PPJoy are unmaintained) — XP gets our own
|
3. The **mapping editor ships in all instances**, XP included.
|
||||||
RioGamepadXP.sys instead.
|
4. **Both install scenarios** in one archive: `postinstall.bat`
|
||||||
|
(TeslaConsole/launcher, unattended) and `install.bat` (freestanding
|
||||||
|
computers, adds shortcuts); the single dist zip carries everything
|
||||||
|
needed for both XP and 10/11, including offline redistributables.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user