sahlberg / pop-fe

Python script to automate the process of fetching boxart and installing PS1 games (onto your PSP/VITA/PS2/PS3)
161 stars 15 forks source link

Techinically incorrect parameter in pkgpy (PS3) #2

Closed ghost closed 2 years ago

ghost commented 2 years ago

By default, pkg.py uses a flag to indicate a PS3 executable game (containing an eboot), which is the "metaBlock.unk22" variable set to 0x05. However, PS1 packages should technically use the flag 0x06 instead (as documented in PS3 dev wiki here).

If the pkgs pop-fe generates are installed and work correctly, this isn't much of a problem. Moreover, current behavior may be better for users since official PS1 classics get installed as bubbles (I assume for easy PSP installation later on straight from PS3). Though, perhaps there are some features/flags that only get checked with the appropriate flag on a pkg?

Edit: In your fork of PSL1GHT for pkg.py, perhaps it may be best to use git-repo-filter to only get ps3py in the repository (like in my repo here which I got from wMM.

sahlberg commented 2 years ago

Thanks for the info. How would I change the metablock.unk22 value? There is no command line argument in pkg.py to set it and I am not really familiar at all with how PKGs work.

For the currently generated packages, they do install and work correctly on a PS3, I play PS1 JRPGS all the time like this, but would be interesting to test how/what that change would do.

ghost commented 2 years ago

It's this line in pkg.py; you just need to change the variable to a 6 (pkg_custom.py sets this flag automatically depending on the SFO file, but it's written for python2). I wanted to fork pkg.py to add a parameter to do so through CLI, but I want to port pkg_custom.py to python 3 before I do so.

sahlberg commented 2 years ago

Thanks. I tried changing it to 6 one one of the games I recently played and reinstalled it. It still looks the same as before, with the nice boxart and background image in the XMB. So that is good. I briefly loaded up the game and played for a few minutes and it looks like it works. (but I wouldn't know for sure until I play through a game from start to finish) So I wouldn't have any issues with changing this in PSL1GHT fork to 6. It does not seem like it changes anything orr has any effect, but if it is more correct that is sufficient justification to change it. Thanks for pointing this out!

Anyway, for for python3, please let me know once python3 versions of pkg/pkg_custom lands upstream. The only reason why I carry a fork of PSL1GHT is because of the lack of python3 support in okg/pkg_custom upstream. Which is why I carry a fork of this WIP PSL1GHT repo. I would like to avoid having to do this and just use the upstream versions instead once it gets python3 support.

sahlberg commented 2 years ago

I have updated the PSL1GHT fork to use contenttype == 6 as suggested