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

125 Commits

Author SHA1 Message Date
Thomas Harte
8bc3f8046d This endeavours to move everything into the CRT class except the final version of shader building. 2016-02-04 22:57:46 -05:00
Thomas Harte
e0d51408e4 Onward with carrying this through to the bitter end, this at least results in all the appropriate knowledge and call-ins occuring at the CRT. 2016-02-04 22:28:50 -05:00
Thomas Harte
4554abb755 Made an attempt to be more rigorous in display generation on the Electron, to make sure I deal with mid-line changes to/from blank line mode. Even if it turns out that they generate pixels. 2016-01-29 21:14:13 -05:00
Thomas Harte
0efe4b312c Disabled my various bits of rate interchange debugging; improved test for when to call update_display due to a RAM write. 2016-01-21 22:16:52 -05:00
Thomas Harte
de7218cdf0 Added a lot of commenting to the CPU6502 definition, simplifying its construction. Added missing nullability modifier to CSElectron. Fixed bad-habit Objective-C style naming on the Electron's Interrupt enum. 2016-01-20 21:55:38 -05:00
Thomas Harte
f727582911 Started making first moves towards stripping CSCathodeRayView of its responsibilities. If that can be merely an OpenGL view that presents things, things will be a lot more portable. 2016-01-20 08:21:33 -05:00
Thomas Harte
e65cd4cf06 Some data is marginally reaching the CPU from the tape. 2016-01-19 22:05:34 -05:00
Thomas Harte
956b90e203 Attempted further to improve latency; added view adjustment for non-4:3 output aspect ratios. The 4:3 is currently hardcoded, so further work will be required. 2016-01-18 23:55:52 -05:00
Thomas Harte
90eef1df74 Tightened to provide lower latency audio, hopefully. 2016-01-18 20:01:06 -06:00
Thomas Harte
03f683d588 Gave the audio queue something a lot like a spin lock on waiting to pipe out audio. 2016-01-18 19:57:18 -06:00
Thomas Harte
5a39e42413 Wired up enough such that some basic attempt at parsing a UEF occurs.` 2016-01-18 17:06:09 -06:00
Thomas Harte
2779f0e569 Statred working on support for at least the most fundamental file format. 2016-01-18 15:46:41 -06:00
Thomas Harte
b70fdc2de8 Switched to being explicitly careful about not wrapping around and stomping on data not yet output. 2016-01-18 13:56:20 -06:00
Thomas Harte
ddcc34740b Added lots of debugging output while I attempt to locate the source of audio scratchiness, also simplified manner of dealing with wraparound within the AudioQueue wrapper. 2016-01-18 13:50:19 -06:00
Thomas Harte
781249acf7 Fixed crash. 2016-01-14 20:35:36 -05:00
Thomas Harte
38ffcaa262 Here, at last, is _some_ audio output, at least. 2016-01-14 20:33:22 -05:00
Thomas Harte
afde8dac49 Closed the loop such that audio manages to bubble up into Objective-C. 2016-01-13 22:38:59 -05:00
Thomas Harte
d9a7ef9e46 Edging towards audio output; the speaker is given appropriate input and output rates, and then updated with current divider and enabled/disabled status. 2016-01-13 21:03:43 -05:00
Thomas Harte
d28abdc037 Made an attempt at correct timing, adding support for additional paged ROMs, added file association for .rom. 2016-01-12 22:34:26 -05:00
Thomas Harte
84ba4e2900 Tidied a little, started working towards supporting speaker output. 2016-01-12 22:19:56 -05:00
Thomas Harte
3437781abd Started sketching out an interface for sound generation. Which made me realise that the CRT in CRTDelegate was redundant, since C++ has namespaces. 2016-01-12 16:54:09 -05:00
Thomas Harte
6112f4ef6b Withdrew soft filtering for now; until the sampling frequency is passed on it's not sufficiently rigorous. 2016-01-12 16:42:16 -05:00
Thomas Harte
75d6ec354b Added some very basic filtering in RGB mode. 2016-01-12 16:27:09 -05:00
Thomas Harte
49a36ec9ac Added F12 as break. 2016-01-11 22:35:52 -05:00
Thomas Harte
650077feac Pulled a few things out as constants, zoomed in a little. Still in a 4:3 window though. 2016-01-11 22:18:34 -05:00
Thomas Harte
e93dbdb463 Implemented keyboard input. 2016-01-11 19:48:31 -05:00
Thomas Harte
ce916ebd6a Fixed runaway frame generator. 2016-01-10 23:32:57 -05:00
Thomas Harte
3d6f20b7b9 Output, at last! Though sync is clearly way off. 2016-01-09 21:53:33 -05:00
Thomas Harte
09df218c01 Some output! Showing that three lines of solid sync isn't smart. But here it is. 2016-01-09 21:48:53 -05:00
Thomas Harte
b4f31edea3 Made an attempt to get RGB output mode up and running, and showing at least a box where pixels would be. 2016-01-09 21:32:56 -05:00
Thomas Harte
a900bfed65 Fixed to ensure that frame rendering wraps around, and to properly connect the Electron to its view. Now I need a working pixel shader. 2016-01-09 20:34:22 -05:00
Thomas Harte
716bb3281b This at least now connects up a CRT, though it never talks to it. 2016-01-07 22:26:49 -05:00
Thomas Harte
47a7654c00 Added just enough that this is probably a successful boot. I guess I'm going to need to get invested in graphics next? Hmmm. 2016-01-07 21:01:13 -05:00
Thomas Harte
0db8938d27 Added the option for the CSCathodeRayView to show only a subsection of the full scan area. Zoomed in a little on the 2600. Put in enough piping to give the Electron sight of its ROMs at least. 2016-01-06 23:14:36 -05:00
Thomas Harte
bfd9957c81 You now get an Electron only if you ask for a new file. That'll do for now while it's the only thing that one might want to start without supplying a file. The 6502 now starts from a defined point — being reset. The Electron is starting to grow the absolute most simple buds of its memory map. 2016-01-06 21:09:49 -05:00
Thomas Harte
c69b3256ba Slightly simplified Swift usage. 2016-01-04 23:44:36 -05:00
Thomas Harte
616dc0b57c Okay, so this is the absolute bare minimum about of refactoring and wiring necessary to get the [unimplemented] Electron machine pumping. 2016-01-04 23:40:43 -05:00
Thomas Harte
43ab8bbad5 Okay, so then here's a first shot at the Objective-C -> C++ bridge for the Electron. 2016-01-04 23:16:37 -05:00
Thomas Harte
ab45c1d530 Started working on a shell for the Electron emulation, including factoring out the common CRT delegate -> Objective-C bridging, serial dispatch queue and frameskipping logic from the Atari 2600 shell. 2016-01-04 23:12:47 -05:00
Thomas Harte
22fa024546 Added document XIB. 2016-01-03 20:46:39 -05:00
Thomas Harte
aa0714fe27 Started sketching out an Acorn Electron emulation, as it's a platform I'm familiar with and will force me to figure out PAL decoding. Factored out NTSC-specific parts of the display decoding logic and hence added RGB output mode. 2016-01-03 20:41:43 -05:00
Thomas Harte
96503a3ac5 Switched to nicer nullable/nonnull syntax. 2016-01-02 17:59:21 -05:00
Thomas Harte
feeedbe33b The standard Xcode versioning updates. Nothing of substance. 2016-01-02 17:57:23 -05:00
Thomas Harte
675070c5dd Very, _very_ minor: switched to normal C++ constructor syntax for simple variable initialisation. 2015-12-06 16:53:37 -05:00
Thomas Harte
5feef2110f Added a very basic attempt at shadow mask emulation. 2015-09-24 21:23:16 -04:00
Thomas Harte
63b648be65 Switched down to four samples per pixel, just more than half as many, to fit into a vec4. Edges aren't as smooth but I'm wondering whether it'll make much odds when I implement a shadow mask. 2015-09-17 19:25:15 -04:00
Thomas Harte
5d6bee4927 Of course, being in-phase means being the cosine wave. 2015-09-10 21:30:39 -04:00
Thomas Harte
6a0b4e86c8 An Xcode beta version bump, nothing more. 2015-09-05 17:21:36 -04:00
Thomas Harte
53e699516b Disabled multisampling unless and until I can get the per-pixel cost down. 2015-09-05 17:21:16 -04:00
Thomas Harte
39027b675d Fixed YIQ conversion and made sampling pattern slightly more rational. 2015-09-05 17:09:24 -04:00