//
// Freelancer Config Database
//
//  SceneRenderer				// Scene based renderer (eg: PowerVR, Kyro etc...)
//  NoAlphaTest					/ Disable alpha test (conflicts with other modes)
//  oTriLinear					// Do not attempt trilinear filtering
//  NoTripleBuffer				// Do not attempt triple buffering
//  DefaultBltNotFlip			// In full screen mode, use BLT
//  NoFog						// Do not attempt fog
//  TextureOffset				// Texel offset for fonts is done on x,y's not u,v (eg: Riva128)
//  BrokenAlphaTest				// Cards that cannot do Alpha test without ALPHABLEND being enabled (eg: ATI Rage)
//  RenderEqualZ				// Render bit depth must equal Z bit depth (eg: nVidia cards)
//  NoParallelism				// Lock the back buffer after rendering (eg: Voodoo3 - queueing up too many blits)
//  BadMouse					// Card can never use GDI mouse (eg: Voodoo)
//  NoMipMap					// Disable mipmaps
//  Bad4444						// Disable 4444 textures  (eg: Chromatic Mpact)
//  NoDisablePerspective		// Disable disabling perspective correct texturing (eg: Voodoo cards)
//  LimitTextureSize			// Limit texture size to 256*256 to correct bad caps
//  ForceSquareTextures			// Do not allow non-square textures
//  NoStretchTexture			// Force system memory stretch blit to square up textures
//  SlowDisplayModeChange		// Prevent video drivers that take a while before sending the WM_DISPLAYCHANGE msg from getting stuck in an endless loop of display mode changes (eg: Savage 4)
//  Bad8888						// Disable 32 bit textures (eg: Voodoo)
//
//  Disable1600x1200

// Freelancer specific:
// FL_BAD_WFOG					// card doesnt work well w/ freelancer's w-fog
// FL_BAD_ENVMAP				// card doesnt work well w/ freelancer's envmapping
// FL_BAD_MOD2X					// card doesnt work well w/ freelancer's detail mapping
// FL_BAD_DXTN					// card doesnt work well w/ freelancer's dtxn texture loader

///////////////////////////////////////////////////
//
// 3DFX
//
//////////////////////////////////////////////////

Vendor = 0x1142  "3dfx"
Vendor = 0x10d9  "3dfx"
Vendor = 0x121a  "3dfx"

0x643d = "Rush (Alliance)"
0x8626 = "Rush (Macronix)"
	UnsupportedHardware
	NoAlphaTest
	NoTripleBuffer
	NoFog
	break

0x0001 = "Voodoo 1"
	UnsupportedHardware
	NoTripleBuffer
	BadMouse
	break

0x0002 = "Voodoo 2"
	UnsupportedHardware
	NoDisablePerspective
	NoParallelism
	NoTripleBuffer
	BadMouse
	break

0x0003 = "Banshee"
0x0004 = "Banshee"
	UnsupportedHardware
	NoParallelism
	NoMipMap
	break

//
// Voodoo 3
//
0x0005 = "Voodoo 3"
	NoParallelism
	Disable1600x1200
	if os > win2k
		if driver < 5.0.3545.28
			NoFog
			Bad4444
			LimitTextureSize
			ForceSquareTextures
			Bad8888
			FL_BAD_WFOG
			FL_BAD_ENVMAP
			FL_BAD_MOD2X
			FL_BAD_DXTN
			UnsupportedHardware
		endif
	endif
	if os == win2k
		if driver < 5.0.2195.232
			UnsupportedDriver
		endif
	if os < win2k
		if driver < 4.12.1.666
			UnsupportedDriver
		endif
	endif
	break

//
// Voodoo 4 and 5
//

0x0007 = "Voodoo 4"
0x0009 = "Voodoo 5"
	if os > win2k
		if driver < 5.0.3545.28
			UnsupportedDriver
		endif
	if os == win2k
		if driver < 5.0.2195.31 
			UnsupportedDriver
		endif
	if os < win2k
		if driver < 4.13.1.28
			UnsupportedDriver
		endif
	endif
	break
	
///////////////////////////////////////////////////
//
// ST MICROELECTRONICS
//
//////////////////////////////////////////////////

Vendor = 0x104a  "ST Microelectronics"

0x0010 = "Kyro I/II"
	SceneRenderer

	if os > win2k
		if driver < 6.13.10.6122
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.6122
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.01.6270
			UnsupportedDriver
		endif
	endif
	break

///////////////////////////////////////////////////
//
// ATI
//
//////////////////////////////////////////////////

Vendor = 0x1002  "ATI"
	
//
// RAGE 128 CLASS CARDS
//
0x4d46 = "Rage Mobility 128"
0x4d4c = "Rage Mobility 128"
0x5041 = "Rage 128 Pro"
0x5042 = "Rage 128 Pro"
0x5043 = "Rage 128 Pro"
0x5044 = "Rage 128 Pro"
0x5045 = "Rage 128 Pro"
0x5047 = "Rage 128 Pro"
0x5048 = "Rage 128 Pro"
0x5049 = "Rage 128 Pro"
0x504a = "Rage 128 Pro"
0x504b = "Rage 128 Pro"
0x504c = "Rage 128 Pro"
0x504d = "Rage 128 Pro"
0x504e = "Rage 128 Pro"
0x504f = "Rage 128 Pro"
0x5050 = "Rage 128 Pro"
0x5051 = "Rage 128 Pro"
0x5052 = "Rage 128 Pro"
0x5053 = "Rage 128 Pro"
0x5054 = "Rage 128 Pro"
0x5055 = "Rage 128 Pro"
0x5056 = "Rage 128 Pro"
0x5057 = "Rage 128 Pro"
0x5058 = "Rage 128 Pro"
0x5245 = "Rage 128"
0x5246 = "Rage 128"
0x5247 = "Rage 128"
0x524b = "Rage 128"
0x524c = "Rage 128"
0x5345 = "Rage 128"
0x5346 = "Rage 128"
0x5347 = "Rage 128"
0x5348 = "Rage 128"
0x534b = "Rage 128"
0x534c = "Rage 128"
0x534d = "Rage 128"
0x534e = "Rage 128"
0x5354 = "Mach 64"
0x5446 = "Rage 128 Pro"
0x544c = "Rage 128 Pro"
0x5452 = "Rage 128 Pro"
0x5453 = "Rage 128 Pro"
0x5454 = "Rage 128 Pro"
0x5455 = "Rage 128 Pro"
	if os > win2k
		if driver < 6.13.3279.0
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.3279
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.1.7192
			UnsupportedDriver
		endif
	endif
	break

