Project

General

Profile

Actions

Emulator Issues #1433

closed

Video plugins need better multimonitor support

Added by MofoMan2000 about 15 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

This seems like more of an enhancement than a defect, but still...

This is something the DX9 plugin actually seems to have that OpenGL does
not, but it needs work still. Occasionally I like to play Dolphin on my
actual TV, just to recreate that original GameCube feel but with things
like widescreen and Action Replay hacks. However, to do this I have to muck
around with settings in my video control panel. It would be much easier if
the emulator just went to fullscreen on the display the rendering window is
currently on (sort of like what Jabo did with PJ64). If this isn't doable
at least have a selection box (like the one on the D3D plugin) where you
can pick what display to use, and if at all possible try to show the name
of the display (not just the video card).


Related issues 5 (0 open5 closed)

Has duplicate Emulator - Emulator Issues #2104: r4898 broke ability to play full screen on 2nd display in d3dDuplicate

Actions
Has duplicate Emulator - Emulator Issues #2488: Dual Monitors fullscreen always on Primary Mon.Duplicate

Actions
Has duplicate Emulator - Emulator Issues #4518: Enhancement. Second displayDuplicate

Actions
Has duplicate Emulator - Emulator Issues #5180: Full screen only works on monitor 1Duplicate

Actions
Has duplicate Emulator - Emulator Issues #5646: Support MultiMon && Show Current Screen Resolution in DX9Duplicate

Actions
Actions #1

Updated by ChaosCode about 15 years ago

  • Status changed from New to Questionable
  • Issue type set to Feature request
Actions #2

Updated by hrydgard about 15 years ago

  • Status changed from Questionable to Accepted

Why Questionable? This seems like a legitimate feature request. I'm probably not going
to get to it but maybe someone else will.

Actions #3

Updated by sinni800 almost 15 years ago

Shouldn't be hard to implement. I am not into the Dolphin code, but it should be
easily possible to choose the second screen to render a full screen window. I bet
the parameter is set to primary screen anyway.

Actions #4

Updated by ayuanx almost 15 years ago

Issue 2104 has been merged into this issue.

Actions #5

Updated by ebirnie almost 15 years ago

Issue 2104 was different because the dx plugin used to have this feature but no
longer does, it was broken.
you used to be able to select which monitor to run it on, but now it will only run on
display #1.
i had to make this clear because the first post here talks about the dx plugin having
a feature that it does not anymore.

Actions #6

Updated by luisr142004 over 14 years ago

Issue 2488 has been merged into this issue.

Actions #7

Updated by skidau over 13 years ago

Has this issue been fixed in the latest revision (r7190)?

Actions #8

Updated by kolano over 13 years ago

As that change seemed related to the shut-down of the video plug-in rather than which output device it's rendering to I wouldn't think so.

Actions #9

Updated by skidau over 13 years ago

Does this issue still occur? Has it been fixed since the time this issue has been raised?

Actions #10

Updated by MofoMan2000 over 13 years ago

I very very highly doubt those changes fixed it. Can't test though, since OGL backend was broken in r7195, and I can't test DX11 since I'm stuck on WinXP.

DX9 still only seems to want to go to fullscreen on the primary monitor no matter what you pick in the "Display" box.

Also, again there needs to be a way to tell one monitor from another in that dialog, I only see two "NVIDIA GeForce 8800 GT" entries in there. Which is which monitor?

Actions #11

Updated by geestarraw over 13 years ago

Hi!
The problem still exists (just tested revision r7490). I have an ATi Radeon x4870 with two HDMI ports and if selecting the second display adapter in Dolphin the game is still running on the primary monitor.

The problem also exists in the official version 2.0 and at least back to revision r6099 (the first revision I tested). I tried myself last year to do a quick hack fix of the source code forcing Dolphin to use the secondary adapter but it didn't work (don't remember if it still displayed on the primary or crashed).

DirectX11 plugin itself is incorrect and is only displaying one adapter instead of two. I guess that if anyone is able to display Dolpin on their secondary monitor they must be using two graphic cards.

Actions #12

Updated by NeoBrainX over 13 years ago

Issue 4518 has been merged into this issue.

