Game ext plugin

From PS3 Developer wiki
Jump to navigation Jump to search

1 Identifier:

  • 1

1 Interface[edit | edit source]

contains 35 subs:

0: 0 Parameter: (creates page_game_main widget)
1: 2 Parameter: uint8_t [0x270], uint8_t[0x10?]
2: 3 Parameter: char * titleid[0x10], 1, 0 - (displays a message?) - link.xml related?
3: 2 Parameter: char * (max.0x80bytes), 1 - (displays a message?) - link.xml related?
4: 4 Parameter: char *, char *, int, int - calls interface 2
5: 4 Parameter: char *, int, char *, int- calls interface 2
6: 1 Parameter: uint8 [0x5B0]
7: 3 Parameter: uint8*,int,uint8* - ps2bootparam.dat / factory_process_comp_1x
8: 0 Parameter: returns uint8
9: 4 Parameter: ignored, char* message, uint8[0x270],{0: Type,+4: 0x10: char * unk  - Install "/dev_bdvd/PS3_GAME/PKGDIR/PKG../INSTALL.PKG" ?
10: 3 Parameter: 
11: 4 Parameter: int value (=0 -> npsignin), ignored, uint8 [0x1B4]{message, pkg_path,..},uint8 [0x25]
12: 1 Parameter: uint8 [0x220] - auth_plugin if 5 (0x102,handler,0,0) / msg_only_for_psp_need_copy_ask
13: 2 Parameter: char * path, char * message - Theme Install/Copy ? (type: bdc, category: TI, CD_%u.p3t)
14: 1 Parameter: char * path? - page_update_history
15: 0 Parameter: disables 2 second sleep on ps2bootparam.dat
16: 1 Parameter: strncpy char * [0x20] (TitleId/ContentId?)
17: 1 Parameter: char * [4] (set Category, example: "AT")
18: 0 Parameter: returns uint8
19: 1 Parameter: uint8 * output
20: 3 Parameter: char * [0x80], wchar?, char* paramsfo?_dir[0x30]
21: 3 Parameter: char * titleid?[0x20], int value (2 = /dev_hdd0/game), char*[0x30]
22: 3 Parameter: char * [0x80], int?, char * [0x30]- update database+reload category game?
23: 3 Parameter: int?, char * [0x38], int?
24: 2 Parameter: int?, int?
25: 1 Parameter: uint8 [0xA4]
26: 1 Parameter: uint8 [0xA4]
27: 1 Parameter: uint8 [0x2470]
28: 2 Parameter: int* out, char * titleid[0x10]
29: 2 Parameter: void* callback, char*? - 0x2BC0 bytes, autodownload_plugin
30: 0 Parameter: set autodownload skip
31: 0 Parameter: returns uint8
32: 4 Parameter: uint8 [0x270], char * [0x800], uint64 [2], uint8
33: 1 Parameter: char * titleid? [0x10] - msg auto update? - psn+/login checked.
34: 1 Parameter: char * pkg_path[0x400] (example: /dev_usb006/test.pkg)

Function 1[edit | edit source]

Example with PS2 World Snooker Championship 2005

Parameter 1:
21DB6718  00 00 00 02 00 00 00 02 53 4C 45 53 35 33 30 38 ........SLES5308
21DB6728  32 00 00 00 00 00 00 00 57 6F 72 6C 64 20 53 6E 2.......World Sn
21DB6738  6F 6F 6B 65 72 20 43 68 61 6D 70 69 6F 6E 73 68 ooker Championsh
21DB6748  69 70 20 32 30 30 35 00 00 00 00 00 00 00 00 00 ip 2005.........
21DB6758  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6768  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6778  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6788  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6798  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB67A8  00 00 00 00 00 00 00 00 57 6F 72 6C 64 20 53 6E ........World Sn
21DB67B8  6F 6F 6B 65 72 20 43 68 61 6D 70 69 6F 6E 73 68 ooker Championsh
21DB67C8  69 70 20 32 30 30 35 00 00 00 00 00 00 00 00 00 ip 2005.........
21DB67D8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB67E8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB67F8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6808  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6818  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6828  00 00 00 00 00 00 00 00 00 00 00 00 30 30 2E 30 ............00.0
21DB6838  30 30 30 00 30 33 2E 37 30 30 30 00 00 00 00 00 000.03.7000.....
21DB6848  00 00 00 00 32 50 00 00 00 00 00 00 2F 64 65 76 ....2P....../dev
21DB6858  5F 68 64 64 30 2F 67 61 6D 65 2F 4E 50 45 44 30 _hdd0/game/NPED0
21DB6868  30 31 35 33 00 00 00 00 00 00 00 00 00 00 00 00 0153............
21DB6878  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6888  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6898  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB68A8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB68B8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB68C8  00 00 00 00 00 00 00 00 00 00 00 00 4E 50 45 44 ............NPED
21DB68D8  30 30 31 35 33 00 00 00 00 00 00 00 00 00 00 00 00153...........
21DB68E8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB68F8  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6908  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6918  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 ...............-
21DB6928  08 00 00 00 01 00 00 22 00 00 00 00 00 00 00 00 ......."........
21DB6938  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6948  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6958  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6968  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
21DB6978  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Parameter 2:
016E0A98  08 00 00 00 01 00 00 22 00 00 00 0B 00 00 00 14 ................

Function 34[edit | edit source]

char * pkg_path;
void installPKG_thread()
{
	if(game_ext_interface == 0) // test if game_ext_plugin is loaded for interface access
		game_ext_interface = (game_ext_plugin_interface *)plugin_GetInterface(View_Find("game_ext_plugin"),1);

	game_ext_interface->DoUnk0(); // Load Page
	game_ext_interface->DoUnk34(pkg_path); // Execute and install PKG from path
}

void installPKG(char * path)
{
	pkg_path = path;
	if(xmm0_interface == 0) // getting xmb_plugin xmm0 interface for loading plugin sprx
		xmm0_interface = (xmb_plugin_xmm0 *)plugin_GetInterface(View_Find("xmb_plugin"),'XMM0');

	xmm0_interface->LoadPlugin3(0x16,installPKG_thread,0); // Thread safe load of game_ext_plugin.sprx (0x16)
}

...
installPKG("/dev_usb006/test.pkg"); // Example
For more information about classes etc. see Talk page

Native Events[edit | edit source]

GameApp_OnInitGameMain
GameApp_OnActivateGameMain
GameApp_OnCancelGameMain
GameApp_OnInitYconCautionBg
GameApp_OnInitYconCaution1
GameApp_OnActivateYconCaution1
GameApp_OnInitYconCaution2
GameApp_OnActivateYconCaution2
GameApp_OnInitYconCautionText
GameApp_OnInitYconPlaneWaku
GameApp_OnInit3DCaution
GameApp_OnActivate3DCaution
GameApp_OnInit3DCautionText

Other info[edit | edit source]

http://pastie.org/1341009