Resource icon

PS3 Pop-fe a utility to create PSX Classics packages for PS3 v1.16

Ok, I think I have fixed it. Please try the new release.
ok tested it and it works :)
if you want to build the 1 EXE version you can pass this command after doing the others (or instead of the pop-fe and pop-fe-ps3 if you want to make it much smaller)
Code:
pyinstaller --onefile --add-data "atracdenc.exe;atracdenc/src/." --add-data "dist/pkg/pkgcrypt.cp39-win_amd64.pyd;."  --add-data "dist/sign3/sign3.exe;."  --add-data "dist/pkg/pkg.exe;."  --add-data "dist/binmerge/binmerge.exe;."  --add-data "dist/cue2cu2/cue2cu2.exe;." --add-data "pop-fe-ps3.ui;." --add-data "PS3LOGO.DAT;.." pop-fe-ps3.py --hidden-import pop-fe --hidden-import pygubu.builder.tkstdwidgets --hidden-import pygubu.builder.ttkstdwidgets --hidden-import pygubu.builder.widgets.pathchooserinput --runtime-tmpdir .
EDIT- This builds just the ps3 gui version, if you still want to build the command line pop-fe you can do so with a few adjustments
 
Last edited:
ok tested it and it works :)
if you want to build the 1 EXE version you can pass this command after doing the others (or instead of the pop-fe and pop-fe-ps3 if you want to make it much smaller)
Code:
pyinstaller --onefile --add-data "atracdenc.exe;atracdenc/src/." --add-data "dist/pkg/pkgcrypt.cp39-win_amd64.pyd;."  --add-data "dist/sign3/sign3.exe;."  --add-data "dist/pkg/pkg.exe;."  --add-data "dist/binmerge/binmerge.exe;."  --add-data "dist/cue2cu2/cue2cu2.exe;." --add-data "pop-fe-ps3.ui;." --add-data "PS3LOGO.DAT;.." pop-fe-ps3.py --hidden-import pop-fe --hidden-import pygubu.builder.tkstdwidgets --hidden-import pygubu.builder.ttkstdwidgets --hidden-import pygubu.builder.widgets.pathchooserinput --runtime-tmpdir .
EDIT- This builds just the ps3 gui version, if you still want to build the command line pop-fe you can do so with a few adjustments

I tried it but it didn't work for me. It complained it could not find cue2cu2.exe when I ran it. :-(
 
New feature: You can now specify a youtube link as snd0 and it will be automatically downloaded and converted into SND0.AT3.

I have also added a way where we can specify a curated list of youtube links in the games database.
That way, IF there is a youtube link for the disc_id you are currently converting then it will automatically download that audio and install it as SND0.AT3 without any need for user input.
I have only added snd0 links for a handful of games.
It will be a LOT of work to populate this so any/all help welcome in the form of patches.
I will populate my favorite games and the usual games that pop up on the 10-best-games lists but i NEED help since it is a huge undertaking.
If you like this feature, please help out.

This is an example entry:
'SLES01135': {
'url': "games/P/A/SLES-01135.html",
'id': 'SLES01135',
'title': "ALUNDRA",
'pic0': 'https://psxdatacenter.com/images/screens/P/A/SLES-01258/ss19.jpg',
'pic1': 'https://psxdatacenter.com/images/screens/P/A/SLES-01258/ss7.jpg',
'snd0': '
'
},

You really just need to add the 'snd0': line with the link to youtube for the music.
But feel free to add links for nice looking images for pic0 and pic1 too.

You can also specify this as the --snd0 command line argument to pop-fe:

$ ./pop-fe.py --ps3-pkg=alundra.pkg Alundra.img --snd0='
'

or you can use
$ ./pop-fe.py --ps3-pkg=alundra.pkg Alundra.img --snd0=auto
and it will try to search youtube for something that matches the game title and use it.

Finally, in pop-fe-ps3 you can paste youtube links into the snd0 file selector box and the magic happens.
 
