Thomas Harte
|
dde672701f
|
Merge pull request #755 from TomHarte/ExpliticLambdas
Tries to be less lazy with lambda captures.
|
2020-02-15 12:38:12 -05:00 |
|
Thomas Harte
|
9ca2d8f9f2
|
Tried to be less lazy with lambda captures.
This is primarily defensive.
|
2020-02-14 23:39:08 -05:00 |
|
Thomas Harte
|
763159a6f6
|
More neatly ties volume level 0 to silence.
|
2020-02-14 23:16:10 -05:00 |
|
Thomas Harte
|
6810a6ee58
|
Adjusts the AY volume scale.
Hopefully more accurately to model the real thing.
|
2020-02-14 22:51:20 -05:00 |
|
Thomas Harte
|
6a44936a7c
|
Ensures programmatic volume level 0 is completely off.
|
2020-01-05 22:44:52 -05:00 |
|
Thomas Harte
|
274867579b
|
Deploys constexpr as a stricter const .
|
2019-12-22 00:22:17 -05:00 |
|
Thomas Harte
|
206ab380c7
|
Introduces double-resolution envelopes for the Atari ST.
|
2019-12-18 22:03:02 -05:00 |
|
Thomas Harte
|
d85ae21b2f
|
Adds an explicit declaration of chip type to all AY users.
|
2019-12-18 19:28:41 -05:00 |
|
Thomas Harte
|
62a1d69cee
|
Implements proper AY IO output behaviour.
|
2019-03-05 20:20:26 -05:00 |
|
Thomas Harte
|
ee89be6730
|
Removes many stray spaces.
|
2018-11-23 22:32:32 -05:00 |
|
Thomas Harte
|
df8c896193
|
Removes unused state and implements AND output readback.
|
2018-06-26 19:31:16 -04:00 |
|
Thomas Harte
|
59f8eeb05a
|
Ensures the AY goes high impedance when not in read mode.
|
2018-06-25 20:48:24 -04:00 |
|
Thomas Harte
|
5d6b5d9f10
|
Eliminates all emdashes in cross-platform code.
|
2018-05-13 15:34:31 -04:00 |
|
Thomas Harte
|
0b771ce61a
|
Removes all instances of the copyright symbol.
|
2018-05-13 15:19:52 -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
|
3c5a8d9ff3
|
Adds Super Game Module support for the ColecoVision.
|
2018-03-03 13:08:33 -05:00 |
|
Thomas Harte
|
d4df101ab6
|
Makes a first attempt at implementing the SN76489.
|
2018-02-27 22:25:12 -05:00 |
|
Thomas Harte
|
57ddfcd645
|
Corrects AY counter type.
|
2018-01-06 23:16:01 -05:00 |
|
Thomas Harte
|
2dc1d4443e
|
Separates LowpassFilter and SampleSource.
|
2017-12-18 21:39:23 -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
|
5aef81cf24
|
Commutes cross-platform #pragma mark s to //MARK: s.
|
2017-11-12 15:59:11 -05:00 |
|
Thomas Harte
|
5b6ea35d96
|
Corrects initialisation ordering for the ZX80/81, C1540 and AY-3-8910.
|
2017-11-10 22:31:27 -05:00 |
|
Thomas Harte
|
ec999446e8
|
Commutes int and unsigned casts to the functional style.
|
2017-10-21 21:00:40 -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
|
cc9d23f23b
|
Inverted meaning of register_masks, as it's a bit weird that the mask is inverted immediately upon usage. It's a left-over from thinking the unused bits should be 1s; unit tests reveal they should be 0s. Comment updated appropriately.
|
2017-08-16 09:29:48 -04:00 |
|
Thomas Harte
|
1a831bcf9b
|
Quick fix: supply the port being written to correctly.
|
2017-08-16 09:15:57 -04:00 |
|
Thomas Harte
|
3947347d88
|
Introduces active input handling for the AY and uses it in the CPC to give proper, active keyboard input, rather than push-on-select, which was only ever a temporary hack. Also maps a few more keys for the Amstrad.
|
2017-08-15 22:47:17 -04:00 |
|
Thomas Harte
|
e3d1f4fe1e
|
Subjectively, this might be more correct. It definitely prevents intermediate frequencies. More research required.
|
2017-08-08 17:58:35 -04:00 |
|
Thomas Harte
|
41a30c147d
|
Adjusted: invalid register selection simply deselects all registers.
|
2017-08-07 19:51:36 -04:00 |
|
Thomas Harte
|
7fbb455836
|
Per the CPC test I'm checking, 0s should be returned for non-retained bits, not 1s.
|
2017-08-07 19:07:12 -04:00 |
|
Thomas Harte
|
745afd217f
|
The port input/output flags are now honoured; reading a port that is set as an output returns the current output value.
|
2017-08-07 19:01:18 -04:00 |
|
Thomas Harte
|
3ca9c38777
|
Attempted to move to more accurate bus reading — if control lines are set then all subsequent data inputs should act according to the current control lines; changes to port input should be reflected live upon readings, etc.
|
2017-08-02 19:45:58 -04:00 |
|
Thomas Harte
|
0267bc237f
|
Added the ability to set a port input, and relaxed bus state testing. I think my on-demand bus reactions here are inappropriate, so more work to do here probably.
|
2017-08-01 18:04:51 -04:00 |
|
Thomas Harte
|
e6854ff8db
|
Corrected typo: the input to an AY is BDIR, not BCDIR.
|
2017-08-01 17:06:57 -04:00 |
|
Thomas Harte
|
aaa60dab12
|
Fixed signedness of index.
|
2017-07-21 21:21:01 -04:00 |
|
Thomas Harte
|
e01f3f06c8
|
Completed curly bracket movement.
|
2017-03-26 14:34:47 -04:00 |
|
Thomas Harte
|
ced644b103
|
It seems likely that an AY divides its clock by 8, not 16. I had conflated wave frequency and counter clock.
|
2017-01-11 22:03:01 -05:00 |
|
Thomas Harte
|
36bc558798
|
Converted all 'Components' to postfix underscores.
|
2016-12-03 10:51:09 -05:00 |
|
Thomas Harte
|
7eeaac23e7
|
Reversed myself. I once again do not think the clock is divided by 256 for envelopes.
|
2016-11-11 20:31:48 -05:00 |
|
Thomas Harte
|
77987bf31e
|
Decided to go with divide by 256 for the envelope counter after all.
|
2016-11-09 21:51:56 -05:00 |
|
Thomas Harte
|
77ce200fbb
|
Simplified/corrected AY tone/noise mixer logic, and made a new guess at the effect of reading registers that are smaller than 8 bits.
|
2016-11-09 21:21:17 -05:00 |
|
Thomas Harte
|
21604376e6
|
Reintroduced clocking of the AY and boxed in the range of the master divider a little further.
|
2016-10-30 22:51:08 -04:00 |
|
Thomas Harte
|
fd823dc222
|
Settled on terminology.
|
2016-10-23 20:42:49 -04:00 |
|
Thomas Harte
|
b12f2f2796
|
Switched to more straightforward version of two-step loop, dealing with my mistaken dealing of when _master_divider&15 == 0 upon entry without adding an extra sanity check. Am also temporarily on non-modulo logic for tone generation, for a profiling test.
|
2016-10-23 20:32:48 -04:00 |
|
Thomas Harte
|
583db88299
|
Added a dispatch queue-powered Apple implementation of the async task queue, removed any mention of skip_samples in the AY since it isn't implemented.
|
2016-10-22 21:58:45 -04:00 |
|
Thomas Harte
|
33e628a096
|
Made an attempt to eliminate what amounts to manual division.
|
2016-10-21 22:16:44 -04:00 |
|
Thomas Harte
|
46a3c0922f
|
Slightly simplified code, fixed divider.
|
2016-10-21 22:12:44 -04:00 |
|
Thomas Harte
|
d7c0c49715
|
Might as well be consistent with divider loads.
|
2016-10-21 20:07:14 -04:00 |
|
Thomas Harte
|
782ef960e1
|
Sought both to [start to] optimise the AY and correct divider reloads. It turns out that conditionals aren't that troubling. But I can probably eliminate the counters.
|
2016-10-21 20:05:38 -04:00 |
|