SceHdmi

From Vita Development Wiki
Revision as of 16:21, 10 May 2020 by Cuevavirus (talk | contribs) (→‎Types: Add missing field in SceHdmiSetupTxParam)
Jump to navigation Jump to search

Module

Known NIDs

Version Name World Privilege NID
1.69 SceHdmi Non-secure Kernel 0x930015D0
3.65 SceHdmi Non-secure Kernel 0x7C2BF963

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