Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mGBA application cannot be opened when using more than two monitors. #3381

Open
Daydeus opened this issue Dec 21, 2024 · 5 comments
Open

mGBA application cannot be opened when using more than two monitors. #3381

Daydeus opened this issue Dec 21, 2024 · 5 comments

Comments

@Daydeus
Copy link

Daydeus commented Dec 21, 2024

For the longest time, my home computer setup has been a laptop and an extra monitor using an HDMI. I recently used an HDMI splitter to add a second external monitor (for a total of three screens), and mGBA refuses to open when all monitors are in use. The emulator just will not start up if both monitors are plugged into the splitter.

If I unplug either one of the monitors and try to run mGBA, it boots up fine. If I unplug one monitor, open mGBA, and plug the monitor back in, mGBA continues to operate just fine. Closing the application and then trying to start it again does nothing. I thought perhaps this was an issue with my version of mGBA being older, but the problem persisted even after installing version 0.10.4

@Squall-Leonhart
Copy link

I've just had this tested with 3 and 4 displays active, where mgba opens without trouble.

This is likely a modelist problem introduced by the splitter.

Assumably, you've tested each of the displays on the splitter individually to rule our one of them having corrupt information, which would leave it to be caused by the splitter, what brand and model is the splitter, and is it a passive or active one?

A HDMI splitter becomes the EDID source(or repeater and clones one of the two displays attached), usually omitting modes not shared by both displays under best case scenario, the PC has no idea there are 2 displays beyond the splitter because HDMI doesn't have a concept of multiple display streams (unlike DisplayPort). As far as mgba and the PC are concerned, you should only have two monitors with the information presented over the splitter being consistent.

Outside of this best case, you get passive splitters that fight over which edid the system receives, often causing image corruption and drop outs if the two screens have differing timings and modelists.

open dxdiag and save the output, then look through it for the attached displays, does it say NoDeviceString (\\.\DISPLAY1?

@endrift
Copy link
Member

endrift commented Dec 22, 2024

I highly doubt the splitter is the issue. If it were, the OS would be far more angry than mGBA itself. I've gotten people report this before but have never gotten a satisfactory answer as to the cause.

Does mGBA show up on the task bar, just no window open? Please open mGBA with just one monitor, then plug in the second monitor to get the two-monitor setup while mGBA is running, and go to File > Report Bug. Attach the generated zip file to this bug report.

@Squall-Leonhart
Copy link

I highly doubt the splitter is the issue. If it were, the OS would be far more angry than mGBA itself. I've gotten people report this before but have never gotten a satisfactory answer as to the cause.

Not everything would be affected, it all depends on what device information is queried and from where
An example scenario that i have seen with bad splitters causes the below to be returned to 3DMark from what i assume was the windows monitor api.

"monitors" : [
    {
        "deviceId" : "NoDeviceID",
        "deviceKey" : "NoDeviceKey",
        "deviceString" : "NoDeviceString",
        "attachedToDesktop" : true,
        "primaryDisplay" : true,
        "deviceName" : "\\.\DISPLAY1",
        "width" : 1920,
        "height" : 1080
   }
]

Which would then go on to throwing EnumDisplayDevicesA() Failed when trying to run
Nothing else was failing to start in this case, not even other older 3dmark tests included in the full package, just mentioning this in case theres something that could be changed in mgba based on this information, and might go towards fixing the OP's report.

@Daydeus
Copy link
Author

Daydeus commented Dec 22, 2024

Thank you Squall-Leonhart, I was able to confirm the issue was the splitter after all. While dxdiag did not have NoDeviceString (\\.\DISPLAY1 in the output, playing with the splitter more thoroughly I found it was one specific port on it that is the issue. If that port has either external monitor plugged into it, the issue occurs.

I can live with unplugging a monitor for a moment to open mGBA. In case others have a similar issue in the future, the brand of splitter is StarTech.com's USB 3.0 to Dual HDMI Adapter, Product ID: USB32HD2.

@Squall-Leonhart
Copy link

This is actually a usb video adapter rather than a splitter, which Startechs includes a driver for on a disk
unfortunately application and display freezes are a reported issue with that driver, and also the Windows native USB Video driver after November 2023 on Windows 11 (But not 10 apparently?)

There is a newer driver release provided by StarTech @ https://sgcdn.startech.com/005329/media/sets/Trigger_Series_Drivers/%5BTrigger%5D%20USB%20Display%20Adapter.zip (source: https://community.startech.com/t/startech-usb32hd2-multiple-monitors-freeze-intermittently/926/22)

Give those a try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants