CSND Registers

From 3dbrew
Revision as of 23:00, 21 August 2013 by Yellows8 (talk | contribs) (Created page with "=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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

Relative offset Size Description
0x0 2 REG_CSNDCHANX_CNT
0x2 2 For Type0 Cmd 0xE, CSND module writes this value here: 0 - (cmdword[2]>>16).
0x4 2 For Type0 Cmd 0xE, CSND module writes value 0 here.
0x6 2 For Type0 Cmd 0xE, CSND module writes value 0 here.
0x8 2 For Type0 Cmd 0xE, CSND module writes this value here: (u16)cmdword[4].
0xA 2 For Type0 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 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.