Commit Graph

270 Commits

Author SHA1 Message Date
adelikat 7a6d2bce41 Dipose of a bytebuffer in a mapper in Atari 2600 2016-11-09 18:23:54 -06:00
adelikat 6b29c28d07 Atari 7800 - support difficulty switches when using the default proline controller, fixes #726 2016-11-08 17:26:42 -06:00
adelikat ccc2ee1ba9 Fix coleco memory domains similarly to previous commit, also clean up previous commit 2016-08-22 13:14:47 -04:00
adelikat 4d03651526 Fix A2600 memory domains similarly to the PCE fix in 4b165089fd 2016-08-22 12:56:12 -04:00
alyosha-tas 74e64fda03 fixes poly9 sound
This actually affected several other sound channels as well since the old code put the other poly counters into degenerate states at times
2016-06-06 11:11:42 -04:00
alyosha-tas 41fd36a3c3 Fixed high pitch bug
finally found this bug, fixes several games where sounds were higher pitch then supposed to be (notably Combat)
2016-06-05 17:38:33 -04:00
alyosha-tas ae39f13d5a Update for new sound routines
Catches cases where sound is not processed.
2016-06-04 18:33:41 -04:00
alyosha-tas d7436554b8 Rewrite audio routines
Now samples sound explicitly at proper points each scanline.
Sounds the same (i.e. sometimes wrong) as before, so other bugs exist.
WIP
2016-06-04 18:32:26 -04:00
alyosha-tas f60dde19f5 Fixes compumate mapper
Still WIP
needs keyboard to test
2016-05-31 09:24:09 -04:00
alyosha-tas 0e34e5f728 Fixes compumate mapper
Still WIP
Needs keyboard peripheral for further testing, but boots for now
2016-05-31 09:15:59 -04:00
alyosha-tas f6b74a97e6 Adds missing inputs
3 input ports were never implemeneted, now they are
2016-05-31 09:13:05 -04:00
alyosha-tas d0c7d81de5 Updates and Bug Fixes
Sets stack pointer to FD on initialization (see visual 6502)
Adds portA write state to 6532
2016-05-31 09:11:57 -04:00
alyosha-tas 24b0ebb924 Merge pull request #2 from TASVideos/master
sync up
2016-05-27 08:56:25 -04:00
alyosha-tas d5c4d2f037 Add poke flag
the point of this is to protect the data bus state
2016-05-27 08:53:37 -04:00
alyosha-tas bd5616050a Add poke flag 2016-05-27 08:52:24 -04:00
alyosha-tas fe77d8718f Add poke flag 2016-05-27 08:51:49 -04:00
alyosha-tas d192d76052 Add vblank delay to fix 4A50 demo game 2016-05-25 18:10:05 -04:00
alyosha-tas cbad691741 Protect bank state from peeks
Also properly check bank swapping
2016-05-25 12:39:41 -04:00
alyosha-tas de48c1cf2c check for protection from memory peeks
WIP
2016-05-25 12:38:28 -04:00
alyosha-tas 5520627b7e Fix Peek_memory so it points to mapper Peek_memory 2016-05-25 12:37:23 -04:00
alyosha-tas 7a16d7c49a Add data bus state and track it
fixes AVGN KO boxing
2016-05-23 20:31:55 -04:00
alyosha-tas c80e250ae7 Add data bus state and track it
fixes AVGN KO boxing
2016-05-23 20:29:57 -04:00
adelikat 3194e2cdd7 document what is going on with mF8_sega 2016-05-22 15:33:49 -04:00
alyosha-tas d82a447e71 add tapper hash 2016-05-20 13:18:12 -04:00
alyosha-tas 9424f30243 pick the correct mapper for Tapper and Congo Bongo
Based off SHA1 hash
2016-05-20 09:06:56 -04:00
alyosha-tas 1565a0adf8 add sega mapper mod
mod to F8 that starts in bank 1
2016-05-20 09:05:57 -04:00
alyosha-tas b60876f902 try try again 2016-05-16 20:35:52 -04:00
alyosha-tas 9d00197c2a fixes 0 sample size in audio 2016-05-16 07:55:58 -04:00
alyosha-tas 3625bdaf9d Merge pull request #1 from TASVideos/master
sync up to test
2016-05-16 06:55:49 -04:00
alyosha-tas 0551099ac7 Add files via upload 2016-05-15 20:43:21 -04:00
alyosha-tas 70fdbba229 Fixes 6532 INSTAT
Fixes Tapper not running (other issues with that game remain)
2016-05-06 22:58:41 -04:00
alyosha-tas a0ad9aab36 HMove update
Fixes Kool Aid Man
2016-04-22 09:17:01 -04:00
hegyak 643e475ccc Merge pull request #614 from alyosha-tas/master
AtariHawk bug fixes pull request
2016-04-18 08:06:15 -07:00
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
alyosha-tas 3e365a2928 update 2016-04-10 20:21:12 -04:00
alyosha-tas 0dd58abb28 update 2016-04-10 18:29:45 -04:00
alyosha-tas 48dcf8fc91 PRG delays due to HMOVE 2016-04-09 12:57:32 -04:00
alyosha-tas 3e14c07c51 implement PRG delay 2016-04-09 09:33:13 -04:00
alyosha-tas 9d0d7fa85a rewrite enam delay for consistency 2016-04-08 21:28:26 -04:00
alyosha-tas 5e4874a870 Added files via upload
implements PF delays
2016-04-08 09:12:03 -04:00
alyosha-tas e96f057bd2 Added files via upload
more bug fixes and clean up
2016-04-06 20:37:19 -04:00
alyosha-tas ea18662bfe Added files via upload
star field correct
2016-04-05 18:41:53 -04:00
alyosha-tas 8e852622a1 Added files via upload
correct star pattern
2016-04-05 18:03:23 -04:00
alyosha-tas 03b236b0cf Added files via upload 2016-04-05 09:24:27 -04:00
alyosha-tas 14e5f6319d Added files via upload
bug fix
2016-04-05 09:04:56 -04:00
pjgat09 29e6d5e1d5 Atari 2600: Fixed an off by one bug with the 6532 2016-03-11 10:50:03 -05:00
adelikat 17b7d9790c Tracer header for Atari 2600 2016-02-28 09:20:08 -05:00
pjgat09 194905763a Atari 2600: Double and quad size players are now correctly delayed an extra pixel. 2016-02-16 15:46:05 -05:00
pjgat09 a3ef769407 Atari 2600: Use the RDY flag to halt the CPU instead of a loop in the TIA. 2016-02-13 17:11:07 -05:00
scrimpeh e4a1a517cd IInputPollable - Now with tabs instead of spaces. 2016-01-26 11:46:52 +01:00
scrimpeh ef1bc65ce6 IInputPollable - Make IsLagFrame settable 2016-01-26 11:34:42 +01: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
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 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 36e4ceca93 A7800 - oops, fix a bug in pokebyte when I merged ram1 and ram2 into the ram domain 2015-01-27 23:08:06 +00:00
adelikat e195004433 atari 7800 - make a few memory domains explicitly read-only instead of silently failing on write 2015-01-27 00:54:11 +00:00
adelikat f4664bba9b Atari 7800 - combine Ram1 and Ram2 into a single Ram domain 2015-01-27 00:50:33 +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 bd74041cde fix atari 2600 and pc engine similarly 2015-01-15 15:56:41 +00:00
adelikat dfe7b23fe6 Lynx - break stuff up into separate files 2015-01-15 14:04:18 +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 7fd19ab26d Atari 2600 - implement StepOver and StepOut 2014-12-24 17:08:09 +00:00
adelikat 85730524ef Atari 2600 - restrict the access level of a bunch of things, and some slight reorg 2014-12-24 15:24:25 +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 8fb7d3ea9d does it work? who knows! 2014-12-20 19:17:35 +00:00
adelikat 6512dcbd62 Atari 2600 - make the system bus 64k instead of 8k, this is technically more correct, even though all that space is just mirrored data 2014-12-20 18:09:31 +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
adelikat 287d9376c8 Atari 2600 - implement StepInto 2014-12-18 18:48:37 +00:00
goyuken 972173282a support new disassembler infrastructure in 2600 and nes 2014-12-15 22:52:22 +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 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 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
goyuken 5f770e4696 update pad callback infrastructure in vbanext core, remove unused stub in lynx core, disable in dual gb core until i get around to it, better comment in gb core 2014-12-04 01:46:59 +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 a283063f5f some Atari 2600,7800 reorg 2014-12-01 14:21:37 +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 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 ce3f7ae3ac Atari 2600/7800 - break off IStatable stuff 2014-11-30 17:10: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 a251cacce6 Atari 7800 - break up implementations into separate files and some other reorg 2014-11-30 16:01:01 +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 4d3e7f806f Atari 2600 - break off IDebuggable stuff to its own file 2014-11-23 17:14:40 +00:00
adelikat 1832894405 IDebuggable - GetCpuFlagsAndRegisters() - refactor to make it an IDictionary instead of Dictionary 2014-11-23 16:22:02 +00:00
goyuken b50ebf8032 fix 2014-11-21 01:35:54 +00:00
adelikat d64be5ed76 SystemID is Lynx not LYNX, cuz I said so 2014-11-21 01:32:15 +00:00
adelikat ec3e4151eb set release flag on lynx core to true 2014-11-17 21:58:13 +00:00
goyuken fa8934b1d4 lynx: memory domains. R/W: RAM, Save Ram. R: Cart A, Cart B. 2014-11-02 19:11:19 +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