Actions #13

Updated by imantsdaigins almost 13 years ago

I found if You open (move) a Dolphin in secondary screen and maximize Dolphin window in screen then start game in full screen mode, game will stay in secondary screen, only You need to set game resolution in same size as primary monitor.

Actions #14

Updated by skidau almost 13 years ago

Issue 5180 has been merged into this issue.

Actions #15

Updated by NeoBrainX about 12 years ago

For reference, Windows should use something like EnumDisplayDevices or EnumDisplayMonitors to implement this properly. No idea about X11/OS X, but they probably support similar things.

Actions #16

Updated by NeoBrainX about 12 years ago

Should be a simple fix anyway, just needs to add a new iMonitorIndex member in VideoConfig and the code in VideoConfigDiag.cpp needs to be fixed for each platform. Patches welcome.

Actions #17

Updated by NeoBrainX about 12 years ago

Issue 5646 has been merged into this issue.

Actions #18

Updated by NeoBrainX about 12 years ago

Issue 5646 has been merged into this issue.

Actions #19

Updated by iluck.org about 12 years ago

DX9, DX11, OPENGL and the SOFTWARE RENDERER can satisfy this desire with "Issue 5646" in MS-WINDOWS.

I tried to add a similar [Select Display] options, But I found that this is not a good way.

If you have this [Select Display] and Select it, when you enjoy the game in the second monitor, exit the the Dolphin program from the first display. And then shut down PC and TV to go to sleep, or other things.

Soon, you go back to the computer (First Display) , continue your game, you find that you can not use your TV, this may be because your children watch TV or your wife learning to cook or TV is not turn-on and other. But now the game screen is displayed in the second display. You have to exit the Dolphin program, unSelect the [Select Display] options to re-enter the game.

Of course, this is just a small problem, However, this problem does exist.

So I abandoned this method, I want another:
When the the found second display, and full-screen games,Pop up a dialog box asking if you use the Second Display into the game, but every time I see this asks too annoying. So I abandoned this method too.

Finally, I suddenly thought of the beautiful moments that I play a movie full screen in the second monitor.

The program will play movies in current display with full-screen mode, the only thing you need to do things is drag and drop to the second monitor.

Final, "Issue 5646" is POSTED.

I do not have X11 and OS X environment test, sorry.

Sorry my English.

Actions #20

Updated by NeoBrainX about 12 years ago

Issue 5646 has been merged into this issue.

Actions #21

Updated by iluck.org about 12 years ago

diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp
index d24bd2f..6641130 100644
--- a/Source/Core/DolphinWX/Src/FrameTools.cpp
+++ b/Source/Core/DolphinWX/Src/FrameTools.cpp
@@ -75,6 +75,7 @@ Core::GetWindowHandle().
#include "TASInputDlg.h"

#include <wx/datetime.h> // wxWidgets
+#include <wx/display.h>