Last edited:
This is a pretty cool tool. I initially didn't intend on going the pkg route for my PS1 backups, but dealing with multitrack games on PS3 is a headache and the fact that pkgs allow for multi-disc games to be packaged together is a nice bonus.

I'll probably regret it later, due to the amount of work it takes to create the required assets, but I want all of my PS1 games to have a custom icon, background image, foreground image and sound file. The first test pkg turned out better than I thought. The transparencies work, the music is playing. I only ran into 2 issues, which lead me to a couple questions:
  1. The icon, which was a spherical image was stretched to a wide format. I could fix that if I knew the exact aspect ratio the image is stretched to. Could you tell me what resolution the image files end up in. Would also be interested in the resolution of the foreground image.
  2. While the music did play, it started looping before the track ended. I assume there is a limitation in place to prevent the use of long music pieces. Is it a limit on the duration and/or file size of the song and where is the limit exactly?
Sorry if those questions are basic, or answered anywhere in the documentation, but a quick readthrough and some ctrl+f keyword searches didn't return any answers for my questions.
 
This is a pretty cool tool. I initially didn't intend on going the pkg route for my PS1 backups, but dealing with multitrack games on PS3 is a headache and the fact that pkgs allow for multi-disc games to be packaged together is a nice bonus.

I'll probably regret it later, due to the amount of work it takes to create the required assets, but I want all of my PS1 games to have a custom icon, background image, foreground image and sound file. The first test pkg turned out better than I thought. The transparencies work, the music is playing. I only ran into 2 issues, which lead me to a couple questions:
  1. The icon, which was a spherical image was stretched to a wide format. I could fix that if I knew the exact aspect ratio the image is stretched to. Could you tell me what resolution the image files end up in. Would also be interested in the resolution of the foreground image.
  2. While the music did play, it started looping before the track ended. I assume there is a limitation in place to prevent the use of long music pieces. Is it a limit on the duration and/or file size of the song and where is the limit exactly?
Sorry if those questions are basic, or answered anywhere in the documentation, but a quick readthrough and some ctrl+f keyword searches didn't return any answers for my questions.

EDIT: See post below. I have fixed the stretching of the cover image.

On PS3, the cover image is scaled to 176, 176. and then padded to 320, 176 with a transparent area.
The other two images are 1000, 560 and 1920, 1080.


The other two images are sourced from actual screen-shots at psx-datacentre so they are always much lower resolution.
I do not have a good solution for this as I don't know of any repository where I can find good high-resolutiuon images for every game.
If you do find, or use, good hi-res images from the internet then, then an email to me with the links and I can hardcode these images into the games database so they are prefered over the auto-downloaded ones from psx-datacentre.
It wouldn't help you but it would mean the next guy that wants to create a package would get a good image from the start.

The audio is limited in both duration and compressed size. Right now I clamp the duration to 119 seconds as this fulfills both restrictions. I could increase this a bit but it would become a little more complex as I would have to try to compress it, check the file size and if it became too big I would have to try to shurten the file a little and try to compress it again. Would not be hard to add it would just take some time to implement.


If you know python and are willing to experiment by increasing this limit, you would need to manually install the package instead of using the prebuilt binary (instructions in the README) then this is where the audio is clamped:
https://github.com/sahlberg/pop-fe/blob/ec2d4fe9dd847af61fda42b16c835e82494f44a9/pop-fe.py#L708
Beware. If it ends up being too big (I think it is 2.5MB max size) then it will not play at all.
 
Last edited:
There is a list of image sizes here: https://www.psdevwiki.com/ps3/Content_Information_Files
As you said, that problem of streched images is very notable if the original image had a circle (because that circle becomes an oval), this means we broke the "aspect ratio" of the original image when we scaled it
One of the ways to prevent this is, as you said, to prepare the images with the same aspect ratio than the final images, this way can be scaled fine to any size
And the other way is by adding transparent areas around it to make it match with the final aspect ratio, this can be automated but requires to use some image library able to do this kind of transformations
 
  1. The icon, which was a spherical image was stretched to a wide format. I could fix that if I knew the exact aspect ratio the image is stretched to. Could you tell me what resolution the image files end up in. Would also be interested in the resolution of the foreground image.
