VOGONS


Reply 40 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if its possible somehow on software side fix, that 1600x1200 is not available on some modern cards, or its rom thing?

BTW roms, its probably last big think to address here, more modern cards, i dont remember with which lines it exactly started, have different boot / dos clocks for 2D and faster mods initialized through drivers for 3D. I remember correctly at least for some card was possible to mods rom with custom clocks for hardware overclocking, has someone experience with that, with which cards its working, its possible to change even boot clocks etc?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 41 of 71, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if its possible somehow on software side fix, that 1600x1200 is not available on some modern cards, or its rom thing?

Yes, it's a 'ROM thing' in many cases. You can use the attached VESAINFO utility to list all supported VESA modes. (type 'VESAINFO /l |more').

Filename
VESAINFO.zip
File size
25.26 KiB
Downloads
116 downloads
File license
Fair use/fair dealing exception

Typically even Geforce 6/7 cards do not list 1600x1200 but 1280x1024 as the biggest supported resolution. Also some cards (e.g. my Inno3D Geforce 6600 AGP) do not list even 1280x1024 as a supported resolution right after boot in DOS, but it lists 1280x1024 after you booted Windows and drivers already loaded. So interestingly 1280x1024 can be used in DOS box of Win9x or even after 'Restart in MS DOS mode' but not in pure DOS right after boot.
More modern cards used with flat panel monitors usually also do not list 1600x1200 as a supported resolution but list the native resolution of the display instead (e.g. 1680x1050, 1920x1080).

BTW roms, its probably last big think to address here, more modern cards, i dont remember with which lines it exactly started, have different boot / dos clocks for 2D and faster mods initialized through drivers for 3D. I remember correctly at least for some card was possible to mods rom with custom clocks for hardware overclocking, has someone experience with that, with which cards its working, its possible to change even boot clocks etc?

See in your other thread:
Video bios(vBIOS) rom size research project for pure DOS, because there is smaller better.. Add our info.
BIOS editors like Nibitor can change also the Boot clocks in a BIOS dump. After re-flashing the modified BIOS dump new clocks should work. I know because my above mentioned Geforce 6600 had a very buggy BIOS default (Boot core clock 10 MHz!!!) so it was slow as hell under DOS. Modified BIOS cured the problem.
Also in case of cards with multiple performance states running DOS programs under Win9x DOS box or after 'Restart in MS DOS' is used can give much better results:
What hardware could run Duke Nukem 3D at 1600x1200 on dos?

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 42 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
Falcosoft wrote:

Typically even Geforce 6/7 cards do not list 1600x1200 but 1280x1024 as the biggest supported resolution. Also some cards (e.g. my Inno3D Geforce 6600 AGP) do not list even 1280x1024 as a supported resolution right after boot in DOS, but it lists 1280x1024 after you booted Windows and drivers already loaded. So interestingly 1280x1024 can be used in DOS box of Win9x or even after 'Restart in MS DOS mode' but not in pure DOS right after boot.
More modern cards used with flat panel monitors usually also do not list 1600x1200 as a supported resolution but list the native resolution of the display instead (e.g. 1680x1050, 1920x1080).

Just to clarify, if there resolution is not listed by Vesainfo, the is not solution without Windows 9x booting? I know that there are some Vesa drivers for S3 which can add VBE2 support and also this can be done by Univbe, but problem is that Univbe refuse to work withmore modern cards.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 43 of 71, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
ruthan wrote:
Falcosoft wrote:

Typically even Geforce 6/7 cards do not list 1600x1200 but 1280x1024 as the biggest supported resolution. Also some cards (e.g. my Inno3D Geforce 6600 AGP) do not list even 1280x1024 as a supported resolution right after boot in DOS, but it lists 1280x1024 after you booted Windows and drivers already loaded. So interestingly 1280x1024 can be used in DOS box of Win9x or even after 'Restart in MS DOS mode' but not in pure DOS right after boot.
More modern cards used with flat panel monitors usually also do not list 1600x1200 as a supported resolution but list the native resolution of the display instead (e.g. 1680x1050, 1920x1080).

Just to clarify, if there resolution is not listed by Vesainfo, the is not solution without Windows 9x booting? I know that there are some Vesa drivers for S3 which can add VBE2 support and also this can be done by Univbe, but problem is that Univbe refuse to work withmore modern cards.

