Commit Graph

  • 2d23bc46f2 Whoops; fixed line count target test. Thomas Harte 2016-06-13 19:34:01 -04:00
  • 5fc36b956c Attempted most basic sketching of a container for Vic audio. Thomas Harte 2016-06-13 19:30:52 -04:00
  • fcf4b14344 Extended to allow floating-point sampling rates. Which makes sense. Thomas Harte 2016-06-13 19:30:41 -04:00
  • 4190b42bbb No need for these to live separately, I think. Thomas Harte 2016-06-13 18:27:18 -04:00
  • 91c406e065 Made an attempt to honour interlaced-frame line counts. Thomas Harte 2016-06-13 18:21:21 -04:00
  • 2e946e785f Settled on half-intensity colour for now, appears likely not to be too incorrect(?) Thomas Harte 2016-06-13 18:20:21 -04:00
  • e10535181d Made an attempt to implement interlaced video. Thomas Harte 2016-06-12 22:27:58 -04:00
  • 4ad55a7f5e Trimmed the visible area. Thomas Harte 2016-06-12 18:01:38 -04:00
  • a5efa7543a Added vertical sync, switching fully to the normal NTSC colour space. Thomas Harte 2016-06-12 17:57:52 -04:00
  • 4c2b964cd4 Added NTSC-VIC's switching of phase every field. Thomas Harte 2016-06-12 17:45:25 -04:00
  • 6b5a322918 Fixed all colours, plus special case no-chroma for black and white. Thomas Harte 2016-06-12 17:41:52 -04:00
  • 580c8bdcbd Ported rest. Thomas Harte 2016-06-12 17:29:44 -04:00
  • 1a2b18f93b Steps towards CPU mapping; diagnostic. Thomas Harte 2016-06-12 17:27:57 -04:00
  • 8abf395202 Experimented with table-based GLSL lookups, and a sine curve. Now _exceedingly_ slow, but colours are correct if I pretend I'm in the YUV colour space. Thomas Harte 2016-06-12 14:57:24 -04:00
  • 2992183aae Switched to a lookup table for phase, temporarily in YUV colour space, probably. Working on it. Thomas Harte 2016-06-12 14:39:17 -04:00
  • ed76e36b18 Made basic attempt at 16-line character mode. Thomas Harte 2016-06-12 11:23:57 -04:00
  • 19b2f46488 Fixed accesses to colour memory. Thomas Harte 2016-06-12 11:06:19 -04:00
  • 4fec625b19 Minor cleaning, implemented clearAllKeys. Thomas Harte 2016-06-12 10:38:21 -04:00
  • ec604f1414 Expanded mapped keys just a tiny bit further. Thomas Harte 2016-06-12 10:35:47 -04:00
  • 167ed9b8bb Added enough to load a PRG as a ROM. Thomas Harte 2016-06-11 14:00:12 -04:00
  • d9b001d3fc Minor clean-ups. Thomas Harte 2016-06-11 13:51:04 -04:00
  • 3e8d383615 Improved key map. Possibly enough to type some basic BASIC? Thomas Harte 2016-06-11 13:19:59 -04:00
  • d1731b1d26 Hacked my 6522 to work. Mistake is in not returning output as input when appropriate — i.e. that I'm ignoring data direction. Also fixed K and L keys. Thomas Harte 2016-06-11 13:06:01 -04:00
  • 271de23ee6 Ran on in and introduced a bunch more keys, hopefully to help to diagnose. Thomas Harte 2016-06-11 12:26:19 -04:00
  • d7c1f5b18a Made an attempt at hooking up the '2' and '4' keys. A mostly unsuccessful attempt. 2 does nothing, 4 clears the screen. Thomas Harte 2016-06-11 11:50:37 -04:00
  • 7a241b5ef5 Added just enough hopefully to allow implementation of the keyboard-input VIA. Thomas Harte 2016-06-11 11:34:39 -04:00
  • de84758862 This is how flags writes are supposed to work, it seems. Thomas Harte 2016-06-11 07:58:32 -04:00
  • 1054793fd7 Fixed interrupt enable register. This makes a lot more sense! Thomas Harte 2016-06-11 07:57:04 -04:00
  • 82a3c4964b Decided to keep the internal copy of the interrupt enable the other way around. Reduced delegate noise. Thomas Harte 2016-06-11 07:49:07 -04:00
  • a71259dec3 Gave the 6522 a full and grouped register set. Thomas Harte 2016-06-11 07:12:55 -04:00
  • 12d1cac751 Merge branch 'master' into Vic-20 Thomas Harte 2016-06-10 18:23:55 -04:00
  • ebaad920a8 Merge pull request #19 from TomHarte/RIOTTiming Thomas Harte 2016-06-10 18:23:17 -04:00
  • 805e2d15c6 Fixed timing when clock is divided. Thomas Harte 2016-06-10 18:20:16 -04:00
  • 1ed04fae1e Resolved 6560 addressing. Thomas Harte 2016-06-10 18:12:21 -04:00
  • f3b1d7de82 ... and that's a flashing cursor. Keyboard input next! Thomas Harte 2016-06-09 22:37:59 -04:00
  • 30b7db3979 Attempted a square wave, made the Vic itself responsible for address manipulation re:the 6560. Thomas Harte 2016-06-09 22:05:17 -04:00
  • e99055bedb Attempted switching back to a square wave for the composite video and otherwise implementing what's necessary to get to that flashing cursor — the 6560 returns its scan line and the timing bits of the 6522 are appearing. Thomas Harte 2016-06-08 22:15:24 -04:00
  • 581eace478 Increased logging slightly, ensured all of colour RAM can be read, slightly improved the 2600 pixel decoder. Thomas Harte 2016-06-07 22:01:14 -04:00
  • 26ab96868a Decided to turn the 6522 into a template, since it's a per-cycle thing with variable behaviour. Added appropriate memory map callouts to hit the two in the Vic. Though they don't yet do anything. Thomas Harte 2016-06-07 19:15:18 -04:00
  • 6522530e1c Actually, I'm dithering over whether the 6522 should be an ordinary class or a curiously-recurring template. But it'll need a file, definitely. Thomas Harte 2016-06-06 21:56:02 -04:00
  • ca23e2e10a This now proceeds to an ostensibly working basic prompt. Colours are wrong, 6560 is probably very wrong, 6522 is still absent. Hence no cursor. Thomas Harte 2016-06-06 20:33:06 -04:00
  • c7c55528e2 Realised that registers appear also to be readable. Thomas Harte 2016-06-06 20:29:39 -04:00
  • e8cb674073 Made some attempt at colours, at least. Thomas Harte 2016-06-06 20:18:24 -04:00
  • 89c87c3e81 Some major hackiness gives the first line of expected text repeating endlessly (as the end of columns is never reached, as that's back to thinking it's 0x7f); I also don't yet know which actor is supposed to do the '+0x8000' (which probably shouldn't be that but might be a pin on the 6560 indicating what sort of value is being fetched, that effects chip select for the various bits of memory?) Thomas Harte 2016-06-06 07:47:30 -04:00
  • 64539a2b24 Advanced to having some characters displayed, even though they're obviously very much incorrect and the display is still rolling. Thomas Harte 2016-06-06 07:35:35 -04:00
  • 79e05a2413 Without yet figuring out what vertical sync is meant to do, moved just about far enough forwards to see _something_ that hopefully I can soon discern characters within. Thomas Harte 2016-06-05 18:02:49 -04:00
  • 444d3b69b6 Made some elementary attempt to hit something like the correct states within the VIC. Thomas Harte 2016-06-05 17:06:10 -04:00
  • 9e9e50edb1 Added guess on how colour memory and the 12-bit bus possibly works. Thomas Harte 2016-06-05 16:28:06 -04:00
  • 2ab21e7a3c Switched to a real (unexpanded) memory map, meaning that nonsense is no longer being supplied to the VIC. Thomas Harte 2016-06-05 16:00:35 -04:00
  • 3be1ce457b Made some attempt at discerning fields. Thomas Harte 2016-06-05 14:05:31 -04:00
  • 9566c87532 Added enough to the machine that the 6560 can now produce output if it wishes. Thomas Harte 2016-06-05 12:11:12 -04:00
  • b56482607e Added just enough that the 6502 should now be operating correctly. Thomas Harte 2016-06-05 11:44:29 -04:00
  • 0b221e773f Fixed ROM naming and sizes, ensured machines without sound outputs don't end up with an audio queue. Thomas Harte 2016-06-05 11:20:05 -04:00
  • f922d38ed2 The Vic now captures the ROMs sent to it and has just enough infrastructure to get to a black screen. Progress! Thomas Harte 2016-06-05 10:51:07 -04:00
  • 12243c40ad Kicking the ball a little further down the road, ROMs and PRGs now reach the actual emulated machine. Thomas Harte 2016-06-05 09:06:59 -04:00
  • b29b2a5d08 Added forwarding of a loaded PRG from the Swift document to the wrapper. So I think that possibly completes the Swift side of things? Thomas Harte 2016-06-05 09:01:32 -04:00
  • 8052ce9223 System ROMs are now supplied to the Vic-20 wrapper, though they stop there. I also factored key forwarding out of the ElectronDocument and into the superclass, depending upon the child conforming to CSKeyboardMachine. Thomas Harte 2016-06-05 08:53:05 -04:00
  • 363e14a92f Reorganised system ROMs out of the Mac-specific folder, adjusted Mac code to expect to find them organised hierarchically (as how many os.roms am I going to have?) and added readme files to explain what's missing from the Git repository. Thomas Harte 2016-06-05 08:33:01 -04:00
  • 4c33517228 Added ROMs to the project and ensured they don't get uploaded. Thomas Harte 2016-06-04 22:03:38 -04:00
  • b10a06e700 A CRT is still absent but this moves the ball back into the C++ side's court. Thomas Harte 2016-06-04 22:00:50 -04:00
  • 06e1db8c85 This now gets as far as missing selectors. Thomas Harte 2016-06-04 21:49:03 -04:00
  • eff28e95a4 Added XIB file. Thomas Harte 2016-06-04 21:45:39 -04:00
  • 404873fe58 Started sketching out infrastructure for Vic-20 support. Thomas Harte 2016-06-04 21:43:50 -04:00
  • d6e8cd676a Trimmed and reordered just a little. Thomas Harte 2016-06-04 16:02:16 -04:00
  • 4a507b375b Merge pull request #17 from TomHarte/2600Accuracy Thomas Harte 2016-06-03 20:16:04 -04:00
  • 604862b20b Fixed playfield/missile and playfield/ball collisions. Thomas Harte 2016-06-02 22:36:52 -04:00
  • 68a8851c52 Increased parallelism, allowing a simplification in the GL view. Thomas Harte 2016-06-02 22:29:09 -04:00
  • e3b95b8d2b Back to asynchronous updates and drawing, to try to improve guarantees on audio latency; experimenting with whether other parts of the approach are fundamentally flawed; added a broad-phase for scheduled updates on the 2600. Thomas Harte 2016-06-02 21:22:55 -04:00
  • 11073daee1 Issues appear to be around timing generally. Working on it. Thomas Harte 2016-06-02 20:15:48 -04:00
  • 7aac306a12 Quick fix to the polynomials. Thomas Harte 2016-06-02 19:56:02 -04:00
  • 253e5a4203 With no regard to performance whatsoever, endeavoured to bring sound to the 2600. It's very scratchy, so something is wrong. Thomas Harte 2016-06-02 19:50:16 -04:00
  • 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. Thomas Harte 2016-06-01 19:53:16 -04:00
  • 40c4544fb7 Got the basic sound pipeline pumping, just enough for static-level audio seemingly to work. Berzerk VE says "intruder alert, intruder alert", anyway. Thomas Harte 2016-06-01 19:27:04 -04:00
  • 8623dc2833 Consolidated a little more within the common code, adding sampling rate selection based on querying the machine. Thomas Harte 2016-06-01 19:04:07 -04:00
  • 50543e9676 Minor factoring up: the audio queue is now pushed universally by MachineDocument. Thomas Harte 2016-05-31 22:36:53 -04:00
  • c773c3a66c Started trying to clean up and consolidate on the Swift side of things but time is up for the day. Thomas Harte 2016-05-31 22:32:38 -04:00
  • 8dc66167be Made an attempt to consolidate the Objective-C++ side of things based on the incoming CRTMachine::Machine. Thomas Harte 2016-05-31 22:16:20 -04:00
  • 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. Thomas Harte 2016-05-31 21:23:44 -04:00
  • 3fc80ea01f Rethought, hopefully perfecting, sprite timing. Thomas Harte 2016-05-30 19:56:36 -04:00
  • 8b342f77a9 Made an attempt further to rationalise timing. Thomas Harte 2016-05-27 21:51:27 -04:00
  • 91d3453cc1 Switched to looking backwards rather than forwards. Thomas Harte 2016-05-27 14:33:08 -04:00
  • 106ddae907 Sprites are still a pixel off but better; made some attempt to move things outside of the loop. Thomas Harte 2016-05-25 21:43:19 -04:00
  • 40c2c0bd2d Minor simplifications and improvements. Still trying to figure out what's causing the non-linear edge addressing. Thomas Harte 2016-05-25 21:12:25 -04:00
  • b01b474e36 I'm back to thinking that resets are deferred but pixel counts are live. Thomas Harte 2016-05-25 07:32:25 -04:00
  • 758806f924 Introduced a separate queue for pixels, which may or may not be correct. Thomas Harte 2016-05-24 21:39:57 -04:00
  • 0b081831a9 Set up a pipeline for all pixels that attempts to allow for appropriate delays. Thomas Harte 2016-05-24 07:58:26 -04:00
  • 5c1e594937 Realised there's a clocking delay on starting horizontal move. Which fixes Coke Zero. Thomas Harte 2016-05-22 21:45:40 -04:00
  • c3e719c4ab Added missile-to-player offsetting. Completing the list of graphics-related TODOs. Thomas Harte 2016-05-22 17:01:56 -04:00
  • 4c6d4d899d Ensured that resetting the horizontal timer affects phase. Thomas Harte 2016-05-22 16:29:53 -04:00
  • df93d7849d Re-enabled the ball. Thomas Harte 2016-05-22 14:38:14 -04:00
  • 0242924fb4 Various bits of caveman debugging appearing and disappearing, switched to latching ball behaviour. Thomas Harte 2016-05-22 14:26:02 -04:00
  • 5e220562e4 Actually, the four-clock delay, with palette taking effect immediately, appears to be correct. So back to the drawing board on that. Thomas Harte 2016-05-21 21:44:54 -04:00
  • 4eded9b9d0 Re-enabled collisions. Thomas Harte 2016-05-21 13:05:36 -04:00
  • b1c84f5402 Counters run every scan line regardless of blank and sync. Also played further with timing. Thomas Harte 2016-05-21 12:54:39 -04:00
  • 470c90428a Switched to two-register implementation of VDELP, etc. Thomas Harte 2016-05-21 10:26:27 -04:00
  • 36d19cb6cf Made an attempt at properly pumping timers during hmove. Thomas Harte 2016-05-21 10:18:15 -04:00
  • a952813036 Fixed missile sizes, played about with ball placement. Thomas Harte 2016-05-19 18:30:17 -04:00
  • cf5b8ab92e This is now approximately back to where it was on Cosmic Ark. Thomas Harte 2016-05-19 08:30:10 -04:00
  • 40600b4bcb Made sprite placement consistent at least. Not necessarily yet correct. Thomas Harte 2016-05-18 22:07:24 -04:00
  • e61392d3fb Fixed incorrect duplication. Thomas Harte 2016-05-18 21:50:28 -04:00