VOGONS


how to increase dosbox native refresh rate?

Topic actions

First post, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

After a search and some fiddling on my own, I found out why dosbox doesn't run on my analog TFT with fullfixed=false on a Geforce 6800. The modes are not supported at that refresh rate. Sure enough, there is a workaround, I have mapped the display to supported resolutuions, I also have a CRT sitting around.

However, on my vintage dos machine, I actually get an acceptable TFT picture once I increase the screen refresh rate beyond the 60 HZ threshold. My card had the dos software to do so. Now I have some small hope that incresing the refresh rate of the dosbox native output whould allow my TFT to catch the picture on my mainstay machine too.

I have tried the obvious, using coolbits2, to override the refresh rates of my Geforce. I checked with the CRT, but the actual output frequency did not change at all.

So: ** Is there a way to FORCE dosbox to run at a different refresh rate? **
I have a tool for a voodoo3, which allowed refresh rate manipulation, called VBEHZ. It needs Vesa 3.0 though, and didn't work in Dosbox.

I did find a relevant discussion in another section, but only moderators are allowed to post there, so I place my question here. Thanks for any help!
ux-3

Reply 1 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

"DOS" refresh rate (the refresh rate the game runs inside dosbox) does not affect Dosbox refresh rate. Dosbox refresh rate depends on the selected output mode. If for instance you select OpenGl as the output mode than refresh rate settings for OpenGl will apply to dosbox as well (my ati card has an option to specify refresh rate for opengl, I imagine nvidia has something similar).

Reply 2 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for your reply. I learned one new thing from it. The "output" setting is doing something even if fullfixed=false. So I just tried all available output settings. The best picture quality (on CRT) is obtained with surface and with openglnb. The other options produce a more blurry picture.

The refresh rate of openglnb is up to 59 Hz and my TFT did catch it when I tried briefly.

I just ran a search on openglnb. It is opengl, without bilinear filtering. So it makes sense that I get sharp (big) pixels, which is what I want. On a TFT, I get some blurring anyway, so I like to start sharp.

So that leaves a question regarding the performance of openglnb vs surface. Naive me was thinking, that surface would be preferable as it does just what the game wants and adds no additional CPU load. What about openglnb? Will this output decrease performance? Does it tax the cpu or the video adapter?

Please feel free to give me a link to a relevant discussion, I don't need an individualized explanation. I just lack the propper search terms. Using "openglnb" in a search gave me plenty of usefull information, among it the things you told me. I just didn't think of this term for a search before I know the answer...

So back to and narrowing the original problem:
** What could I do to affect the refresh rate of my computer using surface mode? **
Where could I change that? Bios only?

Edit: I have hooked the TFT back on. While I can see something with openglnb, the machine is now too slow for the job. This solution doesn't work in practice. What about overlay? Can I change that refresh rate anywhere?

Reply 3 of 24, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

First of all, if you use a TFT, you should always use fullfixed=true and fullresolution=<your native TFT resolution>. You can make the video card do the scaling if you use anything but output=surface.

output=overlay should work fine on all cards, although some do bilinear filtering, and others do not.

