VOGONS


Multiple Monitor Control

Topic actions

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 1 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

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

Assure that SDL 1.2 is capable of that and if so, feel free to post patches.

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 4 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

I can't get SDL 1.3 to "make install", so I tried putting the include files and the dll file where they should be manually according to errors and directions and it won't detect SDL.

What's the proper procedure to get SDL "seen"?

Reply 5 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

What's the proper procedure to get SDL "seen"?

As I said dosbox uses SDL 1.2 and since SDL 1.3 is completely different in
several aspects you'll have to rewrite/adapt several things.

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 7 of 17, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Perhaps we need to just wait until SDL 1.3 has a stable release..?

Yes but it will, i repeat, NOT work.

Reply 8 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

I'm not a fool, I realize that at best you'd get an uncompilable mess, but at least I could give it a go then. As it stands there's not even anything to edit, it just "doesn't see SDL"..

Anyway I'll revisit this when SDL 1.3 goes stable and try again.

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 13 of 17, by Yushatak

User metadata
Rank Member
Rank
Member

Hah. Didn't see that.. 🤣

Reply 14 of 17, by PunkMaister

User metadata
Rank Newbie
Rank
Newbie

So in short Dosbox is incapable of displaying a full screen on a secondary display period end of story...

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 16 of 17, by DoxxedBoxman

User metadata
Rank Newbie
Rank
Newbie

But, PunkMaister's comment was useful.
It summarized the entire thread and you confirmed.
Saved me the investment of reading all it.

6 years baby!