SceCodec: Difference between revisions
Jump to navigation
Jump to search
(→Module) |
(Rework how hardware is presented) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Driver for the PS Vita Audio CODEC | |||
== Hardware == | |||
=== WM180xx === | |||
Fat (and PSTV?) units use the Wolfson Microelectronics WM1803E as Audio CODEC. | |||
Early Slim units (USS-1001) are fitted with a WM1804E instead, but both ICs have the same behavior. | |||
The driver doesn't differentiate between WM1803 and WM1804. | |||
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. | |||
=== CX20902 === | |||
Late Slim models (e.g., USS-1002 from October 2015) use the Conexant CX20902 as Audio CODEC. | |||
== Module == | == Module == | ||
This module only exists in Non-Secure world. | |||
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>bootimage:codec_cx.skprx</code> for the Conexant chip. | |||
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" | ||
|- | |- | ||
! Version !! World !! Privilege | ! Filename !! Version !! World !! Privilege | ||
|- | |||
| <code>codec.skprx</code> || 0.931-3.65 || Non-secure || Kernel | |||
|- | |- | ||
| | | <code>codec_cx.skprx</code> || 3.50-3.60 || Non-secure || Kernel | ||
|} | |} | ||
Line 16: | Line 42: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
| | | 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. | | 1.80-3.74 || [[SceCodec#SceCodec|SceCodec]] || Non-secure || User || not present. Removed. | ||
|} | |} | ||
== SceCodecForDriver == | == SceCodecForDriver == | ||
=== SceCodecForDriver_22C89CBA === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 1.80 || 0x22C89CBA | |||
|- | |||
| 3.60 || not present | |||
|} | |||
=== 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 == | ||
=== 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: | [[Category:Library]] |
Latest revision as of 12:32, 10 November 2024
Driver for the PS Vita Audio CODEC
Hardware
WM180xx
Fat (and PSTV?) units use the Wolfson Microelectronics WM1803E as Audio CODEC. Early Slim units (USS-1001) are fitted with a WM1804E instead, but both ICs have the same behavior. The driver doesn't differentiate between WM1803 and WM1804.
The WM1803 is potentially derived from the WM8962B as the pinout and registers seem to match.
CX20902
Late Slim models (e.g., USS-1002 from October 2015) use the Conexant CX20902 as Audio CODEC.
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.