rhythmic.inf Driver File Contents (thunderbired_128.zip)

[Version]
Signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%VLSI%
DriverVer=07/23/1999,5.00.1984.1

[SourceDisksNames]
222="Philips Rhythmic Edge Audio Driver Disk","",1

[SourceDisksFiles]
tb128.sys=222
tb128gp.sys=222
pseula.txt=222
readme.txt=222

[ControlFlags]
ExcludeFromSelect = GamePort\VID_045E&PID_0102
ExcludeFromSelect = GamePort\VID_045E&PID_0103
ExcludeFromSelect = GamePort\VID_045E&PID_0104
ExcludeFromSelect = GamePort\VID_045E&PID_0105
ExcludeFromSelect = GamePort\VID_045E&PID_0106
ExcludeFromSelect = GamePort\VID_045E&PID_0107
ExcludeFromSelect = GamePort\VID_045E&PID_0108
ExcludeFromSelect = GamePort\VID_045E&PID_0109
ExcludeFromSelect = GamePort\VID_045E&PID_010A
ExcludeFromSelect = GamePort\VID_045E&PID_010B
ExcludeFromSelect = GamePort\VID_045E&PID_010C
;ExcludeFromSelect = GamePort\SideWinder3DPro

[Manufacturer]
%MfgName%=VLSI

;; ThunderBird 128 miniport
[VLSI]
; Multimedia Device
;%WDM_TB128.DeviceDesc%=WDM_TB128,,   PCI\VEN_1004&DEV_0304
%WDM_TB128.DeviceDesc%=WDM_TB128,,   PCI\VEN_1004&DEV_0304&SUBSYS_03041004&REV_19
%WDM_TB128.DeviceDesc%=WDM_TB128,,   PCI\VEN_1004&DEV_0304&SUBSYS_50201483&REV_19
; PCI Input Controller
;%WDM_TB128JS.DeviceDesc%=WDM_JS128,, PCI\VEN_1004&DEV_0305
%WDM_TB128JS.DeviceDesc%=WDM_JS128,, PCI\VEN_1004&DEV_0305&SUBSYS_03051004&REV_19
%WDM_TB128JS.DeviceDesc%=WDM_JS128,, PCI\VEN_1004&DEV_0305&SUBSYS_50211483&REV_19
; PCI Serial Controller
;%WDM_TB128SR.DeviceDesc%=WDM_SR128,, PCI\VEN_1004&DEV_0306
%WDM_TB128SR.DeviceDesc%=WDM_SR128,, PCI\VEN_1004&DEV_0306&SUBSYS_03061004&REV_19
%WDM_TB128SR.DeviceDesc%=WDM_SR128,, PCI\VEN_1004&DEV_0306&SUBSYS_50221483&REV_19

;
; These are the 201 devices
;
; a standard joystick hid dev:
%HidGame.DeviceDesc%            = HidGame_Device, GamePort\AnalogJoystick
%HidGame.DeviceDesc%            = HidGame_Device, GamePort\GameDevice

; built in specific analog hid devices:
%HidGame.Generic2A2B%           = HidGame_Device, GamePort\VID_045E&PID_0102
%HidGame.Generic2A4B%           = HidGame_Device, GamePort\VID_045E&PID_0103
%HidGame.Gamepad2B%             = HidGame_Device, GamePort\VID_045E&PID_0104
%HidGame.FlightYoke2B%          = HidGame_Device, GamePort\VID_045E&PID_0105
%HidGame.FlightYokeThrottle2B%  = HidGame_Device, GamePort\VID_045E&PID_0106
%HidGame.Generic3A2B%           = HidGame_Device, GamePort\VID_045E&PID_0107
%HidGame.Generic3A4B%           = HidGame_Device, GamePort\VID_045E&PID_0108
%HidGame.Gamepad4B%             = HidGame_Device, GamePort\VID_045E&PID_0109
%HidGame.FlightYoke4B%          = HidGame_Device, GamePort\VID_045E&PID_010A
%HidGame.FlightYokeThrottle4B%  = HidGame_Device, GamePort\VID_045E&PID_010B
%HidGame.YConnectTwo2A2B%       = HidGame_Device, GamePort\VID_045E&PID_010C
;%HidGame.SW3dPro%                = HidGame_Device, GamePort\SideWinder3DPro


