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
b736d48911
use constants for core string names and simplify core core name getting logic
2020-04-18 09:55:57 -05: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
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
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
YoshiRulz
c7801b8ce2
Move BizHawk.Common.BizInvoke namespace to separate project
2020-01-23 14:54:23 +10:00
adelikat
f83261c116
misc cleanups in emulator core service logic
2020-01-11 13:19:51 -06:00
adelikat
641c3e9f82
convert .smv importer to new style, also convert to bsnes instead of snes9x
2019-11-12 14:59:07 -06:00
nattthebear
7996f5dfbc
snes9x: Don't set virtual size of 0 on frame 0
2017-07-29 08:24:03 -04:00
adelikat
c6e0e9fa57
Rename CoreAttributes to CoreAttribute as to not be a bad person
2017-07-12 14:10:55 -05:00
nattthebear
c04beea4d0
update snes9x to use WaterboxCore
2017-06-17 12:57:43 -04:00
nattthebear
e3d2681d99
snes9x: connect obj disable by priority
2017-06-14 17:00:27 -04:00
adelikat
551abcd1e4
snes9x - some display name and descriptions for settings
2017-06-03 11:11:11 -05:00
nattthebear
a3f9f47c84
set snes9x to released
2017-05-29 14:40:19 -04:00
nattthebear
2887ba5823
savestates for vb. this includes savestates for mmap_heap. unfortunately, usage of mmap_heap was scrapped as the things going into it were better suited for invisible/sealed. it may be eventually useful
2017-05-29 11:26:38 -04:00
nattthebear
94c397a4f8
snes9x: IRegionable
2017-05-29 07:36:49 -04:00
nattthebear
7f7f490b6d
The InputCallbackSystem on this Core is now fully operational. https://www.youtube.com/watch?v=g7-tskP0OzI
2017-05-28 14:18:08 -04:00
nattthebear
7d0330bb9e
snes9x - cleanup usage of the IMonitor semantics. This makes memory domains slower.
2017-05-28 13:12:48 -04:00
nattthebear
6c2d4ff044
snes9x: add ISaveRammable and fix virtualsize
2017-05-28 12:54:22 -04:00
nattthebear
ffed0d2205
snes9x: memory domains
2017-05-28 10:32:21 -04:00
nattthebear
61aa4f5df3
Connect Snes9x controllers, syncsettings, and regular settings
2017-05-28 10:18:20 -04:00
nattthebear
0cc1abd51b
snes9x: savestates
2017-05-28 06:39:11 -04:00
nattthebear
37dc9908d0
Waterbox: Add XOR based savestates for GPGX64
2017-05-27 16:18:38 -04:00
nattthebear
b737959d11
snes9xHawk which is totally not a thing: connect audio
2017-05-27 14:32:12 -04:00
nattthebear
9bcd693910
snes9x: video output is now fully functional
2017-05-27 13:33:44 -04:00
nattthebear
2665510502
Add enough changes so that snes9x now boots. This includes stubs for a bunch of syscalls, a few mmglue changes, and C++ global constructor support
2017-05-27 12:29:05 -04:00
nattthebear
7739b9dc80
rough in some snes9x stuff. not working yet
2017-05-21 17:43:43 -04: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
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
40be0dd0b3
Refactor the way a Null ControllerDefinition is created
2016-12-16 23:34:18 -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
zeromus
baaa1c3ec2
use proper SNES PAR
2015-10-21 19:38:40 -05:00
goyuken
adc3e96ca8
iemulator single instance attribute. to find out about: PSX, Apple2
2015-03-03 00:23:50 +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
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
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
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
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
jlennox
a64017366c
Create ISettable<T,T2>/ISettable interfaces. This checkin has not been extensively tested.
2014-10-19 01:22:47 +00:00