VOGONS


First post, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I'm a bit confused about this. I belived that 8MB is far enough because 1 frame takes 7,6MB in 32bpp or 5,7MB in 24bpp that fits in 8MB. But it seems that Windows require some extra reserved VRAM for some internal buffers - do we know how much exactly? I can only say it's less than 2 full frames. I did 2 experiments with Matrox Millennium II 8MB PCI that can choose only 1600x1200/16bpp or 1280x1024/24bpp and ELSA GLoria Synergy (3Dlabs Permedia 2) 8MB PCI that can choose only 1600x1200/15bpp or 1600x1000/32bp.
Interesting is that Windows 3.1 driver and DOS CAD drivers can do 1600x1200/24bp on 8MB card (MGA2).
So please share your experiences, I wonder if it is some HW-specific and there would be a VGA with 8MB VRAM that can do it in NT-XP or if it is defined by windows driver model how much reserved VRAM is required. I belive that 16MB cards are fine but something between 8-16MB?

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 1 of 15, by Tiido

User metadata
Rank l33t
Rank
l33t

This should be driver specific rather than Windows itself.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 2 of 15, by retardware

User metadata
Rank Oldbie
Rank
Oldbie

From what I have read long ago in some technical articles (I think it was about the workings of Nouveau), in the higher resolution modes the framebuffer does not always consist of a contiguous memory area, but instead has some similarities with for example the Apple II video RAM mapping, which has regular gaps that one back then could even use for data storage.
So the video RAM needed is larger than the product of x, y and z because of the unused areas/gaps inbetween.

This is different for each GPU, and thus the video RAM required may differ even between GPUs from the same manufacturer.

Reply 3 of 15, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Some older cards won't have enough memory bandwidth to support 1600x1200x32bit even if they have 8MB available. When you want a pixel clock of over 100MHz then 50MHz EDO RAM, for example, isn't going to cut it.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 4 of 15, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Don't some only have 90Mhz RAMDACs anyway?

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 5 of 15, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
BitWrangler wrote on 2021-09-26, 21:16:

Don't some only have 90Mhz RAMDACs anyway?

If you have a 32 bit video card but 4 banks of 32bit memory and you interleave the memory you can support any speed dac, need more speed? Add more memory banks

Reply 6 of 15, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

I did 2 experiments with Matrox Millennium II 8MB PCI that can choose only 1600x1200/16bpp or 1280x1024/24bpp a

Millennium II 8 Mb is capable to display 1920x1080 in 24-bit color, according to PDF. Upgrading to 16 Mb does not improve it, so most likely RAMDAC limitation. Although both Millennium II and Permedia 2 have enough memory bandwidth to display 1600x1200 in 32-bit color at least with 60 Hz.

AFAIK S3 Savage 4 8 Mb has no problems displaying 1600x1200 in 32-bit color. 3Dfx Velocity 100 also has 1600x1200 16.7 Mil colors mode listed in PDF.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 7 of 15, by havli

User metadata
Rank Oldbie
Rank
Oldbie

I remember running 1920x1080 on Voodoo3 8MB (the onboard one). Worked fine. I still have the screenshot https://abload.de/img/v3_onboardkxdb.png

HW museum.cz - my collection of PC hardware

Reply 8 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Sure that MGA 8MB is CAPABLE 1600x1200/24bpp because I tried it under Windows 3.1 and DOS (as I wrote in 1st post). So this is not RAMDAC limitation but pure software limitation. Even MGA has one of fastest WRAM and 250MHz RAMDAC. I found a spec of MGA G200 and it should support up to 1920x1200/16M in 2D mode: https://www.anandtech.com/show/189/2

Maybe I need just some INF hack like this:
http://blog.mycroes.nl/2011/10/enabling-highe … -on-matrox.html

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 9 of 15, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

So this is not RAMDAC limitation but pure software limitation.

It can't display 32-bit modes.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 10 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
BTW I made a working 4MB WRAM expansion module for MGA2 ver. 1.1
Re: Matrox Millennium II 16MB - exists? If so, why?

