PSP pop-fe.py: POP-FE: A Tool for linux to automate the process to create ps1 EBOOTs

I can help with better GUI design, yet I will not code it. ^^

The GUI itself is built using pygubu-designer and there is not really any coding involved in it. It is mostly tweaking different settings and placement of widgets.

Try it:
Run pygubu-designer and load the file pop-fe-ps3.ui, do some change, save the file and restart pop-fe-ps3.py to see it in action.

I have never used pygubu before but it is fairly easy to use and the result when even someone like me uses it looks pretty decent.
 
nice work, a UI will help a lot for people who don't get on with command line/terminal,
I wonder if a PYinstaller build could be made ? so that users don't need to download python and all the requirements (or PyPI or any other way of making a stand alone exe or program)

I have no idea how to do that :-( But yeah if we can get some help and someone that would build an installer for windows then that would be great.
 
nice work, a UI will help a lot for people who don't get on with command line/terminal,
I wonder if a PYinstaller build could be made ? so that users don't need to download python and all the requirements (or PyPI or any other way of making a stand alone exe or program)

At least on Linux it is fairly easy to install it now, for dep/rpm systems it is basically just:

Fedora36 Automatic Install:
-------------------------
sudo dnf install python-is-python3
sudo dnf install pip3
sudo dnf install python3-devel
sudo dnf install libsndfile-devel
git clone https://github.com/sahlberg/pop-fe.git
cd pop-fe
./pop-fe.py --install


Debian/Mint Automatic Install:
------------------------------
sudo apt install python-is-python3
sudo apt install python3-pip
sudo apt install libsndfile-dev
sudo apt install git
git clone https://github.com/sahlberg/pop-fe.git
cd pop-fe
./pop-fe.py --install

Doing the pop-fe.py --install for windows is mostly done. I just need to find time to add and test the missing pieces.
For sure, it is not "click the button and it all installs" since you need to manually install python and git first, but it will be simpler than what I have right now.
The very very best would be to have a script that builds a container that holds pop-fe as well as all the dependencies so there would be just one single standalone blob you execute and the magic happens.

To update pop-fe and use the latest version:
---------------------------------------------------------
cd pop-fe
git pull
 
I have no idea how to do that :-( But yeah if we can get some help and someone that would build an installer for windows then that would be great.
Hey Ronnie, well its fairly straight forward with "pyinstaller", i have made a test build, i had to change the source slightly since windows doesn't like some of the syntax used (the first line of the GUI for example gave some errors, also ./ in windows command line causes problems before executing a program, so edited it to run .exe versions instead, im including the source anyway so you can see)
This has only been tested on my system (win10) and was compiled in msys2, if anyone can test i would appreciate it.

TO USE UNPACK THE FOLDER THEN RUN
pop-fe-ps3.exe

7z Windows Build
https://mega.nz/file/i9lyHIBS#U-WrqSEgWRkgSjHovC92Y32AgCDKabKF3-wuZzhf2o4

Zip Windows Build (same as above but for those without 7z)
https://mega.nz/file/W0llQAjb#xV34Cb92iKQW1OwFpKR4yjr3WpPwqNcYRVibDvtadqQ

SRC (modded source code for compiling including spec files for pyinstaller)
https://mega.nz/file/KttyAYZb#dFI2CGpOv0rZrvrikJT_EfCImkmzd6MfaWj3-oIJSqU


EDIT:- Also included the original pop-se and the GUI version so people can choose the one they want
 
Hey Ronnie, well its fairly straight forward with "pyinstaller", i have made a test build, i had to change the source slightly since windows doesn't like some of the syntax used (the first line of the GUI for example gave some errors, also ./ in windows command line causes problems before executing a program, so edited it to run .exe versions instead, im including the source anyway so you can see)
This has only been tested on my system (win10) and was compiled in msys2, if anyone can test i would appreciate it.

TO USE UNPACK THE FOLDER THEN RUN
pop-fe-ps3.exe

7z Windows Build
https://mega.nz/file/i9lyHIBS#U-WrqSEgWRkgSjHovC92Y32AgCDKabKF3-wuZzhf2o4

Zip Windows Build (same as above but for those without 7z)
https://mega.nz/file/W0llQAjb#xV34Cb92iKQW1OwFpKR4yjr3WpPwqNcYRVibDvtadqQ

SRC (modded source code for compiling including spec files for pyinstaller)
https://mega.nz/file/KttyAYZb#dFI2CGpOv0rZrvrikJT_EfCImkmzd6MfaWj3-oIJSqU


EDIT:- Also included the original pop-se and the GUI version so people can choose the one they want

Awesome!
For the ./prog.py vs prog.exe changes,
os.name will tell us at runtime if it is linux 'posix' or windows 'nt', so we can determine whether to use ./prog.py or prog.exe at runtime likw this

if os.name == 'posix':
my current calls
else:
your modified calls to .exe

Can you make those changes and also create this as a patch that I can merge, that way you get proper credit in the git history.
 
Awesome!
For the ./prog.py vs prog.exe changes,
os.name will tell us at runtime if it is linux 'posix' or windows 'nt', so we can determine whether to use ./prog.py or prog.exe at runtime likw this

if os.name == 'posix':
my current calls
else:
your modified calls to .exe

Can you make those changes and also create this as a patch that I can merge, that way you get proper credit in the git history.

well i would prefer if some people could test it first to make sure its working :) (if it only works for me it would be pointless)
And i have used github to push changes to my own git but i have never made a patch before so not sure how to do that, i will look into it later, and being able to use different calls depending on OS seems useful, i will have to take a look at that too, im not experianced in python so its kinda new to me, i only know about pyinstaller because i have used a few programs in the past that have used it (or py2exe).
Do you use any particular program for making patches ?
 
well i would prefer if some people could test it first to make sure its working :) (if it only works for me it would be pointless)
And i have used github to push changes to my own git but i have never made a patch before so not sure how to do that, i will look into it later, and being able to use different calls depending on OS seems useful, i will have to take a look at that too, im not experianced in python so its kinda new to me, i only know about pyinstaller because i have used a few programs in the past that have used it (or py2exe).
Do you use any particular program for making patches ?

