Hi Kakaroto, first many thanks to you,Hermes,Moh-sakhai,Waninkoko,Mathieuth and all other developers for their time and hard work.
I tried your latest payload and I confirm it can run Formula1 game fine without the need to use any patched mode, as for Eyepet and move support i don't have them to test yet,will do soon...
As for the patched mode you wanted to know about, here's the code for you to check it and hopefully make the necessary modifications to the Payload so we have better games compatibility :
1- with Hermes V1.0 payload, the Peek/Poke support was introduced, and that's the code blocks used for patched mode to make some games which have issues with the controller works fine, like F1 , Super Street fighter 4, NBA 2K11...
Code:
uint64_t memvaloriginal = 0x386000014E800020ULL;
uint64_t memvalnew = 0xE92296887C0802A6ULL;
if (new_pad & BUTTON_R3)
{
if(peekq(0x80000000000505d0ULL) == memvaloriginal)
{
pokeq(0x80000000000505d0ULL, memvalnew);
hermes = 1;
}
else
{
pokeq(0x80000000000505d0ULL, memvaloriginal);
hermes = 0;
//reset game list
old_fi=-1;
counter_png=0;
forcedevices=(1);
game_sel=0;
}
}
2- with Hermes V3 , he introduced syscall8 and provided the header file and the code for syscall8 usage, i have attached the syscall8 files below for you to check, and mainly syscall8.h have functions to modify the system access permissions between different modes in order for the problematic games to work, and the default mode set in to the payload is the one that makes F1 runs fine without any patched-mode used.
Code:
/* sys8_perm_mode: function to changes as work 0x80000000000505d0 calls (connected with access permissions)
mode: 0 -> PS3 perms normally, 1-> Psjailbreak by default, 2-> Special for games as F1 2010 (option by default)
return: 0 - Ok
*/
int sys8_perm_mode(uint64_t mode);
and the code used in OpenManager 1.16 with syscall8 and the new known Agressive Patched-Mode is here :
Code:
uint64_t patchmode = 2; //0 -> PS3 perms normally, 1-> Psjailbreak by default, 2-> Special for games as F1 2010 (option by default)
if(sys8_enable(0) > 0)
{
sys8_perm_mode(patchmode);
}
else
{
pokeq(0x80000000000505d0ULL, memvaloriginal);
}
if ((new_pad & BUTTON_R2))
{
if(sys8_enable(0) < 0)
{
if(peekq(0x80000000000505d0ULL) == memvaloriginal)
{
pokeq(0x80000000000505d0ULL, memvalnew);
patchmode = 0; //patched
}
else
{
pokeq(0x80000000000505d0ULL, memvaloriginal);
patchmode = 2; //normal
//reset game list
old_fi=-1;
counter_png=0;
forcedevices=(1);
game_sel=0;
}
}
else
{
if (patchmode == 2)
{
patchmode = 0; //patched
sys8_perm_mode(patchmode);
}
else
{
patchmode = 2; //normal
sys8_perm_mode(patchmode);
}
}
}
I hope this will clear up some things to you, looking forward to test more great Payloads from you and good luck with your work.
Cheers