* first round of GameShark.cs cleanups, redundant code and stylecop cleanup
* simplify how gba readonly values are set
* a few more cleanups
* GameShark - use NESGameGenieDecoder for nes logic
* remove now unused NESGameGeneie tool
* Client.Common - move nes encode/decoder to a cheats folder
* GameShark - move genesis game genie coding logic to its own class
* remove NesGameGenieEncoder that i snow unused
* fix naming
* remove GenGameGenie in favor of using the unified Cheat Code decoder
* move Gameboy/GameGear decoding logic from GameShark to its own class, cleanup
* remove GBGameGenie, was only exposed via the toolbox, GameShark tool does all of this logic
* GameShark - move snes game genie decoding logic to its own class
* cleanup
* remove unused snes GameGenie tool
* move Gb GameShark decoding to its own class
* cleanup
* move Genesis action replay decoding logic to its own class
* cleanup
* cleanup
* cleanup
* cleanup
* move Sms ActionReplay decoding to its own class, cleanlup
* cleanup
* move snes action replay decoding to its own class
* cleanup with a helper method
* cleanup
* more cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* move Psx GameShark decoding to its own class
* Move saturn gameshark parsing to its own class
* cleanup
* cleanup
* move N64 decoder logic to its own class
* remove GBA cheat code that hasn't been ready for 5 years, easier to try to implement this in the re-architected code, so delete for now at least
* start to detangle GBA gameshark mess
* Gameshark - remove most gba cheat code functionality for now, easier to rebuild it later
* Gameshark - cleanup
* cleanup
* cleanup
* cleanup
* redesign nes decoder to simpler design
* simplify more
* convert psx and saturn decoders and simplify
* convert more decoders
* convert more decoders
* convert more decoders
* convert more decoders
* convert gba decoder
* convert more decoders
* convert and simplify N64 decoder
* GameShark - simplify more
* 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.
* 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
* Changed default sound/display methods to OpenAL/OpenGL on Windows to match
non-Windows, and replaced DirectInput with OpenTK input (needs regression
testing on Windows).
* (meta) As a result of the above, DirectX is no longer a prerequisite, leaving
only: .NET Framework 4.6.1 (comes with Win10, as does 4.8), MSVC 14 (also comes
with Win10), MSVC 12 for Mupen, and MSVC 10 for BSNES/Mupen.
* Refactored static Program ctor, using ExceptionBox for missing prereqs, and
removed PrereqsAlert.
* Added OS version check for Windows, with a flag in the config to skip it.
* Updated readme for Win7 EOL (and generally cleanup Windows sections).
* 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