Commit Graph

232 Commits

Author SHA1 Message Date
alyosha-tas 084d768cca GBHawk: work on STOP 2020-04-30 10:18:46 -04:00
alyosha-tas cb5c21f8d3 GBHawk: work on some accuracy edge cases 2020-04-28 18:44:24 -04:00
alyosha-tas 8d0307596c GBHawk: window bug fix, fixes Zen 2020-04-26 09:37:35 -04:00
alyosha-tas 60af8a36fc GBHawk: add setting to sync domains to vblank (reads only). works better with LUA 2020-04-24 10:14:48 -04:00
adelikat d4c8615e95 remove unused usings and other redundancies 2020-04-23 20:33:18 -05:00
adelikat a88154ca27 GBHawk - simplify mapper code 2020-04-23 20:33:17 -05:00
zeromus 10bceeb0dc Nope, I think it's a good idea now.
Revert "This reverts commit c878c85daeaaf0cae3e28f24bc1a8b511293d7b6."
This reverts commit 1d1f2a18c6.
2020-04-23 21:20:59 -04:00
zeromus 1d1f2a18c6 This reverts commit c878c85dae. 2020-04-23 21:06:12 -04:00
zeromus c878c85dae for your consideration: sync settings return flags instead of a bool, so we can have more granularity in what needs resetting than just "reboot core". for instance, we would like to minimize the number of times the window layout is redone by not doing it when the screen settings havent changed. HOWEVER, while I was writing this commit message, I realized, I should probably do it just by being more cautious in kicking off the layout (unless the data coming from the core has changed, a layout shouldnt happen). So I am going to make this commit, in case it inspires anyone, and then revert it. 2020-04-23 21:05:56 -04:00
adelikat 325551ecd0 consistently check if callbacks exist before calling memory callbacks, across all cores 2020-04-21 16:42:57 -05:00
alyosha-tas 1fd5b80d28 GBHawk: fix ram bank register 2020-04-20 20:52:52 -04:00
alyosha-tas f54a36ab9a GBHawk: Fix cart RAM domain 2020-04-20 18:49:55 -04:00
adelikat b736d48911 use constants for core string names and simplify core core name getting logic 2020-04-18 09:55:57 -05:00
adelikat ce4037fad8 cleanup PopulateWithDefaultHeaderValues() 2020-04-14 17:15:46 -05:00
adelikat 2b281116ed misc cleanups 2020-04-08 16:03:35 -05:00
alyosha-tas f39319fd12 O2Hawk: bug fixes and add reset button 2020-04-03 16:56:22 -04:00
alyosha-tas 458949a2f9 GBHawk: minor bug fixes and cleanups 2020-04-03 12:16:52 -04:00
alyosha-tas ced37c45c3 GBHawk: memory ap optimizations 2020-04-02 15:41:03 -04:00
alyosha-tas 7d293bdb1a GBHawk: fix speed mode switch timing 2020-04-01 22:46:48 -04:00
alyosha-tas 07e7a83243 GBHawk: optimizations 2020-04-01 09:44:43 -04:00
alyosha-tas 0e0b94cd0c GBhawk: some C# optimizations 2020-03-31 23:03:40 -04:00
YoshiRulz 0ba7a5a7df
Rename axis-related types, members, and locals
I left a few methods where they had an equivalent *Bool*() for buttons, and also
left some in TAStudio that get serialised.
2020-03-31 17:29:55 +10:00
alyosha-tas 29fded3025 GBHawk: add testing framework 2020-03-29 10:21:34 -04:00
alyosha-tas 73afca9c67 GBHawk: finish intergration functions 2020-03-29 10:10:13 -04:00
alyosha-tas 47704b94fd GBHawk: more integration work 2020-03-28 20:21:43 -04:00
alyosha-tas 98265cd066 GBHawk: Clean up files and definitions 2020-03-27 20:16:24 -04:00
alyosha-tas 5ea379c95d GBHawk: improve scanline zero emulation, still needs a little work. 2020-03-21 18:06:22 -04:00
alyosha-tas 7e00b7892f gameboy memory domains: make consistent between gambatte and GBhawk 2020-03-20 20:04:58 -04:00
adelikat 8973e5e521 refactor CoreComm usage in GBHawk and related cores 2020-03-15 09:31:07 -05:00
YoshiRulz e12b5d8137
Refactor FloatRange creation and usage
effectively resolves #1200
* Replaced floats in FloatRange with ints (would have used shorts but
SubGBHawk/SubNesHawk use an axis to hack in cycle count or something), added
both Range<int> and Range<float> auto-properties
* Added bool field IsReversed to FloatRange
* Added enum AxisPairOrientation and factory method using it
* Cleaned up usages of FloatRange fields and properties
* Added new properties to PadSchema.ButtonSchema for type
PadInputType.AnalogStick (to hold the two FloatRanges) and used
ControllerDefinitions from cores to dedup these ranges in the schemata
* Made VirtualPadAnalogStick work properly: both the direction and bounds are
correctly set from the controller schemata, the polar conversion measures angles
consistently (though I think it might not work outside -128..127 e.g. for PSX),
and I didn't break the sensitivity override, plus negative percentages might
work now but I didn't allow those
* Renamed FloatRange to AxisRange, but did not rename related symbols
2020-03-14 20:47:45 +10:00
alyosha-tas b1d17b0a57 GBHawk: proper bias emulation in audio, still needs some refinement but everything is in place. 2020-02-29 17:11:46 -05:00
alyosha-tas 7c32305cb4 GBHawk: fix videoplayer2 audio 2020-02-29 11:57:44 -05:00
alyosha-tas c9621eff19 GBHawk: CPU optimizations 2020-02-28 20:46:33 -05:00
adelikat 46d05de51f nothing to see here 2020-02-28 12:52:48 -06:00
alyosha-tas 5f5bf639c2 GBHawk: 4x cleanup 2020-02-27 18:15:34 -05:00
alyosha-tas c16b47cbe4 GBHawk: rename GB compat cpu to have proper dependency 2020-02-25 08:06:43 -05:00
alyosha-tas f73c65d704 GBHawk: camera mapper 2020-02-23 17:38:56 -05:00
alyosha-tas f0692111d7 SubGBHawk: add 2020-02-23 09:54:42 -05:00
alyosha-tas e1128e4150 oops forgot a line 2020-02-23 07:37:38 -05:00
alyosha-tas 38e9dc02b7 GBHawk: camera mapper 2020-02-23 07:34:55 -05:00
alyosha-tas 1b301862db GBHawk: Implement power button 2020-02-22 08:47:39 -05:00
adelikat 4e03e14eea GBHawk - implement Get/SetCpuFlagsAndRegisters 2020-02-18 14:54:59 -06: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 04a185101a fix gbhawk text states, had to leave duplicate data just with a different key name, in order to keep backwards compatibiliy with old binary states 2020-02-16 12:55:32 -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 6f3f01125c
Enable SA1504 and fix noncompliance
"All accessors should be single-line or multi-line"
i.e. no block form on one line
2020-01-25 14:56:56 +10:00
alyosha-tas 3f59a704a2 GBHawk: correct frame rate to 59.72 (same as gambatte) 2020-01-14 18:32:26 -05:00
alyosha-tas 2c019794f5 GBHawk: remove DIV offset as a sync setting, leave it always at 8. 2020-01-13 09:37:54 -05:00