Project

General

Profile

Actions

Emulator Issues #4602

closed

r7425 leaves the renderer window open (in a weird way) whenever initializing DSP-LLE or the video backend fails.

Added by DimitriPilot3 almost 13 years ago.

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

0%

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

Description

What steps will reproduce the problem?

  1. If the Sys\GC directory already contains the dumped DSP files, make at least one of them unavailable to Dolphin (for example by renaming or moving dsp_rom.bin);
  2. Run Dolphin;
  3. Press the DSP button under the toolbar, and choose one of the two "DSP LLE" engines instead of HLE;
    (4. In this example, I made sure that "Render to Main Window" is unticked in the GFX config window. When ticked, the game list won't appear again unless I go to File->Refresh List (but then it still doesn't accept input from the user); and the "Play" button will be greyed out. Attempting to re-run a game through File->Open seems to fix everything except for the "Emu Thread already running" error.)
  4. Attempt to run any game. Ignore the DSP initialization errors; just pay attention to the renderer window.

What is the expected output? What do you see instead?
I expect the renderer window to be properly closed after failure. Instead, it isn't - its contents turn into grey.
On top of that, attempting to run any game causes Dolphin to spawn a second renderer window, to show "Emu Thread already running" then "Couldn't init the core." (even though the EmuThread has exited already as it was hidden from VS2010), and to destroy the second renderer window.

Dolphin version with the problem? Other Dolphin version without the
problem?
I can reproduce this using my own x86 build of r7598 (compiled and debugged using VS2010), and using Mamario's x86 builds of r7599, r7547, r7435, r7428, r7425.
On the other hand, this issue doesn't occur using Mamario's builds of r7328, r7421 and r7424. This issue is apparently caused by Billiard's r7425.

OS version and versions of tools/libraries used?
Windows 7 Ultimate x86

Please provide any additional information below.
r7425 has moved "error-prone" calls (DSPEmulator::Initialize and VideoBackend::Initialize) from Core::Init() to Core::EmuThread(). Something is either wrong or forgotten when one of the calls errors out.

Also:
{
CFrame::DoFullscreen(false);
// Destroy the renderer frame when not rendering to main
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain)
CFrame::m_RenderFrame->Destroy();
CFrame::m_RenderParent = NULL;

// Optionally
CFrame::UpdateGUI();

}
Should the above (found in lines 1091 and 929 in file FrameTools.cpp) be made/merged into a new function?

Actions

Also available in: Atom PDF