Commit Graph

  • 3765c5fbb5 Fixed error that would prevent an interrupting frame from ever being drawn. Thomas Harte 2016-05-18 21:45:35 -04:00
  • 8c7ce1ec3f Attempted to fix sprite sizing and, again, missile repetition. Thomas Harte 2016-05-18 21:41:25 -04:00
  • d013d46337 Fixed object motion decoding and checking of the repeat mask for missile graphics. Thomas Harte 2016-05-18 21:36:28 -04:00
  • 83ed6a82cf Fixed: asserting vertical blank doesn't affect underlying timing. Thomas Harte 2016-05-18 18:49:40 -04:00
  • 877c55b5c5 Threw in missiles. To 'complete' graphics output. Or, rather, to move me on to debugging. Thomas Harte 2016-05-18 07:54:44 -04:00
  • 354143a78c Reintroduced an attempt to plot sprites. Thomas Harte 2016-05-18 07:51:25 -04:00
  • 0b99649b0f Had a first shot at triggering player and missile resets. Thomas Harte 2016-05-18 07:31:05 -04:00
  • b8708b805c The vertical blank flag now works again. Thomas Harte 2016-05-17 22:02:57 -04:00
  • a1e63e8320 Attempted to generalise on pixel counter storage, at least. Further adjusted background timing but I'm still not sure. Thomas Harte 2016-05-17 21:41:32 -04:00
  • ad6f405483 Fixed: was off by one on pixels, allowing four extra pixel output cycles per line. Thomas Harte 2016-05-17 19:02:32 -04:00
  • c96674b341 Made genuine first approximate attempt at hmove. Thomas Harte 2016-05-17 18:35:40 -04:00
  • d170bb14e6 Extended scheduling plans, inserted initial events for hmove, albeit not yet implemented. Thomas Harte 2016-05-17 18:21:49 -04:00
  • 6a961c4d28 Added something of the ball counter, but without yet a working HMOVE it's prone to error. Thomas Harte 2016-05-17 07:18:14 -04:00
  • 7d3cf76576 Generalised slightly, to allow events to be queued up to eight cycles in advance; most importantly each event gets to pick its own delay. Thomas Harte 2016-05-17 07:09:18 -04:00
  • 3d003070b3 Made an attempt better to generalise the idea of things with 4 CLK delays. Thomas Harte 2016-05-16 21:54:27 -04:00
  • 4ad074fc78 Introduced a four-cycle delay between playfield fetch and display, curing Yar's Revenge. Also disabled barrel roll scanling colouring again. I really need to make my mind up on that. Thomas Harte 2016-05-16 19:55:56 -04:00
  • f19ed2e8f8 Started merely attempting to reintroduce the background layer. Thomas Harte 2016-05-16 19:04:13 -04:00
  • 9d92ad659f Established the basic timing loop, albeit without clocking delays yet. Thomas Harte 2016-05-16 08:01:29 -04:00
  • bf2932cd57 Merge pull request #16 from TomHarte/UniformSetters Thomas Harte 2016-05-15 15:22:06 -04:00
  • 00a2b42080 Made thread-safe. Thomas Harte 2016-05-15 15:19:52 -04:00
  • 091516e3cb The semantics might need better exposition but: fixed UniformXfv calls plus matrix calls, documented new semantics on all setters. Thomas Harte 2016-05-15 14:59:59 -04:00
  • 328fabcd10 Ensured values aren't dangling pointers. Thomas Harte 2016-05-14 18:15:10 -04:00
  • 492dc7ccbf Made an attempt to queue uniform changes until the next call to bind. That's to allow usage from other threads. Thomas Harte 2016-05-14 18:06:55 -04:00
  • cca53598d3 Made another run at 2600 colours. Thomas Harte 2016-05-14 16:52:24 -04:00
  • 30f335fa35 Switched pervasively to using the named slot uniform setters on Shader. Thomas Harte 2016-05-13 22:08:32 -04:00
  • f487062c62 Merge pull request #15 from TomHarte/2600PAL Thomas Harte 2016-05-13 09:00:25 -04:00
  • 8d52765f40 Realised why new shaders weren't taking. Very negligibly decreased Atari drawing cost. Thomas Harte 2016-05-12 22:22:24 -04:00
  • 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. Thomas Harte 2016-05-11 22:11:01 -04:00
  • 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. Thomas Harte 2016-05-11 21:07:18 -04:00
  • 93760bf8fa Merge pull request #12 from TomHarte/FixedTests Thomas Harte 2016-05-10 21:45:24 -04:00
  • e636ae37b4 Ensured that calling return_from_subroutine really does unjam the processor if required, causing all tests once again to pass. Thomas Harte 2016-05-10 21:44:11 -04:00
  • 5a4262d74e Confirmed: it is inaccurate for a 6502 to self reset at power up. So that responsibility now rests in the machines. Thomas Harte 2016-05-10 21:05:52 -04:00
  • fab59cbc64 Merge pull request #11 from TomHarte/SourceInstancing Thomas Harte 2016-05-10 20:00:32 -04:00
  • a8ce021136 Fixed comment. Thomas Harte 2016-05-10 19:59:03 -04:00
  • 0d2d6a452d Fixed some dangling buffer management issues. Thomas Harte 2016-05-10 19:55:34 -04:00
  • b6d2c8cb63 Switched to instaced drawing for source[/intermediate] runs too, reducing that data transfer footprint by 50%. Thomas Harte 2016-05-10 19:50:12 -04:00
  • 7369139f7e Realised that phase time can fit inside a single byte, since it's always (well) within the first quarter of the line — and if it somehow weren't (?) then taking it modulo the frequency would do. Thomas Harte 2016-05-10 19:14:57 -04:00
  • 47ae402f7e Introduced a shorthand for setting up array attributes. Thomas Harte 2016-05-10 19:11:48 -04:00
  • 257420b0f7 Fixed potential output error if buffer top were hit; clarified buffer size constants. Thomas Harte 2016-05-10 19:04:03 -04:00
  • 309313c470 Update CRTConstants.hpp Thomas Harte 2016-05-10 10:49:48 -04:00
  • fa34b9c67b Merge pull request #10 from TomHarte/NewInstancing Thomas Harte 2016-05-10 07:51:27 -04:00
  • 1d0bcb416d Dropped the size per output run back down to 8 bytes. Thomas Harte 2016-05-10 07:47:47 -04:00
  • b0f0315f12 Fixed: this now implements 12-byte instancing for output runs. Thomas Harte 2016-05-10 07:30:12 -04:00
  • 86dab3a5d6 Quickest first attempt to switch to instancing for the output array. Texture coordinates seem to be off. Thomas Harte 2016-05-10 07:23:47 -04:00
  • 4592458ea0 Merge pull request #9 from TomHarte/RollingBlackLine Thomas Harte 2016-05-09 21:16:58 -04:00
  • daec21d3d8 Found and fixed off-by-one error. Display should now be completely fixed. Thomas Harte 2016-05-09 21:14:59 -04:00
  • e532786f40 Merge pull request #8 from TomHarte/ArrayRestarts Thomas Harte 2016-05-09 19:23:03 -04:00
  • 59d766b325 Rationalised buffer sizes. Thomas Harte 2016-05-09 19:17:03 -04:00
  • 7e2bd78891 With an eye towards instancing, moved away from circular buffers. Thomas Harte 2016-05-09 19:14:30 -04:00
  • bb4a935f8f Merge pull request #7 from TomHarte/GarbageLines Thomas Harte 2016-05-09 19:05:03 -04:00
  • a87e34fbc5 Update README.md Thomas Harte 2016-05-09 15:13:16 -04:00
  • e8a0a28018 Merge pull request #6 from TomHarte/GarbageLines Thomas Harte 2016-05-09 07:54:37 -04:00
  • ad734f341f Attempted fully to perfect memove, albeit that it's not affecting either current machine. Thomas Harte 2016-05-09 07:44:05 -04:00
  • 8eb058064c Fixed: ensured that the attempt to plot a misplaced write occurs correctly. Thomas Harte 2016-05-09 07:42:26 -04:00
  • e6a7161e87 Made some minor corrections on the copyback of misplaced write data. Thomas Harte 2016-05-09 07:39:57 -04:00
  • 45af963b9a Moved more of the circular logic inside getCircularRanges in order to eliminate one more potential source of error. Thomas Harte 2016-05-09 07:34:37 -04:00
  • ddfc9910e5 Sought to draw in a standard serial arrangement as and when bandwidth allows it. Thomas Harte 2016-05-09 07:17:12 -04:00
  • cec9ad0dc6 Switched to a more rational interface, ensured output_level will work when eventually needed, and that neither it nor output_data attempts a recursive lock. Thomas Harte 2016-05-09 07:02:12 -04:00
  • a82fa31370 Switched back to broad locking for CRT updates. To eliminate one more thing. Thomas Harte 2016-05-09 06:58:26 -04:00
  • 95ee2fffdb Merge pull request #5 from TomHarte/Glitches Thomas Harte 2016-05-08 21:16:06 -04:00
  • 47302de23a Switched to simpler storage for _image. Thomas Harte 2016-05-08 21:11:56 -04:00
  • 1f02c5df88 Tidied up some further loose ends. Thomas Harte 2016-05-08 20:58:18 -04:00
  • 3084c465d6 Removed further testing work. Thomas Harte 2016-05-08 20:53:21 -04:00
  • 7b5982e455 Removed last mentions of 'lateral'. Thomas Harte 2016-05-08 20:51:28 -04:00
  • 986019f9f9 Fixed error that could lead to split output run vertex writes. Thomas Harte 2016-05-08 20:30:59 -04:00
  • 1a214a8308 Fence sync tied up. Remaining glitches are likely off-by-one-type errors but we'll see. Thomas Harte 2016-05-08 19:45:36 -04:00
  • ef3b91d3aa Made an attempt to get formal on synchronisation. Thomas Harte 2016-05-08 19:42:33 -04:00
  • dd469fe83a Switched back to normal frame drawing logic and cleaned up the circular range stuff a little, to make it clear that no errors lie there. Thomas Harte 2016-05-08 18:50:30 -04:00
  • 8ca3dfc9c5 Reinstated traditional drawing logic. Thomas Harte 2016-05-08 16:45:57 -04:00
  • ccdbec3ffc Corrected for potential lost lines. Thomas Harte 2016-05-08 16:43:11 -04:00
  • a75259ce9f Removed some dead caveman debugging statements. Thomas Harte 2016-05-08 16:18:42 -04:00
  • 9b2061be98 Actually, that should probably be 1/outputTextureSize, as the output range is -1 to +1. Thomas Harte 2016-05-08 16:09:39 -04:00
  • 9485ef2c8c At last a genuine bug fixed: was nudging the wrong amount in intermediate shaders. Thomas Harte 2016-05-08 16:07:36 -04:00
  • 1142c86811 Slightly simplified conditional. Thomas Harte 2016-05-07 18:38:51 -04:00
  • 8e4ab37719 Things are back pretty much to where they were, but offset is eliminated as an input. Thomas Harte 2016-05-07 18:37:18 -04:00
  • c73751b15a Reverted deliberately broken segments to produce something mergeable. Thomas Harte 2016-05-05 21:27:13 -04:00
  • a74f081aa9 Put lateral lookup table directly into the shader. Thomas Harte 2016-05-05 21:21:27 -04:00
  • 8284b272ad Picked appropriate new-world values for various buffers. Thomas Harte 2016-05-05 20:00:28 -04:00
  • 284b310074 Attempted to implement end-of-buffer tests for all stages. Thomas Harte 2016-05-05 19:52:05 -04:00
  • bf9917707e Merge branch 'master' into Glitches Thomas Harte 2016-05-05 08:31:40 -04:00
  • 383c389523 Merge pull request #4 from TomHarte/AccuratePaging Thomas Harte 2016-05-05 08:31:17 -04:00
  • fea32869b0 Implemented what I now believe to be the real paging logic. Thomas Harte 2016-05-05 08:28:06 -04:00
  • e9a9cfb09f Fixed off-by-one error on texture upload. Thomas Harte 2016-05-05 07:22:49 -04:00
  • f621cc8523 Withdrew the pixel unpack buffer in order to avoid the potential for a paused machine to be undrawable. The cost is at least an extra memcpy per frame; I'm letting the driver worry about the whole process for now. Thomas Harte 2016-05-04 21:27:10 -04:00
  • 2e7ac0e6db With a lot of logging also currently ongoing, fixed circular ranges for clearing and when covering an entire buffer. Thomas Harte 2016-05-04 21:08:38 -04:00
  • 87df57195d Started on an attempt not to treat the various buffers as free to loop within, starting with the input texture. Thomas Harte 2016-05-04 07:39:45 -04:00
  • 3684c6404f Proven through deliberate inefficiency: the issues are (i) texture upload; and (ii) buffer wraparound. Thomas Harte 2016-05-03 22:22:12 -04:00
  • 759fbd89ca Switched pixel unpack buffer back to explicit flushes. Thomas Harte 2016-05-03 21:26:09 -04:00
  • 2541711061 Made attempts (i) to flush buffers before unmapping them; and (ii) to bring texture uploads within the new orthodoxy. Thomas Harte 2016-05-03 20:56:47 -04:00
  • fc1a67c157 Lateral is no longer written per vertex. It's a fixed list. Thomas Harte 2016-05-03 18:45:55 -04:00
  • 535d272039 Tweaks here, tweaks there. Thomas Harte 2016-05-03 18:15:24 -04:00
  • 43951ac359 Merge pull request #3 from TomHarte/SeparateSeparation Thomas Harte 2016-05-03 08:17:42 -04:00
  • 6d5a1b33ee Turned the colour up just a little, slightly lowered luminance signal strength. Thomas Harte 2016-05-03 07:51:14 -04:00
  • 31f1e6d5c0 Introduced a separate stage for luminance filtering. Thomas Harte 2016-05-03 07:46:40 -04:00
  • 1bb92550f8 It's 2016. Thomas Harte 2016-05-02 22:02:06 -04:00
  • c72e360012 Merge pull request #2 from TomHarte/PixelAccumulation Thomas Harte 2016-05-02 21:18:38 -04:00
  • 29e7c96e4c Brought monitor mode inside the pipeline and added an intermediate filter. Thomas Harte 2016-05-02 21:05:58 -04:00
  • 4a0e1dc789 Switched to explicit flushing of data. Thomas Harte 2016-05-01 22:33:00 -04:00
  • c93bcf9f28 Discovered cause of clears: stale code. Tweaked persistence, again. Thomas Harte 2016-05-01 22:28:33 -04:00
  • 09ed8eb654 Quelle surprise, failure to find strikes again. Fixed. Thomas Harte 2016-05-01 21:07:27 -04:00