0x5046 = "Rage Fury Pro/MAXX"
	NoParallelism
	if os > win2k
		if driver < 6.13.3279.0
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.3279
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.12.1.61	//	Last available MAXX driver
			 UnsupportedDriver
		 endif
	endif
	break

//
// OLDER RAGE CLASS
//
0x4742 = "Rage Pro"
	DefaultBltNotFlip
0x4744 = "Rage Pro"
0x4747 = "Rage Pro"
0x4749 = "Rage Pro"
0x474c = "Rage XC"
0x474d = "Rage XL"
0x474e = "Rage XC"
0x474f = "Rage XL"
0x4750 = "Rage Pro"
0x4751 = "Rage Pro"
0x4752 = "Rage XL"
0x4753 = "Rage XC"
0x4754 = "Rage II"
0x4755 = "Rage II+"
0x4756 = "Rage IIC"
0x4757 = "Rage IIC"
0x4759 = "Rage IIC"
0x475a = "Rage IIC"
	TextureOffset
0x4c42 = "Rage LT Pro"
0x4c44 = "Rage LT Pro"
0x4c47 = "Rage LT"
0x4c49 = "Rage LT Pro"
0x4c50 = "Rage LT Pro"
0x4c51 = "Rage LT Pro"
	MaxOverallGraphicDetail = 1
	DisableCompositeTerrainTextures = true
	if os > win2k
		if driver < 6.13.10.7192
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.7192
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.1.7192
			UnsupportedDriver
		endif
	endif
	break

0x4c45 = "Rage Mobility"
0x4c46 = "Rage Mobility"
0x4c4d = "Rage Mobility"
0x4c4e = "Rage Mobility"
0x4c52 = "Rage Mobility"
0x4c53 = "Rage Mobility"
0x4c54 = "Rage Mobility"
	BrokenAlphaTest
	break

//
// LEGACY
//
0x4158 = "Mach 32"
0x4354 = "Mach 64"
0x4358 = "Mach 64"
0x4554 = "Mach 64"
0x4654 = "Mach 64"
0x4758 = "Mach 64"
0x5654 = "Mach 64"
0x5655 = "Mach 64"
0x5656 = "Mach 64"
	UnsupportedHardware
	BrokenAlphaTest
	TextureOffset
	break

