Commit Graph

513 Commits

Author SHA1 Message Date
zeromus 327606234f fix can't use neshawk (recent regression) 2016-11-19 20:07:17 -06:00
Wyst3r 86b16a80d6 m64p: Use built-in debugger to avoid major slowdowns when breakpoints are set. 2016-11-19 12:02:39 +01:00
hegyak 79a9b4c349 Resolves Issue 729. 2016-11-16 05:27:37 -08:00
zeromus 595a207c97 add new field to gamedb to specify which core should be used.
allow it to be 'neshawk' or 'quicknes'.

this should only be employed by end-users; we won't make those choices in the gamedb officially.

the quicknes blacklist is still implemented separately.

yeah, that's a lot of prioritization levels.
2016-11-12 19:23:54 -06:00
feos e2d5a1d390 tastudio analog editing: typing past max digits overwrites existing value
this required a new method in FloatRange class
2016-11-12 15:30:44 +03:00
zeromus a7d2b8d7f7 * add a new IToolForm update mechanism which has extensible update points (so a tool can both pre- and post- update)
* make trace logging "core-pushes" model, to a sink installed by the frontend. This sink can go straight to the disk without wasting memory if that's what the Trace Logger tool has selected; or the Trace Logger will buffer it if it needs to.  Formerly, we had a "core-pushes-to-buffer" and "client-pulls-once-per-frame" which necessarily caused huge buffers no matter what was going on.
2016-08-13 15:31:26 -05:00
parasyte 71c7edbb24 Add address mask setting for breakpoints 2016-08-08 04:37:39 -07:00
Isotarge 5a20a520bd Tools: Ram -> RAM #669 2016-07-22 01:32:54 +09:30
nattthebear 7b19db2d64 Fix NES memory domains 2016-07-16 16:13:50 -04:00
zeromus a9c0211d46 change a bunch of old googlecode urls in assemblyinfos 2016-06-13 11:34:27 -05:00
zeromus 0e7adbd818 fix bug from 111648cf98 breaking hex editor and maybe other stuff 2016-06-01 23:05:56 -05:00
Isotarge c4fa170b9e Fix crash & memory leak when opening hex editor with the N64 core loaded 2016-05-09 18:42:21 +09:30
zeromus 75173f2596 add sram memdomain to mgba 2016-04-18 21:46:27 -05:00
zeromus 859f4e3c01 fix 2 watch-related bugs and a typo in an error message 2016-04-15 22:43:14 -05:00
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
zeromus 776e696e09 mgba - fix bug where hard reset caused memorydomains to get permanently wrecked 2016-03-27 16:35:34 -05:00
nattthebear 4bd73a626f Add Monitor support to BizInvoker. Monitors are called right before (Enter) and right after (Exit) each interop method call. Possible applications include AWE mutex+mapping, and cothread no-GC regions. If you ask for an invoker without monitor, this commit adds no overhead because the code isn't generated. 2016-03-22 20:17:28 -04:00
nattthebear 3bc6fe1b04 Add the elf stuff back to solution (doesn't do anything, don't use, ugly and embarassing, etc). Switch gpgx to use bizinvoker and slash a few hacks there. Bizinvoker - add support for forwarded attributes in Compatibility mode ([Out], [In]), and support enum, ref enum, and enum[]. Misc cleanup. 2016-03-10 22:00:52 -05:00
adelikat 5cd11d0bb4 Move Sound component objects from Emulation.Common to Emulation.Cores so they live in the same assembly as the calling cores 2016-03-04 08:37:09 -05:00
adelikat 20f3e235f8 Add documentation to the Emulation.Common IEmulatorService interfaces 2016-03-01 21:10:50 -05:00
adelikat 570eff2b8b Emulation.Common - Move Emulator Services to their own folder 2016-02-28 21:09:06 -05:00
adelikat b3dd9d26dc Misc code cleanups in Emulation.Common 2016-02-28 19:03:01 -05:00
nattthebear 2a0e859a85 Add 64 bit build (doesn't work yet), move SlimDX.dll 2016-02-28 15:06:03 -05:00
adelikat 768905b2db Make an ISpecializedEmulatorService interface to show the intent of certain interfaces. In the core feature analysis, don't show these are unimplemented, as they aren't expected to be implemented by all cores. Make ILinkable inherit this interface.
Also check in ILinkable, I forgot to do that last time
2016-02-28 14:06:11 -05:00
adelikat f1f45afd83 Remove CoreComm link cable properties and turn it into an ILInkable service instead 2016-02-28 13:52:17 -05:00
adelikat 7a4a210ccc Remove some unused code and usings 2016-02-28 13:36:17 -05:00
adelikat fde8dc3d1c Add a TODO! 2016-02-28 13:26:34 -05:00
adelikat 050fa6d86b ocd cleanup 2016-02-28 12:23:11 -05:00
adelikat f9c9994161 Refactor GPGX trace logger - make a CallbackBasedTraceBuffer abstract class in Base Implementations with an abstract method CreateTrace, and inherit it as a GPGXTraceBuffer. 2016-02-23 21:58:40 -05:00
Anthony Konzel ac9a4ef777 Apply C64 core update patch. 2016-02-22 17:50:11 -06:00
zeromus 0eb6e83384 glcontexts can specify versions and clean themselves up 2016-02-21 17:19:34 -06:00
adelikat f5e679fa0d Refactor ITraceable to work on TraceInfo objects that separate Disassembly and Register information. Make Tracelogger two columns. 2016-02-21 17:34:42 -05:00
nattthebear c77de0e8af stuff 2016-02-21 14:00:11 -05:00
nattthebear 1c4c5fb4a3 Rough in some code for BizInvoke in mono 2016-02-20 11:54:44 -05:00
nattthebear 787711389a Clean up and work on BizInvoker some more 2016-02-20 11:30:05 -05:00
nattthebear ca56627197 Add a second form to BizInvoker that creates delegate types and uses GetDelegateForFunctionPointer. This allows slower but more complex pinvoke to be easily done when needed. 2016-02-18 21:07:12 -05:00
nattthebear 96fc7c9ec1 Add experimental interop library to quicknes. Still needs work... 2016-02-17 20:18:01 -05:00
scrimpeh ef1bc65ce6 IInputPollable - Make IsLagFrame settable 2016-01-26 11:34:42 +01:00
Hathor86 c7dcb42b94 Merge from maser@TASVideos 2015-11-15 11:27:00 +01:00
zeromus 7702ae5f3c work on keyboard input, but hasnt been tested yet. also reorg the core a bit 2015-11-08 22:05:48 -06:00
zeromus 53fcc09c08 various bugfixes to system/save pathing and support CAN_DUPE, to stabilize the gambatte and neopop cores 2015-11-08 19:18:08 -06:00
Hathor86 5c36c16160 Fixing merge 2015-11-08 22:57:54 +01:00
Hathor86 cc2c888870 Merge remote-tracking branch 'refs/remotes/TASVideos/master'
Conflicts:
	BizHawk.Client.EmuHawk/MainForm.Designer.cs
	BizHawk.Client.EmuHawk/MainForm.cs
	BizHawk.Client.EmuHawk/tools/CDL.Designer.cs
	BizHawk.Client.EmuHawk/tools/CDL.cs
	BizHawk.Client.EmuHawk/tools/CDL.resx
	BizHawk.Common/InstanceDll.cs
	BizHawk.Emulation.Common/CodeDataLog.cs
2015-11-08 22:41:51 +01:00
zeromus 5c16f8b107 fix some assorted bugs, and experiments with handling more environment calls 2015-11-07 02:29:04 -06:00
zeromus 7651f418fe usably functional libretro player 2015-11-07 00:14:59 -06:00
zeromus c68fdc511b CDL - fix snes games with no cartram 2015-11-03 23:59:42 -06:00
zeromus f3626b9605 snes CDL 2015-11-03 23:45:57 -06:00
Hathor86 f70a2c8c6c Merge from TASVideo 2015-11-01 22:01:19 +01:00
zeromus 1ce0437c3d CDL - add .cdl file map to dialogbox display 2015-11-01 11:23:33 -06:00
zeromus 70e0954f28 CDL - major refactor complete. muuuuch better. 2015-10-28 03:51:53 -05:00
zeromus 6a042cc8ac fiddle around with CDLog menu items 2015-10-27 19:49:13 -05:00
adelikat 400e4f4800 Add an empty ICodeDataLogger emulator service, make it a required service for CDL.cs 2015-10-27 19:03:56 -04:00
zeromus 0ff0749191 add IMemoryDomains.Has 2015-10-26 21:41:43 -05:00
adelikat 32a2711303 When clearing lua callbacks, handle the case that input callbacks might not be implemented, also handle memory callbacks in a more consistent way 2015-10-12 19:02:03 -04:00
Kabuto f7c15bfd0f Fixed indentation and TODOs 2015-09-28 20:53:19 +02:00
Kabuto 1e9564a337 C64 core: tape loading added, lots of bugfixes and improvements 2015-09-28 01:30:58 +02:00
adelikat 76f285a58a forgot to add this file, because that's what I do 2015-08-05 20:57:01 -04:00
adelikat ba21484ddd add IRegionable as an emulator service to indicate NTSC vs PAL, etc. Refactor cores that conveyed this information to use this service, fixed cheaty reflection to grab this info to use the service instead, marked some cores as region not applicable where it made sense to me (I'm sure I'm wrong in some cases) 2015-08-05 20:12:09 -04:00
Suuper f9cd2f4075 -TAStudio: Players' 2, 4, etc input columns have darkened bg colors.
-LagLog is now moved over to new savestate-anchored movies
2015-07-23 12:55:22 -05:00
zeromus 6e1cde2793 hookup PSF support 2015-07-20 23:11:00 -05:00
zeromus a7ae3c0cfc Merge branch 'discsys'
Conflicts:
	BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj
	BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGXDynamic.cs
	libmupen64plus/mupen64plus-win32-deps
2015-07-11 14:01:44 -05:00
zeromus a6f37173b0 add GameInfo DB options fetcher for string type 2015-07-11 13:47:04 -05:00
zeromus 691531421a more discsys reorg 2015-07-11 13:46:57 -05:00
zeromus 67468e93ec discsys reorg and move CDAudio to BizHawk.Emulation.Common for cleaner assembly reference dependencies 2015-07-11 13:46:56 -05:00
adelikat 3541c9e975 Make the lag counter settable, and expose this functionality in lua 2015-07-09 13:05:30 -04:00
adelikat 71f23f4886 nothing to see here 2015-06-11 13:13:11 +00:00
adelikat 5bcdfb5991 IInputPollable - remove the set on LagCount as it is not needed 2015-06-11 01:23:14 +00:00
adelikat 26769ba476 Add .do and .po files as Apple II files 2015-05-28 00:16:08 +00:00
adelikat 996c7bc847 Add apple II to the core picker 2015-05-26 23:43:55 +00:00
adelikat f4140de3f7 Apple II - get necessary firmware files from the firmwares system instead of a hardcoded path, added entries to the firmware database for the files I have, no idea what other files are compatible 2015-04-09 00:18:01 +00:00
goyuken 3bf2d8f00b fix an apple II controller crash problem introduced in r9264 2015-04-04 00:20:28 +00:00
SuuperW 52659ac9a9 -Hacky removal of a useless save when loading a TasProj
-Made ControlsOrdered much faster
2015-03-23 21:16:13 +00:00
adelikat 997558076f If a core has no system bus, default to main memory if SystemBus is requested, fixes cheat dialog from blowing up on a bunch of cores with no system bus defined 2015-03-05 01:07:31 +00:00
goyuken adc3e96ca8 iemulator single instance attribute. to find out about: PSX, Apple2 2015-03-03 00:23:50 +00:00
adelikat 7e763408e2 Move MainForm.SupportedPlatforms to Emulation.Common.SystemLookup 2015-02-22 17:15:09 +00:00
adelikat 66a9b8eb5a IInputPollable - don't inherit IEmulator 2015-02-22 16:57:32 +00:00
adelikat 36f4eff0f6 add ByteSize to MemoryDomain with a default of 1, set it to not 1 on appropriate domains (I probably missed some, or got some wrong). Have RamSearch use that instead of SystemInfo, remove ByteSize from SystemInfo since it is no longer needed 2015-02-22 15:19:38 +00:00
adelikat 5183a8e20d Nothing to see here 2015-02-17 22:58:25 +00:00
adelikat 0316fa9817 some rom loading stuff 2015-02-08 21:51:15 +00:00
goyuken a782fdb315 take 2 2015-02-05 23:53:25 +00:00
goyuken 995f670d36 frontend tracks loaded firmware: proof of concept 2015-02-05 23:25:28 +00:00
adelikat 8246de14aa IMemoryCallbackSystem - add a flag to indicate whether execute callbacks are available, in lua and the debugger, take this flag into account, also improve some availability checking in Lua memory callbacks. Flag N64 as not having execute callbacks available 2015-01-25 22:14:58 +00:00
goyuken 2c09c10721 memory domain: silent pokes 2015-01-25 20:10:19 +00:00
adelikat e1811371e4 Cheats - only allow writable domains in the domains dropdown 2015-01-25 16:20:53 +00:00
adelikat 7ed8704555 add a CanPoke() extension method for memory domains, checks for a null or not implemented Poke Poke delegate, use it to disable Poke on Ram Search and Ram Watch, still todo - hex editor and lua 2015-01-25 14:37:37 +00:00
adelikat ac442130ae Refactor IMemoryDomains and MemoryDomains to have setters for MainMemory and SystemBus, so a core can customize instead of using a one size fits all assumption. Remove constructor that sets main memory and refactor accordingly 2015-01-24 16:02:28 +00:00
adelikat 7b87f666a1 MemoryDomains - rename CheatDomain to SystemBus 2015-01-24 15:49:02 +00:00
adelikat e194c9f0c4 Memory callbacks - check the HasReads/Writes/Executes flags during the call methods so that the responsibility does not fall on the core, remove the check in the PCE core 2015-01-24 14:52:20 +00:00
adelikat 3c5348eb86 MemoryCallbackSystem - keep track of whether or not there are any callbacks of each type instead of checking .Count > 0, provides a small but noticeable speedup 2015-01-24 14:39:12 +00:00
adelikat 342957fb33 Null Emulator - add some more metadata 2015-01-23 21:50:33 +00:00
adelikat 7cca0be2e7 IEmulatorServiceProvider and BasicServiceProvider - restrict to IEmulatorServices 2015-01-23 20:55:13 +00:00
goyuken af451143bf a bit of memory domain cleanup 2015-01-21 17:36:22 +00:00
adelikat 27d30df0cf Rip out the MemoryDomain.Size hack, and fix up the hex editor. Hex editor now works for N64 System bus, but will very much fail as soon as we have a domain greater than 32 bits 2015-01-18 16:00:20 +00:00
adelikat 91ffc17aae Refacotor MemoryDomain.Size to be long instead of int, still some small todos, but it compiles and seems to work 2015-01-18 15:25:47 +00:00
adelikat 54605ad12f MemoryDomain.cs - convert some public redonly fields to properties with private setters 2015-01-18 13:53:21 +00:00
goyuken 76969200a3 cleanup 2015-01-15 03:58:21 +00:00
adelikat de34d29ac1 Basic Service Provider - don't register IEmulatorService 2015-01-14 23:01:06 +00:00
adelikat 7e50a065a6 make IVideoProvider inherit IEmulatorService 2015-01-14 22:58:14 +00:00
adelikat 5c768b1dc4 IEmulatorServiceProvider - add an AvailableServices property, Service Provider - don't register type object 2015-01-14 22:53:08 +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 fbdb29b64c refactor IMemorydomains to be a domain list instead of having a domain property, refactor cores to register an IMemoryDomains instead of being one 2015-01-14 21:55:48 +00:00
adelikat c1bb613ab4 Move MemoryDomain.cs to Base Implementations 2015-01-14 20:22:05 +00:00
adelikat 9358e24213 IMemoryDomainList - downgrade from IList to IEnumerable, refactor a spot that needed something more than that 2015-01-14 00:34:50 +00:00
adelikat d62ba4e2b4 Change IMemoryDomains to have an IMemoryDomainList instead of a MemoryDomainList, this is an incremental step into eventually having IMemoryDomains take over the properties of IMemoryDomainList, still todo: reduce the amount of needed functionality in IMemoryDomainList from old and not good code 2015-01-13 22:18:07 +00:00
goyuken d2b0579609 yabause: clean up memory domains slightly 2015-01-13 21:46:28 +00:00
jdpurcell 0a345b0084 Issue 368: Set all platform targets to x86, rename build platforms to match, and remove unused build platforms. 2015-01-13 15:28:58 +00:00
jdpurcell f9da63d71d Fix gamedb loading with Turkish locale. 2015-01-13 02:03:10 +00:00
adelikat 17b4782474 Change "BUS" to "System Bus" in both GBA cores, and the bsnes core, don't account for "BUS" in the CheatDomain property 2015-01-13 00:01:25 +00:00
adelikat c1cbad1b30 rename MemoryDomain.SystemBus to MemoryDomain.CheatDomain to better describe its intent 2015-01-12 23:54:16 +00:00
adelikat 1c54c52fff bk2 - when ordering buttons, support up to 8 players, fixes issues 361 and the remaining problem with issue 360 2015-01-11 15:54:01 +00:00
goyuken d1caf79a56 toolmanager: when electing to close and not restart a tool because of lack of services on the new core, clear out all services attached to the core first. this will turn some existing silent failures into NullReferenceExceptions, likely. fix one such bug in GBAGPUView 2014-12-31 17:18:51 +00:00
adelikat 0f2197cec1 Break off ITracer from IDebuggable, rename to ITraceable and make it an IEmulatorService, refactor things accordingly 2014-12-23 01:58:12 +00:00
goyuken 808e17c3f7 tracelogger settings 2014-12-22 19:01:21 +00:00
goyuken ff8922bb08 itoolform custom config infrastructure; not complete 2014-12-20 21:49:53 +00:00
adelikat ffdeb618f7 IDebugable - add a CanStep() method, and implement it in all IDebuggable implementations 2014-12-20 13:29:57 +00:00
adelikat a8116297a0 Rename Register to RegisterValue 2014-12-20 13:16:15 +00:00
goyuken 198a1c7612 cleanup 2014-12-20 04:25:31 +00:00
goyuken cef4ee7f11 cleanup 2014-12-20 04:17:43 +00:00
goyuken 8745ef190b fix stuff not compiling 2014-12-20 04:16:02 +00:00
adelikat 7bebb66589 IDebuggable - refactor GetCpuFlagsAndRegisters to be IDictionary<string, Register> where Register is a value and a bitsize 2014-12-20 03:19:33 +00:00
goyuken 7f2e323a27 upgrade christmas 2014-12-17 19:52:30 +00:00
goyuken ecf8728de6 factor out serviceinjector to emulation.common 2014-12-17 18:17:16 +00:00
goyuken 7efcd7cc0b comments! 2014-12-17 01:20:53 +00:00
goyuken 7cecd20d8d restore large speed regression on NESHawk core from r8379. other managed cores were likely affected. most managed cores not affected because of event tracking... 2014-12-17 01:17:41 +00:00
adelikat bb940473bb Emulation.Common - move some misc enums into Enums.cs 2014-12-16 17:06:29 +00:00
goyuken ea47246658 remove the IEmulator inheritance from some services, and fix code as needed 2014-12-15 22:25:06 +00:00
adelikat d08fb39cb8 Refactor IDebuggable StepInto/Over/Out methods into void Step(StepType type); 2014-12-15 22:19:10 +00:00
goyuken b23294a68f remove the IEmulatorService requirement from IEmulatorServiceProvider and BasicServiceProvider 2014-12-15 21:35:09 +00:00
goyuken 95f92c7ed0 remove iemulator requirement from some of the iemulatorservices 2014-12-15 01:01:02 +00:00
adelikat 725a8fb092 Add StepInto(), StepOver(), StepOut() to IDebuggable, have all cores implement it with unimplemented dummy functions 2014-12-14 18:58:16 +00:00
adelikat 7cc3fdec4b Add PCRegisterName to IDisassemblable 2014-12-14 17:27:45 +00:00
goyuken 10e38e7bc9 fix BANDAI FCG 1 Boards without barcode reader 2014-12-14 17:19:54 +00:00
goyuken 09f9d50f46 IDisassemblable changes. can't compile right now, so might not work 2014-12-14 17:17:22 +00:00
adelikat d1cc13a9c0 BasicServiceProvider - catch any IEmulatorServices that the core implements that aren't defined in the Emulation.Common assembly, and make IGBAGPUViewable an emulator service 2014-12-13 23:45:51 +00:00
scepheo 769cbeb1a0 - IToolForm: Added RequiredServices attribute to define dependencies, and added EmulatorServices for ToolManager to supply them.
- IServiceProvider, BasicServiceProvider: Added compile-time unknown type versions of GetService and HasService.
- ToolManager: Added IsAvailable to test whether all dependencies for a tool are available.
2014-12-13 21:54:59 +00:00
goyuken c6ed49c067 some disassembler stuff 2014-12-13 21:49:15 +00:00
adelikat 9a7715009a Add an IDisassemblable emulator service, currently no core implements it, just the interface and the IEmulator extensions 2014-12-13 20:52:52 +00:00
adelikat 925d6f5a50 BasicServiceProvider - allow the core to return itself when its specific implementation is requested 2014-12-13 16:22:36 +00:00
adelikat 45809ab73f move an attribute in Wonderswan core that was on the constructor on accident, added an AttributeTargets attribute on it that would have caught such an error, add AttributeTargets on some other attributes to help clarify their usage 2014-12-13 02:31:31 +00:00
adelikat 08fb509a1a Add an IDriveLight Emulator service, and remove the CoreComm properties, and refactor accordingly 2014-12-12 01:49:54 +00:00
goyuken 9513d209b1 comments! 2014-12-09 21:52:03 +00:00
zeromus e0c09a553b redo how subwcrev stuff is done, so that the subwcrev process doesnt have to run for every project. improves build times. 2014-12-09 19:20:22 +00:00
adelikat 68e1eae014 MemoryCallbackSystem - implement IEnumerable, Debugger - use it to pre-populate the breakpoint dialog with pre-existing breakpoints 2014-12-07 19:38:42 +00:00
adelikat be8563469c Refactor MemoryCallbackSystem. Now that the API is much simpler, the underlying code can be as well. 2014-12-07 19:27:21 +00:00
adelikat 1c179da80c MemoryCallback System - another refinement, make an IMemoryCallback and make that the argument for add methods 2014-12-07 19:09:36 +00:00
adelikat 2d1a43dc65 MemoryCallbackSystem - simplify by having a single Add method with a MemoryCallbackType parameter, and some simplifying of client code as a result 2014-12-07 18:53:56 +00:00
adelikat 3ded6116a6 Break up ColecoVision.cs into separate files 2014-12-05 03:16:08 +00:00
adelikat 7cc5822dfd Add ActiveChanged event to MemoryCallbackSystem 2014-12-05 02:07:56 +00:00
adelikat 0b84beec88 Move MemoryCallbackSystem from CoreComm to IDebuggable and refactor accordingly, Lua - tell the user when memory callbacks are not available for a given core 2014-12-05 01:56:45 +00:00
adelikat e2033c9d2e AsStatable() and also update statusbar saveslots on CloseRom() 2014-12-05 00:52:16 +00:00
goyuken 40416656a2 eliminate snowiy emulator option from CoreComm. this commit is a bit hackish 2014-12-05 00:39:02 +00:00
adelikat 04f9081943 in IEmulator extensions add methods such as AsMemoryDomains(), AsStatable() that do the service calling magic. In the client code replace appplicable casts of IMemoryDomains with AsMemoryDomains(), more commits of this nature for the other IEmulatorServices soon to follow 2014-12-05 00:32:29 +00:00
adelikat cda9203ca5 Forgot to add these files 2014-12-05 00:17:34 +00:00
adelikat d7f88ecbf9 Chane IEmulator Extension methods like HasMemoryDomains to use the HasService<T>() method 2014-12-05 00:15:28 +00:00
adelikat a91de9ad9c Move TraceHeader out of CoreComm and into ITracer and TraceBuffer 2014-12-05 00:10:48 +00:00
adelikat 309088211c Move TraceBuffer from CoreComm to IDebugable and refactor accordingly 2014-12-05 00:05:40 +00:00
adelikat 02f5206382 remove a debug line of code that I checked in on accident 2014-12-04 22:38:03 +00:00
adelikat eb085fe29d fix logic error in Remove call on InputCallbackSystem 2014-12-04 22:31:42 +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 529591ce2d Rename ICoreService to IEmulatorService 2014-12-04 02:12:57 +00:00
goyuken 7f9adc0c1d dgb: reenable input callbacks. 2014-12-04 02:04:14 +00:00
adelikat ccb8cce788 InputCallbackSystem - add an ActiveChanged event handler, the event fires anytime the collection goes from 0 to greater than 0, or greater than 0 to 0 2014-12-04 00:56:04 +00:00
adelikat a07263c04e Move InputCallbackSystem from CoreComm to IInputPollable, and refactor all cores accordingly. Lua - OnInputPoll() - log to the user when attemping to add a callback of this type to a core that has not implemented input callbacks. Mark all unmanaged cores' implementations of the InputCallbackSystem as FeatureNotImpleented, won't have any effect on functionality, but will help us keep track of the fact that they still have a bit of work to do. Still todo: ActiveChanged event handler on the base implementation of IInputCallbackSystem 2014-12-04 00:43:12 +00:00
adelikat 7ffe07c44b Emulation.Common IsImplemented extensions - fix logic, if FeatureNotImplemented exists it is always considered not implemented 2014-12-04 00:38:42 +00:00
goyuken 78209348dd move NullSound to its own file, as it's not actually used in NullEmulator 2014-12-01 16:56:51 +00:00
adelikat a104c420cf Move CoreComm.cs out of the interfaces folder 2014-12-01 14:28:57 +00:00
adelikat b08bfc0a2b Move DisplayType out of IEmulator.cs, that's an annoying place for it to be, instead put it in a new file with Enum.cs which has one line which is silly. silly > annoying 2014-12-01 14:27:23 +00:00
adelikat 9adc45f4d1 Add a ServiceNotApplicable attribute for cores to mark things like SaveRam and ISettable as not applicable for the given core, update the CoreFeatureAnalysis dialog to not show these interfaces for the given core (and not mark them as incomplete). Set various cores accordingly 2014-11-30 23:41:54 +00:00
adelikat c4768c102e Move ControllerDefinition to its own file 2014-11-30 23:05:00 +00:00
adelikat b05bed93ac Emulation.Common - move Base Implementations out of the interfaces folder, never made sense to be there 2014-11-30 23:02:16 +00:00
adelikat 745b8f555b Controller Config menu item - disable based on ControllerDefinition having any buttons rather than check for Null Emulator 2014-11-30 22:56:02 +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 5ce1d02df7 Null Emulator - rip out now uneeded stubs, increment frame counter during FrameAdvance (might as well, since it has a notion of advancing a frame) 2014-11-30 20:01:36 +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 9422f02fa2 Feature List - hook up the ThrowsError() extension to IsImplemented 2014-11-30 14:52:52 +00:00
adelikat 4681fef0c2 Add an IsNull() extension method to IEmulator (checks for null and if NullEmulator) and replace EmuHawk NullEmulator checks with this method instead 2014-11-30 14:18:44 +00:00
adelikat 8c4e0f1203 Move some extension methods to a better location 2014-11-30 14:04:00 +00:00
goyuken 50c4414a93 confirm a few sizes in firmware database 2014-11-24 23:18:05 +00:00
zeromus 17d67fa366 small clarifications to firmware DB 2014-11-24 23:13:54 +00:00
scepheo 2c79016725 Added ThrowsError() and IsEmpty() extension methods for MethodInfo. 2014-11-24 19:51:27 +00:00
goyuken 9c02bf77ba wonderswan: clear out unused code for clear saveram 2014-11-24 18:50:18 +00:00
adelikat 0e82fff3ff Clean out ClearSaveRam() calls since they are no longer used 2014-11-24 15:00:54 +00:00
goyuken baa1556836 remove IEmulator.ClearSaveRam() from the interface 2014-11-24 02:22:47 +00:00
adelikat bded999177 Create a FeatureNotImplemented attribute, the intend of which is to apply to any unimplemented method of an ICoreService method/property, set some methods in Intellivision to this, and have CoreFeatureAnalysis look for the presence of this attribute and report unimplemented properties/methods 2014-11-24 00:38:29 +00:00
adelikat 4582a88798 Add an ICoreService interface that interfaces such as IEmulator and IDebuggable inherit 2014-11-23 20:30:53 +00:00
adelikat 1832894405 IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary 2014-11-23 16:22:02 +00:00
adelikat 133d690363 Move IDebuggable to its own file, in anticipation of it having enough stuff to warrant it 2014-11-23 16:10:46 +00:00
adelikat e6e2972e3d Make IMemoryDomains inherit IEmulator and simplify some code slightly as a result 2014-11-23 16:03:04 +00:00
adelikat d64be5ed76 SystemID is Lynx not LYNX, cuz I said so 2014-11-21 01:32:15 +00:00
zeromus a7432a1e52 firmwaremanager now tracks filesizes, and filesizes of known firmwares are used to restrict scope of scanning 2014-11-13 00:09:16 +00:00
goyuken dc2ca1f010 remove the extra ISettable (non-generic argument) interface and corresponding crud from cores, and replace with a shim class 2014-10-31 15:46:13 +00:00
goyuken ff95066672 quicknes: reject (with the appropriate unsupported exception) any bootgod positive euro rom 2014-10-29 18:58:43 +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
jlennox 10b6bed056 Add IDebuggable to relevant cores and remove non-implementations of GetCpuFlagsAndRegisters/SetCpuRegister 2014-10-18 22:30:06 +00:00
jlennox 01a994fe9c Break IDebuggable off from IEmulator 2014-10-18 22:13:25 +00:00
goyuken 9f274d93fb fix lynx firmware entry 2014-09-15 21:29:23 +00:00
goyuken 28a37a57da lynx mah boi https://www.youtube.com/watch?v=bNpLXo55yfw 2014-09-15 20:12:11 +00:00
adelikat 1693a2a1ed Cheats dialog - default to System Bus domain 2014-09-13 14:21:08 +00:00
zeromus 87e9d235f6 make some effort to support memdomain of full 32bits size, and use it for n64 system bus. make sure to check that its disabled in ramsearch engine and in hex editor. we could probably fix it to work in hex editor later. 2014-09-09 21:34:41 +00:00
goyuken 93eb656eba gpgx: account for the fact that rom and ram are emulated with 16 bit swaps 2014-09-08 14:50:36 +00:00
pjgat09 239df5d5f9 N64: Savestates now only save and load half the RDRAM if the expansion pack is not installed. 2014-09-07 00:43:19 +00:00
goyuken 8634d52bed remove the dummymemorydomainlist as its not needed anymore (if a core has no memory domains, it simply doesn't have the interface) 2014-09-01 21:09:25 +00:00
adelikat 5ba74c631c Remove MemoryDomains from IEmulator into a new Interface, IMemoryDomains, Add this interface to existing cores, except null emulator (and removed memory domain related code from it). Refactored EmuHawk for ram tools to use an instance of IMemoryDomains rather than IEmulator, don't expose ram tools unless the core implements IMemoryDomains. Still a few misc todos, and probably some cleanup 2014-09-01 18:43:41 +00:00
hegyak a46bd896ff Fixed a spelling error in FirmwareDatabase.cs relating to GBA BIOS 2014-08-24 14:41:49 +00:00
adelikat 56384da18b Front end for the Link Cable status bar icon 2014-08-23 01:18:59 +00:00
goyuken 6bc604e5a5 clean up comments on IEmulator slightly to explain the Settings\SyncSettings contract better 2014-08-20 18:08:22 +00:00
goyuken a25c6b4665 TextState (common to GB, WS, etc): clean up JSON formatting slightly. not a breaking change. 2014-08-18 18:00:22 +00:00
goyuken 8c4696609d vba next: memory domains 2014-08-16 05:45:31 +00:00
goyuken ceae8d71b5 memory domain: minor refactor and cleanup 2014-08-15 21:21:17 +00:00
goyuken 29f34ed79a clearsaveram() internal infrastructure changes 2014-08-13 19:16:48 +00:00
goyuken f0c8bd3842 IEmulator: clarify naming and implementations so it's clear that CloneSaveRam() always returns a clone that you can do whatever you want with (but won't modify the underlying) 2014-08-13 17:52:13 +00:00
adelikat 647adabea3 Simplify even more! 2014-08-13 01:44:22 +00:00
adelikat e9110be6ff simplify the InputCallbackSystem object 2014-08-13 01:43:28 +00:00
goyuken 28b26fadcc add a "defaults" button to the generic core config dialog, used by wonderswan, genesis, saturn, and 2600 2014-08-10 22:01:17 +00:00
goyuken 56467334b3 gambatte: throw unsupportedmapperexception when appropriate. libsnes: throw cgbexception when trying to load cgb only game in sgb 2014-08-01 14:56:23 +00:00
adelikat ad5b60f137 Create a MissingFirmwareException in Emulation.Common, and catch this in the Rom loading logic, on the client side, respond to this type of error with a nice message and an option to configure their firmware. Have NesHawk throw this exception when there is a missing FDS Bios. Other cores will need to be implemented this way too at some point 2014-07-31 21:15:07 +00:00
adelikat 240264c3c5 Since Global.Game is never null now, add a IsNullInstance property to check against instead, and refactor code that checks for null 2014-07-21 22:21:52 +00:00
goyuken 2383cc3963 make r7219 consistent across different audio throttle settings 2014-07-13 17:12:26 +00:00
zeromus dc6daddff7 add option to disable fullscreen hacks (may increase latency) and snowy null emulator (may increase seizure rate) 2014-07-12 20:42:44 +00:00
adelikat fd80c62cdb More Util methods -> extension methods 2014-07-03 19:20:34 +00:00
adelikat bf88be8c72 Convert some more util methods to extension methods 2014-07-03 19:05:56 +00:00
adelikat 6cba3568ef More extension reorg 2014-07-03 17:23:03 +00:00
adelikat f546a8080c Move some extension methods from the generic extensions file to NumberExtensions and fix up namespaces 2014-07-03 15:35:50 +00:00
zeromus 42ee461b2c fix an error in PSX firmware database 2014-06-29 22:04:25 +00:00
adelikat 676d1ecd0f Virtualpad - add a PlayerCount property to ControllerDefinition with a rather crude but effective implementation for now, and use it when populating PCE virtualpads, so it will dynamically generate the correct values should PCE's number of controllers ever become configurable 2014-06-28 15:56:20 +00:00
adelikat 0b21085a98 Bk2 - Rework how input logs are generated and read 2014-06-21 11:56:30 +00:00
zeromus f43859f421 give firmware database and UI ability to track ok/notok/bad state of an option/firmwarefile. apply tons of research to study PSX bios files situation 2014-06-21 06:40:07 +00:00
zeromus fb985579c7 add PSX firmwares to firmwares DB 2014-06-21 00:33:35 +00:00
goyuken 90f627d883 wonderswan: debugging callbacks 2014-06-19 15:57:07 +00:00
zeromus 1edd4edb49 add a crappy little PCE sound debugger and individual channel muting 2014-06-09 08:10:20 +00:00
zeromus 3ea6495031 give yabause its own GL context. gets gl+yabause minimally working. maybe still loadstate-related crashes. 2014-06-08 23:30:34 +00:00
goyuken e3cb22889a add some extra error checking to the text savestate system used by gameboy and wonderswan. does not change the actual savestate format at all 2014-06-04 18:53:57 +00:00
adelikat 3917e7c528 Automate the about box 2014-06-01 01:57:22 +00:00
adelikat 51660dd023 Add SetCpuRegister() to IEmulator. Implemented it in Atari 2600, 7800, C64, Neshawk, and technically dual gameboy (passes it to L and R where it will fail). The rest throw NotImplementedExceptions. Lua - add emu.setregister(), catches NotImplementedExceptions and informs the user. 2014-05-31 17:03:21 +00:00
goyuken 58efa286df move stuff 2014-05-31 16:12:59 +00:00
adelikat 9a24539c10 Lua - catch NotImplementedException on emu.getregister(s) and warn the user that this particular core doesn't implement this feature yet. Also, put IEmulator extensions in their own namespace 2014-05-31 14:29:27 +00:00
goyuken c306e61d5b mednafen 0.9.34.1 "cygne" (wonderswan) 2014-05-30 05:09:54 +00:00
goyuken 2f7ad6a676 2600: more stuff towards PAL support 2014-05-23 15:47:48 +00:00
adelikat 0588c3d7ea Check in patch from zeromus that provides back end support for custom Axis constraints for analog input 2014-05-17 19:35:47 +00:00
goyuken b0970451aa internal infrastructure for video presentation changes (aspect ratio, apparent size, etc) 2014-04-30 23:48:37 +00:00
goyuken fd5b7263ea NES - MMC5 - head off some possible peek nondeterminism problems before they occur 2014-04-30 20:32:13 +00:00
adelikat de1cb218a6 Add more info to IEmulator CoreAttributes, add status bar icon that gives the name of the current core with a tooltip with additional info, put bizhawk icon on "in house" cores, and the icon of the ported emulator on ported cores. Still todo: icons for ported cores other than quicknes 2014-04-25 01:19:57 +00:00
adelikat c74019a54d Add a CoreAttributes class with a CoreName field, and apply it to all cores, when recording a new movie, add a core header line that captures this name 2014-04-22 00:38:59 +00:00
adelikat a61ff53d9c Change IEmulator.GetCpuFlagsAndRegisters() to a Dictionary, fix a warning, throw NotImplemented exceptions in cores that don't implement this method rather than returning an empty list. Start Debugger UI User Controls 2014-04-19 22:23:13 +00:00
adelikat 285a7241b9 On the Rom Details dialog, if the Rom is unknown and the Core supports a GenerateGameDbEntry() method, show the button. When clicked it will add the Game Db entry to gamedb_user.txt, from which point it will be a known rom to the user. Implement this method on Atari 2600. Still TODO: allow them to pick the status instead of assuming "Good" 2014-04-15 22:10:39 +00:00
adelikat 54949127ee some nitpicky cleanup of the Database.cs file 2014-04-14 23:14:39 +00:00
adelikat 449d3fa2e2 Platform Chooser - show rom information, only invoke dialog on a list of generic rom extensions (currently that is .bin and .rom), remove .rom from the list of intellivision extensions 2014-04-14 12:25:57 +00:00
adelikat 32b4f940a9 Add a Platform Chooser that activates when the user attempts to load a .bin file that is not in the game database. Still todo: more platforms, and interim flag logic on some unreleased cores 2014-04-14 01:59:57 +00:00
adelikat 3e2a1e9835 Database.cs - make the big ol switch more readable by grouping some things and using sane spacing 2014-04-14 00:55:10 +00:00