I have updated it so that it does not stretch the cover image any more.
The cover image must be square and it will be resized to 176x176 with a transparent border to the right to pad it to 320 pixels wide.
For best results you should probably use source images that are 176x176 as then there will be no rescaling and thus no blurring.

This does make even the stock disc cover images look a lot nicer on the XMB.
Guess I will have to go and re-create all my packages now so they no longer have a stretched image :-)
 
This is a pretty cool tool. I initially didn't intend on going the pkg route for my PS1 backups, but dealing with multitrack games on PS3 is a headache and the fact that pkgs allow for multi-disc games to be packaged together is a nice bonus.

I prefer PKG files because they look soo much better on the XMB.
It is like FashionSouls. It does not change the gameplay but the presentation is just so mush more attractive.
 
Thanks for all the info Ronnie Sahlberg & sandungas. I'll definitely test it out later. I'd be happy to send you the stuff I end up using if it's of any help to you or other users. I was thinking about having a uniform design for the icons and overlay pictures though. Not sure how useful that will be for others, if it doesn't match the design of the other games they might've installed. But I assume at least the background images and soundfiles might be useful to some.
 
Thank you very much Ronnie Sahlberg. I used this and it works like a charm!

Just a notice : It doesn't compress CDDA audio like official PKGs from PSN? For instance : Rayman 1 from PSN store is like 100 MB, while the ISO is like 500 MB

If I attempt to create an installable PKG using the tool I get a PKG size similar to ISO size (500 MB).

Can I enable CDDA audio compression (or encoding) to reduce size? Thank you!!
 
Thank you very much Ronnie Sahlberg. I used this and it works like a charm!

Just a notice : It doesn't compress CDDA audio like official PKGs from PSN? For instance : Rayman 1 from PSN store is like 100 MB, while the ISO is like 500 MB

If I attempt to create an installable PKG using the tool I get a PKG size similar to ISO size (500 MB).

Can I enable CDDA audio compression (or encoding) to reduce size? Thank you!!

I originally wrote the whole disk, including the audio tracks to the disk image stored inside the eboot.pbp because I did not now if
we needed them or not.
At least on PS3 we now have functioning support for ATRAC3 compressed/encoded audio so we should be able to skip writing out the
audio tracks as cd image data as well.

Can you please test the strip-iso branch of my pop-fe repository?
This is only implemented for pop-fe.py (and pop-fe-ps3.py) when creating PS3 packages.
Let me know if it works well for you and once we get it tested properly I can expand it to pop-fe-ps3 and merge it into the master branch.
I have only done very light testing with Wipeout. The pkg dropped from >500MB to ~100MB and the background audio when racing still seemed to work.
 
Last edited:
Thank you. I see the strip-iso branch has a new commit "PS3: don't write the audio tracks to EBOOT.PBP" ahead of master.
I really tried to use source code but I get errors related to python. Maybe I'll wait for a release. Thanks!

You can download the prebuilt package from the commit. You just have to create a github account and be signed in.
(they only allow access to build artefacts when you are signed in.)
Then, go to the "Actions" tab, then select the latest build, and links to the artifacts will be at the bottom of that page.

https://github.com/sahlberg/pop-fe/actions/runs/3309964673
 
You can download the prebuilt package from the commit. You just have to create a github account and be signed in.
(they only allow access to build artefacts when you are signed in.)
Then, go to the "Actions" tab, then select the latest build, and links to the artifacts will be at the bottom of that page.

https://github.com/sahlberg/pop-fe/actions/runs/3309964673
Thank you very much I never knew that. I've got very good results now with the pop-fe-ps3 tool :
Size (ISO vs Installable) :
-ISS PRO : from 388 to 227 MB
-SF The Movie from 623 to 303 MB
-Tekken 3 from 660 to 616 MB
Size reduction works best with games containing multiple CDDA tracks.
Thanks!!
 
Yes bro everything works fine with the new build! Thanks! and CDDA games take less space now thanks to audio encoding (tested also Star Gladiator and Dead or alive)
 
