VOGONS


First post, by ZANTHERA

User metadata
Rank Newbie
Rank
Newbie

The option to have the 'Stretched, 4:3 Aspect Ratio (CRT-like)' is great but I was wondering if it was possible to add a version which doesn't have the scanlines much like how there are console emulators where it's optional and you can play with a hard pixel look if you wish.

I have set the resolution in some games to where it is a perfect lowering of what modern screens have for their resolution and make it close to the original resolution of the games. So for example because 640 x 480 doesn't scale perfectly with modern displays I set it to 720 x 540 which is still fairly close but is exactly half of 1440 x 1080 or a quarter of 2880 x 2160 meaning I can get a perfect integer scale with the pixels showing as 2 x 2 or 4 x 4 for a single pixel.

However the only way I can do this and have sharp pixels is with the scaling setting mentioned above which then introduces scan lines. I have tried to set the scaling to integer in the nvidia control panel and tested all the different scaling modes in dgVoodoo but none of them have the same effect, it is upscaled and blurred regardless of the setting which is why I think a version of the setting mentioned here without the scanline filter would be the only way to do that.

Similarly would this same thing be possible in cases where there are backgrounds/UI elements that are 640 x 480 and to have those display correctly you'd run the game at 1280 x 960 or 2560 x 1920 making black boxes appear around the picture. At the moment that is only possible with the 'Centered, keep Aspect Ratio' option but it means you have to run it at a higher resolution to have it not be tiny. The only solution to that I can think of would be to have it set where you type in the resolution you want and then set a separate integer scale option to 2x, 3x, 4x depending on your screen resolution which again could have the option for no scanlines or have them be there.

Reply 1 of 11, by FulValBot

User metadata
Rank Member
Rank
Member

You need to select "centered, keep aspect ratio", right click and select show all sections etc etc, select integer scaling and max etc etc

with stretch option there isn't integer scaling with any resolution, except 640x480 but only when scaled to 1920x1440 (with a 2k display)

Reply 2 of 11, by ZellSF

User metadata
Rank l33t
Rank
l33t

Some things. First under the "General" tab there are several scaling modes. The first three are left entirely up to your GPU, so if you want dgVoodoo to have any control over scaling, ignore these. Their advantage is they work with all games (the other modes will have problems with some games).

Second, in the DirectX/Glide tabs, the "Resolution" option should just be used when you're forcing 3D resolution. If you want dgVoodoo to handle scaling, using that option will invalidate that. Then most of the 2D will be treated as textures and the Texture filtering setting will apply. Leave it at "unforced".

Third and most important, if you right click the tab bar you can enable "Show all sections of the configuration". The scaling options are hidden by default. They're in the GeneralExt tab. Here you have "Integer scale factor" and "Resampling" which lets you customize scaling pretty much how you want.

If you want a very pixelated sharp look I recommend you set scaling mode to "Stretched, keep Aspect Ratio", Integer scale factor to "Max available" and Resampling to "Lanczos-3".

I'm not sure what the CRT filter does though. If you want any CRT effects I would look at at ReShade.

Reply 3 of 11, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, it's works as Zell says.
See how the image output processing is done in dgVoodoo: http://dege.fw.hu/dgVoodoo2/QuickGuide/

You can use the point sampled resampling filter (GeneralExt\Resampling) in conjuction with 'Stretched, keep AR' or 'Centered, keep AR' scaling mode.
In the image presenting process, when resolution is forced, 2D elements drawn by CPU or 2D hw blitting are scaled in point sampled way (part by part, during rendering the frame).
So, forcing resolutions for games having no 3D models is generally not recommended, it's much better to upscale their frame image using some of the resampling filters.

CRT scaling mode implicitly applies and additional filter on the final image, right before presenting it: slightly blurring scanlines horizontally + darkening every other scalines.

Reply 4 of 11, by ZANTHERA

User metadata
Rank Newbie
Rank
Newbie

To be honest I had absolutely no idea about the ability to show extra options by right clicking, I had never even thought about trying to right click 🤣.

Thanks so much for explaining that, I've got it working how I wanted now.

I am curious though, why are those options hidden by default?

I've just found out this option breaks with LEGO Island, the cursor is stuck inside a box of the set resolution but the game still works with the integer scale and shows fine.

Reply 5 of 11, by Dege

User metadata
Rank l33t
Rank
l33t

I am curious though, why are those options hidden by default?

So that no one would think of playing with them... I know it sounds ridiculous but the goal was to keep the "visible" configuration as simple as possible, to not confuse novice users. So, Ext options are extras for those who know what they are doing.
Integer scaling and resampling filters probably shouldn't be extras after all, but I didn't think they would be so popular.

I've just found out this option breaks with LEGO Island, the cursor is stuck inside a box of the set resolution but the game still works with the integer scale and shows fine.

That should be fixed by WIP83.1:

Re: dgVodooo 2.7.x and related WIP versions (2)

Reply 6 of 11, by ZANTHERA

User metadata
Rank Newbie
Rank
Newbie

I was wondering about something with LEGO Island, would it be possible to add the option to have the mouse scale up as well? I personally liked it when I could play at 4K with a normal sized mouse as it didn't seem too intrusive with the gameplay experience and everything still worked fine when clicking.

I get the larger mouse is more like the original game but it would be nice to have the choice to use the normal mouse size if the player wanted to.

I've also still been using 2.72 as this is the last version where LEGO Island does not crash on exit. I'm not sure how this worked fine and then not again with later versions, have you been able to determine what might cause it?

I'm also wondering if it might be possible to make it so it renders at a larger integer than is displayed?

