An experimental Atari 800 game disassembly using Claude Code and Opus 4.5 conducted by Benj Edwards
Salmon Run is a 1982 Atari 800 game where you play as a salmon swimming upstream to spawn. You dodge rocks, waterfalls, and predators like bears and fishermen while controlling your speed and leaping from the water. The game features distinctive water sound effects generated by the POKEY chip that go beyond what seems like it should be possible on this relatively primitive machine.
For more background on the game and its creator, see this Ars Technica article.
After completely disassembling Salmon Run (4,443 lines of 6502 assembly), the disassembly revealed something interesting: you can run the sound code without the graphics, but it's not exactly the same.
The Display List Interrupt (DLI) - the code that runs during screen drawing - also handles:
The code path through the DLI varies based on game state, which means the time between sound updates changes dynamically. When you move the fish, the sound texture shifts. When waves splash, the timing changes.
| Register | Value | Description |
|---|---|---|
| AUDCTL | $00 | Standard 64kHz poly clock |
| AUDC1 | $A4 | Pure tone (distortion $A), volume 4 |
| AUDF1 | RANDOM & $1F | Random 0-31, updated via DLI |
| AUDC2 | $A0 | Silent (volume 0) during idle |