Thomas Harte
35be402354
Improve sanity check.
2021-02-16 19:47:25 -05:00
Thomas Harte
96f2d802d9
Adds a safeguard against undefined behaviour in the debugger.
2021-02-16 19:17:54 -05:00
Thomas Harte
da814c62bc
Merge branch 'master' into AppleIIgs
2021-01-03 20:57:08 -05:00
C.W. Betts
3749b7b776
My improvements:
...
Use synthesized properties for CSMissingROM.
Remove openGLView from the xib: that will quiet a warning.
Add nullability metadata to CSStaticAnalyser.
2020-12-31 13:23:46 -07:00
Thomas Harte
fe4caf7a41
Nudges tick frequency up to match the other platforms.
2020-12-10 21:02:13 -05:00
Thomas Harte
49cee90b4d
Ensures no retraces are missed.
2020-12-09 20:32:26 -05:00
Thomas Harte
3da6b4709c
Fixes sign of arithmetic.
2020-11-29 20:23:33 -05:00
Thomas Harte
a5dcab4092
Ensures machines with no audio output are handled correctly.
2020-10-21 21:16:00 -04:00
Thomas Harte
ceeadd6a33
Edges up towards reimplementing screenshots.
2020-09-13 22:30:17 -04:00
Thomas Harte
1a2545fdea
Excises dangling references to OpenGLView
, reinstates display link.
2020-09-13 22:11:51 -04:00
Thomas Harte
645c29f853
Adds an intermediate buffer to correct inter-frame smoothing.
...
Also goes someway back to the old scan output scheduling, albeit presently with limited thread safety.
2020-08-15 21:24:10 -04:00
Thomas Harte
e55945674d
Reduces main thread blocking.
2020-08-14 22:16:49 -04:00
Thomas Harte
eadda6a967
Further strips OpenGL from the macOS target.
2020-08-09 22:17:27 -04:00
Thomas Harte
df89a8771c
Makes an attempt to have the emulator fill the actual GPU buffers.
...
Not that they're drawn from correctly yet. I might first take a run at a new quick-path output route for emulated RGB displays, that just seeks to use the scans directly. No intermediate buffers. Besides probably being a good feature, it'll be a good way to ramp further up with Metal.
2020-08-08 22:49:02 -04:00
Thomas Harte
e235a45abb
Breaks all output.
...
... by switching out NSOpenGLView for MKLView with no drawing infrastructure yet in place.
2020-08-04 18:22:14 -04:00
Thomas Harte
478d081095
Ensures machines take user-friendly default settings.
2020-06-23 23:27:56 -04:00
Thomas Harte
48afc54af6
Cuts down unused parameter warnings to just a few that may well indicate implementation errors.
2020-05-30 01:06:43 -04:00
Thomas Harte
f417fa82a4
Splits 'CRTMachine' into three parts: ScanProducer, AudioProducer, TimedMachine.
...
Simultaneously cleans up some of the naming conventions and tries to make things a bit more template-compatible.
2020-04-01 23:19:34 -04:00
Thomas Harte
72103a4adb
Corrects execution cap for splitAndSync ticks.
2020-03-22 19:25:02 -04:00
Thomas Harte
7398cb44e2
Adds a functioning volume control for macOS, it just doesn't know how to hide yet.
2020-03-22 13:24:23 -04:00
Thomas Harte
9995d776de
Attempts to fix the macOS version, plus some implicit type conversions.
2020-03-18 23:29:09 -04:00
Thomas Harte
f08d500fd6
Attempts to factor out the latest keyboard logic and hook it in from SDL also.
2020-03-03 22:58:15 -05:00
Thomas Harte
1f41d9c5f5
Further improvement: if in physical mode, but pressing an unrecognised key, attempt to 'type' it.
2020-03-02 22:08:54 -05:00
Thomas Harte
ed18092088
Extends logic for when to fall back on standard keypress logic even in logical mode.
2020-03-01 20:25:12 -05:00
Thomas Harte
560394fead
Ensures keys without symbols are forwarded.
2020-02-29 22:37:15 -05:00
Thomas Harte
4572c86f0f
Adds a third keyboard input mode, which maps to posting things as a typer.
2020-02-29 18:17:39 -05:00
Thomas Harte
f99d672237
The macOS port now selects stereo output if appropriate.
2020-02-16 14:05:50 -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
e1892ff370
Resolves crash upon File -> New..., Cancel; also ensures slow performance can't equal no progression.
2020-02-14 23:16:44 -05:00
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
0b0a7e241b
Factors out the stuff of time warping.
2020-02-09 22:11:06 -05:00
Thomas Harte
2ea1e059a8
Softens swings in emulated machine speed.
2020-02-09 16:34:13 -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
e7410b8ed8
Uses objective clock for updates.
2020-02-04 22:24:54 -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
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
7bac439e95
Adds, and comments out, a useful temporary piece of debugging logging.
2020-01-23 22:14:22 -05:00
Thomas Harte
3aa2c297a2
Adds feedback to the best-effort updater; enables the Cocoa port for audio event requests.
2020-01-20 17:38:25 -05:00
Thomas Harte
290db67f09
Adds a forward route for event flags. Doesn't yet account for extra time expended.
2020-01-20 17:09:01 -05:00
Thomas Harte
0dae608da5
Embraces std::make_[unique/shared] in place of .reset(new .
2019-12-23 21:31:46 -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