Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
ea9b4bd3ba | |||
4cfa336786 | |||
a2e0b4095f |
66
README.md
66
README.md
@ -1,33 +1,33 @@
|
|||||||
# What does it do?
|
# What does it do?
|
||||||
|
|
||||||
Just like in PS4, it takes a screenshot whenever you unlock a trophy.
|
Just like in PS4, it takes a screenshot whenever you unlock a trophy.
|
||||||
|
|
||||||
Best used with reScreeny: https://forum.devchroma.nl/index.php/topic,51.0.html
|
Best used with reScreeny: https://forum.devchroma.nl/index.php/topic,51.0.html
|
||||||
|
|
||||||
# How do I install it?
|
# How do I install it?
|
||||||
|
|
||||||
Get it from here: https://github.com/FMudanyali/TrophyShot/releases
|
Get it from here: https://git.homd.xyz/FMudanyali/TrophyShot/releases
|
||||||
|
|
||||||
In config.txt inside tai folder,
|
In config.txt inside tai folder,
|
||||||
|
|
||||||
TrophyShot.suprx goes under *main
|
TrophyShot.suprx goes under *main
|
||||||
|
|
||||||
like this:
|
like this:
|
||||||
```
|
```
|
||||||
*main
|
*main
|
||||||
ur0:tai/TrophyShot.suprx
|
ur0:tai/TrophyShot.suprx
|
||||||
```
|
```
|
||||||
After modifying the config, reboot.
|
After modifying the config, reboot.
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
- FMudanyali of Team CBPS - SceScreenShot implementation, first 4 iterations, taught teakhanirons how to use snprintf
|
- FMudanyali of Team CBPS - SceScreenShot implementation, first 4 iterations, taught teakhanirons how to use snprintf
|
||||||
- **Graphene of Team CBPS** - SceShellUtil reverse engineering and ShellUtil clipboard trick, stabilization by module seperation and platinum testing
|
- **Graphene of Team CBPS** - SceShellUtil reverse engineering and ShellUtil clipboard trick, stabilization by module seperation and platinum testing
|
||||||
- Princess of Sleeping of Team CBPS - SceShell reverse engineering guidance
|
- Princess of Sleeping of Team CBPS - SceShell reverse engineering guidance
|
||||||
- teakhanirons of Team CBPS - SceScreenShot and additional SceShell reverse engineering
|
- teakhanirons of Team CBPS - SceScreenShot and additional SceShell reverse engineering
|
||||||
- dots-tb of Team CBPS - Additional reverse engineering guidance, cool guy in general
|
- dots-tb of Team CBPS - Additional reverse engineering guidance, cool guy in general
|
||||||
- Silica of Team CBPS - Prevented a disaster, twice
|
- Silica of Team CBPS - Prevented a disaster, twice
|
||||||
- Pina of Team CBPS - Was there
|
- Pina of Team CBPS - Was there
|
||||||
- yasen of Team CBPS - Morale support
|
- yasen of Team CBPS - Morale support
|
||||||
- cuevavirus of Team CBPS - DolceSDK maintainance
|
- cuevavirus of Team CBPS - DolceSDK maintainance
|
||||||
- Nkekev of Team CBPS - Requested this plugin a long time ago
|
- Nkekev of Team CBPS - Requested this plugin a long time ago
|
||||||
- and Team CBPS.
|
- and Team CBPS.
|
||||||
|
25
main.c
25
main.c
@ -52,7 +52,7 @@ int sub_81229FAC_patched(int arg1, int arg2){
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _start() __attribute__((weak, alias("module_start")));
|
void _start() __attribute__((weak, alias("module_start")));
|
||||||
@ -63,7 +63,7 @@ int module_start(SceSize args, void *argp) {
|
|||||||
}
|
}
|
||||||
sceIoClose(fd);
|
sceIoClose(fd);
|
||||||
|
|
||||||
tai_module_info_t tai_info;
|
tai_module_info_t tai_info;
|
||||||
int offset_shellshot, offset_dialog;
|
int offset_shellshot, offset_dialog;
|
||||||
tai_info.size = sizeof(tai_module_info_t);
|
tai_info.size = sizeof(tai_module_info_t);
|
||||||
int ret = taiGetModuleInfo("SceShell", &tai_info);
|
int ret = taiGetModuleInfo("SceShell", &tai_info);
|
||||||
@ -76,17 +76,20 @@ int module_start(SceSize args, void *argp) {
|
|||||||
break;
|
break;
|
||||||
case 0x6CB01295: // 3.60 PDEL
|
case 0x6CB01295: // 3.60 PDEL
|
||||||
case 0xEAB89D5C: // 3.60 PTEL
|
case 0xEAB89D5C: // 3.60 PTEL
|
||||||
|
offset_shellshot = 0x142d5c;
|
||||||
|
offset_dialog = 0x2223e0;
|
||||||
|
break;
|
||||||
case 0x5549BF1F: // 3.65 retail
|
case 0x5549BF1F: // 3.65 retail
|
||||||
offset_shellshot = 0x14a980;
|
offset_shellshot = 0x14a980;
|
||||||
offset_dialog = 0x22a048;
|
offset_dialog = 0x22a048;
|
||||||
break;
|
break;
|
||||||
case 0x34B4D82E: // 3.67 retail
|
case 0x34B4D82E: // 3.67 retail
|
||||||
case 0x12DAC0F3: // 3.68 retail
|
case 0x12DAC0F3: // 3.68 retail
|
||||||
case 0x0703C828: // 3.69 retail
|
case 0x0703C828: // 3.69 retail
|
||||||
case 0x2053B5A5: // 3.70 retail
|
case 0x2053B5A5: // 3.70 retail
|
||||||
case 0xF476E785: // 3.71 retail
|
case 0xF476E785: // 3.71 retail
|
||||||
case 0x939FFBE9: // 3.72 retail
|
case 0x939FFBE9: // 3.72 retail
|
||||||
case 0x734D476A: // 3.73 retail
|
case 0x734D476A: // 3.73 retail
|
||||||
case 0xE6A02F2B: // 3.65 PDEL
|
case 0xE6A02F2B: // 3.65 PDEL
|
||||||
case 0x587F9CED: // 3.65 PTEL
|
case 0x587F9CED: // 3.65 PTEL
|
||||||
offset_shellshot = 0x142db4;
|
offset_shellshot = 0x142db4;
|
||||||
@ -103,7 +106,7 @@ int module_start(SceSize args, void *argp) {
|
|||||||
&shellShot
|
&shellShot
|
||||||
);
|
);
|
||||||
//function found by Graphene
|
//function found by Graphene
|
||||||
hook[0] = taiHookFunctionOffset(
|
hook[0] = taiHookFunctionOffset(
|
||||||
&shell_hook,
|
&shell_hook,
|
||||||
tai_info.modid,
|
tai_info.modid,
|
||||||
0,
|
0,
|
||||||
@ -112,7 +115,7 @@ int module_start(SceSize args, void *argp) {
|
|||||||
sub_81229FAC_patched
|
sub_81229FAC_patched
|
||||||
);
|
);
|
||||||
|
|
||||||
printf("INFO sub_81229FAC_patched: 0x%x\n", hook[0]);
|
printf("INFO sub_81229FAC_patched: 0x%x\n", hook[0]);
|
||||||
return SCE_KERNEL_START_SUCCESS;
|
return SCE_KERNEL_START_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user