Thomas Harte
|
6252f6030f
|
Switched to idiomatic source name, ensured latest project name is in all appropriate header places, threw texture coordinates slightly into the shader mix.
|
2015-07-26 15:25:11 -04:00 |
|
Thomas Harte
|
e53fbcf9ea
|
Reshuffled to make the OpenGL view explicitly a conduit for CRT-style output, and to give it responsibility for frame drawing. Which is still an awkward thread hop for the time being, but I've yet to read up on the advocated approach to multithreading with an NSOpenGLView; it looked like special provisions were available.
|
2015-07-26 15:13:46 -04:00 |
|
Thomas Harte
|
ecb2898bd5
|
The overall architecture of who has responsibility for what is now very askew but: the CRT now outputs a tightly packed short buffer, with the probable OpenGL destination in mind. So it's now all fixed arithmetic internally. CRTFrame is reduced to a plain C struct with the intention that the OpenGL view will take responsibility for it and stop doing the back-and-forth sprint on getting buffer data. The Atari 2600 now outputs explicit blanks rather than level blacks for its border, so that it's easier visually to debug the CRT in its form as far as it has currently progressed: to drawing lines where the cathode ray gun would run while outputting pixel. I note that I'm still not quite getting vertical sync right yet — I'm just accepting it anywhere in teh frame — but that should be an easy fix.
|
2015-07-24 23:29:45 -04:00 |
|
Thomas Harte
|
5ab47e600a
|
Got through the requisite amount of invisible pain to get something onto my GL display. But clearly this is factored in entirely the wrong way. Work to do.
|
2015-07-24 20:37:08 -04:00 |
|
Thomas Harte
|
7276c77027
|
A full communication pathway now leads to Atari2600.mm (for now) being in possession of a frame and receiving a command to draw, with a suitable OpenGL context being active and whatever is drawn subsequently appearing.
|
2015-07-23 20:45:07 -04:00 |
|
Thomas Harte
|
0611646181
|
This then is what the serial dispatch queue and the triple buffer achieve together: I can post the runs over to the main thread for processing while emulation continues separately.
|
2015-07-23 20:16:48 -04:00 |
|
Thomas Harte
|
e7237c7bd5
|
Switched to forcing all processing onto a common queue and piping the completed frame over into the Objective-C class.
|
2015-07-23 20:07:35 -04:00 |
|
Thomas Harte
|
5203f31bf4
|
Reintroduced a console examination of the output runs being received after fixing a failure to complete or restart frames over in the CRT; weirdly it seems that sync is being obeyed but raster position is off. So work to do.
|
2015-07-22 20:45:10 -04:00 |
|
Thomas Harte
|
065050115f
|
Made an attempt to switch to a triple-buffering scheme for CRT outputs, with an eye towards asynchronicity.
|
2015-07-22 20:33:20 -04:00 |
|
Thomas Harte
|
963cb2f6fb
|
Attempted to switch to slightly more meaningful names within the CRT and implemented a delegate to investigate output. Working on it.
|
2015-07-22 18:15:18 -04:00 |
|
Thomas Harte
|
3e0679235a
|
This now goes just far enough to create an instance of Atari2600::Machine and push a ROM to it. Next jobs are to get a basic CRT emulation wired up, outputting to the window.
|
2015-07-16 20:40:46 -04:00 |
|