Hi there:
As Savedata En/Decrypter on PSP isn't so handy, I tried to create PC version.
But it seems PARAM.SFO's hash isn't proper (as of r2038). New saves can be read on Jpcsp but not on PSP.
I hope your investigation will be completed...
BTW the source code to "Savedata En/Decrypter on PSP" isn't available, so I don't know how PARAM.SFO hashing is done...
Savedata Decrypter on PC: http://pastebin.com/RFDXKCAf
I think ScrambleSD()'s buf handling is buggy (due to improper ByteBuffer porting). Encryption result is different from Jpcsp(but re-decryption still works)...
PS. It seems ScrambleSD against libkirk ( C ) requires if(kirk==4||kirk==5)memmove(buf,buf+0x14,size);
As Savedata En/Decrypter on PSP isn't so handy, I tried to create PC version.
But it seems PARAM.SFO's hash isn't proper (as of r2038). New saves can be read on Jpcsp but not on PSP.
I hope your investigation will be completed...
BTW the source code to "Savedata En/Decrypter on PSP" isn't available, so I don't know how PARAM.SFO hashing is done...
Savedata Decrypter on PC: http://pastebin.com/RFDXKCAf
I think ScrambleSD()'s buf handling is buggy (due to improper ByteBuffer porting). Encryption result is different from Jpcsp(but re-decryption still works)...
PS. It seems ScrambleSD against libkirk ( C ) requires if(kirk==4||kirk==5)memmove(buf,buf+0x14,size);