diff --git a/BizHawk.Client.Common/CoreFileProvider.cs b/BizHawk.Client.Common/CoreFileProvider.cs index 1f1386174f..78e9e09a78 100644 --- a/BizHawk.Client.Common/CoreFileProvider.cs +++ b/BizHawk.Client.Common/CoreFileProvider.cs @@ -54,7 +54,7 @@ namespace BizHawk.Client.Common private byte[] GetFirmwareWithPath(string sysId, string firmwareId, bool required, string msg, out string path) { var firmwarePath = _firmwareManager.Request( - _pathEntries.FirmwaresPathFragment, + _pathEntries, _firmwareUserSpecifications, sysId, firmwareId); diff --git a/BizHawk.Client.Common/FirmwareManager.cs b/BizHawk.Client.Common/FirmwareManager.cs index 6673be321a..67151930d2 100644 --- a/BizHawk.Client.Common/FirmwareManager.cs +++ b/BizHawk.Client.Common/FirmwareManager.cs @@ -41,7 +41,7 @@ namespace BizHawk.Client.Common public string FirmwareId { get; set; } } - public ResolutionInfo Resolve(string firmwaresPath, IDictionary userSpecifications, FirmwareDatabase.FirmwareRecord record, bool forbidScan = false) + public ResolutionInfo Resolve(PathEntryCollection pathEntries, IDictionary userSpecifications, FirmwareDatabase.FirmwareRecord record, bool forbidScan = false) { // purpose of forbidScan: sometimes this is called from a loop in Scan(). we don't want to repeatedly DoScanAndResolve in that case, its already been done. bool first = true; @@ -55,7 +55,7 @@ namespace BizHawk.Client.Common { if (!forbidScan) { - DoScanAndResolve(firmwaresPath, userSpecifications); + DoScanAndResolve(pathEntries, userSpecifications); } first = false; @@ -66,9 +66,9 @@ namespace BizHawk.Client.Common } // Requests the specified firmware. tries really hard to scan and resolve as necessary - public string Request(string firmwaresPath, IDictionary userSpecifications, string sysId, string firmwareId) + public string Request(PathEntryCollection pathEntries, IDictionary userSpecifications, string sysId, string firmwareId) { - var resolved = Resolve(firmwaresPath, userSpecifications, FirmwareDatabase.LookupFirmwareRecord(sysId, firmwareId)); + var resolved = Resolve(pathEntries, userSpecifications, FirmwareDatabase.LookupFirmwareRecord(sysId, firmwareId)); if (resolved == null) { return null; @@ -138,7 +138,7 @@ namespace BizHawk.Client.Common return false; } - public void DoScanAndResolve(string firmwaresPath, IDictionary userSpecifications) + public void DoScanAndResolve(PathEntryCollection pathEntries, IDictionary userSpecifications) { // build a list of file sizes. Only those will be checked during scanning var sizes = new HashSet(); @@ -151,7 +151,7 @@ namespace BizHawk.Client.Common // build a list of files under the global firmwares path, and build a hash for each of them while we're at it var todo = new Queue(); - todo.Enqueue(new DirectoryInfo(Global.Config.PathEntries.AbsolutePathFor(firmwaresPath, null))); + todo.Enqueue(new DirectoryInfo(pathEntries.AbsolutePathFor(pathEntries.FirmwaresPathFragment, null))); while (todo.Count != 0) { diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index 2746bbe0fa..96bdb925cf 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -949,7 +949,7 @@ namespace BizHawk.Client.Common var ti83Bios = nextComm.CoreFileProvider.GetFirmware("TI83", "Rom", true); // TODO: make the ti-83 a proper firmware file - var ti83BiosPath = Global.FirmwareManager.Request(Global.Config.PathEntries.FirmwaresPathFragment, Global.Config.FirmwareUserSpecifications, "TI83", "Rom"); + var ti83BiosPath = Global.FirmwareManager.Request(Global.Config.PathEntries, Global.Config.FirmwareUserSpecifications, "TI83", "Rom"); using (var ti83AsHawkFile = new HawkFile(ti83BiosPath)) { var ti83BiosAsRom = new RomGame(ti83AsHawkFile); diff --git a/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs b/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs index f9eddaa201..35cbd55940 100644 --- a/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs +++ b/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs @@ -248,7 +248,7 @@ namespace BizHawk.Client.EmuHawk { lvFirmwares.BeginUpdate(); Manager.DoScanAndResolve( - _config.PathEntries.FirmwaresPathFragment, + _config.PathEntries, _config.FirmwareUserSpecifications); // for each type of firmware, try resolving and record the result @@ -256,7 +256,7 @@ namespace BizHawk.Client.EmuHawk { var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord; var ri = Manager.Resolve( - _config.PathEntries.FirmwaresPathFragment, + _config.PathEntries, _config.FirmwareUserSpecifications, fr, true); @@ -342,11 +342,11 @@ namespace BizHawk.Client.EmuHawk return; } - Manager.DoScanAndResolve(_config.PathEntries.FirmwaresPathFragment, _config.FirmwareUserSpecifications); + Manager.DoScanAndResolve(_config.PathEntries, _config.FirmwareUserSpecifications); foreach (var fr in FirmwareDatabase.FirmwareRecords) { - var ri = Manager.Resolve(_config.PathEntries.FirmwaresPathFragment, _config.FirmwareUserSpecifications, fr); + var ri = Manager.Resolve(_config.PathEntries, _config.FirmwareUserSpecifications, fr); if (ri?.KnownFirmwareFile == null) continue; if (ri.UserSpecified) continue;