Resolution issues in fullscreen

Looks like a major new version of cnc-ddraw was released (7.0) and it has some nice changes. I'll be looking into upgrading Cactus soon.

LFG!!! 🔥🔥
 
Lol...

Sometimes I forget that cnc-ddraw is not exclusive to Diablo 2, and people use it to play all sorts of games...

So when I read the Changelog, I'm usually in the mindset of "How does this make my D2 experience better"?

Therefore, imagine my momentary confusion when I read:
  • Added support for Balls of Steel v1.2 (See proxy-dlls.zip)
:LOL:😂🥜🥜
 
I was reading over the patch notes for cnc-ddraw and I see this for version 6.9.0.0:

Added new "aspect_ratio=" setting to ddraw.ini

It's weird seeing that since there was some aspect ratio related settings. And I definitely have the black side bars on a widescreen monitor ;). Yet more reason for me to bump the Cactus cnc-ddraw version sooner! Legooo.

Re: Balls of Steel. Lmfao. Diablo or Baal's?
 
I'm definitely also interested in testing this since I've been interested in moving my offline gaming experience into a Windows XP and Windows 7 VM and either playing older games there with the regular VM video driver (if good enough), or using GPU passthrough previously cnc-ddraw was still detected as software rendering and as basically unplayable. I'm wondering if this would help:

Fixed a bug with the OpenGL renderer on VMware Windows XP virtual machines

Wait... I thought Cactus needed at least Windows 7? Does Cactus support older versions like XP?

I would totally build an offline Windows XP computer if it would run Cactus! 🤩
 
I think older versions of Cactus worked on Windows XP and I think the only reason I need 4.6.2 (before it was 4.6.1 however) is due to me using a drag and drop library. If I removed that feature (assuming I don't decide to attempt to re implement it in a lower version), it may be able to run on Windows XP again, which I would be very happy with for sure. It seems that 4.0.3 is the latest available version, so I could see what I would need to do to get Cactus to be downgraded from 4.6.2 to 4.0.3. It would be fun for sure.
 
I think older versions of Cactus worked on Windows XP and I think the only reason I need 4.6.2 (before it was 4.6.1 however) is due to me using a drag and drop library. If I removed that feature (assuming I don't decide to attempt to re implement it in a lower version), it may be able to run on Windows XP again, which I would be very happy with for sure. It seems that 4.0.3 is the latest available version, so I could see what I would need to do to get Cactus to be downgraded from 4.6.2 to 4.0.3. It would be fun for sure.

dc0cf38a1911ecddba50eb515a9a9465.gif
 
There we go, new bundle released with a bunch of good stuff ;D.

I was able to run some tests with my existing configuration and playing around the new upgraded cnc-ddraw, and I found some interesting behavior.

So the `aspect_ratio` setting isn't necessary for us since as long as you have the `maintas` option set to true, you should be good. `maintas` is the main option for keeping the aspect ratio for the game. The `aspect_ratio` setting is a newer setting that allows you to override the aspect ratio. This also ignores/overrides the `maintas` option which makes sense.

Now the interesting part is that both of these aspect ratio settings only work properly if you start the game in full screen (only, not windowed full screen). So `fullscreen` needs to be true, and `windowed` needs to be false. If `windowed` is true, it won't work.

The other thing is that there is also some weirdness switching between `fullscreen`, and `windowed`. The solution to this was to no longer us `windowed` mode but rather use the newer `toggle_upscaled` feature and set that to `true`. This allows seamless switching between full screen and window mode regardless of whether you start in either option, and switching to full screen will maintain as the aspect ratio properly as well.

Finally, I've changed the defaults so that "full screen" + "toggle_upscaled" is the default option, which means the game will start in full screen by default. I've also reverted my custom width/height defaults back to what upstream provided which is automatically set based on what the game asks for (800x600). You will only notice this when you are in window mode. I'm pretty sure most people are using a monitor with a higher resolution, so if you are playing in window mode by default (like me), you'll want to set a higher resolution again.

@DangerDave @Manny Can you both download the new bundle and copy the "ddraw.dll", "ddraw.ini", and "winmm.dll" into your D2 folder and see if the default settings maintains the aspect ratio for you. I tested this myself and it works :).

NOTE: The new "winmm.dll" is the proxy dll provided by cnc-ddraw that essentially re-activates DirectDraw support in 1.14[abcd], so now those versions are fully supported in Cactus, at least when it comes to video rendering.

EDIT: I've also released a new bundle that updates Cactus to 2.6.6, which now protects the "winmm.dll" from being deleted since it's now part of the Cactus bundle as a core file for all platforms.
 
Last edited:
Word ~ I'm I am going to test this now :)

As a side note, I'm glad you haven't deviated from jinc2-sharper.glsl as the default shader in Cactus. It's my favorite. ^_^
 
@fearedbliss Yo ~ the new Cactus/ddraw + ddraw config file are working great. It defaults to full screen while maintaining the original aspect ratio. It looks like my file did but with the added bonus now where alt+enter goes to windowed mode (I think before I had locked it to full screen). Great work!
 
As for Cactus on Windows XP, I looked into it a little bit and it seems it would take a lot of work/re-write for me to be able to literally go from .NET 4.6.2 down to .NET 3.5.X (not .NET 4.0), in addition, it would complicate things working smoothly between Windows 7 and Windows 10 workflows. So I think it's better to stick to Windows 7 as the lowest supported version. Even with Windows 7 already being the lowest supported, due to me using .NET 4.6.2, it already requires a few upgrades on Windows 7 to get Windows 7 to be able to run .NET 4.6.2, and thus Cactus. This has been documented in Cactus for a while now though: https://codeberg.org/fearedbliss/Cactus/src/branch/main/INSTALLING-CACTUS-ON-WINDOWS-7.md and I've mirrored all the files to get someone from Windows 7 RTM updated just enough run Cactus. I may relook at this in the future again though.
 
As for Cactus on Windows XP, I looked into it a little bit and it seems it would take a lot of work/re-write for me to be able to literally go from .NET 4.6.2 down to .NET 3.5.X (not .NET 4.0), in addition, it would complicate things working smoothly between Windows 7 and Windows 10 workflows. So I think it's better to stick to Windows 7 as the lowest supported version. Even with Windows 7 already being the lowest supported, due to me using .NET 4.6.2, it already requires a few upgrades on Windows 7 to get Windows 7 to be able to run .NET 4.6.2, and thus Cactus. This has been documented in Cactus for a while now though: https://codeberg.org/fearedbliss/Cactus/src/branch/main/INSTALLING-CACTUS-ON-WINDOWS-7.md and I've mirrored all the files to get someone from Windows 7 RTM updated just enough run Cactus. I may relook at this in the future again though.

That makes sense! No worries, I think even having Windows 7 compatibility is already a huge plus. ;)
 
Back
Top