Thomas Harte
|
7a8d100861
|
Found a new working formula for NTSC Atari 2600 colours.
|
2016-04-24 22:02:00 -04:00 |
|
Thomas Harte
|
884755c560
|
Ensured the GL context is available when switching Atari 2600 output, and that it locks the output.
|
2016-04-24 20:56:21 -04:00 |
|
Thomas Harte
|
2bd6566768
|
Oh, of course, I can use GL_CONSTANT_ALPHA so that new colours can be painted at alpha 1.0 while possibly saturating with old colours.
|
2016-04-24 20:47:24 -04:00 |
|
Thomas Harte
|
d221c712b0
|
Ensured GL context is active when destructing CRTOpenGL.
|
2016-04-24 20:34:25 -04:00 |
|
Thomas Harte
|
acab22d95a
|
Removed any improper talk of YUV. Switched to (cos, -sin) formulation of the quadrature vector, which I now believe to be correct.
|
2016-04-24 20:27:03 -04:00 |
|
Thomas Harte
|
d393776677
|
Fixed an incorrect sign.
|
2016-04-24 19:29:30 -04:00 |
|
Thomas Harte
|
db908a7547
|
Adjusted Atari to using its non-standard line lengths.
|
2016-04-24 19:23:30 -04:00 |
|
Thomas Harte
|
9b2b7a09eb
|
Ensured that colour space changes take effect.
|
2016-04-24 19:16:23 -04:00 |
|
Thomas Harte
|
929cfc49cb
|
Extended window for picking output frequency, attempted to consolidate CRT OpenGL timing uniforms for approprate resetting.
|
2016-04-24 18:58:31 -04:00 |
|
Thomas Harte
|
082003ed0a
|
Reintroduced the CRT delegate and the 2600's automatic region switching. Albeit that the CRT itself doesn't adjust properly to new timings yet.
|
2016-04-24 18:36:22 -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
|
775fc270e6
|
Fixed bug whereby first frame drawn has random collection of data.
|
2016-04-24 07:00:22 -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
|
bdaf4cee43
|
Switched to an in-framebuffer approach to phosphor decay, which might be acceptable now that every single pixel is being painted, re-emphasises luminance and stretched sampling period for the two FIR filters as well as decreasing the amount of signal that is retained, subjectively to improve output.
|
2016-04-24 06:16:41 -04:00 |
|
Thomas Harte
|
c123f3bf74
|
Fixed run extension, temporarily forced colour amplitude.
|
2016-04-23 14:16:49 -04:00 |
|
Thomas Harte
|
a4889074b8
|
Moved final colour space conversion out of the innermost loop.
|
2016-04-22 21:29:27 -04:00 |
|
Thomas Harte
|
8ff1f82008
|
Fixed accidental channel duplication.
|
2016-04-22 19:18:28 -04:00 |
|
Thomas Harte
|
95639f1189
|
Made attempt to introduce final filtering stage and output.
|
2016-04-22 19:15:59 -04:00 |
|
Thomas Harte
|
23311d633b
|
Doubled phosphor life, added comment on required final stage fix for tomorrow.
|
2016-04-21 23:15:48 -04:00 |
|
Thomas Harte
|
59c07f7ddd
|
This, at least, is an attempt to decode chrominance, as yet unfiltered, and not commuted to RGB (and possibly packed incorrectly).
|
2016-04-21 23:01:54 -04:00 |
|
Thomas Harte
|
cc7bf97a9c
|
This now attempts to filter y.
|
2016-04-21 22:32:30 -04:00 |
|
Thomas Harte
|
e7ed1224a5
|
Introduced the second filtering stage, albeit that it presently does nothing whatsoever.
|
2016-04-21 21:32:36 -04:00 |
|
Thomas Harte
|
ae2760e034
|
Colour phase is now updated and varies per line.
|
2016-04-21 21:07:29 -04:00 |
|
Thomas Harte
|
23ce032ba1
|
Started edging towards the necessary flexibility for the other two intermediate shaders.
|
2016-04-21 20:21:34 -04:00 |
|
Thomas Harte
|
4b9985626d
|
Started commuting alpha to direction. The incoming amplitude is now honoured.
|
2016-04-21 19:53:41 -04:00 |
|
Thomas Harte
|
638b08302b
|
The initial composite buffer is now genuinely a composite signal.
|
2016-04-21 19:37:32 -04:00 |
|
Thomas Harte
|
9c89b668ae
|
Made further attempts to improve synchronisation and interrelated timing between display and machine update.
|
2016-04-20 22:35:46 -04:00 |
|
Thomas Harte
|
d9a9dffe63
|
Factored out wraparound buffer addressing where it's otherwise going to get really repetitive; need to look at using the same approach for the glTexSubImage2D step at least but that probably means properly encapsulating the buffer builder's state.
|
2016-04-20 21:05:32 -04:00 |
|
Thomas Harte
|
8232ed765e
|
Eliminated use of zero-alpha runs to clear new lines in the intermediate buffer in favour of a scissored glClear. It's just an easier way to scale the current approach to three intermediate buffers.
|
2016-04-20 20:44:25 -04:00 |
|
Thomas Harte
|
e2da77fb8b
|
Clarified constants, ensured monitor mode works from startup.
|
2016-04-19 22:53:39 -04:00 |
|
Thomas Harte
|
ef83595af3
|
Fixed: issue was (i) always thinking the entire source run buffer needed to be issued; and (ii) having fixed that, always thinking that the block that needs redrawing doesn't overflow the buffer. Fixed both. 'Television' mode is now working without explicit synchronisation (and with a lot less work).
|
2016-04-19 22:38:11 -04:00 |
|
Thomas Harte
|
3d7a3ce995
|
Eliminated some redundant texture binds.
|
2016-04-19 22:30:05 -04:00 |
|
Thomas Harte
|
145c0b3b71
|
Smoothed output device changes, killing some dead state. Added an explicit glFinish to suggest that the problem is synchronisation rather than any sort of data or shader error.
|
2016-04-19 22:21:26 -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
|
88e237b8de
|
Standardised indentation and added one extra piece of documentation.
|
2016-04-19 20:53:55 -04:00 |
|
Thomas Harte
|
20aa9e291d
|
Attempted to deal with the precision issues causing 'television' output currently to differ from 'monitor' output. Documented TextureTarget while I'm here.
|
2016-04-19 20:51:34 -04:00 |
|
Thomas Harte
|
6f52ed14d6
|
Trivially fixed. Appears to confirm an off-by-one error in the television implementation. Which would explain one of the visual phenomena — a repeating corrupted line.
|
2016-04-19 19:32:52 -04:00 |
|
Thomas Harte
|
b90a487a16
|
Attempted to enable both monitor and television output paths in the same codebase. The television route seems to be broken. Investigation required.
|
2016-04-19 19:30:50 -04:00 |
|
Thomas Harte
|
6c9bcfa637
|
Got rigorous on exceptions, started working towards having a working 'composite' shader at the same time as having a working RGB shader.
|
2016-04-19 08:05:43 -04:00 |
|
Thomas Harte
|
bcc784bda9
|
Introduced an interface for specifying attribute bindings, taking the opportunity to document the interface and introduce exceptions.
|
2016-04-19 07:23:15 -04:00 |
|
Thomas Harte
|
9d39c14752
|
Nothing of substance different; main current mystery: why do old frames recur and why does other jumpiness occur? Do I need some explicit synchronistion?
|
2016-04-18 22:18:03 -04:00 |
|
Thomas Harte
|
cf55a0c423
|
Fixed: composite output y is now incremented upon the start of retrace, that causing it to have different values at either edge of scans.
|
2016-04-18 21:49:45 -04:00 |
|
Thomas Harte
|
9580dde3ad
|
Fixed left/right shuffling. Was simply failing to supply the integer version of coordinates.
|
2016-04-18 21:40:23 -04:00 |
|
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 |
|