Commit Graph

  • 6292ac5b26 Yet more .hpp clean(s)ing. Thomas Harte 2016-10-20 21:15:21 -04:00
  • c5948ef177 Evicted more header-resident code. Thomas Harte 2016-10-20 21:05:32 -04:00
  • d335991e60 Shifted code out of the header. Thomas Harte 2016-10-20 20:53:17 -04:00
  • cbbd31c2e0 Explained what this recently factored-out class does, and removed code from the header. Thomas Harte 2016-10-20 19:33:25 -04:00
  • 9c956f83b8 Made it slightly more clear that the correct test is conformed to. Thomas Harte 2016-10-20 19:23:36 -04:00
  • 79ed215254 Merge pull request #57 from TomHarte/Oric 2016-10-20 Thomas Harte 2016-10-20 07:39:38 -04:00
  • 5185927a43 Added formal admission of Oricness. Thomas Harte 2016-10-20 07:38:48 -04:00
  • f13d7ed6f4 Added an extra safety rail. Thomas Harte 2016-10-20 07:36:53 -04:00
  • 21cfb39ed9 Added 60Hz output support. Thomas Harte 2016-10-20 07:34:23 -04:00
  • 73365e1877 Resolved sizing error. Thomas Harte 2016-10-19 23:09:05 -04:00
  • cd59eb5f43 Implemented non-linear volume. Thomas Harte 2016-10-19 23:07:51 -04:00
  • c24c1bf3b1 Created an options panel for the Oric. Which involved far too much copy and paste from the Electron. Time to figure out how to generalise this stuff, probably. Thomas Harte 2016-10-19 22:56:14 -04:00
  • b59da7d4bc Added some documentation. Thomas Harte 2016-10-19 22:47:44 -04:00
  • 08275c6241 Fixed mixer IO bit usage. Thomas Harte 2016-10-19 22:22:15 -04:00
  • 59162228ef Reduced mask for clarity. Thomas Harte 2016-10-19 22:14:05 -04:00
  • 319d7c2b12 Fixed premature wrapping of the envelope, played about with whether that should be subject to a predivision by 256. It feels unlikely? Thomas Harte 2016-10-19 22:12:51 -04:00
  • 6073906c39 Commented and fixed mistake that would equate any noise divider > 32768 with 0. Thomas Harte 2016-10-19 21:51:35 -04:00
  • 101f168ea4 Made an attempt to tidy up. Thomas Harte 2016-10-19 21:43:18 -04:00
  • 5e2b0aa901 Quick project clean up. Thomas Harte 2016-10-19 21:32:12 -04:00
  • 5c69728625 Introduced a memory fuzzer, and ensured the Oric uses it. Thomas Harte 2016-10-19 21:31:50 -04:00
  • 734b575d30 Ensured no attempt to write to pixel storage if none was available. Thomas Harte 2016-10-19 21:17:27 -04:00
  • 4258401384 Implemented flush, added a call to it from the filter speaker's destructor, to ensure no race conditions on accessing the various bits of instance state there and below. Thomas Harte 2016-10-19 21:15:04 -04:00
  • ada37abe23 Made an attempt to implement noise and envelopes. Not quite right yet. Thomas Harte 2016-10-19 21:13:22 -04:00
  • 5a808d789a Added an upper threshold that must be crossed before a lower threshold warning is communicated. Thomas Harte 2016-10-18 22:21:34 -04:00
  • ca28e3c64e Ensured the AY is pumped linearly, not exponentially. Thomas Harte 2016-10-18 22:21:06 -04:00
  • bd6e6674a0 Fixed signed shift assumption and noise-related register test. Thomas Harte 2016-10-18 22:20:12 -04:00
  • b7609d2bb4 Fixed a potential race condition and simplified generally. Thomas Harte 2016-10-18 19:32:38 -04:00
  • 9669a5ec9b Switched to a more authentic interfacing to the AY. Thomas Harte 2016-10-18 19:32:15 -04:00
  • f6b6ec7009 Cemented new meaningof the audio queue delegate callout. Thomas Harte 2016-10-17 08:18:32 -04:00
  • 988bbb5ab1 Ensured AY registers aren't rewritten just because of a synchronise event. A stall prior to figuring out proper bus logic, clearly. Thomas Harte 2016-10-17 08:05:57 -04:00
  • c628b7c5c5 This is the real PAL frequency, I think. Thomas Harte 2016-10-17 08:05:02 -04:00
  • c105f2acd9 Sought to reduce chattiness. Thomas Harte 2016-10-17 08:04:36 -04:00
  • 1a57e89ff0 Altered phase so that it now merely accounts for accumulated error across a frame. Can probably do better. Thomas Harte 2016-10-17 08:04:15 -04:00
  • 43612e1ca2 Made an attempt to eliminate conditionals (running before I can walk?) and started edging towards an envelope generator. Thomas Harte 2016-10-17 08:03:38 -04:00
  • cc0b70828b Removed attempt at multiple-file logic, at least for the time being. Starting to wonder whether I actually need anything beyond a literal streaming of bytes? Thomas Harte 2016-10-16 22:15:24 -04:00
  • b274d7008c Added precaution to make sure best-effort updaters aren't mid-update during document destruction. Thomas Harte 2016-10-16 22:14:47 -04:00
  • 61ad0f8bdc Fixed inverse characters, added an extra per-frame phase change, based on empirical observation, ensured header guard won't become ambiguous. Thomas Harte 2016-10-16 22:14:01 -04:00
  • fae1bb0db9 First successful game loaded! It turns out exactly one '$' is correct. Probably. Thomas Harte 2016-10-15 21:49:41 -04:00
  • a67afb7efa Switched to a tight crop on the pixel part of the display. Thomas Harte 2016-10-15 21:43:46 -04:00
  • 952a24f769 A quick hard-wiring of the OricTAP code to get the first file in a .tap correct, damn the rest, and I'm getting some on-screen feedback. Hooray! Thomas Harte 2016-10-15 21:39:53 -04:00
  • a608bbebfb Performed enough wiring to put the onus back onto OricTAP to do appropriate things. Thomas Harte 2016-10-15 21:32:59 -04:00
  • 6d7c3f6ac2 Factored out the now-sampling binary-level tape player from the Vic and connected it up to the Oric. Thomas Harte 2016-10-15 21:21:18 -04:00
  • 9730e8247f Ensured propagation of synchronise messages, added enough to do plain tone. Probably. So: noise and envelopes missing. And it's all far too quiet. Thomas Harte 2016-10-15 21:04:21 -04:00
  • 51bdac27ae Made some AY advances; it's now being polled for samples and collecting more information on what it needs to output. Thomas Harte 2016-10-15 17:45:39 -04:00
  • da9c9ad51a Added in the missing keys; added variable phase to the video. Thomas Harte 2016-10-14 22:39:27 -04:00
  • 288d10c253 Got some keyboard reaction. Thomas Harte 2016-10-14 21:44:15 -04:00
  • 3dbb602419 This seems to be a bit more likely. Thomas Harte 2016-10-14 21:36:59 -04:00
  • 138eabcff4 Continued in my effort to wire up a keyboard. Will need further to continue. Thomas Harte 2016-10-14 21:35:15 -04:00
  • d8e4c488c2 Started iterating towards having an AY and a fully-working keyboard. Thomas Harte 2016-10-14 21:18:03 -04:00
  • 8867ad647c Made an attempt at implementing the loopbacks necessary for diagnostics. Thomas Harte 2016-10-13 21:47:12 -04:00
  • 41e7eff6c8 Added a VIA. Now it's time to find out how poor my 6522 emulation is. Thomas Harte 2016-10-13 20:50:55 -04:00
  • c9962f6502 Made an almost complete implementation of video. Just one row of the diagnostics cartridge seems to be off, showing thw wrong character set. Thomas Harte 2016-10-13 19:34:29 -04:00
  • 0ca383ecd1 Set every single key to be NMI, in order to be able to progress with the diagnostics cartridge. Thomas Harte 2016-10-13 18:56:55 -04:00
  • 69920a4979 Made some basic first attempt at parsing video attributes; ensured lowest byte of ROM is readable. Thomas Harte 2016-10-13 07:59:11 -04:00
  • ae48ad1bb4 Meaningful text! Albeit with the initial 'O' of 'Oric' missing. I guess control codes and NMIs next? Thomas Harte 2016-10-12 22:03:54 -04:00
  • 120b2d9e33 Switched to using a diagnostic ROM for now, as it'll definitely boot without initially requiring either a 6522 or AY. Have some forms appearing which imply I'm not doing badly, at least up to not knowing where I'm supposed to get character pixels from. Thomas Harte 2016-10-12 21:52:47 -04:00
  • 1f857c619b Fixed timing issues. Static box of frame achieved! Thomas Harte 2016-10-12 21:42:36 -04:00
  • 304f0999cd Made a faulty but hopefully creditable attempt to demarcate an Oric frame. Thomas Harte 2016-10-12 21:29:21 -04:00
  • 8c8a71107e Added just enough wiring to add something that will generate the video, one day. Thomas Harte 2016-10-12 19:20:23 -04:00
  • e6937d8003 Ensured that the ROM gets installed. So next for some video action? Thomas Harte 2016-10-12 18:51:02 -04:00
  • f7d2e988b6 Mildly enhanced unit test, while I'm curious. Thomas Harte 2016-10-11 22:22:53 -04:00
  • 4a062c616f Added enough wiring to get Oric TAPs through to a completely unimplemented Oric emulation. Thomas Harte 2016-10-11 22:20:13 -04:00
  • cbc3d28217 Ensured an exception is thrown if no machine to run a file is found. E.g. right now if you tried to open a ZX Spectrum .tap. Thomas Harte 2016-10-11 21:03:01 -04:00
  • 4f78d693e9 Reintroduced gap as a string of 1s, made an attempt to look up bit ordering. Still unclear on high/low versus low/high. Thomas Harte 2016-10-11 08:07:51 -04:00
  • 70f004efbb This may be feeding bits in the wrong direction or calculting the wrong parity or doing something else amiss but should now be correct as to bytes. Thomas Harte 2016-10-11 07:57:10 -04:00
  • df01c78039 It's a bit of a mess but this is probably close to appropriate for Oric TAP files. Thomas Harte 2016-10-11 07:39:48 -04:00
  • 00e3ad9b04 Added a bit more ceiling for lowpass filtering on constrained machines. Thomas Harte 2016-10-10 07:51:01 -04:00
  • 95afdbe966 Merge pull request #56 from TomHarte/NoBuffer Thomas Harte 2016-10-10 07:49:13 -04:00
  • 02bfa8b8de This should just trust. Thomas Harte 2016-10-10 07:45:09 -04:00
  • f4b39c4435 Added documentation and experimentally reduced packet size. We'll see. Thomas Harte 2016-10-10 07:42:24 -04:00
  • de397799ed Pulled away my crazy rationalisation of an audio queue into a circular buffer and decided just to trust the OS. This should reduce latency. Thomas Harte 2016-10-10 07:30:00 -04:00
  • c284818af5 Fixed alphabetisation of project. Thomas Harte 2016-10-07 17:21:02 -04:00
  • cffdbc7c00 Merge pull request #55 from TomHarte/AsyncQueue Thomas Harte 2016-10-07 17:20:35 -04:00
  • 4829b896f7 Documented the async task queue. Thomas Harte 2016-10-07 17:18:46 -04:00
  • 922dd6a586 Hit up the other two kinds of audio generator. Thomas Harte 2016-10-07 17:10:00 -04:00
  • 002e923cf1 Added shutdown logic. Thomas Harte 2016-10-07 17:08:29 -04:00
  • de658b70d7 That's thread safety, subject to the async task queue being made to work... Thomas Harte 2016-10-07 17:02:36 -04:00
  • e53455a936 Not having read the C++ synchronisation primitives before, this async task queue is probably incorrect. But nevertheless, let's have a quick go at employing it — in a hideously thread unsafe fashion — for audio generation. What can possibly go wrong? Thomas Harte 2016-10-07 16:56:34 -04:00
  • 2d26feb073 Added mappings for the previously-missing characters @, [ and ]. Thomas Harte 2016-10-04 22:03:53 -04:00
  • ebef5ccdba Merge pull request #54 from TomHarte/BCDTest Thomas Harte 2016-10-04 07:53:39 -04:00
  • c097886d00 Installed hoglet's BCDTest as a formal part of the test suite; removed some redundant semicolons in the Wolfgang Lorenz tests while I was here. Thomas Harte 2016-10-04 07:52:44 -04:00
  • f9ee6803df It's likely this should be set at startup too, based on latest info. Thomas Harte 2016-10-03 22:16:10 -04:00
  • f1af6ef8b6 Merge pull request #53 from TomHarte/BCDTest Thomas Harte 2016-10-03 22:07:20 -04:00
  • fa7c64bb5d Eventually reached an implementation of ADC that continues to satisfy all the formalised unit tests while also satisfying the manual BCDTest, that I need to find a way to formalise. I fixed the unit tests for Swift 3 while here, and attempted to do some unrelated NIB stuff with no real success. Thomas Harte 2016-10-03 22:03:39 -04:00
  • 97304e22f0 Adjusted per tests on StarDot; it appears the tape interrupts may fire during audio output, as if in tape output mode. Thomas Harte 2016-10-03 20:03:14 -04:00
  • dae6b45464 Ensured the always-on bit of the interrupt status register is indeed on. Thomas Harte 2016-10-03 19:15:31 -04:00
  • 6ecd8aac61 Merge pull request #52 from TomHarte/SingleDocument Thomas Harte 2016-10-03 08:02:30 -04:00
  • cfdd5fb686 By removing its status as a special case, eliminated the Atari 2600 document. It's fairly clear that my date with doing joysticks properly can be deferred only so much longer but this is no worse than previously things were. Thomas Harte 2016-10-03 08:01:04 -04:00
  • bf468db73d Migrated the Vic document to a mere options panel. Thomas Harte 2016-10-03 07:42:05 -04:00
  • 9e6e84647e Quick formatting fix. Thomas Harte 2016-10-02 22:06:28 -04:00
  • f28881ec6b ... and with the return of stored options and the shift of the aspect ratio to somewhere else (to sit, temporarily), the Electron document is the first of the gang to die. Thomas Harte 2016-10-02 22:04:47 -04:00
  • 19457621d8 Redistributed ownership of the user defaults key prefix, the Electron now works other than that settings aren't retained. Thomas Harte 2016-10-02 21:56:50 -04:00
  • f1b99263e0 Relocated responsibility for loading ROMs, giving an Electron that 'works' (i.e. options aside) again. Thomas Harte 2016-10-02 20:39:06 -04:00
  • 989a1581da Migrated analysis logic from the document controller to the document. Thomas Harte 2016-10-02 17:04:14 -04:00
  • 0c75c2fc41 Disabled all machine-specific document code, to force the migration of functionality. The 2600 works other than the little matter of input. Thomas Harte 2016-10-02 16:57:57 -04:00
  • 6c6e9830dd Started factoring the options panels out, in the hope that they'll become the only machine-specific thing. At least in the short term. Thomas Harte 2016-10-02 16:31:50 -04:00
  • 2411f192f7 Switched back to full typing, even for DFS loading. It saves having to worry about sideways RAM filing systems and shift (if that's even the issue). Thomas Harte 2016-10-01 21:09:28 -04:00
  • cd1ab09701 The Vic-20 now inserts ROMs again. Thomas Harte 2016-09-29 20:15:25 -04:00
  • abf47efd40 Factored out Commodore is-a-ROM test, allowing it to be used from the Commodore analyser and thereby allowing ROMs to get as far as the machine again. Thomas Harte 2016-09-29 19:39:13 -04:00
  • 4010f36238 Ensured tape-formatted PRGs reach a conclusion. Thomas Harte 2016-09-29 19:12:26 -04:00