OVERDRIVE — signal-flow flowchart
OVERDRIVE — signal-flow flowchart
Image rep algo 33 · slots 33 · unit 0 (I-RAM load 84) · family distortion · confidence high.
overdrive: waveshaper + smoother + 4kHz Butterworth tone
63 words, 18 class-A coefficient multiplies (4 named), 0 instructions still opaque, 13 of 63 not yet decoded. Landmarks detected: 2 biquad DF-I section(s), 2 waveshaper LUT selector(s), 2 class-8 post-sum step(s).
flowchart TD
N0["Stereo input (L / R)"]
N1["Waveshaper transfer curve<br/>3-word LUT idiom, class-6 curve select (×2)"]
N0 --> N1
N2["controls: DRIVE, ADJUST"]
N1 -.-> N2
N3["Biquad tone/EQ<br/>2 Direct-Form-I sections (1 band(s) × 2 ch)<br/>b1,b0,b2,−a1,−a2, make-up"]
N1 --> N3
N4["VOLUME<br/>output level"]
N3 --> N4
N5["REV SEND<br/>to reverb bus"]
N4 --> N5
N6["Output (RETURN to kernel epilogue)"]
N5 --> N6
classDef io fill:#e8eef7,stroke:#33475b,stroke-width:1px,color:#111;
classDef proven fill:#d7f0d7,stroke:#2e7d32,stroke-width:2px,color:#111;
classDef measured fill:#dbe9fb,stroke:#1565c0,stroke-width:1.5px,color:#111;
classDef inferred fill:#fdf0d5,stroke:#b8860b,stroke-width:1.5px,color:#111;
classDef open fill:#eeeeee,stroke:#888,stroke-width:1px,color:#333,stroke-dasharray:5 5;
classDef ctrl fill:#f3e8fb,stroke:#6a1b9a,stroke-width:1px,color:#111;
class N0,N6 io;
class N1 inferred;
class N2,N4,N5 ctrl;
class N3 measured;
Classic-topology match
Most likely textbook topology: Memoryless waveshaper (drive → nonlinearity → level) + optional tone biquad.
gain(drive) → nonlinear transfer → gain(level); OVERDRIVE/EXCITER append a DF-I tone biquad, FUZZ/DISTORTION are the bare (harder) shaper.
Instruction hint: the nonlinearity is a class-6 table lookup (addr8 0x28 = table selector). The class-6 idiom reads a table FROM C-RAM (index in m_tb); it is NOT undumped — C-RAM is populated entirely from dumped ROM (per-preset parameter streams + the boot blob at Sub CPU ROM 0x01E6BE). PROVEN for the identical idiom’s LFO-waveform role: that table is a 24-entry sine UPLOADED BY THE HOST, matching 0.95·2^23·sin(2πk/24+0.1) to 1 LSB — no internal silicon ROM is in the class-6 path. (Open DECODE, not missing data: which exact C-RAM cells hold the waveshaper table and the index arithmetic.) Present in OVERDRIVE, FUZZ and DISTORTION alike. The ACT 0x12/0x13/0x14 cluster, LIVE only in OVERDRIVE and ABSENT from FUZZ, is the post tone BIQUAD (its coeffs [0.019, 0.609, −0.448, 0.750] sit in biquad range, e.g. −a2≈0.448 for a 4 kHz low-pass); it is NOT a polynomial waveshaper (an earlier reading, now retracted — the same cluster is the DF-I biquad state ops 0x13=ld.ta / 0x14=mac.tb).
UI parameters (MEASURED, notes/kn5000-dsp-paramlist.md): DRIVE, ADJUST, VOLUME, REV SEND.
Per-instruction detail: ../disasm/prog33_overdrive.dsm. Confidence legend and method: README.md. Narrative: the MAME development blog, KN5000 effects-DSP series (Parts 78-84). Reference: the project docs site, /effects-dsp/.