Voodoo Environment Variables

Discussion about old graphics cards, monitors and video related things.

Voodoo Environment Variables

Postby firage » 2017-7-08 @ 07:25

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
Code: Select all
3dfx Voodoo Graphics (SST-1), Glide 2.46

The following environment variables can optionally be used to alter
functionality (A value of X is a "don't care"):

Variable                    Value   Description
--------                    -----   -----------
SST_ARCADE                  X       Allow special configs for arcade use
SST_BACKPORCH               hex     Specify value of backPorch video register
SST_BOARDS                  val     Specify number of SST-1 boards in system
SST_DEBUGDAC                X       Print out debug information for DAC reads and writes
SST_DIMENSIONS              hex     Specify value of videoDimensions register
SST_FASTMEM                 1       Default. Enable fast memory timing
SST_FASTMEM                 0       Disable fast memory timing
SST_FASTPCIRD               X       Enable fast PCI reads
SST_FBICFG                  hex     Specify FBI configuration strapping bits
SST_FBIMEM_SIZE             val     Specify amount of frame buffer memory
SST_FT_CLK_DEL              hex     Fbi-to-Trex clock delay value
SST_GAMMA                   float   Floating point value for gamma correction
SST_GRXCLK                  val     16 <= Frequency < 80 (50 is default)
SST_HSYNC                   hex     Specify value of hSync video register
SST_IGNORE_INIT_GAMMA       X       Bypass sst1InitGamma call and return
SST_IGNORE_INIT_REGISTERS   X       Bypass sst1InitRegisters call and return
SST_IGNORE_INIT_VIDEO       X       Bypass sst1InitVideo call and return
SST_IGNORE_SLI_CHECK        X       Ignore checking for proper SLI install
SST_INITDEBUG               X       Enable debug output
SST_INITDEBUG_FILE          file    File to direct all debug output
SST_MEMFIFO                 0       Disable FBI Memory FIFO
SST_MEMFIFO                 1       Enable FBI Memory FIFO
SST_MEMFIFO_ENTRIES         hex     Set number of entries in memory fifo
SST_MEMFIFO_HWM             hex     Set memory fifo high water mark
SST_MEMFIFO_LFB             0 or 1  Specify LFB writes through Memory FIFO
SST_MEMFIFO_LWM             hex     Set memory fifo low water mark
SST_MEMFIFO_TEX             0 or 1  Specify Texture writes through Mem FIFO
SST_MEMOFFSET               hex     Specify value of memoffset video register
SST_NOCHECKHANG             X       Do not Check for FBI Hangs for texturing
SST_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 mark
SST_PFT_CLK_DEL             hex     Preliminary Fbi-to-Trex clock delay value
SST_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 detection
SST_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 rate
SST_SCREENREZ               512     Select 512x384 video resolution (overrides argument to sst1InitVideo)
SST_SCREENREZ               640     Select 640x480 video resolution
SST_SCREENREZ               800     Select 800x600 video resolution
SST_SLOWPCIWR               X       Enable 1 wait-state PCI writes
SST_TEXMAP_DISABLE          X       Disable texture mapping
SST_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 threshold
SST_TILESINX                hex     Specify value of tilesInX video register
SST_TMUCFG                  hex     Specify TMU configuration strapping bits
SST_TMUMEM                  X       Enable accurate determination of TMU mem
SST_TMUMEM_SIZE             val     Specify amount of texture memory
SST_TREX0INIT0              hex     Set trexInit0 register value - TMU #0
SST_TREX0INIT1              hex     Set trexInit1 register value - TMU #0
SST_TREX1INIT0              hex     Set trexInit0 register value - TMU #1
SST_TREX1INIT1              hex     Set trexInit1 register value - TMU #1
SST_TREX2INIT0              hex     Set trexInit0 register value - TMU #2
SST_TREX2INIT1              hex     Set trexInit1 register value - TMU #2
SST_TRIPLE_BUFFER           X       Enable Triple Buffering
SST_VIN_CLKDEL              hex     Specify FBI internal video clock delay
SST_VOUT_CLKDEL             hex     Specify FBI external video clock delay
SST_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 output
SST_VIDEO_24BPP             1       Select 24-bit video output
SST_VIDEO_DISABLE           X       Turn off Video/Monitor refresh in FBI
SST_VIDEO_FILTER_DISABLE    X       Disable video filtering
SST_VIDEO_FILTER_THRESHOLD  hex     Set video filtering threshold
SST_VIDEO_NOCLEAR           X       Do not clear buffers in sst1InitVideo()
SST_VIDEO_CLEARCOLOR        hex     Clear screen color
SST_VFIFO_THRESH            0-31    Select video fifo threshold
SST_VSYNC                   hex     Specify value of vSync video register

