1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-17 13:29:02 +00:00
Commit Graph

233 Commits

Author SHA1 Message Date
Thomas Harte
cca53598d3 Made another run at 2600 colours. 2016-05-14 16:52:24 -04:00
Thomas Harte
8d52765f40 Realised why new shaders weren't taking. Very negligibly decreased Atari drawing cost. 2016-05-12 22:22:24 -04:00
Thomas Harte
6d65bc9b3a Permitted a wider error window on vertical sync, tidied things up a little and started trying to move towards full implementation of the OpenGL contract. 2016-05-11 22:11:01 -04:00
Thomas Harte
4b3c4082d2 These functions appear correctly to model the NTSC and PAL palettes; the CRT's attempt to switch function doesn't work properly yet though. 2016-05-11 21:07:18 -04:00
Thomas Harte
5a4262d74e Confirmed: it is inaccurate for a 6502 to self reset at power up. So that responsibility now rests in the machines. 2016-05-10 21:05:52 -04:00
Thomas Harte
1142c86811 Slightly simplified conditional. 2016-05-07 18:38:51 -04:00
Thomas Harte
bf9917707e Merge branch 'master' into Glitches 2016-05-05 08:31:40 -04:00
Thomas Harte
fea32869b0 Implemented what I now believe to be the real paging logic. 2016-05-05 08:28:06 -04:00
Thomas Harte
87df57195d Started on an attempt not to treat the various buffers as free to loop within, starting with the input texture. 2016-05-04 07:39:45 -04:00
Thomas Harte
3af97d4069 Eliminated redundant variable. 2016-04-26 19:57:05 -04:00
Thomas Harte
6c567d166a Fixed colour burst acceptance, switched to an integral single byte streaming of Atari colours. 2016-04-25 20:56:15 -04:00
Thomas Harte
9b64f64db7 Attempted to normalise some style decisions.` 2016-04-24 22:32:24 -04:00
Thomas Harte
7a8d100861 Found a new working formula for NTSC Atari 2600 colours. 2016-04-24 22:02:00 -04:00
Thomas Harte
d221c712b0 Ensured GL context is active when destructing CRTOpenGL. 2016-04-24 20:34:25 -04:00
Thomas Harte
db908a7547 Adjusted Atari to using its non-standard line lengths. 2016-04-24 19:23:30 -04:00
Thomas Harte
9260d97b03 Oh, of course, it's that the output vertex array doesn't get initialised unless there's an RGB shader program. Silly oversight. Fixed. And switched back to TV output for correct colours. 2016-04-24 17:56:36 -04:00
Thomas Harte
d0f9a6c2f5 Added a dump-the-input default RGB output shader. Which at least proves that the Atari 2600 is generally still working. 2016-04-24 17:35:25 -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
ae2760e034 Colour phase is now updated and varies per line. 2016-04-21 21:07:29 -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
66f2c10c04 Resolved potential crash if tape requests are made without one inserted. Softened glFinish to glFlush, though I'm still not sure I should strictly need even that. 2016-04-19 21:00:48 -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
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
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
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
4d889d9c7f Made an attempt slightly to simplify the fragment processor, at both ends. 2016-04-12 22:35:11 -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
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
e617bd2bb3 Turned audio quality up to the maximum, at least for now. 2016-04-06 21:12:22 -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
729fddea1c Switched to integer textures, likely to simplify for most use cases. 2016-04-04 19:39:01 -04:00
Thomas Harte
3ca58b2a57 Attemted further to diminish jumpiness. 2016-03-22 22:07:30 -04:00
Thomas Harte
8cd5d40e00 Made an attempt to reduce the amount of data heading to the GPU. 2016-03-22 21:16:32 -04:00
Thomas Harte
902017a962 Fixes: drop any processing backlog, try not to allow an Electron document to close mid-draw, perform a frame grab even if the emulated machine is over-processing, really really don't create a CRT until it's safe. 2016-03-20 18:42:37 -04:00
Thomas Harte
fb6fb5d948 Switched to two-phase setup to deal with OpenGL scheduling. 2016-03-20 13:50:13 -04:00
Thomas Harte
aa8a192c7e Simplified API down to their being a single texture with a specified depth. 2016-03-19 17:37:55 -04:00
Thomas Harte
b074860031 Updated to latest information on interrupt timing. 2016-03-18 21:11:25 -04:00