1) Is there any official reference/guide about default timings for the Voodoo2 output?
In other words: vertical and horizontal frame sizes; vertical and horizontal backporches; vertical and horizontal sync sizes; vertical, horizontal and RAMDAC frequencies.
512x384 and 640x400 modes timings are most wanted.
2) Is there a way to change the default Voodoo2 sync polarity (NN)?
Manual = 3dfx Voodoo2 Reference (1.16)? Already readed. It has register names but - not has exact values for hsync on/off, vsync on/off, h/v backporch, border, vclk and h/v frequencies I need.
Already.
The task is little different now.
1) To make sure these values are absolute (because SSTV2_HSYNC etc use the -1 offset). It looks so (640x400@70 and 640x480@60 timings are similar to VGA timings if there is no offset) but I must understand the code to be 100% sure.
2) To understand the RAMDAC frequency routine for Voodoo2.
3) As I can see - 512x384 uses different timings for SLI so - to check this routine too.
From the code (cvg\init\video.c, the sst1InitVideoBuffers function) - hSync, vSync, backPorch and videoDimensions registers use exact values from the sst1init.h timing structures.
But the specification tells real hSyncOn, hSyncOff and hBackPorch are bigger (+1, +1 and +2). Page 130.
The trouble is - there are 2 standard VGA videomodes (640x400@70 and 640x480@60) with well known timings. And sst1init.h structures for these 2 modes are same as VGA ones only w/o +1. +1 and +2.
Can't understand this... The specification is wrong?
Voodoo2 SLI and Voodoo2 non-SLI use very different timings for 512x384.
The minimal vertical frequency is 512x384@60 for non-SLI and 512x384@72 for SLI.
Non-SLI uses a large vertical frame size and a large vertical frontporch for 512x384 modes. So the h-freq is 47 kHz and above. All VGA-compatible monitors (h-sync 31.5 kHz and above) can sync.
SLI timings h-freq is around 31.2 kHz. Below the limit. Most monitors can draw this mode but can't adjust it to screen borders.
So if you use Voodoo2 SLI, 512x384 and there is no sync - disable SLI (set SSTV2_SLIDETECT=0) and try again.
P.S. Well, the correct reason is - non-SLI 512x384 versions of timings use the vertical double-scan. So they are 512x768.
P.S.S. Found the answer for the "change the default Voodoo2 sync polarity (NN)" question. You can't change polarities with environment variables.