//
// RADEON CLASS CARDS
//
0x3e50 = "Radeon X600 (R380)" // added by Louva-Deus
0x3e54 = "Radeon FireGL V3200 (R380)" // added by Louva-Deus
0x3e70 = "Radeon X600 (R380)" // added by Louva-Deus
0x4136 = "Radeon (R320)" // added by Louva-Deus
0x4137 = "Radeon (R330/340/350)" // added by Louva-Deus
0x4144 = "Radeon 9500 Pro (R300)" // added by Louva-Deus
0x4145 = "Radeon 9700 Pro (R300)" // added by Louva-Deus
0x4146 = "Radeon 9700 (R300)" // added by Louva-Deus
0x4147 = "Radeon FireGL Z1/X1 (R300)" // added by Louva-Deus
0x4148 = "Radeon 9800SE (R350)" // added by Louva-Deus
0x4149 = "Radeon 9800 Pro (R350)" // added by Louva-Deus
0x414A = "Radeon 9800 (R350)" // added by Louva-Deus
0x414B = "Radeon FireGL X2 (R350)" // added by Louva-Deus
0x4150 = "Radeon 9600 Pro (RV350)" // added by Louva-Deus
0x4151 = "Radeon 9600SE (RV350)" // added by Louva-Deus
0x4152 = "Radeon 9600XT (RV360)" // added by Louva-Deus
0x4153 = "Radeon 9550/Radeon 9600 (RV350)" // added by Louva-Deus
0x4154 = "Radeon FireGL T2 (RV350)" // added by Louva-Deus
0x4155 = "Radeon FireGL T2 (RV350)" // added by Louva-Deus
0x4156 = "Radeon FireGL T2 (RV350)" // added by Louva-Deus
0x4157 = "Radeon FireGL T2 (RV350)" // added by Louva-Deus
0x4164 = "Radeon 9500 Pro (R300)" // added by Louva-Deus
0x4165 = "Radeon 9700 Pro (R300)" // added by Louva-Deus
0x4166 = "Radeon 9700 Pro (R300)" // added by Louva-Deus
0x4168 = "Radeon 9800 (R350)" // added by Louva-Deus
0x4170 = "Radeon 9600 (RV350)" // added by Louva-Deus
0x4171 = "Radeon 9600SE (RV350)" // added by Louva-Deus
0x4172 = "Radeon 9600XT (RV360)" // added by Louva-Deus
0x4173 = "Radeon 9550 (RV350)" // added by Louva-Deus
0x4242 = "Radeon 8500"
0x4243 = "Radeon 8500DV"
0x4966 = "Radeon 9000/9000 Pro (R250)"
0x4967 = "Radeon 9000 (R250)" // added by Louva-Deus
0x496e = "Radeon 9000/9000 Pro (R250)" // added by Louva-Deus
0x496f = "Radeon 9000 (R250)" // added by Louva-Deus
0x4a48 = "Radeon X800 (R420)" // added by Louva-Deus
0x4a49 = "Radeon X800 Pro (R420)" // added by Louva-Deus
0x4a4a = "Radeon X800SE (R420)" // added by Louva-Deus
0x4a4b = "Radeon X800 (R420)" // added by Louva-Deus
0x4a4c = "Radeon X800 (R420)" // added by Louva-Deus
0x4a4d = "Radeon FireGL X3 (R420)" // added by Louva-Deus
0x4a50 = "Radeon X800XT (R420)" // added by Louva-Deus
0x4a70 = "Radeon X800XT-PE (R420)" // added by Louva-Deus
0x4b49 = "Radeon X850XT (R480)" // added by Louva-Deus
0x4b69 = "Radeon X850XT (R480)" // added by Louva-Deus
0x4e44 = "Radeon 9700 Pro (R300)"
0x4e45 = "Radeon 9500 Pro (R300)" // added by Louva-Deus
0x4e46 = "Radeon 9600 (RV350)" // added by Louva-Deus
0x4e47 = "Radeon FireGL X1 (R300)" // added by Louva-Deus
0x4e48 = "Radeon 9800 Pro (R350)" // added by Louva-Deus
0x4e49 = "Radeon 9800 (R350)" // added by Louva-Deus
0x4e4a = "Radeon 9800XT (RV360)" // added by Louva-Deus
0x4e4b = "Radeon FireGL X2 (R350)" // added by Louva-Deus
0x4e64 = "Radeon 9700/9700 Pro (R300)"
0x4e65 = "Radeon 9500 Pro (R300)" // added by Louva-Deus
0x4e66 = "Radeon 9600 (RV350)" // added by Louva-Deus
0x4e67 = "Radeon FireGL X1 (R300)" // added by Louva-Deus
0x4e68 = "Radeon 9800 Pro (R350)" // added by Louva-Deus
0x4e69 = "Radeon 9800 (R350)" // added by Louva-Deus
0x4e6a = "Radeon 9800XT (RV360)" // added by Louva-Deus
0x4e6b = "Radeon FireGL 9800XT" // added by Louva-Deus
0x5144 = "Radeon 7200 SDR/DDR"
0x5145 = "Radeon"
0x5146 = "Radeon"
0x5147 = "Radeon"
0x5148 = "Radeon FireGL 8700 64M/8800 128M (R200)"
0x5149 = "Radeon (R200)" // added by Louva-Deus
0x514a = "Radeon (R200)" // added by Louva-Deus
0x514b = "Radeon (R200)" // added by Louva-Deus
0x514c = "Radeon 8500 (R200)"
0x514d = "Radeon 9100 (R200)" // added by Louva-Deus
0x514e = "Radeon 8500 (R200)"
0x514f = "Radeon 8500 (R200)"
0x5157 = "Radeon 7500 (RV200)"
0x5158 = "Radeon 7500" // added by Louva-Deus
0x5159 = "Radeon 7000/VE 64M (RV100)"
0x515a = "Radeon VE"
0x5168 = "Radeon (R200)" // added by Louva-Deus
0x5169 = "Radeon (R200)" // added by Louva-Deus
0x516a = "Radeon (R200)" // added by Louva-Deus
0x516b = "Radeon (R200)" // added by Louva-Deus
0x516c = "Radeon 8500"
0x516d = "Radeon 9100 (R200)" // added by Louva-Deus
0x5548 = "Radeon X800 PCX (R423)" // added by Louva-Deus
0x5549 = "Radeon X800 Pro PCX (R423)" // added by Louva-Deus
0x554a = "Radeon X800LE PCX (R423)" // added by Louva-Deus
0x554b = "Radeon X800SE PCX (R423)" // added by Louva-Deus
0x554c = "Radeon X800XL PCX (R430)" // added by Louva-Deus
0x554d = "Radeon X800XL PCX (R430)" // added by Louva-Deus
0x5551 = "Radeon FireGL V7200 PCX (R423GL-SE)" // added by Louva-Deus
0x5552 = "Radeon FireGL V5100 PCX (R423)" // added by Louva-Deus
0x5554 = "Radeon FireGL V7100 PCX (R423)" // added by Louva-Deus
0x556b = "Radeon X800SE (R423)" // added by Louva-Deus
0x556d = "Radeon X800XL (R430)" // added by Louva-Deus
0x5571 = "Radeon FireGL V5100 PCX (R423GL-SE)" // added by Louva-Deus
0x5940 = "Radeon 9200 Pro (RV280)" // added by Louva-Deus
0x5941 = "Radeon 9200 (RV280)" // added by Louva-Deus
0x5960 = "Radeon 9200 Pro (RV280)" // added by Louva-Deus
0x5961 = "Radeon 9200 (RV280)" // added by Louva-Deus
0x5964 = "Radeon 9200SE (RV280)" // added by Louva-Deus
0x5b60 = "Radeon X300 PCX (RV370)" // added by Louva-Deus
0x5b62 = "Radeon X600 PCX (RV370)" // added by Louva-Deus
0x5b64 = "Radeon FireGL V3100 PCX (RV370)" // added by Louva-Deus
0x5b65 = "Radeon FireGL D1100 PCX (RV370)" // added by Louva-Deus
0x5b72 = "Radeon X600 (RV370)" // added by Louva-Deus
0x5d44 = "Radeon 9200SE (RV280)" // added by Louva-Deus
0x5d4d = "Radeon XT850XT Platinum PCX (R480)" // added by Louva-Deus
0x5d52 = "Radeon XT850XT PCX (R480)" // added by Louva-Deus
0x5d57 = "Radeon XT800XT PCX (R423)" // added by Louva-Deus
0x5d6d = "Radeon XT850XT Platinum PCX (R480)" // added by Louva-Deus
0x5d72 = "Radeon XT850XT PCX (R480)" // added by Louva-Deus
0x5d77 = "Radeon XT800XT PCX (R423)" // added by Louva-Deus
0x5e4b = "Radeon X700 Pro PCX (R410)" // added by Louva-Deus
0x5e6b = "Radeon X700 Pro PCX (R410)" // added by Louva-Deus
	if os > win2k
		if driver < 6.13.10.6218
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.6166
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver <= 4.13.1.9069
			UnsupportedDriver
		endif
	endif
	break

0x3150 = "Radeon Mobility X600 (M24)" // added by Louva-Deus
0x3154 = "Radeon Mobility FireGL (M24)" // added by Louva-Deus
0x4a4e = "Radeon Mobility 9800 (M18)" // added by Louva-Deus
0x4c57 = "Radeon Mobility 7500 (M7)"
0x4c58 = "Radeon Mobility FireGL 7800"
0x4c59 = "Radeon Mobility VE (M6)"
0x4c5a = "Radeon Mobility VE (M6)"
0x4c64 = "Radeon Mobility (M9)" // added by Louva-Deus
0x4c66 = "Radeon Mobility 9000 (M9)"
0x4e50 = "Radeon Mobility 9600 (M10)" // added by Louva-Deus
0x4e51 = "Radeon Mobility 9600 (M10)" // added by Louva-Deus
0x4e52 = "Radeon Mobility 9600 (M10)" // added by Louva-Deus
0x4e53 = "Radeon Mobility 9600 (M10)" // added by Louva-Deus
0x4e54 = "Radeon Mobility FireGL T2 (M10)" // added by Louva-Deus
0x4e56 = "Radeon Mobility FireGL T2e (M11)" // added by Louva-Deus
0x4e71 = "Radeon Mobility 9600 (M10)" // added by Louva-Deus
0x5653 = "Radeon Mobility X700 PCX" // added by Louva-Deus
0x5835 = "Radeon Mobility 9100" // added by Louva-Deus
0x5c61 = "Radeon Mobility 9200" // added by Louva-Deus
0x5c63 = "Radeon Mobility 9200" // added by Louva-Deus
0x5d4a = "Radeon Mobility X800" // added by Louva-Deus
	BrokenAlphaTest // ?
	break

unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// 3D Labs
//
//////////////////////////////////////////////////

Vendor = 0x104c  "3D Labs"
Vendor = 0x10ba  "3D Labs"
Vendor = 0x3d3d  "3D Labs"
Vendor = 0x1048  "3D Labs"

0x0001 = "GLiNT 300SX"
0x0002 = "GLiNT 500TX"
0x0003 = "GLiNT"
0x0004 = "Permedia"
0x0005 = "Permedia"
0x0006 = "GLiNT MX"
0x0007 = "Permedia 2"
0x8901 = "GLiNT"
0x0008 = "GLiNT G1"
0x0009 = "Permedia 2"
0x000a = "Permedia 3"
0x000b = "Oxygen Series R3"
0x000c = "Permedia 4"
0x000d = "Oxygen Series R4"
0x000e = "Oxygen Series Gamma2"
	UnsupportedHardware
	break
0x0100 = "Permedia 2"
	UnsupportedHardware
	DefaultBltNotFlip
	NoMipMap
0x0301 = "Permedia 2"
	UnsupportedHardware
	TextureOffset
	break
0x1004 = "Permedia"
	UnsupportedHardware
	break
0x3d04 = "Permedia 1"
0x3d07 = "Permedia 2"
	UnsupportedHardware
	TextureOffset
	DefaultBltNotFlip
	NoMipMap
	break

unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break

///////////////////////////////////////////////////
//
// SiS
//
//////////////////////////////////////////////////

Vendor = 0x1039  "SiS"

0x0204 = "6215"
0x0205 = "6205"
0x0305 = "305"
	break
0x0315 = "315"
0x0325 = "315"
	if os < win2k
		if driver < 4.13.01.3030
			UnsupportedDriver
		endif
	endif
	break

0x6306 = "530"
	TextureOffset
	break

0x6326 = "6326"
	break

0x6325 = "650"
	break

0x0330 = "Xabre 330"
	break

unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// S3
//
//////////////////////////////////////////////////

Vendor = 0x5333  "S3"

//
// SAVAGE
//		
0x8a22 = "Savage 3D S4"
0x8a23 = "Savage 3D S4"
	Disable1600x1200
	FL_BAD_WFOG
	FL_BAD_DXTN
	FL_BAD_MOD2X
	NoParallelism
	NoTriLinear

	if os >= win2k
		if driver < 5.12.01.8012
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver <= 5.12.01.8012
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.12.1.8228
			UnsupportedDriver
		endif
	endif

	break

0x8a25 = "Savage4 ProSavage"
0x8a26 = "ProSavage"
	Disable1600x1200
	FL_BAD_WFOG
	FL_BAD_DXTN
	FL_BAD_MOD2X
	NoParallelism
	NoTriLinear

	if os >= win2k
		if driver < 5.12.1.8012
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.1.3043
			UnsupportedDriver
		endif
	endif
	break

//
// UNTESTED
//
0x8c10 = "Savage MX"
0x8c12 = "Savage IX"
0x8c22 = "SuperSavage 128 MX"
0x8c2a = "SuperSavage 128 IX"
0x8c2b = "SuperSavage 128 IX DDR"
0x8c2c = "SuperSavage IX"
0x8c2d = "SuperSavage IX DDR"
0x8c2e = "SuperSavage IXC SDR"
0x8c2f = "SuperSavage IXC DDR"
0x8d04 = "ProSavage"
	UnknownHardware
	Disable1600x1200
	FL_BAD_WFOG
	FL_BAD_DXTN
	FL_BAD_MOD2X
	DefaultBltNotFlip
	TextureOffset
	NoParallelism
	SlowDisplayModeChange
	break
	
