PS3 Apollo save tool (development thread)

question/request for apollo

update account id on current user (separate option would be the best, because there is no point to check account id all the time) in registry if act.dat exists, but registry account id != act.dat account id

example, by accident i deleted wrong user from console or hdd format was required, but i have backup - original act.dat and rifs, so i created a new user, but still i can't use them because account id in registry need to be updated

or we can already do this thru owners.xml? i don't have access to my ps3 right now, so i can't check this

regards
 
I have built the PS3HEN.BIN for all the supported HFWs (4.84, 85, 86, 87, 88), with the improved plugin that restores act.dat (and the option to disable update check):
https://www.mediafire.com/file/2em2mto1ywar69x/PS3HEN_BIN-act.zip/file

just download the zip, and replace your PS3HEN.BIN with the right file (e.g. PS3HEN.BIN_CEX_486 -> PS3HEN.BIN)
It works very well, if you get an error while entering the game, you can take act.dat and idps and convert them to rif on your pc. thank you
 
thanks for confirming that the updated plugin works fine

btw, did you try to run a ps2 classics game? did it work with this new HEN binary?
Salut @bucanero (Buk).

As-tu corrigé l'erreur que j'ai répertorié plus haut (le blocage des jeux PS2 via "PS2Classics") ???
Chez moi, tous les jeux PS2 ne démarrent plus sur aucune de mes consoles en HFW/HEN, un écran noir est généré, je ne peux en sortir que par un long appui sur la touche d'arrêt de la PS3.

Merci et à très bientôt.


Have you corrected the error I listed above (blocking PS2 games via "PS2Classics") ???
At home, all the PS2 games no longer start on any of my consoles in HFW / HEN, a black screen is generated, I can only exit by pressing the stop button on the PS3 for a long time.

Thank you and see you soon.
 
question/request for apollo

update account id on current user (separate option would be the best, because there is no point to check account id all the time) in registry if act.dat exists, but registry account id != act.dat account id

example, by accident i deleted wrong user from console or hdd format was required, but i have backup - original act.dat and rifs, so i created a new user, but still i can't use them because account id in registry need to be updated

or we can already do this thru owners.xml? i don't have access to my ps3 right now, so i can't check this

regards

no, that case is not supported by Apollo. You'll have to fix your account manually by editing the xRegistry.sys file.
My suggestion: backup the xReg.sys. Create a new blank user, and activate it with Apollo. Compare the two copies of XReg so you can find/see the changes. Then you can edit the XReg and set your old account ID.

Salut @bucanero (Buk).
Have you corrected the error I listed above (blocking PS2 games via "PS2Classics") ???
At home, all the PS2 games no longer start on any of my consoles in HFW / HEN, a black screen is generated, I can only exit by pressing the stop button on the PS3 for a long time.

Thank you and see you soon.

No, I haven't made any changes or fixes, it's only an unofficial improvement proposal for HEN. For stability you should use the official release. If these changes are validated and merged, they will be available in a future official version of HEN.
 
The PR has been merged into the PS3HEN repo, so the next official HEN release should include the "act.dat restore" function :)
NPEB02130 JUJU this game starts, then freezes, won't enter the game, I installed wepman again, I installed original ps3hen.bin, the game worked fine, some games have problem but when act.dat 11111111111111 enter, there is no problem
 
The PR has been merged into the PS3HEN repo, so the next official HEN release should include the "act.dat restore" function :)
Just so you know.
esc0 had issues with one of your act.dat related PRs, he made the mistake of accepting to commit the PR changes before testing them properly then realised (through the debug output on socat) that the new code did not function as it should, iirc some while loop intended to rename the act.dat files in all profile folders going infinite for whatever reason...
Too late, live & learn... Lol
I don't remember what he did in the end.
He might have reverted some of the changes, I told him to contact you at the time as in theory it should have been your responsibility to fix that issue, due to the fact that you submitted that faulty PR, but I don't think he did, did he?
 
Last edited:
hi @bucanero
If we use Apollo to modify the trophies (unlock them), does it leave any trace that will be sent to Sony when the trophies are synced? Does Sony know?
Because there is a homebrew on Vita which seems to work in a similar fashion: Trophax SE, this homebrew unlocks Vita trophies and when you sync them, the trophies will tell Sony server which app has unlocked them (which is the Trophax SE)
Thank you for your time and answer
 
