* Add MelonDS.cs, support opening (but not really) .nds files.
* init MelonDS
* MelonDS: Load selected ROM.
* MelonDS: FrameAdvance and frame counter.
* MelonDS: IVideoProvider
* MelonDS: Add DLL files.
* MelonDS: IInputPollable
* MelonDS: IStatable (and add forgotten file MelonDS_InputPollable.cs)
* update libmelonDS.dll
* MelonDS: ISoundProvider
* Add NDS to Global.SystemInfo, and convert screen coords when running NDS.
* set up default NDS controller
* MelonDS: ISaveRam
* MelonDS: remove romlist.bin
* MelonDS: ISettable
* Create firmware folder if it doesn't exist on Windows; otherwise, an exception is thrown.
* Add database entries for NDS bios/firmware files.
* MelonDS: Use the bios/firmware files selected in BizHawk's "Firmwares" dialog.
* MelonDS: Re-work sync settings a bit.
* NDS's firmware file contains user settings; these are over-written by sync settings, so we shouldn't allow them to impact the hash
* MelonDS: Add (currently unused) bootToFirmware sync setting, and NDSSettings dialog.
* Update NDS firmware hash; it seems I had somehow corrupted mine.
* MelonDS: Use boot to firmware sync setting.
* MelonDS: Allow user to set some firmware user settings via the NDS settings dialog.
* MelonDS: Add singleInstance attribute to core.
* MelonDS: IMemoryDomains
* update libmelonDS.dll
* MelonDS: Set up default sync settings if none are provided.
* MelonDS: Allow user to reset settings to default.
* MelonDS: bios+firmware files are recommended
* libmelonDS.dll
* MelonDS: Don't use real time.
* MelonDS: Update to reflect new way of handling RTC in MelonDS.
* MelonDS: Notify if savestate load failed.
* update MelonDS.dll
* MelonDS: Allow user to set startup date/time in settings dialog.
* MelonDS: Create melon directory if it doesn't already exist.
* Don't include Designer's "fixes" in PR (partially reverts 56b474c00)
* Don't show a broken console window; alert user of need to restart instead.
This fixes an error related to MelonDS trying to use the broken stdout stream.
* update default NDS controls to match other updated controls
* Implement a system bus, using ARM9 read/writes.
* MelonDS: Allow BizHawk to change the contents of the frame buffer.
* update libmelonDS.dll
* fix stuff that was merged incorrectly, or was broken by merge
* update libmelonDS.dll
(includes memory leak fix)
* update libmelonDS.dll
(fixes memory leak and an occasional savestate crash)
* fix stuff that broke with the merge
* cleanups, remove stuff that is no longer needed by service interaces
* simplify DS MemoryDomains
* DS - fix order of controller buttons to be consistent with other consoles. This probably breaks any existing movies made on this core, but those would have been experiments, right?
* NDSSettings - make min value for day and month 0, whiel those aren't "valid" values they are the default values in the core for whatever reason, better to not crash on load and not show a value that isn't actually the setting. This can easily be reverted if the core changes to default to 1
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: adelikat <adelikat@tasvideos.org>
* delete unused ShortBuffer
* convert IntBuffer to int[] in the Atari2600 core
* remove IntBuffer from NES mappers, and delete class
* convert ByteBuffer to byte[] in atari 2600 mappers
* remove ByteBuffer usages in NESHawk, remove ByteBuffer class
* remove Buffer.cs
* remove IDisposable from NES.NESBoardBase
* remove Dispose from Atari2600 MapperBase, note, it wasn't event being called
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
* 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
* apple II - poc to redo binary states to use the Serializer and pass it into virtu
* virtu - savestate logic for Video
* AppleII - serialize more components with AppleSerializer
* cleanup
* refactor MachineEvents to store delegates to call and have the calling code interact with an enum, prep work for serializing this class
* apple II - first attempt at serializing Machine events
* cleanup
* add isvblank to savestates
* put more things in savestates, cleanup
* cleanup
* cleanup, save more things
* cleanup, fixes
* cleanup, save more things
* virtu - savestate fixes
* cleanup
* save CurrentDisk in savestates
* 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.
* 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
* 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
* virtu - tabs instead of spaces
* virtu - use nooget for Newtonsoft.Json
* virtu - target .net 4.8
* resharper - target C# 8
* virtu - remove unused usings
* virtu - remove some unused code
* virtu - cleanups
* virtu - trace logging - add flags to trace logs
* virtu - cleanups
* virtu - misc cleanups
* virtu - make some stuff internal and simplify the api some
* virtu - clock down more things and simplify api more
* virtu - lock api down more
* virtu- simplify, breaks older savestates however
* virtu - simplify more
* virtu - cleanup
* virtu- more cleanup
* virtu - reorg some files
* virtu - more cleanup
* virtu - more reorg
* virtu - more reorg
* virtu - make more things internal instead of public
* virtu - make more things internal
* virtu - update dll
* cleanup
* virtu - reorg
* virtu - remove unitialize from machine component since nothing was utilizing it
* virtu - simplify api
* virtu - cleanup
* virtu - cleanup and lock things down
* virtu - lock down and cleanup
* virtu - cleanup
* virtu - simplify - breaks savestates
* virtu - make PeripheralCard an interface with default implementation, breaks savestates
* virtu - minimize use of machine component
* virtu - cleanup
* virtu - start minimizing dependencies
* virtu - cleanup
* virtu - simplify
* apple II - simplify
* virtu - move some biz logic into bizhawk
* virtu - git rid of MachineComponent
* virtu - delete no longer needed code
* virtu - reorg
* move serialization logic out of virtu and into bizhawk, this was our shenanigans
* virtu - some small cleanups
* virtu - simplify
* virtu - dependency minimization
* virtu - minimize dependencies
* minimize dependencies
* virtu - move drivelight property into component that controls it
* virtu - minimize dependencies
* virtu - minimize depenencies
* move some machine logic to memory class
* move some initialize logic into constructor
* move initialize logic to constructor
* move logic from Initialize to constructor
* move initialize logic to constructor, simplify api to bizhawk
* dll
* virtu - movie some logic back into bizhawk
* virtu - move Lagged property from machine to memory component
* move more biz logic from virtu to biz
* virtu - slight reorg
* virtu - move some reset logic to constructor
* virtu - move some stuff around
* virtu - declare dependencies in memory class, no more dependencies on the machine class
* move slots from machine to memory class
* move some properties from machine to memory
* move more things into the memory class
* remove Machine.cs from virtu and make an equivalent container in bizhawk
* virtu - cleanup
* interface the cassette class and create a biz empty cassette "implementation"
* move some more dummy logic from virtu to biz and put an interface in virtu
* virtu - use an interface for a dependency
* virtu - interface more things
* virtu - more interfacing of things
* virtu - interface more things
* apple II/virtu - some reorg
* virtu - cleanup
* virtu - remove unused usages of disk name in disk classes
* virtu- cleanup and simplify api
* virtu - remove unused BootDrive property
* virtu - cleanup and interface more
* cleanup
* update virtu dll
* refactor Sms settings including naming conventions and fix a typo, breaks configs with SMS settings already saved
* convert SMS controller type setting to an enum
* convert SMS Region setting to an enum
* Move SMS display type setting to an enum
* convert sms settings to properties
* SMS - wire up generic core config to a settings menu item
* remove some SMS menu items that are redundant to generic settings config
* remove more SMS menu items that are now redundant to generic core config
* remove more redundant SMS settinsg including SMSGraphicsConfig dialog, add descriptions and display names to SMS settings objects