diff options
| author | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-08-11 14:23:05 +0200 |
|---|---|---|
| committer | spicyjpeg <thatspicyjpeg@gmail.com> | 2022-08-11 14:23:05 +0200 |
| commit | 7abb3b78727c8d4672197951e62b1c5916b3a54a (patch) | |
| tree | 987fb4c0cc83a3104fb8f1b94aa03ab7b9f67a73 /libpsn00b | |
| parent | a1081f296bca4f718cf31e5b6a262661d132e9e4 (diff) | |
| download | psn00bsdk-7abb3b78727c8d4672197951e62b1c5916b3a54a.tar.gz | |
Clean up and add audio file to sound/spustream example
Diffstat (limited to 'libpsn00b')
| -rw-r--r-- | libpsn00b/psxspu/common.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/libpsn00b/psxspu/common.c b/libpsn00b/psxspu/common.c index c1e8cab..55a3dba 100644 --- a/libpsn00b/psxspu/common.c +++ b/libpsn00b/psxspu/common.c @@ -46,13 +46,6 @@ void SpuInit(void) { SPU_EXT_VOL_L = 0; SPU_EXT_VOL_R = 0; - for (int i = 0; i < 24; i++) { - SPU_CH_VOL_L(i) = 0; - SPU_CH_VOL_R(i) = 0; - SPU_CH_FREQ(i) = 0; - SPU_CH_ADDR(i) = 0; - } - DMA_DPCR |= 0x000b0000; // Enable DMA4 DMA_CHCR(4) = 0x00000201; // Stop DMA4 @@ -68,8 +61,18 @@ void SpuInit(void) { for (int i = 7; i; i--) SPU_DATA = 0x0000; + // "Play" the dummy block on all channels. This will reset the start + // address and ADSR envelope status of each channel. + for (int i = 0; i < 24; i++) { + SPU_CH_VOL_L(i) = 0; + SPU_CH_VOL_R(i) = 0; + SPU_CH_FREQ(i) = 0x1000; + SPU_CH_ADDR(i) = WRITABLE_AREA_ADDR; + } + // Sony's implementation leaves everything muted, however it makes sense to // turn up at least the master and CD audio volume by default. + SPU_KEY_ON = 0x00ffffff; SPU_MASTER_VOL_L = 0x3fff; SPU_MASTER_VOL_R = 0x3fff; SPU_CD_VOL_L = 0x3fff; |
