Thomas Harte
a301964bd0
Ensures all audio queues are fully merged before machine destruction.
...
Thereby avoids a race condition.
2018-03-22 21:59:19 -04:00
Thomas Harte
2712702461
Makes get_clock_rate
protected. It's now an implementation detail.
2018-03-22 10:01:18 -04:00
Thomas Harte
da3d65c18f
Devolves time to cycle conversion to machines.
...
Thereby avoids a whole bunch of complicated machinations that would otherwise have been required of the multimachine.
2018-03-21 22:18:13 -04:00
Thomas Harte
89bec2919f
Encapsulates machine configuration properties for all remaining platforms.
2018-03-09 16:07:29 -05:00
Thomas Harte
78eaecb29e
Provides the proper framework for encapsulation of analyser target specifics.
...
... while making them a safe container for objects too. Uses the ZX80/81 as the pilot platform.
2018-03-09 15:36:11 -05:00
Thomas Harte
6b1eef572b
Eliminates diamond inheritance of KeyboardMachine::Machine by typers.
...
Specifically by pulling the key action stuff into a purely abstract class [/interface]. Takes the opportunity to unpublish a bunch of machine details.
2018-03-09 15:19:02 -05:00
Thomas Harte
48737a32a7
Introduces formal setting of the output volume to SampleSource
.
...
Previously every output device was making its own decision. Which is increasingly less sustainable due to the CompoundSource.
2018-03-09 13:23:18 -05:00
Thomas Harte
03501df9e5
Merge pull request #365 from TomHarte/CartridgeDetermination
...
Works towards eliminating the special cases for Atari 2600 ROM handling.
2018-03-08 18:40:58 -05:00
Thomas Harte
1804ea6849
Ensures the ColecoVision and MSX account for instruction lengths in advance when timing secondary components.
2018-03-07 17:00:18 -05:00
Thomas Harte
c8657e08f4
Merge remote-tracking branch 'origin/master' into CartridgeDetermination
2018-03-07 16:42:16 -05:00
Thomas Harte
9abc020818
Corrects potential ColecoVision SGM AY timing issues.
2018-03-07 16:16:58 -05:00
Thomas Harte
2dade8d353
Introduces ZonX emulation for the ZX81.
2018-03-07 16:16:29 -05:00
Thomas Harte
1100dc6993
Opens up .bin and .rom to all cartridge platforms, and adds a confidence estimate to the Atari 2600.
2018-03-07 14:26:07 -05:00
Thomas Harte
2452641844
Introduces a fast workaround to avert a MultiMachine where it would instantly end.
2018-03-06 19:08:02 -05:00
Thomas Harte
c82af4b814
Introduces get_confidence
for the ColecoVision.
...
Based almost entirely on joypad accesses for now.
2018-03-06 19:06:35 -05:00
Thomas Harte
3c5a8d9ff3
Adds Super Game Module support for the ColecoVision.
2018-03-03 13:08:33 -05:00
Thomas Harte
bdfc36427c
Implements MegaCart support.
2018-03-02 18:40:01 -05:00
Thomas Harte
59b4c7314d
Merge branch 'master' into ColecoVision
2018-03-01 22:01:26 -05:00
Thomas Harte
b05d2b26bf
Corrects a counting error in the MSX.
2018-03-01 21:59:51 -05:00
Thomas Harte
86239469e7
Allows SN76489 consumers to apply an additional divider that reduces computation.
2018-03-01 18:51:05 -05:00
Thomas Harte
7890506b16
Gives the SN76489 its proper dividers and personalities.
2018-02-28 22:36:03 -05:00
Thomas Harte
87760297fc
Fixes underpumping of SN76489.
...
Audio works now. Though I still need properly to confirm who owns dividers in practice. I think probably all division should be within the SN.
2018-02-27 22:59:29 -05:00
Thomas Harte
d4df101ab6
Makes a first attempt at implementing the SN76489.
2018-02-27 22:25:12 -05:00
Thomas Harte
0ad2676640
Adds a class for the SN76489 and wires it into the ColecoVision.
2018-02-26 22:04:34 -05:00
Thomas Harte
a074ee2071
Possibly fixes ColecoVision input mapping.
...
Also provides symbolic input from the Mac.
2018-02-25 22:47:47 -05:00
Thomas Harte
204d5cc964
Extends JoystickMachine protocol to cover ColecoVision use case.
...
Also thereby implements input on the ColecoVision, in theory at least. No input is being fed though, so...
2018-02-25 19:08:50 -05:00
Thomas Harte
23d15a4d6c
The ColecoVision now accepts and loads cartridges.
2018-02-24 18:26:44 -05:00
Thomas Harte
23c47e21de
Proceeds the ColecoVision to booting.
2018-02-24 18:14:38 -05:00
Thomas Harte
5530b96446
Wired up a class and analyser for a ColecoVision.
2018-02-23 22:47:15 -05:00
Thomas Harte
270723ae72
Forces the MSX's perform_machine_cycle into the Z80.
2018-02-19 19:54:42 -05:00
Thomas Harte
fc81bfa59b
Eliminates tape player call when tape is not playing.
2018-02-19 18:36:31 -05:00
Thomas Harte
3673cfe9be
Pulls method call for tape fast loading checks out of inner loop for the Vic, Electron and ZX80/81.
2018-02-19 16:57:24 -05:00
Thomas Harte
b0ab617393
Simplifies inner loop test for MSX fast loading.
2018-02-19 16:24:47 -05:00
Thomas Harte
7b420d56e3
Removed state mirroring in the machine-specific Mac UI classes.
2018-02-14 21:46:50 -05:00
Thomas Harte
ddf1bf3cbf
Reintroduces options selection for the Mac.
...
For everything except the Vic-20, anyway. That has a somewhat outdated notion of what an options panel should be, corresponding to the work yet to do on its analyser.
2018-02-12 21:46:21 -05:00
Thomas Harte
23105956d6
Fixes spurious unrecognised miss detection for the ASCII mappers.
2018-02-11 20:51:39 -05:00
Thomas Harte
f02989649c
Corrects effect of pc_is_outside_bios.
2018-02-11 20:32:45 -05:00
Thomas Harte
eb39617ad0
Allows cartridges to filter based on the actor talking to them; corrects outstanding_machines access error.
2018-02-10 17:11:16 -05:00
Thomas Harte
43b682a5af
Adds multiple target versions of all the DynamicMachine-vended types.
2018-02-09 16:31:05 -05:00
Thomas Harte
043fd5d404
Merge branch 'DynamicAnalysis' of github.com:TomHarte/CLK into DynamicAnalysis
2018-02-09 09:12:05 -05:00
Thomas Harte
d63a95983d
Adds a couple of hard-stop conditions to the MSX, and respect for hard stops.
2018-02-09 09:10:56 -05:00
Thomas Harte
4cf258f952
Parallelises MultiMachine running, and ensures errors propagate.
2018-02-08 20:33:57 -05:00
Thomas Harte
4e720d57b2
With debugging hooks still on display, makes first attempt at dynamic analysis.
2018-02-01 07:53:52 -05:00
Thomas Harte
c12aaea747
Attempts to get as far as running the MultiMachine.
...
In doing so, fixes the long-standing bug that machines that output audio but don't have a listener produce a divide by zero.
2018-01-30 22:23:06 -05:00
Thomas Harte
ca48497e87
Pulls DynamicMachine
out of MachineForTarget
and adds MultiConfigurationTarget
as a first multiplexer.
2018-01-29 21:49:49 -05:00
Thomas Harte
d493ea4bca
Introduces a multimachine to handle multi-target static analyser outputs.
...
Non-functional as of yet.
2018-01-28 22:22:21 -05:00
Thomas Harte
e025674eb2
The MSX analyser is now smart enough not to be definitive when it's uncertain.
...
The cartridge type has also migrated to being a property of the cartridge, prefiguring my intention to discard the static analyser union.
2018-01-25 22:16:46 -05:00
Thomas Harte
f2519f4fd7
Decided to focus on 'confidence' over 'probability'.
...
Besides anything else, it individualises the measure. E.g. two targets can each have a confidence of 0.8 without each giving the wrong answer about probability.
2018-01-25 19:02:16 -05:00
Thomas Harte
66faed4008
Gives MachineForTargets
complete responsibility for initial machine state.
2018-01-25 18:28:19 -05:00
Thomas Harte
11abc99ef8
Introduces the extra level of indirection necessary to make Analyser::Static::Target polymorphic.
2018-01-24 22:35:54 -05:00