VOGONS


First post, by Alkarion

User metadata
Rank Member
Rank
Member

I have some questions regarding filtering with ddraw output. Some people seem to find the blurriness of the ddraw output bad, but I like it very much. What exactly is done to achieve this kind of blurriness and who does it (hardware, software)?

Furthermore, can you control the amount of blurriness in any way? And why does it disappear in fullscreen?

I'm using a notebook LCD so I find this kind of smearing out helpful in augmenting an already scaled (hq2x) picture.

Reply 1 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

ddraw isn't the only mode that's "blurry".

From my latest test comparing IQ between different output modes:

1. OpenGLHQ (best) (# of unique colors 7,078)
2. Direct3d (# of unique colors 505)
2. OpenGLNB (# of unique colors 504)
2. Surface (# of unique colors 505)
3. Overlay (# of unique colors 10,327)
4. ddraw (# of unique colors 13,869)
4. opengl (worst) (# of unique colors 13,934)

The ones with the same # are AFAIK the same image quality.

So for straight CVS it's good that "Surface" is used since that's the "best" as far as original DOS image quality graphics.

Of course if you like blurriness then the output modes that are worse than surface will work and not be as resource intensive as using a scaler.

All screen caps taken using "ALT+Printscreen", saving as .BMP with Irfanview.
Tested using "Normal2x" (Haven't gone through the scalers yet...just default config)
Used Monkey Island 1, only took pic when character had stopped walking in the initial part of the game.
Taken with Windows XP, Directx 9c, Windows XP Pro, ATI X800 with Catalyst 5.8 drivers.
gulikoza's build, Dec 2 2005

Attachments

  • 1-Monkey-openglhq.gif
    Filename
    1-Monkey-openglhq.gif
    File size
    72.28 KiB
    Views
    3084 views
    File license
    Fair use/fair dealing exception
  • 2-Monkey-direct3d.jpg.gif
    Filename
    2-Monkey-direct3d.jpg.gif
    File size
    71.54 KiB
    Views
    3083 views
    File license
    Fair use/fair dealing exception
  • 2-monkey-openglnb.gif
    Filename
    2-monkey-openglnb.gif
    File size
    71.56 KiB
    Views
    3077 views
    File license
    Fair use/fair dealing exception
  • 2-monkey-surface.gif
    Filename
    2-monkey-surface.gif
    File size
    71.5 KiB
    Views
    3077 views
    File license
    Fair use/fair dealing exception
  • 3-monkey-overlay.gif
    Filename
    3-monkey-overlay.gif
    File size
    76.82 KiB
    Views
    3077 views
    File license
    Fair use/fair dealing exception
Last edited by DosFreak on 2005-12-08, 10:18. Edited 2 times in total.

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

Reply 3 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

5th attachment

Attachments

  • 4-monkey-ddraw.gif
    Filename
    4-monkey-ddraw.gif
    File size
    75.47 KiB
    Views
    3074 views
    File license
    Fair use/fair dealing exception
  • 4-monkey-opengl.gif
    Filename
    4-monkey-opengl.gif
    File size
    75.85 KiB
    Views
    3077 views
    File license
    Fair use/fair dealing exception

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

Reply 4 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

So far it looks like only Normal2x/3x are affected by IQ between output modes for overlay/ddraw/opengl on my ATI card.

I've tried HQ2x/Advmame2x between the different output modes and there's no diff in IQ between them......which makes sense.

For instance HQ2x with ddraw is the same IQ as HQ2x with surface, whereas with Normal2x surface is much more cleaner than ddraw.

Of course the "opengl" IQ behavior is normal because it's without bilinear filtering but are there any "tweaks" to ddraw/overlay that I can use to disable this bilinear-like behavior or is this a bug with dosbox normal2x/3x scalers or is this an ATI problem?

Last edited by DosFreak on 2005-12-08, 12:12. Edited 1 time in total.

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

Reply 5 of 15, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Normal2x/3x uses hardware scaling when possible so that's why it looks differently on different output modes. Other scalers are software and they should look the same (unless hwscale or fullfixed is on).

Reply 6 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

That explains it. Is this documented somewhere? Reason I took the pics was so I could start ordering the Output methods depending on type of video card/drivers/OS used..etc..etc...all the other possible combinations...

Looks like for my ATI card that if I don't wish to use OpenGLHQ (like that would ever happens)that it's either Surface/direct3d/openglNB can be used.

Since I can't use hwscale with surface that leaves direct3d/openglnb.

After that it's up to personal preferences I guess if you want to use different scaling methods like gulikoza's specific pixel shaders.

For Linux that only leaves openglNB/OpenGLHQ as the only really useable output method.......(assuming you use Normal2x and not the other scalers)

Wow, so for those ATI users still using DosBox 0.63 who like to use hwscale\Normal2x or 3x\Overlay it looks like they'll be in for quite an IQ improvement once the next official ver comes out. (Remember 0.63's OGL support doesn't work well with ATI, kurnov's patch finally made OGL useable)

Last edited by DosFreak on 2005-12-08, 12:30. Edited 2 times in total.

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

Reply 7 of 15, by Alkarion

User metadata
Rank Member
Rank
Member

And is there any way to control the hardware scaling, i.e. the filtering accompanied by it? Is this a DirectX/OpenGL feature or does it depend on the hardware implementation of the graphics card which is used?

Reply 8 of 15, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Usually not. Most do bilinear scaling, some very few (if any at all) do bicubic. This is all fine for movies, but games look blurry with it. In D3D/OGL it is possible to select the texture filter, but nearest and bilinear are most of the time the only 2 available. D3D does nearest by default, with OGL you can select nearest or bilinear (opengl vs. openglnb output mode)

Reply 9 of 15, by Alkarion

User metadata
Rank Member
Rank
Member

As I said above, I actually like the blurriness of the bilinear filter. Would it not be nice if the user could control which filtering is used in D3D?

Btw, while playing around with my ATI Tray Tool, I discovered I can select so called Smart Shaders which simulate black and white monitors or color inversion. This seems to be a nice feature which can be used to "enhance" the retro gaming experience. For me it seems to work only with opengl, though. And also not all shaders are working (which may be due to my older Radeon 9000. Perhaps some more advanced OpenGl support is necessary).

I don't know if it's also a hardware issue that the Smart Shaders don't work with Direct3d. On another issue, testing these shaders with your latest build, gulikoza, I noticed that they are disregarded once you start a game and it switches into graphics mode (opengl output used). This does not happen with the previous build.

Reply 10 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Figured out how to get ddraw/overlay to be the same as direct3d/openglnb in Normal2x!

You have to disable DDraw/D3D acceleration using Dxdiag....then they'll go back to normal. Even their unique colors matches direct3d/openglnb too. Sweet.

Would it be possible to make this an option is dosbox.conf? (disabling DX acceleration is a PITA if you forget about it).

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

Reply 11 of 15, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, it would be nice but I don't wanna make a seperate config entry for it and even less a seperate output mode (direct3dnb? no thanks 😜). Bilinear.fx pixelshader can be used for bilinear scaling but I think it requires PS2.0.

Some of those smarshader plugins are opengl only. I'll check if there are any issues...
(edit: a quick check showed everything is fine here at my place. Both in D3D and OGL "Black and White" smarshader works as expected)

@DosFreak: not sure, but it's possible it simply makes ddraw/overlay behave like surface, so nothing is gained by setting it...

Last edited by gulikoza on 2005-12-08, 14:17. Edited 1 time in total.

Reply 12 of 15, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

I made this little patch because, as an ATI owner, my best option for output
is overlay, but I always liked the old style, grainy low-res graphics.
Don't know if it still patches current cvs because is a bit old...

Attachments

  • Filename
    hwscaler.diff
    File size
    1.98 KiB
    Downloads
    225 downloads
    File comment
    Adds a switch to the cfgfile to enable/disable filtering in overlay
    File license
    Fair use/fair dealing exception

Reply 13 of 15, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I noticed those screenshots were taken with aspect correction off, making everything look squished. I was thinking that it might actually be meaningful to compare the different output modes with aspect correction on to see which ones handle it better than the others.

Reply 14 of 15, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Nah, I'd rather have it "squished" (original res) instead of extra length. 😉 (MI1 uses 320x200, aspect stretches to 320x240)

With 2x it's 640x400 or 640x480.

Was going to post something else but it only applied to an earlier build of DosBox....I think. Need to test further.

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

Reply 15 of 15, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Yes the original res is 320x200, but it was meant to be viewed full-screen at a 4:3 aspect ratio. Without performing aspect ratio correction (strecthing it to a multiple of 320x240) you won't see things in their intended proportions unless you run in a resolution that is a multiple of 320x200.