CreatePS3EXTRA PS3 Homebrew App for PS3_EXTRA Creation

Sponsored Links

This weekend PlayStation 3 developer aldostools has released CreatePS3EXTRA, which is a set of PS3 homebrew utility applications for creating the PS3_EXTRA structure for DLC PKGs, Patches, Fixes, MP4 & P3T files.

To quote: It scans for the PKG, MP4 and P3T files copied to each game folder or its PS3_UPDATE folder, and store them under a PS3_EXTRA structure. When a game is mounted with multiMAN, there will be 2 BD icons on the XMB: one disc for the game itself and another with PKGs, MP4 and P3T. It should make it easier to install the game patches, DLC, fixes, and related videos.

Blu-ray Game discs in folder PS3_EXTRA - Icons aspect is the same used in "PStore news" menu (big squares of 486x405 pixels) like this: blogcdn.com/www.joystiq.com/media/2009/08/firmrwae300ps3.jpg

Note: The zip also includes a PS3RIP tool that should help you gain some space on your external HDD, removing unnecessary files. It actually moves the files to a RIPPED folder in the root of the disk and replace the file with a 0 byte file.

The included patterns should remove language files for many games except English and Spanish files. Always review the "RIPPED" folder before delete permanently any file.

The other tool included is renam.exe, if copied to the GAMES or GAMEZ folder, it will rename the sub-folders from BLUS0000-[Title] format to Title [BLUS0000]. This name format should make it easier to find the games.

These tools are Win32 and require the VB5 runtime DLL. XP users should have this already installed (if not, download & install the DLL).

Update 2: Today aldostools has updated the package of tools for CreatePS3EXTRA to now include a new PARAM.SFO editor with the following changes:

CreatePS3EXTRA now can find PKG files in PS3_CONTENT and PKGDIR folders, and move them to the PS3_EXTRA folder.

The PS3_CONTENT and PKGDIR folders are renamed to avoid conflicts with the PS3_EXTRA structure.

Due a typo in the code it was not moving the P3T files to PS3_EXTRA. Fixed.

The PARAM.SFO editor supports SFO and SFX files.

SFO and SFX are associated to the editor.

Supports drag and drop and file name as command line parameter.

Displays the ICON0.PNG/ICON2.PNG found in the SFO/SFX folder.

The PS3RIP includes the patterns for ripping Spanish files (thanks to BahumatLord)

I want to thank to HELLCAT for his PS3SFOEdit.exe. His tool helped me a lot to test/debug the PARAM.SFO Editor.

Update 3: It now includes 6 tools that I have developed for personal use.

The tool was updated several times yesterday... make sure you have the latest build

Updated mmTM_GUI 1.3 - New verification of THM files against a theme.lst file

Auto-complete for paths.

