Forums
March 28, 2024, 03:53 PM

Author Topic: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support  (Read 89623 times)

0 Members and 1 Guest are viewing this topic.

Offline Sensei

There's an easier way if you have NVidia graphic card. You should run NVidia control panel. Here's tutorial:




Thx to Tomt for showing me this few weeks ago.
« Last Edit: April 22, 2016, 02:15 PM by Sensei »

Offline StepS

D3D9Wnd 0.7.0.0 has been released

Changes:
  • Fixed compatibility with the GOG version.
  • Implemented in-game Fullscreen mode. This works like vanilla fullscreen, but in-game (previously you could do this for the Frontend only). This allows you to keep exclusive fullscreen in-game which has slightly higher performance than borderless windowed fullscreen, while still keeping frontend windowed and responsive. No keyboard controls or other extended in-game options are enabled in this mode.
    • To enable Fullscreen, set Fullscreen=1 in [InGameSettings].
    • Note: when you attempt to start a game with an unsupported in-game resolution, you will be forced into windowed mode for the duration of the round. I decided that this was better than the game's default behavior of throwing you into 1024x768.
    • Note 2: Multi-Monitors take priority over Fullscreen. If Multi-Monitors are enabled and used, in-game Fullscreen is disabled.
  • When losing focus, all keys on the keyboard are now released (not just Alt) in windowed mode. One big manifestation of this bug was Ctrl+G, with Ctrl sticking after regaining focus. No buttons stick anymore. However, this fix does not apply to Fullscreen mode.
  • When Direct3D 9 disabled, you will, again, receive messages telling you to enable it (useful for newcomers). This is a restoration of the behavior as seen in older versions (which was removed due to technical concerns back at the time).
  • EnableCustomSize has been disabled. This function has been obsoleted by SuperFrontendHD. There's no reason to enable it any longer. If it's still enabled in your INI file, you will now receive a message box informing you about this. Note that there's a secret option to still enable it, for people who desperately need it (e.g., for testing or experimenting).
  • The module will now make the game Per-Monitor DPI Aware on Windows 8.1 and newer. Previously it would only set System DPI awareness (Vista+), but this would not protect you from DPI Virtualization when multiple monitors are connected on 8.1, or when scaling is changed without logging out and back in on Windows 10.
  • Fixed cursor clipping with Centered Frontend. The clipping rect was totally rekt.
  • Stretched and Centered Frontend options have been deprecated. They can still be used, but the module now recommends trying SuperFrontendHD.
  • Minor Frontend updates.
  • Minor Backend updates.
Dec 30 2013 23:59:44 <StepS> windowed mode isn't the only thing you need about frontend
Dec 30 2013 23:59:49 <StepS> you need it to be actually bigger
Dec 31 2013 00:00:13 <StepS> it actually is very small on my 15-inch full HD screen
Dec 31 2013 00:00:25 <StepS> while running at 640x480 or stretched mode makes it fuzzy
Dec 31 2013 00:00:44 <StepS> this problem has been around since the Worms Armageddon's release and no one has even tried to beat it
[...]

Offline SiD

My native res is 2560x1440, but I want to play with 1920x1080 fullscreen.
Using this module by far gives me the most stability (with stretch 1 and fullscreen 0), but the only issue I have is input lag, which I understand is caused by v-sync being on when using this module.

If I don't use this module:
  • and set 1920x1080 in W:A settings with vsyncs off, then the input lag is fixed. But this causes other issues (maximising problems, and Windows resizing when I exit.)
  • and set 2560x1440, everything works fine, except being way too small.


I have the option of setting my Windows 10 resolution to 1920x1080 before running W:A but I haven't found a way to automate this.
Is it possible to use this module with V-sync off?

Offline StepS

