remove obsolete ICoreFileProvider.PathSubfile(), and instead pass in the neccessary base path the the bsnes core that needs it
This commit is contained in:
parent
b2066d9a73
commit
e655ad3abd
|
@ -17,11 +17,6 @@ namespace BizHawk.Client.Common
|
||||||
_showWarning = showWarning;
|
_showWarning = showWarning;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string PathSubfile(string fname)
|
|
||||||
{
|
|
||||||
return Path.Combine(SubfileDirectory ?? "", fname);
|
|
||||||
}
|
|
||||||
|
|
||||||
public string DllPath()
|
public string DllPath()
|
||||||
{
|
{
|
||||||
return Path.Combine(PathManager.GetExeDirectoryAbsolute(), "dll");
|
return Path.Combine(PathManager.GetExeDirectoryAbsolute(), "dll");
|
||||||
|
|
|
@ -874,7 +874,7 @@ namespace BizHawk.Client.Common
|
||||||
game = rom.GameInfo;
|
game = rom.GameInfo;
|
||||||
game.System = "SNES";
|
game.System = "SNES";
|
||||||
|
|
||||||
var snes = new LibsnesCore(game, romData, xmlData, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
var snes = new LibsnesCore(game, romData, xmlData, nextComm.CoreFileProvider.SubfileDirectory, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
||||||
nextEmulator = snes;
|
nextEmulator = snes;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
@ -1000,7 +1000,7 @@ namespace BizHawk.Client.Common
|
||||||
nextComm.CoreFileProvider.SubfileDirectory = Path.GetDirectoryName(path.Replace("|", "")); // Dirty hack to get around archive filenames (since we are just getting the directory path, it is safe to mangle the filename
|
nextComm.CoreFileProvider.SubfileDirectory = Path.GetDirectoryName(path.Replace("|", "")); // Dirty hack to get around archive filenames (since we are just getting the directory path, it is safe to mangle the filename
|
||||||
var romData = isXml ? null : rom.FileData;
|
var romData = isXml ? null : rom.FileData;
|
||||||
var xmlData = isXml ? rom.FileData : null;
|
var xmlData = isXml ? rom.FileData : null;
|
||||||
var snes = new LibsnesCore(game, romData, xmlData, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
var snes = new LibsnesCore(game, romData, xmlData, nextComm.CoreFileProvider.SubfileDirectory, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
||||||
nextEmulator = snes;
|
nextEmulator = snes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1060,7 +1060,7 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
game.System = "SNES";
|
game.System = "SNES";
|
||||||
game.AddOption("SGB");
|
game.AddOption("SGB");
|
||||||
var snes = new LibsnesCore(game, rom.FileData, null, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
var snes = new LibsnesCore(game, rom.FileData, null, null, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
||||||
nextEmulator = snes;
|
nextEmulator = snes;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1089,7 +1089,7 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
game.System = "SNES";
|
game.System = "SNES";
|
||||||
game.AddOption("SGB");
|
game.AddOption("SGB");
|
||||||
var snes = new LibsnesCore(game, rom.FileData, null, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
var snes = new LibsnesCore(game, rom.FileData, null, null, nextComm, GetCoreSettings<LibsnesCore>(), GetCoreSyncSettings<LibsnesCore>());
|
||||||
nextEmulator = snes;
|
nextEmulator = snes;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -9,12 +9,6 @@ namespace BizHawk.Emulation.Common
|
||||||
{
|
{
|
||||||
string SubfileDirectory { get; set; }
|
string SubfileDirectory { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Produces a path to the requested file, expected to be parallel to the running rom. for example: cue+bin files or SFC+PCM (MSU-1 games)
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete]
|
|
||||||
string PathSubfile(string fname);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// produces a path that contains emulation related DLL and exe files
|
/// produces a path that contains emulation related DLL and exe files
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -29,8 +29,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
public unsafe partial class LibsnesCore : IEmulator, IVideoProvider, ISaveRam, IStatable, IInputPollable, IRegionable, ICodeDataLogger,
|
public unsafe partial class LibsnesCore : IEmulator, IVideoProvider, ISaveRam, IStatable, IInputPollable, IRegionable, ICodeDataLogger,
|
||||||
IDebuggable, ISettable<LibsnesCore.SnesSettings, LibsnesCore.SnesSyncSettings>
|
IDebuggable, ISettable<LibsnesCore.SnesSettings, LibsnesCore.SnesSyncSettings>
|
||||||
{
|
{
|
||||||
public LibsnesCore(GameInfo game, byte[] romData, byte[] xmlData, CoreComm comm, object settings, object syncSettings)
|
public LibsnesCore(GameInfo game, byte[] romData, byte[] xmlData, string baseRomPath, CoreComm comm, object settings, object syncSettings)
|
||||||
{
|
{
|
||||||
|
_baseRomPath = baseRomPath;
|
||||||
var ser = new BasicServiceProvider(this);
|
var ser = new BasicServiceProvider(this);
|
||||||
ServiceProvider = ser;
|
ServiceProvider = ser;
|
||||||
|
|
||||||
|
@ -79,10 +80,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
|
|
||||||
Api.QUERY_set_path_request(snes_path_request);
|
Api.QUERY_set_path_request(snes_path_request);
|
||||||
|
|
||||||
_scanlineStartCb = new LibsnesApi.snes_scanlineStart_t(snes_scanlineStart);
|
_scanlineStartCb = snes_scanlineStart;
|
||||||
_tracecb = new LibsnesApi.snes_trace_t(snes_trace);
|
_tracecb = snes_trace;
|
||||||
|
|
||||||
_soundcb = new LibsnesApi.snes_audio_sample_t(snes_audio_sample);
|
_soundcb = snes_audio_sample;
|
||||||
|
|
||||||
// start up audio resampler
|
// start up audio resampler
|
||||||
InitAudio();
|
InitAudio();
|
||||||
|
@ -102,7 +103,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
SystemId = "SNES";
|
SystemId = "SNES";
|
||||||
ser.Register<IBoardInfo>(new SGBBoardInfo());
|
ser.Register<IBoardInfo>(new SGBBoardInfo());
|
||||||
|
|
||||||
_currLoadParams = new LoadParams()
|
_currLoadParams = new LoadParams
|
||||||
{
|
{
|
||||||
type = LoadParamType.SuperGameBoy,
|
type = LoadParamType.SuperGameBoy,
|
||||||
rom_xml = null,
|
rom_xml = null,
|
||||||
|
@ -128,7 +129,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
// so, we have to do that here and pass it in as the romData :/
|
// so, we have to do that here and pass it in as the romData :/
|
||||||
if (_romxml["cartridge"]?["rom"] != null)
|
if (_romxml["cartridge"]?["rom"] != null)
|
||||||
{
|
{
|
||||||
romData = File.ReadAllBytes(CoreComm.CoreFileProvider.PathSubfile(_romxml["cartridge"]["rom"].Attributes["name"].Value));
|
romData = File.ReadAllBytes(PathSubfile(_romxml["cartridge"]["rom"].Attributes["name"].Value));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -182,6 +183,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
RefreshPalette();
|
RefreshPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly string _baseRomPath = "";
|
||||||
|
|
||||||
|
private string PathSubfile(string fname) => Path.Combine(_baseRomPath, fname);
|
||||||
|
|
||||||
private readonly GameInfo _game;
|
private readonly GameInfo _game;
|
||||||
private readonly LibsnesControllerDeck _controllerDeck;
|
private readonly LibsnesControllerDeck _controllerDeck;
|
||||||
private readonly ITraceable _tracer;
|
private readonly ITraceable _tracer;
|
||||||
|
@ -255,7 +260,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
var msu1 = _romxml["cartridge"]["msu1"];
|
var msu1 = _romxml["cartridge"]["msu1"];
|
||||||
if (isMsu1Rom && msu1["rom"]?.Attributes["name"] != null)
|
if (isMsu1Rom && msu1["rom"]?.Attributes["name"] != null)
|
||||||
{
|
{
|
||||||
return CoreComm.CoreFileProvider.PathSubfile(msu1["rom"].Attributes["name"].Value);
|
return PathSubfile(msu1["rom"].Attributes["name"].Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMsu1Pcm)
|
if (isMsu1Pcm)
|
||||||
|
@ -269,7 +274,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
{
|
{
|
||||||
if (child.Name == "track" && child.Attributes["number"].Value == wantsTrackString)
|
if (child.Name == "track" && child.Attributes["number"].Value == wantsTrackString)
|
||||||
{
|
{
|
||||||
return CoreComm.CoreFileProvider.PathSubfile(child.Attributes["name"].Value);
|
return PathSubfile(child.Attributes["name"].Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,6 +230,7 @@
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bools/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Bools/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=bootable/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=bootable/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=bootstart/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=bootstart/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=bootup/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=botting/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=botting/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Boyee/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Boyee/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=bsnes/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=bsnes/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
Loading…
Reference in New Issue