In related PS3 homebrew news today sandungas on IRC has shared a .zip with 3 "fake" Blu-ray discs HERE and updated the page on the PS3 Dev Wiki (ps3devwiki.com/wiki/PARAM.SFO#CATEGORY) for those interested! To quote:

These are “fake” Blu-Ray structures with the minimall parameters inside SFO’s/SFX’s and the needed HYBRID_FLAG’s inside PS3_DISC.SFB

All the files are 100% hand made from scratch and tested, reduced to the minimall needed to work with the purpose of understand the structure and to document all valid CATEGORY values

All them can be mounted with any “backup manager” like a normal game, mixed with a real game to add content like patches, to make a video disc with all the chapters of a video serie, etc...

The other way to “play” with this is by experimenting different values and structures looking for “non standard” uses, using them in combination with other tweaks from cfw, etc... feel free to experiment

All the .replaceme files are dummyes (0kb) replace them with the correct file/name/format

All the names of the .txt files are explanatory of the contents of the SFO’s/SFX’s... can be removed, but its not necessary, the system will ignore them

Are very easy to manage because are cleaned out of non-usefull parameters and restrictions, all icons contains the name of the folder, and texts explains the values of the SFO's and SFX's for a fast overall view of the structure, i think its minimized enough to be a standard.

The first purpose to build this was to document all the possible values of CATEGORY, but i found is funny to play with them, and after the release of "CreatePS3EXTRA Tool by aldostools" i see other people likes to mod games contents... so here you have the manual way for "old school" game mods fans.

Additionally to PS3_EXTRA, there are other 2 more structures (PS3_CONTENT & PKGDIR) with different icons/behavior/structure to play with.

I had to make lot of experiments while documenting the SFO format in PS3DevWiki and one of the funniest ones from the begining was additionall content in blue ray discs, the structures included in the .zip are exactly the same ones explained there ---> PARAM.SFO - PS3 Development Wiki

Are very easy to manage because are cleaned out of non-useful parameters and restrictions, all icons contains the name of the folder, and texts explains the values of the SFO's and SFX's for a fast overall view of the structure, i think its minimized enought to be a standard

The first purpose to build this was to document all the possible values of CATEGORY, but i found is funny to play with them, and after the release of "CreatePS3EXTRA Tool by aldostools" i see other people likes to mod games contents... so here you have the manuall way for "old school" game mods fans

Additionally to PS3_EXTRA, there are other 2 more structures (PS3_CONTENT & PKGDIR) with different icons/behaviour/structure to play with. There is included a readme.txt with basic usage but feel free to make frankenstein experiments with it.

My first tutorial here, and it is to help others crating a game disc with extra features to install pkg, o know that you can intall pkg directly from the root of your USB stick or external hdd, but i don't like to have the root of my external hdd full of PKG files so organize them and launch the instal as if it was a game.

First thing we are going to do is move your pkg to the folder BCES99999-[MY CUSTOM INSTALLER]\PS3_EXTRA\D000 as in this image

Now rename the pkg, in this case My pkg to DATA000

Next step we will had the name of your game to the PARAM.SFX

You can open it with aldostools or if you don’t have it use the notepad, I’m using aldostools param editor, as you can see the tittle ” Insert your game name”

Just modify it to the name of the game or homebrew that is your pkg, save it and overwrite, do not change nothing else, example:

Now just move the folder BCES99999-[MY CUSTOM INSTALLER] to the GAMES folder on your external HDD, load it using multiMAN, Irishman or gamesonic, when your back on PS3 XMB go to you’ll see the icon press X on it to load a new menu, there will be name of your game, press X on it and the PKG will be installed.

To add more pkgs just repeat the process on the other folders of my package.

Finally, how to call a PS3 Syscall: In computing, a system call (aka Syscall) is how a program requests a service from an operating system’s kernel. This may include hardware related services (e.g. accessing the hard disk), creating and executing new processes, and communicating with integral kernel services (like scheduling). System calls provide the interface between a process and the operating system.

With PSL1GHT we can call all the 989 Syscalls.. it’s really simple to call one, but you need to know how many parameters it needs; there are some syscalls that needs just 1 parameter, there are others that needs 8 parameters.

You can find the list of syscalls with the numbers of the parameters here: ps3devwiki.com/wiki/LV2_Functions_and_Syscalls#Syscalls

Once you know the numbers of the parameter that you need (and the type of the parameters if they are written), you are ready to call one:

first thing add the following include:

#include <ppu-lv2.h>

Then you can call the syscall:

lv2syscallN(number_of_the_syscall, parameters… );
Change N with the number of the parameters, and put the number of the syscall that you need to call with the parameters.

some examples:

Shutdown the PS3:

1) Look into the dev wiki and you will see that the syscall to shutdown the PS3 is number 379 ( sys_sm_shutdown ) and it wants 4 parameters:
2) So now i can call the syscall with 4 parameters:

lv2syscall4(379,SHUTDOWN_PARAM,0,0,0);
now on the wiki it says, that the shutdown value is 0x1100 or 0x100, so i will write:
lv2syscall4(379,0x100,0,0,0)

now if i call this on a stupid homebrew like:
#include <ppu-lv2.h>
int main(){
lv2syscall4(379,0x100,0,0,0);
return 0;
}

it will really shutdown the ps3.

now if you are not sure to completely understood this, i will make another example:

now it uses 2 parameters so it calls lv2syscall2, then it needs the parameters that will get the value sec and nsec. now, in this function you can see that it ask the return of this syscall; to call any return of a determinate syscall, you can simply ask it by calling:

return_to_user_prog(type_of_the_variable);

you need to define the type of the returning variable. in that case it was s32 (aka signed int).
so it calls:
return_to_user_prog(s32);

if it was a normal integer, you had to call:
return_to_user_prog(int);