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
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.