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

816 Commits

Author SHA1 Message Date
Thomas Harte
2bd71e7e9b .reset is the more normal way to reassign a unique_ptr. 2016-06-23 20:52:44 -04:00
Thomas Harte
3a4e844a07 Merge pull request #29 from TomHarte/6560Improvements
Improved 6560 emulation and the Vic-20's bus
2016-06-23 20:45:10 -04:00
Thomas Harte
3c9183d034 Improved some commenting. 2016-06-23 20:43:29 -04:00
Thomas Harte
097a9caa95 Delegates are all nullable, naturally. 2016-06-23 09:37:49 -04:00
Thomas Harte
359ffb9aa7 Made some attempt to implement what appears to be the proper address generation logic. 2016-06-23 07:32:24 -04:00
Thomas Harte
e05003c176 Discovered that the VIC and the VIAs can be simultaneously selected. Adjusted bus appropriately. 2016-06-22 17:34:42 -04:00
Thomas Harte
b753690d5e Made an attempt to adjust the 6560 to a model compatible with that advocated by the available documentation. Exact decision timing may need further work. 2016-06-21 22:12:01 -04:00
Thomas Harte
106e56600d Added a DC offset for 6560 volume level, albeit one plucked from thin air. 2016-06-21 07:31:14 -04:00
Thomas Harte
2d13802625 Merge pull request #28 from TomHarte/AtariClockRateAdjustment
Completes the loop on machines changing clock rate dynamically
2016-06-20 22:20:41 -04:00
Thomas Harte
454e98302d Slight rearrangement plus a setting of the CSMachine delegate corrects audio after a clock rate change. 2016-06-20 22:18:41 -04:00
Thomas Harte
31b26b8118 Made a first attempt to implement the full top-to-bottom change of clock rates, giving the Atari the ability to change rate when it switches to PAL mode, as it should always have been. 2016-06-20 21:47:27 -04:00
Thomas Harte
3591479571 Fixed mismatch between initial tick box states and communicated switches; ensured they're visible upon launching a game. 2016-06-20 21:31:07 -04:00
Thomas Harte
2f00b841d8 Merge pull request #27 from TomHarte/Further6532Tests
Increases unit testing of the 6532
2016-06-20 21:07:56 -04:00
Thomas Harte
25a5455d33 Completed bridge interface. 2016-06-20 21:07:01 -04:00
Thomas Harte
fe17d1778c Expanded 6532 tests substantially, beefing up implementation to match. 2016-06-20 21:02:42 -04:00
Thomas Harte
88e2b382e5 Made an attempt at a full and thorough 6532 implementation (and got a bit more explicit about flag size in the 6502). 2016-06-20 18:57:35 -04:00
Thomas Harte
d4b9ff0ca4 Doubles up on register mirroring. Will do for now. More to come. 2016-06-20 07:27:38 -04:00
Thomas Harte
b6dd38dad3 Corrected type safety warning. 2016-06-19 21:41:01 -04:00
Thomas Harte
6c3f5d2caf Fixed window sizing. 2016-06-19 21:40:35 -04:00
Thomas Harte
a8e0d1d86f Merge branch 'FactoredOut6532' 2016-06-19 20:27:19 -04:00
Thomas Harte
96d538359d Merge pull request #26 from TomHarte/FactoredOut6532
Factored out the 6532 RIOT
2016-06-19 20:26:47 -04:00
Thomas Harte
4db61d98f4 Killed the .cpp. 2016-06-19 20:21:38 -04:00
Thomas Harte
d5aaad396e Added a TODO on my lack of knowledge. 2016-06-19 20:13:31 -04:00
Thomas Harte
7cf6008e7c Started some very basic RIOT unit tests; corrected to pass. 2016-06-19 20:12:47 -04:00
Thomas Harte
065ec618c4 Factored out and templated the 6532, finally taking the opportunity to add a means to control the on-console switches of an Atari 2600. 2016-06-19 19:36:34 -04:00
Thomas Harte
65413f078c Factored out the 6532, eventually to make it testable. 2016-06-19 18:57:40 -04:00
Thomas Harte
ce2f5515c0 Made some minor documentation improvements, killed 6522.cpp as the 6522 is going to be a template only, attempting to promote good inlining behaviour. 2016-06-19 18:11:37 -04:00
Thomas Harte
0cbf0cf8fc Merge pull request #25 from TomHarte/ElectronTyper
Implements `Utility::TypeRecipient` for the Electron
2016-06-19 17:29:09 -04:00
Thomas Harte
6dd8ea67c9 Tested and trimmed delay on typing if resetting. 2016-06-19 17:27:23 -04:00
Thomas Harte
05cb47709e Implemented Utility::Typer for the Electron. So that now also receives pastes. 2016-06-19 17:25:35 -04:00
Thomas Harte
ee050d71ec Merge pull request #24 from TomHarte/RAMPRGs
Adds a check for whether PRGs should be loaded to RAM and, if so, installs them post-boot and performs a 'RUN'
2016-06-19 16:39:03 -04:00
Thomas Harte
ef3ed1f436 Implemented full paste ability for any machine that is a typer. 2016-06-19 16:35:04 -04:00
Thomas Harte
3fc472d5cb Expanded typing to include phase for machines that need to go through multiple keypresses to reach a certain state, expanded Vic to be able to type most things (still bodged on lowercase though), and to schedule a 'run' if it's supposed to be loading into RAM, spotting that opportunity actually to do so. 2016-06-19 13:46:53 -04:00
Thomas Harte
e7aeed2f03 Established a general pattern for machines that can type things. Started working on the Vic typing itself. 2016-06-19 13:10:52 -04:00
Thomas Harte
960cae15b1 Merge pull request #22 from TomHarte/6522UnitTests
Starts adding unit tests for the 6522, correcting the implementation as required
2016-06-18 17:22:23 -04:00
Thomas Harte
f4915c5ad6 Fixed test and added basic implementation of data direction. 2016-06-18 17:17:03 -04:00
Thomas Harte
eea850cd12 Added a deliberately failing data direction test. 2016-06-18 16:40:01 -04:00
Thomas Harte
2282b59768 Added a quick latching test, and shortened test messages, albeit that they're still displeasingly boilerplate. 2016-06-18 16:10:46 -04:00
Thomas Harte
5d26cd85a3 Wrote test case for what appears to be correct timer behaviour if those were acting in isolation. Ensured implementation matches test case. 2016-06-18 14:30:23 -04:00
Thomas Harte
394902f409 Switched to clocking the 6522 by the half-cycle. Very trivial test now passes. 2016-06-18 13:57:10 -04:00
Thomas Harte
06fb2ff1c7 Started endeavouring to sketch out the boilerplate for writing a 6522 test harness. Added a default implementation of synchronise to the 6522 too, since not everybody is going to want one. 2016-06-18 09:28:46 -04:00
Thomas Harte
595791cee0 Made the base 6522 class more abstract: you must now opt-in if you want the IRQ line to be sent to a delegate. 2016-06-18 08:51:18 -04:00
Thomas Harte
60d654e9f9 Whoops; they're all .bin. No .roms here. 2016-06-17 08:27:16 -04:00
Thomas Harte
d6cb4fe15c Merge pull request #21 from TomHarte/LowLatencyAudio
Attempts to apply some sort of quality-of-service guarantee to audio
2016-06-16 21:44:16 -04:00
Thomas Harte
090e92ad26 Making this large has very limited side effects. So why not? 2016-06-16 21:41:17 -04:00
Thomas Harte
3b71d1a309 Switched to a variable-length buffer based on attempting to hit approximately a certain quality of service. 2016-06-16 21:35:22 -04:00
Thomas Harte
2ee78d42b9 Made an attempt also to trigger updates upon audio packets being returned, and significantly to reduce the size and quantity of those. This should get down to 11ms latency if the output wave is 44100; I might need to scale up the buffer size as the sampling rate increases or this is going to get crazy at 192Khz. 2016-06-16 20:51:35 -04:00
Thomas Harte
00a9f1bf24 Fixed best-effort updater actually to run, finally moved clock rate announcement into the C++ side of things, started working on a mechanism to allow clock rate to be updated. 2016-06-16 20:39:46 -04:00
Thomas Harte
1921a6c469 Rewired the existing cause-an-update route from the OpenGLView through the best-effort updater. 2016-06-16 18:19:23 -04:00
Thomas Harte
530cf3dcbb Made an attempt to consolidate serialisation and clock rate adherence, allowing a floating-point clock rate. 2016-06-16 18:04:54 -04:00