Commit Graph

  • afbd9fd41b Fixed declared line length. Thomas Harte 2017-03-14 21:33:38 -04:00
  • 3d53d4e55e Merge pull request #111 from TomHarte/ActivisionStack Thomas Harte 2017-03-14 20:41:04 -04:00
  • 7302703039 Implemented the Activision stack paging scheme. Thomas Harte 2017-03-14 20:24:05 -04:00
  • 97a8a96593 Rejigged how the memory map is handled and implemented MNetwork support. Thomas Harte 2017-03-14 20:07:54 -04:00
  • be2e99077e Merge pull request #110 from TomHarte/MegaBoy Thomas Harte 2017-03-14 17:40:41 -04:00
  • 3b29276228 Implemented the MegaBoy paging scheme. Thomas Harte 2017-03-14 17:40:01 -04:00
  • 4a528b9ecb Merge pull request #109 from TomHarte/CBSRamPlus Thomas Harte 2017-03-14 17:26:09 -04:00
  • b3632a4e86 Institutes CBS RAM Plus emulation. Thomas Harte 2017-03-14 17:25:10 -04:00
  • 8a659e3117 Merge pull request #108 from TomHarte/PitfallIIDetection Thomas Harte 2017-03-13 20:44:28 -04:00
  • a6897ebde0 Added an attempt to distinguish the MegaBoy (now with proper capitalisation) and a test for it. Thomas Harte 2017-03-13 20:43:12 -04:00
  • 582da14a14 Added an enumerated type and detection of Pitfall 2. Thomas Harte 2017-03-13 08:15:36 -04:00
  • b81bf6b547 Merge pull request #107 from TomHarte/PagingTests Thomas Harte 2017-03-12 22:17:18 -04:00
  • 8e147444d5 Added a readme, as is traditional for folders I'm excluding from Git. Thomas Harte 2017-03-12 22:16:12 -04:00
  • a9964ee0c8 Simplified CommaVid test. Thomas Harte 2017-03-12 22:14:39 -04:00
  • b671df9906 'Perfected' the Activision stack paging detector. Thomas Harte 2017-03-12 22:11:58 -04:00
  • 0bcf9c30de Added an attempt, at least, at spotting the Activision titles. Which reduces back to only the one breakage, but this is getting a bit too much like spotting the hard-coded bytes. Thomas Harte 2017-03-12 21:14:12 -04:00
  • 2c07cce282 Had the wrong paging scheme listed for Robot Tank and Thwocker. Better to get this right before trying to come up with a test for the Activision stack scheme. Thomas Harte 2017-03-12 21:03:10 -04:00
  • 8c5e39c0c5 Adjusted Super Chip test to look for two portions of 128 bytes. It now spots Dig Dug and doesn't acquire any further false positives amongst the tested set. So failure to spot the Activision stack-based paging mechanism is now the only remaining failure. Thomas Harte 2017-03-12 20:39:45 -04:00
  • cae48aaa95 Added an MNetwork test. Reduces failures to two of the set that I have: Dig Dug, which uses a Super Chip but has inconsistent bytes in its image, and Decathlon, which uses the Activision stack paging mechanism for which I don't yet have detection code. Thomas Harte 2017-03-12 18:54:49 -04:00
  • 37f4f6ba14 Cut down to one disassembly, now I know a bit more about how the non-Atari schemes work. Thomas Harte 2017-03-12 17:50:24 -04:00
  • 597bd97b01 Corrected two more table errors. Thomas Harte 2017-03-12 15:46:25 -04:00
  • 38de5300e5 Elevator Action seemingly uses a Super Chip. Thomas Harte 2017-03-12 15:43:42 -04:00
  • 62b3c9dda8 Corrected 8k Tigervision test, putting detection failures below 10 (i.e. at 9) for the first time. Thomas Harte 2017-03-12 15:41:48 -04:00
  • 146f3ea0f5 Fixed: Crystal Castles is 16kb. Thomas Harte 2017-03-12 15:39:07 -04:00
  • af9b7fbc30 Switched to a voting method for classifying 8kb ROMs. Thomas Harte 2017-03-12 15:36:01 -04:00
  • 78213f1e95 Fixed a couple more table entries, introduced per-size tests (plus a catch-all), to speed up the development/testing cycle. Thomas Harte 2017-03-12 15:35:36 -04:00
  • de347ad7c8 Improved CBS RAM Plus and Super Chip detection exclusion, reducing error count to 15. Thomas Harte 2017-03-12 14:03:17 -04:00
  • a4bba8a92e Made a couple of lookup table fixes and corrected RAM region detection windows; failures now down to 19. Thomas Harte 2017-03-11 23:18:30 -05:00
  • fcacfc2726 Tidied up spacing, slightly. Thomas Harte 2017-03-11 23:01:42 -05:00
  • bab464e765 I'm far from confident, but this should reduce the deviations close to those that result from mistakes by the static analyser, rather than table errors. Thomas Harte 2017-03-11 22:58:11 -05:00
  • 2879763c34 Reduced to 84 failures through more accurate tabulation. Thomas Harte 2017-03-11 21:52:52 -05:00
  • ea2ea30193 Fleshed entire table out with most common values. Exceptions now to fix. Thomas Harte 2017-03-11 21:11:25 -05:00
  • 608569cc48 Typed out all the 'A's that I am aware of. So about 5% done. Thomas Harte 2017-03-11 20:58:38 -05:00
  • c7e973aab4 Extended test set a little, corrected current failures. Thomas Harte 2017-03-11 20:51:25 -05:00
  • 443d57bc32 Slimmed output and added first six tests. Acid Drop fails since I'm not yet declaring Atari 16k and Atari 32k. Thomas Harte 2017-03-11 20:43:19 -05:00
  • 57ec756f5b Started speccing out a unit test for Atari ROM analysis. Thomas Harte 2017-03-11 20:33:58 -05:00
  • 9286a5ba73 Added a new folder to the exclusion list, to contain commercial Atari images, to unit test my paging hardware selection logic. Thomas Harte 2017-03-11 19:42:23 -05:00
  • 1c9dffe41f Added an earlier exit. Thomas Harte 2017-03-11 19:38:05 -05:00
  • 8c7f724ce4 Merge pull request #106 from TomHarte/Tigervision Thomas Harte 2017-03-11 18:18:29 -05:00
  • b193248056 Ensured that queue is not touched at all outside of the critical section. Thomas Harte 2017-03-11 18:17:09 -05:00
  • f0d944847b Fixed setting of the second 1kb. Thomas Harte 2017-03-11 18:16:29 -05:00
  • a72d70e707 Enabled code coverage calculation for unit tests. Thomas Harte 2017-03-11 17:44:56 -05:00
  • add14fb43a Made an attempt to implement Tigervision paging. Thomas Harte 2017-03-11 17:44:35 -05:00
  • 38ce4dc56c Fixed potential deadlock, if a delegate decided to dealloc the queue as a result of its prompting. Thomas Harte 2017-03-11 17:44:02 -05:00
  • bce5abd33b Made an attempt to spot Tigervision paging requests. Thomas Harte 2017-03-11 13:12:23 -05:00
  • 3f36eeb071 Merge pull request #105 from TomHarte/ParkerBros Thomas Harte 2017-03-11 13:05:17 -05:00
  • 33bda2d40c Switched to image inspection for RAM guesses rather than disassembly. Which fixes the other Parker Bros titles. Thomas Harte 2017-03-11 13:04:23 -05:00
  • 2b5e3a600e Made a first attempt at implementing the Parker Bros pager within the emulation. Thomas Harte 2017-03-11 12:43:12 -05:00
  • 8dbf9fd302 Started adding an attempt to distinguish between Atari and Parker Bros paging schemes. Thomas Harte 2017-03-11 11:41:18 -05:00
  • 9c72ce5bd2 Ensured a settling delay is permitted before an NTSC/PAL decision is made. To avoid false switches just due to startup. Thomas Harte 2017-03-06 19:37:35 -05:00
  • ec2762509b Merge pull request #104 from TomHarte/SyncDetection Thomas Harte 2017-03-06 19:18:52 -05:00
  • e63229a5e5 Pulled vertical sync detection entirely outside the loop, and gave it greater perspective. Thomas Harte 2017-03-06 19:15:33 -05:00
  • ad73379d1c Took vertical sync detection logic entirely out of the loop. Thomas Harte 2017-03-05 20:17:55 -05:00
  • abd4d2c42a Extended has-RAM test to check all banks. Thomas Harte 2017-03-05 11:58:52 -05:00
  • 79784a8e57 Followed tip: missiles are locked to the position after four output pixels, not four input pixels. Thomas Harte 2017-03-04 22:23:50 -05:00
  • 61b8fc1e2f Merge pull request #103 from TomHarte/CRTCounting Thomas Harte 2017-03-04 17:32:45 -05:00
  • 4751615623 Fixed NTSC colour cycle count, and hence the 2600's reported line lengths and phase offset. Thomas Harte 2017-03-04 17:31:39 -05:00
  • cccdc558e7 Merge pull request #102 from TomHarte/6532Accuracy Thomas Harte 2017-03-04 17:04:43 -05:00
  • d3257c345a Tested against public ROMs and corrected. Also moved the deferred adjustment into a more canonical place. Thomas Harte 2017-03-04 17:00:28 -05:00
  • e09b76bf32 Fixed 'same value, then immediate increment, then proper counting increments' behaviour and ensured it takes one cycle to commit a value. Adjusted tests to match. Thomas Harte 2017-03-04 15:57:54 -05:00
  • 837cccdf83 Switched to deferred updates for the 6532. Thomas Harte 2017-03-04 14:58:28 -05:00
  • a3fcd15980 Loosened sync charge level requirement. Thomas Harte 2017-03-01 22:16:56 -05:00
  • 93d1573481 Added a fix for certain homebrews. Thomas Harte 2017-03-01 07:59:25 -05:00
  • 893a5dd007 Added an artificial low pass filter, attempting to capture post-digital effects. Thomas Harte 2017-02-28 21:29:55 -05:00
  • 026b418b4a Ensured filtered 1:1 audio resampling is applied. Thomas Harte 2017-02-28 21:27:38 -05:00
  • 06dd98b23c Pulled the reset time for horizontal blank extend up to position 224. Thomas Harte 2017-02-28 20:28:54 -05:00
  • 2a81ae1dec Now required: at least four stores for RAM to be detected. Thomas Harte 2017-02-28 20:28:14 -05:00
  • 1625b9c7f9 Merge pull request #101 from TomHarte/CommaVid Thomas Harte 2017-02-27 20:53:19 -05:00
  • 184c8ae707 Extended to emulate the CommaVid. Thomas Harte 2017-02-27 20:50:59 -05:00
  • 8f8b103224 Slightly tidier. Also in the interim: confirmed no remaining false positives or negatives from the existing published set. Thomas Harte 2017-02-27 08:42:43 -05:00
  • 1af415a88e Okay, this is a bit desperate, but worth investigation. Thomas Harte 2017-02-27 08:39:53 -05:00
  • fe07cd0248 Made another attempt to distinguish. Thomas Harte 2017-02-27 08:06:57 -05:00
  • a3d339092e Corrected callers of the 6502 disassembler. Thomas Harte 2017-02-27 07:56:59 -05:00
  • 837216ee9a Adjusted semantics to allow for more complicated mappings, e.g. whereby supplied data repeats itself within a range. Thomas Harte 2017-02-27 07:49:33 -05:00
  • dcd0c90283 Switched time of best-effort updater delegate setting, to avoid a callback before setupClockRate has happened, and therefore before it's clear what should be going on with audio. Thomas Harte 2017-02-26 21:58:43 -05:00
  • b24cd00a39 Switched time of best-effort updater delegate setting, to avoid a callback before setupClockRate has happened, and therefore before it's clear what should be going on with audio. Thomas Harte 2017-02-26 21:58:43 -05:00
  • 0273860018 Sought to weed out further false positives on CommaVid, partly by introducing a record of internal calls, to pair with the now confusingly named outward_calls. Thomas Harte 2017-02-26 21:58:09 -05:00
  • 82c089cde4 Factored out paging type detection and, from that, took out 2k cartridge detection. Added an attempt at a CommaVid detector, which does not currently work. Thomas Harte 2017-02-26 21:24:54 -05:00
  • 997707a45b Merge pull request #100 from TomHarte/SuperChipDetection Thomas Harte 2017-02-26 18:04:50 -05:00
  • 9d7985c1e1 Added Super Chip emulation. Thomas Harte 2017-02-26 17:47:29 -05:00
  • 8b1ec827e0 Made an initial, very naive attempt to recognise two types of expanded cartridge: those with a superchip and those with a CBS RAM+, in both cases by looking for instructions that appear to write into cartridge space. Thomas Harte 2017-02-26 17:11:57 -05:00
  • 153525f23d Extended quality of known address read/write/modify mapping, and started recording internal accesses in addition to external. Thomas Harte 2017-02-26 17:10:33 -05:00
  • 3101dc94a7 Merge pull request #98 from TomHarte/TIAImprovements Thomas Harte 2017-02-26 15:14:59 -05:00
  • e6a84fd26b Attempted a hardware-correct implementation of missile-to-player latching. This completes the last of the **knowing** inaccuracies. The rest are as-of-yet unwitting. Thomas Harte 2017-02-26 15:12:31 -05:00
  • 440467ea3e Started communicating which copy is being requested. Thomas Harte 2017-02-26 13:39:25 -05:00
  • 98376de9ad Started returning 'no effect' for pot ports, rather than doing nothing. Still very much TODO though. Thomas Harte 2017-02-25 22:58:58 -05:00
  • e61e355251 Moved to the maximum possibly required queue length of 4. Though the emulated 2600 should never need more than 2 slots as per the current calling pattern, it's not a contractual guarantee. Thomas Harte 2017-02-25 17:25:10 -05:00
  • c898c8a99e Ensured the missiles and ball don't attempt to enqueue. Because I don't think they're supposed to. Thomas Harte 2017-02-25 17:13:22 -05:00
  • 8c9062857c Added a single-slot queue for player objects to defer drawing, thereby deferring pixel lookup. Which I think is correct. Though more slots might be needed. Thomas Harte 2017-02-25 17:10:24 -05:00
  • 77ed4ddc05 Slightly simplified ready line release logic. Thomas Harte 2017-02-23 21:08:32 -05:00
  • 82f392fada This should be the other way around. I want whichever is later. Thomas Harte 2017-02-22 21:54:49 -05:00
  • 2f0c923c29 Switched away from @synchronized as it appears possibly to be the lock used during -dealloc, creating deadlock with the CSAudioQueueDeallocLock. Thomas Harte 2017-02-22 21:42:10 -05:00
  • 8291a63d5f Fixed loss of audio when switching to PAL. Thomas Harte 2017-02-22 21:15:37 -05:00
  • 4c947ad553 Attempted to resolve risk of an audio callback being in progress when -dealloc is received. Thomas Harte 2017-02-22 21:12:59 -05:00
  • 6120dae61a While I'm using the hacky approach to player/missile synchronisation, I need to seed adder. Thomas Harte 2017-02-22 07:39:11 -05:00
  • 1d03793f22 Fixed potential race condition: ensure the queue is disposed of synchronously because otherwise there'll be a potential dangling reference to self. Thomas Harte 2017-02-22 07:35:09 -05:00
  • 4f5f191cd6 Fixed: will no longer attempt to output pixels from before the pixel part of a line on which sync was disabled abruptly. Thomas Harte 2017-02-22 07:33:36 -05:00
  • 21abf4e9fc Enshrined a terminology switch, albeit without any flow change behind it. Thomas Harte 2017-02-22 07:29:48 -05:00
  • 144d6b70d9 Minor cleaning. Thomas Harte 2017-02-22 07:14:30 -05:00
  • b769f22ca0 Switched back to the collision_buffer_ being part of the TIA object, added one more assert. Thomas Harte 2017-02-21 22:26:20 -05:00