ROOM REVERB 1 — signal-flow flowchart

Image rep algo 16 · slots 16,17,18,19,20,21,22,23,24,25,26,27 · unit 1 (I-RAM load 200) · family reverb · confidence SOLVED.

reverb tank: all-pass diffuser ladders of 5 and 4 stages + damping (algorithm decoded to the bit; the per-word roles of the 6-word core are narrowed to two surviving assignments); the ONLY unit-1 image, shared by the 12 reverb presets algos 16-27

133 words, 33 class-A coefficient multiplies (33 named), 0 instructions still opaque, 9 of 133 not yet decoded. Landmarks detected: 4 C-format immediate load(s), 13 DRAM read/write word(s), 9 all-pass marker(s).

flowchart TD
    N0["Stereo input (L / R)"]
    N1["Input scaling triple<br/>C-RAM[0x90..92] = 0.250 0.500 0.500"]
    N0 --> N1
    N2["Pre-delay + delay buffers (external DRAM)<br/>13 read/write word(s); lengths tiled in the param stream"]
    N1 --> N2
    N3["controls: REVERB TIME, PRE DELAY"]
    N2 -.-> N3
    N4["Damping one-pole filter #1<br/>C-RAM[0x93..95] (op 0x76)"]
    N2 --> N4
    N5["Diffuser ladder A &mdash; 5 all-pass<br/>C-RAM[0x98..9C] descending gains 0.75&hellip;0.40<br/>one-multiplier all-pass, software-pipelined"]
    N4 --> N5
    N6["REVERB TIME sets the ladder gains"]
    N5 -.-> N6
    N7["Damping one-pole filter #2<br/>C-RAM[0x9E..A0] (op 0x76)"]
    N5 --> N7
    N8["Diffuser ladder B &mdash; 4 all-pass<br/>C-RAM[0xA1..A4] descending gains"]
    N7 --> N8
    N9["Damping one-pole filter #3<br/>C-RAM[0xA6..A8] (op 0x76)"]
    N8 --> N9
    N10["Stereo output tails L / R<br/>C-RAM[0xA9..B0] (op 0x66 / ER.LEVEL)"]
    N9 --> N10
    N11["controls: HIGH DAMP GAIN, ER.LEVEL, VOLUME"]
    N10 -.-> N11
    N12["Output (the only unit-1 image; shared by all 12 reverb presets)"]
    N10 --> N12

    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,N12 io;
    class N1,N4,N5,N7,N8,N9,N10 measured;
    class N2 inferred;
    class N3,N6,N11 ctrl;

Classic-topology match

Most likely textbook topology: All-pass diffuser ladder + comb (Schroeder/Moorer reverb tank).

A chain of all-pass sections (single coefficient/stage on the KN5000) over the external delay-DRAM — the most DRAM-heavy program; ER taps at 6000/12000/18000/24000 samples.

Instruction hint: the diffuser feed/feedback gains are class-A MACs on delay-read taps; the all-pass z⁻¹ updates are the bqp pair (ACT 0x0D/0x0E).

UI parameters (MEASURED, notes/kn5000-dsp-paramlist.md): REVERB TIME, PRE DELAY, HIGH DAMP GAIN, ER.LEVEL, VOLUME.

Per-instruction detail: ../disasm/prog16_room_reverb_1.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/.