S-DSP
The S-DSP is the digital signal processor. It produces audio for the DAC and is controlled by the S-SMP. It is clocked by X2.
It has 128 registers (DSPRAM) that can be manipulated by the S-SMP, some of which serve no hard-wired purpose and can be used as general-purpose RAM. Registers with a ∴ before their name are written to by the S-DSP itself during active processing. Here are some of 128:
Address | Register |
---|---|
00 | VOL (L) |
01 | VOL (R) |
02 | P (L) |
03 | P (H) |
04 | SRCN |
05 | ADSR (1) |
06 | ADSR (2) |
07 | GAIN |
08 | ∴ENVX |
09 | ∴OUTX |
0C | MVOL (L) |
1C | MVOL (R) |
2C | EVOL (L) |
3C | EVOL (R) |
4C | KON |
5C | KOF |
6C | FLG |
7C | ∴ENDX |
0D | EFB |
1D | --- |
2D | PMON |
3D | NON |
4D | EON |
5D | DIR |
6D | ESA |
7D | EDL |
xE | --- |
Many of the 128 registers appear to not be used by the S-DSP directly, but get copied to internal registers the S-SMP does not have access to. The highest sound frequency that the S-DSP can produce is 16kHz, because of the 32kHz rate that sample-points are output. [1]
The arrowhead for pin 47 on the jwdonal schematic seems to be pointing the wrong way.
References
- https://problemkaputt.de/fullsnes.htm#snesapudspbrrpitch
- page 3-7-1 of Book I of the official Super Nintendo development manual
- subparagraph 22.5.2 on page 2-22-1 of Book I, lbid.