General Information
Please keep in mind that's your own risk to flash a fully working card. I take no responsibility for any damage to hard- and/or software.
3dfx Flash
3dfx Flash is the successor of USERFLSH and based on its code. Version 1.xx can be used for flashing Voodoo Banshee graphic cards.
For newer cards (Voodoo3+) only version 2.xx should be used. For flashing the newest prototypes (Daytona) you must use the newest version since the needed support was added with version 2.16.
1.03
| Attribute
|
Value
|
| Date
|
03/15/1999
|
| Notes
|
|
| Download
|
|
1.03E
| Attribute
|
Value
|
| Date
|
07/02/1999
|
| Notes
|
Extracted from Guillemont
Phoenix Maxi Gamer flash-kit.
|
| Download
|
|
1.04
| Attribute
|
Value
|
| Date
|
01/13/1999
|
| Notes
|
|
| Download
|
|
2.13
| Attribute
|
Value
|
| Date
|
06/15/2000
|
| Notes
|
|
| Download
|
|
2.14
| Attribute
|
Value
|
| Date
|
10/26/2000
|
| Notes
|
|
| Download
|
|
2.17
| Attribute
|
Value
|
| Date
|
03/01/2006
|
| Notes
|
Compiled with the leaked sources.
|
| Download
|
|
2.17 (Source Code)
| Attribute
|
Value
|
| Date
|
10/19/2000
|
| Notes
|
|
| Download
|
|
Release Notes
Version 2.00 - 2.08
|
Version 2.00 (02/10/1999)
- This flash version will flash either a 32K or 64K binary image. It will also save off the previos BIOS according to its size. The Atmel 29LV512, 49BV512 and SST27LE512 are now supported.
- DATA.CPP
- FLASH.H
- Added dwOldROMSaveSize and dwNewBinFileSize for ROM and Bin file sizes.
- MAIN.CPP
- Changed the file size checking to allow the variance between 64K and 32K.
- Added the ID's for the new EEPROMs.
- ROM.CPP
- Changed the hard coded values of above.
Version 2.01 (02/24/1999)
- FLASH now supports both Banshee and Avenger. This fixes PRS#4394.
- Fixed bug with 32K ROM subvendor and subsystem ID not being shadowed onto the upper 64K. This fixes PRS#4434.
- ROM.CPP
- Enabled code which shadows the PCI subsystem and subvendor ID to the upper 64K of ROM when flashing a 32K BIOS. Fixes PRS#4394.
- DATA.CPP
- Changed the strings szCopyright and szNoBoard to have no reference to Voodoo3. This is so that the flash will work on both Banshee and Voodoo3. Fixes PRS#4434.
- MAIN.CPP
- In InitBoard, removed the check for Voodoo3 2000 and added a check for Banshee.
- In Main, added a check for the ATMEL 29LV512 parts.
Version 2.02 (02/25/1999)
- Fixed bug with not being able to flash a 32K BIOS on a board strapped for 32K. Fixes PRS#4617.
- ROM.CPP
- In WriteROMFromFile, added the ROM size strapping, MiscInit0[24], to determine if the board is strapped for 32K or 64K before deciding if the PCI subvendor and subsystem ID needs to be shadowed to the upper 64K of the ROM.
|
Version 2.03 (03/04/1999)
- Added support for 40K BIOSs. This must be used with all 40K BIOSs!
- ROM.CPP
- In WriteROMFromFile, added code to handle 40K ROMs in a 64K ROM file binary.
Version 2.04 (03/05/1999)
- Fixed problem with not being able to create a SAVE.ROM image when the SAVE.ROM ROM size was 40K. Fixes PRS#4852.
- MAIN.CPP
- The the main routine, modified the check for a 64K ROM to check for anything above 32K, and will then assume a 64K ROM binary.
Version 2.05 (03/18/1999)
- ROM.CPP
- In WriteROMFromFile, added code to handle programming a 32K ROM which is in a 64K Binary.
|
Version 2.06 (04/01/1999)
- Makefile
- DATA.CPP
- Added Board descriptor info and bumped version to 2.06.
- MAIN.CPP
- Added support for multiple boards in system.
- USER.CPP
- Added ContinueYN function.
- FLASH.H
- Added support for multiple boards and board info.
- PCIINFO.CPP & VIDIN.H
Version 2.07 (04/05/1999)
- PCIINFO.ASM
- Fixed errors in the type casting of variables in the routines _pciCreateConfigSpaceMapping and the PCIEnumerate.
- DATA.CPP
- Changed some of the "3Dfx" strings to say "3dfx".
Version 2.08 (07/20/1999)
- DATA.CPP
- Added new SSIDs for the new Voodoo3 and Velocity series products.
|
Version 2.09 - 2.17
|
Version 2.09 (07/22/1999)
- Added support for flashing Napalm and Rampage.
- Clean up some of the compiler warning messages in PCIINFO.CPP.
- DATA.CPP
- Created seperate chip strings, ChipSpeedVer tables, and ChipBuildInfo tables for V3, Napalm, and Rampage.
- Added Napalm and Rampage into the Device name table.
- Made wDeviceId a global variable.
- FLASH.H
- Created #define ChipId for Napalm and Rampage.
- Created seperate ChipSpeedVer and ChipBuildInfo table size defines for V3, Napalm, and Rampage.
- Added Napalm and Rampage intot he ChipSpeedtype enumerated table.
- Renamed all the "V3_" variables to "CHIP_".
- Modified the ChipSpeedVer strucuture to include BusType.
- MAIN.CPP
- Modified the SelectBoard routine to use the TdfxDeviceName table to get the board name.
- Modified the ValidateNewRom to handle searching Napalam and Rampage. The changes were made in a way so that adding support for a new chip can easily be made.
- PCIINFO.CPP
- Commented out some of the PCIINFO variables to remove the warning messages generated by the compilier.
- ROM.CPP
- In BeginROM, added code to program MiscInit[2] to enable ROM Writes on Rampage only. Napalam and V3 programs MiscInit[4] to enable ROM writes.
Version 2.10 (01/15/2000)
- Fixed error with not being able to detect Voodoo4 and Voodoo5 cards.
- Changed the Napalm PCI device ID from 0x07 to 0x09.
- Updated Napalm board configuration tables.
- FLASH.H
- Changed the Napalm device ID from 0x07 to 0x09.
- Updated the ChipSpeedType struture for the all the Napalm board types.
- Created externs for sVoodoo4 and sVoodoo5 BIOS string names.
- Fixed bug in sNapalmBuilds and sRampageBuilds extern defination.
- DATA.CPP
- Created the strings sVoodoo4 and sVoodoo5.
- Updated the structures sNapalmSpeedVer and sNapalmBuilds.
- Updated the version number to 2.10.
- MAIN.CPP
- In ValidateNewROM, added check for Voodoo4 and Voodoo5. Also modified scheme to check for SDRAM and SGRAM Napalm BIOS. Will now read the board configuration DWORD instead of searching for the "-SD" or "-SG" string.
Version 2.11 (01/15/2000)
- Fixed bug with not being able to flash PCI cards on a Camino motherboard. Camino systems have the PCI bus on bus 2 not bus 0.
- VIDIN.H
- Change the MAX_PCI_DEVICES to scan 00h to 0Fh buses for 3dfx cards.
|
Version 2.12 (02/02/2000)
- Fixed bug with trying to FLASH bios while in a full screen DOS session and after running Windows. Fixes PRS#12546.
- ROM.CPP
- In BeginRom, save the original state of MiscInit0 and cleared MiscInit0[30]=0 begin flash the ROM.
- In EndRom, restored the original state of MiscInit0.
- MAIN.CPP
- In InitBoard, initilized the variable lpLinMiscInit0 with the current miscInit0 value.
- DATA.CPP
- Created the variables dwOrgMiscInit0 and lpLimMiscInit0.
- FLASH.H
- Created the externs dwOrgMiscInit0 and lpLinMiscInit0.
Version 2.13 (03/07/2000)
- Combined the FLASH and USERFLASH code base into one source tree.
- To compile FLASH,
- Type "nmake clean".
- Type "nmake". Resulting file is FLASH.EXE.
- To compile USERFLASH,
- Type "nmake -fuserflsh.mak clean".
- Type "nmake -fuserflsh.mak". Resulting file is USERFLSH.EXE.
- UserFlash coded is conditionally compiled.
- Added support for the SST 39VF512 flash part.
- Added support for the Velocity and Voodoo3 1000 boards.
- USAGE.TXT UserFlash Usage.txt
- NEW FILE
- UserFlash usage documents.
- USERFLSH.MAK
- NEW FILE
- Makefile for creating USERFLSH.EXE.
- FLASH.H
- Added #defines for the offsets to the OEMConfig table.
- Added #defines for the size and register offsets to the Voodoo3, Napalm and Rampage OemConfig tables.
- Added #define for the SST_35VF512 device ID.
- Increased the number for V3 boards from 59 to 74.
- Updated the ChipSpeedType structure for the Velocity 100 and 200 boards.
- Added defines for UserFlash routines and variables.
- Changed the constant NUM_REGS into a variable.
- DATA.CPP
- Added the variable sVd3Velocity to check for the "Velocity" string in the BIOS.
- In the structure ChipSpeedVer, added support for the Velocity 100/200 and Voodoo3 1000 boards.
- In the structure sV3Builds, added the board configurations for the Velocity 100/200 and Voodoo3 1000 boards.
- Added UserFlash variables byVPDBuffer abd byRegisterOffset.
- Changed the "Napalm" string to "VSA 100".
- Conditonally compilied two seperate set of copyright and usage messages for FLASH and USERFLSH.
- Added variables and boolean flags for the USERFLASH command line override options.
- Modified the USERFLASH structure sOEMCfgREgInfo to default to use the V3 OEMConfig strurcture.
- MAIN.CPP
- Added the USERFLASH code to properly generate the correct escape codes when printing error messages.
- In the main routine, added USERFLASH code to initilize all the command line flags to false. Also parsed the command line parameters and set the appropiate flags.
- In the main routine, added a check for the SST 39VF512 flash part.
- In the main routine, added the USERFLASH code to compare version numbers. If the current BIOS version is newer than the BIOS to be flashed, a warning message is printed. Also added USERFLASH code to not preserve the original OEMConfig register settings and use the new settings in the binary file about to be flashed.
- In the ValidateNewRom routine, added a check for the Velocity BIOS. Also added UserFlash code to skip the check of the SSID and board configuration.
- ROM.CPP
- In the routine SaveRom, added UserFlash code to save the VPD structure.
- In the routine WriteROMRestore, modified the loop to always assume a 64K BIOS.
- In the routine WriteROMFromFile, added UserFlash code to restore settings depending on the command line flag settings.
- In the routine ROMVerifyWrite, added support for the SST 35VF512 flash part.
- Added the following UserFlash routines:
- IsVPDAvailable
- Check if the old ROM had a VPD to update
- SaveOffOldRegs
- Save the configuration table for the register settings of the old BIOS. To be maintained when the new BIOS is flashed.
- GetNewRegsSettingPtr
- Return the WORD pointer for the Register settings table within the new BIOS file.
- CopyInOldRegs
- Copy the Original Register settings from the old BIOS into the new BIOS.
- NewFileVPDAvailable
- Check the file intended to be flashed to see if the VPD structure is there
- CheckLaterVersion
- Will compare the versions of the ROM and the new file to see which is later
Version 2.14 (08/04/2000)
- Added support for the Napalm V5-5800 boards.
- FLASH.H
- Changed the number of Napalm board options, NUM_NAPALM_BUILDS, to 16 and the number of Napalm speed options, NUM_NAPALM_SPEED, to 5.
- Updated the ChipSpeedType structure to include Napalm_5800.
- DATA.CPP
- Updated the sChipSpeedVer variable to support for to 10 speed types.
- Added the Napalm 5800 to the sNapalmSpeedVer and sNapalmBuilds structures.
|
Version 2.15 (08/17/2000)
- Added support for the Napalm2.
- MAIN.CPP
- In ValidateNewRom, expanded the Napalm chip ID check to also include Napalm2.
- FLASH.H
- Added "#define ChipIdNapalm2 0x0B" for the Napalm2 chip ID.
- Updated NUM_TDFX_CHIPS to 6.
Version 2.16 (09/12/2000)
Version 2.17 (09/12/2000)
- Added Daytona support for the Daytona 4000 boards.
- DATA.CPP
- Expanded the ChipSpeedVer and Napalm Build structures to include the Daytona 4000.
- FLASH.H
- Added Daytona support for the Daytona 4000 boards.
|
USERFLSH
USERFLSH is the successor of VFLASH and predecessor of 3dfx Flash. It should be used for flashing Voodoo Banshee graphic cards.
1.02
| Attribute
|
Value
|
| Date
|
02/09/1999
|
| Notes
|
|
| Download
|
|
1.02G
| Attribute
|
Value
|
| Date
|
02/24/1999
|
| Notes
|
|
| Download
|
|
VFLASH
VFLASH is the predecessor of USERFLSH and should be used for flashing Voodoo Rush graphic cards. Newer flashing tools shouldn't be compatible.
This tools supports the following flash chips:
- ATmel (AT29C010A)
- Alliance (AS29F010)
- AMD (AM29f10)
1.0.3
| Attribute
|
Value
|
| Date
|
07/28/1997
|
| Notes
|
|
| Download
|
|
1.00.04
| Attribute
|
Value
|
| Date
|
08/04/1999
|
| Notes
|
|
| Download
|
|
1.00.05.2
| Attribute
|
Value
|
| Date
|
unknown
|
| Notes
|
Extracted from Quantum3D MGV flash-kit.
This flash-tool is a rebranded VFLASH named AlscBBrn.
|
| Download
|
|
1.0.6
| Attribute
|
Value
|
| Date
|
11/14/1997
|
| Notes
|
|
| Download
|
|
FlashROM (Mac OS)
FlashROM is the flash tool for VoodooMACs functional with Mac OS 8 & 9.
Voodoo3 (08/10/1999)
| Attribute
|
Value
|
| Date
|
08/10/1999
|
| Notes
|
|
| Download
|
|
Voodoo3 (11/22/1999)
| Attribute
|
Value
|
| Date
|
11/22/1999
|
| Notes
|
|
| Download
|
|
Voodoo3 (05/29/2000)
| Attribute
|
Value
|
| Date
|
05/29/2000
|
| Notes
|
|
| Download
|
|
Voodoo4/5 (11/26/2000)
| Attribute
|
Value
|
| Date
|
11/26/2000
|
| Notes
|
|
| Download
|
|
Voodoo3 1.05 (Source Code)
| Attribute
|
Value
|
| Date
|
xx/xx/1998
|
| Notes
|
|
| Download
|
|