In LEGO Island Xtreme Stunts the textures on buildings never had mipmapping so from a distance there is a very noticeable moiré shimmer but by running the game at 5760 x 4320 and use the 'Stretched, keep Aspect Ratio' option to have it display at 2880 x 2160 it made it so it's essentially doing a form of antialiasing.

This greatly improved this moiré issue to where it was barely noticeable but like I said I can only do this with that scaling mode set meaning I can't do a perfect integer scale, would it be possible to have the render scale be independent from the display scale? make it so I can do this same trick but have it display in a 2560 x 1920 window.

Reply 7 of 11, by Dege

User metadata
Rank l33t
Rank
l33t

There is an option, GeneralExt\CursorScaleFactor where you can override the default calculated scale and give an arbitrary one. Though I can't remember which dgv version it appeared with, it may not be in 2.72 . 😀

I know about Lego Island crash, I just couldn't yet figure out the reason. Something with the cursor handling, a bit mystical.

Reply 8 of 11, by ZellSF

User metadata
Rank l33t
Rank
l33t
ZANTHERA wrote on 2022-01-01, 14:34:

I'm also wondering if it might be possible to make it so it renders at a larger integer than is displayed?

In LEGO Island Xtreme Stunts the textures on buildings never had mipmapping so from a distance there is a very noticeable moiré shimmer but by running the game at 5760 x 4320 and use the 'Stretched, keep Aspect Ratio' option to have it display at 2880 x 2160 it made it so it's essentially doing a form of antialiasing.

This greatly improved this moiré issue to where it was barely noticeable but like I said I can only do this with that scaling mode set meaning I can't do a perfect integer scale, would it be possible to have the render scale be independent from the display scale? make it so I can do this same trick but have it display in a 2560 x 1920 window.

Not sure what you're trying to do, but maybe it helps to know that the all text boxes accept custom text input? Provided you don't use any of the top three scaling modes, you can write whatever you want in the resolution box. Same for the integer scale factor box.

When dealing with games with poor texture filtering, I generally start at 10x resolution and go up until it looks as good as it gets (for some reason, higher isn't necessarily better) or it crashes (16384 can't be exceeded horizontally or vertically).

Reply 9 of 11, by ZANTHERA

User metadata
Rank Newbie
Rank
Newbie

I'm essentially asking if it is possible to run the game at a higher resolution than the actual displayed size. As in if it were possible to have the games internal resolution at 8x 640 x 480 but have it display at 4x 640 x 480 so I'm able to remove the moiré but keep the game in a 4x window with the thin black bars at the top and bottom.

I do usually manually input things as a realised this was a feature quite early on. 1440 x 1080 or 2880 x 2160 aren't in the list of resolutions but those are 4:3 for a 2K and 4K screen respectively so I just tried typing it in and it worked. Using the method i described I can only make it so the game runs with no black bars around it because the only scaling mode that works makes it so the edge of the game window hits the edge of the screen.

I did try setting the integer scale manually at -4 but that didn't work which is understandable.

I've just tried the latest version to get the mouse scaling to be smaller and it does work but the sensitivity seems off compared to how it feels on the desktop and there's some kind of lag with it, it feels like it's trailing behind where I'm thinking it should be.

Reply 10 of 11, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
ZANTHERA wrote on 2021-12-23, 19:06:

I can get a perfect integer scale with the pixels showing as 2 x 2 or 4 x 4 for a single pixel.

I think perfect integer scaling is overrated. It gives you an absurdly sharp, blocky image, something that CRT does not.
CRT image is always blurred to a greater or lesser degree.

Integer scaling combined with some stretching (or better yet, scaling down) gives you something that looks more like CRT.

Reply 11 of 11, by ZellSF

User metadata
Rank l33t
Rank
l33t
Azarien wrote on 2022-01-16, 12:03:
ZANTHERA wrote on 2021-12-23, 19:06:

I can get a perfect integer scale with the pixels showing as 2 x 2 or 4 x 4 for a single pixel.

I think perfect integer scaling is overrated. It gives you an absurdly sharp, blocky image, something that CRT does not.

I've said this to you before, but simulating a CRT is far from everyone's goal. I don't think OP made any indication that's what he wants.

ZANTHERA wrote on 2022-01-16, 10:53:

I'm essentially asking if it is possible to run the game at a higher resolution than the actual displayed size. As in if it were possible to have the games internal resolution at 8x 640 x 480 but have it display at 4x 640 x 480 so I'm able to remove the moiré but keep the game in a 4x window with the thin black bars at the top and bottom.

I do usually manually input things as a realised this was a feature quite early on. 1440 x 1080 or 2880 x 2160 aren't in the list of resolutions but those are 4:3 for a 2K and 4K screen respectively so I just tried typing it in and it worked. Using the method i described I can only make it so the game runs with no black bars around it because the only scaling mode that works makes it so the edge of the game window hits the edge of the screen.

I did try setting the integer scale manually at -4 but that didn't work which is understandable.

I think I understand what you want now, but I'm wondering if you've listened too much to the wrong people; integer scaling isn't that significant. A 5120x3840 (640x480 * 8) image downsampled to 2880x2160? You won't really see the difference in sharpness in that and the game centered to to 2560x1920. The placebo effect aided by the image being smaller will be stronger.

Of course if your final output resolution is 1920x1080, which is rather low resolution the scaling becomes noticeable. Still, you're giving up 3D resolution to make 2D elements slightly sharper. I can't think of many games where that would be worth it.

I don't think there's any way to do what you want in the current dgVoodoo version, but you can set Desktop resolution in GeneralExt to 2560x1920, add it as a custom resolution your GPU driver and let your GPU driver handle the letterboxing.

Also remember that many games can be convinced to run at 720x540.