Commit Graph

100 Commits

Author SHA1 Message Date
YoshiRulz 3afcf416e8
Follow attribute class best practices, cleanup docs on attributes 2020-02-19 03:54:50 +10:00
adelikat 27352a6f8e add Get/SetCpuFlagsAndRegisters to Z80, and remove all the boilerplate from related cores 2020-02-16 17:55:40 -06:00
adelikat fb37ebc71e fix ti-83 savestates 2020-02-16 13:33:47 -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
adelikat 4b7a7dd293
Make Binary states default and Textstates opt-in for cores (#1848)
* Rewind & State config - remove the default option

* remove the savestate type of default, not that this is a breaking config change for anyone that had specifically set savestates to text

* remove BinaryStatesPreferred from IStatable and use config setting when starting movies from "Now" in record movie dialog

* remove BinaryStatesPreferred from cores

* make text savestates an extension method off of IStatable and an inteface ITextStatable it uses if the core implements it. This will allow cores to opt in to text states if desired

* make cores with actual text savestate impleemntations get ITextStatable, remove text state logic from cores that just have a binary as as text implementation
2020-02-15 10:22:26 -06:00
YoshiRulz bfde89b9f3
Enable SA1139 and fix noncompliance
"Use literal suffix notation instead of casting"
2020-01-25 07:55:48 +10:00
adelikat f83261c116 misc cleanups in emulator core service logic 2020-01-11 13:19:51 -06:00
adelikat fef746dffa properly dispose of IDisposables in core savestate code, and a few other places 2019-12-06 17:33:17 -06:00
J.D. Purcell fec63fb66a Spaces -> tabs, fix mixed newlines. 2019-11-03 20:58:36 -05:00
James Groom 4e91f88af3
Use nameof in cores 2019-03-28 14:18:58 +11: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
nattthebear e8145af463 i hope this breaks something 2018-05-12 12:55:42 -04:00
alyosha-tas b2ed6eb737 Always initialize independent instances of IController in cores to NullController
- Fixes #1168
2018-03-31 11:23:55 -04:00
alyosha-tas 81e80acf86 z80: make TotalExecutedCycles long and change related variables accordingly 2018-03-18 09:55:56 -04:00
alyosha-tas f1fee7dc6e TI832: fix port accesses 2017-12-01 08:51:18 -05:00
adelikat ebcd237858 Merge branch 'master' into domainedmemoryhooks 2017-10-29 12:38:29 -05:00
alyosha-tas 22337474db Update TI83.cs 2017-10-25 19:16:05 -04:00
alyosha-tas 3c6dcf1dc3 TI-83 Upgrade
- Fix power on Behaviour
- Fix cycle timing
- Fix timer interrupt frequency
- NOTE: 'ON' buton on virtual calculator doesn't work since it's only a 'click', need to use shortcut key to turn the calculator on
2017-10-20 10:32:22 -04:00
alyosha-tas 8b2b796b53 Add files via upload 2017-10-13 17:59:14 -04:00
alyosha-tas 946c025cd6 Add files via upload 2017-10-13 16:26:32 -04:00
adelikat 04ce66c397 phase 1 of changing memory callback api to specify domain - require cores to specify which domains are available and have the domain passed in when creating callbacks. Still todo - cores need to pass in domain name on CallReads/Writes/Executes methods 2017-08-01 22:05:17 -05:00
adelikat c6e0e9fa57 Rename CoreAttributes to CoreAttribute as to not be a bad person 2017-07-12 14:10:55 -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 1f014daaa0 Fix merge error 2017-05-02 07:26:48 -05:00
adelikat 69d056e990 TI83 core cleanups 2017-05-02 07:24:22 -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 2de20e956b use Dictionary initializers instead of object initializers for various GetCpuFlagsAndRegisters() methods 2017-04-25 08:28:06 -05:00
adelikat 94f152d1d1 misc cleanups in Emulation.Cores 2017-04-17 15:23:31 -05:00
adelikat ab1a22bf31 add TotalExecutedCycles as an IDebuggable property, and implement it in cores with the information readily available (and throw NotImplementedExecptions in the remaining). wire the property up to lua with emu.totalexecutedcycles(). Stil todo - wire it up to the Debugger gui 2017-01-09 19:23:05 -06:00
adelikat 2b4267d2c9 nitpicky code refactorings on unimportant files, nothing to see here 2016-12-16 15:47:28 -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 4de6628071 Fix TI-83 memory domains 2016-08-22 15:07:56 -04:00
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
adelikat f6a8ade98b TI-83 - implement trace logger (lol) 2016-02-28 08:07:22 -05:00
adelikat fcf20ac646 Ti-83 - IDriveLight is not applicable 2016-02-21 11:45:12 -05:00
scrimpeh e4a1a517cd IInputPollable - Now with tabs instead of spaces. 2016-01-26 11:46:52 +01:00
scrimpeh ef1bc65ce6 IInputPollable - Make IsLagFrame settable 2016-01-26 11:34:42 +01: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 3541c9e975 Make the lag counter settable, and expose this functionality in lua 2015-07-09 13:05:30 -04:00
adelikat 5bcdfb5991 IInputPollable - remove the set on LagCount as it is not needed 2015-06-11 01:23:14 +00:00
adelikat 00fb58bea5 more TI83 cleanup, nothing worth looking at here 2015-02-07 15:02:52 +00:00
adelikat 95d9f250ee TI83 - nitpick refactor, nothing useful to see here 2015-02-07 14:46:02 +00:00
adelikat 63a3c56441 TI-83 - some code refactor 2015-02-07 14:38:29 +00:00
adelikat 8c12c5cbff do read/writes in the z80 core itself, refactor sms and ti83 to not use them on their end of the callback, fixes sms only having read/write callbacks on a few mappers 2015-01-24 20:57:37 +00:00
adelikat cdd0716420 wire up memory execute callbacks to SMS and TI83 2015-01-24 20:36:36 +00:00