SceCodec: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
m (→‎Module: Typo)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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 4: 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>
* <code>os0:kd/codec.skprx</code> / <code>bootimage:codec.skprx</code> for the WM chip.
* <code>bootimage:codec_cx.skprx</code>
* <code>bootimage:codec_cx.skprx</code> for the Conexant chip.


PSTV (Dolce) always uses the former.
PSTV always uses the former whilst PS Vita uses the latter if [[SceSysStateMgr]]'s <code>AU_CODEC_IC_CONEXANT</code> check evaluates to true.
 
PSVita only uses the latter if [[SceSysStateMgr|SysStateMgr]]'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 28: Line 32:
! Version !! Name !! World !! Visibility !! NID
! Version !! Name !! World !! Visibility !! NID
|-
|-
| 1.69-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
|-
|-
| 1.69 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || 0xD0A994AE
| 1.50-1.69 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || 0xD0A994AE
|-
|-
| 3.60 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || not present
| 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 ==


Present on 1.69. Not present on 3.60+ (functions were certainly moved to [[SceCodecEngine]], [[SceCodecEngineWrapper]] or [[SceCodecEnginePerf]]).
=== SceCodec_8FA4193D ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.50-1.69 || 0x8FA4193D
|-
| 1.80-3.74 || not present
|}


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.