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; }
}
}