Difference between revisions of "SceHdmi"

From Vita Development Wiki
Jump to navigation Jump to search
(Created page with "== Library == === Known NIDs === {| class="wikitable" |- ! Version !! Name !! World !! Privilege !! NID |- | 1.69 || SceHdmi || Non-secure || Kernel || 0x930015D0 |} == Modu...")
 
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Library ==
+
== Module ==
  
=== Known NIDs ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege !! NID
+
! Version !! World !! Privilege
 
|-
 
|-
| 1.69 || SceHdmi || Non-secure || Kernel || 0x930015D0
+
| 1.69-3.65 || Non-secure || Kernel
 
|}
 
|}
  
== Modules ==
+
== Libraries ==
  
 
=== Known NIDs ===
 
=== Known NIDs ===
Line 17: Line 16:
 
! Version !! Name !! World !! Visibility !! NID
 
! Version !! Name !! World !! Visibility !! NID
 
|-
 
|-
| 1.69 || [[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 ==
  
[[Category:Libraries]]
+
To find:
 +
<pre>
 +
HdmiSetRgbRangeMode
 +
HdmiSetResolution
 +
</pre>
 +
 
 +
{| class="wikitable"
 +
|-
 +
! 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 ||
 +
|}
 +
 
 +
 
 +
[[Category:Modules]]
 
[[Category:Kernel]]
 
[[Category:Kernel]]

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