1
2008-12-05 Antti S. Lankila <alankila@bel.fi>
3
* Sync against V27 patch version. Filter updates described below.
5
* Reduce Q maximum to 2.2 or so. This may still be slightly too much,
6
but it's hard to say exactly...
8
* Arrange for about 3 dB boost of lowpass output that is independent
9
of state variable mixing or other feedback. This seems to produce
10
the right kind of sounds for songs like AMJ's Blasphemy.
12
* Assume that bp is slightly louder than bp (= more distorted).
13
This seems to help against very large number of songs which sport
14
lead sounds and effects distorted in a smooth, bassy way.
18
2008-10-31 Antti S. Lankila <alankila@bel.fi>
20
* Sync against V25 patch version. Filter updates described below.
22
* Tweak filter algorithm to do some state variable mixing in the
23
6581 code path. This corresponds with assumed output impedance of
24
the SID "amplifiers", and is separate effect to the output strip
27
* Retire the V24 attempt of dynamically adjusting BP distortion
28
threshold. It doesn't really seem to work.
30
* Increase Q value maximum to 2.5. This may be too much, but it sounds
33
* JT's Star Ball was very distorted when played by V24. This related
34
to the hardclipping I had assumed to occur in the filter output amp,
35
but maybe that theory is incorrect. I now only add distortion to the
36
unfiltered voice path, but I'm not happy about it.
38
2008-08-29 Antti S. Lankila <alankila@bel.fi>
40
* Optimized resampling to be about 2x faster through using aliasing
41
to increase passband width and hence reduce FIR length.
43
* Fixed some valgrind warnings.
45
* Added nuke_denormals() method to periodically flush these to zero, as
46
this can only be done for SSE registers by the FPU and we can't use
47
any in order to support CPUs older than P3.
49
* Marco, Hannu and me developed a runtime switching system
50
that detects SSE from cpuinfo and calls some SSE routines when they
51
are compiled in and the CPU can support them. We lost only very
52
little performance, but gained compatibility to very, very old
55
* The old code for ST_lockup proved unnecessary, so it is now removed.
57
2008-08-21 Antti S. Lankila <alankila@bel.fi>
59
* Fixed a bug where nonlinearity setting appeared to get lost, and
60
kenchis discovered further bugs in it. Oh well.
62
* I removed a lot of code associated with the lower quality modes of
63
ReSID, and only left the 1 MHz clock routines. Analysis shows that the
64
filter code is a major culprit, but the digital side emulation is not
65
completely cheap, either. I already added some small hacks to optimize
66
it, and I now think about reinjecting pieces of those clocking modes
67
that run the analog parts with reduced accuracy.
69
* I defined type4 filters based on equation of straight line. These are
70
characterized by parameters k and b, and the equation is
71
freq = k * fc. Strictly speaking, straight line is not 100 %
72
accurate, and a 2nd degree component would help, but based on
73
measurements against two of Trurl's 8580s, the maximum error
74
introduced using linear approximation is mere 3 %.
76
2008-08-10 Antti S. Lankila <alankila@bel.fi>
78
* I ripped off Type1 definitions from the filter, and the spline.h
79
and PointPlotter were unnecessary and so removed.
81
* I also added a bit of hardclipping in the output that seems to be
82
required to get Fred Gray's Break Thru. This might not occur so
83
strongly on all chips, so it should probably be added as a proper
84
tunable. For now, I just settled for a slight effect to collect
87
2008-07-15 Antti S. Lankila <alankila@bel.fi>
89
* This release is a bit slower than usual. The culprit is the changes in
90
voice.h where a new kinked-dac style calculation is used to simulate
91
the nonlinear shape of the waveform outputs. The cost of the new
92
calculation varies by song as I was lazy and only cached the result of
93
previous calculation, so speed depends on the pitch of the waveforms
94
and the precise waveform chosen.
96
* exp() is back, but this time it is implemented as an integer
97
calculation according to Schraudolph's paper "A Fast, Compact
98
Approximation of the Exponential Function". Using near-proper exp()
99
simplified the distortion algorithm. I think it all sounds much better
102
* A new effect where I mix bp-hp and lp-bp together by their difference
103
to simulate a small resistor between them appears to improve SidRiders
104
and several other songs, largerly eliminating some types of hard
105
distortion sounds that do not occur on the chip. It also helped
106
Mechanicus. I am trying to understand where this term comes from...
108
2008-07-09 Antti S. Lankila <alankila@bel.fi>
110
* I now have somewhat less arbitrary values for the distortion
111
tunables. They are now related to the relative signal levels in the
112
simulation. I'm still sorting out the particulars of the values I
113
ended up with ("why 128 instead of 256").
115
2008-03-02 Antti S. Lankila <alankila@bel.fi>
117
* Exposed the filter at sid.cc to callers through get_filter()
118
method, and fixed a few types.
120
2008-02-19 Antti S. Lankila <alankila@bel.fi>
122
* For some reason ReSID code adjusted the external filter frequency
123
based on calculated passband, while in the real C64 the filter is
124
fixed to about 16 kHz.
126
2008-02-06 Antti S. Lankila <alankila@bel.fi>
128
* I got interested to improve ReSID after chatting with Kevtris. He is
129
aiming to replicate the filter using analog hardware. He has the EE
130
experience that I have sorely lacked and made an infinitely valuable
131
contribution by telling me exactly how the distortion works.
133
2004-06-11 Dag Lem <resid@nimrod.no>
135
* Version 0.16 released. (From this point forwards, read