Worms: Armageddon => General discussion => Topic started by: StepS on January 21, 2013, 02:09 PM
Title: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support
Post by: StepS on January 21, 2013, 02:09 PM
2020/07/19: D3D9Wnd is no longer necessary! Worms Armageddon v3.8 Update Notes (https://www.tus-wa.com/forums/announcements/worms-armageddon-v3-8-released-32795/)
Original text:
[ English | Русский (http://worms.org.ua/forum/viewtopic.php?t=3948) ]
Hello. I'd like to present you a windowed mode module that takes advantage of the game's Direct3D 9 renderer, which also allows for some brilliant features, such as playing the game on several monitors at once, stretching the window, unpinning/pinning mouse from the game window, playing the game using ultra-high screen resolutions, as well as producing and streaming ultra-high-resolution videos and screenshots on any monitor and system.
The following features can be highlighted:
Multi-Monitor support: enable W:A to display the game spanned across several monitors, placed either vertically or horizontally, in either frontend and/or in-game. With AutoSetResolution enabled, the resulting in-game resolution will automatically be set in WA settings on every launch. When using stretched or fullscreen frontend mode, enabling Multi-Mon in-game will not clip your cursor in the frontend area. NOTE: performance has to be considered when enabling this option. Your hardware, mainly CPU and GPU, should be supporting it well to prevent any lags during the gameplay. Limitations: the display mode has to be "Extend" instead of "Duplicate". Maximum texture size supported by your GPU is the limit for the total resolution of the virtual multi-monitor desktop (if you exceed the limit, WA will tell you and perform a workaround). Differently-sized monitors are supported but not recommended: it's up to you to decide whether to leave empty space by making the smaller monitor primary or, otherwise, cut a few lines by using the bigger one as primary. You should also make monitors as adjacent to each other as possible on the Windows Monitor Mapping screen. Monitors that do not perfectly coincide with each other will cause ruptures in the image and produce incorrect results. Example: two monitors where the top-left corner of the right monitor touches the bottom-right corner of the left monitor.
Unpin and pin the mouse: a feature requested by someone to be able to unpin the mouse in-game and move it over WA's window. This can be useful with Border (see below). Ctrl+G to unpin or pin the mouse.
Active Background: available in both Windowed and Stretched modes. Allows to view the gameplay even when the window is not in focus. This is permanently enabled since 0.6.6.6.
Run frontend in background: a feature to prevent the frontend menus from self-minimizing when switching to another window. When it is enabled, the frontend will keep running in background. Can be switched using the "RunInBackground" setting under [FrontendSettings].
Frontend Centering (deprecated): an option to center the frontend window, but your mouse will be clipped to the window, and Hardware Cursors will be disabled. Not recommended for use. You should use SuperFrontendHD instead.
Window border in-game and quick info: allows to have a window border around the window. Using the previously mentioned unpinning feature you are able to move the in-game window. Use WindowBorder=1 in the InGame section to enable this. Use Ctrl+D to quickly enable/disable this during gameplay. There's also a possibility to show quick information by enabling QuickInfo=1 in the [InGame] section. Some quick information like the in-game resolution, mouse pinned state, topmost state and other things can be shown there in real-time.
Stretched mode (deprecated in Frontend): enable "Stretch" in the ini file for either frontend or in-game. It is still windowed mode, but here it is enlarged to fully fill your screen, and looks just the same as if you were in fullscreen. This is especially useful if your monitor doesn't support 640×480 (and you want fullscreen) or if you plan on speeding up your game (by not having to wait until your monitor switches the resolution): instant return to frontend after the game has ended, instant minimization, ability to set the resolution higher than your own, etc. NOTE: some drivers use nearest-neighbor scaling instead of antialiased by default, so you might need to change that in driver settings. NOTE: the Stretch option in the Frontend is now obsoleted by SuperFrontendHD (https://www.tus-wa.com/forums/worms-armageddon/wksuperfrontendhd-0-4-released-(with-hd-graphics)-27448/). It is NOT recommended to use the Stretch option in the frontend any longer.
If Direct3D 9 is not enabled, you will be notified. The module will assist with certain issues, should they occur.
D3D9Wnd works on W:A 3.7.x (CD/Steam/GOG) and makes use of the native Direct3D 9 renderer of the game introduced in 3.7.
Additional notes:
To fully disable the module without deleting it, use "EnableModule=0" in the ini file. To disable it for one session only, run WA with a command-line parameter: /wkargs -nowindow
This fixes the Windows 7 multiple monitors issue! (thanks to Obn3g0n/JoE for confirming)
UAC admin mode issue does not occur when maximizing from the taskbar in windowed mode.
With help of wkLobbyCmd (http://worms2d.info/WormKit#Additional_modules) you can switch resolutions on the fly and specify a resolution which is even higher than your own (in this case it'll be stretched to fit the screen). This allows everyone to produce full-HD (and even 4K, etc.) screenshots and videos regardless of their monitor. Aspect ratio does not matter. The maximum possible resolution is your GPU's max texture size (4096×4096, 8192×8192 or 16384×16384) and the minimum is 143×1. The module does not adjust to your aspect ratio, by the way. If you want to use a super-resolution that respects your respect ratio, you have to calculate the target resolution yourself (example: 16/9 1280x720 => 16/9 1920x1080).
The frontend is still in the top left corner. I can't tell more on why this happens right now, but it's due to hardly repairable bugs in the game. This will not be fixed in D3D9Wnd. A new, far better solution is on the horizon.
The latest version is 0.7.1.1 (13 April 2019): DOWNLOAD (https://steps.keybase.pub/wa/wk/wkD3D9Wnd.zip) | Mirrors on GitHub (https://github.com/StepS-/D3D9Wnd/releases).
The module is now open-source. Check GitHub (https://github.com/StepS-/D3D9Wnd) to get the source code or suggest improvements.
Extract everything into your W:A folder and run the game, making sure that the "Load WormKit modules" option is enabled in the Advanced Options of your game.
Credits:
Kawoosh - version 0.0.1 of the module.
StepS - all the updates that followed.
MinHook - the hooking library which saved the module from the madCHook disaster.
Deadcode - for helping resolve some bugs early on. Locking Windows or disconnecting the monitor no longer crashes the game.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Kaleu on January 21, 2013, 02:40 PM
Kawoosh should add a "Donate" button or something at his releases, you guys are such a heroes giving these stuff for free, this is a example of love to W:A, gratz and thankz guys.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 21, 2013, 02:46 PM
Quote from: Kaleu on January 21, 2013, 02:40 PM Kawoosh should add a "Donate" button or something at his releases, you guys are such a heroes giving these stuff for free, this is a example of love to W:A, gratz and thankz guys.
as Kawoosh said himself before, he doesn't need money (it won't bring inspiration and stuff, it's difficult to explain, Rubber could be ported on the release day already, that's a typical Kawoosh), nor would he if he was to produce a commercial app or game. you could donate to me though :) I did most of the features/fixes work after the base creation and soon there can be more! that way I'm also learning stuff
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: van on January 21, 2013, 04:46 PM
This is going to be a bit of a pain (years of practise). I kinda wish alt+tab worked properly.
alt+tab does work properly, but W:A window is topmost. Also if someone is having trouble with wkAntiKeyboardHook, may take a look at this (http://worms.cinus.org/antikeybhook/). I've just added Tab+Alt (Alt+Tab), but probably Alt+Tab won't work on Windows 8. There's no way to detect this anymore, Windows takes full control over Alt+Tab, bummer.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Twyrfher on January 22, 2013, 01:58 PM
It's doesn't work for me @ Windows XP, I got a messy screen in front of the game.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 22, 2013, 04:25 PM
can you try the latest uploaded version? Windows XP is old and lacks aero so there can be issues, but most of them should be sorted by now. issues produced by Direct3D 9 itself cannot be solved. if it still doesn't work, i'd like to see screenshots
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 22, 2013, 06:39 PM
Updated. 0.3.0.0.
Fully fixed mouse issue with non-aero users, however they lose window border and centering.
Ctrl+G is now for both pin/unpin.
Ctrl+H is now for new feature: Active Background, in this way you can see the gameplay even when the window is not in focus. This is permanently enabled for non-aero users as a fix, and also moves the window into top left corner. Cannot be enabled when border is on.
Message boxes are also in Italian for italians now. :)
Added "Disabled" option into ini file, which will fully disable the module without need to delete it.
thanks to Casso for testing on disabled desktop composition and italian boxes!
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Twyrfher on January 23, 2013, 01:30 AM
can you try the latest uploaded version? Windows XP is old and lacks aero so there can be issues, but most of them should be sorted by now. issues produced by Direct3D 9 itself cannot be solved. if it still doesn't work, i'd like to see screenshots
Now it works perfectly ;)
edit: not perfectly, I can't replay wagames :'( I can listen to them but can't see nothing.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 23, 2013, 08:04 AM
Why should I change :D I haven't formated like in 3 or 4 years, my system runs perfectly (anyway, I have win7 in my laptop, I hate it)
Quote--- try it now, should work.
Ok, later.
Title: D3D9Wnd updated!
Post by: StepS on January 24, 2013, 11:28 PM
Updated. 0.4.0.0
The "Stretch" option has been divided to support Frontend and InGame separately.
Window border is no longer experimental, it is renamed to WindowBorderInGame, works only in-game as it should, and auto-removes itself if the size fits whole screen.
Added Ctrl+D: quickly enable/disable window border in-game (if the size is sufficient) directly in-game, independently on the setting in ini file.
Minimization improved: now the "Minimize Game" option works too.
Added a new feature: Frontend Centering. This will center frontend, however will also eat the mouse! Not recommended.
Added a new feature: Custom Frontend Size. This will allow you to set custom window size for frontend using the FrontendXsize and FrontendYsize values in ini file. Eats the mouse!
Added command-line option for one-time module deactivation: launch WA.exe with the /wkargs -nowindow command-line parameter to disable D3D9Wnd for a session.
The default .ini file as of version 0.4.0.0: (http://puu.sh/1S9l3)
NOTE: Stretched options have the highest priority over everything else.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Free on January 25, 2013, 06:30 AM
So if I use this I won't have to worry about screenlag ever again?
2ghz cpu, 2gb ram, no unnecessary shit installed.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 25, 2013, 08:12 AM
performance will be the same as if you ran Direct3D 9 without anything. just here it's in window!
Title: D3D9Wnd has been updated!
Post by: StepS on January 25, 2013, 08:36 PM
Updated. 0.4.3.0.
Added FullscreenFrontend experimental option. Some people don't have smoothing in their system, and the stretched mode was not smoothed. This brings back the 640x480 fullscreen frontend (however minimization will not restore resolution for now), while still using window (or whatever is set in ini file) in-game.
Improved CenteredFrontend a bit (mouse capture)
Improved game startup
Improved WormKitDS check
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: tuomatz on January 25, 2013, 09:59 PM
tmtz thanks you with love <3
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on January 26, 2013, 03:36 PM
Updated. 0.4.4.0.
Added NoTopmostInGame: the in-game window will be no longer topmost with this. This can also be turned on/off on fly using the key combination. This allows Alt+Tab and similar to work fine (it's recommended to perform mouse unpinning before switching). People with keyboard hook can use the reg file from archive. This is enabled by default now.
Ctrl+T quickly switches between topmost and non-topmost window type of in-game window independently on the setting in ini file.
To enable background WA like on pac-man's screenshot (http://beta.team17.com/showthread.php?p=788862#post788862), do the following:
1) enable NoTopmostInGame in ini or use Ctrl+T later; set your resolution for game 2) when in-game, use Ctrl+H for active background, then unpin mouse with Ctrl+G and then alt tab to any window. 3) have fun
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Free on January 27, 2013, 12:13 AM
So let me get this clear, this doesnt work without wormkit yes?
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: van on January 27, 2013, 05:50 AM
Steps, it works flawlessly now, thanks for the frequent updates!
Wormkit is built into 3.7.0.0 so it does indeed work 'without' wormkit.
Title: Re:
Post by: StepS on February 19, 2013, 09:28 PM
Updated. 0.4.8.0.
Added QuickInfo: shows some quick information (topmost/pinned states, game resolution) when the Border is enabled. This is enabled by default.
Added StaticWindowClass: the W:A's window class (of the graphical window) no longer changes everytime on startup. This improves compatibility with software such as OpenBroadcaster. This is enabled by default.
Some fixes.
Title: Re:
Post by: StepS on March 15, 2013, 04:12 PM
Updated. 0.4.9.0.
Added support for 3.7.2.1[Steam] version of the game. This D3D9Wnd is compatible with both 3.7.0.0 and 3.7.2.1 now.
Title: Re:
Post by: StepS on March 15, 2013, 08:34 PM
Updated. 0.5.0.0.
Added support for 3.7.2.1 (CD) version of the game. This D3D9Wnd is compatible with both 3.7.0.0 and 3.7.2.1 now, including Steam.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Husk on April 27, 2013, 10:26 AM
does this help with crossfire / dual-core etc. compatibility issues?
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: StepS on April 27, 2013, 10:41 AM
are those graphic issues? pretty much yes, also fixes two-monitor bug on Windows 7, as well as Admin-mode maximize.
Title: Re: D3D9Wnd - a Direct3D 9-based windowed mode without emulator
Post by: Husk on April 27, 2013, 04:02 PM
alright, thanks =) I'll try it
Title: D3D9Wnd updated!
Post by: StepS on June 16, 2013, 11:56 PM
A wild update appears. 0.5.2.5
Finalized the FullscreenFrontend option which now behaves like it would normally (with resolution restoration).
Settings file has fully been reorganized; you must fill your settings again into the new settings file.
Added the Multi-Monitor feature: enable W:A to display the game spanned across several monitors, placed either vertically or horizontally, in either frontend and/or in-game. With AutoSetResolution enabled, the resulting summed up in-game resolution will automatically be set in WA settings on every launch. When using stretched or fullscreen frontend mode, enabling the Multi-Mon in either in-game or frontend will not clip your cursor in the frontend area. NOTE: performance has to be considered when enabling this option. Your hardware, mainly CPU and GPU, should be supporting it well not to allow any lags during the gameplay. Limitations: the display mode has to be "Extend" instead of "Double". The primary monitor has to be on the left for horizontal setups, or on top for vertical setups. For more than 2 monitors, they should go in numerical order (but maybe not, it's up to you to see it). Square setups (double on double) are currently partially supported, but can be looked into later if needed. Maximum texture size supported by your GPU is the limit for the total resolution from summing up all of the monitors' resolutions (if you exceeded the limit, WA will tell you and perform a workaround). Differently-sized monitors are supported but not recommended: it's up to you to decide whether to leave empty space by making the smaller monitor primary or, otherwise, cut a few lines by using the bigger one as primary. At least half of the height (or width in vertical setups) must collide with the monitor on the left; if it doesn't then you probably don't want multi-monitors.
Title: D3D9Wnd updated!
Post by: StepS on June 30, 2013, 11:09 PM
A new update has been released.
The ActiveBackground feature has been made available to be enabled permanently with a settings file. It is also finalized and now works in all cases. Window border in this mode is now possible, and the window is no longer stuck in top left corner.
Users with Windows Classic/Simplified interface (no aero/DWM) are no more limited to top left corner, and they can now also use the border. ActiveBackground is always forced enabled for them, as before.
Added TopLeftPosition feature for people who need the in-game window to be on top left. This can also be temporarily enabled with Ctrl+L.
Added AutoUnpin feature which will automatically unpin mouse cursor when you switch to another window (alt-tab or any other ways). Enabled by default now.
Mouse will now be pinned after clicking inside the WA's window if it was unpinned before. For stretched and expanded modes it will be re-pinned automatically when you get back to WA.
Title: Re: D3D9Wnd [MULTIMON CONTEST ONGOING!]
Post by: j0hny on July 02, 2013, 06:54 PM
what would we do without them :) gj guys
Title: UPDATED!!!
Post by: StepS on July 04, 2013, 03:21 PM
A new update released, 0.5.5.0.
Now got rid of the "2x size" maximum resolution limit! This means you can set any resolutions you like without any mouse issues, as long as your GPU supports it (maximum 2D texture size).
Added the long-awaited Run frontend in background feature to prevent the frontend menus from self-minimizing when switching to another window. When it is enabled, the frontend will keep running in background. Now enabled by default, can be switched using the "RunInBackground" setting under [FrontendSettings].
The built-in in-game mouse capture has now been improved to reflect the actual window's positions, just like done recently for ActiveBackground.
The NoTopmost feature has been moved to the [Misc] section and now affects both frontend and in-game. Still can be switched with Ctrl+T, but this time in both places.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on July 04, 2013, 05:04 PM
Very awesome Steps.. I've been hoping for that 'Run frontend in background' feature. One step closer to perfect for multi-monitor users. The only thing that could improve it now is if the mouse didn't get trapped inside stretched/custom-sized frontend windows. The way the default windowed (top left) frontend mode works is perfect, the way you can click freely in and out of WA's focus. It's just a bit hard to read comfortably, with its small size. With stretched/custom sized frontends, you still have to minimize the game to operate other windows.
And I just wanna say, your D3d9wnd utility makes WA with multiple monitors sooo much more enjoyable. The Ctrl+G and Ctrl+H in-game feature that lets you browse the internet and watch people's turns at the same time is awesome. Thanks for continuing to develop it, even though you play on 1 screen on a laptop.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on July 04, 2013, 05:09 PM
Quote from: j0e on July 04, 2013, 05:04 PM Very awesome Steps.. I've been hoping for that 'Run frontend in background' feature... One step closer to perfect for multi-monitor users. The only thing that could improve it now is if the mouse didn't get trapped inside stretched/custom-sized frontend windows. So that it would work the same as the default (windowed) size where you can click into and out of the window easily. The way the default (windowed) size works is perfect now, but it's a bit hard to read with its small size.
Man, if it was possible, i'd do it the in the day this was released. But it is not. The current frontend is so buggy that all of its controls, as well as mouse listening is bound to top left angle. Moving that control window will also move any icons or menu elements out the window, leaving us with just sky and stars. There were many attempts at finding a solution to properly move the controls but that solution was never found. Kawoosh wanted to look deeper into it one day, but still didn't get to it.
QuoteThere's also a very small quirk with the Ctrl+G/Ctrl+H feature in-game.
When you do Ctrl+G/Ctrl+H the first time, the Ctrl+H has no effect. The Ctrl+G releases the mouse as intended, but as soon as you click outside the WA window, the window is no longer active. The Ctrl+H does not keep the WA window active in the background, and all animation stops.
When you restore focus to the WA window, Ctrl+G/Ctrl+H works as intended --- you can click outside of WA's focus and WA continues to animate in the background.
This doesn't happen for me. Can you show your settings file?
Edit: I understand what you mean there. You first press Ctrl+G and only then Ctrl+H. This will never work because you are not focused on the W:A window anymore (the keyboard keys only work when the game is on foreground). Do it in reverse. Or... you can just not press ctrl+g, because there's the new "AutoUnpin" feature. Btw, check out the "ActiveBackground" in ini file... It can be enabled permanently now.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on July 04, 2013, 05:31 PM
Disregard my post... I figured out the Ctrl+G/Ctrl+H thing while I was testing... I've just been doing it wrong. Thanks for the tip about "ActiveBackground" in the ini file... never knew about that!
And I assumed the stretched mouse focus was impossible... just checking since you have made some breakthroughs recently with the frontend.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on July 04, 2013, 05:38 PM
Quote from: j0e on July 04, 2013, 05:31 PMAnd I assumed the stretched mouse focus was impossible... just checking since you have made some breakthroughs recently with the frontend.
unfortunately those "breakthroughs" (there was only one recently btw which is right now) have nothing to do with that messy control window, on which every button, form, and graphics icons depend :( we have to thank Team17 for using MFC with such a poor implementation some decades ago. That's also the reason why current W:A maintainers don't change the way frontend works. One single change can break everything, and you may spend long hours or days trying to find and resolve the issues. We all hope for 4.0, but until then, this is the only real solution for now. But still if you need to keep the big window running, just use Alt+Tab or something similar!
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on July 04, 2013, 06:09 PM
Quote from: StepS...those "breakthroughs" (there was only one recently...
It's a good one though. Useful to monitor chat, see when players light up, etc, while you browse.
Quote from: StepSBut still if you need to keep the big window running, just use Alt+Tab or something similar!
Thanks .. I'll try this when I get home.
Title: D3D9Wnd updated!
Post by: StepS on August 07, 2013, 11:53 AM
A small update (0.5.5.5) was released, sorry for delaying, should have been released many weeks ago.
Minor fixes
Now supports square- and rectangle-shaped multi-monitor setups (for example, 2 monitors above 2 monitors). A least 65025 simultaneously working monitors are supported. The total width is defined by the top monitor row. Totally untested.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: twistah on September 04, 2013, 02:28 AM
in the options i've selected Direct3D 9 (CPU). aaand.. my worms takes 25% of my screen now while its in the upper left corner? i've downloaded this with the intention to get rid of my lags in rope games. how do i set this up properly? is there a key combo to maximize that window?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on September 04, 2013, 01:25 PM
Quote from: twistah on September 04, 2013, 02:28 AM in the options i've selected Direct3D 9 (CPU). aaand.. my worms takes 25% of my screen now while its in the upper left corner? i've downloaded this with the intention to get rid of my lags in rope games. how do i set this up properly? is there a key combo to maximize that window?
frontend was always 640x480, and this is how it looks like on a big screen without stretching. you can only stretch it using the settings. to do that, open wkD3D9Wnd.ini. then, depending on what you need, you may want to stretch it to cover the whole screen by enabling Stretch=1 in the FrontendSettings section. or if you want it to be a custom size, do EnableCustomSize=1 and set your size below.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: twistah on September 04, 2013, 01:51 PM
ok, ty. gonna try that later
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: twistah on September 06, 2013, 04:09 PM
hm, i did that with Stretch=1 and chose Direct3D 9 (CPU), but worms is still in the upper left corner? ;/
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on September 07, 2013, 10:13 AM
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on November 04, 2013, 07:05 PM
Awesome job steps. Steam compatible! Just a suggestion: include some quick instructions in the archive, and use .ZIP instead of .RAR - to make it more noob accessible!
I'm noticing a big surge of new players from the weekend $1 sale. More are likely to stick around if they can figure out how to use this program.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 05, 2013, 12:44 PM
Quote from: j0e on November 04, 2013, 07:05 PM Awesome job steps. Steam compatible! Just a suggestion: include some quick instructions in the archive, and use .ZIP instead of .RAR - to make it more noob accessible!
I'm noticing a big surge of new players from the weekend $1 sale. More are likely to stick around if they can figure out how to use this program.
my usual practice is to use RAR for Windows-only designed modules, but I may do it zip as well, good idea. however zip is 16 kB bigger here. link added.
meanwhile I'm working on a little update that will also add DPI-awareness to the game, but I need to finish some stuff first. maybe any feature ideas regarding to the window?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on November 06, 2013, 04:33 AM
Quote from: StepSmaybe any feature ideas regarding to the window?
When you click outside the main menu frontend window (the mouse is not bounded inside the window), the frontend doesn't minimize.
If you could somehow click outside the other frontend windows, such as the Host/Join lobby (if the mouse wasn't bounded inside the window), would the same non-minimizing behaviour occur?
If not, ignore the rest of this post..
IF yes, a simple hotkey "eg. force mouse position to X=1921, Y=1" might release the mouse for use on monitor #2?
You've almost certainly thought of this and it's probably impossible, or else you would have done this or a workaround similar to it already. I don't really have any other suggestions right now.
(My motivation for this suggestion: It's slightly annoying not being able to "Ctrl-G" on the Host/Join screen when hosting because the game does not notify you when players join your game on the taskbar. If a workaround like the one I suggested above worked, I could do other stuff while waiting for people to join my game, without continuously minimizing/restoring).
Let me just say that D3D9Wnd is almost perfect, so I'm definitely nitpicking, since you asked. And it wouldn't be possible to gracefully minimize the frontend at all (ie. without those annoying slow resolution changes and desktop icons moved) if you hadn't made this program. Shift-Esc is very handy in the frontend already.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 06, 2013, 11:07 AM
Quote from: j0e on November 06, 2013, 04:33 AMIf you could somehow click outside the other frontend windows, such as the Host/Join lobby (if the mouse wasn't bounded inside the window), would the same non-minimizing behaviour occur?
if you're using a centered/customsized frontend, being able to click outside in the first main screen is a BUG, you shouldnt be able to do that but I don't know how to fix it.
when RunInBackground is active, switching to another window will mean W:A has lost its focus, and will still produce the flashing on join on taskbar even though it is visible on the screen. This is what RunInBackground is about.
if you're using a centered/custom-sized frontend you may use Alt+Tab to switch between windows. It is kinda pointless for a Ctrl+G there because we already have the game's cursor. Unhiding the Windows cursor in those modes would produce lots of confusion as it would be in a wrong position. maybe I could add a teleport-like feature so it would result near the expected graphical's window edge, however to me it seems like a huge crutch and not really worth dealing with yet another frontend issue caused by Team17's design.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on November 08, 2013, 08:11 PM
Quote from: StepSwhen RunInBackground is active, switching to another window will mean W:A has lost its focus, and will still produce the flashing on join on taskbar even though it is visible on the screen. This is what RunInBackground is about.
if you're using a centered/custom-sized frontend you may use Alt+Tab to switch between windows.
As far as I can tell, on Windows 7 alt-tab has no effect when the frontend is open. (Ctrl+Shift+Esc (Task Manager) is also blocked.) Therefore RunInBackground doesn't do anything for us W7 people, except maybe affect the taskbar flashing. To "switch between windows" you have to minimize the frontend... which isn't ideal.
Quote from: StepSmaybe I could add a teleport-like feature so it would result near the expected graphical's window edge
This would be very useful, if it's easy to code. I would love to be able to "teleport" the mouse outside of the frontend's window boundaries, so that I could click on stuff on my 2nd monitor, without having to minimize the frontend. It's going to be a long time before WA 4.0 comes out, so I'd say it'd be a very worthwhile fix, as long as it's not difficult to code.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 09, 2013, 03:03 PM
This is untrue, please use the reg file from the archive, it is there for a reason.
Quote
Quote from: StepSmaybe I could add a teleport-like feature so it would result near the expected graphical's window edge
This would be very useful, if it's easy to code. I would love to be able to "teleport" the mouse outside of the frontend's window boundaries, so that I could click on stuff on my 2nd monitor, without having to minimize the frontend. It's going to be a long time before WA 4.0 comes out, so I'd say it'd be a very worthwhile fix, as long as it's not difficult to code.
maybe not, but as I said it is a very huge crutch and I don't want an yet another pollution of the code that may break in any unwanted circumstance
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on November 09, 2013, 05:35 PM
AntiKeyboardHookA.reg doesn't have any affect for me. Alt-f4 still doesn't work in the frontend on w7.
Anyway, it doesn't matter. I can understand why you don't want to add obscure 'hackish' workarounds that could break, and would confuse more people than they would help. :)
For anyone just joining the thread now, D3d9wnd is an awesome utility and you should get it!
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 09, 2013, 08:00 PM
launch W:A as an admin once, exit W:A, launch WA again or reboot the computer.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on November 09, 2013, 09:56 PM
It worked!!!! Just ran as an admin once, and set RunInBackground=1.
I can now keep the WA frontend open, in the background, while browsing stuff on my other screen! I also have the frontend window stretched so it covers everything except the start menu. Perfect functionality, 10/10.
Thanks StepS- I didn't realize this was even possible!!!!
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: kaelin on November 14, 2013, 10:15 AM
first off, awsome. worms armageddon, epic game, always good to come back toa classic.
2 'big' issues.
I'm trying to center the game on the screen and make the play screen larger.
edit the file, change centered=1 and customsize=1 with my size being 1024x768
Centered, seems to lock my mouse into game, so that I can't pan my mouse off the edge (like you can when its in the upper left corner). Not a big loss, but I would prefer not to have to alt tab to click something 'behind' the game.
Custom size, seems to make the game fullscreen (and no i'mnot running at 1024).
Any way to prevent or fix those two big issues?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 14, 2013, 01:08 PM
Quote from: kaelin on November 14, 2013, 10:15 AMCentered, seems to lock my mouse into game, so that I can't pan my mouse off the edge (like you can when its in the upper left corner). Not a big loss, but I would prefer not to have to alt tab to click something 'behind' the game.
If I allow panning your mouse off the edge you would come back and slap me into the face again because your cursor position would be inconsistent (jumping from one edge to another). But it is not my issue. It is a Team17's issue from 1999, for which no cure has been found yet, sorry. Have you ever thought why we still have a 640x480 frontend after more than a decade and with the two programmers even having source code access?
Custom size is to stretch frontend to the custom size rather than a full "Stretch" setting. Just imagine you're stretching a 640x480 picture to 1024 in photoshop. You can't enlarge frontend without stretching all of its graphics thanks to crutches left by Team17. I could make a long story about the deep details of this but I just don't want to do so as it is simply a crutch mess and not even worth dealing with.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: kaelin on November 15, 2013, 02:28 AM
I figured it was something complicated like that. Just wasn't sure if I was doing something wrong (which I have a REALLY bad habit of doing).
So had to ask, thanks for the swift reply. Now excuse me while I holy hand grenade myself.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: avirex on November 15, 2013, 02:50 AM
ok im a newb....
i have some questions....
my lobby screen is in the top left corner, and thats fine i guess, i can minimize it by mouse clicking in the bottom left corner of that.... so its np...
but when i am in a game, it goes to full screen, which is obviously how i would like it to be.... but how can i minimize so i can do things on windows, but still be viewing the game???
also, what is the lock mouse feature for???
and, i dont think its a feature now, but are you able to make it so your team mate can view that mouse cursor?? would really be a helpful thing in clan games, elite's especially.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on November 15, 2013, 10:03 AM
Quote from: avirex on November 15, 2013, 02:50 AMbut when i am in a game, it goes to full screen, which is obviously how i would like it to be.... but how can i minimize so i can do things on windows, but still be viewing the game???
Set ActiveBackground to 1 in the settings file (wkD3D9Wnd.ini) or enable it for just one session with Ctrl+H (will be overridden on next run): now when you're in-game, do alt+tab, and you will see the game running on background. Note that sound is not played in this mode: this is the default behavior of the game (if I ever find how I could make it an option)
pinning mouse? It is now done automatically when switching to any other window (i.e. alt+tab) but you can still do Ctrl+G to unpin the cursor anytime.
Quote from: avirex on November 15, 2013, 02:50 AMand, i dont think its a feature now, but are you able to make it so your team mate can view that mouse cursor?? would really be a helpful thing in clan games, elite's especially.
I don't think this is something feasible. How would you sent it over?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Eirken Uarbe on November 23, 2013, 10:43 AM
QuoteSHA256: 6b71f1e0e6448a5ccdc3fe3e8356f4e09c816ab3340706ed18a294f8bcdd67df Nombre: wkD3D9Wnd.rar Detecciones: 5 / 46 Fecha de análisis: 2013-11-18 03:48:57 UTC ( hace 2 días, 5 horas )
and so what? This is quite pointless, let me explain why:
You're checking a RAR archive: this means you can put anything into a perfectly good archive and then claim it is malware altogether. Check files one by one.
5 out of 43 is a perfectly safe detection rate. If it was a malware it would have quickly gotten to at least 25/43 in less than 24 hours of its appearance. Don't claim you're smart
The AVs you provided are the worst in the world, they don't even have proper customer support. Don't expect them not to lie.
The false detections are due to madCHook.dll, the file which comes in the archive: it is needed to hook the required Windows APIs as well as other code in order for the module to work. This is a known issue since malware writers liked to use it a lot, but it not malware by itself.
There, just verified with my newest version 0.5.5.6: https://www.virustotal.com/en/file/a1490232542c40a1658b8f7f8245693dfd837cf151bdd33b910273b15504c445/analysis/1385288761/
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Christian on November 26, 2013, 01:44 PM
This is great! Thanks a lot
Title: D3D9Wnd 0.6.0.0 released!
Post by: StepS on May 22, 2014, 07:23 PM
A new update has been released: 0.6.0.0.
D3D9Wnd is now fully version-independent. This means that it will work on any future version of W:A that supports Direct3D 9 (but still requires at least 3.7 or newer, as older versions don't have Direct3D 9) without having to wait for me to update the module.
You can now load D3D9Wnd with any wormkit module loader, not only the built-in option of the game.
Implemented fix for the long-living W:A crash when you press Ctrl+Alt+Del, Win+L or get an UAC pop-up on Vista and newer (thanks to Deadcode for the solution; the fix will also be available in the next W:A update).
Added a FancyStartup option for the frontend initialization. With this setting, W:A will start up translucent, quickly becoming opaque.
The module will now set W:A's process DPI-aware. This resolves clipping/stretching/blurriness/mouse issues that come out of the DPI virtualization system in Vista and newer (especially important for Windows 8.1 users who use a DPI scaling value other than 100% and 125%).
The Fullscreen frontend mode will now use native fullscreen.
The module will now only start activity after the Direct3D 9 interface creation, related to which the check for DirectDraw/Direct3D7 is now done in a better way, as well as a lot of other things.
Assisted Vsync no longer makes the game laggy when the game's height is taller than your primary monitor's height, therefore it won't be auto-disabled now.
You should no longer see an empty mouse cursor when returning to frontend from the game with Hardware Cursors enabled and unpinning being used prior to the return.
Mouse clipping will now correctly work when running Stretched/Centered/Custom frontend with wkSuperFrontend module.
Previously you could see a black rectangle for a split second when W:A's frontend was starting up. Technically now it's done in the best way though it may feel a little bit unusual for people who got accustomed to it already.
Many optimizations and improvements.
Added a secret feature.
0.6.0.3: minor transparency/FancyStartup fixes 0.6.0.4: FancyStartup will not appear in replays now 0.6.0.5: Fixes for the in-game camera movements when wkSuperFrontend's large frontend is active. 0.6.0.6: Added a FullscreenAlternative option. This is the artificial (non-exclusive) fullscreen that was in the module prior to 0.6.0.0 (but has since been improved a bit). This is useful to eliminate various exclusive fullscreen issues such as Windows 7 Aero multi-monitor flickering issues. Note: this setting takes priority over the vanilla Fullscreen. 0.6.0.7: Changed the way the D3DDevice9 Present hook works. This solves compatibility with all other apps that hook rendering, such as Fraps. 0.6.0.8: Minor fixes to the module's exiting phase. 0.6.0.9: The module will now check if the fullscreen resolution required for frontend is supported by the system. In case of a failure, a warning will be shown, telling the details, and the module will then switch to windowed mode. This is for both standard and alternative fullscreen modes. Useful to determine whether a CreateDevice failure in unmodified game was actually a screen mode switch failure.
Coming soon:
Ability to resize the in-game window: I have already done this for Worms 2 (see the video (http://www.youtube.com/watch?v=5VhKA05qdkc) | download (http://worms2d.info/ReSolution)), and almost finished for W:A, though it won't be progressive at first (it's best to keep it as is, when the resizing stops only).
Alt+Enter support: this will have multiple variations. In the first mode, pressing Alt+Enter would switch between exclusive fullscreen and windowed mode display; in the second mode, Alt+Enter would stretch/shrink the window; and in the third mode Alt+Enter would take advantage of the aforementioned window resizing, expanding the borderless windowed display to the whole desktop resolution.
A "proper" frontend window that you can move.
Multi-monitor improvements.
Some other things.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: rongyao on June 03, 2014, 11:31 AM
A small bug!
Using d3d9wnd in combination with superfrontend, causes hardware mouse to not stay inside the frontend window!
Ingame resolution from registry is set to 800x600 too.
The ingame mouse cursor that is worms colored one stays inside, but the windows cursor in meanwhile i move the game one moves behind worms window and clicks folders or points stuff on the desktop, remaining active there.
If i disable superfrontend it works perfectly fine but the default frontend resolution is not very good.
Also a request, may we get a border on the frontend window too? So to be able to move it around as i can do with the game window if border is enabled.
Update: Ah superfrontend makes the frontend mouse to remain locked inside the invisible window 800x600 square but on top left side of the screen. So centering frontend window in combination with superfrontend and the fact windows mouse is not disabled, causes the glitch where mouse is released behind and interacts with screen objects and applications.
Another question, when wkresolution gets released, does wkresolution, wksuperfronted and wkd3d9wnd will get merged into one plugin in near future or they will stay as separate plugins?
Video representing the bug. https://drive.google.com/file/d/0B7MS086qw3wgN0xGLUZNVnlsaVE/edit?usp=sharing
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on June 04, 2014, 08:48 AM
Quote from: rongyao on June 03, 2014, 11:31 AMThe ingame mouse cursor that is worms colored one stays inside, but the windows cursor in meanwhile i move the game one moves behind worms window and clicks folders or points stuff on the desktop, remaining active there.
I have already explained (https://www.tus-wa.com/forums/worms-armageddon/d3d9wnd-a-native-direct3d-9-based-windowed-mode-and-multi-monitor-support-19063/msg184196/#msg184196) why this happens, and why there's no window border in frontend. It's not my bug, it's the abomination of team17's DXMFC rendering hybrid for all frontend screens that causes it to render graphics for the controls relative to the screen corner, not the window's corner. I still haven't found where and how to fix it. Currently the secondary window with all mfc controls remains in the corner even when what you see is centered, which causes these problems. It's not superfrontend which causes the issue. It's simply that there are gaps around the default 640x480 controls area when it's active, and no gaps to hide cursor when it isn't active (if you click something in the top left corner normally, you'll see cursor flashing for a bit when switching the screens) The solution is simple: don't use centering.
Quote from: rongyao on June 03, 2014, 11:31 AMAnother question, when wkresolution gets released, does wkresolution, wksuperfronted and wkd3d9wnd will get merged into one plugin in near future or they will stay as separate plugins?
wkReSolution is for Worms2. super frontend is currently still under testing phase, and has not been announced officially, it's just a quick hack to change the frontend's dimensions. They won't be merged as one can be used independently of the other, and also superfrontend will likely always stay version-dependent unlike D3D9Wnd.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Masta on June 05, 2014, 04:24 PM
(https://i.imgur.com/qDQeQMf.png)
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: PyroMan on June 05, 2014, 06:57 PM
yo there x) i`m back! sry for offtop. cool module btw. I`ll get w:a on steam soon and will be back i guess :D Will it work with steam version of w:a btw?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on June 06, 2014, 09:20 AM
Quote from: PyroMan on June 05, 2014, 06:57 PM yo there x) i`m back! sry for offtop. cool module btw. I`ll get w:a on steam soon and will be back i guess :D Will it work with steam version of w:a btw?
yes. Also in version 0.6.1.2 I have fixed compatibility with steam overlay (where hooks would conflict) so that it now works properly
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: rongyao on June 07, 2014, 02:07 PM
Thank you for the replies! ^^
Also one request here. Ability to choose 0 width and 0 height for frontend resolution in d3d9wnd.ini for windowed mode, which to get current desktop resolution and set it automatically. Fake fullscreen kind of a thing. Or automatically to get worms armageddon resolution from registry and set them to the frontend if width and height are set to 0, that will be even better i think.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on June 07, 2014, 04:52 PM
Quote from: rongyao on June 07, 2014, 02:07 PMAbility to choose 0 width and 0 height for frontend resolution in d3d9wnd.ini for windowed mode, which to get current desktop resolution and set it automatically.
This is what SuperFrontend already does: when the sizes are set to 0, you get your desktop resolution. This is the default in the ini file you get from the website. If you simply want to stretch it, that's what the "Stretch" option does: fills your whole screen.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on October 31, 2014, 11:57 PM
A new update has been released: 0.6.6.6. This update is awesome and everyone who is using an older version must upgrade. More details on that later. What's new?
Added a SoundInBackground feature. This will let the game play sounds even when it's not in focus. Now enabled by default.
Multi-monitor settings have been improved. Now the preferred amount of monitors is "Max" that autodetects entire virtual desktop, and the "EnableInFrontend" option has been disabled as it was totally useless. Also, it's no longer necessary to change the alignment of your monitors. Even if your primary one is not on the top or left, you will still be able to play in multi-mon now.
Window dragging is now nicer. When cursor is unpinned, you can drag and move the window from anywhere inside the window, not just from the window caption. Very useful for quick moving with Ctrl+G. This only works if there's a border around the window.
Fixed the game using a lot of CPU when minimized (and potentially causing a crash on return to the frontend afterwards) if active background was on (mostly). Also, now there's no minimize button on the caption, it was causing bugs. Use the keyboard combos for minimizing the game, or the escape menu option.
Active background and automatic cursor unpinning are now always enabled. These two options have become essential technologies that would be both nonsensical and problem-causing if disabled.
Fixed the bug where in-game stretch resolution would not properly be reapplied after playing one match and then another one with Fullscreen frontend enabled. Thanks to Senator for the report.
Fixed the bug where super-resolution assisted vsync would lag the game after playing one match and then another one, or using Ctrl+Alt+Del/Winlock and returning back. Thanks to Kaleu and Zexorz for the reports.
Module now works without additional DLLs.
Some other things and fixes. :)
Happy Halloween!
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kaleu on November 01, 2014, 04:20 PM
Thanks StepS. 666 Satanael \,,,/
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StorminASU on December 04, 2014, 06:57 PM
Hello All! I recently purchased W:A which is the first and only game I've bought from Steam, but I couldn't pass up the sentimental value of owning it again. However, I do have a bad habit of "multitasking" at work and need to figure out a way to play W:A without taking up the whole screen and at any time being able to click focus on something in the background and having the game go away: similar to if you're surfing the internet, you minimize the window a little, keep something up behind it to click on in case someone walks in. Is this possible?
I've tried to download d3d9wnd and make it work, but I can't figure it out because I'm so unfamiliar with registry options and I don't understand what frontend, etc. refer to. TIA!!!
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on December 07, 2014, 06:34 AM
Quote from: StorminASUI've tried to download d3d9wnd and make it work, but I can't figure it out because I'm so unfamiliar with registry options and I don't understand what frontend, etc. refer to. TIA!!!
When editing D3D9Wnd.ini, 0=Off, and 1=On.
"FrontendSettings" refers to the menu system. Anything with the blue background and floating stars basically. Knowing this, combined with knowing the above (0=Off, 1=On) the options are reasonably self-explanatory.
"InGameSettings" controls everything in the actual game.
The "InGameSettings" are a bit difficult to understand at first. As long as you know that with D3d9wnd enabled all aspects of the game are 'windowed' by default, it makes sense. It's only when the Desktop Resolution of the player matches his or her In-Game-configured setting, that the In-Game portion runs in fullscreen.
To achieve what you want to do, you need "Stretch=0" under the InGameSettings, and then in the regular WA options, set a smaller resolution than your regular desktop resolution. For example, most computers use 1366x768 as their default resolution, so you might set WA to use 1024x768, so you can click out of the game on the sides.
Just so you know, since WA makes use of the mouse to control the game's camera, you first will need to press "Ctrl+G" to un-pin the mouse, and then click outside of the window. Alternatively, Windows+D, Windows+M, or Shift+Esc will minimize the game quickly at any time (with or without D3D9Wnd).
To minimize the windowed frontend quickly, you have to press Windows+D or M. Clicking outside the frontend window doesn't make it go away, since it's Always-on-top for some reason.
My recommendation: find some free software that will let you remap Windows+D to an easier single-button shortcut, for when your boss walks in. I know AutoHotKey can do this, but it's extremely confusing.
Getting D3D9Wnd was smart because now minimizing from the Frontend doesn't force your monitor to switch resolutions, so minimizing will be instant, instead of the usual 2-5 second lag.
Edited for clarity.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StorminASU on December 10, 2014, 06:47 PM
Quote from: StorminASUI've tried to download d3d9wnd and make it work, but I can't figure it out because I'm so unfamiliar with registry options and I don't understand what frontend, etc. refer to. TIA!!!
When editing D3D9Wnd.ini, 0=Off, and 1=On.
"FrontendSettings" refers to the menu system. Anything with the blue background and floating stars basically. Knowing this, combined with knowing the above (0=Off, 1=On) the options are reasonably self-explanatory.
"InGameSettings" controls everything in the actual game.
The "InGameSettings" are quite confusing in my opinion. There should be a setting to explicitly enable windowed mode in-game. Eg. "Windowed=1". And I'd like to see Comments added with a brief description of what each setting does.
To achieve what you want to do, you need "Stretch=0" under the InGameSettings, and then in the regular WA options, set a smaller resolution than your regular desktop resolution. For example, most computers use 1366x768 as their default resolution, so you might set WA to use 1024x768, so you can click out of the game on the sides.
Just so you know, since WA makes use of the mouse to control the game's camera, you first will need to press "Ctrl+G" to un-pin the mouse, and then click outside of the window. Alternatively, Windows+D, Windows+M, or Shift+Esc will minimize the game quickly at any time (with or without D3D9Wnd).
To minimize the windowed frontend quickly, you have to press Windows+D or M. Clicking outside the frontend window doesn't make it go away, since it's Always-on-top for some reason.
My recommendation: find some free software that will let you remap Windows+D to an easier single-button shortcut, for when your boss walks in. I know AutoHotKey can do this, but it's extremely confusing.
Getting D3D9Wnd was smart because now minimizing from the Frontend doesn't force your monitor to switch resolutions, so minimizing will be instant, instead of the usual 2-5 second lag.
Thank you so much for the very detailed answer and all your help. I tried implementing your suggestions, but there's still a lag when I open the game and it displays (also when I quit the game, etc), and it still takes up the entire screen. I've copy and pasted my d3d9wnd settings below: [Misc] EnableModule=1 StaticWindowClass=1 NoTopmost=1 SoundInBackground=1 FancyStartup=0
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on December 10, 2014, 07:07 PM
Hey storminASU. Your settings look fine.
But it doesn't sound like d3d9wnd is doing anything. I'm guessing the frontend (menus) are probably still full-screen, etc. That means one of two things: either D3D9Wnd is not enabled yet in WA Advanced Settings, or it's installed in the wrong folder. Make sure this option is ticked: (http://i58.tinypic.com/2zywuu1.png)
If you've enabled the above option but d3d9wnd is still not working, that means it's probably installed wrong. D3d9wnd has to be extracted (unzipped) into the base Worms Armageddon folder.
For Steam users the base WA folder is something like: C:\Program Files (x86)\Steam\steamapps\common\Worms Armageddon
and for CD Rom or pirate users something like C:\Microprose\Worms Armageddon
After you get the module working, you can tweak various settings, like increasing the size of the frontend to make the words easier to read, etc. EnableCustomSize is the one for that.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: rongyao on February 17, 2015, 10:07 AM
I've reinstalled the whole game from the cd, updated it, downloaded the plugin... running everything default with d3d 9 cpu settings and d3dwnd default settings, my game moves with 10fps when mouse enters in the window, when moves out of the window works normally.
Setting up d3dwnd to use fullscreen makes it work completely fine, but i want to play windowed, previous versions like from 2014 of this plugin used to work fine.
Someone to tell me how to produce log files and send them so to help for this issue to get fixed up please?
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kangaroo on August 08, 2015, 02:09 AM
ok im getting a few errors.
Main one is when I click start game , I can hear the game load and worms in game walking around and stuff but I get stuck at lobby screen and cannot see the game.. only hear it.
2nd one is the window is very small can i make it bigger ?
Im on windows XP
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on August 08, 2015, 02:29 AM
Which window is small? The menus or the game? The game window size is controlled by the WA resolution setting, The menu window size is controlled by editing the wkd3d9wnd.ini file. 0 means off, 1 means on.
Troubleshooting to get the easy things out of the way: -try different graphics renderers (set in Advanced Settings) -try using a smaller in-game resolution than your desktop resolution (will make game run in a window), or if game is already in a window, set in-game reso to your desktop reso. -try changing various settings in the above-mentioned ini file. -update directx? idk.
I'm not sure whether d3d9wnd was designed for Windows XP. Why do you need d3d9wnd? Multiple monitors? If it's just to make the menus more friendly you could try wkSuperFrontend. I'm sure someone smarter will come along with better suggestions..
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kangaroo on August 08, 2015, 12:39 PM
Im on laptop and have only ever been able to get 1024x768 as my largest resolution... I am wanting to find a way to get larger resolution so can play Big RR and see where I am going or see more of a roper map....
Here is main Problem though... I get to this part and then I cannot get into game. I can hear game load and start and my worms walking around and firing zooks ect ect but I cannot see. It just sticks on this screen... I can press ALT f4 and it goes back to menu, so its not game freezing its something else. (http://s9.postimg.org/uoxtx28pb/lobby.jpg) (http://postimage.org/)
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on August 08, 2015, 12:49 PM
try to remove wkReplayShark, if you have it. I've encountered some weirdnesses with CreateWindow hooking when it's on (it might depend on the order of loading). Due to this, game-detection is malfunctioning, so specific windows are not fixed in the way they should be.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kangaroo on August 08, 2015, 01:03 PM
ok I got it all working... wow its amazing to play big RR with bigger res... so simple ... BUT its seems very laggy.. ;/ is this because I normaly play on 8bit or 32bit ?. and the Direct3D 9 (shader) setting is too much for my pc ? 512mb ram(128mb of that is built in graphics)
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kangaroo on August 08, 2015, 01:52 PM
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on August 08, 2015, 07:39 PM
Try making a separate installation of WA for Project X if you haven't already. PX and high resolution don't mix on old PCs.
edit: er wait I guess if youre using D3d9wnd you can't be using PX. I dunno then.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on August 08, 2015, 08:46 PM
You should launch the task manager, then run the game with the selected resolution, reproduce the lags, then minimize it and check the CPU/RAM usage. Big RRs can eat up a lot of RAM. Even if a PNG map is about 1 or 2 MB big, it is compressed, and must fit in memory uncompressed (which can be 100, 200 MB or more). This is why the "Map Memory Warning" slider is present in Advanced settings, to let you know when an uncompressed map is going to hit the threshold (you can set it to "Always" so it'd always display you the amount of RAM it'd be using). It does look like one of the issues you're having here. Also try to switch between Direct3D 9 (shader) and Direct3D9 (CPU) modes. The shader one should always be preferable, however, but I haven't tried it on systems like yours. The D3D9Wnd module only works with these two modes.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kaleu on April 22, 2016, 12:43 AM
Hi StepS, thanks a lot for this module, I've been using it since its release and I can say that I'm used to it and I can't play without this module now. Can you please update the D3D9Wnd? It's lagging for me since 1-2 week, I think its happening due to latest NVidia Drivers with this Vulkan shit that installed togheter, but I'm not sure, by lags I mean fps drops while roping, I am using stretched 1080p in my 1360x768 monitor, when I disable the module game does not lag but I can't see the edges of the screen because of the size higher than my monitor so I need this module.
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Rabbzz on April 22, 2016, 01:00 AM
Didn't know I could use this to have a bigger res on laptop. Will be trying it out!! ;D
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Rabbzz on April 22, 2016, 09:10 AM
Is there a way to make res in game bigger then my max? current max is 1366x768 would like to see more on the map in bng's though.
Im sure there is a way using this but i havent figured it out yet
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Kaleu on April 22, 2016, 09:39 AM
Title: Re: D3D9Wnd - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on July 06, 2017, 12:52 AM
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.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: SiD on August 03, 2017, 05:30 PM
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?
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on August 03, 2017, 06:02 PM
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.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: SiD on August 03, 2017, 06:45 PM
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
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Sensei on August 05, 2017, 12:02 PM
Do I see AHK icon opened there in the right bottom corner SiD?!? Questions might be asked... Muahahaha
;D
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: TheWalrus on August 05, 2017, 09:35 PM
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: Sensei on October 27, 2017, 03:56 AM
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!
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).
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: eule on January 05, 2018, 02:37 PM
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"
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on January 05, 2018, 03:21 PM
Quote from: eule on January 05, 2018, 02:37 PM 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 (https://files.steps.moe/wa/wk/old_windowmode_for_wa.zip).
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: KinslayeR on January 05, 2018, 03:28 PM
Quote from: eule on January 05, 2018, 02:37 PM 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 (https://steps.keybase.pub/wa/wk/old_windowmode_for_wa.zip).
hi steps, is it work with 3.8 too?
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: eule on January 05, 2018, 04:33 PM
[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.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on January 07, 2018, 09:06 PM
Quote from: eule on January 05, 2018, 04:33 PMin 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 (https://files.steps.moe/fixes/ddraw_fix_w8_up.zip) into the game dir.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: eule on January 09, 2018, 05:16 PM
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
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on January 12, 2018, 01:37 AM
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.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: eule on January 17, 2018, 11:04 PM
hey the game is working now after installing direct x 9c, the menus are still slow but ingame everything's fine after using ddrawfix
thanks! :)
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: oScarDiAnno on January 23, 2018, 12:00 AM
Hello! Thanks a lot for such a great tool, it's what I always wished for multitasking haha. Wish I knew it before!
I'm only struggling with something, I have two monitors and I want to run the game on the secondary one. Config is set to borderless, but I can't move the "window" by pulsing Ctrl + G and "dragging it" as you say.
I have Windows 10 (updates disabled, i'm at 1607) + SuperFrontendHD, Rubberworm and this one.
I'm only struggling with something, I have two monitors and I want to run the game on the secondary one. Config is set to borderless, but I can't move the "window" by pulsing Ctrl + G and "dragging it" as you say.
I have Windows 10 (updates disabled, i'm at 1607) + SuperFrontendHD, Rubberworm and this one.
Everything else works properly.
Agreed, Ctrl-G is a godsend. I don't have multiple displays set up right now, so I can't test an actual solution. You may be able to move the in-game window (only in-game) if you turn borderless off and specify an in-game resolution smaller than your desktop resolution.
Alternative solution: You can move WA around between screens and stuff if you install it in a virtual machine. I used Oracle VM VirtualBox. You need a good computer though or it will stutter. Probably too much work unless you have a VM set up already. You will not be able to move the frontend (menus) around or to your secondary monitor unless you use a VM.
I heard a rumour that they made some improvements to the frontend in WA 3.8. I don't know what those improvements consist of, but hopefully some kind of window support (or support for 3rd party windowed support). We should know soon - the update is finished and is just pending Team17's rubber stamp approval process, and then it'll be released, hopefully.
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: oScarDiAnno on January 23, 2018, 04:05 AM
Quote from: j0e on January 23, 2018, 12:29 AM Agreed, Ctrl-G is a godsend. I don't have multiple displays set up right now, so I can't test an actual solution. You may be able to move the in-game window (only in-game) if you turn borderless off and specify an in-game resolution smaller than your desktop resolution.
Alternative solution: You can move WA around between screens and stuff if you install it in a virtual machine. I used Oracle VM VirtualBox. You need a good computer though or it will stutter. Probably too much work unless you have a VM set up already. You will not be able to move the frontend (menus) around or to your secondary monitor unless you use a VM.
I heard a rumour that they made some improvements to the frontend in WA 3.8. I don't know what those improvements consist of, but hopefully some kind of window support (or support for 3rd party windowed support). We should know soon - the update is finished and is just pending Team17's rubber stamp approval process, and then it'll be released, hopefully.
I see man, thanks a lot for the help!
Also... Those are AMAZING news! I heard before people saying that WA 3.8 would never come and blah-blah. But I'm really excited about that, can't wait! haha. Big cheers to everyone working on that project, and this one. Thanks to everyone who loves Worms and use their knowledge to make it better <3
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: j0e on January 23, 2018, 04:28 AM
Found a source for that rumour - see page 7: https://www.pdf-archive.com/2017/08/13/wwm-03-04-last-issue-special-edition/wwm-03-04-last-issue-special-edition.pdf
Probably best to ignore the dates..
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: SiD on January 23, 2018, 11:00 AM
I'm only struggling with something, I have two monitors and I want to run the game on the secondary one. Config is set to borderless, but I can't move the "window" by pulsing Ctrl + G and "dragging it" as you say.
I have Windows 10 (updates disabled, i'm at 1607) + SuperFrontendHD, Rubberworm and this one.
MultiMonitor isn't enabled in your d3d9wnd config. my bad
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on January 23, 2018, 01:36 PM
You cannot move the window if you have borderless mode enabled. To move the window you first need to enable the border by pressing Ctrl+D, then pressing Ctrl+G to use your mouse and drag it to the other monitor. However, if your window already covers the entire screen, it is impossible to enable the window border during the game. You may need to lower your resolution in options. It is not possible to start the game on a non-primary monitor by default. However, you can do something else: in your windows settings, set the secondary monitor as primary. So the left monitor will be non-primary, and the game will run on your right monitor. MultiMonitor is an option that enables you to span the game across multiple monitors. So it will run using both monitors at once. I guess this is not what oScarDiAnno wanted. It might also be possible to trick the MultiMonitor mode without changing your monitor from secondary to primary. For that to happen, your secondary monitor needs to be logically positioned on the left side in windows settings. After that, you disable the "AutoSetResolution" option (to prevent automatic spanning) and go into the game options to choose the resolution for your secondary monitor. Then, supposedly, the gameplay should start on your secondary monitor. However, the frontend menus will still be stuck on your primary monitor's top left corner!
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: oScarDiAnno on January 26, 2018, 11:58 PM
Quote from: StepS on January 23, 2018, 01:36 PM You cannot move the window if you have borderless mode enabled. To move the window you first need to enable the border by pressing Ctrl+D, then pressing Ctrl+G to use your mouse and drag it to the other monitor. However, if your window already covers the entire screen, it is impossible to enable the window border during the game. You may need to lower your resolution in options. It is not possible to start the game on a non-primary monitor by default. However, you can do something else: in your windows settings, set the secondary monitor as primary. So the left monitor will be non-primary, and the game will run on your right monitor. MultiMonitor is an option that enables you to span the game across multiple monitors. So it will run using both monitors at once. I guess this is not what oScarDiAnno wanted. It might also be possible to trick the MultiMonitor mode without changing your monitor from secondary to primary. For that to happen, your secondary monitor needs to be logically positioned on the left side in windows settings. After that, you disable the "AutoSetResolution" option (to prevent automatic spanning) and go into the game options to choose the resolution for your secondary monitor. Then, supposedly, the gameplay should start on your secondary monitor. However, the frontend menus will still be stuck on your primary monitor's top left corner!
I understand. Thanks a lot! I found a small workaround, Steam's Big Picture mode let's you choose which monitor you want to play in. However, what it does is to change your primary monitor to your secondary and then it reverts when you close it. It's not exactly what I wanted because I wanted to be able to open stuff from my desktop, and they move to the secondary (now primary monitor) too. But it's not a big deal, I can just open the Desktop folder on the other screen!
Thanks a lot guys. This (and many others) are awesome tools. Long live Worms!
Title: Re: D3D9Wnd 0.7 - a native, Direct3D 9-based windowed mode and multi-monitor support
Post by: StepS on October 21, 2018, 04:28 PM
D3D9Wnd 0.7.0.7 has been released
Changes:
Fixed crash when playing 2 or more rounds with a super-resolution (higher than the desktop resolution) and Assisted Vsync enabled. Thanks to "keitaro" on Discord for the report.
Title: Re: D3D9Wnd 0.7.0.7: Direct3D 9-based windowed mode with multi-monitor support
Post by: cgar on November 09, 2018, 08:23 AM
Anyone know how to get this working in wine? The FrontendUseDesktopWindow tweak doesn't seem to fix the black screen issue in D3D9 modes. Clicking a button in the blackness causes the UI to briefly flash on screen. But it quickly turns black again. Its like a black window is being drawn over it for some reason. When using stretch you can see this black window obscuring just the top left of the screen.
Works great in windows though. Amazing module.
Title: Re: D3D9Wnd 0.7.0.7: Direct3D 9-based windowed mode with multi-monitor support
Post by: h3oCharles on November 09, 2018, 04:02 PM
not sure how wine will work for this tbh, as wine wrapper already makes a new window.
Title: Re: D3D9Wnd 0.7.0.7: Direct3D 9-based windowed mode with multi-monitor support
Post by: cgar on November 09, 2018, 04:18 PM
Yea with the force virtual desktop tweak the frontend becomes a nice moveable window. But its so small. Would love the same 1080p fullscreen frontend like I have on windows.
Any idea what causes the black window over everything? Its so strange.
Title: Re: D3D9Wnd 0.7.0.7: Direct3D 9-based windowed mode with multi-monitor support
Post by: StepS on November 09, 2018, 08:18 PM
Quote from: cgar on November 09, 2018, 04:18 PM Yea with the force virtual desktop tweak the frontend becomes a nice moveable window. But its so small. Would love the same 1080p fullscreen frontend like I have on windows.
Any idea what causes the black window over everything? Its so strange.
That's because of the design of the frontend menus, called "DXMFC". What happens is that DirectX and MFC work together, where the former renders graphics on the screen, and the latter specifies the layout of buttons, forms and other controls like in a regular Windows application (you can see what the "innards" look like by opening WA.exe in Resource Hacker and opening "Dialog"). However, the result is that there are two windows: the actual graphical window (or DX), and the MFC window over it. Normally, on Windows systems, the MFC window is transparent and never obscures any part of the screen. However, Wine does not perfectly recreate this weird behavior. The result is that with most renderers (except DirectDraw, where it seems to have been implemented specifically for the game), the MFC window appears black and obscures the screen.
On Windows systems that use DWM (Desktop Window Manager) and fake-fullscreen-emulation, starting with Windows 8, another issue can be seen, where the MFC window is transparent, however all forms appear white and cover their graphical counterparts. That was the famous Windows 8/10 bug in 3.6.31.0 that got fixed in 3.7.0.0, although it still manifests itself when running in windowed mode (which D3D9Wnd works around when it's active), and when minimizing/restoring the game in latest Windows 10 updates (with "Fullscreen optimizations" enabled by default), resulting in even more whiteness.
All of these issues have been completely fixed for the next update (3.8.0.0).
Title: Re: D3D9Wnd 0.7.0.7: Direct3D 9-based windowed mode with multi-monitor support
Post by: cgar on November 09, 2018, 08:36 PM
Quote from: StepS on November 09, 2018, 08:18 PM That's because of the design of the frontend menus, called "DXMFC". What happens is [...] All of these issues have been completely fixed for the next update (3.8.0.0).
Thank you very much StepS. A very thorough explanation. I had heard rumblings about the upcoming v3.8 release and got exited. If it will also allow me to use D3D9 with wine then I'm extra excited! :D
Title: D3D9Wnd is now open-source
Post by: StepS on December 28, 2018, 08:05 PM
D3D9Wnd 0.7.1.0 has been released
Localized error/notification message boxes will now use Unicode to work independently of the system encoding.
Minor fixes.
D3D9Wnd is now open-source The full source code of the module, along with Worms Helper Tools (used in WormKit module development), has now been released and is available on GitHub (https://github.com/StepS-/D3D9Wnd). In addition, two more editions have been released in separate branches: the original simplistic version (now called "D3D9Wnd_naked"), redesigned to work with any Direct3D 9 application, as well as a lightweight edition for WWP Remastered. The wiki page (https://worms2d.info/D3D9Wnd) has been updated. You can post your issues, suggestions or patches on GitHub from now on.
D3D9Wnd 0.7.1.1 has been released (April 13, 2019)
Fixed version range checking code to detect WA.exe versions better. It is recommended, but not necessary, to update.
Title: Re: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support
Post by: kron on September 30, 2019, 12:42 AM
Just found out about this now, it's amazing! Makes Worms a lot more pleasant on a 1440p monitor. Cheers and thank you Steps.
Title: Re: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support
Post by: Edoardo Moretti on January 31, 2020, 10:02 PM
Thanks StepS, this will make my steams easier: https://www.tus-wa.com/forums/tus-discussion/working-on-wa-online-matches-on-youtube-32615/ (https://www.tus-wa.com/forums/tus-discussion/working-on-wa-online-matches-on-youtube-32615/)
Title: Re: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support
Post by: Mega`Adnan on December 21, 2023, 04:17 AM
I want to stretch my WA in game screen to double monitor (both 1440x900). I've tried before with regedit settings but I forgot the directory, I've tried to search through this topic over and over, but it doesn't say where can I set it. Is it SuperFrontend's .ini file? And what is the directory of regedit for WA and what should I put in to take over both screens? (2880x900?) I'm just testing it whether if I like it or not. How can I do it?
Title: Re: D3D9Wnd 0.7.1.1: Direct3D 9-based windowed mode with multi-monitor support
Post by: h3oCharles on December 21, 2023, 04:20 AM
Quote from: Mega`Adnan on December 21, 2023, 04:17 AM I want to stretch my WA in game screen to double monitor (both 1440x900). I've tried before with regedit settings but I forgot the directory, I've tried to search through this topic over and over, but it doesn't say where can I set it. Is it SuperFrontend's .ini file? And what is the directory of regedit for WA and what should I put in to take over both screens? (2880x900?) I'm just testing it whether if I like it or not. How can I do it?
something something nvidia surround? idk what's the exact name, but basically you need to find some way to get 2+ monitors behave like a single monitor, and graphics card drivers should have a gimmick like that
be careful with CTRL+Home, as it'll try to center the screen, but your center will be split between two monitors, with bezels between them