Thomas Harte
109d072cb6
Avoids trying to paper over huge gaps in running time. Also attempts to improve SDL shutdown reliability.
2020-02-12 23:47:04 -05:00
Thomas Harte
0c1c5a0ab8
Merge pull request #749 from TomHarte/DiskIndicator
...
Moves ownership of drives inside Disk::Controller.
2020-02-12 23:37:32 -05:00
Thomas Harte
e01c66fd65
Implements multidrive support.
2020-02-12 23:32:01 -05:00
Thomas Harte
9f32fa7f5b
Resolves potential random RAM writes at startup.
2020-02-12 23:31:48 -05:00
Thomas Harte
91a3d42919
Ensures no DMA clocking whatsoever when asleep.
2020-02-12 23:23:42 -05:00
Thomas Harte
3cb6bbf771
Uses the union of all drive statuses to determine Drive::Controller's preferred clocking.
2020-02-12 22:28:42 -05:00
Thomas Harte
452e281009
Ensures what is currently the only drive is selected.
2020-02-11 22:13:13 -05:00
Thomas Harte
3da948db52
Eliminates local drive
. They're not local any more.
2020-02-11 22:12:54 -05:00
Thomas Harte
0c2f77305f
Eliminates dangling printf.
2020-02-11 22:12:30 -05:00
Thomas Harte
05bcd73f82
Attempts to pull drive ownership into DiskController.
...
For the sake of being more intelligent as to drive clocking, hopefully. And, eventually, to support multiple drive selection.
2020-02-11 21:59:13 -05:00
Thomas Harte
654f5b0478
Merge pull request #748 from TomHarte/SDLLatency
...
Introduces sync matching to the SDL version.
2020-02-10 23:38:24 -05:00
Thomas Harte
886d923e30
Attempts to permit fixed speed multiplication.
2020-02-10 23:30:32 -05:00
Thomas Harte
6624cb7a78
Corrects set_ram macro to act more like a function.
2020-02-10 23:19:47 -05:00
Thomas Harte
6147134423
Introduces frame locking for SDL.
2020-02-10 23:07:09 -05:00
Thomas Harte
bf6bc7c684
Adds speed control into the SDL build.
...
If I can just figure out how to manipulate OpenGL from the timer thread to SDL's satisfaction, this'll be as good as it probably gets via SDL.
2020-02-09 22:27:02 -05:00
Thomas Harte
0b0a7e241b
Factors out the stuff of time warping.
2020-02-09 22:11:06 -05:00
Thomas Harte
705d14259c
Experimentally switches to a 'high-resolution' clock for SDL.
2020-02-09 21:44:55 -05:00
Thomas Harte
f1cd35fa16
Merge pull request #746 from TomHarte/LatencyChop
...
Reduces latency in macOS, improves concurrency
2020-02-09 21:07:40 -05:00
Thomas Harte
6bda4034c6
Ensures no input data is dropped when changing output rates.
...
I think this 'completely' deals with the problem. At least until someone wants dynamic output buffer sizes or something like that. We'll see.
2020-02-09 19:14:25 -05:00
Thomas Harte
b04daca98e
Picks a safer default construction.
2020-02-09 19:13:21 -05:00
Thomas Harte
85dcdbfe9e
Adopts a log prefix for the Master System.
2020-02-09 19:12:44 -05:00
Thomas Harte
24340d1d4f
Resolves fetch errors.
2020-02-09 17:04:49 -05:00
Thomas Harte
6ae42d07a7
Retains existing output when switching filter coefficients.
...
This eliminates an issue with dynamic rate matching and throwing away the beginnings of buffers.
2020-02-09 16:42:07 -05:00
Thomas Harte
2ea1e059a8
Softens swings in emulated machine speed.
2020-02-09 16:34:13 -05:00
Thomas Harte
b5d6126a2d
Avoids unnecessary filter recalculation.
2020-02-09 16:32:32 -05:00
Thomas Harte
dac217c98c
Defers starting the macOS audio queue, and attempts to restart it upon packet loss.
...
Hopefully forever to vanish permanent audio loss?
2020-02-08 22:08:27 -05:00
Thomas Harte
c26c8992ae
Reintroduces joystick support; eliminates CSBestEffortUpdater.
2020-02-08 21:27:04 -05:00
Thomas Harte
b76a5870b3
Moves drawing into the next timer tick after retrace if sync locked.
...
... which should mean it occurs within 1/600th of a second of announced retrace, which I assume always will be less than the retrace period. So: does the frame buffer update during retrace.
This should completely eliminate tearing for machines that can be synced to the native output rate.
2020-02-08 18:07:13 -05:00
Thomas Harte
7c0f3bb237
Gets to slightly adjusting execution speed and matching up respective vertical syncs.
...
I probably still need to move the ->draw inline.
2020-02-08 18:01:48 -05:00
Thomas Harte
f615d096ca
Switch to obtaining refresh periods ephemerally.
...
Which simplifies the necessary delegate protocol.
2020-02-08 15:03:18 -05:00
Thomas Harte
09132306e4
Removes two temporary debugging steps.
2020-02-06 23:35:23 -05:00
Thomas Harte
f95b07efea
Continues edging towards raster racing and/or time warping.
2020-02-06 23:35:03 -05:00
Thomas Harte
14d976eecb
Starts towards an implementation of time warping.
2020-02-04 23:08:54 -05:00
Thomas Harte
e1cbad0b6d
Ensures new displayLinkDelegates get a nudge with the initial display link.
2020-02-04 23:08:25 -05:00
Thomas Harte
e7410b8ed8
Uses objective clock for updates.
2020-02-04 22:24:54 -05:00
Thomas Harte
5caf74b930
Corrects typo.
2020-02-04 22:24:37 -05:00
Thomas Harte
b41920990f
Moves submit
step to end of line, rather than end of scan.
2020-02-04 22:15:20 -05:00
Thomas Harte
709c229cd7
Gets a bit more explicit with ScanTarget documentation.
2020-02-04 20:19:46 -05:00
Thomas Harte
01fd1b1a2e
Pulls out ticks as a macro constant.
...
For playing.
2020-02-03 22:44:39 -05:00
Thomas Harte
96769c52f6
Prevents an endless queue of backlogged updates.
2020-02-03 22:08:07 -05:00
Thomas Harte
cf9729c74f
Takes a first shot at running OpenGL work throughout a frame.
...
Rather than en masse at the end. But it seems I've been lazy with my threading. Work to do!
2020-02-03 21:58:29 -05:00
Thomas Harte
0f2783075f
Moves responsibility for timed updates to CSMachine, which gives the CSHighPrecisionTimer a shot.
2020-02-02 21:39:20 -05:00
Thomas Harte
256f4a6679
Fixes -invalidate: cancel the dispatch source, don't just suspend it, and wait until that is done.
2020-02-02 21:29:22 -05:00
Thomas Harte
0310f94f0c
Merge pull request #745 from TomHarte/STMonochrome
...
Adds some amount of 1bpp/72Hz output support for the Atari ST.
2020-02-02 17:46:36 -05:00
Thomas Harte
085529ed72
Makes the shifter behaviour conform to its documentation.
2020-02-02 17:26:39 -05:00
Thomas Harte
8aabf1b374
Allows receivers of nullptr from begin_data to output any quantity of data.
2020-02-01 21:43:48 -05:00
Thomas Harte
ff39f71ca0
Eliminates meaningless constants from the Macintosh video's CRT setup.
2020-01-30 23:29:04 -05:00
Thomas Harte
019474300d
Centralises responsibility for picking irrelevant numbers for a computer-style monitor.
2020-01-30 23:26:02 -05:00
Thomas Harte
af976b8b3d
Eliminates modulus operation per ROM access.
2020-01-30 23:09:24 -05:00
Thomas Harte
f3db1a0c60
Eliminates ad hoc scheduling for delayed DE -> LOAD.
2020-01-29 22:50:22 -05:00