Difference between revisions of "SceHdmi"
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) |
(→Module) |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Module == | == Module == | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Version | + | ! Version !! World !! Privilege |
|- | |- | ||
− | | 1.69 | + | | 1.69-3.65 || Non-secure || Kernel |
− | |||
− | |||
|} | |} | ||
Line 21: | Line 18: | ||
| 1.69-3.60 || [[SceHdmi#SceHdmiForDriver|SceHdmiForDriver]] || Non-secure || Kernel || 0x58A1A1C5 | | 1.69-3.60 || [[SceHdmi#SceHdmiForDriver|SceHdmiForDriver]] || Non-secure || Kernel || 0x58A1A1C5 | ||
|} | |} | ||
+ | |||
+ | == Types == | ||
+ | |||
+ | <source lang="C"> | ||
+ | typedef SceUInt16 SceHdmiScreenMode; // internal VIC, translated to VIC defined in CEA861D in sceHdmiSetupTx | ||
+ | |||
+ | typedef struct SceHdmiSetupTxParam { // size is 0x10 on FW 3.60 | ||
+ | SceHdmiScreenMode screenMode; | ||
+ | SceUInt16 unk_2; | ||
+ | SceUInt16 unk_4; | ||
+ | SceUInt16 unk_6; | ||
+ | SceUInt16 unk_8; | ||
+ | SceUInt16 unk_A; | ||
+ | SceUInt16 unk_C; | ||
+ | SceUInt16 unk_E; | ||
+ | } SceHdmiSetupTxParam; | ||
+ | |||
+ | typedef struct SceHdmiMonitorInfo { | ||
+ | // 0x0 | ||
+ | short manufacturer_id; | ||
+ | short product_code; | ||
+ | int serial_number; | ||
+ | char manufacture_week; | ||
+ | char manufacture_year; | ||
+ | char unk_a; | ||
+ | char name[0x10]; | ||
+ | char pad_1b; | ||
+ | int flags_1c; | ||
+ | // 0x20 | ||
+ | int unk_20; | ||
+ | int flags_24; | ||
+ | char unk_28[0x38]; | ||
+ | // 0x60 | ||
+ | int unk_60; | ||
+ | int unk_64; | ||
+ | short unk_68; | ||
+ | char screen_width; // in centimetre | ||
+ | char screen_height; // in centimetre | ||
+ | int unk_6c; | ||
+ | // 0x70 | ||
+ | char unk_70[0x84]; | ||
+ | } SceHdmiMonitorInfo; // 0xF4 in total | ||
+ | </source> | ||
== SceHdmiForDriver == | == SceHdmiForDriver == | ||
To find: | To find: | ||
+ | <pre> | ||
HdmiSetRgbRangeMode | HdmiSetRgbRangeMode | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
HdmiSetResolution | HdmiSetResolution | ||
− | + | </pre> | |
− | |||
− | |||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 45: | Line 76: | ||
| 3.60 || 0x05174BC2 || | | 3.60 || 0x05174BC2 || | ||
|- | |- | ||
− | | 3.60 || 0x0686FBD6 || | + | | 0.940-3.60 || 0x0686FBD6 || sceHdmiSetHdcpModeForDriver_0 |
+ | |- | ||
+ | | 0.940-3.60 || 0x08AFFB03 || sceHdmiCmdSetAudioMuteForDriver | ||
|- | |- | ||
− | | 0.940-3.60 || | + | | 0.940-3.60 || 0x0F12364A || int sceHdmiRegisterSomeCallback(SceUInt32 slot, (void*)(void) fptr); Sets a callback slot (between 0 and 5) |
|- | |- | ||
− | | | + | | 0.940 || 0x11CDF06E || sceHdmiCmdSetTMDSCtrlForDriver |
|- | |- | ||
− | | 3.60 || 0x291F000B || | + | | 3.60 || 0x291F000B || int sceHdmiCecDisableForDriver(void); |
|- | |- | ||
− | | 3.60 || 0x3126A070 || | + | | 3.60 || 0x3126A070 || Registers a callback |
|- | |- | ||
− | | 3.60 || 0x47894820 || | + | | 3.60 || 0x47894820 || Used to init ? |
|- | |- | ||
− | | 3.60 || 0x47B753EB || | + | | 3.60 || 0x47B753EB || int sceHdmiClearCecInfo(void); |
|- | |- | ||
− | | 3.60 || 0x4C31F5E8 || sceHdmiCecCmdOneTouchPlayForDriver | + | | 3.60 || 0x4C31F5E8 || int sceHdmiCecCmdOneTouchPlayForDriver(SceUInt32 cmd); // cmd can be 0, 1 or 2 |
|- | |- | ||
− | | 3.60 || 0x5A212BB3 || | + | | 0.940-3.60 || 0x5A212BB3 || int sceHdmiSetupTxForDriver(SceHdmiSetupTxParam *pParam); |
+ | |- | ||
+ | | 0.940 || 0x6478E8B6 || not implemented on FW 0.940 | ||
|- | |- | ||
| 3.60 || 0x6D2D10D8 || sceHdmiCecCmdForcedPollingMsgForDriver | | 3.60 || 0x6D2D10D8 || sceHdmiCecCmdForcedPollingMsgForDriver | ||
|- | |- | ||
− | | 0.940-3.60 || 0x7AD0F6C9 || sceHdmiGetChipIdForDriver | + | | 0.940-3.60 || 0x7AD0F6C9 || int sceHdmiGetChipIdForDriver(void *pBuf, SceSize inBufSize, SceSize *pOutBufSize); |
|- | |- | ||
− | | 3.60 || 0x854EEB78 || | + | | 0.940-3.60 || 0x854EEB78 || gets VIC and Audio Config and setups memory |
|- | |- | ||
− | | 3.60 || 0x8EB0FD9C || | + | | 3.60 || 0x8EB0FD9C || int sceHdmiGetMonitorInfo(void *pBuf); Gets 0xF4 bytes of data for the active id (between 0 and 6), data is derived from the EDID. |
|- | |- | ||
− | | 3.60 || 0x93AA48AC || | + | | 3.60 || 0x93AA48AC || int sceHdmiGetCecInfoForDriver(SceHdmiCecInfo *pCecInfo); // SceHdmiCecInfo is 0x20 bytes on FW 3.60 |
|- | |- | ||
− | | 0.940-3.60 || 0x99A3CABE || | + | | 0.940-3.60 || 0x99A3CABE || sceHdmiCmdSetVideoMuteForDriver. Black image functionality. |
|- | |- | ||
| 3.60 || 0xB04F5B6A || | | 3.60 || 0xB04F5B6A || | ||
+ | |- | ||
+ | | 0.940 || 0xB2CD590E || not implemented on FW 0.940 | ||
+ | |- | ||
+ | | 0.940 || 0xCB0D8AF5 || not implemented on FW 0.940 | ||
|- | |- | ||
| 3.60 || 0xD929E4E5 || | | 3.60 || 0xD929E4E5 || | ||
|- | |- | ||
− | | | + | | 0.940 || 0xD9D29A67 || not implemented on FW 0.940 |
|- | |- | ||
− | | 0.940-3.60 || 0xE66D5A4D || | + | | 0.940-3.60 || 0xE331EC90 || int sceHdmiUnregisterSomeCallback(SceUInt32 slot); Clear callback slot (between 0 and 5) |
+ | |- | ||
+ | | 0.940-3.60 || 0xE66D5A4D || sceHdmiCmdSetAvMuteForDriver (temp name was sceHdmiSetTxMuteForDriver) | ||
|- | |- | ||
| 3.60 || 0xEA486A37 || | | 3.60 || 0xEA486A37 || | ||
|- | |- | ||
− | | 3.60 || 0xF20529CC || | + | | 3.60 || 0xF20529CC || int sceHdmiCmdSetEdidMode(SceBool mode); // mode: 0: Pass, 1: On |
+ | |- | ||
+ | | 3.60 || 0xFA30ACFC || int sceHdmiCecEnableForDriver(void); | ||
|- | |- | ||
− | | 3.60 || | + | | 0.940-3.60 || 0xFAB3A2E9 || sceHdmiSetHdcpModeForDriver_1 |
|- | |- | ||
− | | 0.940 | + | | 0.940 || 0xFBE18ADE || not implemented on FW 0.940 |
|- | |- | ||
| 3.60 || 0xFF5546D8 || | | 3.60 || 0xFF5546D8 || |
Revision as of 01:19, 30 September 2020
Module
Version | World | Privilege |
---|---|---|
1.69-3.65 | Non-secure | Kernel |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69-3.60 | SceHdmiForDriver | Non-secure | Kernel | 0x58A1A1C5 |
Types
typedef SceUInt16 SceHdmiScreenMode; // internal VIC, translated to VIC defined in CEA861D in sceHdmiSetupTx
typedef struct SceHdmiSetupTxParam { // size is 0x10 on FW 3.60
SceHdmiScreenMode screenMode;
SceUInt16 unk_2;
SceUInt16 unk_4;
SceUInt16 unk_6;
SceUInt16 unk_8;
SceUInt16 unk_A;
SceUInt16 unk_C;
SceUInt16 unk_E;
} SceHdmiSetupTxParam;
typedef struct SceHdmiMonitorInfo {
// 0x0
short manufacturer_id;
short product_code;
int serial_number;
char manufacture_week;
char manufacture_year;
char unk_a;
char name[0x10];
char pad_1b;
int flags_1c;
// 0x20
int unk_20;
int flags_24;
char unk_28[0x38];
// 0x60
int unk_60;
int unk_64;
short unk_68;
char screen_width; // in centimetre
char screen_height; // in centimetre
int unk_6c;
// 0x70
char unk_70[0x84];
} SceHdmiMonitorInfo; // 0xF4 in total
SceHdmiForDriver
To find:
HdmiSetRgbRangeMode HdmiSetResolution
Version | NID | Name |
---|---|---|
3.60 | 0x05174BC2 | |
0.940-3.60 | 0x0686FBD6 | sceHdmiSetHdcpModeForDriver_0 |
0.940-3.60 | 0x08AFFB03 | sceHdmiCmdSetAudioMuteForDriver |
0.940-3.60 | 0x0F12364A | int sceHdmiRegisterSomeCallback(SceUInt32 slot, (void*)(void) fptr); Sets a callback slot (between 0 and 5) |
0.940 | 0x11CDF06E | sceHdmiCmdSetTMDSCtrlForDriver |
3.60 | 0x291F000B | int sceHdmiCecDisableForDriver(void); |
3.60 | 0x3126A070 | Registers a callback |
3.60 | 0x47894820 | Used to init ? |
3.60 | 0x47B753EB | int sceHdmiClearCecInfo(void); |
3.60 | 0x4C31F5E8 | int sceHdmiCecCmdOneTouchPlayForDriver(SceUInt32 cmd); // cmd can be 0, 1 or 2 |
0.940-3.60 | 0x5A212BB3 | int sceHdmiSetupTxForDriver(SceHdmiSetupTxParam *pParam); |
0.940 | 0x6478E8B6 | not implemented on FW 0.940 |
3.60 | 0x6D2D10D8 | sceHdmiCecCmdForcedPollingMsgForDriver |
0.940-3.60 | 0x7AD0F6C9 | int sceHdmiGetChipIdForDriver(void *pBuf, SceSize inBufSize, SceSize *pOutBufSize); |
0.940-3.60 | 0x854EEB78 | gets VIC and Audio Config and setups memory |
3.60 | 0x8EB0FD9C | int sceHdmiGetMonitorInfo(void *pBuf); Gets 0xF4 bytes of data for the active id (between 0 and 6), data is derived from the EDID. |
3.60 | 0x93AA48AC | int sceHdmiGetCecInfoForDriver(SceHdmiCecInfo *pCecInfo); // SceHdmiCecInfo is 0x20 bytes on FW 3.60 |
0.940-3.60 | 0x99A3CABE | sceHdmiCmdSetVideoMuteForDriver. Black image functionality. |
3.60 | 0xB04F5B6A | |
0.940 | 0xB2CD590E | not implemented on FW 0.940 |
0.940 | 0xCB0D8AF5 | not implemented on FW 0.940 |
3.60 | 0xD929E4E5 | |
0.940 | 0xD9D29A67 | not implemented on FW 0.940 |
0.940-3.60 | 0xE331EC90 | int sceHdmiUnregisterSomeCallback(SceUInt32 slot); Clear callback slot (between 0 and 5) |
0.940-3.60 | 0xE66D5A4D | sceHdmiCmdSetAvMuteForDriver (temp name was sceHdmiSetTxMuteForDriver) |
3.60 | 0xEA486A37 | |
3.60 | 0xF20529CC | int sceHdmiCmdSetEdidMode(SceBool mode); // mode: 0: Pass, 1: On |
3.60 | 0xFA30ACFC | int sceHdmiCecEnableForDriver(void); |
0.940-3.60 | 0xFAB3A2E9 | sceHdmiSetHdcpModeForDriver_1 |
0.940 | 0xFBE18ADE | not implemented on FW 0.940 |
3.60 | 0xFF5546D8 |