Commit Graph

627 Commits

Author SHA1 Message Date
adelikat d72d8e79ff remove Global.Game from retro methods of CoreFileProvider, fix exposed bug that the retroarch core was getting path stuff based on Global.Game before it was being set to the new game 2020-03-14 14:22:23 -05:00
adelikat cd7d907c0d get rid of CoreFileProvider SubFileDirectory 2020-03-14 14:02:19 -05:00
adelikat e655ad3abd remove obsolete ICoreFileProvider.PathSubfile(), and instead pass in the neccessary base path the the bsnes core that needs it 2020-03-14 13:56:20 -05:00
adelikat b2066d9a73 remove obsolete ICoreFileProvider string GetFirmware method and replace the one usage for ti83 shenangians with an inline FirmwareManager usage 2020-03-14 12:39:45 -05:00
adelikat 104689655f remove unused ICoreFileProvider method and implementation 2020-03-14 12:29:30 -05:00
adelikat eba20781b4 add to ICoreFileProvider and remove casting to CoreFileProvider shenanigans in RomLoader 2020-03-14 12:28:19 -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
YoshiRulz ddbabd6067
Split path to fork in project dependency tree
Emulation.Common does not depend on Emulation.DiscSystem, but Emulation.Cores
still depends on both
2020-03-13 09:46:24 +10:00
feos 9dd9b4cc0d
Bulkread (#1834)
* 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>
2020-03-11 10:53:42 -05:00
adelikat 630858cbd4 misc cleanups in Emulation.Common 2020-03-01 14:39:24 -06:00
adelikat 565a319cef
Remove unused sound files (#1868)
* 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
2020-03-01 14:18:24 -06:00
YoshiRulz e5da8c765a
Move IController.ToDictionary extension to BizHawk.Emulation.Common 2020-02-28 13:26:27 +10:00
adelikat b810060fcf move AdvancedRomLoaderType out of Emulation.Common, it doesn't belong here (moved to EmuHawk where it is used) 2020-02-26 16:36:15 -06:00
adelikat 13bc770063 misc cleanups in Emulation.Common 2020-02-26 16:32:00 -06:00
adelikat 3018abe1f8 cleanup ISynchronizingAudioBuffer 2020-02-26 16:05:37 -06:00
adelikat 2c9d8bba40 cleanup DSKIDentifier.cs, misc cleanups in Emulation.Common 2020-02-26 15:51:29 -06:00
adelikat f5e9e8eecd cleanup VersionInfo.cs a bit 2020-02-26 15:33:50 -06:00
adelikat 72d4b0ac46 use inline out 2020-02-25 15:14:13 -06:00
YoshiRulz 2b8c0edcc2
Reorganise *.props 2020-02-23 06:17:35 +10:00
YoshiRulz 3afcf416e8
Follow attribute class best practices, cleanup docs on attributes 2020-02-19 03:54:50 +10:00
James Groom 46a4d8ffa9
Retargetting non-executable projects to .NET Standard (#1801)
* 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.
2020-02-18 10:31:49 -06:00
adelikat bfe7eee43f IStatable - don't inherit IBinaryStateable, I think there was a plan with that interface but it doesn't really have connection with the service interface 2020-02-16 15:18:22 -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 4b50ea36e1 remove MemDomain CanPoke() extension method now that all it does is check the Writable flag which is better named and more conscise 2020-02-15 12:37:39 -06:00
adelikat 656f2b814e Move IEmulator extensions to the Emulation.Common namespace, the intent is that these are used and serve as built in functionality, so it's overly tedious to when most situations require both Common and an additional extensions namespace 2020-02-15 12:33:15 -06:00
adelikat dd3b35a9fe cleanup BizHawk.Emulation.Common/Extensions 2020-02-15 12:22:16 -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
adelikat d7f97b1539 actually delete things instead of removing them from the project 2020-02-08 13:09:27 -06:00
alyosha-tas d9243fe15d MSX: fix 2020-02-06 06:56:29 -05:00
alyosha-tas 7b55157e10 MSX: add some starting firmware options 2020-02-03 17:28:45 -05:00
adelikat 40cd2f93df meh 2020-02-02 10:29:13 -06:00
adelikat d2c191b394 properly delete working types 2020-02-02 10:09:29 -06:00
adelikat 65249954b9 Revert "Remove WorkingTypes from compilation"
This reverts commit 0eef93afbf.
2020-02-02 10:08:09 -06:00
YoshiRulz 0eef93afbf
Remove WorkingTypes from compilation 2020-02-03 01:59:32 +10:00
adelikat 063e3b2a13 revert foreach loop in MemoryCallbackSystem - see #1823 2020-02-01 14:53:03 -06:00
YoshiRulz 3ae58fd9d6
Use SolutionDir to make relative paths absolute
No need for warning of relative paths in filename anymore
2020-01-24 04:59:27 +10:00
YoshiRulz 7e727fc77c
Move CRC32, remove unused project dependencies 2020-01-22 05:49:18 +10:00
YoshiRulz b1ef7bcbbb
Retarget .NET Framework from 4.6.1 to 4.8 2020-01-21 04:42:09 +10:00
adelikat 6e5a3910de ControllerDefinition - auto-initialize properties 2020-01-19 13:32:43 -06:00
YoshiRulz e435fb807b
Migrate to "new csproj", remove unnecessary tags/info, and dedupe
Didn't want to mess with resource generation so the execuable projects didn't
get migrated, just cleaned up
2020-01-19 01:43:39 +10:00
YoshiRulz 126bb4736b
Move commented-out code blocks to #if false
CBB doing Cores or Bizware
2020-01-13 11:14:16 +10:00
alyosha-tas 46d0818f09 MSXHawk: Core interface stuff 2020-01-10 15:51:56 -05:00
YoshiRulz 7932c401e1
Improve exception docs in BizHawk.Emulation.Common 2020-01-02 21:51:21 +10:00
YoshiRulz 50373ac1ad Move conditional PackageReferences to conditional .targets import
Fixes build system bug introduced by c31050feb
2019-12-27 16:35:47 +10:00
YoshiRulz 93d4056d3e
Add 32X to AllSystems (resolves #1507)
PlatformChooser only allows systems in AllSystems to be picked, effectively
limiting core choices
2019-12-26 19:06:11 +10:00
YoshiRulz c31050feb6
Migrate from packages.config to PackageReference 2019-12-26 16:54:33 +10:00
adelikat 18fbd9af1c MessageConfig - don't use Global.Emulator 2019-12-21 14:58:33 -06:00
adelikat 71aaf349b5 Fix GPGX one off hack to fix trace logger, and instead do a less bad hack in CallbackBasedTraceBuffer 2019-12-15 12:13:10 -06:00
adelikat b080d6d09e
Merge pull request #1754 from warmCabin/all-memory-execute
All Memory Execute
2019-12-13 07:40:41 -06:00
YoshiRulz 185337d1c5 Replace assembly references with NuGet packages where possible 2019-12-12 03:56:46 +00:00
warmCabin baca4e2af8
allow onmemoryexecute to have null address 2019-12-10 23:02:18 -05:00
adelikat 8802d75527 Game Game.IsNullInstance a null-safe extension method, and a few other cleanups 2019-12-08 13:36:15 -06:00
adelikat 7d8522e0b3 Remove snowy null emulator option and simplify Null Emulator 2019-12-06 18:42:00 -06:00
James Groom fcc0bc19a4
Change build config to support the Core build system (for #1415)
squashed PR #1702
2019-12-03 16:58:33 +00:00
alyosha-tas 61038a13ae O2Hawk: Expose Core and start running code 2019-11-18 17:33:55 -05:00
adelikat 45a777c983 Simplifications and cleanups in Emulation.Common 2019-11-08 09:48:53 -06:00
adelikat 40ac534f51 Memory callback system - simplify and remove now unused methods 2019-11-05 20:02:45 -06:00
J.D. Purcell fec63fb66a Spaces -> tabs, fix mixed newlines. 2019-11-03 20:58:36 -05:00
J.D. Purcell d71b2d26b5 Update Newtonsoft.Json 2019-11-02 16:24:08 -04:00
YoshiRulz f8379d9fd4
Bump ReSharper analysis to C# 8.0 2019-10-31 03:30:00 +10:00
adelikat 2b7cb1bb7d BizHawk.Emulation.Common - cleanups -> C#6/7isms, fix some typos, variable naming, spaces to tabs 2019-10-29 13:59:08 -05:00
feos 0247a8f1a8
mame core wip (#1705)
* 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
2019-10-29 18:37:27 +03:00
J.D. Purcell 69edada441 Set LangVersion to 8.0. Requires Visual Studio 2019 with 16.3+ update installed. 2019-10-27 12:14:19 -04:00
adelikat 924618ee8f Set resharper language level to 7, add some emulator lingo to the resharper dictionary 2019-10-27 10:54:29 -05:00
James Groom 90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
squashed PR #1591
2019-10-13 15:50:57 +00:00
alyosha-tas f058933342 Vectrex: Fix firmware 2019-08-03 09:26:30 -04:00
alyosha-tas 58da61fbde A7800: oops, corrected bios 2019-07-25 13:03:05 -04:00
alyosha-tas 6cb85cf588 A7800: only use proper bios 2019-07-25 12:59:52 -04:00
alyosha-tas 8da61871d3
Update FirmwareDatabase.cs
Fix a7800 bios
2019-06-20 11:23:39 -04:00
alyosha-tas e8d64cdbbb Vectrex: Add minestorm and bug fixes 2019-06-17 09:06:37 -04:00
James Groom 067477ce18
Merge branch 'master' into clean_docs 2019-06-14 13:28:39 +00:00
zeromus 1258b2fa81 optimize CallMemoryCallbacks 2019-06-14 09:19:06 -04:00
Brian Armstrong 2c6ecb68bd Merge branch 'master' into brian/mem_callback_addr_value 2019-06-06 02:11:04 -07:00
Brian Armstrong d41bd867b8 flags 2019-06-06 02:04:47 -07:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
YoshiRulz 268ed1a69d
Fix malformed docs 2019-05-29 20:58:01 +10:00
Asnivor f0384b7e83 ChannelF: Extreme WIP! I promise nothing... 2019-04-16 16:10:56 +01:00
alyosha-tas 9296092b84 Vectrex: Start running the cpu and fixing bugs 2019-04-08 18:57:21 -05:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
YoshiRulz 51d0bdf4cf
Use string interpolation 2019-03-20 15:24:33 +10:00
alyosha-tas cb517aaded Game Linking: resolve #321 2019-02-10 16:22:29 -06:00
Brian Armstrong fe3455be7d call with value, not 0 2019-01-24 03:25:50 -08:00
Brian Armstrong a8f293eec8 Call mem callbacks with addr, value 2019-01-24 03:23:21 -08:00
adelikat 5b26300e50
Merge pull request #1419 from upthorn/master
Extend APIHawk with a lua-like system of api libraries
2019-01-19 17:24:08 -06:00
alyosha-tas c19c7cd5c3 SubNESHawk
also Input register shift fix

# Conflicts:
#	BizHawk.Client.EmuHawk/MainForm.Designer.cs
#	BizHawk.Client.EmuHawk/MainForm.Events.cs
#	BizHawk.Emulation.Cores/Computers/AmstradCPC/AmstradCPC.IEmulator.cs
#	BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.IEmulator.cs
#	BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs
2019-01-10 18:25:59 +03:00
upthorn 71215adf0d Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-01-04 04:58:58 -08:00
James Groom 42764f0019 Add preliminary Unix compatibility (using Mono; resolves #1384) (#1380)
* 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 ...;`
2019-01-04 01:50:55 +03:00
upthorn c76d850687 Working types now allow implicit conversions from longs. 2019-01-03 05:52:31 -08:00
upthorn 34c207ff38 Fixed an infinite recursion in the implicit conversions of the working types 2018-12-23 04:25:08 -08:00
upthorn b9d35399b7 Created some working small integers to bypass C#'s hatred of 8bit and 16bit arithmetic. 2018-12-23 00:46:20 -08:00
Asnivor 1ffeb7cf7e ZXHawk: pentagon initialisation 2018-12-06 12:58:52 +00:00
feos 8a27fe9c56 fix copypaste error 2018-10-24 20:03:20 +03:00
Asnivor 1268b09849 Emulation.Common: Additional method added to inspect *.dsk images in order to work out whether they are ZX, CPC or AppleII 2018-07-19 13:46:37 +01:00
Asnivor 531833c7b0 CPCHawk: Initial project outline (may or may not come to something eventually) 2018-07-03 14:53:09 +01:00
adelikat 22d1818641 DoSettings file for all project to explicitely set language level to C#6 2018-06-23 13:06:13 -05:00
Asnivor 625f063861 ZXHawk: Added wav tape image support 2018-06-22 14:40:40 +01:00
Asnivor b81a7539cf ZXHawk: Added Compressed Square Wave (CSW) tape image support 2018-06-22 13:23:33 +01:00
Asnivor 50123bf8e2 ZXHawk: Experimental PZX tape image support 2018-06-20 15:03:11 +01:00
nattthebear e8145af463 i hope this breaks something 2018-05-12 12:55:42 -04:00
alyosha-tas 98ed9e7c42
Merge pull request #1172 from gifvex/gambatte-lua
Gambatte x lua and fix #1159
2018-05-12 12:06:41 -04:00