// Resources
@@ -923,8 +924,20 @@ void CFrame::StartGame(const std::string& filename)
}
else
{

  •   wxPoint position(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowXPos,
    
  •   		SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowYPos);
    
  •   //wxPoint position(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowXPos,
    
  •   //		SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowYPos);
    
  •   //Centered on the current Display
    
  •   POINT pt;
    
  •   GetCursorPos(&pt);
    
  •   int iDisplay=wxDisplay::GetFromPoint( wxPoint(pt.x, pt.y) );
    
  •   wxDisplay d(iDisplay);
    
  •   wxRect r=d.GetGeometry();
    
  •   wxPoint position((r.width-SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth)/2+r.x,
    
  •   	(r.height-SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight)/2+r.y);
    

#ifdef APPLE
// On OS X, the render window's title bar is not visible,
// and the window therefore not easily moved, when the

diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp
index 6b0e7b7..dc96f23 100644
--- a/Source/Core/DolphinWX/Src/Frame.cpp
+++ b/Source/Core/DolphinWX/Src/Frame.cpp
@@ -48,6 +48,7 @@
#include "VideoBackendBase.h"

#include <wx/datetime.h> // wxWidgets
+#include <wx/display.h>

// Resources

@@ -1044,7 +1045,10 @@ void CFrame::OnMouse(wxMouseEvent& event)

void CFrame::DoFullscreen(bool bF)
{

  • ToggleDisplayMode(bF);
  • POINT pt;

  • GetCursorPos(&pt);

  • if((wxDisplay::GetFromPoint(wxPoint(pt.x, pt.y)))==0)//If this is the primary display monitor.

  •   ToggleDisplayMode(bF);
    

    m_RenderFrame->ShowFullScreen(bF, wxFULLSCREEN_ALL);
    if (SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain)

diff --git a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp
index ff3f68a..7b9fa56 100644
--- a/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp
+++ b/Source/Plugins/Plugin_VideoDX9/Src/D3DBase.cpp
@@ -21,6 +21,7 @@
#include "XFStructs.h"
#include "StringUtil.h"
#include "VideoCommon.h"
+#include "OnScreenDisplay.h"

D3DXSAVESURFACETOFILEATYPE PD3DXSaveSurfaceToFileA = NULL;
D3DXSAVETEXTURETOFILEATYPE PD3DXSaveTextureToFileA = NULL;
@@ -207,6 +208,18 @@ void InitPP(int adapter, int f, int aa_mode, D3DPRESENT_PARAMETERS *pp)
GetClientRect(hWnd, &client);
xres = pp->BackBufferWidth = client.right - client.left;
yres = pp->BackBufferHeight = client.bottom - client.top;
+

  •   //Add here: Show Current Screen resolution
    
  •   char x[100]={0};
    
  •   char y[100]={0};
    
  •   char Cur_Res[100]="Current Screen resolution: ";
    
  •   _itoa(xres,x,10);
    
  •   _itoa(yres,y,10);
    
  •   strcat(Cur_Res,x);
    
  •   strcat(Cur_Res," x ");
    
  •   strcat(Cur_Res,y);
    
  •   OSD::AddMessage(Cur_Res , 6000);
    
  •   //End
    
    }
    pp->SwapEffect = D3DSWAPEFFECT_DISCARD;
    pp->PresentationInterval = g_Config.bVSync ? D3DPRESENT_INTERVAL_DEFAULT : D3DPRESENT_INTERVAL_IMMEDIATE;
Actions #22

Updated by iluck.org about 12 years ago

FrameTools.cpp
Set the game window which running full screen as well as non full screen game in the center of the current display, no matter the primary display monitor or extended display monitor.

Frame.cpp
Verdict the Dolphin window shows on the primary display monitor or extended display monitor. There is no change of resolution when the game window show on the extended display.

Actions #23

Updated by jhinchcy almost 12 years ago

I dont know if this helps someone but I can across this site while looking for the same answer which was how do you get the dolphin emulator window to open on the secondary screen in full screen mode. I was able to go through and figure out a solution myself for a windows 7 setup. First you will need the software Ultramon which handles dual monitor setups adding extra options windows doesnt offer. Second right click the ultramon icon located in the task bar and click display settings at the top. This should be slightly different than the resolution settings windows offers by showing you the X and Y points of each screen. Click the secondary monitor and copy the numbers for X and Y and close out. Go to the root of your dolphin directory and open User\Config folders and edit the config file titled Dolphin.ini. You can open it in notepad to edit. Look for the lines

RenderWindowXPos =
RenderWindowYPos =

The lines are near the bottom located under the category [Display]. Replace the numbers of those 2 lines with the numbers you took down for X and Y earlier, save the file and close. Reopen dolphin and now it should start on the secondary monitor like mine did. If anyone knows a simpler way of getting the X and Y positions without using Ultramon please provide that info, I did not see a way through windows but did not look very much either.

I know some people dont understand what the big deal of needing this to open on a second screen but some setups may call for that. I use xbmc and control that and everything it handles entirely on my second monitor, if something opens on the first monitor it doesnt work correctly for me.

I hope this helps someone.

Actions #24

Updated by iluck.org almost 12 years ago

You can try to patch code, very practical.

Actions #25

Updated by rachelbryk over 10 years ago

  • Status changed from Accepted to Fixed

This was fixed forever ago.

Actions

Also available in: Atom PDF