//
// LEGACY
//
0x9102 = "Savage 2000"
0x8a20 = "Savage 3D"
0x8a21 = "Savage 3D S3"
	UnsupportedHardware
	FL_BAD_WFOG
	FL_BAD_DXTN
	FL_BAD_MOD2X
	DefaultBltNotFlip
	TextureOffset
	NoParallelism
	SlowDisplayModeChange
	break

0x5631 = "Virge"
0x8811 = "Trio 64"
0x8812 = "Trio 64"
0x8814 = "Trio 64 Plus"
0x8815 = "Aurora 128"
0x883d = "Virge"
0x8880 = "Virge"
0x88c0 = "Virge"
0x88c1 = "Virge"
0x88d0 = "Virge"
0x88d1 = "Virge"
0x88f0 = "Virge"
0x8901 = "Trio 64 DX"
0x8904 = "Trio 3D"
0x8a01 = "Virge DXGX"
0x8a10 = "Virge GX2"
0x8a13 = "Trio3D"
0x8c00 = "Virge MX"
0x8c01 = "Virge MX"
0x8c02 = "Virge MXC"
0x8c03 = "Virge MX"
	UnsupportedHardware
	break 
	
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break

///////////////////////////////////////////////////
//
// MATROX
//
//////////////////////////////////////////////////

//
// LEGACY
//
Vendor = 0x102b  "Matrox"
0x0518 = "Millennium"
0x0519 = "Millennium"
0x051a = "Mystique"
0x051b = "Millennium II"
0x051f = "Millennium II"
0x0d10 = "Mystique"
0x1000 = "G100 PCI"
0x1001 = "G100 AGP"
	UnsupportedHardware
	break


0x0520 = "G200 PCI"
0x0521 = "G200 AGP"
	if os > win2k
		if driver < 5.12.01.1720
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.12.01.1720
			UnsupportedDriver
		endif
	if os < win2k
		if driver < 5.12.01.1720
			UnsupportedDriver
		endif
	endif
	break

//
// >= G400
//

0x1525 = "Fusion G450"
0x0525 = "G400/450"
	Disable1600x1200
	if os > win2k
		if driver < 5.01.2001.1241
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.12.1.1201
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.12.1.2120
			UnsupportedDriver
		endif
	endif
	break

0x1527 = "Fusion G800"
0x2007 = "Mistral"
0x2527 = "G550"
	Disable1600x1200
	if os > win2k
		if driver < 5.12.1.1221
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.10.1.1361
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.12.1.1320
			UnsupportedDriver
		endif
	endif
	break

0x0527 = "Parhelia 128"
	if os >= win2k
		if driver < 5.13.1.1065
			UnsupportedDriver
		endif
	endif
	if os < win2k
			UnsupportedDriver
	endif
	break

unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// NVIDIA
//
//////////////////////////////////////////////////

Vendor = 0x14Af  "Guillemot"
Vendor = 0x10b4  "nVidia"
Vendor = 0x12d2  "nVidia"
Vendor = 0x10de  "nVidia"

// Unsupported nVidia products
0x0008 = "NV 1"
0x0009 = "NV 1"
0x0010 = "NV 2"
0x0018 = "Riva 128"
0x0019 = "Riva 128 ZX"
0x1B1D = "Riva 128"
	UnsupportedHardware
	break

//
// TNT
//
0x0020 = "TNT"
0x0028 = "TNT2"
0x0029 = "TNT2 Ultra"
0x002A = "TNT2"
0x002B = "TNT2"
0x002C = "TNT Vanta"
0x002D = "TNT2 M64"
0x002E = "TNT Vanta"
0x002F = "TNT Vanta"
0x00A0 = "TNT2 Aladdin"
0x4D20 = "TNT2 M64"
0x5008 = "TNT Vanta"
0x5020 = "GeForce 256"
0x5620 = "TNT2 M64"
0x5810 = "TNT2"
0x5820 = "TNT2 Ultra"
	if os > win2k
		if driver < 6.13.10.3087
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 6.13.10.3087
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.01.3087
			UnsupportedDriver
		endif
	endif
	break

