SceHdmi: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
Line 90: Line 90:
| 0.940-3.740.011 || 0x08AFFB03 || sceHdmiCmdSetAudioMuteForDriver
| 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 || 0x0F12364A || int sceHdmiRegisterEventCallbackForDriver(SceUInt32 slot, (void*)(void) fptr); Sets a callback slot (between 0 and 5).
|-
|-
| 0.940-3.740.011 || 0x5A212BB3 || int sceHdmiSetupTxForDriver(SceHdmiSetupTxParam *pParam);
| 0.940-3.740.011 || 0x5A212BB3 || int sceHdmiSetupTxForDriver(SceHdmiSetupTxParam *pParam);
Line 100: Line 100:
| 0.940-3.740.011 || 0x99A3CABE || sceHdmiCmdSetVideoMuteForDriver. Black image functionality.
| 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 || 0xE331EC90 || int sceHdmiUnRegisterEventCallbackForDriver(SceUInt32 slot); Clear callback slot (between 0 and 5).
|-
|-
| 0.940-3.740.011 || 0xE66D5A4D || sceHdmiCmdSetAvMuteForDriver Temp name was sceHdmiSetTxMuteForDriver.
| 0.940-3.740.011 || 0xE66D5A4D || sceHdmiCmdSetAvMuteForDriver Temp name was sceHdmiSetTxMuteForDriver.
Line 112: Line 112:
| 0.990.000-3.740.011 || 0xF20529CC || int sceHdmiCmdSetEdidModeForDriver(SceBool mode); // mode: 0: Pass, 1: On
| 0.990.000-3.740.011 || 0xF20529CC || int sceHdmiCmdSetEdidModeForDriver(SceBool mode); // mode: 0: Pass, 1: On
|-
|-
| 0.990.000-3.740.011 || 0xFF5546D8 ||
| 0.990.000-3.740.011 || 0xFF5546D8 || sceHdmiGetAksvForDriver This is a guessed name.
|-
|-
| 2.100.081-3.740.011 || 0x4C31F5E8 || int sceHdmiCecCmdOneTouchPlayForDriver(SceUInt32 cmd); // cmd can be 0, 1 or 2
| 2.100.081-3.740.011 || 0x4C31F5E8 || int sceHdmiCecCmdOneTouchPlayForDriver(SceUInt32 cmd); // cmd can be 0, 1 or 2
Line 126: Line 126:
| 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 || 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 || 0x3126A070 || sceHdmiCecRegisterEventCallbackForDriver
|-
|-
| 2.500.071-3.740.011 || 0x47894820 || Used to init?
| 2.500.071-3.740.011 || 0x47894820 || Used to init?
Line 136: Line 136:
| 2.500.071-3.740.011 || 0xEA486A37 ||
| 2.500.071-3.740.011 || 0xEA486A37 ||
|-
|-
| 3.100.081-3.740.011 || 0xB04F5B6A ||
| 3.100.081-3.740.011 || 0xB04F5B6A || sceHdmiEnableHPDForDriver This is a guessed name
|}
|}



Revision as of 15:40, 25 March 2023

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 sceHdmiRegisterEventCallbackForDriver(SceUInt32 slot, (void*)(void) fptr); Sets a callback slot (between 0 and 5).
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 sceHdmiUnRegisterEventCallbackForDriver(SceUInt32 slot); Clear callback slot (between 0 and 5).
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 sceHdmiGetAksvForDriver This is a guessed name.
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 sceHdmiCecRegisterEventCallbackForDriver
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 sceHdmiEnableHPDForDriver This is a guessed name