Thomas Harte
f0a6e0f3d5
Splits out the queue management stuff from queue+action.
...
Temporarily breaks ST video in the endeavour.
2020-01-29 22:18:41 -05:00
Thomas Harte
8c4fb0f688
Extends the DeferredQueue to allow out-of-order enqueing.
2020-01-29 21:49:52 -05:00
Thomas Harte
baa51853c4
Introduces RealTimeActor
, providing the same interface as JustInTimeActor
.
2020-01-29 21:26:15 -05:00
Thomas Harte
0e29c6b0ab
On further reflection, I think events should occur after the running period.
...
I'm testing this now for sanity in 2/4bpp mode.
2020-01-28 23:26:37 -05:00
Thomas Harte
1b27eedf6b
Ensure this can definitely never divide by 0.
2020-01-28 23:25:21 -05:00
Thomas Harte
8b1f183198
Reduce test duration much closer to two frames.
2020-01-28 23:25:01 -05:00
Thomas Harte
4766ec55fe
Documents units.
2020-01-28 23:23:51 -05:00
Thomas Harte
c5edc879b6
Switches back to testing the monochrome monitor.
2020-01-28 22:12:57 -05:00
Thomas Harte
65309e60c4
Corrects sequence point generation by allowing for hsync_end != end of line.
2020-01-28 20:38:20 -05:00
Thomas Harte
5c4623e9f7
Adds a sequence-point test for 72Hz mode.
...
Which immediately appears to trigger the hsync issue I'm also seeing in manual testing.
2020-01-28 20:27:24 -05:00
Thomas Harte
2c0cab9e4d
Adds line length latching as a line event.
2020-01-28 20:22:37 -05:00
Thomas Harte
d0117556d1
Reintroduces CSHighPrecisionTimer.
2020-01-28 20:09:46 -05:00
Thomas Harte
b1ff031b54
Fixes runtime test.
2020-01-27 23:41:08 -05:00
Thomas Harte
7e8405e68a
Makes 72Hz horizontal sync independently relocatable.
...
... and moves and shortens it, based on my guesswork as to requirements.
2020-01-27 23:40:01 -05:00
Thomas Harte
c8fd00217d
Resolves loss of horizontal resolution in 1bpp mode.
2020-01-27 23:08:28 -05:00
Thomas Harte
9d340599a6
Towards ST 1bpp support: puts vsync in an appropriate location, starts experimenting with proper CRT timings.
2020-01-27 23:00:30 -05:00
Thomas Harte
8e094598ca
Merge pull request #744 from TomHarte/CRCTemplate
...
Better templates the CRC generator.
2020-01-27 21:54:32 -05:00
Thomas Harte
189122ab84
Fixes test units.
2020-01-27 20:35:58 -05:00
Thomas Harte
4b53f6a9f0
Renames T
to the more-communicative IntType
, adds some explicit constexpr
a.
2020-01-27 08:28:20 -05:00
Thomas Harte
561e149058
Better templates the CRC generator.
2020-01-27 00:03:01 -05:00
Thomas Harte
5975fc8e63
Merge pull request #738 from TomHarte/FinalOverride
...
Switches to [just] `final` where relevant to mark overrides.
2020-01-26 23:50:05 -05:00
Thomas Harte
7316a3aa88
Merge branch 'master' into FinalOverride
2020-01-26 23:42:25 -05:00
Thomas Harte
50be991415
Merge pull request #743 from TomHarte/macOSScreens
...
Ensures macOS window can properly be dragged between screens, Retina or not.
2020-01-26 23:33:50 -05:00
Thomas Harte
52e49439a6
Recreates display link upon a screen change.
...
Different screens may have different refresh rates, and I can find no guarantees about how Apple handles that.
2020-01-26 23:23:33 -05:00
Thomas Harte
6bcdd3177d
Ensures that a change of screen issues a reshape
. Just in case.
...
Thereby resolves display mis-sizing when dragging from a Retina display to a regular one, or vice versa.
2020-01-26 18:04:25 -05:00
Thomas Harte
83dbd257e1
Merge pull request #742 from TomHarte/SpeedMultiplier
...
Adds the option to run machines at a multiple of their real speeds.
2020-01-26 13:30:43 -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
7e4c13c43e
Merge pull request #741 from TomHarte/ZX80RateReporting
...
Corrects ZX80, ZX81 and Amstrad CPC scan status scales.
2020-01-26 11:42:54 -05:00
Thomas Harte
79bb0f8222
Updates comment.
2020-01-26 11:36:06 -05:00
Thomas Harte
43bf6aca67
Corrects reported scan status for the Amstrad CPC.
2020-01-25 23:46:18 -05:00
Thomas Harte
03d23aad41
Corrects reported ZX80/81 scan status.
2020-01-25 23:27:09 -05:00
Thomas Harte
c398aa60c1
Merge pull request #739 from TomHarte/SDLThreadSafety
...
Resolves thread safety issues in SDK kiosk mode.
2020-01-25 14:56:29 -05:00
Thomas Harte
9666193c67
Pulls the call to .update out of the critical section.
2020-01-25 14:50:28 -05:00
Thomas Harte
3f57020b00
Resolves thread safety oversights in SDK kiosk mode.
2020-01-25 14:48:00 -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
ba516387ba
In all these instances, final => override. So no need to repeat myself.
2020-01-23 22:35:39 -05:00
Thomas Harte
2103e1b470
Merge pull request #737 from TomHarte/Multisync
...
Adds multisync monitor support to the Oric.
2020-01-23 22:20:34 -05:00
Thomas Harte
7bac439e95
Adds, and comments out, a useful temporary piece of debugging logging.
2020-01-23 22:14:22 -05:00
Thomas Harte
9136917f00
Enables the Oric for 50/60Hz mode switching, inventing PAL60 for the purpose.
2020-01-23 22:14:02 -05:00
Thomas Harte
6802318784
Removes audio_queue_.flush() calls; I don't think I really need to block. At least, not usually.
2020-01-23 20:13:16 -05:00
Thomas Harte
428d141bc9
Factors out the logic behind the Atari 2600's frequency switching.
2020-01-23 20:12:44 -05:00
Thomas Harte
a86fb33789
Ensures that the ColecoVision, MSX and Master System fully flush.
2020-01-22 22:57:16 -05:00
Thomas Harte
beefb70f75
Adds vertical sync as something that can be run_until.
2020-01-22 22:20:56 -05:00
Thomas Harte
3c6a00dc3c
Breaks a potential deadlock.
2020-01-22 22:10:20 -05:00
Thomas Harte
8404409c0d
Causes the Atari 2600 to obey normal flush semantics.
...
This stuff is going to become more important with run_until.
2020-01-22 22:05:51 -05:00
Thomas Harte
a5f285b4ce
Enhances reported data.
2020-01-22 22:01:17 -05:00
Thomas Harte
9d97a294a7
Corrects the TMS' get_scaled_scan_status
.
...
I think all platforms are now returning credible numbers.
2020-01-22 19:34:10 -05:00
Thomas Harte
56448373ae
Splits one line into two, for the benefit of step debugging.
2020-01-22 19:32:23 -05:00
Thomas Harte
a71c5946f0
Ensures proper manipulation of scan_statuses, leading to the correct result out of a CRTMachine.
...
Possibly with the exception of the TMS, as I appear to have uncovered an unrelated issue there.
2020-01-21 22:28:25 -05:00
Thomas Harte
e7fff6e123
Minor step towards correct answers: divide by time_multiplier_.
2020-01-20 22:33:51 -05:00