Browse Source

We don't support 3dfx cards...

Come on, man... They made some good cards, but they went out of business
in 1999! Ain't nobody got time fo' dat.
Adam Johnson 11 years ago
parent
commit
bbae6a76d7
  1. 23
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXEnumerate.cpp
  2. 41
      Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.cpp
  3. 2
      Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.h

23
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXEnumerate.cpp

@ -723,29 +723,6 @@ void hsG3DDeviceSelector::ITryDirect3DTnLDriver(D3DEnum_DriverInfo* drivInfo)
/// Done first now, so we can alter the D3D type later
ITryDirect3DTnLDevice( &drivInfo->fDevices[i], currDevRec );
/// Check the vendor ID to see if it's 3dfx (#0x121a). If it is, don't add it.
/// (we don't support 3dfx D3D devices) -mcn
/// 11.25.2000 mcn - Knew this was going to come back and bite me. Now we just
/// append (3dfx) to the end of the device description, so that our latter test
/// can throw it out or not, depending on whether we're "strong".
if( drivInfo->fAdapterInfo.VendorId == 0x121a &&
( currDevRec.GetG3DHALorHEL() == hsG3DDeviceSelector::kHHD3DHALDev ||
currDevRec.GetG3DHALorHEL() == hsG3DDeviceSelector::kHHD3DTnLHalDev ) )
{
if( drivInfo->fAdapterInfo.DeviceId >= 0x00000009 )
{
currDevRec.SetG3DHALorHEL( kHHD3D3dfxVoodoo5Dev );
plDemoDebugFile::Write( " Tagging device as a 3dfx Voodoo5 or above" );
}
else
{
currDevRec.SetG3DHALorHEL( kHHD3D3dfxDev );
plDemoDebugFile::Write( " Tagging device as a non-V5 3dfx card" );
}
}
IFudgeDirectXDevice( currDevRec, (D3DEnum_DriverInfo *)drivInfo, (D3DEnum_DeviceInfo *)&drivInfo->fDevices[ i ] );
if( currDevRec.GetModes().GetCount() )

41
Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.cpp

