1,414 bytes added
, 22:00, 21 August 2013
=0x1EC03400=
The channel registers are based at 0x1EC03400(process virtual address). There's 0x20-bytes total for each channel slot, thus the base-address for a channel's slot is determined with: 0x1EC03400 + (channel_index*0x20). The below offsets are relative to these channel register slots.
{| class="wikitable" border="1"
! Relative offset
! Size
! Description
|-
| 0x0
| 2
| REG_CSNDCHANX_CNT
|-
| 0x2
| 2
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes this value here: 0 - (cmdword[2]>>16).
|-
| 0x4
| 2
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes value 0 here.
|-
| 0x6
| 2
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes value 0 here.
|-
| 0x8
| 2
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes this value here: (u16)cmdword[4].
|-
| 0xA
| 2
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes this value here: cmdword[4]>>16.
|-
| 0xC
| 4
| This is the audio data physical address.
|-
| 0x10
| 4
| This is the audio data total byte-size. The CSND module masks the size loaded from the Type0 command-data with value 0x7FFFFFF, which is then used when writing these registers.
|-
| 0x14
| 4
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes this value here: cmdword[6].
|-
| 0x18
| 4
| In some cases the CSND module may write value 0 here.
|-
| 0x1C
| 4
| In some cases the CSND module may write value 0 here.
|}