2015-01-13 22:18:07 +00:00
|
|
|
|
using System.Collections.Generic;
|
2015-01-14 21:55:48 +00:00
|
|
|
|
|
2015-01-13 22:18:07 +00:00
|
|
|
|
namespace BizHawk.Emulation.Common
|
2014-09-01 18:43:41 +00:00
|
|
|
|
{
|
2015-01-14 21:55:48 +00:00
|
|
|
|
/// <summary>
|
2016-12-14 15:11:07 +00:00
|
|
|
|
/// This service manages the ability for a client to read/write to memory regions of the core,
|
|
|
|
|
/// It is a list of all avaialble memory domains
|
|
|
|
|
/// A memory domain is a byte array that respresents the memory of a distinct part of the emulated system.
|
2016-03-02 02:10:09 +00:00
|
|
|
|
/// All cores sould implement a SystemBus that represents the standard cpu bus range used for cheats for that system,
|
2015-01-14 21:55:48 +00:00
|
|
|
|
/// In order to have a cheat system available for the core
|
2016-12-14 15:11:07 +00:00
|
|
|
|
/// All domains should implement both peek and poke. However,
|
|
|
|
|
/// if a domain does not implement poke, it should throw NotImplementedException rather than silently fail
|
2016-07-21 16:02:54 +00:00
|
|
|
|
/// If this service is available the client will expose many RAM related tools such as the Hex Editor, RAM Search/Watch, and Cheats
|
2016-12-14 15:11:07 +00:00
|
|
|
|
/// In addition, this is an essential service for effective lua scripting, and many other tools
|
2015-01-14 21:55:48 +00:00
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IMemoryDomains : IEnumerable<MemoryDomain>, IEmulatorService
|
2015-01-13 22:18:07 +00:00
|
|
|
|
{
|
|
|
|
|
MemoryDomain this[string name] { get; }
|
|
|
|
|
|
2015-01-24 16:02:28 +00:00
|
|
|
|
MemoryDomain MainMemory { get; set; }
|
2015-01-13 22:18:07 +00:00
|
|
|
|
|
2015-01-24 15:49:02 +00:00
|
|
|
|
bool HasSystemBus { get; }
|
2015-01-13 22:18:07 +00:00
|
|
|
|
|
2015-01-24 16:02:28 +00:00
|
|
|
|
MemoryDomain SystemBus { get; set; }
|
2015-10-27 02:41:43 +00:00
|
|
|
|
|
|
|
|
|
bool Has(string name);
|
2014-09-01 18:43:41 +00:00
|
|
|
|
}
|
|
|
|
|
}
|