Difference between revisions of "SceCodec"

From Vita Development Wiki
Jump to navigation Jump to search
(Add module description, add SceCodec library exports, remove incorrect information about SceCodec library, add libraries NID ranges)
m (→‎Module: Typo)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Driver for the Audio CODEC chip. The original models use a Wolfson Microelectronics WM1803 while late Slim models (a USS-1002 unit from October 2015) use a Conexant CX20902.  
+
Driver for the PS Vita Audio CODEC chip.
 +
 
 +
The original PS Vita models and all PSTV models use a Wolfson Microelectronics WM1803 while late PS Vita Slim models (e.g. a USS-1002 unit from October 2015) use a Conexant CX20902.
 +
 
 +
The WM1803 is potentially derived from the [https://statics.cirrus.com/pubs/proDatasheet/WM8962B_Rev4.3.pdf WM8962B] as the pinout and registers seem to match.
  
 
== Module ==
 
== Module ==
Line 6: Line 10:
  
 
The module can be found in two versions at the following locations:
 
The module can be found in two versions at the following locations:
* <code>os0:kd/codec.skprx</code> / <code>bootimage:codec.skprx</code> for the WM chip
+
* <code>os0:kd/codec.skprx</code> / <code>bootimage:codec.skprx</code> for the WM chip.
* <code>bootimage:codec_cx.skprx</code> for the Conexant chip
+
* <code>bootimage:codec_cx.skprx</code> for the Conexant chip.
 
 
PSTV (Dolce) always uses the former.
 
  
PSVita only uses the latter if [[SceSysStateMgr|SysStateMgr]]'s <code>AU_CODEC_IC_CONEXANT</code> check evaluates to true.
+
PSTV always uses the former whilst PS Vita uses the latter if [[SceSysStateMgr]]'s <code>AU_CODEC_IC_CONEXANT</code> check evaluates to true.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Name !! Version !! World !! Privilege  
+
! Filename !! Version !! World !! Privilege  
 
|-
 
|-
| <code>codec.skprx</code> || 0.931-3.65 || Non-secure || Kernel  
+
| <code>codec.skprx</code> || 0.931-3.65 || Non-secure || Kernel
 
|-
 
|-
 
| <code>codec_cx.skprx</code> || 3.50-3.60 || Non-secure || Kernel
 
| <code>codec_cx.skprx</code> || 3.50-3.60 || Non-secure || Kernel
Line 32: Line 34:
 
| 0.931-3.60 || [[SceCodec#SceCodecForDriver|SceCodecForDriver]] || Non-secure || Kernel || 0x7697DFB4
 
| 0.931-3.60 || [[SceCodec#SceCodecForDriver|SceCodecForDriver]] || Non-secure || Kernel || 0x7697DFB4
 
|-
 
|-
| 0.931-1.06 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || Not present
+
| 0.931-1.06 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || not present
 
|-
 
|-
 
| 1.50-1.69 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || 0xD0A994AE
 
| 1.50-1.69 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || 0xD0A994AE
 
|-
 
|-
| 2.00+ || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || Removed
+
| 1.80-3.74 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || not present. Removed.
 
|}
 
|}
  
 
== SceCodecForDriver ==
 
== SceCodecForDriver ==
  
          SceCodecForDriver_23BF8884: 0x23BF8884
+
=== SceCodecForDriver_22C89CBA ===
          SceCodecForDriver_41CFFE48: 0x41CFFE48
+
{| class="wikitable"
          SceCodecForDriver_4FA36937: 0x4FA36937
+
|-
          SceCodecForDriver_762BF716: 0x762BF716
+
! Version !! NID
          sceCodecSetVolumeForDriver: 0x8932F886
+
|-
          SceCodecForDriver_C1DB7BAF: 0xC1DB7BAF
+
| 1.80 || 0x22C89CBA
          SceCodecForDriver_CCDE1B04: 0xCCDE1B04
+
|-
          SceCodecForDriver_CF398D8A: 0xCF398D8A
+
| 3.60 || not present
          SceCodecForDriver_E483B663: 0xE483B663
+
|}
 +
 
 +
=== SceCodecForDriver_B21F430C ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80 || 0xB21F430C
 +
|-
 +
| 3.60 || not present
 +
|}
 +
 
 +
=== SceCodecForDriver_EA43A61F ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80 || 0xEA43A61F
 +
|-
 +
| 3.60 || not present
 +
|}
 +
 
 +
=== SceCodecForDriver_F89C5615 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80 || 0xF89C5615
 +
|-
 +
| 3.60 || not present
 +
|}
 +
 
 +
