Changes

273 bytes added ,  20:24, 25 December 2020
PlaySoundDirectly: Plays the sound directly from the info in the CSND shared memory.
Line 1: Line 1:  
[[Category:Services]]
 
[[Category:Services]]
 +
 +
The CSND service talks to the DSP using the DSP FIFO to negotiate what CSND channels are allocated to the DSP, and this seems to be channels 0-7 (usually). The rest are dedicated to CSND services.
 +
 
= CSND service "csnd:SND" =
 
= CSND service "csnd:SND" =
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 10: Line 13:  
|-
 
|-
 
| 0x00020000
 
| 0x00020000
| Shutdown
+
| [[CSND:Shutdown|Shutdown]]
 
|-
 
|-
 
| 0x00030040
 
| 0x00030040
| ExecuteType0Commands
+
| [[CSND:ExecuteCommands|ExecuteCommands]]
 
|-
 
|-
 
| 0x00040080
 
| 0x00040080
| ExecuteType1Commands
+
| [[CSND:PlaySoundDirectly|PlaySoundDirectly]]
 
|-
 
|-
 
| 0x00050000
 
| 0x00050000
| AcquireSoundChannels. This function tries to acquire sound channels. Response cmdbuf[2] holds a bitmask to which channels were allocated to this process.
+
| [[CSND:AcquireSoundChannels|AcquireSoundChannels]]
 
|-
 
|-
 
| 0x00060000
 
| 0x00060000
| ReleaseSoundChannels.
+
| [[CSND:ReleaseSoundChannels|ReleaseSoundChannels]]
 
|-
 
|-
 
| 0x00070000
 
| 0x00070000
| AcquireUnknown. This function tries to acquire unknown channels (16).
+
| [[CSND:AcquireCapUnit|AcquireCapUnit]]
 
|-
 
|-
 
| 0x00080040
 
| 0x00080040
| ReleaseUnknown. This function tries to release the channels corresponding to the given bitmask in cmdbuf[1].
+
| [[CSND:ReleaseCapUnit|ReleaseCapUnit]]
 
|-
 
|-
 
| 0x00090082
 
| 0x00090082
| FlushDCache
+
| [[CSND:FlushDataCache|FlushDataCache]]
 
|-
 
|-
 
| 0x000A0082
 
| 0x000A0082
| StoreDCache
+
| [[CSND:StoreDataCache|StoreDataCache]]
 
|-
 
|-
 
| 0x000B0082
 
| 0x000B0082
| InvalidateDCache
+
| [[CSND:InvalidateDataCache|InvalidateDataCache]]
 
|-
 
|-
 
| 0x000C0000
 
| 0x000C0000
|  
+
| [[CSND:Reset|Reset]]
 
|}
 
|}
 +
 +
A maximum of 4 service sessions can be opened at the same time for this service.
    
For cache operations addresses must be in 0x14000000-0x1C000000 range. Starting with [[8.0.0-18]] addresses in the range 0x30000000-0x40000000 are also allowed.
 
For cache operations addresses must be in 0x14000000-0x1C000000 range. Starting with [[8.0.0-18]] addresses in the range 0x30000000-0x40000000 are also allowed.
    
This service is normally used for playing [[BCWAV|CWAVs]]. The audio data must be located in the 0x14000000 virtual memory region, since CSND requires the physical address for playing the audio.
 
This service is normally used for playing [[BCWAV|CWAVs]]. The audio data must be located in the 0x14000000 virtual memory region, since CSND requires the physical address for playing the audio.
24

edits