Is it possible to use this module with V-sync off?
If you disable vsync in your game settings, then it is disabled. However, this is not entirely true. Being windowed, the game is now subject to DWM's frame limiting. Therefore it is not really vsync-off anymore. The only way to play without DWM's interference is by using exclusive fullscreen (aka the vanilla one).
It is not possible to use Stretch in an exclusive-fullscreen application without more DirectX engineering than what the module already does.
Changing the resolution before the game can be automated. "FullscreenAlternative" in the frontend does exactly this - changes the system resolution. However it is set to restore it upon minimize/restore, so it'd feel like regular fullscreen. Technically this could be made to change the resolution until the game's shutdown, and not do anything in the process. But it will be your responsibility to fix it, should the game crash.
Dec 30 2013 23:59:44 <StepS> windowed mode isn't the only thing you need about frontend
Dec 30 2013 23:59:49 <StepS> you need it to be actually bigger
Dec 31 2013 00:00:13 <StepS> it actually is very small on my 15-inch full HD screen
Dec 31 2013 00:00:25 <StepS> while running at 640x480 or stretched mode makes it fuzzy
Dec 31 2013 00:00:44 <StepS> this problem has been around since the Worms Armageddon's release and no one has even tried to beat it
[...]

Offline SiD

Thanks StepS, I'll look into a way of changing res more easily.
A weird thing I encountered:
The warning message which appears when there's an unsupported res specified came up REALLY faint:
http://i.imgur.com/heTKGik.png

Offline Sensei

Do I see AHK icon opened there in the right bottom corner SiD?!?
Questions might be asked... Muahahaha

 ;D

Offline TheWalrus

Do I see AHK icon opened there in the right bottom corner SiD?!?
Questions might be asked... Muahahaha

 ;D
THE INTERLOPER IS USING THE CHEATS

Offline Sensei

For twitch streaming purpose I decided to take a shot at D3D9Wnd and wkSuperFrontend today.

Decided to run a few Fraps tests, because game felt awkward and I wasn't drinking.
When using nothing or just wkSuperFrontend - fps in game doesn't drop below 530, and can reach ~580 max.
When using D3D9Wnd, fps never goes above 470.

Call me lunatic, but if everything felt the same, I would never remember to run the tests. Game feels and plays different. Roping, for example.. like worm got 2 pounds.
Jetpacking also felt like a fat worm drive it. Some kind of input lag, or whatever you want to call it.
Merely noticable, but difference exists. Any thoughts on this or I should get hospitalized?

Anyway, about wkSuperFrontend - great job StepS, week ago I thought there's no point in using it, but admit mistake. It really is nicer and more comfortable. Hope someday you'll figure out how to scale map editor on previous size. That would be awesome!



EDIT: hmm, is this answered already :/
Is it possible to use this module with V-sync off?
If you disable vsync in your game settings, then it is disabled. However, this is not entirely true. Being windowed, the game is now subject to DWM's frame limiting. Therefore it is not really vsync-off anymore. The only way to play without DWM's interference is by using exclusive fullscreen (aka the vanilla one).
« Last Edit: October 27, 2017, 04:12 AM by Sensei »

Offline eule

hi i want get d3d9wnd for 3.6.31.0. because of Project x. StepS do you still have an old Distribution? when i start it with .7.0.0 it says "Your Version is too old for this module"

Offline StepS

hi i want get d3d9wnd for 3.6.31.0. because of Project x. StepS do you still have an old Distribution? when i start it with .7.0.0 it says "Your Version is too old for this module"
Hi, D3D9Wnd works with 3.7.0.0. What version does it show in the error?
3.6.31.0 doesn't support Direct3D 9. Project X, however, implements Direct3D 9 support in-game, and has a windowed mode option, so you don't need the module. Perhaps that windowed mode option would be nicer if it had more capabilities, but Project X isn't maintained and I'm not going to patch older versions.
If you want to enable windowed mode in the frontend, try this.
« Last Edit: March 12, 2023, 01:05 AM by StepS »
Dec 30 2013 23:59:44 <StepS> windowed mode isn't the only thing you need about frontend
Dec 30 2013 23:59:49 <StepS> you need it to be actually bigger
Dec 31 2013 00:00:13 <StepS> it actually is very small on my 15-inch full HD screen
Dec 31 2013 00:00:25 <StepS> while running at 640x480 or stretched mode makes it fuzzy
Dec 31 2013 00:00:44 <StepS> this problem has been around since the Worms Armageddon's release and no one has even tried to beat it
[...]

Offline KinslayeR

hi i want get d3d9wnd for 3.6.31.0. because of Project x. StepS do you still have an old Distribution? when i start it with .7.0.0 it says "Your Version is too old for this module"
Hi, D3D9Wnd works with 3.7.0.0. What version does it show in the error?
3.6.31.0 doesn't support Direct3D 9. Project X, however, implements Direct3D 9 support in-game, and has a windowed mode option, so you don't need the module. Perhaps that windowed mode option would be nicer if it had more capabilities, but Project X isn't maintained and I'm not going to patch older versions.
If you want to enable windowed mode in the frontend, try this.

