diff --git a/src/BizHawk.Client.Common/LoadRomArgs.cs b/src/BizHawk.Client.Common/LoadRomArgs.cs index d93763a5f5..e68a1356cc 100644 --- a/src/BizHawk.Client.Common/LoadRomArgs.cs +++ b/src/BizHawk.Client.Common/LoadRomArgs.cs @@ -2,5 +2,6 @@ namespace BizHawk.Client.Common { public sealed record class LoadRomArgs( IOpenAdvanced OpenAdvanced, + string/*?*/ ForcedSysID = null, bool? Deterministic = null); } diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 998f524eb2..033d430751 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -1411,7 +1411,9 @@ namespace BizHawk.Client.EmuHawk else { if (CurrentlyOpenRomArgs == null) return true; - return LoadRom(CurrentlyOpenRomArgs.OpenAdvanced.SimplePath, CurrentlyOpenRomArgs); + return LoadRom( + CurrentlyOpenRomArgs.OpenAdvanced.SimplePath, + CurrentlyOpenRomArgs with { ForcedSysID = Emulator.SystemId }); } } @@ -3766,7 +3768,7 @@ namespace BizHawk.Client.EmuHawk var loader = new RomLoader(Config, this) { ChooseArchive = LoadArchiveChooser, - ChoosePlatform = ChoosePlatformForRom, + ChoosePlatform = romGame => args.ForcedSysID ?? ChoosePlatformForRom(romGame), Deterministic = deterministic, MessageCallback = AddOnScreenMessage, OpenAdvanced = args.OpenAdvanced,