diff --git a/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs b/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs
index 47320ea4b7..b8a114acfb 100644
--- a/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs
+++ b/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs
@@ -140,7 +140,7 @@ namespace BizHawk.Client.Common
suppressOSD: false);
public bool OpenRom(string path)
- => _mainForm.LoadRom(path, new LoadRomArgs(new OpenAdvanced_OpenRom(path)));
+ => _mainForm.LoadRom(new LoadRomArgs(new OpenAdvanced_OpenRom(path)));
public void Pause() => _mainForm.PauseEmulator();
diff --git a/src/BizHawk.Client.Common/IMainFormForApi.cs b/src/BizHawk.Client.Common/IMainFormForApi.cs
index e3354b3a7f..16b616ac56 100644
--- a/src/BizHawk.Client.Common/IMainFormForApi.cs
+++ b/src/BizHawk.Client.Common/IMainFormForApi.cs
@@ -72,7 +72,7 @@ namespace BizHawk.Client.Common
bool LoadQuickSave(int slot, bool suppressOSD = false);
/// only referenced from EmuClientApi
- bool LoadRom(string path, LoadRomArgs args);
+ bool LoadRom(LoadRomArgs args);
bool LoadState(string path, string userFriendlyStateName, bool suppressOSD = false);
diff --git a/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs b/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs
index d2ba2bd5ed..69bed8071f 100644
--- a/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs
+++ b/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs
@@ -63,7 +63,7 @@ namespace BizHawk.Client.EmuHawk
bool LoadQuickSave(int slot, bool suppressOSD = false);
/// only referenced from
- bool LoadRom(string path, LoadRomArgs args);
+ bool LoadRom(LoadRomArgs args);
/// only referenced from
BitmapBuffer MakeScreenshotImage();
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs b/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs
index 8ff033e2dd..0c15af22b4 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.FileLoader.cs
@@ -97,7 +97,7 @@ namespace BizHawk.Client.EmuHawk
}
private bool LoadRom(string filename, string archive = null)
- => LoadRom(filename, new LoadRomArgs(new OpenAdvanced_OpenRom(filename)));
+ => LoadRom(new LoadRomArgs(new OpenAdvanced_OpenRom(filename)));
private bool LoadStateFile(string filename, string archive = null)
=> LoadState(path: filename, userFriendlyStateName: Path.GetFileName(filename));
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs
index 24b393b9f5..26dedf47f7 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.cs
@@ -631,7 +631,7 @@ namespace BizHawk.Client.EmuHawk
// Commandline should always override auto-load
OpenAdvanced_OpenRom ioa = new(_argParser.cmdRom);
if (ioa is OpenAdvanced_OpenRom oaor) ioa = new(oaor.Path.MakeAbsolute()); // fixes #3224; should this be done for all the IOpenAdvanced types? --yoshi
- _ = LoadRom(ioa.SimplePath, new LoadRomArgs(ioa));
+ _ = LoadRom(new LoadRomArgs(ioa));
if (Game.IsNullInstance())
{
ShowMessageBox(owner: null, $"Failed to load {_argParser.cmdRom} specified on commandline");
@@ -1268,11 +1268,8 @@ namespace BizHawk.Client.EmuHawk
tool.RebootCore();
return true;
}
- else
- {
- if (CurrentlyOpenRomArgs == null) return true;
- return LoadRom(CurrentlyOpenRomArgs.OpenAdvanced.SimplePath, CurrentlyOpenRomArgs);
- }
+ if (CurrentlyOpenRomArgs is null) return true;
+ return LoadRom(CurrentlyOpenRomArgs);
}
public void PauseEmulator()
@@ -2078,13 +2075,12 @@ namespace BizHawk.Client.EmuHawk
var ioa = OpenAdvancedSerializer.ParseWithLegacy(rom);
// if(ioa is this or that) - for more complex behaviour
- string romPath = ioa.SimplePath;
- if (!LoadRom(romPath, new LoadRomArgs(ioa), out var failureIsFromAskSave))
+ if (!LoadRom(new LoadRomArgs(ioa), out var failureIsFromAskSave))
{
if (failureIsFromAskSave) AddOnScreenMessage("ROM loading cancelled; a tool had unsaved changes");
- else if (ioa is OpenAdvanced_LibretroNoGame || File.Exists(romPath)) AddOnScreenMessage("ROM loading failed");
- else Config.RecentRoms.HandleLoadError(this, romPath, rom);
+ else if (ioa is OpenAdvanced_LibretroNoGame || File.Exists(ioa.SimplePath)) AddOnScreenMessage("ROM loading failed");
+ else Config.RecentRoms.HandleLoadError(this, ioa.SimplePath, rom);
}
}
@@ -2314,8 +2310,7 @@ namespace BizHawk.Client.EmuHawk
filterIndex: ref _lastOpenRomFilter,
initDir: Config.PathEntries.RomAbsolutePath(Emulator.SystemId));
if (result is null) return;
- var filePath = new FileInfo(result).FullName;
- _ = LoadRom(filePath, new LoadRomArgs(new OpenAdvanced_OpenRom(filePath)));
+ _ = LoadRom(new LoadRomArgs(new OpenAdvanced_OpenRom(new FileInfo(result).FullName)));
}
private void CoreSyncSettings(object sender, RomLoader.SettingsLoadArgs e)
@@ -3538,9 +3533,7 @@ namespace BizHawk.Client.EmuHawk
private LoadRomArgs _currentLoadRomArgs;
private bool _isLoadingRom;
- public bool LoadRom(string path, LoadRomArgs args) => LoadRom(path, args, out _);
-
- public bool LoadRom(string path, LoadRomArgs args, out bool failureIsFromAskSave)
+ private bool LoadRom(string path, LoadRomArgs args, out bool failureIsFromAskSave)
{
if (!LoadRomInternal(path, args, out failureIsFromAskSave))
return false;
@@ -3555,6 +3548,15 @@ namespace BizHawk.Client.EmuHawk
return true;
}
+ private bool LoadRom(string path, LoadRomArgs args)
+ => LoadRom(path, args, out _);
+
+ private bool LoadRom(LoadRomArgs args, out bool failureIsFromAskSave)
+ => LoadRom(args.OpenAdvanced.SimplePath, args, out failureIsFromAskSave);
+
+ public bool LoadRom(LoadRomArgs args)
+ => LoadRom(args, out _);
+
// Still needs a good bit of refactoring
private bool LoadRomInternal(string path, LoadRomArgs args, out bool failureIsFromAskSave)
{
diff --git a/src/BizHawk.Client.EmuHawk/RetroAchievements/IMainFormForRetroAchievements.cs b/src/BizHawk.Client.EmuHawk/RetroAchievements/IMainFormForRetroAchievements.cs
index 373b78cd7c..347aaed93c 100644
--- a/src/BizHawk.Client.EmuHawk/RetroAchievements/IMainFormForRetroAchievements.cs
+++ b/src/BizHawk.Client.EmuHawk/RetroAchievements/IMainFormForRetroAchievements.cs
@@ -23,7 +23,7 @@ namespace BizHawk.Client.EmuHawk
SettingsAdapter GetSettingsAdapterForLoadedCoreUntyped();
- bool LoadRom(string path, LoadRomArgs args);
+ bool LoadRom(LoadRomArgs args);
void PauseEmulator();
diff --git a/src/BizHawk.Client.EmuHawk/RetroAchievements/RAIntegration.cs b/src/BizHawk.Client.EmuHawk/RetroAchievements/RAIntegration.cs
index cd11e62906..60cb08d4f1 100644
--- a/src/BizHawk.Client.EmuHawk/RetroAchievements/RAIntegration.cs
+++ b/src/BizHawk.Client.EmuHawk/RetroAchievements/RAIntegration.cs
@@ -142,7 +142,7 @@ namespace BizHawk.Client.EmuHawk
Marshal.Copy(name, 0, buffer, Math.Min(name.Length, 256));
};
_resetEmulator = () => _mainForm.RebootCore();
- _loadROM = path => _ = _mainForm.LoadRom(path, new LoadRomArgs(new OpenAdvanced_OpenRom(path)));
+ _loadROM = path => _ = _mainForm.LoadRom(new LoadRomArgs(new OpenAdvanced_OpenRom(path)));
RA.InstallSharedFunctionsExt(_isActive, _unpause, _pause, _rebuildMenu, _estimateTitle, _resetEmulator, _loadROM);
diff --git a/src/BizHawk.Client.EmuHawk/tools/MultiDiskBundler/MultiDiskBundler.cs b/src/BizHawk.Client.EmuHawk/tools/MultiDiskBundler/MultiDiskBundler.cs
index 8b0da9721e..aada903e9e 100644
--- a/src/BizHawk.Client.EmuHawk/tools/MultiDiskBundler/MultiDiskBundler.cs
+++ b/src/BizHawk.Client.EmuHawk/tools/MultiDiskBundler/MultiDiskBundler.cs
@@ -165,7 +165,7 @@ namespace BizHawk.Client.EmuHawk
DialogResult = DialogResult.OK;
Close();
- _ = MainForm.LoadRom(fileInfo.FullName, new LoadRomArgs(new OpenAdvanced_OpenRom(fileInfo.FullName)));
+ _ = MainForm.LoadRom(new LoadRomArgs(new OpenAdvanced_OpenRom(fileInfo.FullName)));
}
private void AddButton_Click(object sender, EventArgs e)