[*PNPB003.Det]
AddReg=PreCopySection
[PreCopySection]
HKR,,NoSetupUI,,1

[STUB_DEVICE]

[WDM_JS128]
CopyFiles=WDM_JS1.CopyList
AddReg=WDM_JS.AddReg, TBirdJoy.AddReg
[WDM_JS128.HW]
AddReg=WDM_JS_HW.AddReg

[WDM_JS1.CopyList]
tbirdjoy.vxd,,

[WDM_JS_HW.AddReg]
HKR,,ConfigFlags,1,08,00,00,00

[WDM_JS.AddReg]
; Relocate to 0x200-0x207
; Set CONFIGFLAG_IGNORE_BOOT_LC - force to use override section
HKR,,ConfigFlags,1,08,00,00,00
HKR,,DevLoader,,mmdevldr.vxd
HKR,Drivers,MIGRATED,,0
HKR,Drivers\joystick,,,
HKR,,Driver,,vjoyd.vxd
HKR,Drivers\joystick\msjstick.drv,Description,,%Joystick.DeviceDesc%
HKR,Drivers\joystick\msjstick.drv,Driver,,msjstick.drv
HKR,Drivers,SubClasses,,"joystick"
;
HKR,Override,0000,1, \
;
;    CONFIGMG_VERSION
;
00,04,00,00, \
;
;    PRIORITY
;
00,00,00,00, \            ; LCPRI_FORCECONFIG
;
;    OVERRIDE FOR GAME PORT
;
20,00,00,00, \			; Total length of I/O Resource Descriptor
02,00,00,00, \          ; ResType_IO = 0x00000002
01,00, \                ; IOD_Count - we have 1 I/O descriptor
0C,00, \                ; IOD_Type - IOType_Range = 0x000C
00,00, \                ; IOD_Alloc_Base
00,00, \                ; IOD_Alloc_End
00,00, \                ; IOD_DesFlags
FF, \                   ; IOD_Alloc_Alias
00, \                   ; IOD_Alloc_Decode
;
;    First (and only) IO_Range_s
;
F8,FF, \                ; IOR_Align - 8 byte alignment
08,00, \                ; IOR_nPorts - 8 I/O Addresses
00,02, \                ; IOR_Min - start 0x200
07,02, \                ; IOR_Max - end 0x207
00,00, \                ; IOR_RangeFlags
00, \                   ; IOR_Alias 
00, \                   ; IOR_Decode
;
;    Terminator
;
00,00,00,00


[TBirdJoy.AddReg]
; We need to add OEMData, OEMName and OEMCallout as a minimum

; OEMData describes the driver, 
; the first DWORD is a combination of JOY_HWS_* flags
; the second DWORD is the number of buttons supported
; Since this device supports a gameport, not a joystick, the description of 
; the axes and buttons are irrelevant.
; 
; JOY_HWS_ISGAMEPORTDRIVER      0x04000000l
; JOY_HWS_ISANALOGPORTDRIVER    0x08000000l 
;                               -----------
; Combined value                0x0c000000l
HKLM,%KEY_OEM%,OEMData,1,00,00,00,0c,00,00,00,00
; The name the user will see in the advanced page of the control panel
HKLM,%KEY_OEM%,OEMName,0,%TBirdJoy.DeviceDesc%
; The mini-driver used to drive this card.
HKLM,%KEY_OEM%,OEMCallout,0,tbirdjoy.vxd
; A value that the mini-driver uses for something
HKLM,%KEY_OEM%,"Magic PollFlags",1,78,56,34,12

