LibRay aims to be a Libre (FLOSS) Python application for unencrypting, extracting, repackaging, and encrypting PS3 ISOs.

Nichlas Severinsen cee1c05820 Helptext 4 years ago
libray 56e9beaa20 Some tidying 4 years ago
.gitignore e45367a875 Revert "Rewrote to not use .ird, turn's out they're not needed" 5 years ago
COPYING 16a5e95777 Initial commit 5 years ago
README.md cee1c05820 Helptext 4 years ago
app.yaml 56e9beaa20 Some tidying 4 years ago
requirements.txt 56e9beaa20 Some tidying 4 years ago
setup.py 56e9beaa20 Some tidying 4 years ago

README.md

LibRay

LibRay: A portmanteau of Libre and Blu-Ray

LibRay aims to be a Libre (FLOSS) Python application for unencrypting, extracting, repackaging, and encrypting PS3 ISOs.

A hackable, crossplatform, alternative to ISOTools and ISO-Rebuilder.

How to install

  1. Clone this repository git clone https://notabug.org/necklace/libray

  2. Install dependencies with sudo pip install -r requirements.txt

  3. Run sudo python setup.py install

Note: You will need Python 3, so you might want to use python3 and pip3.

libray is now installed to your path. In the future I'll add this package to pypi.

How do I use it?

A Libre (FLOSS) Python application for unencrypting, extracting, repackaging,
and encrypting PS3 ISOs

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Increase verbosity
  -o OUTPUT, --output OUTPUT
                        Output filename
  -k IRD, --ird IRD     Path to .ird file

required arguments:
  -i ISO, --iso ISO     Path to .iso file

Rip a PS3 to .ISO with an appropriate blu-ray drive: https://rpcs3.net/quickstart (see "Compatible Blu-ray disc drives section"). Then just feed the .ISO to libray which will try to download an IRD decryption file for your iso.

Example:

libray -i ps3_game.iso -o ps3_game_decrypted.iso

Then, if you want to feed it into RPCS3 just extract the contents of the .ISO:

7z x nfs_ps3_decrypted.iso

And move the resulting folders into the appropriate folder for RPCS3.

License

This project is Free and Open Source Software; FOSS, licensed under the GNU General Public License version 3. GPLv3.

Error!

Help! I get

ImportError: No module named Crypto.Cipher

or

ImportError: cannot import name 'byte_string' from 'Crypto.Util.py3compat' (/usr/lib/python3.7/site-packages/Crypto/Util/py3compat.py)

This is due to multiple similarly named python crypto packages, one way to fix it is:

sudo pip uninstall crypto
sudo pip uninstall pycrypto
sudo pip install pycrypto

Development

see also (archive.fo)

7bit encoded int / RLE / CLP

clp = compressed length prefix

Todo

  • Automatically download .ird file if not given
  • Docstrings
  • Extract ISO (currently doable with 7z x output.iso
  • Test .irds with version < 9
  • Custom command to backup all irds available
  • pypi

Advanced

Figure out the SCSI commands to get data1, if at all possible.