diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 6d1289278f..40d40b773d 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -407,11 +407,11 @@ namespace BizHawk.MultiClient target.SMS_ShowBG = Global.Config.SMSDispBG; target.SMS_ShowOBJ = Global.Config.SMSDispOBJ; - target.PSX_FirmwaresPath = Global.Config.FirmwaresPath; // PathManager.MakeAbsolutePath(Global.Config.PathPSXFirmwares, "PSX"); + target.PSX_FirmwaresPath = PathManager.MakeAbsolutePath(Global.Config.FirmwaresPath, ""); // PathManager.MakeAbsolutePath(Global.Config.PathPSXFirmwares, "PSX"); - target.C64_FirmwaresPath = Global.Config.FirmwaresPath; // PathManager.MakeAbsolutePath(Global.Config.PathC64Firmwares, "C64"); + target.C64_FirmwaresPath = PathManager.MakeAbsolutePath(Global.Config.FirmwaresPath, ""); // PathManager.MakeAbsolutePath(Global.Config.PathC64Firmwares, "C64"); - target.SNES_FirmwaresPath = Global.Config.FirmwaresPath; // PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES"); + target.SNES_FirmwaresPath = PathManager.MakeAbsolutePath(Global.Config.FirmwaresPath, ""); // PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES"); target.SNES_ShowBG1_0 = Global.Config.SNES_ShowBG1_0; target.SNES_ShowBG1_1 = Global.Config.SNES_ShowBG1_1; target.SNES_ShowBG2_0 = Global.Config.SNES_ShowBG2_0; @@ -1885,7 +1885,7 @@ namespace BizHawk.MultiClient case "PCE": case "PCECD": { - string biosPath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenamePCEBios); //PathManager.MakeAbsolutePath(Global.Config.PathPCEBios, "PCE"); + string biosPath = PathManager.StandardFirmwareName(Global.Config.FilenamePCEBios); //PathManager.MakeAbsolutePath(Global.Config.PathPCEBios, "PCE"); if (File.Exists(biosPath) == false) { MessageBox.Show("PCE-CD System Card not found. Please check the BIOS path in Config->Paths->PC Engine."); @@ -1972,7 +1972,7 @@ namespace BizHawk.MultiClient break; case "NES": { - string biosPath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameFDSBios); + string biosPath = PathManager.StandardFirmwareName(Global.Config.FilenameFDSBios); byte[] bios = null; if (File.Exists(biosPath)) { @@ -2045,7 +2045,7 @@ namespace BizHawk.MultiClient else { // todo: get these bioses into a gamedb?? then we could demand different filenames for different regions? - string sgbromPath = Path.Combine(Global.Config.FirmwaresPath, "sgb.sfc"); //Path.Combine(PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES"), "sgb.sfc"); + string sgbromPath = PathManager.StandardFirmwareName("sgb.sfc"); //Path.Combine(PathManager.MakeAbsolutePath(Global.Config.PathSNESFirmwares, "SNES"), "sgb.sfc"); byte[] sgbrom = null; try { @@ -2081,7 +2081,7 @@ namespace BizHawk.MultiClient } break; case "Coleco": - string colbiosPath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameCOLBios); + string colbiosPath = PathManager.StandardFirmwareName(Global.Config.FilenameCOLBios); FileInfo colfile = new FileInfo(colbiosPath); if (!colfile.Exists) { @@ -2097,11 +2097,11 @@ namespace BizHawk.MultiClient case "INTV": { Intellivision intv = new Intellivision(nextComm, game, rom.RomData); - string eromPath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameINTVEROM); + string eromPath = PathManager.StandardFirmwareName(Global.Config.FilenameINTVEROM); if (!File.Exists(eromPath)) throw new InvalidOperationException("Specified EROM path does not exist:\n\n" + eromPath); intv.LoadExecutiveRom(eromPath); - string gromPath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameINTVGROM); + string gromPath = PathManager.StandardFirmwareName(Global.Config.FilenameINTVGROM); if (!File.Exists(gromPath)) throw new InvalidOperationException("Specified GROM path does not exist:\n\n" + gromPath); intv.LoadGraphicsRom(gromPath); @@ -2109,9 +2109,9 @@ namespace BizHawk.MultiClient } break; case "A78": - string ntsc_biospath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameA78NTSCBios); - string pal_biospath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameA78PALBios); - string hsbiospath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameA78HSCBios); + string ntsc_biospath = PathManager.StandardFirmwareName(Global.Config.FilenameA78NTSCBios); + string pal_biospath = PathManager.StandardFirmwareName(Global.Config.FilenameA78PALBios); + string hsbiospath = PathManager.StandardFirmwareName(Global.Config.FilenameA78HSCBios); FileInfo ntscfile = new FileInfo(ntsc_biospath); FileInfo palfile = new FileInfo(pal_biospath); @@ -2162,7 +2162,7 @@ namespace BizHawk.MultiClient case "GBA": if (INTERIM) { - string gbabiospath = Path.Combine(Global.Config.FirmwaresPath, Global.Config.FilenameGBABIOS); + string gbabiospath = PathManager.StandardFirmwareName(Global.Config.FilenameGBABIOS); byte[] gbabios = null; if (File.Exists(gbabiospath)) diff --git a/BizHawk.MultiClient/config/PathManager.cs b/BizHawk.MultiClient/config/PathManager.cs index 1dd7e08c3a..ec582585c8 100644 --- a/BizHawk.MultiClient/config/PathManager.cs +++ b/BizHawk.MultiClient/config/PathManager.cs @@ -108,6 +108,11 @@ namespace BizHawk.MultiClient } } + public static string StandardFirmwareName(string name) + { + return Path.Combine(MakeAbsolutePath(Global.Config.FirmwaresPath, ""), name); + } + public static string MakeAbsolutePath(string path, string system) { //This function translates relative path and special identifiers in absolute paths