Just so you know.
esc0 had issues with one of your act.dat related PRs, he made the mistake of accepting to commit the PR changes before testing them properly then realised (through the debug output on socat) that the new code did not function as it should, iirc some while loop intended to rename the act.dat files in all profile folders going infinite for whatever reason...
Too late, live & learn... Lol
I don't remember what he did in the end.
He might have reverted some of the changes, I told him to contact you at the time as in theory it should have been your responsibility to fix that issue, due to the fact that you submitted that faulty PR, but I don't think he did, did he?

oh, @esc0rtd3w didn't ping me, so I had no idea about this. My original code was a bit different, it used the "savedLastCreatedUserId" and then just did a for(...) loop from 1 to "last-user-id" to copy the act.bak to act.dat
Then we were discussing improvements and @aldostools shared an improved version, that used cellFsReaddir() , and looped. Also instead of copying files, the code linked act.bak -> act.dat

The code itself is quite simple, so I do wonder how it could end up in an infinite loop :confused3:
https://github.com/PS3Xploit/PS3HEN/pull/35/commits/cb1dafbb9ae81807da1df063afbdc8dfbf5fb78c

I also ran tests on my PS3s and didn't experience such error, so I don't know how to properly reproduce it

In any case, as an option, I think we could avoid the whole while() or for() loops, by using the xSettings registry calls:


Code:
    char path1[64], path2[64];

    sprintf(path1, "/dev_hdd0/home/%08d/exdata/act.bak", xsetting_CC56EB2D()->GetCurrentUserNumber());
    sprintf(path2, "/dev_hdd0/home/%08d/exdata/act.dat", xsetting_CC56EB2D()->GetCurrentUserNumber());

   if((cellFsStat(path1,&stat)==0) && (cellFsStat(path2,&stat)!=0))
   {
      sysLv2FsLink(path1, path2);
   }

what do you guys think?
 
oh, @esc0rtd3w didn't ping me, so I had no idea about this. My original code was a bit different, it used the "savedLastCreatedUserId" and then just did a for(...) loop from 1 to "last-user-id" to copy the act.bak to act.dat
Then we were discussing improvements and @aldostools shared an improved version, that used cellFsReaddir() , and looped. Also instead of copying files, the code linked act.bak -> act.dat

The code itself is quite simple, so I do wonder how it could end up in an infinite loop :confused3:
https://github.com/PS3Xploit/PS3HEN/pull/35/commits/cb1dafbb9ae81807da1df063afbdc8dfbf5fb78c

I also ran tests on my PS3s and didn't experience such error, so I don't know how to properly reproduce it

In any case, as an option, I think we could avoid the whole while() or for() loops, by using the xSettings registry calls:


Code:
    char path1[64], path2[64];

    sprintf(path1, "/dev_hdd0/home/%08d/exdata/act.bak", xsetting_CC56EB2D()->GetCurrentUserNumber());
    sprintf(path2, "/dev_hdd0/home/%08d/exdata/act.dat", xsetting_CC56EB2D()->GetCurrentUserNumber());

   if((cellFsStat(path1,&stat)==0) && (cellFsStat(path2,&stat)!=0))
   {
      sysLv2FsLink(path1, path2);
   }

what do you guys think?

I implemented the code in webMAN MOD with some small modifications:
https://github.com/aldostools/webMAN-MOD/blob/master/include/file.h#L508-L538
 
thanks for sharing @aldostools !

I see you added a counter to "break" the loop. Did the infinite loop happen to you?

For some reason the original code was not working, but it was different than the current. I didn't confirm the infinite loop, but it could be a cause. That's why I added the break.

I think the cellFsGetDirectoryEntries was restarting when the link was created, causing the infinite loop.
 
NPEB02130 JUJU this game starts, then freezes, won't enter the game, I installed wepman again, I installed original ps3hen.bin, the game worked fine, some games have problem but when act.dat 11111111111111 enter, there is no problem

thanks for your report. I had no issues when I tested it, but only tried with a few apps and content.
Could you share the act.dat from Apollo and the other one "11111" that works, so I can review those and update the app for the next release?
 

Similar threads

Back
Top