Thomas Harte
705d14259c
Experimentally switches to a 'high-resolution' clock for SDL.
2020-02-09 21:44:55 -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
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
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
4de121142b
Adds a flags parameter to the BestEffortUpdater delegate.
...
On the Cocoa side, cuts Swift out of the update loop, as that seems merely to add code.
2020-01-20 16:21:53 -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
274867579b
Deploys constexpr
as a stricter const
.
2019-12-22 00:22:17 -05:00
Thomas Harte
05d77d3297
Also deploys make_unique/shared to avoid type repetition.
2019-12-21 23:52:04 -05:00
Thomas Harte
e9318efeb6
Switches to std::make_shared/make_unique in a bunch of applicable places.
...
No doubt many more similar improvements are available, these are just the ones that were easy to find.
2019-12-21 23:34:25 -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
860837d894
Corrects: KeyPad -> Keypad. Also fleshes out Atari ST keyboard mapping.
2019-11-09 18:02:14 -05:00
Thomas Harte
011d76175c
Adds mouse release instructions for SDL.
2019-08-02 16:38:05 -04:00
Thomas Harte
97eff5b16d
Formally distinguishes Macintosh keys from virtual keys.
...
Also: adds mappings for keypad keys, and corrects a couple of
long-standing capitalisation errors in my virtual key set.
2019-08-02 16:15:34 -04:00
Thomas Harte
2432151bf8
Puts machine name into ROMMachine::ROM.
...
Also switches to idiomatic exit codes.
2019-07-22 21:14:21 -04:00
Thomas Harte
4ffa3c1b49
Provides an output for some of the extended ROM information.
2019-07-20 22:52:57 -04:00
Thomas Harte
20670bab2f
Expands information included in ROM load requests.
2019-07-19 22:35:22 -04:00
Thomas Harte
fc6d62aefb
Removes non-functioning workaround.
2019-07-09 16:41:15 -04:00
Thomas Harte
f73bccfec8
Adds a potential workaround for SDL mouse motion.
2019-07-09 16:38:16 -04:00
Thomas Harte
96be1a3f62
Corrects SDL mouse button up/down capture.
2019-07-09 16:32:38 -04:00
Thomas Harte
2651b15db1
Takes a first stab at mouse input support from SDL.
...
There seems to be something odd going on with mouse buttons though; I'm going to test elsewhere.
2019-07-08 17:36:55 -04:00
Thomas Harte
bee0d09877
Splits display update and draw functions.
...
On the Mac, draw is now called without an update for resizing events, and
anything else requested by AppKit. In all other cases — including from
the SDL version — both are called as if they were still a single function.
2019-03-02 19:33:28 -05:00
Thomas Harte
d97348dd38
Eliminates dangling uses of printf
.
2019-03-02 18:07:05 -05:00
Thomas Harte
47dd8ad069
Minor grammar fix.
2019-03-02 17:31:11 -05:00
Thomas Harte
d122535a65
Unifies the OpenGL screenshot code and corrects it for arbitrary alignment.
2019-02-27 21:05:02 -05:00
Thomas Harte
b23e10e261
Improves error messaging and avoids trying to use a null window.
2019-02-24 22:31:59 -05:00
Thomas Harte
ec14750ff1
Minor text improvement.
2019-02-20 22:32:42 -05:00
Thomas Harte
e43de5f1ba
Allows for failure to get a GL context as a reportable issue.
2019-02-20 22:06:22 -05:00
Thomas Harte
727f2e2ba0
Updates to the ScanTarget world.
2019-01-17 22:28:02 -05: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
fc84ae611e
Resolves various instances of spaces in place of tabs.
2018-09-09 20:33:56 -04:00
Thomas Harte
99c770eab4
Ensure that the output of xdg-user-dir
is properly filtered.
2018-07-28 10:45:50 -04:00
Thomas Harte
34aa78b7ce
Attempts to use xdg-user-dir PICTURES
in preference to $HOME for pictures.
2018-07-28 09:14:18 -04:00
Thomas Harte
c572a52049
Ensures SDL is properly informed of buffer byte order.
2018-07-27 18:51:38 -04:00
Thomas Harte
5e7c46a72a
Adds screenshot saving upon ctrl+shift+d.
2018-07-26 20:53:12 -04:00
Thomas Harte
24b861f056
Eliminates make_unique
as this is presently a C++11 project.
2018-07-15 22:52:36 -04:00
Thomas Harte
29f7f4d432
Adds missing #include.
2018-07-15 22:47:50 -04:00
Thomas Harte
3e9ef6b8cb
Adds indicator lights for the SDL port.
...
To complete #426
2018-07-15 20:19:06 -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
d437e06e15
Adds support for digital hat input as an alternative to analogue sticks.
2018-06-16 22:25:46 -04:00
Thomas Harte
678bd93c52
Connects SDL joystick input to joystick machines.
2018-06-14 22:37:44 -04:00
Thomas Harte
15deef50c8
Adds a key reset upon screen mode changes in SDL.
2018-06-14 17:24:16 -04:00
Thomas Harte
64e3cf5de2
Ensured all usage messages reflect latest usage.
2018-06-13 21:31:13 -04:00
Thomas Harte
31a6d620e8
Revokes make_unique
; I had forgotten that's a C++14 feature.
2018-06-13 21:24:12 -04:00
Thomas Harte
dfd37e7dec
Switches full-screen command and adds user-specifiable ROM paths.
2018-06-13 21:21:52 -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
f4097290c2
Made various corrections following a quick for-loop constness audit.
2018-04-30 22:23:57 -04:00
Thomas Harte
465c38f03c
Extends the keyboard protocol and adds keyboard input to the Apple II.
2018-04-15 21:11:30 -04:00
Thomas Harte
e599e65087
Switches to use of the TargetList
typedef wherever possible.
2018-04-14 19:46:38 -04:00
Thomas Harte
78c612ca17
Adds a missing import, removes a redundant conversion.
2018-04-06 20:07:10 -04:00
Thomas Harte
58e5b6e3f1
Updates SDL kiosk mode to the death of CRTMachineDelegate.
2018-03-22 09:23:27 -04:00
Thomas Harte
1c6faaae88
Introduces keyboard-as-joystick fallback for the SDL target.
2018-03-04 17:26:32 -05:00
Thomas Harte
db914d8c56
Removes redundant second configuration.
2018-01-25 18:50:23 -05:00
Thomas Harte
66faed4008
Gives MachineForTargets
complete responsibility for initial machine state.
2018-01-25 18:28:19 -05:00
Thomas Harte
11abc99ef8
Introduces the extra level of indirection necessary to make Analyser::Static::Target polymorphic.
2018-01-24 22:35:54 -05:00
Thomas Harte
21efb32b6f
Integrates the static and nascent dynamic analyser namespaces.
2018-01-24 21:48:44 -05:00
Thomas Harte
d360b2c62d
Standardises the static analyser on std::vector and slightly widens passageway to a machine.
...
The SDL target would now be fooled by a hypothetical multi-target, the Mac not yet.
2018-01-23 22:18:16 -05:00
Thomas Harte
6a0bb83716
Corrects typos in the SDL main.
2017-12-29 18:40:32 -05:00
Thomas Harte
e349161a53
Rejigs the typing relationship so that use of a typer is not strongly implied by the interface.
...
Simultaneously implements typing on the MSX by direct insertion into the key buffer.
2017-12-29 18:30:46 -05:00
Thomas Harte
d5b1a9d918
Moves the typer functionality behind a functionality-based naming scheme, eliminates its C-style memory management.
2017-12-29 15:26:03 -05:00
Thomas Harte
2dc1d4443e
Separates LowpassFilter and SampleSource.
2017-12-18 21:39:23 -05:00
Thomas Harte
ac80d10cd8
Separates the component parts of running an audio stream: task deferral, filtering and generation.
...
Walking towards improving opportunities for composition.
2017-12-17 21:26:06 -05:00
Thomas Harte
55e1d25966
Adds build instructions and references the special SDL key combinations.
2017-11-22 20:03:28 -05:00
Thomas Harte
c1b7bceec8
Switches to using the supply-on-demand audio route through SDL.
...
This gives an additional hook from which machine updates can be hooked, so separates that buffer size from any implicit frame rate assumptions.
2017-11-22 19:36:39 -05:00
Thomas Harte
dc4f58e40c
Hides the mouse cursor when in SDL fullscreen mode.
2017-11-21 21:52:32 -05:00
Thomas Harte
3365ff0200
Adds type recipient as a dynamic type, and accepts paste and fullscreen toggle in SDL.
2017-11-21 21:44:29 -05:00
Thomas Harte
d54ee2af82
Adds user-facing information about which ROMs a machine attempted to load if it fails.
2017-11-21 19:22:33 -05:00
Thomas Harte
c368c4443e
Improves both internal and external exposition for the SDL version.
2017-11-20 21:59:53 -05:00
Thomas Harte
7b25b03cd5
Formally standardises machine options and introduces a --help option for the SDL target.
2017-11-20 21:55:32 -05:00
Thomas Harte
90af395df2
Adds support for receiving dragged and dropped files under SDL.
2017-11-19 18:05:31 -05:00
Thomas Harte
2ea050556b
Adds transcoding of ostensible list selections to Boolean selections, and vice versa.
2017-11-18 21:09:26 -05:00
Thomas Harte
d3e68914dd
Removes uninteresting logging.
2017-11-18 20:00:40 -05:00
Thomas Harte
073e439518
Adds a basic argument parser, allowing machine options to be set.
2017-11-18 19:34:38 -05:00
Thomas Harte
de9db724a7
Introduces Configurable::Device
and implements it for the Electron.
...
Configurable::Device covers devices that have user-facing configuration options, listing them and accepting them.
2017-11-17 23:02:00 -05:00
Thomas Harte
fc080c773f
Adds an explicit request for OpenGL 3.2.
2017-11-14 18:59:18 -05:00
Thomas Harte
a97c478a34
Adds some very basic logging to the SDL target.
2017-11-12 21:23:48 -05:00
Thomas Harte
980cf541d2
Attempts more cleanly to deal with window resizing in SDL.
2017-11-12 19:47:18 -05:00
Thomas Harte
70039d22f1
Allows a CRT machine owner to set the target frame buffer for OpenGL output, breaking the assumption that it'll be zero.
2017-11-12 19:29:22 -05:00
Thomas Harte
2e025d85eb
Added check in SDL main that the expected number of bytes is read.
2017-11-12 16:26:42 -05:00
Thomas Harte
6e1d69581c
Eliminates a variety of end-of-line spaces.
2017-11-07 22:54:22 -05:00
Thomas Harte
e10d369e53
Ensures that execution doesn't proceed if ROMs are missing.
2017-11-07 22:32:59 -05:00
Thomas Harte
ddcdd07dd0
Modifies the Vic-20 and C1540 to bring them into the realm of self-ROM fetching.
...
Hence enables Vic-20 support within kiosk mode as currently drafted.
2017-11-07 21:19:51 -05:00
Thomas Harte
d605022ea3
Moves output setup to after the machine has been configured as its target.
2017-11-06 22:13:38 -05:00
Thomas Harte
4b68c372c6
Adds a first attempt at audio via SDL.
2017-11-05 22:29:25 -05:00
Thomas Harte
13406fedd8
Explains commenting.
2017-11-05 21:29:20 -05:00
Thomas Harte
a209ae76ca
Adds keyboard input from SDL.
2017-11-05 21:16:14 -05:00
Thomas Harte
0116d7f071
Added a platform-neutral route for feeding ROMs to machines, in a platform-dependant fashion; implemented for the CPC.
2017-11-05 20:12:01 -05:00
Thomas Harte
1e1efcdcb8
Pushes far enough along the path of having the SDL version do work that it becomes obvious I've never figured out the correct course of action if there is no sound output.
2017-11-05 12:49:28 -05:00
Thomas Harte
bc2f58e9de
Starts the process of adding an SDL-based 'kiosk' (i.e. TV UI, or even UI-less for now) mode.
...
Specifically, introduces to the Mac side of things an SDL target with, so far, enough logic to create a window and pump SDL's events, after having decided which machine and configuration it should use.
2017-11-04 19:36:46 -04:00