Excatly. If external VESA drivers or UniVBE add resolutions then these added resolutions are also listed by Vesainfo. If a resolution is not listed by Vesainfo then it means that the given resolution also does not exist for other programs/games that use VESA. Vesainfo uses the same VESA functions (namely 0 and 1) to get the supported resolutions as any other programs/games. Getting supported resolutions is defined in VESA standards. It does not matter if a resolution is implemented by a Bios ROM or an external utility.

@Edit:
After vendor implemented integrated VESA Bios extension ROM became the norm no solutions had been released to add other resolutions to already implemented VESA 2/3 Bios extensions.
UniVBE was meant for SVGA cards that implemented SVGA resolutions (640x480, 800x600, 1024x768) in a non-standard way (partly because no standards existed) and/or had no integrated VESA 2.0 Bios extensions. Later utilities were rather compatibility fixes that masked/modified some reported features (like Vesa12, Fakemem, Nolfb etc.)

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 44 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
Falcosoft wrote:

After vendor implemented integrated VESA Bios extension ROM became the norm no solutions had been released to add other resolutions to already implemented VESA 2/3 Bios extensions.
UniVBE was meant for SVGA cards that implemented SVGA resolutions (640x480, 800x600, 1024x768) in a non-standard way (partly because no standards existed) and/or had no integrated VESA 2.0 Bios extensions. Later utilities were rather compatibility fixes that masked/modified some reported features (like Vesa12, Fakemem, Nolfb etc.)

Ok thanks for explanation. So 1600x1200 support is plus feature of some cards and even than, you need pretty fast card / machine combo to make it playable.

We already have Q2 1600x1200 column for it in our sheet + our vesa dos games list is 1st post too, there are very few 1600x1200 games, but if someone want to have the best native Dos Duke3D / Blood DOS experience he should buy such card, it could be handly for image viewing too, im not sure about DOS video players, if they support such big resolutions.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 45 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I have finished all my card testing with vid_nopageflip 1, i also added Geforce 7950 GT + Core i5 4400S test in the process. I also revisited video bios dos active rom size, check some results were wrong too big, because of CheckIT bug, now we can use for it FalcoSoft VBsize - in 1st post or Navratil SI (not working for everything, VBsize is better, but Navratil can report cards Manufactor, number etc).
I now sorted results by results with vid_nopageflip from fastest card (where we almost hit magic 120/144 Hz monitor value, which for sure reachable, because there faster machines than when i tested it) in 1280x1024 to slowest, or that were this resolution not working at all.

I dont want to see Quake for some time, now unless we will fine other magic variable, im finally done with testing.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 46 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Other strange result from Doom benchmark, i now that regarding Phils results are already some every strange numbers like that some very old machine are faster than new ones.. but this is strange too.

I just replaced by Core 2 Duo E6300 - 1800 MHz slowest Core 2 Duo slimmer for Pentium E5500 overclocked to 3.73 GHz (14x266, stock is 2.8 GHz) used with VIA 880 ultra chipset and now with Radeon X600 PCI-E i got 220 FPS instead 42 FPS, i excepted that it would be faster (2x on frequency level and Pentium should be in threory inferior on architecture level to Core 2 Duo, raw cpu benchmark show roughly 2x boost) but not like this 5x faster.. Even Quake 1 320x200 result is strange 674 vs. 137 - 4x faster, it seems to that at least some IDsoft Dos games from some reason preferring some sort of CPUs types.
Any idea?

Update: Im comparing X600 to X600 pro which seems to be slower regardless of specs for Doom, i will retest it with exactly the same card. But this combo is my fastest Q1 640x480 physical results and its 2x faster than Core i5 4440S + Radeon X600 non pro, but that also other card..

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 47 of 71, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

MTRRLFBE has been updated
https://www.bttr-software.de/forum/forum_entry.php?id=15742

How To Ask Questions The Smart Way
Make your games work offline

Reply 48 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
DosFreak wrote:

