VOGONS


Multiple Monitor Control

Topic actions

  • This topic is locked. You cannot reply or edit posts.

First post, by Yushatak

User metadata
Rank Member
Rank
Member

DOSBox should be capable of going fullscreen on any monitor instead of only the primary one.

Example scenario: You have dual LCDs, one 4:3 and one 16:9. You want to play a DOS game fullscreen and want it on the 4:3 monitor, but it's your secondary. You can swap primaries, run it, and then swap back, but this is tedious. At that point you may as well be swapping cables and having one monitor.

My scenario: I prefer CRTs for DOS gaming - they scale low resolutions beautifully in such a way that LCDs simply can't seem to replicate. I am easily able to stick a CRT on my computer as my second monitor, but I would really only be using it for DOSBox. It would be nice if I could set Monitor=1 in my DOSBox config and have DOSBox always open on monitor 2 in fullscreen mode that way.

I realize that this is also a question of SDL, but I'm not aware what restrictions SDL places on you in this regard, so forgive me if this isn't within the realm of possibility without SDL being modified or updated first.

Another thing that would make my life easier: I'd like to have the capability (as one does with a VM) to assign a device to DOSBox and DOSBox alone. I.e., I hook up a PS/2 keyboard and mouse, and a USB keyboard and mouse. I use the USB pair on Windows and set up DOSBox to only respond to the PS/2 set and to take over from Windows receiving on it to boot. This way one can operate DOSBox like another - separate - workstation.

Reply 2 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

Apparently SDL 1.3 can definitely do it (http://old.nabble.com/fullscreen-video-on-2nd … td27200533.html), but not 1.2. However, I can't submit a patch because I don't code in C/C++, not yet anywho. If I could I would have just made some kind of personal hacked build by now.

"You instead need use SDL 1.3 (not implemented on 1.2) and call the SDL_SelectVideoDisplay(index_of_mmonitor) (usually 0 for first monitor and 1 for second) so you can direct your SDL work output on your prefered screen (fullscreen or not)."

Is it possible to build DOSBox against SDL 1.3? If so, even I might be able to manage a patch of that simplicity, who knows.

What of my other idea, the dedicated keyboard/mouse one? I imagine it will probably never happen in the main build, right?

Reply 3 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Apparently SDL 1.3 can definitely do it (http://old.nabble.com/fullscreen-video-on-2nd … td27200533.html), but not 1.2.

There you are, one main point of SDL 1.3 (besides ripping off a lot of useful things)
was multi monitor/different output handling support. DOSBox uses SDL 1.2.

Is it possible to build DOSBox against SDL 1.3?

Not without large modifications because some "subtle" things in the keyboard
and output handling have been changed. But maybe you get a little further on this
than me.

What of my other idea, the dedicated keyboard/mouse one? I imagine it will probably never happen in the main build, right?

As already stated, check if SDL is capable of doing this.

Reply 6 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

Well I expected it to throw errors or refuse to compile DOSBox, I can't even get DOSBox to ./configure because of it not detecting the presence of SDL - SDL refused to make install, meaning that SDL is kinda wonky all on it's own before bringing DOSBox into the equation at all. Perhaps we need to just wait until SDL 1.3 has a stable release..?

Reply 9 of 17, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

You could mess with the configure script and then you could try to throw in some compatibilty header sdl 1.3 has that allows 1.2x apps to run under 1.3... But when you go the compatibility header way it probably, in wd words, won't work 😉

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 10 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

According to my latest research on the matter there is a "compatibility mode" API in SDL 1.3 to allow SDL 1.2 code to remain unmodified. I haven't been able to find much documentation on it, but if I understand right DOSBox should actually be able to build just fine with SDL 1.3 provided we could get it to detect SDL at all, and get SDL 1.3 using this "compatibility mode".

Worth noting that this is slower than using the SDL 1.3 native API, but on most machines that's kinda irrelevant as it's quick as hell as-is.

Reply 11 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

As it stands there's not even anything to edit, it just "doesn't see SDL"..

Uhm yes of course, as Dominus says this is intentional because it is not compatible.
And of course there IS something to edit.

if I understand right DOSBox should actually be able to build just fine with SDL 1.3

Yes it will BUILD but not WORK.

Reply 12 of 17, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

It's not like I didn't mention the compatibilty mode in my previous post... Could have saved yourself some research...

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 15 of 17, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Yes, thanks for writing that after TWO years.
I wonder why you felt the need to necropost and not even adding something useful...

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 17 of 17, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Wow, way to make a lasting first impression with a necropost answer to a necropost answer...
Thread locked.

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper