Emulator Issues #12870
openNetplay: Local default fallback region affects autodetected region for homebrew.
0%
Description
Game Name?
Any homebrew or other software that we can't autodetect a region for.
What's the problem? Describe what went wrong.
If the host's and client's autodetected region disagree, various region-dependent settings get initialized differently, which is not conducive to a synced game experience.
What steps will reproduce the problem?
The Host should have the fallback region on PAL and have PAL60 disabled, the Client should have the fallback region on NTSC. Open a netplay session and start. Observe an immediate desync because the host starts in 50Hz but the client in 60Hz.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes, 5.0-16183
Someone on Discord tipped me off about this (I think they were using some Brawl mod that has a custom boot homebrew), and sure enough, even though we sync the fallback region this situation breaks. So I started digging.
The offender seems to be here:
https://github.com/dolphin-emu/dolphin/blob/379de5de15dbacb26ba95335c6033bc6e673570f/Source/Core/Core/BootManager.cpp#L64-L65
https://github.com/dolphin-emu/dolphin/blob/379de5de15dbacb26ba95335c6033bc6e673570f/Source/Core/Core/ConfigManager.cpp#L377-L378
https://github.com/dolphin-emu/dolphin/blob/379de5de15dbacb26ba95335c6033bc6e673570f/Source/Core/Core/BootManager.cpp#L87-L92
The call to SetPathsAndGameMetadata()
sets the current game region according to the fallback if it can't detect what the game is, but the netplay settings only get applied after that happens. This should be fixable by just moving some lines around, I think.
Updated by Techjar over 2 years ago
Ah, I guess we should sync the fallback region.
Updated by Techjar over 2 years ago
Oh wait, my bad, I overlooked some parts of your report. Yeah, probably an easy fix by just changing the order of some code.