Dan B
b962f06e07
Fix quicknes
2019-01-06 12:16:28 -05: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
nattthebear
e70549667d
Fix a lot of mappers in quicknes that had been accidentally broken since 2016, including mmc2, mmc4, vrc6
2018-02-24 15:19:26 -05:00
alyosha-tas
eaf2ff4df6
QuickNES: Blacklist Joe and Mac
...
Resolves #993
2017-11-03 14:08:57 -04:00
adelikat
c6e0e9fa57
Rename CoreAttributes to CoreAttribute as to not be a bad person
2017-07-12 14:10:55 -05:00
nattthebear
1292b27163
Add some draft work for supporting sysv <-> msabi interop. I wonder if we'll ever use this? I'd put it on a separate branch but it would be merge hell.
2017-06-18 08:51:09 -04:00
adelikat
1dae91e6a8
clean up core constructors - consistent parameter casing, and put them at the top of the class
2017-05-05 19:05:36 -05:00
adelikat
62a13d961d
Move VsyncNum and VsyncDen out of CoreComm and into IVideoProvider
2017-05-05 11:21:37 -05:00
adelikat
698c6741ae
Refactor IEmulator and remove the IController property, instead pass it as a paramter to the FrameAdvance() method
2017-05-01 20:09:11 -05:00
adelikat
b3ad3ce6ba
Move BizInvoke files from Emulation.Common to Common
2017-05-01 17:30:42 -05:00
adelikat
ded1c2d7b7
Break off BoardName from IEmulator into a separate IBoardInfo service
2017-04-30 21:01:54 -05:00
adelikat
3192cc70ae
slight refactor to IEmulator - make the IController property set only to more clearly express the client -> core relationship
2017-04-26 19:09:00 -05:00
nattthebear
7d60049b86
remove leftover debuggign cruft
2017-04-21 22:04:09 -04:00
nattthebear
f3f9ad8e9b
honk
2017-04-21 21:59:04 -04:00
alyosha-tas
685de44861
QuickNES fix Ms. Pac Man (Tengen)
...
Really it's the iNES header that is wrong, but QuickNES doesn't know this so adjust the file before sending it to QuickNES to boot.
I imagine there are other games that would be fixed in this manner and thus run in QuickNES.
2017-03-02 20:05:20 -05:00
alyosha-tas
da2d72a953
Add Cybernoid to QuickNES Blacklist
2016-12-20 10:21:42 -05:00
adelikat
72a59087b5
Use the IController indexing property less in preparation for removing it from the interface. Replaced with its more explicity counter-part .IsPressed()
2016-12-14 12:42:15 -06:00
adelikat
b73a500d6b
Major sound provider refactor. Create a unified interface ISoundProvider, that is an IEmulator service and break it off of IEmulator. IAsyncSoundProvider was kept as a shim for now, for legacy cores that were inherintly async.
2016-12-11 11:15:00 -06:00
adelikat
b697110098
Rename ISoundProvider to IAsyncSoundProvider to more accurately describe what the service does
2016-12-09 10:24:43 -06:00
adelikat
b6dcc8d735
Quicknes - blacklist another VS rom
2016-11-10 18:25:22 -06:00
adelikat
194b83d0b1
quicknes - blacklist some VS roms
2016-11-07 19:44:47 -06:00
adelikat
b9f4d20de9
NES - support 800-in-1
2016-10-28 16:52:29 -05:00
adelikat
b931e79052
blacklist a rom in quicknes, add a gamedb override for a random hacked rom
2016-10-28 07:52:47 -05:00
adelikat
3e925a13a8
Quicknes - black list some more roms known to not work with it (but work in neshawk)
2016-10-25 17:14:52 -05:00
adelikat
ed5b4120a5
Quicknes - blacklist a whole bunch of roms that don't run for various reasons, so that they fallback to NesHawk
2016-10-13 17:52:29 -05:00
nattthebear
1c4c5fb4a3
Rough in some code for BizInvoke in mono
2016-02-20 11:54:44 -05:00
nattthebear
96fc7c9ec1
Add experimental interop library to quicknes. Still needs work...
2016-02-17 20:18:01 -05:00
nattthebear
6f8bcc2be3
trace for quicknes
2016-01-30 13:47:14 -05:00
adelikat
254263c1df
For QuickNES to bail out on Pro Action Replay (E) (REVA), since it can't do PAL
2015-08-24 21:24:59 -04:00
adelikat
e841707502
Quicknes - throw an UnsupportedGameException on Paperboy (U) because input will not work for some reason, this allows it to fallback to NesHawk automatically
2015-07-18 08:58:52 -04:00
adelikat
3867a890fc
NES - fallback from quicknes to neshawk for Bill and Ted's Excellent adventure since quicknes is not able to run it
2015-04-12 19:17:31 +00:00
adelikat
e8e4c74962
QuickNES - break up into separate files
2015-01-16 01:38:47 +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
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
adelikat
efc8d26ac7
quicknes - default to true for Clip Top and Bottom
2015-01-05 20:00: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
d28d5e5a9b
quciknes: enforce objectdisposedexception so as to avoid accessviolations
2014-12-21 17:40:06 +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
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
d305b2f538
partially functional ppu viewing tools for quicknes
2014-12-17 03:27:44 +00:00
adelikat
d08fb39cb8
Refactor IDebuggable StepInto/Over/Out methods into void Step(StepType type);
2014-12-15 22:19:10 +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
9fc46f6764
mark cores that would not ever use IDriveLight, a bit silly, but it keeps the feature list clean and that's currently my only source of sanity with keeping up with what needs to be done
2014-12-12 01:58:12 +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
309088211c
Move TraceBuffer from CoreComm to IDebugable and refactor accordingly
2014-12-05 00:05:40 +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
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
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