diff --git a/BizHawk.Emulation.Common/Interfaces/IEmulator.cs b/BizHawk.Emulation.Common/Interfaces/IEmulator.cs index 52f9ab9971..21f48d5f11 100644 --- a/BizHawk.Emulation.Common/Interfaces/IEmulator.cs +++ b/BizHawk.Emulation.Common/Interfaces/IEmulator.cs @@ -2,6 +2,11 @@ namespace BizHawk.Emulation.Common { + /// + /// This service defines a core as a core. It is the primary service + /// and the absolute minimum requirement to have a functional core in BizHawk + /// a client can not operate without this minimum requirement + /// public interface IEmulator : IEmulatorService, IDisposable { /// diff --git a/BizHawk.Emulation.Common/Interfaces/Services/ICodeDataLogger.cs b/BizHawk.Emulation.Common/Interfaces/Services/ICodeDataLogger.cs index 445f5d63d7..6fcd634156 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/ICodeDataLogger.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/ICodeDataLogger.cs @@ -3,7 +3,8 @@ namespace BizHawk.Emulation.Common { /// - /// This service manages the communication from the core to the Code/Data logging tool + /// This service manages the communication from the core to the Code/Data logging tool, + /// If available then the Code/Data logging tool will be exposed in the client /// public interface ICodeDataLogger : IEmulatorService { diff --git a/BizHawk.Emulation.Common/Interfaces/Services/IDebuggable.cs b/BizHawk.Emulation.Common/Interfaces/Services/IDebuggable.cs index 7ae28f0648..9b6ae95134 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/IDebuggable.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/IDebuggable.cs @@ -4,7 +4,7 @@ namespace BizHawk.Emulation.Common { /// /// This service manages debugging capabilities from the core to the client. Tools such as the debugger make use of this, as well as lua scripting - /// This service specifically maanges getting/setting cpu registers, managing breakpoints, and stepping through cpu instructions + /// This service specifically manages getting/setting cpu registers, managing breakpoints, and stepping through cpu instructions /// Providing a disassembly is managed by another service, these are aspects outside of the disassembler that are essential to debugging tools /// Tools like the debugger will gracefully degrade based on the availability of each component of this service, /// it is expected that any of these features will throw a NotImplementedException if not implemented, and the client will manage accordingly @@ -14,16 +14,16 @@ namespace BizHawk.Emulation.Common /// /// Returns a list of Cpu registers and their current state /// - /// IDictionary GetCpuFlagsAndRegisters(); /// /// Sets a given Cpu register to the given value /// - /// - /// void SetCpuRegister(string register, int value); + /// + /// A memory callback implementation that manages memory callback functionality + /// IMemoryCallbackSystem MemoryCallbacks { get; } /// diff --git a/BizHawk.Emulation.Common/Interfaces/Services/IDriveLight.cs b/BizHawk.Emulation.Common/Interfaces/Services/IDriveLight.cs index af89c15e6c..73d2d4c8b0 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/IDriveLight.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/IDriveLight.cs @@ -1,7 +1,8 @@ namespace BizHawk.Emulation.Common { /// - /// Specifies an interface for returning the state of a LED drive light such as on Disk and CD Drives + /// Specifies an interface for returning the state of a LED drive light such as on Disk and CD Drives, + /// If available the client will display a light that turns on and off based on the drive light status /// public interface IDriveLight : IEmulatorService { diff --git a/BizHawk.Emulation.Common/Interfaces/Services/ISettable.cs b/BizHawk.Emulation.Common/Interfaces/Services/ISettable.cs index c3eccb9157..ab56d42dc9 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/ISettable.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/ISettable.cs @@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Common /// If this service is available the client can provide UI for the user to manage these settings /// /// The Type of the object that represent regular settings (settings that can be changed during the lifespan of a core instance - /// The Type of the object that represents sync settings (settings that can not change during hte lifespan of the core and are required for movie sync + /// The Type of the object that represents sync settings (settings that can not change during the lifespan of the core and are required for movie sync public interface ISettable : IEmulatorService { // in addition to these methods, it's expected that the constructor or Load() method diff --git a/BizHawk.Emulation.Common/Interfaces/Services/ISoundProvider.cs b/BizHawk.Emulation.Common/Interfaces/Services/ISoundProvider.cs index 909fa8365d..814ab71001 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/ISoundProvider.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/ISoundProvider.cs @@ -1,7 +1,13 @@ namespace BizHawk.Emulation.Common { - public enum SyncSoundMode { Sync, Async }; - + public enum SyncSoundMode { Sync, Async }; + + /// + /// This service provides the ability to output sound from the client, + /// If available the client will provide sound ouput + /// If unavailable the client will fallback to a default sound implementation + /// that generates empty samples (silence) + /// public interface ISoundProvider : IEmulatorService { /// diff --git a/BizHawk.Emulation.Common/Interfaces/Services/IStatable.cs b/BizHawk.Emulation.Common/Interfaces/Services/IStatable.cs index 3504205144..e8bf0cb381 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/IStatable.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/IStatable.cs @@ -6,7 +6,7 @@ namespace BizHawk.Emulation.Common /// This service manages the logic of sending and receiving savestates from the core /// If this service is available, client apps will expose features for making savestates and that utilize savestates (such as rewind)) /// If unavailable these options will not be exposed - /// Additionally many tools depends on savestates such as TAStudio, these will only be available if this service is implmeented + /// Additionally many tools depend on savestates such as TAStudio, these will only be available if this service is implemented /// public interface IStatable : IEmulatorService { diff --git a/BizHawk.Emulation.Common/Interfaces/Services/IVideoProvider.cs b/BizHawk.Emulation.Common/Interfaces/Services/IVideoProvider.cs index ed48f277ec..1e7162915d 100644 --- a/BizHawk.Emulation.Common/Interfaces/Services/IVideoProvider.cs +++ b/BizHawk.Emulation.Common/Interfaces/Services/IVideoProvider.cs @@ -2,10 +2,15 @@ { /// /// This service provides the ability to pass video output to the client - /// If available the client will display video output to the user + /// If available the client will display video output to the user, + /// If unavailable the client will fall back to a default video implementation, presumably + /// a black screen of some arbitrary size /// public interface IVideoProvider : IEmulatorService { + /// + /// Returns a framebuffer of the current video content + /// int[] GetVideoBuffer(); // put together, these describe a metric on the screen @@ -15,8 +20,22 @@ int VirtualWidth { get; } int VirtualHeight { get; } + /// + /// The width of the frame buffer + /// int BufferWidth { get; } + + /// + /// The height of the frame buffer + /// int BufferHeight { get; } + + /// + /// The default color when no other color is applied + /// Often cores will set this to something other than black + /// to show that the core is in fact loaded and frames are rendering + /// which is less obvious if it is the same as the default video output + /// int BackgroundColor { get; } } }