Commit Graph

48 Commits

Author SHA1 Message Date
adelikat 5d855ef60b more attribute renaming 2017-07-12 14:40:10 -05:00
adelikat c6e0e9fa57 Rename CoreAttributes to CoreAttribute as to not be a bad person 2017-07-12 14:10:55 -05:00
adelikat c81a2fcc23 oops, vsyncrate is a double 2017-05-05 16:23:13 -05:00
adelikat 59139ab266 Spell out Numerator and Denominator 2017-05-05 11:25:38 -05:00
adelikat 62a13d961d Move VsyncNum and VsyncDen out of CoreComm and into IVideoProvider 2017-05-05 11:21:37 -05:00
adelikat ded1c2d7b7 Break off BoardName from IEmulator into a separate IBoardInfo service 2017-04-30 21:01:54 -05:00
adelikat a8c15a652b Emulation.Common cleanups 2017-04-27 11:37:26 -05:00
adelikat 7ab8455e84 misc code cleanups in BizHawk.Emulation.Common 2017-04-14 12:28:23 -05:00
adelikat f640271a47 dont' use ThrowsError when deciding if a method is implemented. Simply checking for an exception is no longer reliable sinc most GetSamplesAsync() methods correctly do this by design 2017-02-08 17:48:32 -06:00
zeromus bd1f48540d fix #760 2017-02-05 18:33:13 -06:00
adelikat 54eb678387 create an ICreateGameDBEntires specialized service and have Atari2600 implement it. Use this in the log window instead of sneaky reflection to access the method 2016-12-15 10:45:20 -06:00
adelikat dd48864058 AsVideoProviderOrDefault() extension method 2016-12-12 13:47:11 -06:00
nattthebear eb72ff9053 Swag up NullSound 2016-12-11 14:07:12 -05:00
adelikat b73a500d6b Major sound provider refactor. Create a unified interface ISoundProvider, that is an IEmulator service and break it off of IEmulator. IAsyncSoundProvider was kept as a shim for now, for legacy cores that were inherintly async. 2016-12-11 11:15:00 -06:00
adelikat 281b83fd40 Remove some usages of VideoProviderGlue in multihawk 2016-12-04 10:17:16 -06:00
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
adelikat b3dd9d26dc Misc code cleanups in Emulation.Common 2016-02-28 19:03:01 -05:00
adelikat f1f45afd83 Remove CoreComm link cable properties and turn it into an ILInkable service instead 2016-02-28 13:52:17 -05:00
zeromus 6a042cc8ac fiddle around with CDLog menu items 2015-10-27 19:49:13 -05:00
adelikat 400e4f4800 Add an empty ICodeDataLogger emulator service, make it a required service for CDL.cs 2015-10-27 19:03:56 -04:00
adelikat 32a2711303 When clearing lua callbacks, handle the case that input callbacks might not be implemented, also handle memory callbacks in a more consistent way 2015-10-12 19:02:03 -04:00
adelikat ba21484ddd add IRegionable as an emulator service to indicate NTSC vs PAL, etc. Refactor cores that conveyed this information to use this service, fixed cheaty reflection to grab this info to use the service instead, marked some cores as region not applicable where it made sense to me (I'm sure I'm wrong in some cases) 2015-08-05 20:12:09 -04:00
adelikat 8246de14aa IMemoryCallbackSystem - add a flag to indicate whether execute callbacks are available, in lua and the debugger, take this flag into account, also improve some availability checking in Lua memory callbacks. Flag N64 as not having execute callbacks available 2015-01-25 22:14:58 +00:00
adelikat e1811371e4 Cheats - only allow writable domains in the domains dropdown 2015-01-25 16:20:53 +00:00
adelikat 7ed8704555 add a CanPoke() extension method for memory domains, checks for a null or not implemented Poke Poke delegate, use it to disable Poke on Ram Search and Ram Watch, still todo - hex editor and lua 2015-01-25 14:37:37 +00:00
adelikat 0f2197cec1 Break off ITracer from IDebuggable, rename to ITraceable and make it an IEmulatorService, refactor things accordingly 2014-12-23 01:58:12 +00:00
goyuken ea47246658 remove the IEmulator inheritance from some services, and fix code as needed 2014-12-15 22:25:06 +00:00
adelikat 9a7715009a Add an IDisassemblable emulator service, currently no core implements it, just the interface and the IEmulator extensions 2014-12-13 20:52:52 +00:00
adelikat 08fb509a1a Add an IDriveLight Emulator service, and remove the CoreComm properties, and refactor accordingly 2014-12-12 01:49:54 +00:00
adelikat 0b84beec88 Move MemoryCallbackSystem from CoreComm to IDebuggable and refactor accordingly, Lua - tell the user when memory callbacks are not available for a given core 2014-12-05 01:56:45 +00:00
adelikat e2033c9d2e AsStatable() and also update statusbar saveslots on CloseRom() 2014-12-05 00:52:16 +00:00
adelikat 04f9081943 in IEmulator extensions add methods such as AsMemoryDomains(), AsStatable() that do the service calling magic. In the client code replace appplicable casts of IMemoryDomains with AsMemoryDomains(), more commits of this nature for the other IEmulatorServices soon to follow 2014-12-05 00:32:29 +00:00
adelikat cda9203ca5 Forgot to add these files 2014-12-05 00:17:34 +00:00
adelikat d7f88ecbf9 Chane IEmulator Extension methods like HasMemoryDomains to use the HasService<T>() method 2014-12-05 00:15:28 +00:00
adelikat 309088211c Move TraceBuffer from CoreComm to IDebugable and refactor accordingly 2014-12-05 00:05:40 +00:00
adelikat d8a204572d Add an IServiceProvider interface and make it a property of IEmulator, the purpose of this provider is to provide IEmulatorServices upon request. Make BasicServiceProvider and have all cores use it for now. BasicServiceProvider will return the core itself if the core itself is the requested type. He will also be able to return nested types (code not finished). Wired this up to the HasSavestates extension method (a method that has minimal value now) as a proof of concept. 2014-12-04 03:38:30 +00:00
adelikat 7ffe07c44b Emulation.Common IsImplemented extensions - fix logic, if FeatureNotImplemented exists it is always considered not implemented 2014-12-04 00:38:42 +00:00
adelikat a83d714c42 Break off IsLagFrame and LagCount from IEmulator and put into its own interface IInputPollable, and refactor cores as necessary. EmuHawk - account for the possibility that a core is not an IInputPollable, and do things like disable the lag counter menu item. Still some front end todos. Also still todo, move the InputCallbackSystem from CoreComm to IInputPollable 2014-11-30 20:29:30 +00:00
adelikat 76148ae111 Break off savestate functionality from IEmulator into IStatable and refactor things accordingly. Still todo (a big todo): EmuHawk should gracefully handle a core that is not an IStatable by disabling functionality dependent upon it (Savestates, Rewind, Tastudio, etc) 2014-11-30 16:42:58 +00:00
adelikat 865795049b Break off saveram methods from IEmulator into a separate ISaveRam interface. Remove the setter for SaveRamModified (every single core was throwing an error on this, and no client code was using it). Remove these methods from cores that don't actually implement this interface 2014-11-30 15:22:08 +00:00
adelikat 9422f02fa2 Feature List - hook up the ThrowsError() extension to IsImplemented 2014-11-30 14:52:52 +00:00
adelikat 4681fef0c2 Add an IsNull() extension method to IEmulator (checks for null and if NullEmulator) and replace EmuHawk NullEmulator checks with this method instead 2014-11-30 14:18:44 +00:00
adelikat 8c4e0f1203 Move some extension methods to a better location 2014-11-30 14:04:00 +00:00
scepheo 2c79016725 Added ThrowsError() and IsEmpty() extension methods for MethodInfo. 2014-11-24 19:51:27 +00:00
adelikat bded999177 Create a FeatureNotImplemented attribute, the intend of which is to apply to any unimplemented method of an ICoreService method/property, set some methods in Intellivision to this, and have CoreFeatureAnalysis look for the presence of this attribute and report unimplemented properties/methods 2014-11-24 00:38:29 +00:00
adelikat 5ba74c631c Remove MemoryDomains from IEmulator into a new Interface, IMemoryDomains, Add this interface to existing cores, except null emulator (and removed memory domain related code from it). Refactored EmuHawk for ram tools to use an instance of IMemoryDomains rather than IEmulator, don't expose ram tools unless the core implements IMemoryDomains. Still a few misc todos, and probably some cleanup 2014-09-01 18:43:41 +00:00
adelikat 9a24539c10 Lua - catch NotImplementedException on emu.getregister(s) and warn the user that this particular core doesn't implement this feature yet. Also, put IEmulator extensions in their own namespace 2014-05-31 14:29:27 +00:00
adelikat de1cb218a6 Add more info to IEmulator CoreAttributes, add status bar icon that gives the name of the current core with a tooltip with additional info, put bizhawk icon on "in house" cores, and the icon of the ported emulator on ported cores. Still todo: icons for ported cores other than quicknes 2014-04-25 01:19:57 +00:00