1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-11 00:52:13 +00:00
Commit Graph

1280 Commits

Author SHA1 Message Date
Thomas Harte
253e5a4203 With no regard to performance whatsoever, endeavoured to bring sound to the 2600. It's very scratchy, so something is wrong. 2016-06-02 19:50:16 -04:00
Thomas Harte
1e0fcbbee8 Made a very basic stab at a couple of the tone generators, added straight-through path for the speaker when input rate exactly equals output rate. 2016-06-01 19:53:16 -04:00
Thomas Harte
40c4544fb7 Got the basic sound pipeline pumping, just enough for static-level audio seemingly to work. Berzerk VE says "intruder alert, intruder alert", anyway. 2016-06-01 19:27:04 -04:00
Thomas Harte
8623dc2833 Consolidated a little more within the common code, adding sampling rate selection based on querying the machine. 2016-06-01 19:04:07 -04:00
Thomas Harte
50543e9676 Minor factoring up: the audio queue is now pushed universally by MachineDocument. 2016-05-31 22:36:53 -04:00
Thomas Harte
c773c3a66c Started trying to clean up and consolidate on the Swift side of things but time is up for the day. 2016-05-31 22:32:38 -04:00
Thomas Harte
8dc66167be Made an attempt to consolidate the Objective-C++ side of things based on the incoming CRTMachine::Machine. 2016-05-31 22:16:20 -04:00
Thomas Harte
5c4f35e13f Finally started on generalising the C++ stuff so as to be able to be able to get a working audio binding on the OS-specific side without further repetition by factoring an appropriate protocol out from the Electron and sketching out the correct speaker class for the Atari. Added a method to ask it what a good output frequency would be. 2016-05-31 21:23:44 -04:00
Thomas Harte
3fc80ea01f Rethought, hopefully perfecting, sprite timing. 2016-05-30 19:56:36 -04:00
Thomas Harte
8b342f77a9 Made an attempt further to rationalise timing. 2016-05-27 21:51:27 -04:00
Thomas Harte
91d3453cc1 Switched to looking backwards rather than forwards. 2016-05-27 14:33:08 -04:00
Thomas Harte
106ddae907 Sprites are still a pixel off but better; made some attempt to move things outside of the loop. 2016-05-25 21:43:19 -04:00
Thomas Harte
40c2c0bd2d Minor simplifications and improvements. Still trying to figure out what's causing the non-linear edge addressing. 2016-05-25 21:12:25 -04:00
Thomas Harte
b01b474e36 I'm back to thinking that resets are deferred but pixel counts are live. 2016-05-25 07:32:25 -04:00
Thomas Harte
758806f924 Introduced a separate queue for pixels, which may or may not be correct. 2016-05-24 21:39:57 -04:00
Thomas Harte
0b081831a9 Set up a pipeline for all pixels that attempts to allow for appropriate delays. 2016-05-24 07:58:26 -04:00
Thomas Harte
5c1e594937 Realised there's a clocking delay on starting horizontal move. Which fixes Coke Zero. 2016-05-22 21:45:40 -04:00
Thomas Harte
c3e719c4ab Added missile-to-player offsetting. Completing the list of graphics-related TODOs. 2016-05-22 17:01:56 -04:00
Thomas Harte
4c6d4d899d Ensured that resetting the horizontal timer affects phase. 2016-05-22 16:29:53 -04:00
Thomas Harte
df93d7849d Re-enabled the ball. 2016-05-22 14:38:14 -04:00
Thomas Harte
0242924fb4 Various bits of caveman debugging appearing and disappearing, switched to latching ball behaviour. 2016-05-22 14:26:02 -04:00
Thomas Harte
5e220562e4 Actually, the four-clock delay, with palette taking effect immediately, appears to be correct. So back to the drawing board on that. 2016-05-21 21:44:54 -04:00
Thomas Harte
4eded9b9d0 Re-enabled collisions. 2016-05-21 13:05:36 -04:00
Thomas Harte
b1c84f5402 Counters run every scan line regardless of blank and sync. Also played further with timing. 2016-05-21 12:54:39 -04:00
Thomas Harte
470c90428a Switched to two-register implementation of VDELP, etc. 2016-05-21 10:26:27 -04:00
Thomas Harte
36d19cb6cf Made an attempt at properly pumping timers during hmove. 2016-05-21 10:18:15 -04:00
Thomas Harte
a952813036 Fixed missile sizes, played about with ball placement. 2016-05-19 18:30:17 -04:00
Thomas Harte
cf5b8ab92e This is now approximately back to where it was on Cosmic Ark. 2016-05-19 08:30:10 -04:00
Thomas Harte
40600b4bcb Made sprite placement consistent at least. Not necessarily yet correct. 2016-05-18 22:07:24 -04:00
Thomas Harte
e61392d3fb Fixed incorrect duplication. 2016-05-18 21:50:28 -04:00
Thomas Harte
3765c5fbb5 Fixed error that would prevent an interrupting frame from ever being drawn. 2016-05-18 21:45:35 -04:00
Thomas Harte
8c7ce1ec3f Attempted to fix sprite sizing and, again, missile repetition. 2016-05-18 21:41:25 -04:00
Thomas Harte
d013d46337 Fixed object motion decoding and checking of the repeat mask for missile graphics. 2016-05-18 21:36:28 -04:00
Thomas Harte
83ed6a82cf Fixed: asserting vertical blank doesn't affect underlying timing. 2016-05-18 18:49:40 -04:00
Thomas Harte
877c55b5c5 Threw in missiles. To 'complete' graphics output. Or, rather, to move me on to debugging. 2016-05-18 07:54:44 -04:00
Thomas Harte
354143a78c Reintroduced an attempt to plot sprites. 2016-05-18 07:51:25 -04:00
Thomas Harte
0b99649b0f Had a first shot at triggering player and missile resets. 2016-05-18 07:31:05 -04:00
Thomas Harte
b8708b805c The vertical blank flag now works again. 2016-05-17 22:02:57 -04:00
Thomas Harte
a1e63e8320 Attempted to generalise on pixel counter storage, at least. Further adjusted background timing but I'm still not sure. 2016-05-17 21:41:32 -04:00
Thomas Harte
ad6f405483 Fixed: was off by one on pixels, allowing four extra pixel output cycles per line. 2016-05-17 19:02:32 -04:00
Thomas Harte
c96674b341 Made genuine first approximate attempt at hmove. 2016-05-17 18:35:40 -04:00
Thomas Harte
d170bb14e6 Extended scheduling plans, inserted initial events for hmove, albeit not yet implemented. 2016-05-17 18:21:49 -04:00
Thomas Harte
6a961c4d28 Added something of the ball counter, but without yet a working HMOVE it's prone to error. 2016-05-17 07:18:14 -04:00
Thomas Harte
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. 2016-05-17 07:09:18 -04:00
Thomas Harte
3d003070b3 Made an attempt better to generalise the idea of things with 4 CLK delays. 2016-05-16 21:54:27 -04:00
Thomas Harte
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. 2016-05-16 19:55:56 -04:00
Thomas Harte
f19ed2e8f8 Started merely attempting to reintroduce the background layer. 2016-05-16 19:04:13 -04:00
Thomas Harte
9d92ad659f Established the basic timing loop, albeit without clocking delays yet. 2016-05-16 08:01:29 -04:00
Thomas Harte
bf2932cd57 Merge pull request #16 from TomHarte/UniformSetters
Implemented deferred setting of shader uniforms
2016-05-15 15:22:06 -04:00
Thomas Harte
00a2b42080 Made thread-safe. 2016-05-15 15:19:52 -04:00