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
adelikat
ab1a22bf31
add TotalExecutedCycles as an IDebuggable property, and implement it in cores with the information readily available (and throw NotImplementedExecptions in the remaining). wire the property up to lua with emu.totalexecutedcycles(). Stil todo - wire it up to the Debugger gui
2017-01-09 19:23:05 -06: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
adelikat
bd60cf9929
Quicknes - fallback to neshawk when the ines header fails basic sanity checks, neshawk tends to handle this situation more gracefully, but more importantly this error happens before quicknes can determine if it supports the necessary board
2016-10-11 17:54:21 -05:00
feos
76eaea3619
tracer unification for cores: spacing, headers, etc
2016-08-16 01:39:26 +03:00
feos
888d7fed6a
tracer: set some padding
2016-08-14 22:59:07 +03:00
nattthebear
111648cf98
Break a bunch of memory domain stuff with pointless refactoring
2016-04-13 19:50:06 -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
d477bc1fb6
nice Trace header for SMS, and Coleco
2016-02-28 08:07:02 -05:00
feos
f590ed9e19
tracer: gpgx and qn header formats, include cpu name.
2016-02-27 20:05:58 +03: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
feos
dfb0cf37d8
debugger: return address in hex when copying.
...
quicknes: uppercase numbers, since its mnemonics are uppercase too.
2016-02-21 18:45:09 +03: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
adelikat
5ee06325bc
QuickNes - trace logger - make logging pretty and more informative
2016-02-05 21:28:16 -05:00
nattthebear
6f8bcc2be3
trace for quicknes
2016-01-30 13:47:14 -05:00
scrimpeh
ef1bc65ce6
IInputPollable - Make IsLagFrame settable
2016-01-26 11:34:42 +01:00
zeromus
cf1c53f3fb
fix quicknes lua rendering being offset incorrectly sometimes. fixes #498
2015-09-16 14:02:45 -05:00
zeromus
ee0992158d
neshawk&quicknes: properly support using 512 byte palette files deemph entries instead of just ignoring them
2015-09-13 14:09:57 -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
3541c9e975
Make the lag counter settable, and expose this functionality in lua
2015-07-09 13:05:30 -04:00
adelikat
5bcdfb5991
IInputPollable - remove the set on LagCount as it is not needed
2015-06-11 01:23:14 +00: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
goyuken
2f3f7723a0
quicknes disassembler tweak
2015-01-25 20:06:41 +00:00
adelikat
76864d5d47
oops
2015-01-25 17:05:30 +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
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
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
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
0e82fff3ff
Clean out ClearSaveRam() calls since they are no longer used
2014-11-24 15:00:54 +00:00
adelikat
9c285e3e3a
Put NotImplemented attribute on a bunch of things, and remove IMemoryDomains from a few cores that were implementing it but throwing a NotImplementedException
2014-11-24 01:17:05 +00:00
adelikat
1832894405
IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary
2014-11-23 16:22:02 +00:00
adelikat
f3a2387926
Quicknes - metadata for controller settings, player 2 not plugged in by default
2014-11-02 14:03:38 +00:00
goyuken
f3e9958f07
quicknes: support unplugging controllers
2014-11-01 17:44:04 +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
goyuken
184b4dcba9
change some cores to use filedata instead of romdata. NES handles headers internally, and others shouldn't ever have headers.
2014-09-12 15:39:04 +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
goyuken
1d383a62cc
romloader stuffs, nag me if it breaks anything, i don't think it breaks anything
2014-08-23 19:06:37 +00:00
goyuken
8c4696609d
vba next: memory domains
2014-08-16 05:45:31 +00:00
zeromus
6ad6126536
fix typo in 'visbile' sprites
2014-08-14 15:50:33 +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
goyuken
c0defce472
quicknes: support frameskipping and audioskipping. the speedup isn't all that much, but a bit more speed is gained
2014-08-13 17:22:16 +00:00
goyuken
d7a1dd3846
quicknes: simplify blitting logic, giving a 15% overall speedup in some cases
2014-08-13 17:06:01 +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
goyuken
3218085682
Quicknes: clean up previous commit
2014-07-23 03:02:44 +00:00
goyuken
e87f0ceba7
quicknes: use bootgod db to display helpful information about roms (except galaxian). no effect on emulation
2014-07-23 02:48:55 +00:00
goyuken
6d551ffb62
quicknes settings beautification
2014-07-19 18:45:20 +00:00
goyuken
e55dd02644
i meant to commit this a few days ago? oops
2014-07-17 22:27:09 +00:00
adelikat
1c0eca190e
Remove some unused extensions, Remove Extensions.cs and move methods into better named files with their own namespaces
2014-07-03 18:54:53 +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
ab74f31d41
quicknes: support getcpuflagsandregisters
2014-05-26 19:49:45 +00:00
adelikat
e96b81d7ab
Rip out some "movies 1.0" hacks
2014-05-18 16:28:56 +00:00
adelikat
5e15ba5fa0
credit blargg for quicknes
2014-05-18 01:12:38 +00:00
adelikat
965c2dfc0f
Quicknes - Fall back to neshawk when attempting to load FDS and other things that we think NES should play
2014-05-18 01:06:11 +00:00
adelikat
ec5414c9d8
If Quicknes throws an unsupported mapper exception, catch it and load in NesHawk instead
2014-05-12 00:14:45 +00:00
goyuken
b0970451aa
internal infrastructure for video presentation changes (aspect ratio, apparent size, etc)
2014-04-30 23:48:37 +00:00
zeromus
49d8f6c5b9
remove savestate loading hacks for movie header skipping
2014-04-25 02:21:45 +00:00
adelikat
8c0526b90f
Quicknes - clip top and bottom true by default
2014-04-25 01:22:22 +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
9b068a3cf2
Some clean up of NES config dialogs, and menu item display logic
2014-01-10 17:41:13 +00:00
goyuken
c2b8879303
quicknes: cleanup
2014-01-10 04:06:02 +00:00
goyuken
adf7f01102
quicknes: implement the crop settings
2014-01-10 01:45:06 +00:00
goyuken
db386e4dee
quicknes: fix colors in custom palette use
2014-01-10 01:31:24 +00:00
goyuken
1f1bb93360
quicknes: some settings stuff, not all finished
2014-01-09 23:50:10 +00:00
goyuken
2c568d9bef
quicknes: add PRGROM and CHRROM domains (from the cart), and set corecomm and board information correctly
2014-01-07 01:52:00 +00:00