DSP:WriteProcessPipe: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
Merry (talk | contribs)
mNo edit summary
Sv (talk | contribs)
Add buffer details
 
(2 intermediate revisions by the same user not shown)
Line 37: Line 37:


One should call [[DSP:SetSemaphore]] with an argument of `0x4000`, then wait on the related [[DSP:RegisterInterruptEvents|interrupt event]].
One should call [[DSP:SetSemaphore]] with an argument of `0x4000`, then wait on the related [[DSP:RegisterInterruptEvents|interrupt event]].
==enum Channel==
{| class="wikitable" border="1"
|-
!  Channel
!  Id
|-
| DEBUG
| 0
|-
| DMA
| 1
|-
| AUDIO
| 2
|-
| BINARY
| 3
|}
==Buffer==
When <code>Channel == AUDIO</code>,
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x0
| 2
| Unknown
|-
| 0x2
| 2
| Change DSP state
|}
When <code>Channel == BINARY</code>,
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x0
| 2
| Codec enum
|-
| 0x2
| 2
| Codec Command
|-
| 0x4
| 4
| Result (0 = Success; 1 = Failed)
|-
| 0x8
| 24
| Command Args
|}
===Command Args===

Latest revision as of 18:01, 2 July 2023

Request

Index Word Description
0 Header code [0x000D0082]
1 Channel
2 Size
3 (Size << 14) | 0x402
4 Buffer

Response

Index Word Description
0 Header code
1 Result code

Usage Notes

One should call DSP:SetSemaphore with an argument of `0x4000`, then wait on the related interrupt event.

enum Channel

Channel Id
DEBUG 0
DMA 1
AUDIO 2
BINARY 3

Buffer

When Channel == AUDIO,

Offset Size Description
0x0 2 Unknown
0x2 2 Change DSP state

When Channel == BINARY,

Offset Size Description
0x0 2 Codec enum
0x2 2 Codec Command
0x4 4 Result (0 = Success; 1 = Failed)
0x8 24 Command Args

Command Args