Unfortunatelly I'm still unable to set 1600x1200/truecolor mode. I revealed some extended monitor settings in Matrox control panel where I could configure higher modes like 1600x1024/32bpp and very obscure 1920x1034 /32bpp that definitely utilize 8MB but 1600x1200 mode was there only in 8 and 16bpp options. Once I enabled this modes in MGA panel I could select them in standard Windows display settings dialog and they works but my LCD doesn't like 1920x1034 😜 It's not native. The user monitor mode settings can be saved/loaded to/from a MPR file. It's a binary file with unknown format. When I tried to change some bytes in it - I belive I have changed 2 integers values 1920 -> 1600 and 1034 ->1200 but control panel then refused to load modified MPR file back complaining about invalid values. Maybe there's some checksum involved.

I need to try some registry hacking. I have found a reg.key:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001\Settings]
"InstalledDisplayDrivers"=hex(7):4d,00,47,00,41,00,55,00,44,00,00,00,00,00
"VgaCompatible"=dword:00000000
"PackageVer"="5.82.018"
"Mga.PixelWidths"=hex:08,10,18,20
"Mga.SingleResolutions"=hex:40,01,c8,00,40,01,f0,00,00,02,80,01,80,02,90,01,80,\

that contains some binary byte lines describing each defined resolution like this:

"Graphic.1600.1200"=hex:3c,00,4b,00,d0,78,02,00,40,00,c0,00,30,01,01,00,03,00,\
2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
00,00

Interesting there are more bytes compared to this mode:

"Graphic.1600.1024"=hex:3c,00,40,00,58,0f,02,00,20,00,a0,00,30,01,03,00,03,00,\
28,00,00,00,00,00,4c,00,53,00,cf,99,02,00,20,00,a0,00,30,01,03,00,03,00,28,\
00,00,00,00,00

While 1600x1024 have options 8, 16, 32bpp and 1600x1200 only 8, 16bpp.
I have no idea what this bytes means. I just guess some pixel counts for lines, borders, blanks, pixelclocks... something like VESA GTF...

Maybe it would be possible to implant a mode line from another Matrox card like G100/G200 - if it would use the same syntax...
Maybe some numbers could be used from Millennium driver for Win3.1...
Any ideas?

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 11 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I got Matrox G200 PCI 8MB so I tested it in the same PC, re-installed the same version of WinXP/2k driver (it's universal for Millennium/Mystique/Gxxx) and it displays 1600x1200/32bpp without any problem. I did't need to mess with any other settings just standard widows display settings, the slider and bpp menu offered desired mode.
So I went to extended control panel settings to Matrox Monitor Wizard and view the user mode list and there was truecolor modes present as expected for 8MB videocard.
I tried to export mode settings to binary MPR file. Then I replaced back the G200 by Millennium II and loaded the MPR file in Matrox Monitor Wizard but instead of adding new truecolor modes I lost some - the 1600x1024 and 1920x1034 which previously offered 32bpp now offered only 8 and 16bpp options. So this way is not working. I had to reset the settings or load old MPR file saved from Millennium II to bring back 1600x1024/32bpp and 1920x1034/32bpp options but there's no way how to add 1600x1200/32bpp...

I also checked the Matrox registry settings in
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001\Settings
and key Graphic.1600.1200 has the same hex value for G200 and Millennium II. I exported the reg. key for both cards and compared them and didn't find more differences that device name string, all modes hex lines are the same!

Attachments

  • g200.jpg
    Filename
    g200.jpg
    File size
    72.68 KiB
    Views
    1055 views
    File comment
    Matrox G200 mode list
    File license
    CC-BY-4.0
  • mga2.jpg
    Filename
    mga2.jpg
    File size
    66.9 KiB
    Views
    1060 views
    File comment
    Matrox Millennium II mode list
    File license
    CC-BY-4.0

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 12 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, I made it working via a semi-random registry hack!

I have found that registry key
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001\Settings]
holds settings of Matrox Monitor Wizard which is then applied to Windows setting to override video modes into registry key
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{716C682B-24CC-41ED-8640-740F2C3A84F0}\0000]
Note that the GUID and folowing integer number is dependent on your system on how many VGAs you had installed before.

