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
* POC of a memory domain bulk read concept, wired up to hex editor, very sloppy currently
* do the todo
* delegates for bulkreads
* refactor bulk reads to take in a range and a pre-allocated array for the values
Co-authored-by: adelikat <adelikat@tasvideos.org>
* Remove unused ZeromusSynchronizer ISynchronizingAudioBuffer implementation as it hasn't been used in quite some time, also remove unused MetaspuAsyncSoundProvider that is no longer used. Remove some unsed methods on MetaspuSoundProvider
* use switch expression
* remove unused buffer
* remove unused NitsujaSynchronizer, even though it was the default, the only usage of ISynchronizingAudioBuffer is the vecna one
* remove enum ESynchMethod now that it only had 1 option
* expose VecnaSyncrhonizer and remove Metaspu static class
* remove unused method on ISynchronizingAudioBuffer
* Retarget BizHawk.Emulation.* to .NET Standard 2.0
* Retarget BizHawk.Bizware.BizwareGL to .NET Standard 2.0
In practice this mostly involves moving classes to BizHawk.Client.EmuHawk.
* 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
* 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
* add MAME to OpenAdvanced
* make mame launch games
limited to arcades that only need rom name. other devices require machine name and rom name, and won't run. nor they are meant to be supported anyway: we have enough emulators that do the job better for particular devices.
dunno if direct disk access will be avoidable, there are quite some files it might want to load other than the rom (parent rom, bios, artwork). trapping all of these might be a future task.
it is also known that mame can load "romname.zip" file just as well as "romname" folder, which would represent an unarchived zip. I make use of it to send it zip name with extension. it's easy, and we're not obliged to recognize mere folder paths in the mame-advanced-loader logic.
* ability to run lua code inside mame
* Move PlatformSpecificLinkedLibs and implementations to common and rename
* Specify file ext. at LoadPlatformSpecific call site
* Move Client.Common.Global.RunningOnUnix to PlatformLinkedLibSingleton
* Inline var Resolver
* Use PlatformLinkedLibManager internally
* Move plugin load check to LinkedLibManager, use LinkedLibManager
* Interpolate
* Return exit code from dlclose/FreeLibrary
* Skip all calls to externs in BlipBufDll when using mono
* Use PlatformLinkedLibManager in SevenZipLibraryManager
* Add expected return value to workaround (from testing on Win32)
* Remove ".dll" from DllImport attr, remove temporary workaround, see desc.
The library can be built by changing the output file name in
`.../blip_buf/Makefile` to `libblip_buf.so`, and running `make`. It will be
loaded if placed in the `.../output` folder.
* Remove unused code, add TODO (this class is req. for Waterbox.PeWrapper)
The TODO is to [rewrite with
C#](https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files)
instead of importing from `kernel32.dll`.
* Update OpenTK again but better (for #1384)
* Add Mono run script
* Add libblip_buf.so (temporary)
Temporary because it should be a separate package which BizHawk depends on.
* Add distro detection, add "already running" and "unknown distro" messages
* Gray-out Lua Console on Unix
* Extract superclass from EmuLuaLibrary, add shell implementation for Unix
* Specify libdl version, Fedora doesn't have the versionless symlink
* Remove empty `ToolStripMenuItem`, null `Text` caused crash on Unix
* Transform OpenTK keyboard input into a `List<KeyEvent>` and read that
Also fixes crash on rebind
* Remove debug `using ...;`