Multi-monitor support
Moderator: ZSNES Mods
-
- Rookie
- Posts: 40
- Joined: Mon Aug 23, 2004 2:10 am
- Location: Sacramento, CA
- Contact:
Multi-monitor support
Any plans to make it so the ZSNES window can be dragged to another monitor? Would be handy for those with TVs set up as secondary displays.
-
- Regular
- Posts: 271
- Joined: Tue Jun 14, 2005 8:35 pm
pagefault, what about this guy's post? He says it is possible to do with DirectDraw. http://board.zsnes.com/phpBB2/templates ... nipost.gif
Did you wake up on the stupid side of the bed this morning? Pagefault said it was possible but that it would suck. Hard.Firon wrote:pagefault, what about this guy's post? He says it is possible to do with DirectDraw. http://board.zsnes.com/phpBB2/templates ... nipost.gif
Actually, two mornings ago.Aerdan wrote:Did you wake up on the stupid side of the bed this morning? Pagefault said it was possible but that it would suck. Hard.
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
I think you have a misunderstanding of DirectDraw and it's multi display device capabilities. You're marginally correct.pagefault wrote:This can't be done properly without D3D. DDraw allows it but it will not have acceleration on second display.
DirectDraw can use full hardware acceleration whether it's running on the primary device or a secondary device.
The only time it CANNOT use hardware acceleration is when spanning graphics operations across display devices.
You can easily allow display device selection for as many devices as there are available in your system and have full hardware acceleration on every single one of them so long as the full image is blit on that device and only that device and no spanning(dragging across devices) is done.
With that said, my only point is it is possible if you wish to keep DirectDraw and still do it. Of course moving to D3D is a much better option if you wanted to go that route anyway. Today's cards often times have LESS 2D acceleration features than cards of years ago that DirectDraw can even take advantage of. DirectDraw is basically going obsolete and will be less and less useful even for 2D applications as time goes on and hardware drop more and more of those features.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
http://msdn.microsoft.com/archive/defau ... f_6oxj.asp
MS Says you need to enumerate all devices and keep track of them yourself. It's not a very nice prospect. Otherwise you get no HW acceleration.
From the horses mouth.Remarks
This function attempts to initialize a DirectDraw object, and then sets a pointer to the object if the call succeeds.
On systems with multiple monitors, specifying NULL for lpGUID causes the DirectDraw object to run in emulation mode when the normal cooperative level is set. To make use of hardware acceleration on these systems, specify the device's GUID. For more information, see Devices and Acceleration in MultiMon Systems.
MS Says you need to enumerate all devices and keep track of them yourself. It's not a very nice prospect. Otherwise you get no HW acceleration.
Note As long as it is created on the null device and is not rendering directly to the primary surface, a non-full-screen DirectDraw application will work automatically with MultiMon, and the user will be able to drag the window from one monitor to another. However, DirectDraw will take advantage of hardware acceleration only when the window is entirely within the primary display. It is recommended that windowed DirectDraw applications be specifically designed for MultiMon by maintaining separate DirectDraw objects and surfaces for each monitor. For more information, see Devices and Acceleration in MultiMon Systems.
Watering ur plants.
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
Right. That's essentially what I said. The feasible option here with DirectDraw is to allow selection of display device.
Spanning(dragging the window across displays) will never work in Direct Draw without many a headaches. I never said it would.
It's not much extra work to stick a value in lpGUID to allow selection of the device. You can then use that device and only that device, but it assures, you can run ZSNES on any device and have hardware acceleration. That is a satisfactory solution for all these people who need to play on their TV, but can't be bothered with simply switching displays around in display properties. Why that's too much work for them to begin with, I will never know.
The only real work here is implementing the selection in the GUI. That's certainly no fault of Direct Draw though.
I don't even know why I continue to discuss this. I don't even care about this option. I've been playing ZSNES on my TV for years by simply using one monitor at a time.
Spanning(dragging the window across displays) will never work in Direct Draw without many a headaches. I never said it would.
It's not much extra work to stick a value in lpGUID to allow selection of the device. You can then use that device and only that device, but it assures, you can run ZSNES on any device and have hardware acceleration. That is a satisfactory solution for all these people who need to play on their TV, but can't be bothered with simply switching displays around in display properties. Why that's too much work for them to begin with, I will never know.
The only real work here is implementing the selection in the GUI. That's certainly no fault of Direct Draw though.
I don't even know why I continue to discuss this. I don't even care about this option. I've been playing ZSNES on my TV for years by simply using one monitor at a time.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
Spanning does work in Vista because DirectDraw is wrapped onto Direct3D so you can do it without any performance issues. As well as drag the window. But in XP this is a whole different story. We are making a Direct3D renderer for multi-monitor suppport that will be used instead of DirectDraw. The old DD7 driver will be still availible but Direct3D will be the default. Direct3D handles multimon much better. And it is of no issue to add a device selection tap to the GUI it would just confuse most of the users.
Watering ur plants.
-
- Rookie
- Posts: 19
- Joined: Mon Sep 04, 2006 4:03 pm
Not to get too far off topic or beat a dead horse thread, but a while ago there was discussion about a Direct3D render that would change some other stuff like how the filters work with hi-res. Did you ever have any success with that approach?
Obviously the ZSNES team has a ton of stuff going on so please don't consider my question a request for an ETA on the new render, I was just curious as to if your testing has shown any good results
Good luck with it, it's been awesome seeing how far ZSNES has come.
Obviously the ZSNES team has a ton of stuff going on so please don't consider my question a request for an ETA on the new render, I was just curious as to if your testing has shown any good results

Good luck with it, it's been awesome seeing how far ZSNES has come.
-
- ZSNES Developer
- Posts: 6747
- Joined: Tue Dec 28, 2004 6:47 am
It was OpenGL, not D3D. When we get around to it, the Windows port render code will be modularized so that we can use D3D, OpenGL (and hopefully we can revise some of the SDL/OpenGL code at the same time), and DDraw (DDraw will by the default). It's not a priority, but it will happen at some point. The filters would be rewritten into shaders requiring a DX9 (SM2) compliant card. (DX9 compatible drivers don't count here as they don't have the hardware required.. hence why I said compliant). We will probably end up using the software driven fallbacks (which is what is used now) if you don't have the hardware.mastershake1 wrote:Not to get too far off topic or beat a dead horse thread, but a while ago there was discussion about a Direct3D render that would change some other stuff like how the filters work with hi-res. Did you ever have any success with that approach?
Obviously the ZSNES team has a ton of stuff going on so please don't consider my question a request for an ETA on the new render, I was just curious as to if your testing has shown any good results
Good luck with it, it's been awesome seeing how far ZSNES has come.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
Sounds like you guys have yourselves a good plan.
It's probably overdue. DirectDraw, as nice as it was for 2D applications such as ZSNES, hasn't moved forward in years and it's finally starting to show. Like all things, eventually you need to update with the times. We've already done the DD vs. D3D vs. OpenGL vs. XXX discussions. No need to rehash.
Bottom line is ZSNES will have the best of both worlds and a few new doors will open up by switching renderers. I look forward to seeing the results and the silencing of some of these repetitive requests!
It's probably overdue. DirectDraw, as nice as it was for 2D applications such as ZSNES, hasn't moved forward in years and it's finally starting to show. Like all things, eventually you need to update with the times. We've already done the DD vs. D3D vs. OpenGL vs. XXX discussions. No need to rehash.
Bottom line is ZSNES will have the best of both worlds and a few new doors will open up by switching renderers. I look forward to seeing the results and the silencing of some of these repetitive requests!

[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.