Emulator Issues #1673
closedDX9 Pluggin Switching to/from fullscreen closes dolphin
0%
Description
What steps will reproduce the problem?
- Start dolphin with DX9 video pluggin
- Start a game (I've tried Zelda Twilight Princess for gamecube)
- Press ESC key
What is the expected output? What do you see instead?
Dolphin closes.
What version of the product are you using? On what operating system?
Tried r4525 and r4588.
Please provide any additional information below.
It didn't happen on r4485
Updated by Anonymous about 15 years ago
- Status changed from New to Questionable
er, isn't this the behavior now?
Updated by luisr142004 about 15 years ago
closes the game or dolphin entirely? o_O, cuz if it's the game then it's normal :P
Updated by gstkein about 15 years ago
I think it closes dolphin entirely, as if one just killed the process. I'll verify it
once I go back home. I don't think that's the behavior it's supposed to have. How do
you switch from fullscreen to window with DX9 if not by pressing ESC?
Updated by wespipes69 about 15 years ago
I get crashing when leaving fullscreen in recent revisions (DX plugin). It needs to
go back to how it was...your in fullscreen, pressing ESC or alt+enter simply
switches to windowed, once windowed you can alt+enter to return to full. Pressing
ESC should not kill the entire emulator...or crash of course! :)Compare with OpenGl
and you'll see what I'm talking about. Being a fullscreen user, this is pretty
irratating.
Updated by gstkein about 15 years ago
It is the game wich closes when pressing ESC key, not dolphin, yet you can´t switch
from fullscreen to window or viceversa. And alt + enter doesn´t do that either.
Updated by luisr142004 about 15 years ago
- Status changed from Questionable to Accepted
wespipes69: yea i've noticed dolphin crash when closing the game (either it be
fullscreen or windowed), only happens when the dual-core option is enabled >_>
and well gstkein, you can use render to main for going fullscreen in the
meanwhile :P (till going fullscreen is fixed :))
Updated by gstkein about 15 years ago
I'll try that. I'm using dual core by the way. PS: Thanks for the tip.
Updated by Anonymous about 15 years ago
- Status changed from Accepted to Questionable
should be fixed now?
someone confirm please :)
Updated by gstkein about 15 years ago
Sorry, at r4652 it still happens. I have an ati radeon hd 4800 in case the info is
usefull.
Updated by wespipes69 about 15 years ago
Yep, very unstable still. Esc always crashes - Alt+enter usually does as well,
though if it doesn't, it kills the entire emu which should not be the case - opengl
just returns to windowed mode.
Updated by fjavier2k about 15 years ago
Tried with r4696. Dolphin still crashes after pressing ESC key with DX plugin. I have
an ati radeon hd 4850.
Updated by Migs351 about 15 years ago
I don't know how many times I can point out the fact that it's CODED to close the
emu, but here it is again.... look at issue 1470 ....
Look at the code of EmuWindow.cpp,(
http://code.google.com/p/dolphin-emu/source/browse/trunk/Source/Plugins/Plugin_VideoDX9/Src/EmuWindow.cpp
) from lines 60 to 80. Pressing escape does a SendMessage(m_hWnd, WM_CLOSE, 0, 0);
Pressing ALT + ENTER Does the following:
DestroyWindow(hWnd);
PostQuitMessage(0);
ExitProcess(0);
Updated by Migs351 about 15 years ago
BTW, my patch is very ugly, and doesn't work very well anymore with the latest
additions to EmuWindow. I created this a long time ago, this needs a real dev to
look at it and get it to work properly.
Updated by luisr142004 almost 15 years ago
Issue 1832 has been merged into this issue.
Updated by Migs351 almost 15 years ago
I decided to look at this again, and if you followed any of issue 1470 ... I
completely trashed that crappy patch and decided to go another route, much easier
mind you... and I got it to work from Windowed to Full (very lightly tested)
For the devs...
I simply created a ToggleFullscreen() in the EmuWindow class and removed the code I
specified above and replaced it with a "ToggleFullscreen();" and "return 0;"
void ToggleFullscreen()
{
if (m_hParent == NULL)
{
int w_temp = 640; // In case the resolution
int h_temp = 480; // isn't found in the config
if (g_ActiveConfig.bFullscreen)
{
// In Full Screen, going to Windowed
Renderer::Shutdown();
g_Config.bFullscreen = false;
ShowCursor(TRUE);
sscanf(g_Config.cInternalRes, "%dx%d", &w_temp, &h_temp);
SetSize(w_temp, h_temp);
Renderer::Init();
Show();
}
else
{
// In Windowed, going to Full Screen
Renderer::Shutdown();
g_Config.bFullscreen = true;
ShowCursor(FALSE);
sscanf(g_Config.cFSResolution, "%dx%d", &w_temp, &h_temp);
SetSize(w_temp, h_temp);
Renderer::Init();
Show();
}
}
}
But for some reason doing this from Full to windowed is problematic... it complains
that it can't initialize the device, which happens when it can't do a dev->Create
properly... but I don't understand why... Everything in the above function is the
same in both if's aside from the fullscreen config setting changing and everything is
completely re-initialized (All textures, shaders, vertexmanager, all of that, and
both Renderer AND the D3D Device are getting a shutdown/re-create/re-init) by doing a
full renderer shutdown/init...
The emulation can start in either mode just fine... The only 2 differences from
Windowed to Fullscreen is the resolution and the true/false of fullscreen...
I'm boggled as to why it works going to Fullscreen but not going to windowed, I'm
missing something here... I'm guessing that the window size and/or resolution isn't
getting detected right when it polls the client window size and it's trying to create
the device in an invalid resolution or mode... But I'm going to play with it and see
if I can get it to work right...
Updated by sl1nk3.s almost 15 years ago
- Status changed from Questionable to Fixed
fixed in r4779, btw thanks Migs351 for taking a look at it :), we already had code to
do this in the OGL plugin tho, so it was easily ported to DX.