Awesome. If you fork pop-fe at github to get your own repository, once you push changes to it there should be a button to "create pull request" that you can use. Then I will get a message and I can just import the patches/changes you made.
Or if you push the changes to your github fork, you can just email me and tell me then I can manually cherry-piick it into my upstream version.

Another way is to "git commit -a -s" the changes, then run "git format-patch HEAD~1" which will create a text file/patch for the most recent commit. That file can then be attached to an email.
 
well i would prefer if some people could test it first to make sure its working :) (if it only works for me it would be pointless)
I tested it on a Windows 2016 VM. It worked except for atrackdenc. It complained about not finding this executable.
(This is not a fatal error in pop-fe, it just prints a warning and then creates a package without the CDDA tracks)

But except for atracdec executable missing it seems to work fine. Great work!
I used Wipeout3 to test with as it has 9 CDDA tracks.
 
I tested it on a Windows 2016 VM. It worked except for atrackdenc. It complained about not finding this executable.
(This is not a fatal error in pop-fe, it just prints a warning and then creates a package without the CDDA tracks)

But except for atracdec executable missing it seems to work fine. Great work!
I used Wipeout3 to test with as it has 9 CDDA tracks.
Thanks for testing, looking at the source again i think i missed atracdec as a exe, i think i fixed it now but i don't have time to test right now (its 1am), anyway i tried what you said above, adding if os.name == 'posix': and else: to the source and it seems to be working on my first test, im attaching the patch file below (renamed to .txt from .patch) and i will try and rebuild again tomorrow with the missing exe hopefully fixed, also looking into PYinstallers onefile command so its not as messy
 

Attachments

Made a small error in that revision (it was late and i was sleepy), 1 of the else commands i added space next to a few files that shouldn't in pop-fe-ps3.py, so made a patch to fix that

EDIT:- also here the pyinstaller commands i use to compile the exe's in pyinstaller, i am working on a "onefile" version but having a few small issues
Code:
pyinstaller PSL1GHT/tools/ps3py/pkg.py
pyinstaller cue2cu2.py
pyinstaller binmerge
pyinstaller sign3.py
pyinstaller --add-data "PS3LOGO.DAT;." pop-fe.py
pyinstaller --add-data "PS3LOGO.DAT;." --add-data "pop-fe-ps3.ui;." pop-fe-ps3.py --hidden-import pop-fe --hidden-import pygubu.builder.tkstdwidgets --hidden-import pygubu.builder.ttkstdwidgets --hidden-import pygubu.builder.widgets.dialog --hidden-import pygubu.builder.widgets.editabletreeview --hidden-import pygubu.builder.widgets.scrollbarhelper --hidden-import pygubu.builder.widgets.scrolledframe --hidden-import pygubu.builder.widgets.tkscrollbarhelper --hidden-import pygubu.builder.widgets.tkscrolledframe --hidden-import pygubu.builder.widgets.pathchooserinput
then i merge all the folders
 

Attachments

Made a small error in that revision (it was late and i was sleepy), 1 of the else commands i added space next to a few files that shouldn't in pop-fe-ps3.py, so made a patch to fix that

