Thomas Harte
158122fbf4
Determine TargetTimeScale
automatically.
2021-04-04 15:37:07 -04:00
Thomas Harte
417ece2386
Adds a couple of TODOs and some further documentation.
2021-04-04 00:25:22 -04:00
Thomas Harte
77b241af4f
Eliminates unused RealTimeActor, provides more feedback from +=, gets specific as to nodiscard
s.
2021-04-03 21:26:43 -04:00
Thomas Harte
7937cc2d0f
Imputes ClockingHint::Observer
logic into JustInTimeActor.
2021-03-26 23:44:15 -04:00
Thomas Harte
3162873a9c
Improves the meaning and result of time_since_flush().
2020-12-01 18:35:07 -05:00
Thomas Harte
8093f67173
Ensures video interrupts can't be missed by a suitably-timed access.
2020-11-26 16:11:03 -05:00
Thomas Harte
bb80e53021
Reduces frequency of video flushes.
2020-11-16 21:55:41 -05:00
Thomas Harte
9a55eb56ea
Attempts to provide saner sequence point behaviour.
2020-11-16 19:00:11 -05:00
Thomas Harte
9206ab5dc3
Adds notes to self; implements get_next_sequence_point for video, allowing per-line interrupts.
2020-11-16 14:42:50 -05:00
Thomas Harte
7e39550fc0
Attempts to make JustInTimeActor sequence-point aware.
...
With the objective of chopping out a lot of future boilerplate.
2020-11-15 21:58:18 -05:00
Thomas Harte
287bfeb924
Hacks in 40-column text.
...
Hot gossip: my IIgs is reporting a system error. A clue!
2020-11-08 17:01:23 -05:00
Thomas Harte
699fb0aa4b
Switches to just-in-time video, for easy access to a clock divider.
2020-11-07 19:40:26 -05:00
Thomas Harte
3db4a8c312
Attempts to improve vsync deadline estimation.
...
Also increases probability of bad estimation being discarded.
2020-07-27 21:08:00 -04:00
Thomas Harte
a096a09c72
Trusts Qt to supply a refresh rate, and handles retina <-> non-retina window transitions.
2020-06-30 23:03:39 -04:00
Thomas Harte
3ddc1a1722
Eliminates hard-coded concept of timer jitter.
2020-06-25 23:59:44 -04:00
Thomas Harte
9d4b49bbb5
Attempts to be more rigorous in vsync prediction.
2020-06-23 22:59:12 -04:00
Thomas Harte
b96f7711e3
Corrects attempt at back-to-UI final window SDI behaviour.
...
Maybe it'll turn out to be not what I want, but at least now it works.
2020-06-22 22:36:36 -04:00
Thomas Harte
240d3c482b
Removes redundant constructors.
2020-06-19 23:26:22 -04:00
Thomas Harte
79833deeaf
With some attempt at vsync prediction, seeks to smooth audio/video output.
...
There's plenty more work to do here, but hopefully it takes the issue immediately off the table.
2020-06-14 19:26:56 -04:00
Thomas Harte
512a52e88d
Increases const correctness, marks some additional constructors as constexpr, switches std::atomic construction style.
2020-05-20 23:34:26 -04:00
Thomas Harte
31c6faf3c8
Adds a bunch of const
s.
2020-05-09 21:23:52 -04:00
Thomas Harte
886d923e30
Attempts to permit fixed speed multiplication.
2020-02-10 23:30:32 -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
ee16095863
Withdraws advance_to_next
; once it has to cope with simultaneous events it stops being faster than advance
.
...
I could possibly try to deal with those at insertion time, but it'd get messy.
2020-01-29 22:45:10 -05:00
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
56448373ae
Splits one line into two, for the benefit of step debugging.
2020-01-22 19:32:23 -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
09513ec14c
Gets explicit about constexpr expectations here.
2019-12-30 22:58:19 -05:00
Thomas Harte
b98703bd5b
Corrects lack of const
.
2019-11-18 22:11:52 -05:00
Thomas Harte
5309ac7c30
Annotates JustInTimeActor as force inline.
2019-10-30 23:18:42 -04:00
Thomas Harte
1c154131f9
Expands size of storage in Cycles/HalfCycles; adjusts widely to compensate.
2019-10-29 22:36:29 -04:00
Thomas Harte
1d790ec2a9
Adds the option for a clock conversion to JustInTimeActor and slows the MFP's clock rate.
2019-10-28 21:35:10 -04:00
Thomas Harte
55710ea00e
Switches the presumption to requiring NDEBUG to avoid forced inlines.
2019-10-26 22:43:25 -04:00
Thomas Harte
cf07982a9b
Ensures good serial line and ACIA behaviour.
...
Next stop: having the intelligent keyboard react.
2019-10-20 22:10:05 -04:00
Thomas Harte
c4ef33b23f
JustInTimeActors can now specify a clock divider.
2019-10-20 20:38:55 -04:00
Thomas Harte
f26a200d78
Switches to a JustInTimeActor to wrap the IWM.
...
Also simplifies potential future usage of the IWM template.
2019-08-07 21:28:02 -04:00
Thomas Harte
d8a41575c8
Picks a better function name.
2019-07-30 10:54:56 -04:00
Thomas Harte
0521de668a
Omits redundant qualifier.
...
This code can't be anything but `inline`.
2019-07-29 23:07:02 -04:00
Thomas Harte
12441bddab
Tries operator overloading as a workaround.
2019-07-29 23:04:02 -04:00
Thomas Harte
bc25c52683
Although duplicative, resolves function redefinition.
2019-07-29 22:49:02 -04:00
Thomas Harte
2f90ed1f32
Attempts to reformulate into valid C++.
2019-07-29 21:23:37 -04:00
Thomas Harte
9859f99513
Adds a route to not bumping time.
2019-07-29 17:21:27 -04:00
Thomas Harte
2f2478d2d3
Implements AsyncJustInTimeActor, experimentally.
2019-07-29 16:38:57 -04:00
Thomas Harte
a43ada82b2
Experiments with a JustInTimeActor in the Master System.
2019-07-29 15:38:41 -04:00
Thomas Harte
5149f290d0
Starts trying to formalise just-in-time execution.
...
Which, at least, simplifies Cycle/HalfCycle to Cycle run_for usage via template.
2019-07-28 21:49:54 -04:00
Thomas Harte
81b57ecf7c
Adds noexcept
.
2019-07-26 22:18:40 -04:00
Thomas Harte
33e2721eb2
Fully embraces forceinline
.
2019-07-08 21:11:31 -04:00