//
// GeForce
//
0x0040 = "GeForce 6800 Ultra (NV40.0)" // added by Louva-Deus
0x0041 = "GeForce 6800 (NV40.1)" // added by Louva-Deus
0x0042 = "GeForce 6800 LE (NV40.2)" // added by Louva-Deus
0x0043 = "GeForce 6??? (NV40.3)" // added by Louva-Deus
0x0045 = "GeForce 6800 GT (NV40.5)" // added by Louva-Deus
0x0049 = "QuadroFX (NV40GL)" // added by Louva-Deus
0x004E = "QuadroFX 4000 (NV40GL)" // added by Louva-Deus
0x00C0 = "GeForce 6800 Ultra? (NV41.0)" // added by Louva-Deus
0x00C1 = "GeForce 6800 (NV41.1)" // added by Louva-Deus
0x00C2 = "GeForce 6800 LE (NV41.2)" // added by Louva-Deus
0x00C8 = "GeForce Go 6800 (NV41.8)" // added by Louva-Deus
0x00C9 = "GeForce Go 6800 Ultra (NV41.9)" // added by Louva-Deus
0x00CC = "QuadroFX Go 1400 (NV41)" // added by Louva-Deus
0x00CD = "QuadroFX 3450/4000 SDI (NV41)" // added by Louva-Deus
0x00CE = "QuadroFX 1400 (NV41GL)" // added by Louva-Deus
0x00F0 = "GeForce 6800/GeForce 6800 Ultra (NV40)" // added by Louva-Deus
0x00F1 = "GeForce 6600/GeForce 6600 GT (NV43)" // added by Louva-Deus
0x00F2 = "GeForce 6600/GeForce 6600 GT (NV43)" // added by Louva-Deus
0x00F3 = "GeForce 6200 (NV43)" // added by Louva-Deus
0x00F8 = "QuadroFX 3400/4400 (NV45GL)" // added by Louva-Deus
0x00F9 = "GeForce 6800 Ultra/GeForce 6800 GT (NV40)" // added by Louva-Deus
0x00FA = "GeForceFX PCX 5750 (NV36)" // added by Louva-Deus
0x00FB = "GeForceFX PCX 5900 (NV35)" // added by Louva-Deus
0x00FC = "QuadroFX 330/GeForceFX PCX 5300 (NV37GL)" // added by Louva-Deus
0x00FD = "QuadroFX 330 (NV37GL)" // added by Louva-Deus
0x00FE = "QuadroFX 1300 (NV38GL)" // added by Louva-Deus
0x00FF = "GeForceFX PCX 4300 (NV18)" // added by Louva-Deus
0x0100 = "GeForce 256 SDR (NV10)"
0x0101 = "GeForce 256 DDR (NV10DDR)"
0x0102 = "GeForce 256 Ultra (NV10)"
0x0103 = "Quadro (NV10GL)"
0x0110 = "GeForce2 MX 400 (NV11)"
0x0111 = "GeForce2 MX 100/200 DDR (NV11DDR)"
0x0112 = "GeForce2 Go/MX Ultra (NV11)"
0x0113 = "Quadro2 MXR/EX/Go (NV11GL)"
0x0140 = "GeForce 6600 GT (NV43)" // added by Louva-Deus
0x0141 = "GeForce 6600 (NV43)" // added by Louva-Deus
0x0144 = "GeForce Go 6600 (NV43)" // added by Louva-Deus
0x0145 = "GeForce 6610 XL (NV43)" // added by Louva-Deus
0x0147 = "GeForce 6??? (NV43)" // added by Louva-Deus
0x0148 = "GeForce Go 6600 (NV43)" // added by Louva-Deus
0x0149 = "GeForce 6600? (NV43)" // added by Louva-Deus
0x014C = "QuadroFX (NV43GL)"
0x014E = "QuadroFX 540 (NV43GL)" // added by Louva-Deus
0x014F = "GeForce 6200 (NV43)" // added by Louva-Deus
0x0150 = "GeForce2 GTS/Pro (NV15)"
0x0151 = "GeForce2 Ti (NV15DDR)"
0x0152 = "GeForce2 Ultra (NV15BR)"
0x0153 = "Quadro2 Pro (NV15GL)"
0x0161 = "GeForce 6200 TurboCache (NV44)" // added by Louva-Deus
0x0164 = "GeForce Go 6200 (NV44)" // added by Louva-Deus
0x0165 = "Quadro 285 NVS (NV44)" // added by Louva-Deus
0x0167 = "GeForce Go 6200 TurboCache (NV44M)" // added by Louva-Deus
0x0169 = "GeForce Go 6??? (NV44M)" // added by Louva-Deus
0x016B = "QuadroFX (NV44GLM)"
0x016C = "QuadroFX (NV44GLM)"
0x016D = "QuadroFX (NV44GLM)"
0x0170 = "GeForce4 MX 460 (NV17.1)"
0x0171 = "GeForce4 MX 440 (NV17.2)"
0x0172 = "GeForce4 MX 420 (NV17.3)"
0x0173 = "GeForce4 MX 440SE (NV17.4)"
0x0174 = "GeForce4 Go 440 (NV17M)"
0x0175 = "GeForce4 Go 420 (NV17M)"
0x0176 = "GeForce4 Go 420 32M (NV17M)"
0x0177 = "GeForce4 Go 460 (NV17M)" // added by Louva-Deus
0x0178 = "Quadro4 500/550 XGL (NV17GL.1)"
0x0179 = "GeForce4 Go 440 64M (NV17M)"
0x017A = "Quadro4 200/400 NVS (NV17GL.2)"
0x017B = "Quadro4 550 XGL (NV17GL.3)"
0x017C = "Quadro4 500 GoGL (NV17M-GL)"
0x017D = "GeForce4 Go 410 16M (NV17)" // added by Louva-Deus
0x0181 = "GeForce4 MX 440 with AGP8X (NV18)" // added by Louva-Deus
0x0182 = "GeForce4 MX 440SE with AGP8X (NV18.3)" // added by Louva-Deus
0x0183 = "GeForce4 MX 420 with AGP8X (NV18.4)" // added by Louva-Deus
0x0185 = "GeForce4 MX 4000 with AGP8X (NV18.5)" // added by Louva-Deus
0x0186 = "GeForce4 Go 448 (NV18M)" // added by Louva-Deus
0x0187 = "GeForce4 Go 488 (NV18M)" // added by Louva-Deus
0x0188 = "Quadro4 580 XGL (NV18GL)" // added by Louva-Deus
0x018A = "Quadro4 NVS with AGP8X (NV18GL)" // added by Louva-Deus
0x018B = "Quadro4 380 XGL (NV18GL)" // added by Louva-Deus
0x018D = "GeForce4 Go 448 (NV18M)" // added by Louva-Deus
0x01A0 = "GeForce2 Integrated GPU (NVCrush11)"
0x01F0 = "GeForce4 MX Integrated GPU (NV18)" // added by Louva-Deus
0x0200 = "GeForce3 (NV20)"
0x0201 = "GeForce3 Ti200 (NV20)"
0x0202 = "GeForce3 Ti500 (NV20)"
0x0203 = "Quadro DCC (NV20DCC)"
0x0221 = "GeForce 6200 (??)" // added by Louva-Deus
0x0228 = "GeForce Go 6??? (NV44M)" // added by Louva-Deus
0x0250 = "GeForce4 Ti4600 (NV25)"
0x0251 = "GeForce4 Ti4400 (NV25.2)"
0x0252 = "GeForce4 Ti (NV25)" // added by Louva-Deus
0x0253 = "GeForce4 Ti4200 64M (NV25)"
0x0258 = "Quadro4 900 XGL (NV25GL.1)"
0x0259 = "Quadro4 750 XGL (NV25GL.2)"
0x025B = "Quadro4 700 XGL (NV25GL.4)"
0x0280 = "GeForce4 Ti4800 (NV28.1)" // added by Louva-Deus
0x0281 = "GeForce4 Ti4200 with AGP8X (NV28.2)" // added by Louva-Deus
0x0282 = "GeForce4 Ti4800 SE (NV28.3)" // added by Louva-Deus
0x0286 = "GeForce4 Go 4200 with AGP8X (NV28)" // added by Louva-Deus
0x0288 = "Quadro4 980 XGL (NV28GL.1)" // added by Louva-Deus
0x0289 = "Quadro4 780 XGL (NV28GL.2)" // added by Louva-Deus
0x028C = "Quadro4 700 GoGL (NV28GLM)" // added by Louva-Deus
0x02A0 = "GeForce3 Integrated GPU (NV2A-XBOX)"
0x0300 = "GeForceFX (NV30.1)" // added by Louva-Deus
0x0301 = "GeForceFX 5800 Ultra (NV30.2)" // added by Louva-Deus
0x0302 = "GeForceFX 5800 (NV30.3)" // added by Louva-Deus
0x0308 = "QuadroFX 2000 (NV30GL.1)" // added by Louva-Deus
0x0309 = "QuadroFX 1000 (NV30GL.2)" // added by Louva-Deus
0x030A = "ICE FX 2000 (NV30GL)" // added by Louva-Deus
0x0311 = "GeForceFX 5600 Ultra (NV31.1)" // added by Louva-Deus
0x0312 = "GeForceFX 5600 (NV31.2)" // added by Louva-Deus
0x0313 = "GeForceFX 5??? (NV31?)" // added by Louva-Deus
0x0314 = "GeForceFX 5600XT (NV31)" // added by Louva-Deus
0x0316 = "GeForceFX Go 5??? (NV31M)" // added by Louva-Deus
0x0317 = "GeForceFX 5??? Pro (NV31M)" // added by Louva-Deus
0x0318 = "QuadroFX (NV31GL.1)" // added by Louva-Deus
0x0319 = "QuadroFX (NV31GL.2)" // added by Louva-Deus
0x031A = "GeForceFX Go 5600 (NV31M)" // added by Louva-Deus
0x031B = "GeForceFX Go 5650 (NV31M)" // added by Louva-Deus
0x031C = "QuadroFX 700 GoGL (NV31GLM)" // added by Louva-Deus
0x031D = "QuadroFX (NV31GLM)" // added by Louva-Deus
0x031E = "QuadroFX Pro (NV31GLM)" // added by Louva-Deus
0x031F = "QuadroFX Pro (NV31GLM)" // added by Louva-Deus
0x0320 = "GeForceFX 5200 (NV34)" // added by Louva-Deus
0x0321 = "GeForceFX 5200 Ultra (NV34.2)" // added by Louva-Deus
0x0322 = "GeForceFX 5200 (NV34.3)" // added by Louva-Deus
0x0323 = "GeForceFX 5200LE (NV34.4)" // added by Louva-Deus
0x0324 = "GeForceFX Go 5200 (NV34M)" // added by Louva-Deus
0x0325 = "GeForceFX Go 5250 (NV34M)" // added by Louva-Deus
0x0326 = "GeForceFX 5500 (NV34.6)" // added by Louva-Deus
0x0327 = "GeForceFX 5100 (NV34.7)" // added by Louva-Deus
0x0328 = "GeForceFX Go 5200 32M/64M (NV34M)" // added by Louva-Deus
0x0329 = "GeForceFX Go 5200 (NV34M)" // added by Louva-Deus
0x032A = "QuadroFX 280 NVS PCI (NV34GL.3)" // added by Louva-Deus
0x032B = "QuadroFX 500/600 PCI (NV34GL.4)" // added by Louva-Deus
0x032C = "GeForceFX Go 5300 (NV34GLM)" // added by Louva-Deus
0x032D = "GeForceFX Go 5100 (NV34)" // added by Louva-Deus
0x032F = "QuadroFX (NV34GL)" // added by Louva-Deus
0x0330 = "GeForceFX 5900 Ultra (NV35)" // added by Louva-Deus
0x0331 = "GeForceFX 5900 (NV35)" // added by Louva-Deus
0x0332 = "GeForceFX 5900XT (NV35)" // added by Louva-Deus
0x0333 = "GeForceFX 5950 Ultra (NV38)" // added by Louva-Deus
0x0334 = "GeForceFX 5900ZT (NV35.4)" // added by Louva-Deus
0x0338 = "QuadroFX 3000 (NV35GL)" // added by Louva-Deus
0x033F = "QuadroFX 700 (NV35GL)" // added by Louva-Deus
0x0341 = "GeForceFX 5700 Ultra (NV36.1)" // added by Louva-Deus
0x0342 = "GeForceFX 5700 (NV36.2)" // added by Louva-Deus
0x0343 = "GeForceFX 5700LE (NV36.3)" // added by Louva-Deus
0x0344 = "GeForceFX 5700VE (NV36.4)" // added by Louva-Deus
0x0345 = "GeForceFX 5??? (NV36.5)" // added by Louva-Deus
0x0347 = "GeForceFX Go 5700 (NV36)" // added by Louva-Deus
0x0348 = "GeForceFX Go 5700 (NV36)" // added by Louva-Deus
0x0349 = "GeForceFX 5??? Pro (NV36M)" // added by Louva-Deus
0x034B = "QuadroFX? (NV36MAP)" // added by Louva-Deus
0x034C = "QuadroFX Go 1000 (NV36)" // added by Louva-Deus
0x034E = "QuadroFX 1100 (NV36GL)" // added by Louva-Deus
0x034F = "QuadroFX (NV36GL)" // added by Louva-Deus
	if os > win2k
		if driver < 6.13.10.4072
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 6.13.10.4072
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.01.4072
			UnsupportedDriver
		endif
	endif
	break

unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// INTEL
//
//////////////////////////////////////////////////

Vendor = 0x8086  "Intel"


0x7800 = "740"
0x1240 = "752"
	Bad8888
	NoMipMap
	ForceSquareTextures
	LimitTextureSize
	UnsupportedHardware
	break
	
0x7121 = "810"
0x7123 = "810"
0x7124 = "810e"
0x7125 = "810e"
0x7126 = "810"
0x7127 = "810"
0x1132 = "815"
	Bad8888
	NoMipMap
	ForceSquareTextures
	LimitTextureSize
	
	if os > win2k
		if driver < 6.13.1.3196
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.3196
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.1.3196
			UnsupportedDriver
		endif
	endif
	break

0x3577 = "830"
0x2560 = "845g"
0x2562 = "845"
0x3580 = "852"
 	if os > win2k
		if driver < 6.13.1.3413
			UnsupportedDriver
		endif
	endif
	if os == win2k
		if driver < 5.13.1.3413
			UnsupportedDriver
		endif
	endif
	if os < win2k
		if driver < 4.13.1.3413
			UnsupportedDriver
		endif
	endif
	break

unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// VIDEOLOGIC
//
//////////////////////////////////////////////////

Vendor = 0x1033  "VideoLogic"
	SceneRenderer

0x0046 = "PowerVR"
0x0067 = "PowerVR2"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// TRIDENT
//
//////////////////////////////////////////////////

