adelikat
095b22d489
refactor CoreComm usage in atari cores
2020-03-15 09:14:33 -05:00
adelikat
da95c1f56f
remove RomAnnotation fields on CoreComm and use the service instead
2020-03-14 22:10:57 -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
027dc01c8b
create StateSerializer as a base implementation of IStatable ( #1850 )
...
* create StateSerializer, an ITextStatable implementation using the Serializer class, and wire it up to the TI83 core
* wire StateSerializer to A2600 core
* wire up StateSerializer to AmstradCPC, C64, and ZXS
* wire up StateSerializer to MSX, A27800, and Coleco
* wire up state serializer to ChannelF, Vectrex, Intellivision
* fix GambatteLink to implement ITextStatable, implement TextSerializer in O2
* StateSerializer - wire up a loadstate callback and implement StateSerializer for NesHawk, a bit of rework to subNesHawk as a result
* fix subneshawk text savestates
* StateSerializer - implement byte[] buffer storing (optionally), wire up to PCE
* implement StateSerializer to SMS, tweak GGLink accordingly
* implement StateSerializer in GBHawk, fix link cores accordingly
* StateSerializer - use Serializer static methods to create serializers
2020-02-16 12:05:57 -06:00
James Groom
90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
...
squashed PR #1591
2019-10-13 15:50:57 +00:00
alyosha-tas
59f43b144e
Core Code Cleanup
2018-12-05 09:01:25 -06:00
alyosha-tas
7a799583e9
Update Atari2600.cs
...
Kangaroo [!].a26 has banks swapped similar to a few other games, add it to the internal list.
2017-11-08 13:52:39 -05:00
alyosha-tas
30f1d61f7f
Atari 2600
...
-Recast to run single cycle
-Remove frame buffer from state
-Always end frames on vsync boundary
2017-09-20 10:27:27 -04:00
adelikat
c6e0e9fa57
Rename CoreAttributes to CoreAttribute as to not be a bad person
2017-07-12 14:10:55 -05:00
adelikat
74dd25e831
Start Atari 2600 peripheral support - currently ability to pick joystick or unplugged for port 1 and port 2. Virtualpads are not addressed with this commit
2017-06-27 15:14:41 -05:00
adelikat
d467a1427d
Atari 2600 - cleanups, de-expose some fields
2017-05-05 12:26:15 -05:00
adelikat
daf3b2539b
Atari 2600 - add alyosha as an author, break up IEmulator code to its own file, some misc cleanup
2017-05-05 11:56:28 -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
adelikat
3192cc70ae
slight refactor to IEmulator - make the IController property set only to more clearly express the client -> core relationship
2017-04-26 19:09:00 -05:00
adelikat
2964585401
misc code cleanups in Atari 2600
2017-04-24 10:09:31 -05:00
J.D. Purcell
b53502eed8
Spaces -> tabs.
2017-04-15 16:37:30 -04:00
adelikat
37c989c661
more misc code cleanups, with some C#6isms
2017-04-10 11:24:53 -05: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
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
adelikat
333e17a054
Atari 2600 - add console buttons for toggling Difficulty switches. Note that this commit may or may not break both movie and savestate backwards compatibility
2016-11-11 15:28:21 -06:00
alyosha-tas
d82a447e71
add tapper hash
2016-05-20 13:18:12 -04:00
alyosha-tas
9424f30243
pick the correct mapper for Tapper and Congo Bongo
...
Based off SHA1 hash
2016-05-20 09:06:56 -04:00
adelikat
17b7d9790c
Tracer header for Atari 2600
2016-02-28 09:20:08 -05: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
bd74041cde
fix atari 2600 and pc engine similarly
2015-01-15 15:56:41 +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
85730524ef
Atari 2600 - restrict the access level of a bunch of things, and some slight reorg
2014-12-24 15:24:25 +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
adelikat
287d9376c8
Atari 2600 - implement StepInto
2014-12-18 18:48:37 +00:00
goyuken
972173282a
support new disassembler infrastructure in 2600 and nes
2014-12-15 22:52:22 +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
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
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
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
a283063f5f
some Atari 2600,7800 reorg
2014-12-01 14:21:37 +00:00
adelikat
9adc45f4d1
Add a ServiceNotApplicable attribute for cores to mark things like SaveRam and ISettable as not applicable for the given core, update the CoreFeatureAnalysis dialog to not show these interfaces for the given core (and not mark them as incomplete). Set various cores accordingly
2014-11-30 23:41:54 +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
ce3f7ae3ac
Atari 2600/7800 - break off IStatable stuff
2014-11-30 17:10:36 +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
0e82fff3ff
Clean out ClearSaveRam() calls since they are no longer used
2014-11-24 15:00:54 +00:00
adelikat
4d3e7f806f
Atari 2600 - break off IDebuggable stuff to its own file
2014-11-23 17:14:40 +00:00
adelikat
1832894405
IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary
2014-11-23 16:22:02 +00:00
jlennox
a64017366c
Create ISettable<T,T2>/ISettable interfaces. This checkin has not been extensively tested.
2014-10-19 01:22:47 +00:00
jlennox
10b6bed056
Add IDebuggable to relevant cores and remove non-implementations of GetCpuFlagsAndRegisters/SetCpuRegister
2014-10-18 22:30:06 +00:00