SceHdmi

From Vita Development Wiki
Revision as of 21:12, 30 December 2022 by CelesteBlue (talk | contribs)
Jump to navigation Jump to search

Module

Version World Privilege
0.940-3.740.011 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.940-3.740.011 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.600.011
    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 { // size is 0xF4 on FW 3.600.011
// 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;

SceHdmiForDriver

To find:

HdmiSetRgbRangeMode
HdmiSetResolution

Note that 3.010.031 FW has not be looked into but seems interesting.

Version NID Name
0.940-3.010.031 0x11CDF06E sceHdmiCmdSetTMDSCtrlForDriver
0.940-3.010.031 0xB2CD590E Not implemented on FW 0.940.
0.940-3.010.031 0xCB0D8AF5 Not implemented on FW 0.940.
0.940-3.010.031 0x6478E8B6 Not implemented on FW 0.940.
0.940-3.010.031 0xD9D29A67 Not implemented on FW 0.940.
0.940-3.010.031 0xFBE18ADE Not implemented on FW 0.940.
0.940-3.740.011 0x08AFFB03 sceHdmiCmdSetAudioMuteForDriver
0.940-3.740.011 0x0F12364A int sceHdmiRegisterSomeCallbackForDriver(SceUInt32 slot, (void*)(void) fptr); Sets a callback slot (between 0 and 5). This is a guessed name.
0.940-3.740.011 0x5A212BB3 int sceHdmiSetupTxForDriver(SceHdmiSetupTxParam *pParam);
0.940-3.740.011 0x7AD0F6C9 int sceHdmiGetChipIdForDriver(void *pBuf, SceSize inBufSize, SceSize *pOutBufSize);
0.940-3.740.011 0x854EEB78 Gets VIC and Audio Config and setups memory.
0.940-3.740.011 0x99A3CABE sceHdmiCmdSetVideoMuteForDriver. Black image functionality.
0.940-3.740.011 0xE331EC90 int sceHdmiUnregisterSomeCallbackForDriver(SceUInt32 slot); Clear callback slot (between 0 and 5). This is a guessed name.
0.940-3.740.011 0xE66D5A4D sceHdmiCmdSetAvMuteForDriver Temp name was sceHdmiSetTxMuteForDriver.
0.940-3.740.011 0x0686FBD6 sceHdmiSetHdcpModeForDriver_0 This is a guessed name.
0.940-3.740.011 0xFAB3A2E9 sceHdmiSetHdcpModeForDriver_1 This is a guessed name.
0.990.000-3.740.011 0x8EB0FD9C int sceHdmiGetMonitorInfoForDriver(void *pBuf); Gets 0xF4 bytes of data for the active id (between 0 and 6). Data is derived from the EDID.
0.990.000-3.740.011 0xF20529CC int sceHdmiCmdSetEdidModeForDriver(SceBool mode); // mode: 0: Pass, 1: On
0.990.000-3.740.011 0xFF5546D8
2.100.081-3.740.011 0x4C31F5E8 int sceHdmiCecCmdOneTouchPlayForDriver(SceUInt32 cmd); // cmd can be 0, 1 or 2
2.100.081-3.740.011 0x6D2D10D8 sceHdmiCecCmdForcedPollingMsgForDriver
2.500.071-3.740.011 0xFA30ACFC int sceHdmiCecEnableForDriver(void);
2.500.071-3.740.011 0x291F000B int sceHdmiCecDisableForDriver(void);
2.500.071-3.740.011 0x47B753EB int sceHdmiClearCecInfoForDriver(void);
2.500.071-3.740.011 0x93AA48AC int sceHdmiGetCecInfoForDriver(SceHdmiCecInfo *pCecInfo); // SceHdmiCecInfo is 0x20 bytes on FW 3.60
2.500.071-3.740.011 0x3126A070 Registers a callback.
2.500.071-3.740.011 0x47894820 Used to init?
2.500.071-3.740.011 0x05174BC2
2.500.071-3.740.011 0xD929E4E5
2.500.071-3.740.011 0xEA486A37
3.100.081-3.740.011 0xB04F5B6A