DISTORTION — signal-flow flowchart
DISTORTION — signal-flow flowchart
Image rep algo 32 · slots 32 · unit 0 (I-RAM load 84) · family distortion · confidence high.
distortion: AGC waveshaper, curve A
42 words, 6 class-A coefficient multiplies (4 named), 0 instructions still opaque, 13 of 42 not yet decoded. Landmarks detected: 2 waveshaper LUT selector(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["VOLUME<br/>output level"]
N1 --> N3
N4["REV SEND<br/>to reverb bus"]
N3 --> N4
N5["Output (RETURN to kernel epilogue)"]
N4 --> N5
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,N5 io;
class N1 inferred;
class N2,N3,N4 ctrl;
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/prog32_distortion.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/.