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

118 Commits

Author SHA1 Message Date
Thomas Harte
7839d93344 With the provision of an extra hint to the CRT and, finally, the realisation about why my scans weren't exactly joining up, improved output precision. 2016-02-27 22:39:01 -05:00
Thomas Harte
1c6de7692d Made an attempt to fix tape output interrupts; offloaded raster width and placing conversion to the GPU. 2016-02-27 20:37:41 -05:00
Thomas Harte
db18c85423 Simplified the run builder rather; put a double check of Electron timing in place. 2016-02-25 22:01:42 -05:00
Thomas Harte
1eea28b692 Disabled some debugging parts, added some others, marked some things as inline. Ticking over. 2016-02-22 23:35:42 -05:00
Thomas Harte
4b28e7b974 Switched back to a single array and vertex buffer. 2016-02-21 22:54:55 -05:00
Thomas Harte
574985f9a2 Fixed interlaced timing; switched to a more robust detector for horizontal sync; eliminated some test logging. 2016-02-20 20:29:40 -05:00
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