hi steps, is it work with 3.8 too?
« Last Edit: January 05, 2018, 04:09 PM by KinslayeR »

Offline eule

Code: [Select]
[quote author=StepS link=topic=19063.msg265673#msg265673 date=1515165667]
[quote author=eule link=topic=19063.msg265671#msg265671 date=1515163054]
hi i want get d3d9wnd for 3.6.31.0. because of Project x. StepS do you still have an old Distribution? when i start it with .7.0.0 it says "Your Version is too old for this module"
[/quote]
Hi, D3D9Wnd works with 3.7.0.0. What version does it show in the error?
3.6.31.0 doesn't support Direct3D 9. Project X, however, implements Direct3D 9 support in-game, and has a windowed mode option, so you don't need the module. Perhaps that windowed mode option would be nicer if it had more capabilities, but Project X isn't maintained and I'm not going to patch older versions.
If you want to enable windowed mode in the frontend, try [url=https://steps.keybase.pub/wa/wk/old_windowmode_for_wa.zip]this[/url].
[/quote]

in 3.6.31.0. on Windows 10 with a AMD Radeon T5. I actually came from this thread: https://steamcommunity.com/app/217200/discussions/2/34093781870846801/ , as i was experiencing the mentioned error. Wormskit.exe doesnt start at all, WA.exe starts, but is super slow in the menus & ingame. the errorlog is empty, so i tried to use D3D9Wnd as a workaround, however i'd love to stay on 3.6.31.0 bcs of Project x.

Offline StepS

in 3.6.31.0. on Windows 10 with a AMD Radeon T5. I actually came from this thread: https://steamcommunity.com/app/217200/discussions/2/34093781870846801/ , as i was experiencing the mentioned error. Wormskit.exe doesnt start at all, WA.exe starts, but is super slow in the menus & ingame. the errorlog is empty, so i tried to use D3D9Wnd as a workaround, however i'd love to stay on 3.6.31.0 bcs of Project x.
If WormKit.exe doesn't start, you've messed up with some modules or DLLs. What error does it show?
To fix the "super slow" issue, insert this DLL file into the game dir.
« Last Edit: March 11, 2023, 10:52 PM by StepS »
Dec 30 2013 23:59:44 <StepS> windowed mode isn't the only thing you need about frontend
Dec 30 2013 23:59:49 <StepS> you need it to be actually bigger
Dec 31 2013 00:00:13 <StepS> it actually is very small on my 15-inch full HD screen
Dec 31 2013 00:00:25 <StepS> while running at 640x480 or stretched mode makes it fuzzy
Dec 31 2013 00:00:44 <StepS> this problem has been around since the Worms Armageddon's release and no one has even tried to beat it
[...]

Offline eule

px_errors.txt pxcrashlog.txt errorlog.txt are all empty after unsuccesfuly starting the game
pxlog.txt shows:
Quote
Log started
Project X! Version : 0.8.0.3104
for WA 3.6.31.0
WormKit Module
Wormkit module is used : wkFrontendFix.dll
Unlocked code region
Unlocked data region
Loading from : px3d.dll
Failed to load PX3D library!
Error : Das angegebene Modul wurde nicht gefunden
Can't load PX3D unit, terminating..

px3d.dll is in the diretory
« Last Edit: January 09, 2018, 05:50 PM by eule »

Offline StepS

Sounds like you don't have the required DirectX libraries. The library required by PX is d3dx9_33.dll and it comes separately with the DX 9.0c installation package. PX won't run on unupdated systems for this reason.
Dec 30 2013 23:59:44 <StepS> windowed mode isn't the only thing you need about frontend
Dec 30 2013 23:59:49 <StepS> you need it to be actually bigger
Dec 31 2013 00:00:13 <StepS> it actually is very small on my 15-inch full HD screen
Dec 31 2013 00:00:25 <StepS> while running at 640x480 or stretched mode makes it fuzzy
Dec 31 2013 00:00:44 <StepS> this problem has been around since the Worms Armageddon's release and no one has even tried to beat it
[...]