psx.wiki
Log in
Main page
Hardware
Hardware tests
System software
SDKs
File formats
Games
Tools
History
All pages
page
view source
history
View source for SPU Voice After End and Mute
← SPU Voice After End and Mute
You do not have permission to edit this page.
Log in
to edit.
--- title: SPU Voice After End and Mute type: test summary: Uses IRQ9 to find which sound RAM blocks a voice reads after an End+Mute block sends it to its repeat address. category: Hardware tests info: Machine = SCPH-5501 info: Program = SXSPUEND --- ## Overview Voice 0 starts at sample M, whose block 0 has flags 00h and whose block 1 has flags 01h (End+Mute). Before key on, its repeat address is set to R. R is four silent blocks with flags 04h, 00h, 00h and 03h, so it loops on itself. The pitch is 1000h, at which one block takes 28 samples or 21504 cycles, and the envelope is held.[^run] The IRQ address is set in turn to M's first block (M0), to the first three blocks of R (R0, R1, R2) and to its last block (R3), and to an address no block reaches (X). After key on, the probe counts system clock cycles on root counter 2 until SPUSTAT bit 6 sets. It waits up to 400000 cycles and makes two rounds for each address.[^run] See also: - [SPU Voice Flags and Interrupts](/tests/spu-voice-flags-interrupts/) ## Results After the End+Mute block the voice jumps to its repeat address and keeps reading sound RAM from there, block after block. IRQ9 at R0 hit 40972 and 40173 cycles after key on. In the second round R1 hit at 61887 and R2 at 83413. Each hit came one block after the one before.[^run] Table: IRQ9 hits in cycles from key on | Address | Block | Round 1 | Round 2 | | --- | --- | --- | --- | | 4200h | M0 | 2027 | 1828 | | 4220h | R0 | 40972 | 40173 | | 4222h | R1 | 553 | 61887 | | 4224h | R2 | 506 | 83413 | | 4226h | R3 | 835 | 741 | | 4280h | X | none | none | The hits under 1000 cycles at R1, R2 and R3 came before the voice had left M's first block. The address no block reaches never raised IRQ9.[^run] The [SPU Registers and Envelope](/tests/spu-registers-and-envelope/) test found that a voice stopped by End+Mute raises IRQ9 at its repeat address; this probe shows that it goes on to the blocks after it. ## Runs ### Run 5501a-link on 15 October 2026 Raw output: [SXSPUEND.txt](/tests/raw/20261015T1946Z-5501a-link/sxspuend/SXSPUEND.txt) SXSPUEND.txt: ``` SXDEV I_MASK at init AE420100 SXSPUEND start SXSPUEND IRQ M0 4200 round 1: 2027 SXSPUEND IRQ M0 4200 round 2: 1828 SXSPUEND IRQ R0 4220 round 1: 40972 SXSPUEND IRQ R0 4220 round 2: 40173 SXSPUEND IRQ R1 4222 round 1: 553 SXSPUEND IRQ R1 4222 round 2: 61887 SXSPUEND IRQ R2 4224 round 1: 506 SXSPUEND IRQ R2 4224 round 2: 83413 SXSPUEND IRQ R3 4226 round 1: 835 SXSPUEND IRQ R3 4226 round 2: 741 SXSPUEND IRQ X 4280 round 1: none SXSPUEND IRQ X 4280 round 2: none SXSPUEND end PASS ``` ## References [^run]: Hardware test run 20261015T1946Z-5501a-link on the SCPH-5501: [SXSPUEND.txt](/tests/raw/20261015T1946Z-5501a-link/sxspuend/SXSPUEND.txt).