1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-04 15:05:36 +00:00
Commit Graph

46 Commits

Author SHA1 Message Date
Thomas Harte
1e4356f83a Adds a sensible is_stereo to the MultiSpeaker. 2020-02-16 18:50:34 -05:00
Thomas Harte
90856a0e7a Adds mixdown/up capability to Speaker.
To deal with occasions when the host machine just always is either mono or stereo, and the emulated machine must cope.
2020-02-16 13:50:18 -05:00
Thomas Harte
49b8e771b5 Adds the messaging that would allow a Speaker to output stereo, semantically. 2020-02-15 13:40:19 -05:00
Thomas Harte
9ca2d8f9f2 Tried to be less lazy with lambda captures.
This is primarily defensive.
2020-02-14 23:39:08 -05:00
Thomas Harte
7316a3aa88 Merge branch 'master' into FinalOverride 2020-01-26 23:42:25 -05:00
Thomas Harte
b514756272 Adds the option to run machines at a multiple of their real speeds.
Exposed to SDL users only, for now.
2020-01-26 13:25:23 -05:00
Thomas Harte
294e09f275 All these 'override's can be 'final's.
At least for the purpose of being communicative. I doubt there's much to gain in terms of compiler output — the DiskImageHolder can avoid some virtual lookups but nothing else leaps out.
2020-01-23 22:57:51 -05:00
Thomas Harte
d97a073d1b Adds the necessary routine for all machines to be able to respond to get_scan_status.
They all just as the CRT, as all are currently based on the CRT. Which doesn't currently know the total clock rate it would need to in order properly to scale the answer to the question. Further thought coming.
2020-01-20 21:45:10 -05:00
Thomas Harte
cb61e84868 Starts building out higher-level run_until functionality.
Specifically: you can now run until the next set of speaker samples has been delivered.
2020-01-20 12:12:23 -05:00
Thomas Harte
2c25135d8a Fixes const correctness for joystick machines; the ST is now one such. 2019-11-09 18:19:05 -05:00
Thomas Harte
b0503efa3d Resolves a potential deadlock on multi machine handover. 2019-02-27 22:39:33 -05:00
Thomas Harte
b75ad3def2 Updates the multimachine for the ScanTarget world. 2019-02-03 15:07:22 -05:00
Thomas Harte
ee89be6730 Removes many stray spaces. 2018-11-23 22:32:32 -05:00
Thomas Harte
8a699b6072 Kills setup_output definitively, saving some indirection. set_scan_target takes its place. 2018-11-14 21:52:57 -05:00
Thomas Harte
b40211d2c0 Starts to bend 'CRTMachine' to a world farther from owning the GPU relationship. 2018-11-03 21:54:25 -04:00
Thomas Harte
8730ffb4e2 Restores multi-machine keyboard propagation. 2018-10-24 22:20:58 -04:00
Thomas Harte
a8645f80bf Introduces 'non-exclusive' emulator-space keyboards.
i.e. sets of keys that don't amount to an entire keyboard in the modern sense. Experimentally used by the Master System for its reset key.
2018-10-24 21:59:30 -04:00
Thomas Harte
57f161e64c Corrects documentation of the media target. 2018-07-10 21:42:09 -04:00
Thomas Harte
7e58a44771 Renames ConfigurationTarget to MediaTarget as per its newly-reduced interface. 2018-07-10 21:32:28 -04:00
Thomas Harte
3862fdb44c Simplifies initialisation procedure for all machines.
With the side effect of allowing every machine to try to load only the ROMs that it needs.
2018-07-10 20:00:46 -04:00
Thomas Harte
2954373115 Introduces an intermediary for digital <-> analogue conversion. 2018-06-11 21:35:03 -04:00
Thomas Harte
3ea2a4ccb8 Moves the joystick class towards accepting analogue inputs. 2018-06-10 20:45:52 -04:00
Thomas Harte
0b771ce61a Removes all instances of the copyright symbol. 2018-05-13 15:19:52 -04:00
Thomas Harte
1293d8b69e Corrects various indentation errors. 2018-05-05 19:32:20 -04:00
Thomas Harte
6656a08c60 Introduces missing #includes. 2018-03-23 18:05:51 -04:00
Thomas Harte
cd0fb7624b Pulls delegate messages out of the critical sections. 2018-03-22 11:08:07 -04:00
Thomas Harte
bae38497bb Implements multitarget joysticks. 2018-03-22 11:07:52 -04:00
Thomas Harte
682c3d8079 Adds new hook for watching audio output rate changes. 2018-03-22 09:23:01 -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
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
2439f5aee5 Corrects some whitespace errors. 2018-02-19 16:06:46 -05:00
Thomas Harte
8265f289bd Improves documentation within the new parts. 2018-02-19 16:03:17 -05:00
Thomas Harte
9728bea0a7 Updates scons file and corrects missing headers; backports to C++11. 2018-02-19 05:13:41 -08:00
Thomas Harte
a005dabbe3 Corrects some minor outstanding data races. 2018-02-18 16:37:07 -05:00
Thomas Harte
c8a4432c63 Makes an attempt to transfer audio outputs during dynamic analysis. 2018-02-18 15:23:15 -05:00
Thomas Harte
7ea4ca00dc Ensures perform_parallel doesn't lock up if all machines complete prior to reaching condition.wait. 2018-02-11 21:06:51 -05:00
Thomas Harte
8eea55b51c Simplifies perform_parallel slightly. 2018-02-10 23:39:30 -05:00
Thomas Harte
e1cab52c84 Ensures thread safety of access to machines array. 2018-02-10 19:38:26 -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