EDIT:- also here the pyinstaller commands i use to compile the exe's in pyinstaller, i am working on a "onefile" version but having a few small issues
Code:
pyinstaller PSL1GHT/tools/ps3py/pkg.py
pyinstaller cue2cu2.py
pyinstaller binmerge
pyinstaller sign3.py
pyinstaller --add-data "PS3LOGO.DAT;." pop-fe.py
pyinstaller --add-data "PS3LOGO.DAT;." --add-data "pop-fe-ps3.ui;." pop-fe-ps3.py --hidden-import pop-fe --hidden-import pygubu.builder.tkstdwidgets --hidden-import pygubu.builder.ttkstdwidgets --hidden-import pygubu.builder.widgets.dialog --hidden-import pygubu.builder.widgets.editabletreeview --hidden-import pygubu.builder.widgets.scrollbarhelper --hidden-import pygubu.builder.widgets.scrolledframe --hidden-import pygubu.builder.widgets.tkscrollbarhelper --hidden-import pygubu.builder.widgets.tkscrolledframe --hidden-import pygubu.builder.widgets.pathchooserinput
then i merge all the folders

Awesome. I merged the patches (using "git am patch-1.txt" and "git am patch2-txt")
Then I used "git rebase -i HEAD~3", this shows the last three commits. I edited the last line for the fixup-patch and changed "pick" to just "f" (fixup).
This merged the second patch into the first patch you send so now, instead of having one patch and then a second patch with a trivial fix
we only have a single patch that has the correction builtin.

This is usually the way to do small fixes like this, do the fix, then use git rebase to merge them into a single patch and then resend the whole patch. It makes git history look tidier.

Thanks!
I have pushed the change to my master branch.

When you finish with the spec files for pyinstaller, please send a patch that adds the specfiles and a small section to the README on how to generate the packages.
(to add a file to the git repository, run "git add ..filename..")
Awesome! Thankyou so much.
 
ok checked atracdec and its working in this build (with the changes i made yesterday), posting a working build for those who want it

7z
https://mega.nz/file/35NE2ZYL#131ZDtV6M2PNNvlDwVddNCc3oqnCS8AYTsyet_xoASM
Zip (same as above but in zip format for those without 7z)
https://mega.nz/file/X0kXkKDT#Nm9WdJR81Keacirka9bIdhl4ajPrlq7ur_DU3NtB7Mo

Im working on making a single exe for it but having a few issues, working on solving those.

Awesome. I merged the patches (using "git am patch-1.txt" and "git am patch2-txt")
When you finish with the spec files for pyinstaller, please send a patch that adds the specfiles and a small section to the README on how to generate the packages.
(to add a file to the git repository, run "git add ..filename..")
Awesome! Thankyou so much.
Got the exe working with atracdec now so i made a patch with the spec files, also changed the readme to add how to build the windows executable, also removed the bit telling people to download atracdec and instead made it a wget command to just download it, and added unzip for it to extract the exe from it, im not finished with pyinstaller (still working on trying to get a single exe, or if not 1 exe just less then the current messy folder) but its working with the commands i have right now so added it all into a patch, uploading here
 

Attachments

Can build CDDA PBP without using the full ISO?
Extract TRACK 01 to build PBP,PBP can be smaller
it does seem possible, i tested it manually and it "seems" to work but how to get the game to automatically rip the audio out would need to be done, otherwise it will require a lot of user steps, Ronnie might be able to think of something (if he is interested in bringing the size down, if not then you will just have to do it manually using the old method of making ps1classics)
 
Can build CDDA PBP without using the full ISO?
Extract TRACK 01 to build PBP,PBP can be smaller

I had a work-in-progress that did exactly this but I was not sure if it was safe. Because IF the game itself tries to read from the audiotracks and these are now missing it could cause issues. I don't know if any games actually do this.
Another concern I had was that it would no longer be possible to extract the full disc image from the eboot any more. If someone wanted to do that for some reason.

I can add this back into the program.
 
ok checked atracdec and its working in this build (with the changes i made yesterday), posting a working build for those who want it

7z
https://mega.nz/file/35NE2ZYL#131ZDtV6M2PNNvlDwVddNCc3oqnCS8AYTsyet_xoASM
Zip (same as above but in zip format for those without 7z)
https://mega.nz/file/X0kXkKDT#Nm9WdJR81Keacirka9bIdhl4ajPrlq7ur_DU3NtB7Mo

Im working on making a single exe for it but having a few issues, working on solving those.


Got the exe working with atracdec now so i made a patch with the spec files, also changed the readme to add how to build the windows executable, also removed the bit telling people to download atracdec and instead made it a wget command to just download it, and added unzip for it to extract the exe from it, im not finished with pyinstaller (still working on trying to get a single exe, or if not 1 exe just less then the current messy folder) but its working with the commands i have right now so added it all into a patch, uploading here

Merged. Thanks!
 
maybe make a seperate branch for it ? that way the changes wouldn't cause any problems IF there is a game like that,
Also getting closer on a single EXE + 1 file (ps3logo.dat) if the ps3logo.dat isn't in the same folder as the exe it fails when it gets to that bit, so right now its 1 exe and ps3logo.dat
 
Back
Top