VOGONS


First post, by uniform_pixels

User metadata
Rank Newbie
Rank
Newbie

Hi!

TLDR at end.

Just found out about this and excited to try it out! I've been playing this for years with Sven's wrapper on Linux/Wine. Now I have a windows 10 install and trying to get it to look the same as I do on Linux. I have it set to render fullscreen, but at 1x1:1x1 with a big black border. Then I use nvidia integer scaling via the command "nvidia-settings --verbose --assign CurrentMetaMode="DPY-2: 2560x1440_144 { ViewPortIn=1280x720, ViewPortOut=2560x1440, ResamplingMethod=Nearest }", which would basically halve the x and y resolution and use integer scaling for crisp pixel art. Well nvidia doesn't have integer scaling for my nvidia titan x pascal on Windows(needs turing arch vs. pascal) even though it supports it on linux, so I am looking to do the scaling via the wrapper.

First was playing around with Sven's wrapper settings. The only way I can get that to look the way I want is through windowed mode. Any time I use full-screen with all other combinations it will introduce non-integer scaling. But windowed mode isn't bad even though I rather have a solid black border all around.

TLDR: Is there a mode where a 1x1 diablo pixel equals 2x2 native mode pixels(i think this is what windowed mode does?), with a black border surrounding it? My monitor is 2560x1440 so it looks great to me this way! I might be able to figure this out myself, but it doesn't look like the changes I am making are taking any effect. I copied the glide dlls over to d2 folder and launch dgVooDdoCpl.exe from C:\Program Files (x86)\dgVoodoo2_8_2.

Thanks for any and all help attempts!!!

Reply 1 of 7, by uniform_pixels

User metadata
Rank Newbie
Rank
Newbie

Alright! Got it going... I had to copy the conf file into the d2 directory. Also, earlier I was grabbing the x64 versions forgetting about bitness.
Right now using settings:

Scaling mode: Centered
Keep window aspect ratio: unchecked
Resolution: 2x

Seems to be what I'm after, but if anyone has any tips please share. Since my use-case is so simple maybe I can turn off some stuff.

Also, is the source for the Sven wrapper available? Just curious.

Reply 2 of 7, by wiibur

User metadata
Rank Newbie
Rank
Newbie

Are you sure the integer scaling option isn't there in the nVidia control panel?

Attachments

Reply 3 of 7, by uniform_pixels

User metadata
Rank Newbie
Rank
Newbie

Thanks for the reply!

Yeah... was wrestling with it for ages. When I set the scaling to GPU and hit apply, right after I click Yes on the "Do you want to keep..." I can see it appear and disappear several times really fast, only for it to finally disappear. And yes, I did try to sneak in an ambush click of it! rofl. I do keep reading that it requires turing architecture, so I am guessing it is that and I wouldn't be surprised if the linux devs snuck it in. As a matter of fact the only reason integer scaling got implemented at all is because folks petitioned them for the sake of pixel art.

But I also would not be surprised if it is available somehow. There were a couple fixes that were a bit too scary for me to just throw myself into full-tilt. Thanks again for the help! Oh and also I was able to tweak Sven's wrapper more to my liking, which is:

-----------------------------------------------------------------------------------------------------
1. reset via std/export -> restore default values
mainly noting deltas from these defaults

settings
x captured mouse if you don't do this it will run way past right border
1600x1200 static size
x desktop resolution checked, vert int scaling, unchecked a full vert stretch

extentions
x GL_EXT_vertex_array more efficient
o GL_ATI_fragment_shader
o GL_ARB_fragment_program
x GL_EXT_paletted_texture this takes precedence over 2 just above it, more efficient
x GL_EXT_shared_texture_palette all share same pallet, uncheck if problems seen
o GL_EXT_packed_pixels if emulating 8 bit textures, which i don't think we are?
o GL_EXT_texture_env_combine for transparency, but i have it already. switch if problems
o WGL_EXT_swap_control can control vert sync. do i need to? i don't think so
x WGL_ARB_render_texture this and supersampling required if scaling is done by glide

back up to renderer
x supersampling requires WGL_ARB_render_texture to be on. use if scaling via glide
x no gamma unchecked=lighter, checked=darker, sometimes i like one, sometimes t'other

-----------------------------------------------------------------------------------------------------

I do see a cursor type object zipping across the bottom of the screen at a couple points which always appears when WGL_ARB_render_texture is set, but I think it goes away after that. Hopefully it won't cause a buffer overflow or something 🤣.

Also including 1:1 fullscreen mode. Posting in case these help someone in the future. It took me a bit to figure them out and it I think it looks sharp and vibrant.

--------------------------------------------------------------------------------
std/export -> restore default values

settings
checked captured mouse
800x600 static size
checked desktopresolution

renderer
unchecked/checked no gamma unchecked=lighter, checked=darker, sometimes i like one, sometimes t'other

extensions
checked GL_EXT_vertex_array
unchecked GL_ATI_fragment_shader
unchecked GL_ARB_fragment_program
checked GL_EXT_paletted_texture
checked GL_EXT_shared_texture_palette
unchecked GL_EXT_packed_pixels
unchecked GL_EXT_texture_env_combine
unchecked WGL_EXT_swap_control
unchecked WGL_ARB_render_texture

--------------------------------------------------------------------------------

Reply 4 of 7, by wiibur

User metadata
Rank Newbie
Rank
Newbie

I know I mentioned something pretty obvious but I wasn't sure how familiar with Windows you were since you mentioned coming from a Linux environment. I also thought I had used this on my 1080Ti but I just checked that system and the integer scaling option is definitely not there. Sorry about that.

Reply 5 of 7, by uniform_pixels

User metadata
Rank Newbie
Rank
Newbie

No problemo! Thank you for taking time to check it out and passing that info. I am still going to keep checking and will update if I find anything out, might be a different path to same goal.

Reply 6 of 7, by Dege

User metadata
Rank l33t
Rank
l33t
uniform_pixels wrote on 2023-06-18, 20:56:
Alright! Got it going... I had to copy the conf file into the d2 directory. Also, earlier I was grabbing the x64 versions forget […]
Show full quote

Alright! Got it going... I had to copy the conf file into the d2 directory. Also, earlier I was grabbing the x64 versions forgetting about bitness.
Right now using settings:

Scaling mode: Centered
Keep window aspect ratio: unchecked
Resolution: 2x

Seems to be what I'm after, but if anyone has any tips please share. Since my use-case is so simple maybe I can turn off some stuff.

You can set the scaling mode to 'Centered, keep aspect ratio' so dgVoodoo will use your current desktop resolution for image presenting, independently on the game resolution or the forced resolution.
So, in this scenario the game output will be rendered in the center of your sceen either in the game resolution or the forced resolution (if anything other than 'unforced' is specified in DX\Resolution config element).
And you can also scale the output in a postprocess step, set 'GeneralExt\ImageScaleFactor' to 2 or whatever you want with a point-sampling filter. It's the equivalent of NV and other vendor built-in pixel scaling.
You can make all the config tab pages appear in the CPL by right-clicking somewhere on the CPL and enable "Show all sections of the configuration" in the context menu.

So, all in all:

General\ScalingMode: Centered, keep aspect ratio
DirectX\Resolution: unforced (let the game render its stuff at its own resolution)
GeneralExt\ImageScaleFactor: 2
GeneralExt\Resampling: point sampled

For more about dgVoodoo's image presentation process, see: http://dege.fw.hu/dgVoodoo2/QuickGuide/

Edit: Resampling is not important... only if you select "Stretched, keep aspect ratio" and the upscale factor is not integer.