First post, by firage
- Rank
- Oldbie
3dfx's V1 & V2 Glide source code releases were commented with exhaustive lists of environment variables, with descriptions:
3dfx Voodoo Graphics (SST-1), Glide 2.46
3dfx Voodoo Graphics (SST-1), Glide 2.46The following environment variables can optionally be used to alterfunctionality (A value of X is a "don't care"):Variable Value Description-------- ----- -----------SST_ARCADE X Allow special configs for arcade useSST_BACKPORCH hex Specify value of backPorch video registerSST_BOARDS val Specify number of SST-1 boards in systemSST_DEBUGDAC X Print out debug information for DAC reads and writesSST_DIMENSIONS hex Specify value of videoDimensions registerSST_FASTMEM 1 Default. Enable fast memory timingSST_FASTMEM 0 Disable fast memory timingSST_FASTPCIRD X Enable fast PCI readsSST_FBICFG hex Specify FBI configuration strapping bitsSST_FBIMEM_SIZE val Specify amount of frame buffer memorySST_FT_CLK_DEL hex Fbi-to-Trex clock delay valueSST_GAMMA float Floating point value for gamma correctionSST_GRXCLK val 16 <= Frequency < 80 (50 is default)SST_HSYNC hex Specify value of hSync video registerSST_IGNORE_INIT_GAMMA X Bypass sst1InitGamma call and returnSST_IGNORE_INIT_REGISTERS X Bypass sst1InitRegisters call and returnSST_IGNORE_INIT_VIDEO X Bypass sst1InitVideo call and returnSST_IGNORE_SLI_CHECK X Ignore checking for proper SLI installSST_INITDEBUG X Enable debug outputSST_INITDEBUG_FILE file File to direct all debug outputSST_MEMFIFO 0 Disable FBI Memory FIFOSST_MEMFIFO 1 Enable FBI Memory FIFOSST_MEMFIFO_ENTRIES hex Set number of entries in memory fifoSST_MEMFIFO_HWM hex Set memory fifo high water markSST_MEMFIFO_LFB 0 or 1 Specify LFB writes through Memory FIFOSST_MEMFIFO_LWM hex Set memory fifo low water markSST_MEMFIFO_TEX 0 or 1 Specify Texture writes through Mem FIFOSST_MEMOFFSET hex Specify value of memoffset video registerSST_NOCHECKHANG X Do not Check for FBI Hangs for texturingSST_NODEVICEINFO X Ignore calls to sst1InitFillDeviceInfo()SST_NOSHUTDOWN X Do not turn off monitor refresh on call to sst1InitShutdown()SST_PCIFIFO_LWM hex Set pci fifo low water markSST_PFT_CLK_DEL hex Preliminary Fbi-to-Trex clock delay valueSST_PTF0_CLK_DEL hex Prelim TMU2Fbi clock delay value (TMU #0)SST_PTF1_CLK_DEL hex Prelim TMU2Fbi clock delay value (TMU #1)SST_PTF2_CLK_DEL hex Prelim TMU2Fbi clock delay value (TMU #2)SST_SLIDETECT 0 or 1 Specify Scanline Interleaving detectionSST_SLIM_VIN_CLKDEL hex Specify FBI internal video clock delay (SLI Master)SST_SLIM_VOUT_CLKDEL hex Specify FBI external video clock delay (SLI Master)SST_SLIS_VIN_CLKDEL hex Specify FBI internal video clock delay (SLI Slave)SST_SLIS_VOUT_CLKDEL hex Specify FBI external video clock delay (SLI Slave)SST_SCREENREFRESH 60 Select 60Hz monitor refresh rate (overrides argument to sst1InitVideo)SST_SCREENREFRESH 75 Select 75Hz monitor refresh rateSST_SCREENREZ 512 Select 512x384 video resolution (overrides argument to sst1InitVideo)SST_SCREENREZ 640 Select 640x480 video resolutionSST_SCREENREZ 800 Select 800x600 video resolutionSST_SLOWPCIWR X Enable 1 wait-state PCI writesSST_TEXMAP_DISABLE X Disable texture mappingSST_TF0_CLK_DEL hex Trex-to-Fbi clock delay value (TMU #0)SST_TF1_CLK_DEL hex Trex-to-Fbi clock delay value (TMU #1)SST_TF2_CLK_DEL hex Trex-to-Fbi clock delay value (TMU #2)SST_TF_FIFO_THRESH hex Set TREX-to-FBI FIFO thresholdSST_TILESINX hex Specify value of tilesInX video register
SST_TMUCFG hex Specify TMU configuration strapping bitsSST_TMUMEM X Enable accurate determination of TMU memSST_TMUMEM_SIZE val Specify amount of texture memorySST_TREX0INIT0 hex Set trexInit0 register value - TMU #0SST_TREX0INIT1 hex Set trexInit1 register value - TMU #0SST_TREX1INIT0 hex Set trexInit0 register value - TMU #1SST_TREX1INIT1 hex Set trexInit1 register value - TMU #1SST_TREX2INIT0 hex Set trexInit0 register value - TMU #2SST_TREX2INIT1 hex Set trexInit1 register value - TMU #2SST_TRIPLE_BUFFER X Enable Triple BufferingSST_VIN_CLKDEL hex Specify FBI internal video clock delaySST_VOUT_CLKDEL hex Specify FBI external video clock delaySST_VGA_PASS 0,1 Force VGA_PASS output to {0,1}SST_VIDCLK2X val Video clock frequency (2x dot clock)SST_VIDEO_24BPP 0 Select 16-bit video outputSST_VIDEO_24BPP 1 Select 24-bit video outputSST_VIDEO_DISABLE X Turn off Video/Monitor refresh in FBISST_VIDEO_FILTER_DISABLE X Disable video filteringSST_VIDEO_FILTER_THRESHOLD hex Set video filtering thresholdSST_VIDEO_NOCLEAR X Do not clear buffers in sst1InitVideo()SST_VIDEO_CLEARCOLOR hex Clear screen colorSST_VFIFO_THRESH 0-31 Select video fifo thresholdSST_VSYNC hex Specify value of vSync video registerVOODOO_FILE name Filename used in place of "voodoo.ini"VOODOO_PATH path Path used to locate "voodoo.ini" file
3dfx Voodoo2 (CVG), Glide 2.53
3dfx Voodoo2 (CVG), Glide 2.53The following environment variables can optionally be used to alter functionality (A value of X is a "don't care"):Variable Value Description-------- ----- -----------SSTV2_ARCADE X Allow special configs for arcade useSSTV2_ALLOC_AUX {0,1} Number of aux. buffers to allocateSSTV2_ALLOC_COLOR {2,3} Number of color buffers to allocateSSTV2_BACKPORCH hex Specify value of backPorch video registerSSTV2_BOARDS val Specify number of SST-1 boards in systemSSTV2_CMDFIFO_DIRECT X Enable Direct Execution of CMDFIFOSSTV2_CMDFIFO_NOHOLES X Disable hole counting feature in CMDFIFOSSTV2_DEBUGDAC X Print out debug information for DAC reads and writesSSTV2_DEVICEID X Specify the device ID value passed to the PCI librarySSTV2_DIMENSIONS hex Specify value of videoDimensions registerSSTV2_FASTMEM_RAS_READS X Allow fast ras readsSSTV2_FASTPCIRD X Enable fast PCI readsSSTV2_FBICFG hex Specify FBI configuration strapping bitsSSTV2_FBI_MEMSIZE val Specify amount of frame buffer memorySSTV2_FT_CLKDEL hex Fbi-to-Trex clock delay valueSSTV2_GAMMA float Floating point value for gamma correctionSSTV2_GRXCLK val 16 <= Frequency < 80 (50 is default)SSTV2_HSYNC hex Specify value of hSync video registerSSTV2_IGNORE_CLKDELAYS X Ignore calls to sst1InitSetClkDelays()SSTV2_IGNORE_IDLE X Ignore calls to sst1InitIdle*()SSTV2_IGNORE_INIT_GAMMA X Bypass sst1InitGamma call and returnSSTV2_IGNORE_INIT_REGISTERS X Bypass sst1InitRegisters call and returnSSTV2_IGNORE_INIT_VIDEO X Bypass sst1InitVideo call and returnSSTV2_INITDEBUG X Enable debug outputSSTV2_INITDEBUG_FILE file File to direct all debug outputSSTV2_MEMFIFO 0 Disable FBI Memory FIFOSSTV2_MEMFIFO 1 Enable FBI Memory FIFOSSTV2_MEMFIFO_ENTRIES hex Set number of entries in memory fifoSSTV2_MEMFIFO_HWM hex Set memory fifo high water markSSTV2_MEMFIFO_LFB {0,1} Specify LFB writes through Memory FIFOSSTV2_MEMFIFO_LWM hex Set memory fifo low water markSSTV2_MEMFIFO_TEX {0,1} Specify Texture writes through Mem FIFOSSTV2_MEMOFFSET hex Specify value of memoffset video registerSSTV2_NOCHECKHANG X Do not Check for FBI Hangs for texturingSSTV2_NODEVICEINFO X Ignore calls to sst1InitFillDeviceInfo()SSTV2_NOSHUTDOWN X Do not turn off monitor refresh on call to sst1InitShutdown()SSTV2_NUM_TMUS {1,2,3} Specify number of TMUs detectedSSTV2_PCIFIFO_LWM hex Set pci fifo low water markSSTV2_PFT_CLKDEL hex Preliminary Fbi-to-Trex clock delay valueSSTV2_PTF0_CLKDEL hex Prelim TMU2Fbi clock delay value (TMU #0)SSTV2_PTF1_CLKDEL hex Prelim TMU2Fbi clock delay value (TMU #1)SSTV2_PTF2_CLKDEL hex Prelim TMU2Fbi clock delay value (TMU #2)SSTV2_SIPROCESS_CNTR hex Silicon process monitor PCI counter loadSSTV2_SLIDETECT {0,1} Specify Scanline Interleaving detectionSSTV2_SLIM_VIN_CLKDEL hex Specify FBI internal video clock delay (SLI Master)SSTV2_SLIM_VOUT_CLKDEL hex Specify FBI external video clock delay (SLI Master)SSTV2_SLIS_VIN_CLKDEL hex Specify FBI internal video clock delay (SLI Slave)SSTV2_SLIS_VOUT_CLKDEL hex Specify FBI external video clock delay (SLI Slave)SSTV2_SCREENREFRESH {60,75, Select monitor refresh rate85,120}SSTV2_SCREENREZ {512, Select monitor resolution (512x384)512256, (512x256)640400, (640x400)640, (640x480)
800, (800x600)856, (856x600)960, (960x720)1024} (1024x768)SSTV2_SLOWMEM_RTW X Insert wait state for read-to-write transitionsSSTV2_SLOWMEM_WTR X Insert wait state for write-to-read transitionsSSTV2_SLOWPCIWR X Enable 1 wait-state PCI writesSSTV2_SLISWAP 1 Use dac_data[0] for SLI swappingSSTV2_SWAPBOARDS X Swap order of mapping boardsSSTV2_TEXMAP_DISABLE X Disable texture mappingSSTV2_TF0_CLKDEL hex Trex-to-Fbi clock delay value (TMU #0)SSTV2_TF1_CLKDEL hex Trex-to-Fbi clock delay value (TMU #1)SSTV2_TF2_CLKDEL hex Trex-to-Fbi clock delay value (TMU #2)SSTV2_TF_FIFO_THRESH hex Set TREX-to-FBI FIFO thresholdSSTV2_TILESINX hex Specify value of tilesInX video registerSSTV2_TMUCFG hex Specify TMU configuration strapping bitsSSTV2_TMUMEM X Enable accurate determination of TMU memSSTV2_TMU_MEMSIZE val Specify amount of texture memorySSTV2_TREX0INIT0 hex Set trexInit0 register value - TMU #0SSTV2_TREX0INIT1 hex Set trexInit1 register value - TMU #0SSTV2_TREX1INIT0 hex Set trexInit0 register value - TMU #1SSTV2_TREX1INIT1 hex Set trexInit1 register value - TMU #1SSTV2_TREX2INIT0 hex Set trexInit0 register value - TMU #2SSTV2_TREX2INIT1 hex Set trexInit1 register value - TMU #2SSTV2_VIN_CLKDEL hex Specify FBI internal video clock delaySSTV2_VOUT_CLKDEL hex Specify FBI external video clock delaySSTV2_VGA_PASS {0,1} Force VGA_PASS output to {0,1}SSTV2_VIDCLK2X val Video clock frequency (2x dot clock)SSTV2_VIDEO_24BPP 0 Select 16-bit video outputSSTV2_VIDEO_24BPP 1 Select 24-bit video outputSSTV2_VIDEO_DISABLE X Turn off Video/Monitor refresh in FBISSTV2_VIDEO_FILTER_DISABLE X Disable video filteringSSTV2_VIDEO_FILTER_THRESHOLD hex Set video filtering thresholdSSTV2_VIDEO_NOCLEAR X Do not clear buffers in sst1InitVideo()SSTV2_VIDEO_CLEARCOLOR hex Clear screen colorSSTV2_VFIFO_THRESH {0-31} Select video fifo thresholdSSTV2_VSYNC hex Specify value of vSync video registerVOODOO2_FILE name Filename used in place of "voodoo2.ini"VOODOO2_PATH path Path used to locate "voodoo2.ini" file
Unfortunately no such great luck with the source code I found for Voodoo 3-5.
The environment variable names tend to show up in plain text inside statically linked game executables and glide2x.ovl files. Seems like a good way to confirm that they're built to at least recognize a given variable.
Old statically linked games only recognize V1 variables and so those are all you use even with a Voodoo 2. I'm now thinking even "SSTV2_FASTMEM", "SSTV2_FASTPCIRD" and "FX_GLIDE_ALLOC_COLOR" do nothing if the linked library doesn't know to look for them.
A bunch of their source code is nicely commented. (I've attached it at the end of the post for posterity and reference.) Makes it possible to trace sparsely detailed stuff like FX_GLIDE_ALLOC_COLOR and FX_GLIDE_ALLOC_AUX respectively to nColBuffers and nAuxBuffers with good descriptions, for example:
nColBuffers - number of color buffers to attempt to allocate0 - meaningless1 - allocate a front buffer only2 - allocate a front and back buffer3 - allocate a front, back, aux buffer for tripple bufferingnAuxBuffers - number of aux buffers to attempt to allocate0 - no alpha or z buffers1 - allocate one aux buffer for alpha/depth buffering2 - allocate on depth and one alpha buffer (unsup)
