Difference between revisions of "APU"

From xboxdevwiki
Jump to: navigation, search
(Global Processor (GP))
(Encode Processor (EP))
Line 65: Line 65:
 
The EP encodes the final AC3 stream for SPDIF. {{FIXME|reason=It might do more than just that; what does it do in analog mode for example?}}
 
The EP encodes the final AC3 stream for SPDIF. {{FIXME|reason=It might do more than just that; what does it do in analog mode for example?}}
 
It is not used during the [[Boot Animation]].
 
It is not used during the [[Boot Animation]].
 +
 +
=== Memory map ===
 +
 +
=== Related APU memory ===
  
 
* EPS = EP Scratch (?)
 
* EPS = EP Scratch (?)

Revision as of 16:10, 26 June 2017

The MCPX contains an APU (Audio Processing Unit).

  • SSL = Stream Segment List
  • SGE = Scatter Gather Entry
  • PRD = Physical Resource Descriptor (Same thing as SGE?!)

Voice Processor (VP)

A powerful voice processor. There can be up to 256 voices[citation needed] and 64[citation needed] of those can be 3D.

Per-voice settings:

There are 32 bins which these voices will be mixed into.

Memory sections

  • VPV = VP Voices
  • VPHT = VP HRTF Target
  • VPHC = VP HRTF Current
  • VPSGE = VP SGEs
  • VPSSL = VP SSLs

Voice lists

The voices are kept in a single-linked list. There are 3 voice lists:

  • 2D
  • 3D
  • MP (Multipass?)

Voice structure

This is 0x80 bytes

Pitch calculation

The 16 bit signed pitch value (p) can be converted to and from a unsigned frequency in Hz (f) using the following formulas:

p = 4096 * log2(f / 48000)
f = pow2(p / 4096) * 48000

Global Processor (GP)

The GP runs all enabled sound effects on the voice bins. DirectSound allows to load custom DSP code for these effects.

GP seems to run at 160 MHz

Memory map

Related APU memory

  • GPS = GP Scratch (?)
  • GPF = GP FIFO

Encode Processor (EP)

The EP encodes the final AC3 stream for SPDIF. [FIXME] It is not used during the Boot Animation.

Memory map

Related APU memory

  • EPS = EP Scratch (?)
  • EPF = EP FIFO

Related