Under this key I located entry:
"D00.0.M00.Graphic.1600.1024.32"=hex:01,00,3c,00,40,00,00,00,58,0f,02,00,20,00,\
a0,00,30,01,03,00,03,00,28,00,00,00,00,00
And I just tried to duplicate it under name
"D00.0.M00.Graphic.1600.1200.32"=hex:01,00,3c,00,40,00,00,00,58,0f,02,00,20,00,\
a0,00,30,01,03,00,03,00,28,00,00,00,00,00
And guess what, after a reboot I got the desired 1600x1200/32bpp mode working 😀 But I was unable to set any other color depth for this resolution. I wonder what this byte sequence means and have no idea why it works with values from different resolution.

I looked closer and found that this line comes from here (the beginning of the line + some additional byte):
"Graphic.1600.1200"=hex:3c,00,4b,00,d0,78,02,00,40,00,c0,00,30,01,01,00,03,00,\
2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
00,00
As told before, this entry is the same for G200 and Millennium II

So i started with a copy of this bytes in
"D00.0.M00.Graphic.1600.1200.32"=hex:01,00,3c,00,4b,00,00,00,d0,78,02,00,40,00,\
c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00

And this doesn't work, it took me back to 16bpp mode only. So I tried to change every Byte that differs from 1600.1024.32 entry, every change need a reboot and I found that the 10th Byte value of 78h is the root of problem. When I replaced it by 0Fh or 2Ch from other working entries it was fine and I had ability to choose 16 and 32bpp modes.

To proof my work I cleaned the registry keys of all matrox VGAs, uninstalled the driver and repeated the process from the beginning.
I intsalled the Matrox driver 5.82.018 again.
The newly created key
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{D28F452D-7619-4FEE-BFCE-E4A308DD3CA0}\0000]
lacks the Matrox override entries "D00.0.M00.Graphic.x.y.z" and only relevant entry was

"Graphic.1600.1200"=hex:3c,00,4b,00,d0,78,02,00,40,00,c0,00,30,01,01,00,03,00,\
2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
00,00

So I patched the 6th byte from 78h to 2Ch:

"Graphic.1600.1200"=hex:3c,00,4b,00,d0,2c,02,00,40,00,c0,00,30,01,01,00,03,00,\
2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
00,00

Rebooted and the display control panel let me choose 1600x1200/16 or 32bpp. On a fullscreen rainbow test pattern it was clearly visible the difference between hicolor and truecolor. I would like to fix the same problem in WinNT4 but there's no registry branch
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\] at all...

All this issue seems to me like a Matrox driver/INF bug where they accomodated the videomode binary values to modern VGAs like G200 and newer and forgot that Millennium needs a different 6th byte. I wish really know the interpretation if this data to understand what I really changed but I'm hapy it finally works.

Attachments

  • mga2disp.png
    Filename
    mga2disp.png
    File size
    20.89 KiB
    Views
    1002 views
    File comment
    display control panel with 32bpp enabled
    File license
    CC-BY-4.0

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 13 of 15, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

Nice. I notice you also suffer from the same thing I do with my original Millennium - can only set 70Hz refresh in 1600x1200.

I had to use powerstrip to force 60Hz because windows would not let me set it in that resolution.

Reply 14 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I didn't played with refresh rate but in Matrox Monitor Wizard it looks like you can set any frequency and other parameters and save it as custom mode.

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 15 of 15, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

BTW the same fix - Byte value 2Ch instead of 70h works also for unlocking wide mode 1920x1080/32bpp (tested on FHD LCD that reported refresh rate 53Hz). Also the patch can be made before installation by modification of MGAU.INF by patching section:

[AddReg.VidParms]
HKR,,Graphic.1600.1200,0x00000001,\
3c,00,4b,00,d0,2c,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00,\
41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00,\
46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00,\
4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00,\
55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA