Commit Graph

  • 2bf784535c Simplified calllng. Thomas Harte 2017-02-20 18:04:40 -05:00
  • 57f434c199 Reorganised state, with an eye towards unifying object motion and triggers. Thomas Harte 2017-02-20 17:58:28 -05:00
  • 87afa9140e Took some provision steps towards paging type autodetection and communication. But I think this is a distraction. Thomas Harte 2017-02-20 17:44:36 -05:00
  • d19f26887d Performed a very naive shuffling of output builder sets onto the OpenGL queue. Which makes the frequency switcher work properly from it's possibly-contextless thread. Thomas Harte 2017-02-20 10:39:31 -05:00
  • 6cb95b4fc5 Switched to passing around std::strings rather than char *s, because they should be easier to capture. Thomas Harte 2017-02-20 10:35:33 -05:00
  • d979a822ac Introduced a deferred task list for the OpenGL thread. Thomas Harte 2017-02-19 21:46:07 -05:00
  • fccdce65b9 Switched to lock guards. Thomas Harte 2017-02-19 21:45:28 -05:00
  • 99a35266e1 Attempted to bring frequency-switching logic into the cross-platform realm. Which for now creates an issue with the OpenGL context. Thomas Harte 2017-02-19 21:20:37 -05:00
  • 51bcaea60c Disabled incorrect 'optimisations'. Thomas Harte 2017-02-19 12:00:04 -05:00
  • e00339ef0a Attempted to reintroduce the ball. Thomas Harte 2017-02-19 08:02:54 -05:00
  • 53cd125712 Added stub calls to draw the missiles and ball. Thomas Harte 2017-02-19 07:28:24 -05:00
  • 04693b067c Fixed failure of the optimised route to pump the pixel clock; removed optimisation entirely for now. Thomas Harte 2017-02-18 21:36:48 -05:00
  • cd7876a746 Reintroduced the extra clocking delay. Thomas Harte 2017-02-18 20:18:50 -05:00
  • ed5ff49ef5 Fixed vertical delay, retreated from my previous thought about adding the one extra cycle of sprite delay, at least temporarily. Thomas Harte 2017-02-16 20:52:01 -05:00
  • 8d502a0b03 Decided not to run before I can walk and switched to storing the motion time and next step explicitly per object. Thomas Harte 2017-02-16 20:28:37 -05:00
  • 5ea232310f Added a check against negative runs. Thomas Harte 2017-02-16 18:55:58 -05:00
  • 09309aa74f Attempted to prevent extraneous moves. Thomas Harte 2017-02-16 18:52:39 -05:00
  • b5357860b9 Made an attempt to split things apart so as to be able to introduce the proper sprite latency. Thomas Harte 2017-02-14 20:56:16 -05:00
  • dd17459687 Added my first failing test: delay is incorrect when resetting outside of the play area. Thomas Harte 2017-02-12 20:42:49 -05:00
  • cd90118a0f Added two, extraordinarily simple tests. Thomas Harte 2017-02-12 20:32:53 -05:00
  • 25776de59d I think unit testing this thing is the only way forwards. Started adding appropriate hooks. Thomas Harte 2017-02-12 19:55:02 -05:00
  • 600bdc9af7 In C++, I think the implicit cast to bool negates the need for any manual collapsing? Thomas Harte 2017-02-12 18:18:35 -05:00
  • 0c9be2b09e Shunted the collisions buffer onto a separate area of the heap for the time being, as a debugging aid. Also added a few more initial values. Thomas Harte 2017-02-12 18:16:50 -05:00
  • df8a5cbe6d Made attempts (i) to respect the delay flag; and (ii) to account for border-region sprite clocking. Thomas Harte 2017-02-12 17:35:09 -05:00
  • 9ce68c38ae Made an effort to implement proper pixel output for sprites. Thomas Harte 2017-02-12 14:01:50 -05:00
  • 40954d6a2a Attempted to factor out parts I expect to reuse for missiles and the ball. Thomas Harte 2017-02-12 11:31:17 -05:00
  • ac444a3f34 Corrected both position increments and target time calculation. Thomas Harte 2017-02-11 21:24:14 -05:00
  • b8abeced6d Made an attempt to introduce the proper eventful loop for player output. With debugging yet to occur. Thomas Harte 2017-02-11 21:01:58 -05:00
  • aeff59addc Implemented motion 'correctly', for programs written to do all work outside of the pixel area. Thomas Harte 2017-02-11 20:25:49 -05:00
  • 7ab6023a0c Ensured no attempt to call strcmp on null if a file name without an extension got into here. Thomas Harte 2017-02-11 13:36:36 -05:00
  • 97cdfea9e9 Resolved spurious static analyser complaint: input_size and output_size aren't supposed to have defined values if input or output is null. But whatever. Thomas Harte 2017-02-11 13:36:09 -05:00
  • aff69dbc34 Resolved spurious static analyser issue; screen mode will always be 0–6 but it doesn't know that. Setting a non-zero divider doesn't feel worth worrying about for a cleaner compile. Thomas Harte 2017-02-11 13:35:22 -05:00
  • 6381e4e1b0 All that's happened to position is that numbers have been added to it. So it can't be negative, given that it wasn't before. So a regular modulo will do. Thomas Harte 2017-02-11 13:34:36 -05:00
  • c8e595d9aa Merge branch 'master' into TIAImprovements Thomas Harte 2017-02-11 13:20:52 -05:00
  • 8c88fd4261 Merge pull request #99 from TomHarte/StartupRace Thomas Harte 2017-02-11 13:18:19 -05:00
  • a86a6367b5 Slightly shuffled to avoid a race condition on the best-effort updater. Thomas Harte 2017-02-11 12:58:47 -05:00
  • 905ed1f87b Switched to the more natural type, which is also signed, making my logic less prone to error. Thomas Harte 2017-02-11 13:16:53 -05:00
  • 8de6caf6ff Started trying to get into a proper structure here. Chickened out. Thomas Harte 2017-02-11 12:59:13 -05:00
  • 327c19a222 Slightly shuffled to avoid a race condition on the best-effort updater. Thomas Harte 2017-02-11 12:58:47 -05:00
  • 40d3f5f7f6 Attempted properly to respect start. Thomas Harte 2017-02-11 08:26:09 -05:00
  • 64d5712d1d Added an incorrectly-coded version of horizontal move, at least so that I can verify that information is going into the correct slots. Thomas Harte 2017-02-10 07:23:43 -05:00
  • 3b20d862f0 Made an initial attempt to mark sprite positions. But without hmove implemented, they're all over the place. Thomas Harte 2017-02-09 20:53:42 -05:00
  • 2e9ef2b0ef Took a shot at reinstating the horizontal blank extend flag. Thomas Harte 2017-02-09 18:37:19 -05:00
  • 70745286a5 Ensured this array is properly aligned for the uin32_t accesses I intend to make for background drawing. Thomas Harte 2017-02-08 20:25:23 -05:00
  • dcb7584060 Added the four-cycle playfield output latency and ensured you can't get smaller-than-usual pixels by rapid register value changing. Thomas Harte 2017-02-08 07:30:32 -05:00
  • a477499724 Got a bit more explicit with range returned by get_cycles_until_horizontal_blank and hence attempted a more thorough (/correct) version of WSYNC. Thomas Harte 2017-02-07 22:14:45 -05:00
  • 944d835eea Switched explicitly to an accumulation model for filling the collision buffer. Thomas Harte 2017-02-06 21:59:28 -05:00
  • 8f5039130c Changed index naming order to ensure no out-of-bounds accesses. Thomas Harte 2017-02-06 21:48:41 -05:00
  • ba165bb70a Made an attempt properly to populate collision registers from the collision buffer. Thomas Harte 2017-02-06 21:15:55 -05:00
  • 474e2e8d2c Fixed once again to respect mid-line palette changes. Thomas Harte 2017-02-06 20:09:12 -05:00
  • 8b8eb787df Fixed complete invisibility. Thomas Harte 2017-02-06 18:42:58 -05:00
  • 66bcdd36f3 Made an attempt to introduce an intermediate buffer that ends up with a bit mask of all graphical components present on it, and to use that to infer collision flags and colours, based on playfield priority and colour palette. Immediately yielding: a blank screen. Good work! Thomas Harte 2017-02-06 18:29:00 -05:00
  • fcf8cafb5d Sought to ensure that communicating a colour burst in multiple parts doesn't ruin the phase. Thomas Harte 2017-02-06 18:27:44 -05:00
  • 6bcf95042c Started trying to be a bit more explicit about usage, and to divide up drawing responsibility. Thomas Harte 2017-02-05 17:51:56 -05:00
  • 23f3ccd77a Made a further attempt to prevent overwrites. Thomas Harte 2017-02-05 17:47:34 -05:00
  • f2437cb257 Added some additional documentation, started making steps towards returning sprites, fixed a counter bug that would exhibit as incorrect sync. Thomas Harte 2017-01-31 20:30:32 -05:00
  • abe04334c2 Attempted to retain more player information, and removed the output cursor from class storage as I think it's acceptable as a temporary. Thomas Harte 2017-01-30 22:42:27 -05:00
  • 8545707b54 Reinstituted the playfield. Probably needs more buffering though. Time to look into delays. Thomas Harte 2017-01-30 21:38:58 -05:00
  • 2b08758b2b Started capturing playfield/ball and background colours. Thomas Harte 2017-01-30 08:08:03 -05:00
  • 764b528891 Made a first attempt at switching to a model that respects blank and sync. Thomas Harte 2017-01-30 07:19:19 -05:00
  • 92754ace7a Some mild fixes get me up to having a rolling screen of vertical lines. Which is what I was hoping for right now! Thomas Harte 2017-01-29 22:16:23 -05:00
  • 1cc13b2799 Merge branch 'master' into TIAImprovements Thomas Harte 2017-01-29 16:13:46 -05:00
  • 38f944bc34 This needs to be a memmove as the areas may overlap. 2017-01-30 Thomas Harte 2017-01-29 16:12:48 -05:00
  • 427175b9c0 Added an extra flag to avoid potential race condition on is_full_, being reset from the background despite a write area not having been allocated. Thomas Harte 2017-01-29 16:11:29 -05:00
  • ebde955356 This needs to be a memmove as the areas may overlap. Thomas Harte 2017-01-29 16:12:48 -05:00
  • 7fd02e7f4c Added an extra flag to avoid potential race condition on is_full_, being reset from the background despite a write area not having been allocated. Thomas Harte 2017-01-29 16:11:29 -05:00
  • d51f185dc7 Made an attempt to reintroduce the basic horizontal loop. Thomas Harte 2017-01-29 15:43:57 -05:00
  • 2390358c24 Prevented unbounded CPU usage, albeit without yet deciding who has authority for the clock rate. Thomas Harte 2017-01-29 14:19:26 -05:00
  • 2432a3b4d7 Fixed condition — >= is smarter. Thomas Harte 2017-01-29 14:00:01 -05:00
  • 9c3597c7e3 Attempted to reintroduce enough logic to handle [most of] line timing, such that WSYNC works. Initial objective is to get back to having a working background. Thomas Harte 2017-01-29 13:47:36 -05:00
  • fba6baaa9c Stubbed and disabled to get back to building. Thomas Harte 2017-01-28 21:56:01 -05:00
  • a246530953 Supposing the TIA were implemented, this is (more or less) what the Atari 2600 would now look like. Thomas Harte 2017-01-28 21:46:40 -05:00
  • 0ffded72a6 Created a placeholder class for a factored-out TIA. There's a bit more it'll need to do, like vending (or receiving) a CRT but this is the full hardware stuff, I think. Thomas Harte 2017-01-28 16:19:08 -05:00
  • acadfbabec Merge pull request #97 from TomHarte/Icons 2017-01-27 Thomas Harte 2017-01-27 21:36:13 -05:00
  • 9001cc3fc2 Added a cartridge image. Thomas Harte 2017-01-27 21:26:11 -05:00
  • 015b2b49f9 Introduced an incomplete set of file association icons. Thomas Harte 2017-01-26 22:21:55 -05:00
  • 92f928ca42 Merge pull request #96 from TomHarte/PhaseAlignedSampling Thomas Harte 2017-01-25 21:51:11 -05:00
  • 6d087ca054 Restored 2600 audio. Thomas Harte 2017-01-25 21:29:19 -05:00
  • c2d7e36c8f Ensured logic for whether composite output is in use is consistent. Thomas Harte 2017-01-25 21:25:03 -05:00
  • 4d6e78e641 Reinstated temporary Oric-related fix. Thomas Harte 2017-01-24 22:16:15 -05:00
  • 5761c8267b [Re-]Eliminated connection between colour subcarrier frequency and monitor output mode. Thomas Harte 2017-01-24 20:48:54 -05:00
  • a66a8c31b2 Merge branch 'master' into PhaseAlignedSampling Thomas Harte 2017-01-24 07:29:18 -05:00
  • 19e4ee12e1 Merge branch 'PhaseAlignedSampling' of github.com:TomHarte/CLK into PhaseAlignedSampling Thomas Harte 2017-01-24 07:29:14 -05:00
  • 4871572a33 Optimised images. Thomas Harte 2017-01-23 21:28:13 -05:00
  • 2e744a95e4 Merge branch 'master' into PhaseAlignedSampling Thomas Harte 2017-01-23 21:11:14 -05:00
  • ff87f1390d Merge pull request #95 from TomHarte/ReadmeImages Thomas Harte 2017-01-23 20:49:16 -05:00
  • 76ca30c26d This version works better. Thomas Harte 2017-01-23 20:47:48 -05:00
  • 7c2685cb34 Made an attempt at reducing displayed image size. Thomas Harte 2017-01-23 20:46:35 -05:00
  • 8cf25a2d70 Went tabular. Thomas Harte 2017-01-23 20:44:42 -05:00
  • 8d69dd30f3 Testing a table. Thomas Harte 2017-01-23 20:43:43 -05:00
  • ae8068b86f Added Stormlord images. Thomas Harte 2017-01-23 20:38:30 -05:00
  • baeb0ee89f Reduced image sizes. Thomas Harte 2017-01-23 20:34:15 -05:00
  • c07993bb0a Added more images. Thomas Harte 2017-01-23 20:33:00 -05:00
  • 7680cbf9c3 Testing this Markdown implementation for image sizing support. Thomas Harte 2017-01-23 20:26:57 -05:00
  • 4920fe6701 Added a grab of the Repton title screen. Thomas Harte 2017-01-23 20:23:49 -05:00
  • 55fe0176bd Added a space. Probably need to hold for a better example though. Thomas Harte 2017-01-12 22:12:37 -05:00
  • 99fcbb55d1 Attempted to improve layout. Thomas Harte 2017-01-12 22:11:25 -05:00
  • 6f78ecd12b Added a small pictorial example. Hardly the best, but a step in the right direction. Thomas Harte 2017-01-12 22:06:45 -05:00
  • ced644b103 It seems likely that an AY divides its clock by 8, not 16. I had conflated wave frequency and counter clock. Thomas Harte 2017-01-11 22:03:01 -05:00
  • be1cb2a551 Fixed NTSC phase. Thomas Harte 2017-01-11 21:31:24 -05:00