1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-11 04:28:58 +00:00
Commit Graph

112 Commits

Author SHA1 Message Date
Thomas Harte
00f414d757 Made an attempt to reintroduce interlacing and screen modes with gaps. Something's wrong with synchronisation though, so most likely I'm outputting a bad signal. 2016-02-20 17:32:51 -05:00
Thomas Harte
68992a62f9 Switched to a subtler to out-of-band syncs. 2016-02-20 00:16:07 -05:00
Thomas Harte
1954f7bcbd Got back to a stable image, at least when staying in a mode. Which is what I was trying to fix. Hmmm. 2016-02-19 23:41:09 -05:00
Thomas Harte
570d88a876 Added a simple metric for measuring surprise. Which will hopefully allow me to reimplement PAL/NTSC auto-selection for the Atari 2600. 2016-02-18 23:22:06 -05:00
Thomas Harte
ce3c098c28 Widened beam a little, moved to a linear approximation of age across scans, cut number of stored frames. 2016-02-16 21:48:09 -05:00
Thomas Harte
b261e86c62 Reintroduced lateral as a parameter in CRT drawing, to simulate a rounded raster. 2016-02-16 20:37:04 -05:00
Thomas Harte
a01f90ff3e Attempted a switch to the real PAL visible area and to something a bit like a real phosphor decay. 2016-02-14 21:57:23 -05:00
Thomas Harte
7580d192d5 Fixes: now setting correct frame time estimate, properly enabling the timestamp attribute, and ensuring that the Electron flushes screen work at least once per host frame update. 2016-02-14 19:28:02 -05:00
Thomas Harte
752db78431 No doubt still imperfect but killed the repeated whole texture uploads. 2016-02-13 23:55:02 -05:00
Thomas Harte
697e50c0cc Screen output is back, no matter how inefficiently. 2016-02-13 23:50:18 -05:00
Thomas Harte
d0b2d840da A minor fix to data queuing. Display still absent. 2016-02-13 20:57:41 -05:00
Thomas Harte
eeb0e134fd Started the transition towards a more natural collection of rolling buffers, with phosphor decay in mind. 2016-02-13 20:52:23 -05:00
Thomas Harte
fd2d5c78f8 Started trying to nudge towards the multistage approach to video decoding. 2016-02-12 22:31:05 -05:00
Thomas Harte
0a09762be6 Fixed output precision compared to the new approach of trusting the flywheel for position, and eliminated fixed-Acorn constants. Also re-enabled the faded previous frame, at least temporarily. 2016-02-12 19:53:49 -05:00
Thomas Harte
1d20a29d97 Made an attempt to switch to the flywheels for both vertical and horizontal sync, and to act more appropriately for out-of-bounds sync requests. Lots of tweaking to do, I fear. 2016-02-11 23:43:08 -05:00
Thomas Harte
c81891ec43 Minor tidying and at least acknowledged the new flywheel encapsulation. 2016-02-11 22:13:38 -05:00
Thomas Harte
a6574d1f96 Made an attempt to factor out and more clearly to document my implementation of flywheel synchronisation. 2016-02-11 22:12:12 -05:00
Thomas Harte
c66409421e Switched to generating an interlaced output, that apparently being correct. Enabled a poor man's version of phosphor persistence to smooth things out a little. It's not completely unconvincing. 2016-02-10 23:11:25 -05:00
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