ok tested it and it works :)
if you want to build the 1 EXE version you can pass this command after doing the others (or instead of the pop-fe and pop-fe-ps3 if you want to make it much smaller)
Code:
pyinstaller --onefile --add-data "atracdenc.exe;atracdenc/src/." --add-data "dist/pkg/pkgcrypt.cp39-win_amd64.pyd;."  --add-data "dist/sign3/sign3.exe;."  --add-data "dist/pkg/pkg.exe;."  --add-data "dist/binmerge/binmerge.exe;."  --add-data "dist/cue2cu2/cue2cu2.exe;." --add-data "pop-fe-ps3.ui;." --add-data "PS3LOGO.DAT;.." pop-fe-ps3.py --hidden-import pop-fe --hidden-import pygubu.builder.tkstdwidgets --hidden-import pygubu.builder.ttkstdwidgets --hidden-import pygubu.builder.widgets.pathchooserinput --runtime-tmpdir .
EDIT- This builds just the ps3 gui version, if you still want to build the command line pop-fe you can do so with a few adjustments

Sorry to bother you but you know a lot more about windows and pyinstaller than I do and all my attempts have failed so far.
I have added support for drag-and-drop so that you can dnd either a file or a link from your browser to the ICON0/PIC0/PIC1 canvasses.
This hugely improves quality-of-life when you want to use different images than the default one that pop-fe-ps3 defaults to.

Right now I only do this for linux, since I never got TkinterDnD2 to work on windows. It complained about not finding some module so I think it is something missing from --hidden-import but I could not get it to work.
If you have some cycles and want to have a look that would be awesome.
 
Sorry to bother you but you know a lot more about windows and pyinstaller than I do and all my attempts have failed so far.
I have added support for drag-and-drop so that you can dnd either a file or a link from your browser to the ICON0/PIC0/PIC1 canvasses.
This hugely improves quality-of-life when you want to use different images than the default one that pop-fe-ps3 defaults to.

Right now I only do this for linux, since I never got TkinterDnD2 to work on windows. It complained about not finding some module so I think it is something missing from --hidden-import but I could not get it to work.
If you have some cycles and want to have a look that would be awesome.
Hey Ronnie its been awhile, i just gave it a quick look and it doesn't seem to be working either for me but not sure why yet, looking at the demo's of TkinterDnD2 to see why they work and yours doesn't (since i have not much experience with Tkinter im looking into it first), I will edit this post in a bit to let you know how i get on.

EDIT1:- First thing i just noticed was that it doesn't work in python mode either (so not just pyinstaller) so i have to get it working there first

EDIT2:- Ok seems to be your
if os.name == 'posix':
(on lines 15 and 102 + another at the end of the file for the root)
Code is making drag and drop not work on Windows so removing that and altering the lines to match seems to have got JPG drag and drop working on windows, now to test pyinstaller

EDIT3:- OK seems pyinstaller still doesn't like it, now looking into hidden imports and commands, shouldnt take long

EDIT4:- OK i think i have it, adding
--collect-all tkinterdnd2
to the pyinstaller command seems to fix the problem on windows so pretty much all you need to do is add this line to the windows build (and alter the lines to remove the posix restrictions)
pip install tkinterdnd2
for python requirements then add this to the pystinaller command for pop-fe-ps3
--collect-all tkinterdnd2
 
Last edited:
EDIT4:- OK i think i have it, adding
--collect-all tkinterdnd2
to the pyinstaller command seems to fix the problem on windows so pretty much all you need to do is add this line to the windows build (and alter the lines to remove the posix restrictions)
pip install tkinterdnd2
for python requirements then add this to the pystinaller command for pop-fe-ps3
--collect-all tkinterdnd2

Thanks, I have pushed the change to master to add --collect-all and now the windows version runs.
I also removed the if-'posix' conditionals from pop-fe-ps3 but it still refused to accept the drag and drop.
Anyway, thanks for getting it to actually run.

I will try to figure out why the dnd doesn't work in a few days.
 

Similar threads

Back
Top