|
|
Line 30: |
Line 30: |
| | 10/26/2000 || || [[File:zip.png|50px|link=File:3dfx_flash_2.14.zip]] | | | 10/26/2000 || || [[File:zip.png|50px|link=File:3dfx_flash_2.14.zip]] |
| |- | | |- |
− | ! 2.14 | + | ! 2.14 (modified) |
| | 10/26/2000 || Modified by Pa3PyX to be able to flash ROM files designed for other card models. || [[File:zip.png|50px|link=File:3dfx_flash_2.14_modified.zip]] | | | 10/26/2000 || Modified by Pa3PyX to be able to flash ROM files designed for other card models. || [[File:zip.png|50px|link=File:3dfx_flash_2.14_modified.zip]] |
| |- | | |- |
Revision as of 22:35, 21 January 2020
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.
Version |
Date |
Note |
Download
|
1.01
|
xx/xx/1998 |
|
|
1.03
|
03/15/1999 |
|
|
1.03E
|
07/02/1999 |
Extracted from Guillemont Phoenix Maxi Gamer flash-kit. |
|
1.04
|
01/13/1999 |
|
|
2.00.04
|
01/01/2000 |
|
|
2.13
|
06/15/2000 |
|
|
2.14
|
10/26/2000 |
|
|
2.14 (modified)
|
10/26/2000 |
Modified by Pa3PyX to be able to flash ROM files designed for other card models. |
|
2.17
|
03/01/2006 |
Compiled with the leaked sources. |
|
2.17 (source code)
|
10/19/2000 |
|
|
Release Notes
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 (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)
- Fixed bug with last entry in the structures SpeedVer and Builds wer never read.
- Fixed bug with Napalm BIOS builds not properly being found when multiple subvendor IDs were used for a set of BIOS builds.
- Added Daytona UserFlash code to perserve the Strapping Option DWORDS.
- Added Napalm support for the Napalm 4400 boards.
- Added Daytona support for the Daytona 4200 boards.
- MAIN.CPP
- In ValidateNewROM, fixed bug with size of SpeedVer and Builds structures not properly being read. In ValidateNewRom, expanded the check for the SubVendor ID to also check the bus type and BIOS speed.
- FLASH.H
- Added #defines for the offsets to the strapping option data.
- Added Napalm support for the Napalm 4400 boards.
- Added Daytona support for the Daytona 4200 boards.
- DATA.CPP
- Expanded the ChipSpeedVer and Napalm Build structures to include Napalm 4400.
- Removed the Napalm build for the V5P901 Voodoo5 5800.
- ROM.CPP
- In BeginROM, expand the check for Napalm to also include a check for Napalm2.
- Expanded the WriteROMFromFile routine to also preserve the strapping options DWORDS.
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.
Version |
Date |
Notes |
Download
|
1.02
|
02/09/1999 |
|
|
1.02G
|
02/24/1999 |
|
|
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)
Version |
Date |
Notes |
Download
|
1.0.3
|
07/28/1997 |
|
|
1.0.6
|
11/14/1997 |
|
|
1.00.04
|
08/04/1999 |
|
|
1.00.05.2
|
unknown |
Extracted from Quantum3D MGV flash-kit. This flash-tool is a rebranded VFLASH named AlscBBrn. |
|
FlashROM (Mac OS)
FlashROM is the flash tool for VoodooMACs functional with Mac OS 8 & 9.
Version |
Date |
Notes |
Download
|
Voodoo3
|
08/10/1999 |
|
|
Voodoo3
|
11/22/1999 |
|
|
Voodoo3
|
05/29/2000 |
|
|
Voodoo4/5
|
11/26/2000 |
|
|
Voodoo3 (source code)
|
xx/xx/1998 |
v1.05 |
|