aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/include/psxspu.h
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2022-10-27 16:55:08 +0200
committerspicyjpeg <thatspicyjpeg@gmail.com>2022-10-27 16:55:08 +0200
commitf6c41f3783c4fce49a9899b710ebb50ba9f647ab (patch)
tree7133d4e05008cb11c05995d3c0ce7d938258cd51 /libpsn00b/include/psxspu.h
parent4dbf47f129a55428b90df2805228fbd481e1d117 (diff)
downloadpsn00bsdk-f6c41f3783c4fce49a9899b710ebb50ba9f647ab.tar.gz
Refactor sound examples, add new spustream example
Diffstat (limited to 'libpsn00b/include/psxspu.h')
-rw-r--r--libpsn00b/include/psxspu.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/libpsn00b/include/psxspu.h b/libpsn00b/include/psxspu.h
index 05737f7..cdc3ac7 100644
--- a/libpsn00b/include/psxspu.h
+++ b/libpsn00b/include/psxspu.h
@@ -111,11 +111,19 @@ typedef struct _SpuCommonAttr {
(SPU_CH_FREQ(ch) = (pitch))
#define SpuSetVoiceStartAddr(ch, addr) \
(SPU_CH_ADDR(ch) = getSPUAddr(addr))
-#define SpuSetVoiceADSR(ch, ar, dr, sr, rr, sl) \
- (SPU_CH_ADSR(ch) = getSPUADSR(ar, dr, sr, rr, sl))
+#define SpuSetVoiceADSR(ch, ar, dr, sr, rr, sl) ( \
+ SPU_CH_ADSR1(ch) = (sl) | ((dr) << 4) | ((ar) << 8), \
+ SPU_CH_ADSR2(ch) = (rr) | ((sr) << 6) | (1 << 14) \
+)
#define SpuSetKey(enable, voice_bit) \
- ((enable) ? (SPU_KEY_ON = (voice_bit)) : (SPU_KEY_OFF = (voice_bit)))
+ ((enable) ? ( \
+ SPU_KEY_ON1 = (uint16_t) (voice_bit), \
+ SPU_KEY_ON2 = (uint16_t) ((voice_bit) >> 16) \
+ ) : ( \
+ SPU_KEY_OFF1 = (uint16_t) (voice_bit), \
+ SPU_KEY_OFF2 = (uint16_t) ((voice_bit) >> 16) \
+ ))
/* Public API */