Development notes (Apollo tool)

Some development notes about detecting the PSID, User ID and Account ID for the current console/user:

To properly resign saves, you need to know those IDs (among other things), but I couldn’t find a simple way to gather them all in a consistent way across firmware versions (CFW, HEN, DEX, CEX, et al.) :(
For example, the PSID can be recovered with lv2 peeks, but the address depends on the firmware version/type, so you must keep an address table and update the tool every time a new firmware shows up. :confused:

But… there’s a place where the PS3 always stores all those IDs already, and it’s a save-game’s PARAM.SFO :)Wink
so I used that in my advantage, to create a firmware-independent way to acquire the ids. ;)Grin

Since I already needed to save the Apollo app settings, I decided to:

  • on first run: create my own save-game file, using the internal PS3 save functions
  • read my own save-game’s PARAM.SFO, and get the PSID, User ID, and Account ID
  • save the detected IDs back into the App settings (so I can speed up the process next time)
  • on next launch: just read the app settings, and load the IDs

The code for this trick can be found here (based on the psl1ght example by Kakaroto).

Regarding the PFD/SFO tools source code that I used for Apollo:

  • be sure to check for proper definitions in types.h . E.g.: instead of “long long int”, use “int64_t”. It could bring issues when building depending on the platform. (on macOS x64 I ended up having wrong data length for the types)
  • be sure to check for proper endianness. The original source is meant for little-endian. When I was porting the code to the PS3 (big-endian), I had to remove or add endianness swaps as needed.
  • the source depends on the polarSSL lib

The code itself is very modular (kudos to flatz!) and it could be easily converted to a pfd/sfo handling library without too much work. Right now is embedded in Apollo but I might end up creating the library anyways. (I think it could be used in other PS3 homebrew apps as well)

7 thoughts on “Development notes (Apollo tool)”

  1. Hello, does your Apollo Save Tool for PS3 fix the issue in Black Ops 1 were Multiplayer Rank is not saving.?

  2. amigo e possivel ganhar os trofeus ? eu tentei fiz todo o procetimento,porem nao ganho nemhum trofeu fiz em outrousuario e aconteceu a mesma coisa

  3. Si uso un save data para jugar online(por ejemplo descargar un save data de algún juego online que tenga todo al maximo y yo lo copie y adapte con apollo como si fuera “mio”Wink habria algún riesgo de baneo de psn o del juego en cuestión?

  4. Hola Buk, gran trabajo el que realizas con esta herramienta Apollo.
    te quería comentar / consultar si sabes a qué se puede deber que los Trophies desbloqueados con Apollo 2.0.0 solo se mantienen así dentro del ámbito de la PS3. No se produce la sincronización con los trofeos registrados online en la cuenta psn del usuario. Esos permanecen bloqueados.
    Tengo PFW 4.91 con Hen 3.3.0 y Apollo 2.0.0
    Muchas gracias

Leave a Reply

Your email address will not be published. Required fields are marked *