Thomas Harte
|
1c5972f7b0
|
Ensures NTSC raster count rollover; previously it was positing a line '261' for half of '0'.
|
2018-04-08 16:18:41 -04:00 |
|
Thomas Harte
|
3e846f89a1
|
Introduces different clipping zones for NTSC and PAL output.
|
2018-04-05 21:25:19 -04:00 |
|
Thomas Harte
|
60c1da6a66
|
Causes the 6560 to obey set_sample_volume_range .
Thereby resolves a clipping issue.
|
2018-04-05 21:04:46 -04:00 |
|
Thomas Harte
|
0ee40e8556
|
Reintroduces 90% crop for VIC output.
|
2018-03-31 20:57:45 -04:00 |
|
Thomas Harte
|
912791d3d4
|
Causes the s-video path correctly to function.
|
2018-03-30 18:24:18 -04:00 |
|
Thomas Harte
|
163a61dd63
|
Corrects SVideo-as-composite output; the Atari and Vic-20 now both supply svideo.
|
2018-03-30 13:16:18 -04:00 |
|
Thomas Harte
|
e1aa3e5a7f
|
Imports chrominances from the TED documentation. They seem to apply to the VIC-I also.
|
2018-03-29 20:04:37 -04:00 |
|
Thomas Harte
|
3b26e0a7c5
|
Tweaks NTSC colour generation.
|
2018-03-26 21:22:06 -04:00 |
|
Thomas Harte
|
a776bec46a
|
Tweaks PAL colours for the 6560 to be closer to screenshots found online.
|
2018-03-26 19:02:16 -04:00 |
|
Thomas Harte
|
a301964bd0
|
Ensures all audio queues are fully merged before machine destruction.
Thereby avoids a race condition.
|
2018-03-22 21:59:19 -04:00 |
|
Thomas Harte
|
48737a32a7
|
Introduces formal setting of the output volume to SampleSource .
Previously every output device was making its own decision. Which is increasingly less sustainable due to the CompoundSource.
|
2018-03-09 13:23:18 -05:00 |
|
Thomas Harte
|
2dc1d4443e
|
Separates LowpassFilter and SampleSource.
|
2017-12-18 21:39:23 -05:00 |
|
Thomas Harte
|
f8a2459c91
|
Corrects two lingering adaptation errors in the Vic-20.
|
2017-12-17 21:43:08 -05:00 |
|
Thomas Harte
|
ac80d10cd8
|
Separates the component parts of running an audio stream: task deferral, filtering and generation.
Walking towards improving opportunities for composition.
|
2017-12-17 21:26:06 -05:00 |
|
Thomas Harte
|
c827d14d97
|
Corrects various GCC warnings across the 6560, CPC, TIA, Oric video and elsewhere.
|
2017-11-12 17:17:27 -05:00 |
|
Thomas Harte
|
5408efe9b5
|
Flags obvious default options within the 6560, Vic-20 and DynamicMachine.
|
2017-11-12 16:41:09 -05:00 |
|
Thomas Harte
|
ff7ba526fb
|
Corrects improper initialisation order on the 6560.
|
2017-11-10 22:05:35 -05:00 |
|
Thomas Harte
|
c0055a5a5f
|
Further builds up SConstruct, correcting many missed imports and a couple of improper uses of C99 in C++ code.
|
2017-11-09 22:04:49 -05:00 |
|
Thomas Harte
|
ad9df4bb90
|
Commutes uint8_t * , uint16_t * , uint32_t * , size_t , off_t and long to functional-style casts.
|
2017-10-21 22:30:15 -04:00 |
|
Thomas Harte
|
5e3e91373a
|
Switches all unsigned int and double casts to functional style.
|
2017-10-21 19:49:04 -04:00 |
|
Thomas Harte
|
edb9fd301c
|
Begins this project's conversion to functional-style casts.
|
2017-10-03 22:04:15 -04:00 |
|
Thomas Harte
|
e208f03636
|
Corrects the US colour palette, effectively undoing what was a mistaken adjustment for the time when Oric-centric phase alignment was built into the CRT based on a false calculation that it wouldn't affect the machines that generate chrominance functionally.
|
2017-08-16 09:58:34 -04:00 |
|
Thomas Harte
|
4abd62e62b
|
Standardises on const [Half]Cycles as the thing called and returned, rather than const [Half]Cycles & as it's explicitly defined to be only one int in size, so using a reference is overly weighty.
|
2017-07-27 22:05:29 -04:00 |
|
Thomas Harte
|
8361756dc4
|
Switched definitively to the works-for-now approach of requiring an explicit opt-in where somebody wants to clock a whole-cycle receiver from a half-cycle clock.
|
2017-07-27 07:40:02 -04:00 |
|
Thomas Harte
|
75d67ee770
|
Relocated ClockReceiver.hpp as it's a dependency for parts of the static analyser, and therefore needs to be distinct from the actual emulation parts.
|
2017-07-25 20:20:55 -04:00 |
|
Thomas Harte
|
a1e9a54765
|
Eliminated redundant uses of ClockReceiver and sought to ensure that proper run_for s are inherited all the way down.
|
2017-07-25 20:09:13 -04:00 |
|
Thomas Harte
|
40339a12e1
|
Formalised the use of a cycles count with a divider, bringing a few additional plain-int users into the fold.
|
2017-07-25 07:15:31 -04:00 |
|
Thomas Harte
|
a1a3aab115
|
Fixed implicit sign conversion.
|
2017-07-24 22:40:15 -04:00 |
|
Thomas Harte
|
c77a83d86f
|
The 6560 is now a ClockReceiver . This reduces to zero the number of remaining instances of the text run_for_cycles in this codebase.
|
2017-07-24 22:38:35 -04:00 |
|
Thomas Harte
|
b7f88e8f61
|
Filter is now a ClockReciever , affecting all sound output devices.
|
2017-07-24 21:29:13 -04:00 |
|
Thomas Harte
|
12f7e1b804
|
Enshrined a default colour burst amplitude. Which now everybody relies on. The 102 figure is derived from the burst apparently being 40 IRE.
|
2017-07-07 23:35:14 -04:00 |
|
Thomas Harte
|
eb8a2de5d6
|
Settled definitively on flush as more communicative than synchronise (and slightly more locale neutral); culled some more duplication from the Z80.
|
2017-05-15 07:38:59 -04:00 |
|
Thomas Harte
|
e270b726b3
|
Tweaked blue, increased saturation.
|
2017-05-13 22:01:02 -04:00 |
|
Thomas Harte
|
44ce7fa54c
|
Corrected luminances across the board, and PAL colours.
|
2017-05-13 21:50:09 -04:00 |
|
Thomas Harte
|
b0142cf050
|
Made an updated stab at NTSC colours.
|
2017-05-13 14:29:36 -04:00 |
|
Thomas Harte
|
a340331229
|
Introduced 1-bit of saturation, returning black and white as black and white.
|
2017-05-11 21:31:58 -04:00 |
|
Thomas Harte
|
15d17c12d5
|
Switched the 6560 to two bytes per pixel, since one isn't sufficient for precision and because mixing up the implementation might help me to figure out what's amiss.
|
2017-05-09 21:22:01 -04:00 |
|
Thomas Harte
|
5998123868
|
Added some consts, for a minor safety improvement.
|
2017-05-06 19:53:24 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
ca50606e1d
|
Restored Vic audio.
|
2016-12-03 17:10:47 -05:00 |
|
Thomas Harte
|
36bc558798
|
Converted all 'Components' to postfix underscores.
|
2016-12-03 10:51:09 -05:00 |
|
Thomas Harte
|
922dd6a586
|
Hit up the other two kinds of audio generator.
|
2016-10-07 17:10:00 -04:00 |
|
Thomas Harte
|
eeec516fa6
|
Implemented seeking on tapes, mucked about a bit more with the Commodore analyser, at least temporarily removed cropping from the Vic emulator.
|
2016-09-11 17:09:00 -04:00 |
|
Thomas Harte
|
1541273785
|
Moved responsibility for throwing in a low-pass filter up to the Vic, appropriately.
|
2016-08-21 18:13:31 -04:00 |
|
Thomas Harte
|
c783090980
|
It turns out that the Vic has a 1.6Khz low-pass filter. So added that.
|
2016-08-21 12:13:41 -04:00 |
|
Thomas Harte
|
8d839c5278
|
I think this is correct. And have explained why.
|
2016-08-20 16:54:43 -04:00 |
|
Thomas Harte
|
7c9455251d
|
Fixed reload for the lower-frequency audio channels.
|
2016-08-19 17:34:01 -04:00 |
|
Thomas Harte
|
99157ad6b2
|
Ensured the 6560 knows its real audio clock on a PAL machine; removed some stray semicolons.
|
2016-08-19 13:35:34 -04:00 |
|
Thomas Harte
|
902c0f967a
|
Implements known phase pattern for PAL output.
|
2016-08-17 08:09:48 -04:00 |
|
Thomas Harte
|
142774be37
|
Collapsed 6560 template to a more direct loop, albeit with quite a bit still left to fix.
|
2016-08-09 21:10:53 -04:00 |
|
Thomas Harte
|
12bad8f23f
|
Turned the 6560 into an ordinary template, similar to the rest of the project, albeit right now with a fairly shonky internal implementation. Fixed a Mac-specific interface sizing issue.
|
2016-08-09 20:41:05 -04:00 |
|
Thomas Harte
|
3e65450a54
|
Converted the 6560 fully into a template; worked on allowing the typer to run at a much faster rate where hardware has some trigger by which it can request the next key.
|
2016-08-06 14:33:24 -04:00 |
|
Thomas Harte
|
c6e046253e
|
Shunted code for the main part up into the header, in advance of turning it into a template so as to bring it inside the normal orthodoxy.
|
2016-08-05 19:13:49 -04:00 |
|
Thomas Harte
|
5d40d70c92
|
Fixed 6560 addressing error, added an autotyper for Vic disks (more work potentially needed), fixed semantics for testing whether a 6502 is about to reset.
|
2016-08-01 10:32:32 -04:00 |
|
Thomas Harte
|
88964ceac0
|
Eliminated plain pointer passing for object types.
|
2016-07-04 19:33:55 -04:00 |
|
Thomas Harte
|
5c85366de2
|
Made an attempt to prevent spurious border colour pushes.
|
2016-06-29 21:22:26 -04:00 |
|
Thomas Harte
|
ff53accca0
|
Demonstrated that issue is coloured borders, made a guess as to buffer exhaustion, upped limits as a temporary fix.
|
2016-06-29 21:16:34 -04:00 |
|
Thomas Harte
|
0182b0483a
|
Added a 'power on' flag that is set automatically at construction but can be declined. Saves all that stuff of every machine having to set and then unset the RST line, and fixes an Electron bug related to that.
|
2016-06-29 19:13:24 -04:00 |
|
Thomas Harte
|
de5d2f1113
|
Ensured the line counter increments late on NTSC.
|
2016-06-27 22:12:55 -04:00 |
|
Thomas Harte
|
3c9183d034
|
Improved some commenting.
|
2016-06-23 20:43:29 -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
|
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
|
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
|
ce7488dd30
|
Added support for _invertedCells. Treading water a little before making real changes.
|
2016-06-14 21:06:29 -04:00 |
|
Thomas Harte
|
926f819e3b
|
Added some documentation, made the speaker private.
|
2016-06-14 20:00:16 -04:00 |
|
Thomas Harte
|
a2a6e3c818
|
Fixed phase offsets.
|
2016-06-14 18:19:06 -04:00 |
|
Thomas Harte
|
f4884a3481
|
Added the noise channel, albeit not very creatively.
|
2016-06-14 17:50:32 -04:00 |
|
Thomas Harte
|
c18cc4c8f5
|
It appears the Vic's output is sine-ish, after all. Also adjusted centre of display, simultaneously adding some validation on that.
|
2016-06-14 07:29:35 -04:00 |
|
Thomas Harte
|
fdc854c0c2
|
Fixed tone channels; made an attempt at loading PRGs that are supposed to go into RAM.
|
2016-06-13 21:49:59 -04:00 |
|
Thomas Harte
|
efcb196ef7
|
Made a complete attempt at the tone channels.
|
2016-06-13 20:59:01 -04:00 |
|
Thomas Harte
|
f1a45c1011
|
Merge branch 'VicAudio' into Vic-20
|
2016-06-13 19:34:13 -04:00 |
|
Thomas Harte
|
2d23bc46f2
|
Whoops; fixed line count target test.
|
2016-06-13 19:34:01 -04:00 |
|
Thomas Harte
|
5fc36b956c
|
Attempted most basic sketching of a container for Vic audio.
|
2016-06-13 19:30:52 -04:00 |
|
Thomas Harte
|
91c406e065
|
Made an attempt to honour interlaced-frame line counts.
|
2016-06-13 18:21:21 -04:00 |
|
Thomas Harte
|
2e946e785f
|
Settled on half-intensity colour for now, appears likely not to be too incorrect(?)
|
2016-06-13 18:20:21 -04:00 |
|
Thomas Harte
|
e10535181d
|
Made an attempt to implement interlaced video.
|
2016-06-12 22:27:58 -04:00 |
|
Thomas Harte
|
4ad55a7f5e
|
Trimmed the visible area.
|
2016-06-12 18:01:38 -04:00 |
|
Thomas Harte
|
a5efa7543a
|
Added vertical sync, switching fully to the normal NTSC colour space.
|
2016-06-12 17:57:52 -04:00 |
|
Thomas Harte
|
4c2b964cd4
|
Added NTSC-VIC's switching of phase every field.
|
2016-06-12 17:45:25 -04:00 |
|
Thomas Harte
|
6b5a322918
|
Fixed all colours, plus special case no-chroma for black and white.
|
2016-06-12 17:41:52 -04:00 |
|
Thomas Harte
|
580c8bdcbd
|
Ported rest.
|
2016-06-12 17:29:44 -04:00 |
|
Thomas Harte
|
1a2b18f93b
|
Steps towards CPU mapping; diagnostic.
|
2016-06-12 17:27:57 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-12 14:57:24 -04:00 |
|
Thomas Harte
|
2992183aae
|
Switched to a lookup table for phase, temporarily in YUV colour space, probably. Working on it.
|
2016-06-12 14:39:17 -04:00 |
|
Thomas Harte
|
ed76e36b18
|
Made basic attempt at 16-line character mode.
|
2016-06-12 11:23:57 -04:00 |
|
Thomas Harte
|
1ed04fae1e
|
Resolved 6560 addressing.
|
2016-06-10 18:12:21 -04:00 |
|
Thomas Harte
|
f3b1d7de82
|
... and that's a flashing cursor. Keyboard input next!
|
2016-06-09 22:37:59 -04:00 |
|
Thomas Harte
|
30b7db3979
|
Attempted a square wave, made the Vic itself responsible for address manipulation re:the 6560.
|
2016-06-09 22:05:17 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-08 22:15:24 -04:00 |
|
Thomas Harte
|
581eace478
|
Increased logging slightly, ensured all of colour RAM can be read, slightly improved the 2600 pixel decoder.
|
2016-06-07 22:01:14 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-07 19:15:18 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-06 21:56:02 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-06 20:33:06 -04:00 |
|
Thomas Harte
|
c7c55528e2
|
Realised that registers appear also to be readable.
|
2016-06-06 20:29:39 -04:00 |
|
Thomas Harte
|
e8cb674073
|
Made some attempt at colours, at least.
|
2016-06-06 20:18:24 -04:00 |
|
Thomas Harte
|
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?)
|
2016-06-06 07:47:30 -04:00 |
|
Thomas Harte
|
64539a2b24
|
Advanced to having some characters displayed, even though they're obviously very much incorrect and the display is still rolling.
|
2016-06-06 07:35:35 -04:00 |
|
Thomas Harte
|
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.
|
2016-06-05 18:02:49 -04:00 |
|
Thomas Harte
|
444d3b69b6
|
Made some elementary attempt to hit something like the correct states within the VIC.
|
2016-06-05 17:06:10 -04:00 |
|