=== sceCodecSetVolumeForDriver ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0x8932F886
 +
|}
 +
 
 +
=== SceCodecForDriver_CCDE1B04 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0xCCDE1B04
 +
|}
 +
 
 +
=== SceCodecForDriver_23BF8884 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0x23BF8884
 +
|}
 +
 
 +
=== SceCodecForDriver_41CFFE48 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0x41CFFE48
 +
|}
 +
 
 +
=== SceCodecForDriver_4FA36937 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0x4FA36937
 +
|}
 +
 
 +
=== SceCodecForDriver_762BF716 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0x762BF716
 +
|}
 +
 
 +
=== SceCodecForDriver_C1DB7BAF ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0xC1DB7BAF
 +
|}
 +
 
 +
=== SceCodecForDriver_CF398D8A ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0xCF398D8A
 +
|}
 +
 
 +
=== SceCodecForDriver_E483B663 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 1.80-3.60 || 0xE483B663
 +
|}
  
 
== SceCodec ==
 
== SceCodec ==
Line 59: Line 163:
 
|-
 
|-
 
| 1.50-1.69 || 0x8FA4193D
 
| 1.50-1.69 || 0x8FA4193D
 +
|-
 +
| 1.80-3.74 || not present
 
|}
 
|}
  
Alias of <code>SceCodecForDriver_CCDE1B04</code>.
+
Alias of [[#SceCodecForDriver_CCDE1B04]].
 
 
  
 +
[[Category:ARM]]
 +
[[Category:Kernel]]
 
[[Category:Modules]]
 
[[Category:Modules]]
[[Category:Kernel]]
+
[[Category:Library]]

Latest revision as of 07:19, 24 May 2023

Driver for the PS Vita Audio CODEC chip.

The original PS Vita models and all PSTV models use a Wolfson Microelectronics WM1803 while late PS Vita Slim models (e.g. a USS-1002 unit from October 2015) use a Conexant CX20902.

The WM1803 is potentially derived from the WM8962B as the pinout and registers seem to match.

Module

This module only exists in Non-Secure world.

The module can be found in two versions at the following locations:

  • os0:kd/codec.skprx / bootimage:codec.skprx for the WM chip.
  • bootimage:codec_cx.skprx for the Conexant chip.

PSTV always uses the former whilst PS Vita uses the latter if SceSysStateMgr's AU_CODEC_IC_CONEXANT check evaluates to true.

Filename Version World Privilege
codec.skprx 0.931-3.65 Non-secure Kernel
codec_cx.skprx 3.50-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.931-3.60 SceCodecForDriver Non-secure Kernel 0x7697DFB4
0.931-1.06 SceCodec Non-secure User not present
1.50-1.69 SceCodec Non-secure User 0xD0A994AE
1.80-3.74 SceCodec Non-secure User not present. Removed.

SceCodecForDriver

SceCodecForDriver_22C89CBA

Version NID
1.80 0x22C89CBA
3.60 not present

SceCodecForDriver_B21F430C

Version NID
1.80 0xB21F430C
3.60 not present

SceCodecForDriver_EA43A61F

Version NID
1.80 0xEA43A61F
3.60 not present

SceCodecForDriver_F89C5615

Version NID
1.80 0xF89C5615
3.60 not present

sceCodecSetVolumeForDriver

Version NID
1.80-3.60 0x8932F886

SceCodecForDriver_CCDE1B04

Version NID
1.80-3.60 0xCCDE1B04

SceCodecForDriver_23BF8884

Version NID
1.80-3.60 0x23BF8884

SceCodecForDriver_41CFFE48

Version NID
1.80-3.60 0x41CFFE48

SceCodecForDriver_4FA36937

Version NID
1.80-3.60 0x4FA36937

SceCodecForDriver_762BF716

Version NID
1.80-3.60 0x762BF716

SceCodecForDriver_C1DB7BAF

Version NID
1.80-3.60 0xC1DB7BAF

SceCodecForDriver_CF398D8A

Version NID
1.80-3.60 0xCF398D8A

SceCodecForDriver_E483B663

Version NID
1.80-3.60 0xE483B663

SceCodec

SceCodec_8FA4193D

Version NID
1.50-1.69 0x8FA4193D
1.80-3.74 not present

Alias of #SceCodecForDriver_CCDE1B04.