VOODOO_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
Code: Select all
3dfx Voodoo2 (CVG), Glide 2.53

The 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 use
SSTV2_ALLOC_AUX               {0,1}   Number of aux. buffers to allocate
SSTV2_ALLOC_COLOR             {2,3}   Number of color buffers to allocate
SSTV2_BACKPORCH               hex     Specify value of backPorch video register
SSTV2_BOARDS                  val     Specify number of SST-1 boards in system
SSTV2_CMDFIFO_DIRECT          X       Enable Direct Execution of CMDFIFO
SSTV2_CMDFIFO_NOHOLES         X       Disable hole counting feature in CMDFIFO
SSTV2_DEBUGDAC                X       Print out debug information for DAC reads and writes
SSTV2_DEVICEID                X       Specify the device ID value passed to the PCI library
SSTV2_DIMENSIONS              hex     Specify value of videoDimensions register
SSTV2_FASTMEM_RAS_READS       X       Allow fast ras reads
SSTV2_FASTPCIRD               X       Enable fast PCI reads
SSTV2_FBICFG                  hex     Specify FBI configuration strapping bits
SSTV2_FBI_MEMSIZE             val     Specify amount of frame buffer memory
SSTV2_FT_CLKDEL               hex     Fbi-to-Trex clock delay value
SSTV2_GAMMA                   float   Floating point value for gamma correction
SSTV2_GRXCLK                  val     16 <= Frequency < 80 (50 is default)
SSTV2_HSYNC                   hex     Specify value of hSync video register
SSTV2_IGNORE_CLKDELAYS        X       Ignore calls to sst1InitSetClkDelays()
SSTV2_IGNORE_IDLE             X       Ignore calls to sst1InitIdle*()
SSTV2_IGNORE_INIT_GAMMA       X       Bypass sst1InitGamma call and return
SSTV2_IGNORE_INIT_REGISTERS   X       Bypass sst1InitRegisters call and return
SSTV2_IGNORE_INIT_VIDEO       X       Bypass sst1InitVideo call and return
SSTV2_INITDEBUG               X       Enable debug output
SSTV2_INITDEBUG_FILE          file    File to direct all debug output
SSTV2_MEMFIFO                 0       Disable FBI Memory FIFO
SSTV2_MEMFIFO                 1       Enable FBI Memory FIFO
SSTV2_MEMFIFO_ENTRIES         hex     Set number of entries in memory fifo
SSTV2_MEMFIFO_HWM             hex     Set memory fifo high water mark
SSTV2_MEMFIFO_LFB             {0,1}   Specify LFB writes through Memory FIFO
SSTV2_MEMFIFO_LWM             hex     Set memory fifo low water mark
SSTV2_MEMFIFO_TEX             {0,1}   Specify Texture writes through Mem FIFO
SSTV2_MEMOFFSET               hex     Specify value of memoffset video register
SSTV2_NOCHECKHANG             X       Do not Check for FBI Hangs for texturing
SSTV2_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 detected
SSTV2_PCIFIFO_LWM             hex     Set pci fifo low water mark
SSTV2_PFT_CLKDEL              hex     Preliminary Fbi-to-Trex clock delay value
SSTV2_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 load
SSTV2_SLIDETECT               {0,1}   Specify Scanline Interleaving detection
SSTV2_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 rate
                              85,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 transitions