; None of the default property sheet customization strings are
; relevant as the CPL will use the strings for the joystick that
; is plugged into the device, not this device.

; Likewise none of the DirectInput settings are needed.

[WDM_SR128]
CopyFiles=WDM_SR.CopyList
AddReg=WDM_SR.AddReg

[WDM_SR.CopyList]

[WDM_SR.AddReg]

[WDM_TB128]
AlsoInstall=ks.registration(ks.inf),wdmaudio.registration(wdmaudio.inf)
CopyFiles=WDM_VLSI.CopyList, WDM_VLSI_SYS32.CopyList, WDM_VLSI_SYS.CopyList, WDM_WinFiles.CopyList, AUDIO.RootCopyFiles
AddReg=WDM_TB128.AddReg, WDM_TB128_GUID.AddReg

[WDM_TB128.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_TB128.Interface.Topology
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_Topology%,WDM_TB128.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_WTSynth%,WDM.Interface.WTSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_WTSynth%,WDM.Interface.WTSynth

[WDM_TB128.Interface.Wave]
AddReg=WDM_TB128.Interface.Wave.AddReg
[WDM_TB128.Interface.Wave.AddReg]
HKR,,FriendlyName,,%WDM_TB128.Wave.szPname%
HKR,,CLSID,,%Proxy.CLSID%

[WDM_TB128.Interface.Topology]
AddReg=WDM_TB128.Interface.Topo.AddReg
;; warning!! must be "Topo" because "Topology" is too long
[WDM_TB128.Interface.Topo.AddReg]
HKR,,FriendlyName,,%WDM_TB128.Topology.szPname%

[WDM.Interface.UART]
AddReg=WDM.Interface.UART.AddReg
[WDM.Interface.UART.AddReg]
HKR,,FriendlyName,,%WDM.UART.szPname%
HKR,,CLSID,,%Proxy.CLSID%

[WDM.Interface.WTSynth]
AddReg=WDM.Interface.WTSynth.AddReg
[WDM.Interface.WTSynth.AddReg]
HKR,,FriendlyName,,%WDM.WTSynth.szPname%
HKR,,CLSID,,%Proxy.CLSID%

[WDM_TB128.AddReg]
; VSG: Swap next two lines to enable SW Synth mixer control
;HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,AssociatedFilters,,"wdmaud,redbook"
HKR,,Driver,,TB128.SYS
HKR,,NTMPDriver,,"tb128.sys,sbemul.sys"

HKR,Drivers,SubClasses,,"wave,midi,mixer"

HKR,Drivers\wave\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,%WDM_TB128.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%WDM_MIDI%
HKR,Drivers\mixer\wdmaud.drv,Description,,%WDM_TB128.Topology.szPname%

; DWORDs
HKLM,%VLSI_Hardware%,%LoadCodeFile%,0x00010001,0x00000000
HKLM,%VLSI_Hardware%,%LoadPatchFile%,0x00010001,0x00000001
HKLM,%VLSI_Hardware%,%PLLSpeed%,0x00010001,0x00000030
HKLM,%VLSI_Hardware%,%UseAsymClock%,0x00010001,0x00000000
HKLM,%TBIRD_SWKEY%,%NeedTray%,1,1
HKLM,Software\Microsoft\Windows\CurrentVersion\Run,rhythmic,,"rhythmic.EXE"
;** Joystick Hack
HKLM,Software\Microsoft\Windows\CurrentVersion\Run,tbirdejs,,"tbirdejs.EXE"
;** Launcher Settings
HKLM,Software\Microsoft\Windows\CurrentVersion\Run,Launcher,,"relaunch.EXE"
;First App
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01",1,1
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Ask",1,0
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Cont",1,1
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Desc",,"Philips Software End User License Agreement"
;This is the name of the window to wait for.
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Panel",,"pseula.txt - Notepad"
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Path",,"pseula.txt"
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Type",1,4
;wait 0x1E (30) Seconds for the License Agreement to Launch
HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch01Wait",1,1e
;;Second App
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Ask",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Cont",1,1
;;wait 0x012C (300) Seconds (5 Minutes) for User to exit the Control Panel
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Delay",1,2c,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Desc",,"Philips Rhythmic Edge Audio Control Panel"
;;This is the name of the window to wait for.
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Panel",,"Philips Rhythmic Edge"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Path",,"RHYTHMIC.CPL"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Type",1,1
;;wait 0x1E (30) Seconds for the Control Panel to Launch
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch02Wait",1,1e
;;Third App
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Ask",1,0
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Cont",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Desc",,"Microsoft DirectX 6.1 Install"
;;This is the name of the window to wait for.
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Panel",,"DirectX(R) Setup"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Path",,"\\DirectX\\DXSetup.exe"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Type",1,0
;;wait 0x1E (30) Seconds for DirectX for launch
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch03Wait",1,1e
;;Fourth App
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Ask",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Cont",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Desc",,"Yamaha SoftSynthesizer S-YXG50 Install"
;;This is the name of the window to wait for.
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Panel",,"Setup"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Path",,"\\S-YXG50\\NT40\\Disk1\\Setup.exe"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Type",1,2
;;wait 0x1E (30) Seconds for Yamaha to launch
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch04Wait",1,1e
;;Fifth App
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Ask",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Cont",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Desc",,"Sonic Foundry Siren Installation"
;;This is the name of the window to wait for.
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Panel",,"Sonic Foundry Siren Installation"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Path",,"\\Applications\\Sonic Foundry\\Siren\\SirenSetup.exe"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Type",1,0
;;wait 0x78 (120) Seconds (2 Minutes) for Siren to launch
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch05Wait",1,78
;;Sixth App
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06Ask",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06Cont",1,1
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06Desc",,"Philips Product Registration Website"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06Path",,"www.philipsusa.com/prod_reg_bounce.html"
;HKLM,%OTHER_SETTINGS_LAUNCHER%,"Launch06Type",1,3
;;***

; Should match ControlValueCache[] in driver
; Default mixer settings
; Volume panel - sliders at 50%
; Record panel - sliders at 0
HKR,Settings,WAVEOUT_DAC,           0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,WAVEOUT_VOLUME,        0x00000001, 00,01,80,00, 00,01,80,00
HKR,Settings,WAVEOUT_MUTE,          0x00000001, 00,00,00,00, 00,00,00,00

HKR,Settings,MICIN_20DB_GAIN,       0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,MICIN_VOLUME,          0x00000001, DC,BC,05,00, 00,00,00,00
HKR,Settings,MICIN_WIN_VOLUME,      0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,MICIN_MUTE,            0x00000001, 01,00,00,00, 00,00,00,00

HKR,Settings,LINEIN_VOLUME,         0x00000001, DC,BC,05,00, DC,BC,05,00
HKR,Settings,LINEIN_WIN_VOLUME,     0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,LINEIN_MUTE,           0x00000001, 01,00,00,00, 00,00,00,00

HKR,Settings,CD_VOLUME,             0x00000001, DC,BC,05,00, DC,BC,05,00
HKR,Settings,CD_WIN_VOLUME,         0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,CD_MUTE,               0x00000001, 00,00,00,00, 00,00,00,00

HKR,Settings,VIDEO_VOLUME,          0x00000001, DC,BC,05,00, DC,BC,05,00
HKR,Settings,VIDEO_WIN_VOLUME,      0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,VIDEO_MUTE,            0x00000001, 01,00,00,00, 00,00,00,00

HKR,Settings,AUX_VOLUME,            0x00000001, DC,BC,05,00, DC,BC,05,00
HKR,Settings,AUX_WIN_VOLUME,        0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,AUX_MUTE,              0x00000001, 01,00,00,00, 00,00,00,00

HKR,Settings,WT_VOLUME,             0x00000001, C2,14,FA,FF, C2,14,FA,FF
HKR,Settings,WT_MUTE,               0x00000001, 00,00,00,00, 00,00,00,00

HKR,Settings,LINEOUT_MAIN_MIX,      0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,LINEOUT_MASTER_VOLUME, 0x00000001, 03,F2,F9,FF, 03,F2,F9,FF
HKR,Settings,STEREOMIX_WIN_VOLUME,  0x00000001, 00,00,00,00, 00,00,00,00
HKR,Settings,LINEOUT_MASTER_MUTE,   0x00000001, 00,00,00,00, 00,00,00,00

HKR,Settings,WAVEIN_MUX,            0x00000001, 01,00,00,00, 01,00,00,00
HKR,Settings,WAVEIN_ADC,            0x00000001, 00,00,00,00, 00,00,00,00

; Strings
HKLM,%VLSI_Drv_Version%,%tb128.SvcDesc%,0x00000000,"1.00.000"
HKLM,%VLSI_Hardware%,%DLSPath%,0x00000000,"\systemroot\system32\Tbird128.dls"

; Params
HKLM,%VLSI_Hardware%,%SETTING_PARAM09%,1,0
HKLM,%VLSI_Hardware%,%SETTING_PARAM10%,1,1
HKLM,%VLSI_Hardware%,%SETTING_PARAM11%,1,1
HKLM,%VLSI_Hardware%,%SETTING_PARAM12%,0x00010001,0x00000000
HKLM,%VLSI_Hardware%,%SETTING_PARAM13%,0x00010001,0x00000000
HKLM,%VLSI_Hardware%,%SETTING_PARAM14%,0x00010001,0x00000000
HKLM,%VLSI_Hardware%,%SETTING_PARAM15%,1,0
HKLM,%VLSI_Hardware%,%SETTING_PARAM19%,1,0
HKLM,%VLSI_Hardware%,%SETTING_PARAM30%,1,0

;** PARAM97 is the short device name - max 16 characters
HKLM,%OTHER_SETTINGS%,%SETTING_PARAM97%,0,%AUDIO.ShortName%
;** PARAM98 is the long device name - max 32 characters
HKLM,%OTHER_SETTINGS%,%SETTING_PARAM98%,0,%AUDIO.DeviceDesc%

HKLM,%VLSI_Hardware%,%SETTING_PARAM99%,1,01,02,03,04,05,06,07,08,09,0a,0b,0c,0d,0e,0f,10,11,12
HKLM,%UNINSTALL%,"DisplayName",,"Philips Rhythmic Support Files"
HKLM,%UNINSTALL%,"UninstallString",,"eduninst.exe"

[WDM_TB128_GUID.AddReg]
HKLM,%MediaCategories%\%TB128GUID.Phone%,Name,,%TB128in.Phone%
HKLM,%MediaCategories%\%TB128GUID.Phone%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.Mic1%,Name,,%TB128in.Mic1%
HKLM,%MediaCategories%\%TB128GUID.Mic1%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.Mic2%,Name,,%TB128in.Mic2%
HKLM,%MediaCategories%\%TB128GUID.Mic2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.Video%,Name,,%TB128in.Video%
HKLM,%MediaCategories%\%TB128GUID.Video%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.Hpout%,Name,,%TB128in.Hpout%
HKLM,%MediaCategories%\%TB128GUID.Hpout%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.MonoOut%,Name,,%TB128in.MonoOut%
HKLM,%MediaCategories%\%TB128GUID.MonoOut%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.LineOutMix%,Name,,%TB128in.LineOutMix%
HKLM,%MediaCategories%\%TB128GUID.LineOutMix%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.Mic20dB%,Name,,%TB128in.Mic20dB%
HKLM,%MediaCategories%\%TB128GUID.Mic20dB%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.WT%,Name,,%TB128in.WT%
HKLM,%MediaCategories%\%TB128GUID.WT%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.WTVol%,Name,,%TB128in.WTVol%
HKLM,%MediaCategories%\%TB128GUID.WTVol%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TB128GUID.WTMute%,Name,,%TB128in.WTMute%
HKLM,%MediaCategories%\%TB128GUID.WTMute%,Display,1,00,00,00,00

[WIN2K.AddReg]
HKLM,%TBIRD_HWKEY%,Win2K,0x00010001,0x00000000

[DestinationDirs]
WDM_VLSI.CopyList               = 10,system32\drivers   ; %SystemRoot%\system32\drivers
WDM_VLSI_SYS32.CopyList         = 10,system32           ; %SystemRoot%\system32
WDM_VLSI_SYS.CopyList           = 10,system             ; %SystemRoot%\system
WDM_VLSI_SYS.NT.CopyList        = 10,system32           ; %SystemRoot%\system32
WDM_JS1.CopyList                = 10,system
WDM_WinFiles.CopyList           = 10                    ; Windows dir
DefaultDestDir                  = 12
HidGame_Device.CopyFilesDLL.NT  = 11
CoInstaller_CopyFiles           = 11                    ; System Dir( system32 on NT )
AUDIO.RootCopyFiles             = 30 			  ; Root directory of Boot Drive

[AUDIO.RootCopyFiles]
PSEULA.TXT
README.TXT

[WDM_VLSI.CopyList]
tb128.sys

[WDM_VLSI_SYS32.CopyList]
tbird128.cod    ; DSP code
tbird128.pch    ; patch
tbird128.dls    ; downloadable sounds
eduninst.exe    ; uninstall exe

[WDM_WinFiles.CopyList]
relaunch.exe    ; launcher app
tbirdejs.exe	; joystick hack

[WDM_VLSI_SYS.CopyList]
; system directory in Win 98
rhythmic.cpl       ; control panel
drvtb32.dll     ; CPL driver interface
rhythmic.exe      ; tray executable
; VSG: DOME: replace with final name
vtbpmd.dll      ; CPL support dll

[WDM_VLSI_SYS.NT.CopyList]
; system32 directory in Win 2000
rhythmic.cpl       ; control panel
drvtb32.dll     ; CPL driver interface
rhythmic.exe      ; tray executable

;;**************** Win 2K Install ****************

[STUB_DEVICE.NT]
[STUB_DEVICE.NT.SERVICES]
AddService=,0x2

[WDM_SR128.NT]
CopyFiles=WDM_SR.NTCopyList

[WDM_SR.NTCopyList]
serregs.sys,,,2

;[WDM_SR128.NT.Interfaces]

[WDM_SR128.NT.Services]
AddService=SERREGS,2,WDM_SR128.Service

[WDM_SR128.Service]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\serregs.sys

[[WDM_SR128.NT.HW]
AddReg=WDM_SR128.HwAddReg

[WDM_SR128.HwAddReg]
HKR,,FriendlyName,,%WDM_TB128SR.DeviceDesc%

;-------------- Coinstaller installation - run after serial device

[WDM_SR128.NT.CoInstallers]
AddReg=CoInstaller_AddReg
CopyFiles=CoInstaller_CopyFiles

[CoInstaller_CopyFiles]
edcoinst.dll

[CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000,"edcoinst.dll,MyCoInstaller"

[CoinstallID]
Rhythmic

;-------------- end Coinstaller installation

[WDM_TB128.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
;CopyFiles=WDM_TB128.CopyList
CopyFiles=WDM_VLSI.CopyList, WDM_VLSI_SYS32.CopyList, WDM_VLSI_SYS.NT.CopyList, WDM_WinFiles.CopyList, AUDIO.RootCopyFiles
AddReg=WDM_TB128.AddReg, WDM_TB128_GUID.AddReg, WIN2K.AddReg

[WDM_TB128.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_TB128.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_TB128.Interface.Topology
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_Topology%,WDM_TB128.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_WTSynth%,WDM.Interface.WTSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_WTSynth%,WDM.Interface.WTSynth

[WDM_TB128.NT.Services]
AddService = wdmaud,    0x00000000, wdmaud_Service_Inst
AddService = swmidi,    0x00000000, swmidi_Service_Inst
AddService = tb128,     0x00000002, tb128_Service_Inst

[wdmaud_Service_Inst]
DisplayName    = %wdmaud.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 1                  ; SERVICE_SYSTEM_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\wdmaud.sys

[swmidi_Service_Inst]
DisplayName    = %swmidi.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 1                  ; SERVICE_SYSTEM_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\swmidi.sys

[tb128_Service_Inst]
DisplayName    = %tb128.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\tb128.sys

[WDM_JS128.NT]
CopyFiles=WDM_JS128.CopyFiles.NT
LogConfig=BasicJoyStick.LC0, BasicJoystick.LC1

[WDM_JS128.CopyFiles.NT]
TB128gp.sys

[WDM_JS128.NT.Services]
AddService = TB128game,%SPSVCINST_ASSOCSERVICE%,GamePort_Service_Inst

[HidGame_Device.NT]
CopyFiles=HidGame_Device.CopyFiles.NT, HidGame_Device.CopyFilesDLL.NT

[HidGame_Device.CopyFiles.NT]
hidgame.sys
hidclass.sys
hidparse.sys

[HidGame_Device.CopyFilesDLL.NT]
hid.dll

[HidGame_Device.NT.Services]
AddService = hidgame,%SPSVCINST_ASSOCSERVICE%,HidGame_Service_Inst

[WDM_JS128.NT.FactDef]
ConfigPriority=HARDWIRED
IOConfig=201-201(3ff::)

[BasicJoyStick.LC0]
ConfigPriority=HARDWIRED
IOConfig=201-201(3ff::)

[BasicJoyStick.LC1]
ConfigPriority=HARDRECONFIG
IOConfig=1@100-3ff(3ff::)

[GamePort_Service_Inst]
DisplayName    = %gameport.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\TB128gp.sys
LoadOrderGroup = Extended Base

[HidGame_Service_Inst]
DisplayName    = %hidgame.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\hidgame.sys
LoadOrderGroup = Extended Base

[Strings]
VLSI="Philips"
MfgName="Philips, Inc."
Joystick.DeviceDesc="Gameport Joystick"
KEY_OEM="System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\ThunderBird_PCI_Audio_GamePort"
TBirdJoy.DeviceDesc="Philips Rhythmic Edge Audio GamePort Driver"
WDM_TB128.DeviceDesc="Philips Rhythmic Edge Audio"
WDM_TB128JS.DeviceDesc="Philips Rhythmic Edge Audio Game Port Enumerator"
WDM_TB128SR.DeviceDesc="Philips Rhythmic Edge Audio Support Registers"
WDM_TB128.Wave.szPname="Philips Rhythmic Edge Audio"
WDM_TB128.Topology.szPname="Philips Rhythmic Edge Audio"
UNINSTALL="Software\Microsoft\Windows\CurrentVersion\Uninstall\RhythmicAudio"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
VLSI_Hardware="System\CurrentControlSet\Services\tb128\Thunderbird"
TBIRD_HWKEY="System\CurrentControlSet\Services\tb128"
TBIRD_SWKEY="Software\VLSI\ThunderBird"
VLSI_Drv_Version="Software\VLSI Inc./Qsound Inc."
WDM_MIDI="WDM-based Device"
OTHER_SETTINGS="Software\VLSI\ThunderBird"
OTHER_SETTINGS_LAUNCHER="Software\VLSI\ThunderBird\Launcher"
AUDIO.DeviceDesc="Philips Rhythmic Edge Audio"
AUDIO.ShortName="Philips Edge"

TB128GUID.Phone        ="{57C435D0-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.Mic1        ="{57C435D1-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.Mic2        ="{57C435D2-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.Video        ="{57C435D3-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.Hpout        ="{57C435D4-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.MonoOut    ="{57C435D5-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.LineOutMix="{57C435D6-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.Mic20dB   ="{57C435D7-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.WT        ="{57C435D8-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.WTVol        ="{57C435D9-BF5A-11D2-AC00-00A0D2F07870}"
TB128GUID.WTMute    ="{57C435DA-BF5A-11D2-AC00-00A0D2F07870}"

;; TB128 friendly names (localizeable)
;Sources
TB128in.Phone           ="Phone"
TB128in.Mic1            ="Microphone"
TB128in.Mic2            ="Mic 2"
TB128in.Video           ="Video"
TB128in.Hpout           ="Headphones"
TB128in.MonoOut         ="Mono Out"
TB128in.LineOutMix      ="Stereo Mix"
TB128in.Mic20dB         ="20dB Gain"
TB128in.WT              ="Wavetable"
TB128in.WTVol           ="WT Vol"
TB128in.WTMute          ="WT Mute"

LoadCodeFile            ="Load Code File"
LoadPatchFile           ="Load Patch File"
PLLSpeed                ="PLL Speed"
UseAsymClock            ="Use Asymmetric Clock"
DLSPath                 ="DLS Path"
DDMABase                ="DDMA BASE"
NeedTray                ="Tray Need"
SETTING_PARAM30         ="PARAM30"
SETTING_PARAM09         ="PARAM09"
SETTING_PARAM10         ="PARAM10"
SETTING_PARAM11         ="PARAM11"
SETTING_PARAM12         ="PARAM12"
SETTING_PARAM13         ="PARAM13"
SETTING_PARAM14         ="PARAM14"
SETTING_PARAM15         ="PARAM15"
SETTING_PARAM19         ="PARAM19"
SETTING_PARAM97		="PARAM97"
SETTING_PARAM98		="PARAM98"
SETTING_PARAM99         ="PARAM99"

Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_TOPOLOGY="{DDA54A40-1E4C-11D1-A050-405705C10000}"
KSNAME_Wave="Wave"
KSNAME_UART="UART"
KSNAME_WTSynth="WTSynth"
KSNAME_Topology="Topology"
KSNAME_Wavetable="Wavetable"

WDM.UART.szPname="Philips Rhythmic Edge MPU-401"
WDM.WTSynth.szPname="Philips Rhythmic Edge Wavetable"

wdmaud.SvcDesc = "Microsoft WDM Virtual Wave Driver"
swmidi.SvcDesc = "Microsoft Software Synthesizer"
tb128.SvcDesc = "Philips Rhythmic Edge Audio Driver"

;Gameport
SPSVCINST_ASSOCSERVICE= 0x00000002
HidGame.DeviceDesc = "Microsoft Hid to Joystick Port Enabler"
gameport.SvcDesc = "Philips Rhythmic Edge Audio Game Port Enumerator"
hidgame.SvcDesc = "Microsoft Hid to Joystick Port Enabler"

HidGame.Generic2A2B          = "2-axis, 2-button joystick"
HidGame.Generic2A4B          = "2-axis, 4-button joystick"
HidGame.Gamepad2B            = "2-button gamepad"
HidGame.FlightYoke2B         = "2-button flight yoke"
HidGame.FlightYokeThrottle2B = "2-button flight yoke w/throttle"
HidGame.Generic3A2B          = "3-axis, 2-button joystick"
HidGame.Generic3A4B          = "3-axis, 4-button joystick"
HidGame.Gamepad4B            = "4-button gamepad"
HidGame.FlightYoke4B         = "4-button flight yoke"
HidGame.FlightYokeThrottle4B = "4-button flight yoke w/throttle"
HidGame.YConnectTwo2A2B      = "Two 2-axis, 2-button joysticks on Y-connector"
;HidGame.SW3dPro                 = "Microsoft SideWinder 3D Pro"
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web3, load: 0.73