output=openglnb is reported to be slow on ATI+Windows. You could try OpenGL-HQ if you like sharp edges with non-blocky appearance (see patches forum or http://garni.ch/dosbox/).

Reply 4 of 24, by Guest

User metadata

Hi Moe,
I just replied as Guest, forgot to log in...

Thanks for your input. I have tried some of the suggested settings before, as soon as my desktop has completed a backup, I shall try again.

From my past experiments, I found the fullfixed surface 640x480 with normal2x and aspect to produce the most clear and sharp picture.

To be sure, I just tried your suggestion. Using the resolution of my TFT with Overlay produced a somewhat fuzzy image. Openglnb was great but gave audio dropouts.

I get much better results when I force the fullfixed surface to 640x480. But this only works good with normal2x and aspect, not with overlay. Overly is blurred again, openglnb is fine but too slow. The reason seems clear to me: The game scales well horizontally and stretches only vertically. The display then resacales 640 easily to 1280.

Hence I would like to get my VGA card to deliver higher refresh rates in Surface and Overlay mode, so that I can use fullfixed=false. Works with the real dos machine too. I just don't know how to do it in windows. I have the rivatuner installed, but I am not sure if I can do it in there...

The other question would be, how do I tell my Card not to use bilinear filtering in overlay mode?

Reply 5 of 24, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Personally, I like my pixels to be as razor-sharp as possible with 2D graphics. This means integral scaling only, with no filtering or interpolation. One problem with TFTs is that they have only one native resolution and everything not in that resolution won't look as good when scaled up to that resolution or will have borders on all four sides of the image. Unfortunately, most consumer priced TFTs use the 1280x1024 resolution. This resolution is not particularly well-suited to 320x200 games, which comprise the vast majority of games DOSBox is designed to run. It isn't well suited to 640x200, 640x350 or 640x400 resolutions either. It is best suited for 320x240 and 640x480 games.

Reply 6 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

Personally, I like my pixels to be as razor-sharp as possible with 2D graphics.

I completely agree with you, however, I also like circles to be circles... 😁

So with a 1280x1024 display, one has to make some compromise. I need to stretch in order to get circles. I found my solution to be quite satisfactory from the looks of it. The drawback is the scaling that my poor cpu will have to do.

Thats why I would like to get my display to do the scaling. I know it can do it quite well when attached to a SPEA V7 Video card, which displays it at 70+ Hz, when the Spea refresh rate utility is installed. I bought that card perhaps 10 years ago, and it can drive my tft. So why can't my *censored* Geforce 6800 do it?

A sidenote to the "bad" TFTs. I do have a 19 inch Syncmaster CRT, which I used for gaming 'till this summer. Then I did some direct comparison and made a surprising discovery: Despite the small blurr in some games (when not run at native resolution), I prefer the TFT. No more headaches, sore eyes etc. (yes, the CRT was at 100Hz).

Greetings
ux-3

Reply 7 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

My D3D patch has integral scaling, 320x200 will be scaled to 1280x1000 on a TFT monitor which should be quite perfect 😁. Ux-3, you should try that as most refreshrate utilities will work with direct3d as well. D3D also does not do bilinear filtering and is much faster on my ati than opengl...

Reply 8 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for all your suggestions, but I guess I my problem is outside the dosbox frame. I will have to convince my *censored* expensive Geforce6800 to act up and deliver the genuine 320x200 picture at some higher refresh rate.

For my hardware Dosbox, I have a voodoo3 PCI enroute, where I have done this in the past. Yes, I am upgrading my hardwire dosbox to voodoo3. Cool, eh? 5 bucks investment, with a fair chance to see my power supply go belly up once I plug this thing in...

I have downloaded a dosbox build from your page and see how it works, once I get my main PC up and running again... I am an Nvidia camper however, so opengl should have been fast with me...

greetings
ux-3

Reply 9 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

As I've said, my ati control panel allows me to specify refresh rates for d3d and opengl. And that is with any resolution, including 320x200. But the picture will be slightly blurry at 320x200 since a TFT monitor has to internally resample to it's native resolution so you're better off with fullfixed.

Reply 10 of 24, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Just for reference: 320x200 at x4 would be 1280x800, not 1280x1000, which should result in 224 empty scanlines on a 1280x1024 monitor. 320x240 at x4 would be 1280x960, with only 64 empty scanlines.

Reply 11 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

I never said the same factor is used in both directions 😉

Reply 12 of 24, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Eww! Why would you want to distort the picture? 😕

On second thought, 1280x1024 LCDs are probably already distorted and may require non-aspect-correct stretching to bring things back into proper perspective.

Reply 13 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Actually x4 scaling would distort the picture since 320x200 does not have square pixels...but you are correct in a way, the AR is slightly off (about 4%) but still much better than 1280x800 (17% off) + no blurring from the scaling...

Reply 14 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

As I've said, my ati control panel allows me to specify refresh rates for d3d and opengl. And that is with any resolution, including 320x200. But the picture will be slightly blurry at 320x200 since a TFT monitor has to internally resample to it's native resolution so you're better off with fullfixed.

Well, the Nvidia control panel allows me the same, just that dosbox doesn't care about it if in fullfixed=false AND (surface OR overlay) mode. If I run fullfixed=false AND openglnb, I do get the desired refresh rate control, at the price of sound stutter...

I might be repeating myself, but I have connected my TFT to a vintage VGA card in a vintage computer, running a genuine DOS game in genuine DOS at 320x200. The TFT was producing a decent picture. I can live with that quality, which is much better (in my eyes) than fullfixed to 1280x1024. I just need to get my card to display the dosbox default surface mode at 60+ Hz. THAT is my problem. My card pumps out 320x200 at 56 Hz, as my CRT readily tells me. My TFT turns its nose at it and says "out of range". Same reaction on the vintage machine too, but there I have a tool to increase the vga refresh rate to VESA and beyond. With this shiny GF6800 I don't, and I don't know how to do it otherwise. I do have a workaround, using fullfixed, etc, but this workaround wastes my precious CPU power on rescaling and stretching, while my TFT just displays. It should do the work, since it has proven to do it adequately. I hope I can bring my point across.

Oh, I also used fullfixed with 960x600, which my TFT would then blow up to fit. It looked inferior to my 640x480 approach, so I abandoned it.

Greetings
ux-3

Reply 15 of 24, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

It just came to me...isn't surface basically a directx surface with our modified sdl.dll? You could try setting Refresh Rate override in DxDiag (click start->run->type dxdiag->more help->override). And as I already mentioned...try output=direct3d with my build 😉

edit: figured something else...320x200 (& 640x400) seems to be handled somewhat differently 😕. I get 76Hz refresh rate, although in all other modes I have 85Hz. I don't know enough about vga hardware but it seems that something else is happening here...I'd say you best bet is to use fullfixed and your native LCD res

Reply 16 of 24, by Reckless

User metadata
Rank Oldbie
Rank
Oldbie

I posted almost exactly the same question a couple of weeks back. ux-3 - I fully appreciate your view (I share it) but I ended with fullfixed true and res set at 1280x1024.

The D3D and OpenGLHQ modes are great!

Reply 17 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

@Reckless: Can you tell me which thread it is, I don't find it...
Which Display mode do you use?

The openglnb mode is definately too slow for the task. I shall try the other suggestions once my main machine is back up again. Just for curiosity: Have you tried fullfixed to 640x480 with normal2x and aspect? To me, that looks superior to anything (in the regular build) but openglnb this far.

Greetings
ux-3

Reply 18 of 24, by ux-3

User metadata
Rank Oldbie
Rank
Oldbie

YEEEESSS!!!!! 😁 😁 😁

Here we go... The door is wide open...

It just came to me...isn't surface basically a directx surface with our modified sdl.dll? You could try setting Refresh Rate override in DxDiag (click start->run->type dxdiag->more help->override).

Before I tried this suggestion, I upgraded to WinXP. Using the nvidia78.01 driver, I experimented with the timing choices(in the nvidia driver tab). Finally, I was able to get a picture using surface output with fullfixed=false. Depending on the choice of timing option, I either got 640x377 with the bottom 23 lines cut off, or 640x480 with 80 lines blank (using the monitor aspect timing).

Then I tried the quoted suggestion, with monitor timings back to default. And the results are weired! Depending on the entered refresh rate, the game would start in different resolutions. I tried the standard values and found that 70 Hz works best. It will start the game in 640x350 which is displayed full screen on my TFT. Look sharp and pixelish, just as I like it to be! Its as perfect as it could be. Just surface output, no scaling, no aspect. It works as well if I chose overlay instead of surface. No increased blurr.

And another positive side effect:

I get 76Hz refresh rate, although in all other modes I have 85Hz.

I noted that too, I would have 60 Hz everywhere, but "out of range" for the dos command part (76 is too much for the tft). Now I even get the dos part to show.

Considering the frequency of 320x200 games and 1280x1024 tfts, this solution might be worth verification by other users, so perhaps "reckless" could check into it as well.

I have not yet had a chance to check performance, since I have not put back my Live! card.

Last important point: What other consequences will that DXdiag change have? Will other games cease to work or give problems?

happy greetings
ux-3

Reply 19 of 24, by Reckless

User metadata
Rank Oldbie
Rank
Oldbie
ux-3 wrote:

@Reckless: Can you tell me which thread it is, I don't find it...

Problem with display with fullfixed setting

Which Display mode do you use?

Depends on the game. I asked about this when I installed the CVS build that included D3D and OpenGLHQ. I think at present it's on OpenGLHQ and I was playing Pinball Dreams. I've got an unconventional system... deskto powered by a Pentium M 2Ghz which works very well.