Commit Graph

102 Commits

Author SHA1 Message Date
adelikat 1fd620a1f4 fix N64 memory callbacks 2020-04-13 13:29:22 -05:00
adelikat b5c0bfa141 remove coreComm from N64 core 2020-03-15 09:32:29 -05:00
YoshiRulz 3afcf416e8
Follow attribute class best practices, cleanup docs on attributes 2020-02-19 03:54:50 +10:00
adelikat 606c3bf1c2
use more advanced language features in Emulation.Cores (#1852)
* Use expression bodies in Emulation.Cores, and a few other misc cleanups

* remove unused usings in Emulation.Common

* cleanups in Tables_Direct.cs

* some cleanups in nes boards - redundant code

* remove some redundant array initializers in Emulation.Cores

* cleanup AmstradCPC.Controllers

* use object initializers in a lot of places

* nes mappers - remove disch's notes comments in favor of the nesdev wiki link

* cleanup CdtConverter.cs, mostly use of object initializers

* remove redundant .ToString() calls in Emulation.Cores

* using var in Emulation.Cores

* AmstradCPC/ZXSpectrum - simplify some linq, tabs instead of spaces, a few other misc cleanups

* Use null-propagation in Emulation.Cores
2020-02-17 16:54:51 -06:00
adelikat 656f2b814e Move IEmulator extensions to the Emulation.Common namespace, the intent is that these are used and serve as built in functionality, so it's overly tedious to when most situations require both Common and an additional extensions namespace 2020-02-15 12:33:15 -06:00
alyosha-tas c19c7cd5c3 SubNESHawk
also Input register shift fix

# Conflicts:
#	BizHawk.Client.EmuHawk/MainForm.Designer.cs
#	BizHawk.Client.EmuHawk/MainForm.Events.cs
#	BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.IEmulator.cs
#	BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.IEmulator.cs
#	BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs
2019-01-10 18:25:59 +03:00
zeromus 1961d8b8d0 fix mupen dll not to have 100 frame hack crash; change c# side to more visibly hang (the frame counter stops, so the condition can be detected) 2018-11-07 19:59:03 -05:00
adelikat c6e0e9fa57 Rename CoreAttributes to CoreAttribute as to not be a bad person 2017-07-12 14:10:55 -05:00
adelikat 46568bf1ec N64 - disable cxd64 lle RSP pluging since we don't have one that works for 64bit, and no one was probably using it anyway 2017-06-19 18:00:19 -05:00
adelikat e6d1850361 N64 - include a 64bit version of mupen64plus-rsp-cxd4.dll, rip out Rsp_Z64_hlevideo since it is giving us no value added, as it was intended to go with the z64 video plugin (that we don't support nor need to) 2017-06-12 19:37:45 -05:00
zeromus eec9c54236 comment out all dynarec related things 2017-06-11 17:24:32 -05:00
adelikat 1dae91e6a8 clean up core constructors - consistent parameter casing, and put them at the top of the class 2017-05-05 19:05:36 -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 698c6741ae Refactor IEmulator and remove the IController property, instead pass it as a paramter to the FrameAdvance() method 2017-05-01 20:09:11 -05:00
adelikat ded1c2d7b7 Break off BoardName from IEmulator into a separate IBoardInfo service 2017-04-30 21:01:54 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
Wyst3r 4c0bfd4764 m64p: Use built-in debugger to avoid major slowdowns when breakpoints are set.
Conflicts:
	BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.IDebuggable.cs
2017-02-24 10:41:22 +03:00
feos 39c5aae61b Revert "Merge pull request #731 from Wyst3r/master"
This reverts commit 318abf691a, reversing
changes made to 5d4c8020c2.
2017-02-23 16:56:38 +03:00
Wyst3r d665bad4c5 Merge branch 'master' into master 2017-02-22 19:51:13 +01:00
adelikat 72a59087b5 Use the IController indexing property less in preparation for removing it from the interface. Replaced with its more explicity counter-part .IsPressed() 2016-12-14 12:42:15 -06: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 b697110098 Rename ISoundProvider to IAsyncSoundProvider to more accurately describe what the service does 2016-12-09 10:24:43 -06:00
Wyst3r 86b16a80d6 m64p: Use built-in debugger to avoid major slowdowns when breakpoints are set. 2016-11-19 12:02:39 +01:00
pjgat09 78942a8422 N64: Added cxd4 to the RSP options 2016-09-27 15:10:38 -04:00
feos f08a0b3849 n64 tracer: disable for dynarec 2016-08-24 19:21:16 +03:00
feos 799afc6b0a n64: switch to regular tracer method
todo: same for gpgx
2016-08-14 20:35:05 +03:00
feos 49176b28bd m64p: setup CallbackBasedTraceBuffer 2016-08-13 20:36:26 +03:00
feos dc68b90cd0 m64p: exec breakpoint occurs, but freezes in HackyPinvokeWaitOne() 2016-08-12 00:35:52 +03: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
pjgat09 c2dd59aa3a N64: Move the dirty hack from LoadState to the constructor instead to avoid problems with states saved on frame 0. 2015-03-17 00:11:08 +00:00
goyuken adc3e96ca8 iemulator single instance attribute. to find out about: PSX, Apple2 2015-03-03 00:23:50 +00: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 29b056b972 N64 - wire of a disassembler, doesn't look like it works correctly, but at least the plumbing is done 2015-01-23 19:52:26 +00:00
goyuken 82fcd0bc5e refactor IVideoProvider into a service. uses in mainform and friends are still hacky 2015-01-14 22:37:37 +00:00
adelikat fbdb29b64c refactor IMemorydomains to be a domain list instead of having a domain property, refactor cores to register an IMemoryDomains instead of being one 2015-01-14 21:55:48 +00:00
adelikat 9fc46f6764 mark cores that would not ever use IDriveLight, a bit silly, but it keeps the feature list clean and that's currently my only source of sanity with keeping up with what needs to be done 2014-12-12 01:58:12 +00:00
adelikat 3dfd57197d N64 - cleanup after adding new services and such 2014-12-05 02:22:41 +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 f5cc38c9cd AsInputPollable() 2014-12-05 00:59:00 +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 a07263c04e Move InputCallbackSystem from CoreComm to IInputPollable, and refactor all cores accordingly. Lua - OnInputPoll() - log to the user when attemping to add a callback of this type to a core that has not implemented input callbacks. Mark all unmanaged cores' implementations of the InputCallbackSystem as FeatureNotImpleented, won't have any effect on functionality, but will help us keep track of the fact that they still have a bit of work to do. Still todo: ActiveChanged event handler on the base implementation of IInputCallbackSystem 2014-12-04 00:43:12 +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 5d512c4c5d N64 - break off ICoreService implementations into separate files 2014-11-30 15:38:39 +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 0e82fff3ff Clean out ClearSaveRam() calls since they are no longer used 2014-11-24 15:00:54 +00:00
adelikat 9c285e3e3a Put NotImplemented attribute on a bunch of things, and remove IMemoryDomains from a few cores that were implementing it but throwing a NotImplementedException 2014-11-24 01:17:05 +00:00
adelikat 1832894405 IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary 2014-11-23 16:22:02 +00:00
goyuken dc2ca1f010 remove the extra ISettable (non-generic argument) interface and corresponding crud from cores, and replace with a shim class 2014-10-31 15:46:13 +00:00