1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-27 16:31:31 +00:00
Commit Graph

427 Commits

Author SHA1 Message Date
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
5980f5e991 Number of taps can be specified explicitly if you desire. 2016-04-17 20:45:57 -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
9ede284eb6 Added blanking source runs, ensuring the rolling buffer is appropriately cleared. 2016-04-17 20:34:52 -04:00
Thomas Harte
43cae267f9 Shuffled further in an attempt to get as far as having static but incorrectly-interpreted pixel data on screen. It's not currently static. So work to do. 2016-04-17 18:08:05 -04:00
Thomas Harte
a8fbd82a3d Made an attempt at correctly mapping to eye coordinates. 2016-04-17 17:21:24 -04:00
Thomas Harte
ece51917fa Added first attempt at performing the first step of television output: mapping from source data to the first of the processing buffers. It's immediately obvious that my eye coordinates are off. 2016-04-17 17:17:59 -04:00
Thomas Harte
abce0ed3c4 Added setup of the source vertex array. 2016-04-17 16:17:23 -04:00
Thomas Harte
6ff9ffba6c Switching temporarily to an attempt to draw input runs as if RGB: shader compiles, fixed a race condition on out-of-bounds accesses for the source buffer. 2016-04-17 15:51:28 -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
323f1a24db Introduced blackout period solution to vertical sync confusing horizontal sync. Need to find out whether it's accurate. 2016-04-14 20:30:45 -04:00
Thomas Harte
6a17c2992d Introduced a compile-time configurable audio divider, set it arbitrarily to '8' for now. Discovered why my graphics aren't centred and added a TODO. 2016-04-13 22:31:59 -04:00
Thomas Harte
026ce0255f Source runs are now captured, and that buffer appropriately reset. 2016-04-13 22:20:13 -04:00
Thomas Harte
2ea02ed127 A source array buffer is also now created, mapped, unmapped, etc. 2016-04-13 22:14:18 -04:00
Thomas Harte
955e185790 Minor simplification. 2016-04-13 19:19:04 -04:00
Thomas Harte
04d1b65c93 Reinstated texture target creation, cut them down to merely RGB. 2016-04-12 22:48:47 -04:00
Thomas Harte
4be8053ba9 Updated documentation. 2016-04-12 22:38:49 -04:00
Thomas Harte
4d889d9c7f Made an attempt slightly to simplify the fragment processor, at both ends. 2016-04-12 22:35:11 -04:00
Thomas Harte
fe8b0ebc7e Tidied up a little, mostly bumping things out of just-in-time creation that I can just do well in advance. 2016-04-12 22:31:13 -04:00
Thomas Harte
069ec2e889 In search of the cause of performance issues again, excised the per-pixel sin until it can be further evaluated. 2016-04-11 23:13:54 -04:00
Thomas Harte
d100c755b7 The final line runs on a diagonal. Leave room for that. 2016-04-11 23:13:14 -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
a3c2cd880e I discovered a further post on this on the STH forums; apparently the Electron simply asserts sync continuously. No breaks. 2016-04-11 21:01:09 -04:00
Thomas Harte
e45fe43801 Removed some dead caveman debugging. 2016-04-10 23:02:34 -04:00
Thomas Harte
bdb99ba92f Corrections back towards composite output: fixed misnamed constant, ensured the CRT doesn't write nonsense to the output buffer, ensured it grows three vertices at a time rather than six when desired. Net effect should be that the output stage is working again, with the input processing remaining to fill in. 2016-04-10 22:56:52 -04:00
Thomas Harte
8701366277 Switched horizontal sync detection back to differential, switched the Electron to an XOR-style sync output (believed to be accurate, but I need to check), fixed some latent issues around vertical sync detection. 2016-04-10 21:34:40 -04:00
Thomas Harte
fc5530b513 Realising I've managed to confuse input and output, started shift to 'source' for what 'input' was. 2016-04-10 15:58:43 -04:00
Thomas Harte
e617bd2bb3 Turned audio quality up to the maximum, at least for now. 2016-04-06 21:12:22 -04:00
Thomas Harte
28e6517234 Switched away from tracking absolute time to tracking relative. 2016-04-06 20:46:00 -04:00
Thomas Harte
d4be4c4769 Of course, I want min. Not max. 2016-04-06 20:27:48 -04:00
Thomas Harte
fd1f6a7e1f Expanded on thinking. 2016-04-06 19:35:53 -04:00
Thomas Harte
e885438363 The penny has finally dropped that I can drive the CPU stuff in a manner completely decoupled from the GPU stuff. For much improved parallelisation. 2016-04-06 19:34:34 -04:00
Thomas Harte
5aa6da221f Shifted responsibility for byte shifts, probably to a more logical place. 2016-04-05 22:19:14 -04:00
Thomas Harte
2248769df9 Pulled a bunch of selection parts outside of the loops. Probably exhausting this angle of attack. 2016-04-05 22:17:44 -04:00
Thomas Harte
8f87973a96 Switched to table-based byte to output conversion. 2016-04-05 22:07:10 -04:00
Thomas Harte
e35456612a Simplified 40-column to pixel conversion. 2016-04-05 20:44:05 -04:00
Thomas Harte
6dbd20ffde Expanded interface to rgb_sample to eliminate its need to make assumptions about globals, used expanded interface to compact Electron data to two pixels per byte. 2016-04-05 20:32:55 -04:00
Thomas Harte
7838507a7a Simplified sound generation. 2016-04-04 22:22:19 -04:00
Thomas Harte
c0cd1ed89e Made an attempt to consolidate timestamp bases to a single vector and hence to lump all geometry into one or two calls, with no repetitive setting of a uniform. I'm not sure the result is correct yet. 2016-04-04 21:57:27 -04:00
Thomas Harte
4595741ab0 Made an attempt not to interrupt the display link queue too much when emulation is running slowly. 2016-04-04 20:22:33 -04:00
Thomas Harte
729fddea1c Switched to integer textures, likely to simplify for most use cases. 2016-04-04 19:39:01 -04:00
Thomas Harte
a6ef78862c This'll probably do for now. 2016-03-24 22:20:00 -04:00
Thomas Harte
f1caf62ff2 Continuing the switch around. 2016-03-24 19:31:41 -04:00