using System; namespace BizHawk.Emulation.Common { /// /// Defines the means by which firmware, bios and other necessary files are provided to a core that needs them /// public interface ICoreFileProvider { /// /// 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) /// [Obsolete] string PathSubfile(string fname); /// /// produces a path that contains emulation related DLL and exe files /// string DllPath(); /// /// produces a path that contains saveram... because libretro cores need it /// string GetRetroSaveRAMDirectory(); /// /// produces a path for use as a libretro system path (different for each core) /// string GetRetroSystemPath(); string GetGameBasePath(); #region EmuLoadHelper api /// /// get path to a firmware /// /// The system id /// The firmware id /// if true, result is guaranteed to be valid; else null is possible if not found /// message to show if fail to get [Obsolete] string GetFirmwarePath(string sysId, string firmwareId, bool required, string msg = null); /// /// Get a firmware as a byte array /// /// the core systemID /// the firmware id /// if true, result is guaranteed to be valid; else null is possible if not found /// message to show if fail to get byte[] GetFirmware(string sysId, string firmwareId, bool required, string msg = null); byte[] GetFirmwareWithGameInfo(string sysId, string firmwareId, bool required, out GameInfo gi, string msg = null); #endregion } }