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
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
3c6a00dc3c
Breaks a potential deadlock.
2020-01-22 22:10:20 -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
6a185a574a
Adds the BD-500 to the Mac GUI.
2020-01-15 23:56:56 -05:00
Thomas Harte
985b36da73
Starts towards STX support.
2020-01-07 23:21:32 -05:00
Thomas Harte
3ced31043a
Makes Jasmin autoboot optional, adds a Jasmin reset key, adds the Jasmin to File -> New... .
...
Also finally implements KeyNMI.
2020-01-05 21:57:33 -05:00
Thomas Harte
de43e86310
Permits Vic-20 memory to be specified in banks; adds recognition of TheC64-style file tags to specify them.
2019-12-26 22:49:48 -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
a847654ef2
Corrects various old-fashioned bits of indentation, plus the odd const.
2019-12-22 00:00:23 -05:00
Thomas Harte
05d77d3297
Also deploys make_unique/shared to avoid type repetition.
2019-12-21 23:52:04 -05:00
Thomas Harte
47508d50a7
Wires through a composite video option for the ST.
...
Which is great and all, except that I've not yet inserted a colour burst. So it's monochrome.
2019-12-20 20:49:14 -05:00
Thomas Harte
5ce612cb38
Adds the Atari ST to File -> New in Cocoa world.
2019-12-17 23:04:12 -05:00
Thomas Harte
2c4f372872
Adds support for the .ST file format.
2019-11-12 23:23:14 -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
345b32d6e3
Implements read-only MSA support.
2019-10-20 20:38:54 -04:00
Thomas Harte
8b397626bf
Adds a route through the static analyser to the Atari ST.
2019-10-20 20:38:54 -04:00
Thomas Harte
c089d1cd09
Improves text; nobody normal knows that this is "a view".
2019-09-24 22:52:08 -04:00
Thomas Harte
6adca98f34
Adds Macintosh choice to File -> New...
2019-09-24 22:48:34 -04:00
Thomas Harte
7112f0336c
Rationalises protocol for application-level event theft.
2019-09-24 22:31:20 -04:00
Thomas Harte
7ff4594f09
Eliminates fast loading Objective-C/Swift protocol.
...
A very long time ago, when each machine had its own Objective-C class, this protocol was used to indicate which machines support that feature. It no longer communicates anything.
2019-09-24 20:13:09 -04:00
Thomas Harte
8489e8650f
Attempts another draft of not inundating the user with open file dialogues.
2019-09-22 13:59:31 -04:00
Thomas Harte
114f81941e
Completes the wiring necessary for capture of the command key.
...
At least when coupled with mouse capture.
2019-09-22 13:53:38 -04:00
Thomas Harte
8f88addf9f
Establishes an interface for requesting shortcut theft. Not yet implemented.
2019-09-22 13:15:35 -04:00
Thomas Harte
f28c124039
Adds a route to divert key events before they reach Cocoa.
...
If you were to use this, it would have the effect of disabling in-app keyboard short-cuts in favour of routing keys to the emulated machine.
2019-09-22 13:15:01 -04:00
Thomas Harte
8a14f5d814
Updates to Xcode11 recommended project settings.
...
The updated compiler also flagged a potential issue with CPU::Z80::Register not being a namespace re: 'Refresh' versus CPU::Z80::PartialMachineCycle. I don't entirely see it, but this fixes the problem.
I also finally figured out what the compiler was trying to tell me about ROMRequester.xib.
2019-09-22 12:13:56 -04:00
Thomas Harte
3e639e96e7
Shows the auto-open dialogue only at most once.
2019-09-21 18:01:16 -04:00
Thomas Harte
8ea4c17315
Completes Mac GUI wiring.
2019-09-19 22:37:23 -04:00
Thomas Harte
2e24da4614
Implements quick booting, and edges towards exposing it on the Mac.
...
It should already work in kiosk mode.
2019-09-19 22:32:12 -04:00
C.W. Betts
4c5f596533
Update CSMachine.mm
...
No need to create a temporary NSNumber object to be passed to a variadic method.
2019-08-10 00:43:30 -06:00
Thomas Harte
b6e4c8209b
Switches to showing 'File -> Open...' at launch.
...
As per the prevailing wind.
2019-08-04 21:34:30 -04:00
Thomas Harte
e08a64d455
Fixes erroneous instruction.
2019-08-02 21:04:53 -04:00
Thomas Harte
f45de5b87a
Adds how-to-release-the-mouse instructions for Cocoa.
2019-08-02 17:07:51 -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
f64ec11668
Tidies up and simplifies panel flow.
2019-08-01 14:31:45 -04:00
Thomas Harte
c41cccd9a6
Adds a workaround to display the ROM import banner even from File -> Open... .
2019-07-30 13:07:33 -04:00
Thomas Harte
3da47318b1
Updates copyright year.
2019-07-23 18:03:37 -04:00
Thomas Harte
374cac0107
Adds negative feedback to ROM installation process.
...
As an ugly kludge, code wise.
2019-07-23 16:24:23 -04:00
Thomas Harte
4d361b1952
Adds MIME type for Apple-recognised disk images.
2019-07-23 11:36:47 -04:00
Thomas Harte
a3ad0ab09b
Completes the successful import path.
2019-07-22 21:46:28 -04:00
Thomas Harte
ed0c4c117b
Ensures that machine name reaches Swift.
2019-07-22 21:18:30 -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
2129bfc570
Gets as far as testing ROMs against the missing list.
...
Though now it strikes me that I've forgotten to retain the machine name.
2019-07-22 18:02:48 -04:00
Thomas Harte
8de6cd3f44
Ensures that ROM files can be dragged and dropped into Swift.
...
Also adjusts the main window background colour, better to bridge the time between selecting a machine and it starting.
2019-07-22 17:18:31 -04:00
Thomas Harte
9b9831f28b
The Mac port will now at least display a list of missing ROMs.
...
It doesn't yet offer the drag-and-drop functionality it promises, however.
2019-07-22 13:00:17 -04:00
Thomas Harte
8a2cac0d0c
Fixes layout constraints.
2019-07-22 11:30:26 -04:00
Thomas Harte
e17b105574
Adds a quick label in exposition.
2019-07-22 11:18:39 -04:00
Thomas Harte
67c5f6b7cb
Ensures the missing ROM list bubbles up to Swift.
2019-07-21 22:05:22 -04:00
Thomas Harte
d452d070a1
Extends the Mac ROM fetcher to return a missing-ROMs list.
2019-07-21 18:41:00 -04:00
Thomas Harte
a846c3245d
Checks the application support directory before the application bundle for ROM images.
2019-07-20 23:04:46 -04:00
Thomas Harte
20670bab2f
Expands information included in ROM load requests.
2019-07-19 22:35:22 -04:00
Thomas Harte
cfad20bb33
Surfaces missing Macintosh types.
2019-07-17 16:02:25 -04:00
Thomas Harte
bcbda4d855
Adds .image as a synonym of .img.
2019-07-16 21:44:59 -04:00
Thomas Harte
9f0cde3d69
Improves mouse capture behaviour.
2019-07-11 22:56:08 -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
387be4a0a6
Ensures mouse button presses propagate correctly.
...
Beyond the one that initiates mouse capture, that is.
2019-07-02 16:57:51 -04:00
Thomas Harte
39aae34323
Avoids multiple calls to -[NSCursor hide] and -unhide.
...
Those are reference counted.
2019-06-13 13:39:35 -04:00
Thomas Harte
d6150645c0
By hook or by crook, mouse input now works.
2019-06-12 22:19:25 -04:00
Thomas Harte
109953ef49
Ensures proper routing of mouse events from Cocoa.
2019-06-11 18:41:41 -04:00
Thomas Harte
124c7bcbb0
Makes the Macintosh a mouse machine, and makes mouse machines detectable.
2019-06-11 18:21:56 -04:00
Thomas Harte
567feaac10
Adds a proper shout out for releasing the mouse.
2019-06-11 16:35:04 -04:00
Thomas Harte
15c38e2f15
Adds the option for mouse capture.
2019-06-11 16:30:53 -04:00
Thomas Harte
85298319fa
Expands towards supporting multiple Macintosh models.
...
To provide another variable to help with bug isolation.
2019-06-03 14:50:36 -04:00
Thomas Harte
881feb1bd3
Adds preliminary parsing of the Disk Copy 4.2 format.
2019-06-02 13:39:25 -04:00
Thomas Harte
6873f62ad8
Ensures that the Mac now retains its ROM properly.
2019-05-03 22:39:09 -04:00
Thomas Harte
5f385e15f6
Adds the bare bones necessary to be able to create a Macintosh from File -> New... .
2019-05-03 22:16:07 -04:00
Thomas Harte
7f5c637aeb
Updates to Swift 5.
2019-03-26 22:15:38 -04:00
Thomas Harte
69a2a133d5
Performs basic migration to Xcode 10.2 — project settings, the one new warning, etc.
2019-03-26 19:47:41 -04:00
Thomas Harte
dc464a0b7b
Introduces a wrapper class for high-precision timers.
2019-03-07 22:04:29 -05:00
Thomas Harte
42997dcb80
Switches brace style, to bring this into line with other source files.
2019-03-06 21:54:21 -05:00
Thomas Harte
0ace189e38
Takes a basic stab at mouse cursor hiding.
2019-03-06 21:49:50 -05:00
Thomas Harte
34047fa60a
Reintroduces proper locking of the OpenGL context in macOS.
2019-03-03 14:49:20 -05:00
Thomas Harte
05d483bc5b
Corrects potential machine shutdown race condition.
2019-03-02 23:17:31 -05:00
Thomas Harte
c11a1f9679
Introduces S-Video support for the ColecoVision.
2019-03-02 23:02:37 -05:00
Thomas Harte
2beeaa513b
Ensures a machine exists before messaging it.
2019-03-02 21:27:34 -05: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
816ad0a94c
Introduces region support to the MSX.
2019-02-28 20:54:43 -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
6c1d94beaa
Adds composite monochrome output for the Oric. At least temporarily.
2019-02-18 16:56:48 -05:00
Thomas Harte
3e0b5433b9
Institutes colour/monochrome screen selection as an Apple II option.
...
Allowing me to test that straight-through composite still works.
2019-02-12 19:52:32 -05:00
Thomas Harte
4748b09721
Ensures safe OpenGL shutdown.
2019-01-17 20:44:18 -05:00
Thomas Harte
64465f97b6
Starts towards reintroducing the proper mechanisms for selecting a display type at runtime.
2018-11-28 17:53:33 -08:00
Thomas Harte
ee89be6730
Removes many stray spaces.
2018-11-23 22:32:32 -05:00
Thomas Harte
817aa186c2
Revokes 'synchronous' as a function of onlyIfDirty, as it doesn't allow for double buffering.
2018-11-20 22:00:40 -05:00
Thomas Harte
f12d734957
Disables multisampling, since there's no way it's being helpful.
2018-11-19 23:36:29 -05:00
Thomas Harte
8a699b6072
Kills setup_output
definitively, saving some indirection. set_scan_target
takes its place.
2018-11-14 21:52:57 -05:00
Thomas Harte
bf3ab4e260
Proceeds as drawing to the unprocessed line buffer and drawing from it.
...
Very, very slowly, and without yet clearing.
2018-11-13 21:15:33 -05:00
Thomas Harte
3045e85004
Ensures redraws when resizing; declines to busy wait otherwise.
2018-11-12 20:15:38 -05:00
Thomas Harte
36bf640c6f
Acts as if it is going to submit scans, at least.
2018-11-07 22:53:46 -05:00
Thomas Harte
55da1e9c0f
Simplifies semantics a little and starts accepting a single buffer of pixel data.
2018-11-06 22:23:38 -05:00
Thomas Harte
014da41471
Ensures scan positions are communicated with a specified range, and switches manner of pixel clock communication.
2018-11-04 21:06:25 -05:00
Thomas Harte
05fb7db147
Reduces CRT chattiness.
2018-11-03 23:47:41 -04:00
Thomas Harte
f6562de325
Possibly adds enough for the Electron and ZX80 to start outputting dummy lines.
...
Let's see!
2018-11-03 23:40:39 -04:00
Thomas Harte
b40211d2c0
Starts to bend 'CRTMachine' to a world farther from owning the GPU relationship.
2018-11-03 21:54:25 -04:00
Thomas Harte
da4d883321
Adds first, incomplete attempts to talk to a ScanTarget from the CRT.
...
Does away with the hassle of `unsigned` while I'm here; that was a schoolboy error.
2018-11-03 19:58:44 -04:00