Files
riojoy/docs/Win32RIO/oemsetup.inf
T
CydandClaude Opus 4.8 094637b0a4 Editor: rework to the original Win32 RIO control-panel layout
Reworked the profile/mapping editor to mirror the original unfinished Win32
RIO driver's control-panel design (docs/Win32RIO, by FASA / Michel Lowrance)
instead of the flat config-sheet grid. The wallpaper region positions are a
VGA chroma-split display artifact, not the cockpit's logical shape.

- RioJoy.Core.Editing.CockpitPanel: the functional layout — five MFD clusters,
  four board columns (Throttle/Secondary/Screen/Joystick-Hat), an encoder-gauge
  strip, and the two later-added 4x4 keypads (Internal/External). Places every
  address 0x00-0x47 / 0x50-0x6F exactly once (unit-tested).
- Tray PanelView/PanelCanvas render the panel; ProfileEditorForm drives it.
  Buttons show label + assigned function (ButtonBinding.Describe -> CTL-N, JOY1,
  POV-U, Mse LB, RIO command names; unit-tested). Lamp shade is driven by the
  IsLit flag (not by whether a function is assigned); keypads are neutral blue
  with no Lit checkbox. Added an Unassign button next to Apply.
- Removed the superseded sheet-grid UI (SheetView/SheetCanvas); SheetLayout +
  config-sheet.csv stay as reference data.

docs/Win32RIO: the original driver (tasgame.sys, a 32-bit kernel HID minidriver
that opened the serial port, set baud/8N1/DTR, and spoke the *identical* RIO
protocol -- AnalogRequest/Reply, Button Pressed/Released, Check/Lamp/Reset/
Version -- validating our protocol port), oemsetup.inf, RemoteDriver.doc, and the
extracted control-panel / game-controllers mockups.

~236 xUnit tests green. PLAN.md updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:48:14 -05:00

134 lines
4.5 KiB
INI

; Copyright (c) 1997-1999 Microsoft Corporation
;
[Version]
Signature="$CHICAGO$"
Class=HIDClass
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
;
Provider=%VENDOR%
LayoutFile=layout.inf
DriverVer=04/14/2002,5.00.2000.24
;
; Layout.inf (etc.) list all files shipped with the operating system so the
; source description sections are only needed if other files are needed.
;
; In order to use IHV drivers, the SourceDisksNames section must list the
; disk(s) containing the drivers and the SourceDisksFiles section must list
; which disk number each file to be copied is found on.
; Disk number 99 is used to avoid a conflict with the disk numbers defined
; in layout.inf
;
; tasgame.Sys is the name of the standard analog game device driver so
; another name must be used for an IHV driver. NT will not load a driver
; compiled as tasgame.Sys and renamed as another so it must be compiled
; under it's final name.
;
; Files used in a driver installation need to be digitally signed otherwise
; installation may fail. See documentation elsewhere in the DDK regarding
; driver signing.
;
; [SourceDisksNames]
; 99=%DiskId%,,
;
; [SourceDisksFiles]
; tasgame.sys = 99
[DefaultInstall]
CopyFiles=CopyFilesSYS
AddReg=Joystick.AddReg
[DestinationDirs]
CopyFilesSYS = 10,system32\drivers ;%SystemRoot%\system32\drivers
DefaultDestDir = 10,system32\drivers
CopyFilesDLL = 11 ;%SystemRoot%\system or system32 - 98 or Win2000
[ControlFlags]
ExcludeFromSelect = GamePort\Joystick
; Notes
;
; In order that the game controllers control panel can display the device
; name registry keys describing the device must be set up. In this sample
; these values are setup up in the Joystick.AddReg and Gamepad.AddReg
; sections. Clearly these values must be set up before the CPL can cause
; the PnP ID to be exposed.
;
; If no PnP ID match is found when a gameport device is exposed, the default
; driver will be matched. This allows most analog joysticks to be supported
; without an additional driver. Unfortunately, this means that a device
; which requires a driver must have its PnP ID matched or the default driver
; will be loaded. To avoid the user having to change the driver the INF
; containing the match may be copied into the INF directory in advance.
;
; To satisfy the two goals above, some form of preliminary setup is required.
; This could be a program, a batch file that runs an INF section or an INF
; with SetupClass=BASE and a DefaultInstall section.
;
[Manufacturer]
%VENDOR%=Vendor
[Vendor]
;
; For each device the following must be defined:
; Device name - name seen in the Add New Hardware selection dialog
; Install section - section in this INF to be run to install the device
; PnP ID - ID which is matched by PnP when the device is detected
; This should not contain spaces and for Win98 compatibility
; should use the form GamePort\VID_9999&PID_9999.
; A PnP ID must be used or this device will be detected as
; always present and so loaded during boot even if the
; StartType of the service is SERVICE_DEMAND_START.
;
;Device Name Install Section PnP ID
;
%Joystick%= Joystick.Inst, GamePort\VID_7777&PID_0001
[Joystick.Inst]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg = Joystick.AddReg, AddReg.Vendor_Driver
[Joystick.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg = Joystick.AddReg
[Joystick.AddReg]
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMName,,%Joystick%
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMData,1, 07, 00, 08, 00, 0A, 00, 00, 00
HKLM,%KEY_OEM%\VID_7777&PID_0001,OEMHardwareID,,"GamePort\VID_7777&PID_0001"
[Joystick.Inst.NT.Services]
AddService = VendorJoystickEnabler,%SPSVCINST_ASSOCSERVICE%,Vendor_Service_Inst
[CopyFilesSYS]
tasgame.sys
[CopyFilesDLL]
[AddReg.Vendor_Driver]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,"tasgame.sys"
[Vendor_Service_Inst]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
ServiceBinary = %10%\system32\drivers\tasgame.sys
LoadOrderGroup = Extended Base
[Strings]
; non localized strings
SPSVCINST_ASSOCSERVICE= 0x00000002
KEY_OEM="SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM"
;localized strings
VENDOR = "Thomas Steinke"
SvcDesc = "VWE Pod"
Joystick = "VWE Pod"