Thomas Harte
|
b5bcadb8d3
|
Reinstated clipped CRT output, with more appropriate ownership of the decision.
|
2016-02-07 22:18:55 -05:00 |
|
Thomas Harte
|
3a689d14cc
|
Added padding of supplied data to correct for any potential rounding errors when rendering.
|
2016-02-07 20:29:32 -05:00 |
|
Thomas Harte
|
3a9ea66f8b
|
Filled in shader class.
|
2016-02-07 19:21:22 -05:00 |
|
Thomas Harte
|
4d0a218a57
|
Certainly at least seriously considering a separate holder for the "compile a shader" logic. Otherwise taking steps back towards PAL/NTSC decoding.
|
2016-02-07 17:32:38 -05:00 |
|
Thomas Harte
|
602327cd9d
|
Sketched out a quick class for rendering to texture.
|
2016-02-07 15:42:02 -05:00 |
|
thomasharte
|
2cb12a7513
|
Allowed overly aggressive allocations to be cleared up after the fact.
|
2016-02-06 16:07:23 -05:00 |
|
Thomas Harte
|
bf348ccb96
|
Fixed clearing logic.
|
2016-02-05 22:47:12 -05:00 |
|
Thomas Harte
|
6ab425deda
|
There is now a semi-reasonable amount of screen output again.
|
2016-02-05 21:35:39 -05:00 |
|
Thomas Harte
|
80e7e5e602
|
Updated to return old behaviour of drawing only upon changes.
|
2016-02-04 23:05:47 -05:00 |
|
Thomas Harte
|
8bc3f8046d
|
This endeavours to move everything into the CRT class except the final version of shader building.
|
2016-02-04 22:57:46 -05:00 |
|
Thomas Harte
|
e0d51408e4
|
Onward with carrying this through to the bitter end, this at least results in all the appropriate knowledge and call-ins occuring at the CRT.
|
2016-02-04 22:28:50 -05:00 |
|
Thomas Harte
|
09e11469c3
|
Simplified further: eliminated delegate. Which means I can go frame-free internally to the CRT at some point, if I want.
|
2016-02-03 19:11:18 -05:00 |
|
Thomas Harte
|
19393390ac
|
It's broken now, but this is what I now intend the full public interface of the CRT to be.
|
2016-02-02 22:41:33 -05:00 |
|
Thomas Harte
|
4554abb755
|
Made an attempt to be more rigorous in display generation on the Electron, to make sure I deal with mid-line changes to/from blank line mode. Even if it turns out that they generate pixels.
|
2016-01-29 21:14:13 -05:00 |
|
Thomas Harte
|
adc6838ba0
|
Continued slow migration of shader ownership to CRT. Attempted to start debugging the tape interface.
|
2016-01-27 21:35:57 -05:00 |
|
Thomas Harte
|
1819e7b9cc
|
Started sketching out an appropriate interface to transfer responsibility for shaders to the CRT.
|
2016-01-23 19:06:32 -05:00 |
|
Thomas Harte
|
ace331d4b4
|
Got a bit higher level in CRT timing specification. Which internally allows it now to infer the colour clock frequency. Which will be helpful momentarily.
|
2016-01-23 18:53:20 -05:00 |
|
Thomas Harte
|
a9e26d7808
|
Introduced a scan's delay, as intended.
|
2016-01-23 17:49:25 -05:00 |
|
Thomas Harte
|
20cab08f8f
|
Added a two-slot buffer of scans and a comon dispatch mechanism.
|
2016-01-23 17:44:34 -05:00 |
|
Thomas Harte
|
0efe4b312c
|
Disabled my various bits of rate interchange debugging; improved test for when to call update_display due to a RAM write.
|
2016-01-21 22:16:52 -05:00 |
|
Thomas Harte
|
48ddd3c497
|
Set about documenting the CRT; while doing so decided to add an optional clock divider for input; having done so decided to try to exploit it with the Electron.
|
2016-01-21 21:17:47 -05:00 |
|
Thomas Harte
|
4c16d34063
|
Moved set_tape so that the inline definition of get_next_tape_pulse is visible to it. Also eliminated some dead typedefs.
|
2016-01-20 08:27:25 -05:00 |
|
Thomas Harte
|
f727582911
|
Started making first moves towards stripping CSCathodeRayView of its responsibilities. If that can be merely an OpenGL view that presents things, things will be a lot more portable.
|
2016-01-20 08:21:33 -05:00 |
|
Thomas Harte
|
e65cd4cf06
|
Some data is marginally reaching the CPU from the tape.
|
2016-01-19 22:05:34 -05:00 |
|
Thomas Harte
|
ddcc34740b
|
Added lots of debugging output while I attempt to locate the source of audio scratchiness, also simplified manner of dealing with wraparound within the AudioQueue wrapper.
|
2016-01-18 13:50:19 -06:00 |
|
Thomas Harte
|
b58e59e2bb
|
Fixed: now outputting the requested output rate, rather than massively overproducing at the input rate.
|
2016-01-14 23:12:40 -05:00 |
|
Thomas Harte
|
383b2be4c6
|
Fixed one off-by-one error.
|
2016-01-14 21:33:27 -05:00 |
|
Thomas Harte
|
8bd04a6be4
|
Switched model for filter subclasses. Implemented test square[-ish] wave to check for obvious stream errors. None is clear.
|
2016-01-14 21:27:02 -05:00 |
|
Thomas Harte
|
38ffcaa262
|
Here, at last, is _some_ audio output, at least.
|
2016-01-14 20:33:22 -05:00 |
|
Thomas Harte
|
afde8dac49
|
Closed the loop such that audio manages to bubble up into Objective-C.
|
2016-01-13 22:38:59 -05:00 |
|
Thomas Harte
|
439d452e23
|
Resolved some errors.
|
2016-01-13 22:11:33 -05:00 |
|
Thomas Harte
|
49e89a4bcb
|
I'm not yet completely convinced by my approach to time basing, but it'll probably do? If so then this more or less gets me ready for a point-sampled filtering.
|
2016-01-13 22:02:39 -05:00 |
|
Thomas Harte
|
d9a7ef9e46
|
Edging towards audio output; the speaker is given appropriate input and output rates, and then updated with current divider and enabled/disabled status.
|
2016-01-13 21:03:43 -05:00 |
|
Thomas Harte
|
84ba4e2900
|
Tidied a little, started working towards supporting speaker output.
|
2016-01-12 22:19:56 -05:00 |
|
Thomas Harte
|
3437781abd
|
Started sketching out an interface for sound generation. Which made me realise that the CRT in CRTDelegate was redundant, since C++ has namespaces.
|
2016-01-12 16:54:09 -05:00 |
|
Thomas Harte
|
82aa6d074a
|
'type' is out, at least for the time being.
|
2015-09-05 20:25:30 -04:00 |
|
Thomas Harte
|
3c3c4d2f7c
|
Enlarged drawing range a little.
|
2015-08-19 21:35:26 -04:00 |
|
Thomas Harte
|
28fad66272
|
Okay, so I had those constants transposed. What a klutz I've been!
|
2015-08-19 09:09:00 -04:00 |
|
Thomas Harte
|
f74d9ee373
|
Copied in quote. So that I can stop looking it up.
|
2015-08-18 22:36:32 -04:00 |
|
Thomas Harte
|
a62c7f5c56
|
At last! Discovered CRT scanning bug; was always moving by the full proposed run length along the scan, not the time until the next event. Using this, have implemented proper vertical sync at last (I think). Have disabled scanline banding too, as now everything meets up it's more helpful to be able to see with clarity.
|
2015-08-18 22:22:47 -04:00 |
|
Thomas Harte
|
88d5064737
|
Not that it makes a lot of difference, there being no names to mangle, but moved the closing #ifdef __cplusplus to the idiomatic place.
|
2015-08-18 20:33:59 -04:00 |
|
Thomas Harte
|
902795d61c
|
Switched vertical sync detection method, at least for now. They never happen automatically (I need to fix that) and just always take effect if detected in the lower half of the display. PAL/NTSC is determined just by looking at the refresh rate.
|
2015-08-18 00:17:03 -04:00 |
|
Thomas Harte
|
083b678785
|
Quickie: observed that the initial position is one scanline dirty, not zero. Also switched to a size_t on the write pointer, size_t being the correct C size for into-memory offsets.
|
2015-08-17 00:25:32 -04:00 |
|
Thomas Harte
|
cde9bb7ebc
|
Put common shift step into a macro.
|
2015-08-16 16:12:20 -04:00 |
|
Thomas Harte
|
a693c081f8
|
Switched on the appropriate compiler warnings re: signed comparisons and implicit conversions. Fixed all less-than-explicit calls.
|
2015-08-16 16:08:29 -04:00 |
|
Thomas Harte
|
b440fed323
|
Fixed a couple of incorrect references to horizontal constants or calculations where the intention is to use vertical.
|
2015-08-13 18:29:07 +01:00 |
|
Thomas Harte
|
59c872ada6
|
Attempted to reintroduce suitably noted emergency flyback. To re-enable auto-selection of PAL.
|
2015-08-13 14:55:53 +01:00 |
|
Thomas Harte
|
aebf636528
|
Ensured the PIA timer resumes its normal tick rate after being read; fixed those spaces that had crept in where tabs should be.
|
2015-08-10 16:55:16 +01:00 |
|
Thomas Harte
|
fd36f13baf
|
The cathode ray view no longer hard codes the frame size. So that's one less coupling. Doubled pixel output size to give sufficient sampling detail to capture the NTSC colour clock (ummm, hopefully).
|
2015-08-05 21:45:47 -04:00 |
|
Thomas Harte
|
67e82c713f
|
Broke assumption that every item in a vertex description is a short, specifically turning lateral into a byte. Which buys me a byte for phase, if that's sufficient.
|
2015-08-05 21:12:33 -04:00 |
|