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

Nichlas Severinsen 44674ca62e Update copyright 2 months ago
libray 44674ca62e Update copyright 2 months ago
.gitignore e45367a875 Revert "Rewrote to not use .ird, turn's out they're not needed" 1 year ago
CHANGELOG.md 94d7b71317 Make game_id.iso default output name 2 months ago
COPYING 16a5e95777 Initial commit 1 year ago
LICENSE.txt b70b129467 Preparing for PyPi 4 months ago
README.md 44674ca62e Update copyright 2 months ago
app.yaml 56e9beaa20 Some tidying 5 months ago
requirements.txt 552147583b Release 0.0.2 3 months ago
setup.cfg b70b129467 Preparing for PyPi 4 months ago
setup.py 552147583b Release 0.0.2 3 months 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.

Note: this is still a very beta project, report any bug you see!

How to install

Note: You will need Python 3, so you might want to use python3 and pip3 instead of python and pip depending on your system.

From PyPi:

  1. sudo pip install libray

Manually:

  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

From AUR:

For Arch or Arch-based GNU/Linux distributions there's an option to install libray from the AUR (Arch User Repository).

You will need an AUR helper (of which there are many).

Then you will need to run the appropriate install command for that AUR helper using libray-git as package name.

This will essentially automatically do the manual method for you.

Done!

libray is now installed to your path.

How do I use it?

First off, even before you install libray, you will need a compatible Blu-Ray drive that can read PS3 discs.

There's a compiled list of compatible drives here: https://rpcs3.net/quickstart (archive)

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

You need to use an appropriate blu-ray drive: https://rpcs3.net/quickstart (see "Compatible Blu-ray disc drives section").

On some systems (eg. Linux), you can decrypt directly from the disc.

libray -i /dev/sr0 -o ps3_game_decrypted.iso

Libray will automatically try to download an IRD decryption file for your iso. If you don't have internet connection, but you do have an .ird file you can specify that:

libray -i /dev/sr0 -k game_ird_file.ird -o ps3_game_decrypted.iso

Alternatively, you can first rip the disc to an ISO file and then decrypt from the ISO file:

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:

  • Linux: /home/username/.config/rpcs3/dev_hdd0/disc/

License

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

See also COPYING or LICENSE.txt

Copyright © 2018 - 2019 Nichlas Severinsen

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

  • Extract ISO (currently doable with 7z x output.iso
  • Repackage (unextract) and reencrypt iso?
  • Test .irds with version < 9
  • Custom command to backup all irds available
  • Unit tests