Nice, i will at least wait for some testing, until i would know that is time to remeasure my numbers. Any idea which cards would be affected and which are not?
Update: I wrote Rayer, few days ago he said that would be sick to end to next week, so maybe we will get other updates:)

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 49 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I tested Radeon 3450 AGP is one of the fastest card which i tested with my E6600. Speed is very similar to Geforce 4 MX and TN2 M64, so it really depends, if you want DOS/XP machine, or DOS / Win98 machine.. or combination and how many videocards slots your bios handle (if has primary videocard slot selection) and if you have enough slots to sacriface just for videocards.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 50 of 71, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Do we know where VESA BIOS reports to application if page flipping is supported and how many pages available?
If it is returned in some video mode descriptor then we could make a TSR to hook INT 10h and patch the returned descriptor to pretend that no page flipping is supported on buggy cards. It should be better than hook func. 7 and modify return status because in this case the application already use page flipping and cannot handle it. But if we mask page flipping support then there is chance that application will try to use alternative rendering - copy buffer instead of page flipping. (I mean this for other games than Quake where we don't have user control via cfg options).

And my new version of MTRRLFBE - it can help on some bad-BIOS motherboards where WC mode was not set correctly (you didn't noticed any speed up) due to other MTRRs setting that conflict/overlaps LFB area. If older version worked for you this will not give any extra speed up - there are only 2 states: Write combining was or was not set, nothing between. I reccomend for all to upgrade to new version as it is more universal (should work on wider set of motherboards and also includes better debug info if needed to trace a problem).

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

Reply 51 of 71, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
RayeR wrote:

Do we know where VESA BIOS reports to application if page flipping is supported and how many pages available?
If it is returned in some video mode descriptor then we could make a TSR to hook INT 10h and patch the returned descriptor to pretend that no page flipping is supported on buggy cards. It should be better than hook func. 7 and modify return status because in this case the application already use page flipping and cannot handle it.

Page flipping is not a separate feature, it's just a more descriptive name used by e.g. Quake. Page flipping is equivalent to Function 7. Set/Get Display Start. From VBE 3.0 documentation:

Hardware double/triple buffering is supported in the VBE/Core specification by allowing the application to schedule a display st […]
Show full quote

Hardware double/triple buffering is supported in the VBE/Core specification by allowing the application
to schedule a display start address change, and then providing a function that can be called to
determine the status of the last scheduled display start address change. VBE Function 4F07h is
used for this, along with subfunctions 02h and 04h. ...
Function 07h - Set/Get Display Start
This required function selects the pixel to be displayed in the upper left corner of the display. This
function can be used to pan and scroll around logical screens that are larger than the displayed
screen. This function can also be used to rapidly switch between two different displayed screens
for double buffered animation effects.

Available page count can be requested by calling Function 01h - Return VBE Mode Information
The relevant field is NumberOfImagePages in the ModeInfoBlock structure.

The NumberOfImagePages field specifies the "total number minus one (-1)"of complete display images that will fit into the frame […]
Show full quote

The NumberOfImagePages field specifies the "total number minus one (-1)"of complete display
images that will fit into the frame buffer memory. The application may load more than one image
into the frame buffer memory if this field is non-zero, and move the display window within each of
those pages.

@Edit:
An evidence for page flipping = function 07 from the source of Quake 1:
https://github.com/id-Software/Quake/blob/mas … Quake/vid_ext.c

/*
================
VID_ExtraSwapBuffers
================
*/
void VID_ExtraSwapBuffers (viddef_t *lvid, vmode_t *pcurrentmode,
vrect_t *rects)
{
int pageoffset;

UNUSED(rects);
UNUSED(pcurrentmode);

pageoffset = VID_pagelist[VID_currentpage];

// display the newly finished page
if (lvid->numpages > 1)
{
// page flipped
regs.x.ax = 0x4f07;

if (vid_wait.value != VID_WAIT_VSYNC)
{
if ((vid_wait.value == VID_WAIT_DISPLAY_ENABLE) && de_exists)
VID_ExtraWaitDisplayEnable ();

regs.x.bx = VESA_DONT_WAIT_VSYNC;
}
else
{
regs.x.bx = VESA_WAIT_VSYNC; // double buffered has to wait
}

regs.x.cx = pageoffset % VGA_rowbytes;
regs.x.dx = pageoffset / VGA_rowbytes;
dos_int86(0x10);

VID_displayedpage = VID_currentpage;
if (++VID_currentpage >= lvid->numpages)
VID_currentpage = 0;

//
// set the new write window if this is a banked mode; otherwise, set the
// new address to which to write
//
if (VID_banked)
{
regs.x.ax = 0x4f05;
regs.x.bx = 0;
regs.x.dx = VID_currentpage;
dos_int86(0x10);
}
else
{
lvid->direct = lvid->buffer; // direct drawing goes to the
// currently displayed page
lvid->buffer = VID_membase + VID_pagelist[VID_currentpage];
lvid->conbuffer = lvid->buffer;
}

Show last 24 lines
		VGA_pagebase = lvid->buffer;
}
else
{
// non-page-flipped
if (vsync_exists && (vid_wait.value == VID_WAIT_VSYNC))
{
VGA_WaitVsync ();
}

while (rects)
{
VGA_UpdateLinearScreen (
lvid->buffer + rects->x + (rects->y * lvid->rowbytes),
VGA_pagebase + rects->x + (rects->y * VGA_rowbytes),
rects->width,
rects->height,
lvid->rowbytes,
VGA_rowbytes);

rects = rects->pnext;
}
}
}

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 52 of 71, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie
Falcosoft wrote:

Available page count can be requested by calling Function 01h - Return VBE Mode Information
The relevant field is NumberOfImagePages in the ModeInfoBlock structure.

Ok, so at least we could try to set NumberOfImagePages=0 in returned ModeInfoBlock structure.

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

Reply 53 of 71, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
RayeR wrote:

Ok, so at least we could try to set NumberOfImagePages=0 in returned ModeInfoBlock structure.

I have made a new version of MSKVBEF7 that modifies exactly what you have suggested. It seems to work at least with Quake 1.
I have attached the TSR to the original thread related to this bug so the new version of the TSR can be found on the same place:
Re: NVIDIA Kepler/MaxWell/Pascal VESA Bios Bug (Please, participate since more data needed)

Also VESAINFO /i {modenumber} (download/file.php?id=55205) correctly shows now that the number of available image pages are 0 and also VBETEST shows that Virtual Scrolling is not supported.
But if you choose a mode for testing in VBETEST it still shows the available pages somehow and only throws an error when you try to run the tests (so maybe there are other methods to request the page count in protected mode bypassing the TSR?)

@Edit:
According to Rayer's tests the patch/TSR works also for Build engine games (Blood and DND3D)
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 54 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Congrats.

Could you take a look on this bug? :
Dos games on Geforce 2/4/5/6/7 and LCD in Win98SE, black screen in fullscreen mode..Nvidia drivers 5x.yz + problem

Its blocking to use Gefore 4-7 on Windows 98.. Dos fullscreen is not working - blackscreen, so i have to use Radeon X800, but is not ideal too, because its OpenGL and DirectX implementation is worse than Nvidias..

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 55 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Couple of "new" cards tested, they are at the bottom of sheet, for example Radeon 4850 is fastest card for Doom.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 56 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Other couple of test completed, its all for at least for time, when i get other new cards.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 57 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if Quake 1 demo free source could be applied to Quake 1 too, or only full version? Or its there some demo source code too? Or it doesnt matter and source just use game assets, regardless are for demo or full game? If im not work there Hexen 2 overhaul demo version too.

It would be nice just add possiblity to use 1600x1200 resolution into game. I know that there is Q1DOS, but its complete overhaul and we already have Q2DOS in our test suite.. I would like to just add column for Quake 1 demo, or if not possible Quake 1 full vanilla 1600x1200 resolution.

I also added some more results and i will add probably today Radeon X1600 Pro and Geforce 5700LE results.

I its not first card with some problem, but Radeon 1600 PRO PCI-E from Asus, has broken colors with Q2DOS? Same resolution in Quake 1 are fine, is there some solution?

2019-04-27 15.12.14-X1600Pro-Q2Dos.jpg
Filename
2019-04-27 15.12.14-X1600Pro-Q2Dos.jpg
File size
282.56 KiB
Views
1909 views
File license
Fair use/fair dealing exception

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 58 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I added test of Geforce 3 TI 200 AGP with VIA880 Core2 machine.

Im also working on SC370 Fast machine (its somehow running with older CPU, today i got 1.4 Tualatin i hoped that i will work) and some fast Super Socket 7 K6-2+ machine (i still waitng for MB and need 1 more PSU) i dunno how much testing i will do with it, but at least some testing will be done.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 59 of 71, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I added some Super Socket 7 tests.

https://docs.zoho.com/sheet/published.do?rid= … 49606de568c62b9

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.