Vendor = 0x1023  "Trident"
0x8420 = "CyberBlade i7"
0x9320 = "Cyber9320"
0x9388 = "Cyber9388"
0x9397 = "Cyber9397"
0x939A = "Cyber9397 DVD"
0x9440 = "Cyber"
0x9520 = "Cyber9520"
0x9525 = "Cyber9520 DVD"
0x9540 = "CyberBlade E4"
0x9660 = "Cyber9385"
0x9880 = "Blade 3D"
0x9910 = "CyberBlade XP"
0x9930 = "CyberBlade XPm"
	if os < win2k
		if driver < 4.12.01.2309
			UnsupportedDriver
		endif
	endif
	break

0x9750 = "975"
0x9754 = "9753"
0x9850 = "3D Image"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// NUMBER NINE
//
//////////////////////////////////////////////////

Vendor = 0x105d  "Number Nine"
0x493d = "Revolution 3D"
0x5348 = "Revolution IV"
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break


///////////////////////////////////////////////////
//
// SILICON MOTION
//
//////////////////////////////////////////////////

Vendor = 0x126f  "Silicon Motion"
0x720  = "Lynx 3DM"
0x820  = "Lynx 3D"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

///////////////////////////////////////////////////
//
// CIRRUS
//
//////////////////////////////////////////////////

Vendor = 0x1013  "Cirrus"
0x0038 = "GD7548"
0x00a0 = "GD5430"
0x00a8 = "GD5434"
0x00ac = "GD5436"
0x00b8 = "GD5446"
0x00bc = "GD5480"
0x00d0 = "CL5462"
0x00d4 = "GD5464"
0x00d6 = "GD5465"
0x0301 = "GD5446"
0x1100 = "CL6729"
0x1202 = "GD7543"
0x6001 = "CL4610"
0x6003 = "CL4614"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break


///////////////////////////////////////////////////
//
// RENDITION
//
//////////////////////////////////////////////////

Vendor = 0x1163  "Rendition"
0x0001 = "Verite 1000"
0x2000 = "Verite 2100"
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break


///////////////////////////////////////////////////
//
// CHROMATIC
//
//////////////////////////////////////////////////

Vendor = 0x110b  "Chromatic"
0x0004 = "MPact"
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	Bad4444
	break


///////////////////////////////////////////////////
//
// WEITEK
//
//////////////////////////////////////////////////

Vendor = 0x100e  "Weitek"
0x9001 = "P9000"
0x9100 = "P9100"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break


///////////////////////////////////////////////////
//
// COMPAQ
//
//////////////////////////////////////////////////

Vendor = 0x0e11  "Compaq"
0x3032 = "QVision"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break


///////////////////////////////////////////////////
//
// DIGITAL
//
//////////////////////////////////////////////////

Vendor = 0x1011  "Digital"
0x0004 = "TGA"
0x000d = "TGA2"
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break


///////////////////////////////////////////////////
//
// NEOMAGIC
//
//////////////////////////////////////////////////

Vendor = 0x10c8  "NeoMagic"
0x0001 = "128"
0x0002 = "128"
0x0003 = "128ZV"
0x0004 = "128XD"
0x0005 = "256AV"
0x0006 = "256ZX"
0x0016 = "256XL"
	UnsupportedHardware
	NoMipMap
	ForceSquareTextures
	LimitTextureSize
	break
0x0025 = "256AV"
0x0083 = "128ZV"
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break


///////////////////////////////////////////////////
//
// TSENG
//
//////////////////////////////////////////////////

Vendor = 0x100c  "Tseng Labs"
0x3202 = "ET4000"
0x3205 = "ET4000"
0x3206 = "ET4000"
0x3207 = "ET4000"
0x3208 = "ET6000"
0x4702 = "ET6300"
unknown = "**UNIDENTIFIED**"
	UnsupportedHardware
	break


///////////////////////////////////////////////////
//
// UnknownHardware
//
//////////////////////////////////////////////////

Vendor = unknown
unknown = "**UNIDENTIFIED**"
	UnknownHardware
	break

