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>
134 lines
4.5 KiB
INI
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"
|
|
|