@ -570,37 +570,19 @@ void hsG3DDeviceSelector::RemoveUnusableDevModes(bool bTough)
else if( fRecords[i].GetG3DDeviceType() == hsG3DDeviceSelector::kDevTypeDirect3D ||
fRecords[i].GetG3DDeviceType() == hsG3DDeviceSelector::kDevTypeDirect3DTnL )
{
uint32_t totalMem;
char devDesc[ 256 ];
// For our 3dfx test later
strncpy( devDesc, fRecords[i].GetDriverDesc(), sizeof( devDesc ) - 1 );
hsStrLower( devDesc );
uint32_t totalMem;
// Remove software Direct3D devices
if ((fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3DHALDev) &&
(fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3DTnLHalDev) &&
(fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3D3dfxDev) &&
(fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3D3dfxVoodoo5Dev)
(fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3DTnLHalDev)
#ifdef HS_ALLOW_D3D_REF_DRIVER
&& (fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3DRefDev)
&& (fRecords[i].GetG3DHALorHEL() != hsG3DDeviceSelector::kHHD3DRefDev)
#endif
)
{
plDemoDebugFile::Write( " Removing software Direct3D device. Description", (char *)fRecords[ i ].GetDriverDesc() );
fRecords[i].SetDiscarded(true);
}
// Remove 3Dfx Direct3D devices, take 2
// 10.13.2000 mcn - Now we do it even when we're wimpy
// 10.25.2000 mcn - Think again.
// 11.3.2000 mcn - Shesh, is this EVER going to be stable??
else if( bTough && fRecords[i].GetG3DHALorHEL() == hsG3DDeviceSelector::kHHD3D3dfxDev )
// else if( bTough && ( strstr( devDesc, "3dfx" ) || strstr( devDesc, "voodoo" ) ) )
{
plDemoDebugFile::Write( " Removing 3Dfx non-Voodoo5 Direct3D device (We only support Glide on 3Dfx). Description", (char *)fRecords[ i ].GetDriverDesc() );
fRecords[i].SetDiscarded(true);
}
// Remove Direct3D devices with less than 11 megs of RAM
else if (bTough && ( totalMem = IAdjustDirectXMemory( fRecords[i].GetMemoryBytes() ) ) < 11*1024*1024 )
{
@ -720,7 +702,7 @@ bool hsG3DDeviceSelector::GetDefault (hsG3DDeviceModeRecord *dmr)
iTnL = i;
}
}
else if (fRecords[i].GetG3DHALorHEL() == kHHD3DHALDev || fRecords[i].GetG3DHALorHEL() == kHHD3D3dfxVoodoo5Dev )
else if (fRecords[i].GetG3DHALorHEL() == kHHD3DHALDev)
{
if (iD3D == -1
#ifndef PLASMA_EXTERNAL_RELEASE
@ -1264,7 +1246,6 @@ namespace
kATIGenericChipset,
kMatroxGenericChipset,
kKYROChipset,
k3dfxV5Chipset,
kSavage3DChipset,
kATIRadeonChipset,
kATIR7X00Chipset,
@ -1417,11 +1398,6 @@ namespace
1, // First integer is always the length
hsG3DDeviceSelector::kCapsNoKindaSmallTexs };
uint32_t ds3dfxV5CapsClr[] = {
2, // First integer is always the length
hsG3DDeviceSelector::kCapsFogExp,
hsG3DDeviceSelector::kCapsFogExp2 };
uint32_t dsMatroxParheliaSet[] = {
1,
hsG3DDeviceSelector::kCapsNoAA };
@ -1470,7 +1446,6 @@ namespace
{ kSavage2000Chipset, dsSavageCapsSet, dsSavage2kCapsClr, 4.0f, 1, 0, &dsDefaultFogVals },
{ kS3GenericChipset, dsSavageCapsSet, dsS3GenerCapsClr, 4.0f, 1, 0, &dsDefaultFogVals },
{ kKYROChipset, dsKYROCapsSet, dsKYROCapsClr, -151.0f, 1, 0, &dsDefaultFogVals },
{ k3dfxV5Chipset, nil, ds3dfxV5CapsClr, 3.5f, 0, 0, &dsDefaultFogVals },
{ kSavage3DChipset, nil, dsDefaultCapsClr, 0, 0, 0, &dsS3DFogVals },
{ kATIRadeonChipset, dsATIRadeonCapsSet, dsATIRadeonCapsClr, 0, 0, 0, &dsRadeonFogVals },
{ kATIR7X00Chipset, dsATIR7X00CapsSet, dsATIR7X00CapsClr, 3.f, 2, 0, &dsRadeonFogVals },
@ -1734,14 +1709,6 @@ void hsG3DDeviceSelector::IFudgeDirectXDevice( hsG3DDeviceRecord &record,
plDemoDebugFile::Write( " Using fudge factors for a KYRO chipset" );
ISetFudgeFactors( kKYROChipset, record );
}
/// Detect for a 3dfx Voodoo5
else if( vendorID == 0x121a && deviceID == 0x00000009 &&
stricmp( szDriver, "3dfxvs.dll" ) == 0 )
{
hsStatusMessage( "== Using fudge factors for a 3dfx Voodoo5 chipset ==\n" );
plDemoDebugFile::Write( " Using fudge factors for a 3dfx Voodoo5 chipset" );
ISetFudgeFactors( k3dfxV5Chipset, record );
}
/// Detect for a GeForce-class card. We can be loose here because we want
/// to get ALL GeForce/2/256 cards
else if( strstr( desc, "nvidia" ) != nil && strstr( desc, "geforce2" ) != nil )

2
Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.h

@ -325,8 +325,6 @@ public:
kHHD3DMMXDev,
kHHD3DTnLHalDev,
kHHD3DRefDev,
kHHD3D3dfxDev,
kHHD3D3dfxVoodoo5Dev,
kNumHHTypes
};

Loading…
Cancel
Save