Thomas Harte
|
3df13cddd4
|
As per my keenness for cleanliness improvements corresponding to my ever-increasing C++ ability: turned the Amstrad into something that a factory produces, allowing me completely to hide a bunch of implementation details.
|
2017-07-31 22:32:04 -04:00 |
|
Thomas Harte
|
afd409c883
|
Ensured that ROM images are loaded and passed to the Amstrad CPC.
|
2017-07-31 18:44:49 -04:00 |
|
Thomas Harte
|
c0f1313830
|
Performed sufficient wiring to get to the point where attempting to load a CDT creates an instance of the Amstrad CPC and then fails only because the thing vends a nullptr CRT.
|
2017-07-30 22:05:29 -04:00 |
|
Thomas Harte
|
d25d7d7d40
|
Added the Amstrad CPC as a named target and declared support for its CDT file format.
|
2017-07-29 21:56:33 -04:00 |
|
Thomas Harte
|
2ff157cf7a
|
Switched CRTMachine over to use Cycles as an explicit statement of units, and followed through on the effects of that.
|
2017-07-22 22:17:29 -04:00 |
|
Thomas Harte
|
6633537fb8
|
Discovering that there is such a thing as P81 — a ZX81 file without the name omitted — added support for it. Extended FileHolder while I was here to retain the file name and be able to supply its extension, as my quick-fix test-the-last-character approach to o/p/80/81 discrimination stops working with p81 thrown into the mix and this feels like the correct factoring.
|
2017-07-22 16:02:25 -04:00 |
|
Thomas Harte
|
2b5d0877a8
|
Adjusted parameter name to match documentation. I think it's a carry-over from before I was passing the whole event along.
|
2017-07-21 21:27:50 -04:00 |
|
Thomas Harte
|
238348c885
|
Performed the initial wiring to announce that this application supports TZX files and to route them to the ZX80/81 static analyser. The TZX class itself does not yet do much beyond basic validation. I think it'll be easiest if it follows in UEF's footsteps in queuing up pulses ahead of time, so some factoring out is now required.
|
2017-07-16 21:33:11 -04:00 |
|
Thomas Harte
|
279f4760d7
|
Eliminated buffer_size_ as something explicitly stored, and reduced size of delegate call out.
|
2017-07-16 15:01:39 -04:00 |
|
Thomas Harte
|
368bff1a82
|
Added a shell class that will one day be able to parse CSW files, plus the logic and metadata to instantiate it when a CSW presents itself.
|
2017-07-10 21:43:58 -04:00 |
|
Thomas Harte
|
54efcb7e2f
|
Made a game attempt at automatic motor control and ensured setting is initialised correctly from the user defaults.
|
2017-07-08 19:31:20 -04:00 |
|
Thomas Harte
|
e2575d6de4
|
Routed tape motor selections through to the C++ side of the world, and ensured that manual tape playback works properly.
|
2017-07-08 19:21:12 -04:00 |
|
Thomas Harte
|
23e989e170
|
This will likely do for the Swift/XIB side of things: the play/pause button is enabled or disabled as per the user's choice of automatic tape control, and toggles function when pressed. It communicates activity down to the Objective-C[++] layer, giving it a route through to the actual machine.
|
2017-07-08 19:12:06 -04:00 |
|
Thomas Harte
|
28412150e6
|
Added controls for controlling the tape motor of the ZX80/81, assuming I can find an automatic option.
|
2017-07-08 17:59:33 -04:00 |
|
Thomas Harte
|
644ef13acd
|
Connected up the fast-tape GUI option for the ZX80 and '81.
|
2017-06-22 20:20:31 -04:00 |
|
Thomas Harte
|
a48616a138
|
Fixed reference to Swift-world MachineDocument for the ZX81 file type.
|
2017-06-12 18:51:11 -04:00 |
|
Thomas Harte
|
8222aac9e3
|
Added an official declaration of support for ZX81 files.
|
2017-06-11 21:40:41 -04:00 |
|
Thomas Harte
|
8116f85479
|
Allowed the static analyser to specify a ZX80 or 81, and a memory model. Neither is respected yet in the machine.
|
2017-06-11 19:12:20 -04:00 |
|
Thomas Harte
|
cc4cb45e9d
|
Implemented keyboard input and ensured that the signal generated is marked as composite, putting the colour-suppression ball into the CRT's court.
|
2017-06-06 09:25:18 -04:00 |
|
Thomas Harte
|
c485c460f7
|
Imported the ZX80 and 81 system ROMs (though not publicly), added enough code to post their contents into C++ world.
|
2017-06-04 18:08:35 -04:00 |
|
Thomas Harte
|
b0a7c58287
|
Fixed project to point to the XIB I actually want to keep; fixed that XIB to have the correct contents.
|
2017-06-04 17:57:37 -04:00 |
|
Thomas Harte
|
d2637123c4
|
Added necessary support to get as far as an empty window when attempting to load a piece of ZX80 software.
|
2017-06-04 17:55:19 -04:00 |
|
Thomas Harte
|
655809517c
|
Ensured that there is a subclass of file that is entrusted to load .O/.80 files, and that the code routes such files to it, noting that it should consider whether a ZX80 is required.
|
2017-06-04 16:37:03 -04:00 |
|
Thomas Harte
|
9398b6c2c8
|
Unable to differentiate, decided to map a Mac shift key to both Oric shifts.
|
2017-05-18 22:25:59 -04:00 |
|
Thomas Harte
|
8e35e913bb
|
Formally withdrew the 'load automatically' option for the Vic, having removed that option elsewhere.
|
2017-05-14 16:59:24 -04:00 |
|
Thomas Harte
|
2edf73908c
|
Temporarily disabled the existing fast loading implementation in pursuit of another, and started trying to correct the lack of connection between the userport VIA and the tape drive.
|
2017-05-06 22:00:12 -04:00 |
|
Thomas Harte
|
92a8b68859
|
Dumped Mach-specific test-and-set in favour of ordinary C11.
|
2017-04-15 21:41:59 -04:00 |
|
Thomas Harte
|
bdd432fe1d
|
Added an ugly workaround for the empirical sound shutdown issues.
|
2017-03-26 20:28:04 -04:00 |
|
Thomas Harte
|
b193248056
|
Ensured that queue is not touched at all outside of the critical section.
|
2017-03-11 18:17:09 -05:00 |
|
Thomas Harte
|
38ce4dc56c
|
Fixed potential deadlock, if a delegate decided to dealloc the queue as a result of its prompting.
|
2017-03-11 17:44:02 -05:00 |
|
Thomas Harte
|
dcd0c90283
|
Switched time of best-effort updater delegate setting, to avoid a callback before setupClockRate has happened, and therefore before it's clear what should be going on with audio.
|
2017-02-26 21:58:59 -05:00 |
|
Thomas Harte
|
2f0c923c29
|
Switched away from @synchronized as it appears possibly to be the lock used during -dealloc, creating deadlock with the CSAudioQueueDeallocLock.
|
2017-02-22 21:42:10 -05:00 |
|
Thomas Harte
|
4c947ad553
|
Attempted to resolve risk of an audio callback being in progress when -dealloc is received.
|
2017-02-22 21:12:59 -05:00 |
|
Thomas Harte
|
1d03793f22
|
Fixed potential race condition: ensure the queue is disposed of synchronously because otherwise there'll be a potential dangling reference to self.
|
2017-02-22 07:35:09 -05:00 |
|
Thomas Harte
|
99a35266e1
|
Attempted to bring frequency-switching logic into the cross-platform realm. Which for now creates an issue with the OpenGL context.
|
2017-02-19 21:20:37 -05:00 |
|
Thomas Harte
|
327c19a222
|
Slightly shuffled to avoid a race condition on the best-effort updater.
|
2017-02-11 12:58:47 -05:00 |
|
Thomas Harte
|
fba6baaa9c
|
Stubbed and disabled to get back to building.
|
2017-01-28 21:56:01 -05:00 |
|
Thomas Harte
|
9001cc3fc2
|
Added a cartridge image.
|
2017-01-27 21:26:11 -05:00 |
|
Thomas Harte
|
015b2b49f9
|
Introduced an incomplete set of file association icons.
|
2017-01-26 22:21:55 -05:00 |
|
Thomas Harte
|
580f347727
|
Fixed Oric SCART mode by having it change what it's giving to the CRT based on which shader it knows will be active.
|
2016-12-10 13:55:56 -05:00 |
|
Thomas Harte
|
6cdd41e5a9
|
Added direct use of the colour ROM, uploading 16 bits per pixel to contain the entire ROM composite wave.
|
2016-12-09 22:17:10 -05:00 |
|
Thomas Harte
|
ea33a28695
|
Any Oric-format disks that are inserted now make it all the way to the Oric, along with a request to emulate the Microdisc. It has received a copy of the ROM. The ball is entirely in its court now.
|
2016-11-21 20:59:25 +08:00 |
|
Thomas Harte
|
8499783b14
|
Dragged multibyte primitives and signature checks up to the base class. Implemented support for Oric MFM-style .DSK, at the file format level.
|
2016-11-21 20:47:16 +08:00 |
|
Thomas Harte
|
e2cdfae8a7
|
The emulated Oric now has access to both versions of the BASIC ROM and picks between them based on the static analyser's recommendation.
|
2016-11-15 10:39:16 +08:00 |
|
Thomas Harte
|
a2e5fd2a1f
|
Corrected layout error.
|
2016-11-03 08:02:13 -04:00 |
|
Thomas Harte
|
9c2df231ce
|
Made fast loading optional.
|
2016-11-03 07:59:30 -04:00 |
|
Thomas Harte
|
e5fe37f089
|
Fixed 'joystick' input.
|
2016-10-27 19:44:48 -04:00 |
|
Thomas Harte
|
5c23acdbaf
|
Switched window style back for the Atari HUD.
|
2016-10-27 19:40:29 -04:00 |
|
Thomas Harte
|
013f0c5317
|
Finally forced emulation window to front. Also removed min/max heights where they'd crept in and got explicit about the OpenGL view being first responder.
|
2016-10-24 22:08:24 -04:00 |
|
Thomas Harte
|
91831b6a95
|
Introduced a reuse list for audio buffers, based on the observation that the audio queue seems to start quick rejecting them.
|
2016-10-23 21:17:00 -04:00 |
|
Thomas Harte
|
7c33c34b0c
|
Have withdrawn attempt to be clever with client notification here, as it was having no effect in the current environment, making it hard to build up any confidence.
|
2016-10-23 20:33:59 -04:00 |
|
Thomas Harte
|
f13d7ed6f4
|
Added an extra safety rail.
|
2016-10-20 07:36:53 -04:00 |
|
Thomas Harte
|
73365e1877
|
Resolved sizing error.
|
2016-10-19 23:09:05 -04:00 |
|
Thomas Harte
|
c24c1bf3b1
|
Created an options panel for the Oric. Which involved far too much copy and paste from the Electron. Time to figure out how to generalise this stuff, probably.
|
2016-10-19 22:56:14 -04:00 |
|
Thomas Harte
|
5a808d789a
|
Added an upper threshold that must be crossed before a lower threshold warning is communicated.
|
2016-10-18 22:21:34 -04:00 |
|
Thomas Harte
|
f6b6ec7009
|
Cemented new meaningof the audio queue delegate callout.
|
2016-10-17 08:18:32 -04:00 |
|
Thomas Harte
|
c105f2acd9
|
Sought to reduce chattiness.
|
2016-10-17 08:04:36 -04:00 |
|
Thomas Harte
|
b274d7008c
|
Added precaution to make sure best-effort updaters aren't mid-update during document destruction.
|
2016-10-16 22:14:47 -04:00 |
|
Thomas Harte
|
da9c9ad51a
|
Added in the missing keys; added variable phase to the video.
|
2016-10-14 22:39:27 -04:00 |
|
Thomas Harte
|
138eabcff4
|
Continued in my effort to wire up a keyboard. Will need further to continue.
|
2016-10-14 21:35:15 -04:00 |
|
Thomas Harte
|
d8e4c488c2
|
Started iterating towards having an AY and a fully-working keyboard.
|
2016-10-14 21:18:03 -04:00 |
|
Thomas Harte
|
0ca383ecd1
|
Set every single key to be NMI, in order to be able to progress with the diagnostics cartridge.
|
2016-10-13 18:56:55 -04:00 |
|
Thomas Harte
|
120b2d9e33
|
Switched to using a diagnostic ROM for now, as it'll definitely boot without initially requiring either a 6522 or AY. Have some forms appearing which imply I'm not doing badly, at least up to not knowing where I'm supposed to get character pixels from.
|
2016-10-12 21:52:47 -04:00 |
|
Thomas Harte
|
e6937d8003
|
Ensured that the ROM gets installed. So next for some video action?
|
2016-10-12 18:51:02 -04:00 |
|
Thomas Harte
|
4a062c616f
|
Added enough wiring to get Oric TAPs through to a completely unimplemented Oric emulation.
|
2016-10-11 22:20:13 -04:00 |
|
Thomas Harte
|
cbc3d28217
|
Ensured an exception is thrown if no machine to run a file is found. E.g. right now if you tried to open a ZX Spectrum .tap.
|
2016-10-11 21:03:01 -04:00 |
|
Thomas Harte
|
df01c78039
|
It's a bit of a mess but this is probably close to appropriate for Oric TAP files.
|
2016-10-11 07:39:48 -04:00 |
|
Thomas Harte
|
02bfa8b8de
|
This should just trust.
|
2016-10-10 07:45:09 -04:00 |
|
Thomas Harte
|
f4b39c4435
|
Added documentation and experimentally reduced packet size. We'll see.
|
2016-10-10 07:42:24 -04:00 |
|
Thomas Harte
|
de397799ed
|
Pulled away my crazy rationalisation of an audio queue into a circular buffer and decided just to trust the OS. This should reduce latency.
|
2016-10-10 07:30:00 -04:00 |
|
Thomas Harte
|
fa7c64bb5d
|
Eventually reached an implementation of ADC that continues to satisfy all the formalised unit tests while also satisfying the manual BCDTest, that I need to find a way to formalise. I fixed the unit tests for Swift 3 while here, and attempted to do some unrelated NIB stuff with no real success.
|
2016-10-03 22:03:39 -04:00 |
|
Thomas Harte
|
cfdd5fb686
|
By removing its status as a special case, eliminated the Atari 2600 document. It's fairly clear that my date with doing joysticks properly can be deferred only so much longer but this is no worse than previously things were.
|
2016-10-03 08:01:04 -04:00 |
|
Thomas Harte
|
bf468db73d
|
Migrated the Vic document to a mere options panel.
|
2016-10-03 07:42:05 -04:00 |
|
Thomas Harte
|
9e6e84647e
|
Quick formatting fix.
|
2016-10-02 22:06:28 -04:00 |
|
Thomas Harte
|
f28881ec6b
|
... and with the return of stored options and the shift of the aspect ratio to somewhere else (to sit, temporarily), the Electron document is the first of the gang to die.
|
2016-10-02 22:04:47 -04:00 |
|
Thomas Harte
|
19457621d8
|
Redistributed ownership of the user defaults key prefix, the Electron now works other than that settings aren't retained.
|
2016-10-02 21:56:50 -04:00 |
|
Thomas Harte
|
f1b99263e0
|
Relocated responsibility for loading ROMs, giving an Electron that 'works' (i.e. options aside) again.
|
2016-10-02 20:39:06 -04:00 |
|
Thomas Harte
|
989a1581da
|
Migrated analysis logic from the document controller to the document.
|
2016-10-02 17:04:14 -04:00 |
|
Thomas Harte
|
0c75c2fc41
|
Disabled all machine-specific document code, to force the migration of functionality. The 2600 works other than the little matter of input.
|
2016-10-02 16:57:57 -04:00 |
|
Thomas Harte
|
6c6e9830dd
|
Started factoring the options panels out, in the hope that they'll become the only machine-specific thing. At least in the short term.
|
2016-10-02 16:31:50 -04:00 |
|
Thomas Harte
|
ce4100e5b9
|
Fixed slots for DFS and ADFS to sideways RAM; continued working on the 1770 to get as far as trying to get the body of a sector.
|
2016-09-24 22:04:54 -04:00 |
|
Thomas Harte
|
cd5939501f
|
Treading water some more, ensured the DFS and ADFS ROMs get to the Electron. It now even inserts the DFS ROM if it has a DFS disk image. Might need to make it a sideways RAM though? Regardless, the next job surely — surely! — has to be to stop avoiding the 1770?
|
2016-09-20 07:36:57 -04:00 |
|
Thomas Harte
|
c9dd07cecd
|
DFS disks are now delivered right up to the emulator's front door. So everything's in place to get started on that WD1770 nonsense.
|
2016-09-19 08:29:23 -04:00 |
|
Thomas Harte
|
fbcb59d47a
|
A policy change trial: let the person above deal with any error.
|
2016-09-18 21:18:41 -04:00 |
|
Thomas Harte
|
bcf91de7e9
|
Declared support for the Acorn disk files, started hammering out an encoder.
|
2016-09-18 13:35:54 -04:00 |
|
Thomas Harte
|
a98374995e
|
Cleaned up pre-analysis code.
|
2016-09-17 18:19:32 -04:00 |
|
Thomas Harte
|
7c65c69e0f
|
Migrated to Swift 3.
|
2016-09-15 22:12:12 -04:00 |
|
Thomas Harte
|
ee8510984f
|
Added just enough wiring to restore the 2600 to functionality.
|
2016-09-15 19:34:45 -04:00 |
|
Thomas Harte
|
c3a795328d
|
Windows have titles again. Also I've owned up to not knowing how to edit UEFs right now.
|
2016-09-12 22:15:38 -04:00 |
|
Thomas Harte
|
40660fe680
|
Made yet another guess at Commodore analysis. Elevated fast tape-related unnatural speed up to the OS-side mechanisms.
|
2016-09-12 22:06:03 -04:00 |
|
Thomas Harte
|
908dc40569
|
If loading automatically, assume that whatever was in the machine target set up the machine and don't override it. Too dodgy? More thought required.
|
2016-09-08 07:38:34 -04:00 |
|
Thomas Harte
|
8c84f3581a
|
Attempted to bring some uniformity in application of configurations.
|
2016-09-08 05:32:17 -04:00 |
|
Thomas Harte
|
50175a9aed
|
Added logic to try to spot when the first program is BASIC and, if so, what the correct memory model is, then to get that information to the Vic. Though it currently then gets overwritten by the view controller. Grrrr.
|
2016-09-07 22:17:19 -04:00 |
|
Thomas Harte
|
21e5f407d8
|
I need to get a bit more definitive on naming but this gets all the way to setting a configuration upon an Electron.
|
2016-08-31 22:03:42 -04:00 |
|
Thomas Harte
|
a9b67dfba0
|
Introduced an NSDocumentController subclass.
|
2016-08-31 21:21:07 -04:00 |
|
Thomas Harte
|
7bc2b6b161
|
Added the minor piece that will allow analysis results to be obtained from Objective-C, and exposed to Swift in sufficient detail for it to be able to pass on to the machine.
|
2016-08-31 20:43:29 -04:00 |
|
Thomas Harte
|
d1abfc040c
|
Addressed my dithering here: the file format containers themselves should do nothing but inspect the data to find out whether it is of the correct format. The machine steps are there for machine-specific validation. So it's probably easier to treat a binary ROM image just as a binary ROM image. Therefore, the Acorn-specific .rom detection is now in an Acorn-specific area.
|
2016-08-29 08:48:49 -04:00 |
|
Thomas Harte
|
29c972f4b8
|
Added hacky segue into analysis for all Electron formats. Added analyser to try to differentiate Acorn-format ROMs from other things called .rom, which are likely to be numerous.
|
2016-08-28 12:43:17 -04:00 |
|
Thomas Harte
|
56c0d70c1f
|
Gave disks their own namespace.
|
2016-08-27 17:15:09 -04:00 |
|
Thomas Harte
|
c0402d0c2b
|
Gave tapes their own namespace.
|
2016-08-27 17:09:45 -04:00 |
|
Thomas Harte
|
8c333059a8
|
Turning this into a slog: gave UEF a more appropriate name, got as far as now having to decide what to do about ROMs as to structure. I guess they're machine specific, so specific classes?
|
2016-08-27 16:40:21 -04:00 |
|
Thomas Harte
|
0d077691b0
|
Resolved warning.
|
2016-08-23 21:10:22 -04:00 |
|
Thomas Harte
|
38aec44d85
|
Made sufficient changes for the Vic itself to believe it can recast a PRG as a tape and insert it that way. So now the ball is in the court of: how the heck are Commodore tapes encoded?
|
2016-08-15 19:44:41 -04:00 |
|
Thomas Harte
|
6079d30e58
|
Eliminated waiting here — either the buffer can be enqueued now or it is dropped.
|
2016-08-14 16:20:24 -04:00 |
|
Thomas Harte
|
5373f6cc57
|
Completed setting of options, including mapping from country to ROM + television standard.
|
2016-08-14 14:23:08 -04:00 |
|
Thomas Harte
|
b5af1746d5
|
Added a through path to the Objective-C for setting region and memory size.
|
2016-08-14 14:14:59 -04:00 |
|
Thomas Harte
|
f15d89239f
|
Made a stab at storage and restoration of country and memory size.
|
2016-08-14 14:00:08 -04:00 |
|
Thomas Harte
|
df77c2a20a
|
Added the XIB side of wiring for region and memory size options.
|
2016-08-14 13:53:14 -04:00 |
|
Thomas Harte
|
12bad8f23f
|
Turned the 6560 into an ordinary template, similar to the rest of the project, albeit right now with a fairly shonky internal implementation. Fixed a Mac-specific interface sizing issue.
|
2016-08-09 20:41:05 -04:00 |
|
Thomas Harte
|
285a288c80
|
Switched to two cycles of options loading, meaning that they get set before files are inserted. Might need some further work?
|
2016-08-07 21:48:09 -04:00 |
|
Thomas Harte
|
be54d8040e
|
Made a first stab at having automatic loading be optional. But things are currently arranged such that the machine options are communicated too late to have an effect. So work to do.
|
2016-08-06 17:39:27 -04:00 |
|
Thomas Harte
|
58297f1baf
|
Performed the basic metadata and routing for opening D64 files. Realised that I wasn't actually necessarily catching exceptions properly for all file opens, and fixed.
|
2016-08-01 07:09:15 -04:00 |
|
Thomas Harte
|
18744cd98b
|
Slightly updated comments, switched to 1540 ROM so as very slightly to improve loading time.
|
2016-08-01 04:37:30 -04:00 |
|
Thomas Harte
|
6cfc514c2d
|
Made the rote changes necessary to attempt to open and to supply a G64 to the Vic.
|
2016-07-10 12:57:17 -04:00 |
|
Thomas Harte
|
7cc4bf3fe7
|
Hit and hope is getting me nowhere. Time to unit test this thing.
|
2016-07-09 15:40:25 -04:00 |
|
Thomas Harte
|
81e6cc34e5
|
Per the ROM disassembly, the Vic's VIA outputs are inverted for the benefit of the serial bus.
|
2016-07-07 06:57:21 -04:00 |
|
Thomas Harte
|
1baf21827c
|
Since the ROM is well disassembled, let's actually try to be a 1541 first.
|
2016-07-06 22:17:32 -04:00 |
|
Thomas Harte
|
d1eea6943d
|
Ensured the 1540 ROM gets installed, at least.
|
2016-07-05 16:54:25 -04:00 |
|
Thomas Harte
|
47548dcedc
|
Fixed an erroneous #import.
|
2016-07-05 16:39:31 -04:00 |
|
Thomas Harte
|
86dabd007b
|
Furthered fleshing out of the 1540. Though it doesn't yet receive a ROM so won't even attempt to do anything meaningful.
|
2016-07-05 16:39:18 -04:00 |
|
Thomas Harte
|
0d3d0fbe4d
|
Created a namespace for Commodore and an empty container file for the 1540[/1] implementation.
|
2016-07-05 13:28:27 -04:00 |
|
Thomas Harte
|
df4724eb3e
|
Added a modal toggle allowing the keyboard to be switched between being a keyboard and being a joystick for the Vic.
|
2016-07-04 22:01:07 -04:00 |
|
Thomas Harte
|
88964ceac0
|
Eliminated plain pointer passing for object types.
|
2016-07-04 19:33:55 -04:00 |
|
Thomas Harte
|
6dbf16210b
|
Switched protocol to meaningful name and corrected its omission from the repository.
|
2016-07-04 19:19:07 -04:00 |
|
Thomas Harte
|
6027cba95f
|
Factored out the stuff of pushing a fast-loading option onwards and storing it within the user defaults.
|
2016-06-27 21:38:14 -04:00 |
|
Thomas Harte
|
9134e4de1f
|
Added a partially-wired options menu for the VIC.
|
2016-06-27 18:49:53 -04:00 |
|
Thomas Harte
|
8741be5c84
|
Made the slightest possible effort to get TAPs opened and passed to the VIC.
|
2016-06-25 16:24:52 -04:00 |
|
Thomas Harte
|
ee19417ded
|
Made an attempt quickly to implement parsing of the Commodore .TAP file format.
|
2016-06-25 16:09:32 -04:00 |
|
Thomas Harte
|
b8728285e7
|
An overridden getter looks more like this in Swift.
|
2016-06-23 21:09:34 -04:00 |
|
Thomas Harte
|
097a9caa95
|
Delegates are all nullable, naturally.
|
2016-06-23 09:37:49 -04:00 |
|
Thomas Harte
|
454e98302d
|
Slight rearrangement plus a setting of the CSMachine delegate corrects audio after a clock rate change.
|
2016-06-20 22:18:41 -04:00 |
|
Thomas Harte
|
31b26b8118
|
Made a first attempt to implement the full top-to-bottom change of clock rates, giving the Atari the ability to change rate when it switches to PAL mode, as it should always have been.
|
2016-06-20 21:47:27 -04:00 |
|
Thomas Harte
|
3591479571
|
Fixed mismatch between initial tick box states and communicated switches; ensured they're visible upon launching a game.
|
2016-06-20 21:31:07 -04:00 |
|
Thomas Harte
|
6c3f5d2caf
|
Fixed window sizing.
|
2016-06-19 21:40:35 -04:00 |
|
Thomas Harte
|
065ec618c4
|
Factored out and templated the 6532, finally taking the opportunity to add a means to control the on-console switches of an Atari 2600.
|
2016-06-19 19:36:34 -04:00 |
|
Thomas Harte
|
ef3ed1f436
|
Implemented full paste ability for any machine that is a typer.
|
2016-06-19 16:35:04 -04:00 |
|
Thomas Harte
|
090e92ad26
|
Making this large has very limited side effects. So why not?
|
2016-06-16 21:41:17 -04:00 |
|
Thomas Harte
|
3b71d1a309
|
Switched to a variable-length buffer based on attempting to hit approximately a certain quality of service.
|
2016-06-16 21:35:22 -04:00 |
|
Thomas Harte
|
2ee78d42b9
|
Made an attempt also to trigger updates upon audio packets being returned, and significantly to reduce the size and quantity of those. This should get down to 11ms latency if the output wave is 44100; I might need to scale up the buffer size as the sampling rate increases or this is going to get crazy at 192Khz.
|
2016-06-16 20:51:35 -04:00 |
|
Thomas Harte
|
00a9f1bf24
|
Fixed best-effort updater actually to run, finally moved clock rate announcement into the C++ side of things, started working on a mechanism to allow clock rate to be updated.
|
2016-06-16 20:39:46 -04:00 |
|
Thomas Harte
|
1921a6c469
|
Rewired the existing cause-an-update route from the OpenGLView through the best-effort updater.
|
2016-06-16 18:19:23 -04:00 |
|
Thomas Harte
|
530cf3dcbb
|
Made an attempt to consolidate serialisation and clock rate adherence, allowing a floating-point clock rate.
|
2016-06-16 18:04:54 -04:00 |
|
Thomas Harte
|
ce59ad1911
|
Minor on-disk shuffle, to try to clarify ownership of responsibility.
|
2016-06-15 08:11:30 -04:00 |
|
Thomas Harte
|
45999f5b26
|
This should be strong.
|
2016-06-15 08:07:59 -04:00 |
|
Thomas Harte
|
e0baaf17f1
|
Added class prefix.
|
2016-06-15 08:07:25 -04:00 |
|
Thomas Harte
|
695dd2e9e3
|
Started upon a delegate protocol for the AudioQueue, resolving my use of a deprecated API while I'm at it.
|
2016-06-15 07:35:34 -04:00 |
|
Thomas Harte
|
a9036e7aa4
|
Increased buffering range of audio as a quick fix for now. Basically means: increased latency as a short-term fix.
|
2016-06-14 07:31:47 -04:00 |
|
Thomas Harte
|
fcf4b14344
|
Extended to allow floating-point sampling rates. Which makes sense.
|
2016-06-13 19:30:41 -04:00 |
|
Thomas Harte
|
4fec625b19
|
Minor cleaning, implemented clearAllKeys .
|
2016-06-12 10:38:21 -04:00 |
|
Thomas Harte
|
ec604f1414
|
Expanded mapped keys just a tiny bit further.
|
2016-06-12 10:35:47 -04:00 |
|
Thomas Harte
|
167ed9b8bb
|
Added enough to load a PRG as a ROM.
|
2016-06-11 14:00:12 -04:00 |
|
Thomas Harte
|
d9b001d3fc
|
Minor clean-ups.
|
2016-06-11 13:51:04 -04:00 |
|
Thomas Harte
|
3e8d383615
|
Improved key map. Possibly enough to type some basic BASIC?
|
2016-06-11 13:19:59 -04:00 |
|
Thomas Harte
|
d1731b1d26
|
Hacked my 6522 to work. Mistake is in not returning output as input when appropriate — i.e. that I'm ignoring data direction. Also fixed K and L keys.
|
2016-06-11 13:06:01 -04:00 |
|
Thomas Harte
|
271de23ee6
|
Ran on in and introduced a bunch more keys, hopefully to help to diagnose.
|
2016-06-11 12:26:19 -04:00 |
|
Thomas Harte
|
d7c1f5b18a
|
Made an attempt at hooking up the '2' and '4' keys. A mostly unsuccessful attempt. 2 does nothing, 4 clears the screen.
|
2016-06-11 11:50:37 -04:00 |
|
Thomas Harte
|
0b221e773f
|
Fixed ROM naming and sizes, ensured machines without sound outputs don't end up with an audio queue.
|
2016-06-05 11:20:05 -04:00 |
|
Thomas Harte
|
12243c40ad
|
Kicking the ball a little further down the road, ROMs and PRGs now reach the actual emulated machine.
|
2016-06-05 09:06:59 -04:00 |
|
Thomas Harte
|
b29b2a5d08
|
Added forwarding of a loaded PRG from the Swift document to the wrapper. So I think that possibly completes the Swift side of things?
|
2016-06-05 09:01:32 -04:00 |
|
Thomas Harte
|
8052ce9223
|
System ROMs are now supplied to the Vic-20 wrapper, though they stop there. I also factored key forwarding out of the ElectronDocument and into the superclass, depending upon the child conforming to CSKeyboardMachine.
|
2016-06-05 08:53:05 -04:00 |
|
Thomas Harte
|
363e14a92f
|
Reorganised system ROMs out of the Mac-specific folder, adjusted Mac code to expect to find them organised hierarchically (as how many os.roms am I going to have?) and added readme files to explain what's missing from the Git repository.
|
2016-06-05 08:33:01 -04:00 |
|
Thomas Harte
|
b10a06e700
|
A CRT is still absent but this moves the ball back into the C++ side's court.
|
2016-06-04 22:00:50 -04:00 |
|
Thomas Harte
|
06e1db8c85
|
This now gets as far as missing selectors.
|
2016-06-04 21:49:03 -04:00 |
|
Thomas Harte
|
eff28e95a4
|
Added XIB file.
|
2016-06-04 21:45:39 -04:00 |
|
Thomas Harte
|
404873fe58
|
Started sketching out infrastructure for Vic-20 support.
|
2016-06-04 21:43:50 -04:00 |
|
Thomas Harte
|
d6e8cd676a
|
Trimmed and reordered just a little.
|
2016-06-04 16:02:16 -04:00 |
|
Thomas Harte
|
68a8851c52
|
Increased parallelism, allowing a simplification in the GL view.
|
2016-06-02 22:29:09 -04:00 |
|
Thomas Harte
|
e3b95b8d2b
|
Back to asynchronous updates and drawing, to try to improve guarantees on audio latency; experimenting with whether other parts of the approach are fundamentally flawed; added a broad-phase for scheduled updates on the 2600.
|
2016-06-02 21:22:55 -04:00 |
|
Thomas Harte
|
11073daee1
|
Issues appear to be around timing generally. Working on it.
|
2016-06-02 20:15:48 -04:00 |
|
Thomas Harte
|
253e5a4203
|
With no regard to performance whatsoever, endeavoured to bring sound to the 2600. It's very scratchy, so something is wrong.
|
2016-06-02 19:50:16 -04:00 |
|
Thomas Harte
|
8623dc2833
|
Consolidated a little more within the common code, adding sampling rate selection based on querying the machine.
|
2016-06-01 19:04:07 -04:00 |
|
Thomas Harte
|
50543e9676
|
Minor factoring up: the audio queue is now pushed universally by MachineDocument .
|
2016-05-31 22:36:53 -04:00 |
|
Thomas Harte
|
c773c3a66c
|
Started trying to clean up and consolidate on the Swift side of things but time is up for the day.
|
2016-05-31 22:32:38 -04:00 |
|
Thomas Harte
|
8dc66167be
|
Made an attempt to consolidate the Objective-C++ side of things based on the incoming CRTMachine::Machine .
|
2016-05-31 22:16:20 -04:00 |
|
Thomas Harte
|
5c4f35e13f
|
Finally started on generalising the C++ stuff so as to be able to be able to get a working audio binding on the OS-specific side without further repetition by factoring an appropriate protocol out from the Electron and sketching out the correct speaker class for the Atari. Added a method to ask it what a good output frequency would be.
|
2016-05-31 21:23:44 -04:00 |
|
Thomas Harte
|
40600b4bcb
|
Made sprite placement consistent at least. Not necessarily yet correct.
|
2016-05-18 22:07:24 -04:00 |
|
Thomas Harte
|
3765c5fbb5
|
Fixed error that would prevent an interrupting frame from ever being drawn.
|
2016-05-18 21:45:35 -04:00 |
|
Thomas Harte
|
ddfc9910e5
|
Sought to draw in a standard serial arrangement as and when bandwidth allows it.
|
2016-05-09 07:17:12 -04:00 |
|
Thomas Harte
|
1bb92550f8
|
It's 2016.
|
2016-05-02 22:02:06 -04:00 |
|
Thomas Harte
|
6982e945fb
|
Fixed those issues breaking GL state, I hope.
|
2016-05-01 16:17:52 -04:00 |
|
Thomas Harte
|
9b64f64db7
|
Attempted to normalise some style decisions.`
|
2016-04-24 22:32:24 -04:00 |
|
Thomas Harte
|
884755c560
|
Ensured the GL context is available when switching Atari 2600 output, and that it locks the output.
|
2016-04-24 20:56:21 -04:00 |
|
Thomas Harte
|
d221c712b0
|
Ensured GL context is active when destructing CRTOpenGL.
|
2016-04-24 20:34:25 -04:00 |
|
Thomas Harte
|
929cfc49cb
|
Extended window for picking output frequency, attempted to consolidate CRT OpenGL timing uniforms for approprate resetting.
|
2016-04-24 18:58:31 -04:00 |
|
Thomas Harte
|
082003ed0a
|
Reintroduced the CRT delegate and the 2600's automatic region switching. Albeit that the CRT itself doesn't adjust properly to new timings yet.
|
2016-04-24 18:36:22 -04:00 |
|
Thomas Harte
|
80a3169674
|
Started reviving the Atari 2600 emulation. Put new startup sequence into place.
|
2016-04-24 06:56:08 -04:00 |
|
Thomas Harte
|
9c89b668ae
|
Made further attempts to improve synchronisation and interrelated timing between display and machine update.
|
2016-04-20 22:35:46 -04:00 |
|
Thomas Harte
|
7aa87723a9
|
Added: key states are all cleared if the window loses focus. Which resolves sticky key issues. Allowing me just to use command+option+O for options and map both command and option as FUNC.
|
2016-04-19 21:29:10 -04:00 |
|
Thomas Harte
|
d5bac2f04f
|
Spotted error was in texture target all along. This now gets as far as showing something a lot like the correct display, but precision is way off. Way off.
|
2016-04-18 21:32:48 -04:00 |
|
Thomas Harte
|
86626bbd72
|
Switched key that maps to FUNC from command to option. Logic is that command may frequently be used for performing an action which changes the key window, in which case we won't realise if it is released.
|
2016-04-18 19:20:26 -04:00 |
|
Thomas Harte
|
f89308e913
|
Set the 'options' windows to hide on application deactivation so that they don't cluelessly sit on top of the rest of the system.
|
2016-04-18 19:14:58 -04:00 |
|
Thomas Harte
|
bf29c8e2bf
|
Fixed mismatch in television/monitor selection, ticked view for drawing concurrently, since it can, removed stray space.
|
2016-04-18 19:01:15 -04:00 |
|
Thomas Harte
|
3d53f157de
|
Output selection now takes effect. So I can stop accidentally committing changes back and forth.
|
2016-04-18 08:27:58 -04:00 |
|
Thomas Harte
|
94f148e212
|
Wired in options, at least getting as far as the Objective-C bridge. Then fast loading makes it to the emulated machine, display output type doesn't.
|
2016-04-18 08:21:00 -04:00 |
|
Thomas Harte
|
6158275ea7
|
Started adding an options panel.
|
2016-04-17 21:43:39 -04:00 |
|
Thomas Harte
|
499f7ace07
|
Re-enabled working video output for the Electron for the day and consolidated the rough metric I'm using to pick a number of taps for the audio filter.
|
2016-04-17 20:43:20 -04:00 |
|
Thomas Harte
|
104f44f27f
|
Attempted to improve deinterlacing, gave the CRT full control over blend mode, switched back to 2000000Mhz audio.
|
2016-04-14 22:20:47 -04:00 |
|
Thomas Harte
|
2cc72169ff
|
Ensured machines can nominate their own aspect ratio windows. Switched to 11/10 for the Electron.
|
2016-04-11 23:12:56 -04:00 |
|
Thomas Harte
|
7276a06cc0
|
Added a helper to calculate a visible rect based on output timings, used it to scale the Electron output up to the full window size.
|
2016-04-11 21:47:23 -04:00 |
|
Thomas Harte
|
e617bd2bb3
|
Turned audio quality up to the maximum, at least for now.
|
2016-04-06 21:12:22 -04:00 |
|