PS3 Apollo save tool (development thread)

Curious if this can be automated fixed. I.e scanning save content for time stamp informations and setting up the same on file in fs space. This would save @sandungas from been Datel acolyte for all those years. :D

If I remember correctly, GTA San Andreas checking TTs. But I wouldn't bet on it, to many years have passed and I always using PSU.
 
.max format doesnt stores timestamps ?, thats an important flaw, i was not aware of it so i think i just become a .psu believer instantly

no, it doesn't . If you check here: https://github.com/bucanero/psv-save-converter/blob/master/src/armax.c

you can see that the ArMax header data stored is:
Code:
maxHeader
{
    char    magic[12];
    u32     crc;
    char    dirName[32];
    char    iconSysName[32];
    u32     compressedSize;
    u32     numFiles;
    u32     decompressedSize;
} maxHeader_t;

maxEntry
{
    u32     length;
    char    name[32];
} maxEntry_t;

but there's no record for the timestamps at all.
I have no idea if they just wanted to save space, but it's a flaw in their format. Also, file attributes are lost (such as copy-protected flag, etc). Those attributes could be relevant for some games or apps.
 
Curious if this can be automated fixed. I.e scanning save content for time stamp informations and setting up the same on file in fs space. This would save @sandungas from been Datel acolyte for all those years. :D

If I remember correctly, GTA San Andreas checking TTs. But I wouldn't bet on it, to many years have passed and I always using PSU.

if you still have the original saves on a memcard, then yes it could be possible to recover/fix those saves. But if you don't have the original source, then I think you're pretty much screwed.
 
You don't get it. :) Time Stamp security base on comparing informations from file system with information saved inside save. If both data match, then save is ok, if one of them is different, then game reject the save saying it's corrupted.

In those times, game saves wasn't encrypted and developers securing them from modifying via i.e checksums or in this case additionally by time stamps.

The questions is: how developers storing such info in saves (if even, it was seldom). By literally copying them or worst i.e checksum them? In first case is possible to retrieve them of course and fix the dates on file in fs.
 
You don't get it. :) Time Stamp security base on comparing informations from file system with information saved inside save. If both data match, then save is ok, if one of them is different, then game reject the save saying it's corrupted.

In those times, game saves wasn't encrypted and developers securing them from modifying via i.e checksums or in this case additionally by time stamps.

The questions is: how developers storing such info in saves (if even, it was seldom). By literally copying them or worst i.e checksum them? In first case is possible to retrieve them of course and fix the dates on file in fs.
You mean... scanning the save file (after the extraction from the .max container) byte by byte to see if there is some value that matches with a valid timestamp ?
Because the game devs probably used the timestamp as an anti-tampering meassure to secure his saves, so it should be located inside the save data ?

Doesnt sounds bad, but i guess if the game devs had freedom to locate the timestamp at any offset and/or checksum it then i guess is not going to be easy
 
Last edited:
Exactly that.

In theory could be doable but I think time put into add such thing isn't worth the effort. But seen where Bucanero is on dev-fire, I couldn't resist to overwhelm him one more feature. :D
 
oh, I should have checked the wiki, the info regarding the .PSV filename was already documented there (thanks sandungas) :)
https://www.psdevwiki.com/ps3/PS1_Savedata#Filename_Format

the PS1 info is also valid for the PS2 saves. ;)

Also, it seems that the PS3 doesn't like if the directory name is less than 12 characters long.

I was trying Berion's "apollo dummy", and with foldername = "APOLLO", the PS3 was refusing to copy the savegame.
Then I used foldername = "APOLLO-99999", and the copy worked like a charm.

I'll include the dummy PSV as part of the .pkg installer, it might be useful for the users in cases like we mentioned refreshing a .VM2 file from the XMB.
 
Could You try also with "APOLLO-PS2"? Maybe this symbol is only important because APOLLO is larger than first field in ID so they probably doesn't check this. If this works, we could also make sibling: "APOLLO-PSX" (those names would be more reasonable than 9999, 8888, 12345 etc.).
 
Could You try also with "APOLLO-PS2"? Maybe this symbol is only important because APOLLO is larger than first field in ID so they probably doesn't check this. If this works, we could also make sibling: "APOLLO-PSX" (those names would be more reasonable than 9999, 8888, 12345 etc.).