SSTV2_SLOWMEM_WTR             X       Insert wait state for write-to-read transitions
SSTV2_SLOWPCIWR               X       Enable 1 wait-state PCI writes
SSTV2_SLISWAP                 1       Use dac_data[0] for SLI swapping
SSTV2_SWAPBOARDS              X       Swap order of mapping boards
SSTV2_TEXMAP_DISABLE          X       Disable texture mapping
SSTV2_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 threshold
SSTV2_TILESINX                hex     Specify value of tilesInX video register
SSTV2_TMUCFG                  hex     Specify TMU configuration strapping bits
SSTV2_TMUMEM                  X       Enable accurate determination of TMU mem
SSTV2_TMU_MEMSIZE             val     Specify amount of texture memory
SSTV2_TREX0INIT0              hex     Set trexInit0 register value - TMU #0
SSTV2_TREX0INIT1              hex     Set trexInit1 register value - TMU #0
SSTV2_TREX1INIT0              hex     Set trexInit0 register value - TMU #1
SSTV2_TREX1INIT1              hex     Set trexInit1 register value - TMU #1
SSTV2_TREX2INIT0              hex     Set trexInit0 register value - TMU #2
SSTV2_TREX2INIT1              hex     Set trexInit1 register value - TMU #2
SSTV2_VIN_CLKDEL              hex     Specify FBI internal video clock delay
SSTV2_VOUT_CLKDEL             hex     Specify FBI external video clock delay
SSTV2_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 output
SSTV2_VIDEO_24BPP             1       Select 24-bit video output
SSTV2_VIDEO_DISABLE           X       Turn off Video/Monitor refresh in FBI
SSTV2_VIDEO_FILTER_DISABLE    X       Disable video filtering
SSTV2_VIDEO_FILTER_THRESHOLD  hex     Set video filtering threshold
SSTV2_VIDEO_NOCLEAR           X       Do not clear buffers in sst1InitVideo()
SSTV2_VIDEO_CLEARCOLOR        hex     Clear screen color
SSTV2_VFIFO_THRESH            {0-31}  Select video fifo threshold
SSTV2_VSYNC                   hex     Specify value of vSync video register

VOODOO2_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:
Code: Select all
  nColBuffers - number of color buffers to attempt to allocate
                0 - meaningless
                1 - allocate a front buffer only
                2 - allocate a front and back buffer
                3 - allocate a front, back, aux buffer for tripple buffering
  nAuxBuffers - number of aux buffers to attempt to allocate
                0 - no alpha or z buffers
                1 - allocate one aux buffer for alpha/depth buffering
                2 - allocate on depth and one alpha buffer (unsup)
Attachments
Glide_V2-2.53.tar.gz
(2.33 MiB) Downloaded 22 times
Glide_VG-2.46.tar.gz
(2.73 MiB) Downloaded 18 times
User avatar
firage
Oldbie
 
Posts: 1066
Joined: 2013-1-06 @ 21:43
Location: Finland

Re: Voodoo Environment Variables

Postby leileilol » 2017-7-08 @ 21:25

V3's flags are set through the windows registry IIRC (with a program to help you do this). Sadly I couldn't find a way to adjust V3's filter threshold...

Code: Select all
SST_VIDEO_24BPP             0       Select 16-bit video output
SST_VIDEO_24BPP             1       Select 24-bit video output

Quite misleading, as it seems to be another setting to disable the dac filter (if set to 0, default's already 1)


should also mention the default hex value for _FILTER_THRESHOLD is 080408
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
DOSBox is not for running Windows 9x
SGL != Glide
User avatar
leileilol
l33t++
 
Posts: 9457
Joined: 2006-12-16 @ 18:03

Re: Voodoo Environment Variables

Postby firage » 2017-7-08 @ 22:28

Yeah. The frame buffer is always 16-bit, dithered or truncated down from 24 bits. The video bit depth has to refer to gamma corrected and 4x1 filtered output after the frame buffer.
User avatar
firage
Oldbie
 
Posts: 1066
Joined: 2013-1-06 @ 21:43
Location: Finland

Re: Voodoo Environment Variables

Postby voodoo47 » 2017-7-10 @ 16:40

looking for these maybe?
voodoo47
Newbie
 
Posts: 44
Joined: 2016-3-09 @ 16:18


Return to Video

Who is online

Users browsing this forum: No registered users and 2 guests