forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

New savefile format on firmware 2.0

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
EdisonCarter



Joined: 31 Oct 2005
Posts: 2

PostPosted: Mon Oct 31, 2005 8:13 am    Post subject: New savefile format on firmware 2.0 Reply with quote

It looks like there's a new savefile encoding that games built for fw 2.0 can use. I tried to open a savefile created by GTA:LCS with Shine's SavedataTool http://forums.ps2dev.org/viewtopic.php?t=2218 (nice utility Shine! also like your snake game) but it couldn't decode the DATA.BIN file.

SavedataTool uses a SceUtilitySavedataParam structure that is 0x5C8 bytes long. LCS uses a 0x600 byte structure that includes a 16 byte key in it. I tried calling sceUtilitySavedataInitStart with the same 0x600 structure as LCS on fw 1.5, but got back error 80110004 "Parameter structure size is invalid".

I figured this new 0x600 byte structure must be new for version 2.0, so I got SavedataTool working on 2.0 with Fanjita's EBOOT loader. The loader doesn't know the NIDs for sceUtilitySavedataInitStart, so I found the syscall addresses experimentally:

0x2202 sceUtilitySavedataInitStart
0x2203 sceUtilitySavedataShutdownStart
0x2204 sceUtilitySavedataUpdate
0x2205 sceUtilitySavedataGetStatus

I called sceUtilitySavedataInitStart with the new 0x600 structure and yes, got back 0x00000000 instead of 80110004! Success! So it is a new structure that is only accepted by fw 2.0. It also accepts the old 0x5C8 structure.

Except, one problem. It never finishes initializing the memory stick process. The status never goes from 1 (Initializing) to 2 (Running).

The return values of sceUtilitySavedataGetStatus are:

1 = Initializing...
2 = Running...
3 = Finished
4 = Shutdown
80110005 = Not a valid time to call this function go away

Normally, on fw 1.5, sceUtilitySavedataGetStatus goes from 1 (Initializing) to 2 (Running) on its own after you call sceUtilitySavedataInitStart. On fw 2.0, it just keeps returning 1 forever. sceUtilitySavedataUpdate(1) returns 80110005 as it normally does if you call it while still in status mode 1. I tried this with both the 0x5C8 and 0x600 data structures and same result.

I'm stumped. Any ideas why I can't get sceUtilitySavedataInitStart to work on 2.0?
Back to top
View user's profile Send private message Visit poster's website
placasoft



Joined: 28 Mar 2005
Posts: 53

PostPosted: Mon Oct 31, 2005 8:58 am    Post subject: Reply with quote

I think the psp use a other encryption algorithmus for the data.bin.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group