sure, I'll try these options too. If the 12-character restriction is mandatory, I'm also going to try something like "APOLLO-99PS2" / APOLLO-99PS1 and see how it goes

Or you could name them simply: "Update MemoryCard 1" and "Update MemoryCard 2"

I think you're referring to the display name on the XMB screen? the issue in this case is related to the save folder name inside the .PSV file. If it's short, the PS3 doesn't like it, even if it's properly resigned.

btw, I have also added PS2 Codebreaker .CBS format support to Apollo. Since the code from Cheat Device ps2 was already there, I thought "why not"... but now I need to integrate all these new features in the UI, before I forget :D
 
side note: while I was testing the .cbs conversion, I missed an endianness-swap in the .PSV header and I ended up freezing the XMB:
PS2 type .PSV save, offset 0x64 (uint32 little endian, number of files in the save)
correct value: 0x03000000
freeze xmb value: 0x00000003

probably not an exploit entry point, but still, since the PS2 is proof that exploiting a system from a memory save was possible, I wonder if the ps3 still have some bugs around that too... (or dynamic XMB themes, for example)
 
now that Apollo basically supports most save formats for PS1 and PS2, the online save Database could be extended to serve as a repository of full-unlocked/complete savegames for PS1 and PS2 too. :D

adding it is trivial on the Apollo side... the real work is building the PS1/2 save database, by selecting saves and adding the information.
I'll leave the idea around, in case anyone wants to help and build the ps1-ps2 db.
 
sure, I'll try these options too. If the 12-character restriction is mandatory, I'm also going to try something like "APOLLO-99PS2" / APOLLO-99PS1 and see how it goes

as I suspected, the 12-character title-id length is mandatory for a PSV to be valid on the PS3. Anything shorter will render the .PSV "corrupted" when you try to import it. It also applies to PS1 .psv saves.

So, I'll keep the "APOLLO-99PS2" as a dummy to refresh the .VM2 memcard from the XMB.

about the folders, I'll follow the "official" standard and use:
/PS1/SAVEDATA/
/PS2/SAVEDATA/
 
Or maybe "APOLLO---PS2" or "APOLLO-PS2DS" (shortcut from "dummy save")?

Official standard for PSVs is "dev_usb*/PS3/EXPORT/PSV/*.PSV". ;)
But if You talking about mimic "dev_usb*/PS3/SAVEDATA/" it is good idea what You have proposal (but only if all save and vmc formats been there IMO ^^).
 
Simple and informative. I vote for it. ^^
And it have uncle's bill approval, i use to steal ideas from him from time to time, is a love-hate relationship :D
20170927_Bill_Gates_GBD_20_239-630x420.jpg
 
@sandungas There are only four PSX memory card image formats, and to be honest, we can call them all the same because most are just raw copies, just differently named, and the rest three have just added useless header (vmp, gme, vgs).
Can you write an small review of how many popular file formats related with PS1 and PS2 saves are identical ? (in other words, only changes his file extension)
Some of that PC apps related with PS1 and PS2 saves supports a lot of save formats, but after thinking in what you said i guess some of them are identical ?

Im wondering if the actual apollo v1.4.0 supports more file extensions than the ones mentioned in the changelog :D
https://www.psx-place.com/threads/update-apollo-save-tool-v1-4-0-released.28124/page-11#post-258958

Btw, great update @bucanero is awesome how many save formats are supported in apollo and the features related with them :encouragement:
 
Can you write an small review of how many popular file formats related with PS1 and PS2 saves are identical ? (in other words, only changes his file extension)
Some of that PC apps related with PS1 and PS2 saves supports a lot of save formats, but after thinking in what you said i guess some of them are identical ?

Im wondering if the actual apollo v1.4.0 supports more file extensions than the ones mentioned in the changelog :D
https://www.psx-place.com/threads/update-apollo-save-tool-v1-4-0-released.28124/page-11#post-258958

Btw, great update @bucanero is awesome how many save formats are supported in apollo and the features related with them :encouragement:

at least I can confirm that the ps2 ".xps" (Xploder) and ".sps" (Sharkport) formats are the same. (Actually both extensions are scanned/detected by Apollo)
From what I understand, they're just the same application by Datel but with different names for the Euro and US markets.

I guess that Berion knows better about this topic and can share more info about duplicate formats :)
 

Similar threads

Back
Top