PKGi PS3 is a PlayStation 3 port of pkgi (PSVita).
The pkgi-ps3 homebrew app allows to download and install .pkg files directly on your PS3.

Comments, ideas, suggestions? You can contact me on Twitter and on my website.
direct mode) or queued for background download (background mode) using the internal Download Manager..rif files for downloaded content (system must be activated)background download mode.Get the latest version here.
See the latest changes here.
You need to create a pkgi.txt file in /dev_hdd0/game/NP00PKGI3/USRDIR that contains the items available for installation.
The text database format is user customizable. Check this section to learn how to define your own custom DB format.
You can also load additional database files:
pkgi_games.txtpkgi_dlcs.txtpkgi_themes.txtpkgi_avatars.txtpkgi_demos.txtpkgi_updates.txtpkgi_emulators.txtpkgi_apps.txtpkgi_tools.txtItems on each of these files will be auto-categorized to the file content type. Note: The app assumes that every database file has the same format, as defined in dbformat.txt.
You can refresh and sync an online database by adding the DB URL(s) to the config.txt file in /dev_hdd0/game/NP00PKGI3/USRDIR.
For example:
url http://www.mysite.com/mylist.csv
url_demos http://www.demos.com/otherlist.csv
url_emulators http://www.example.com/emulators.csv
Using this setup, pkgi.txt will be updated with mylist.csv, pgi_demos.txt with otherlist.csv , and pkgi_emulators.txt with emulators.csv.
Next time you open the app, you'll have an additional menu option
called Refresh. When you select it, the local databases will be syncronized with the defined URLs.
The application needs a text database that contains the items available for installation, and it must follow the default format definition, or have a custom format definition file.
The default database file format uses a very simple CSV format where each line means one item in the list:
contentid,type,name,description,rap,url,size,checksum
where:
| Column | Description |
|---|---|
contentid |
is the full content id of the item, for example: UP0000-NPXX99999_00-0000112223333000. |
type |
is a number for the item's content type. See the table below for details. (set it to 0 if unknown) |
name |
is a string for the item's name. |
description |
is a string for the item's description. |
rap |
the 16 hex bytes for a RAP file, if needed by the item (.rap files will be created on /dev_hdd0/exdata). Leave empty to skip the .rap file. |
url |
is the HTTP/HTTPS/FTP/FTPS URL where to download the .pkg file. |
size |
is the size in bytes of the .pkg file, or 0 if unknown. |
checksum |
is a SHA256 digest of the .pkg file (as 32 hex bytes) to make sure the file is not tampered with. Leave empty to skip the check. |
Note: name and description cannot contain newlines or commas.
An example pkgi.txt file following the contentid,type,name,description,rap,url,size,checksum format:
EP0001-FILEMANAG_00-0000000000000000,8,FileManager v1.40,File Manager,,http://github.com/Zarh/ManaGunZ/releases/download/1.40/FileManager_v1.40.pkg,12171120,FAF680636B18AD0B70AA61F48A78C5E42D6972F795F1B82CC434BE3DDE60F00F
UP0001-IRISMAN00_00-VER4880000000000,8,IRISMAN 4.88.1,Backup Manager,,http://github.com/aldostools/IRISMAN/releases/download/4.88/IRISMAN_4.88.pkg,29411984,E6EF607F0002B31BFB148BE4FC9BDBACB4E53110751F0E667C701D40B5290570
EP0001-MANAGUNZ0_00-0000000000000000,8,ManaGunZ v1.40,Backup Manager,,http://github.com/Zarh/ManaGunZ/releases/download/1.40/ManaGunZ_v1.40.pkg,17563040,CE0E4036903E881C08259FD69E777F6BC9CD24E823B471A7B15C88FDDBB2E330
UP0001-PS3SFM001_00-0000000000000000,8,Simple file manager v0.5.2,File Manager,,http://github.com/lmirel/fm_psx/releases/download/v0.5.2/sfm_ps3.pkg,1098800,301F64CC94E9BC442FDAC9199BFB8153AC2430A5E47331C6CF8A25B7881648A6
EP0001-UPDWEBMOD_00-0000000000000000,9,webMAN MOD v1.47.36,Backup Manager,,http://github.com/aldostools/webMAN-MOD/releases/download/1.47.36/webMAN_MOD_1.47.36_Installer.pkg,13580448,
| Type value | Content type | DB File |
|---|---|---|
| 0 | Unknown | |
| 1 | Game | pkgi_games.txt |
| 2 | DLC | pkgi_dlcs.txt |
| 3 | Theme | pkgi_themes.txt |
| 4 | Avatar | pkgi_avatars.txt |
| 5 | Demo | pkgi_demos.txt |
| 6 | Update | pkgi_updates.txt |
| 7 | Emulator | pkgi_emulators.txt |
| 8 | Application | pkgi_apps.txt |
| 9 | Tool | pkgi_tools.txt |
To use a custom database format, you need to create a dbformat.txt file, and save it on /dev_hdd0/game/NP00PKGI3/USRDIR.
The dbformat.txt definition file is a 2-line text file:
* Line 1: the custom delimiter character (e.g.: ;, ,, |, etc.)
* Line 2: the column names for every column in the custom database, delimited by the proper delimiter defined in line 1
Note: For the columns to be properly recognized, use the column tag names defined in the table above.
All the columns are optional. Your database might have more (or less) columns, so any unrecognized column will be skipped.
Example dbformat.txt, for a database using semi-colon (;) as separator:
;
name;TITLE ID;REGION;description;AUTHOR;TYPE;url;rap;size
Result: only the name,description,url,rap,size fields will be used.
Example dbformat.txt, for a database using character pipe (|) as separator:
|
REGION|TITLE|name|url|rap|contentid|DATE|PKG FILENAME|size|checksum
Result: only the name,url,rap,contentid,size,checksum fields will be used.
Using the application is simple and straight-forward:
.
.
.
It will open the context menu. Press
again to confirm the new settings, or press
to cancel any changes..rap data, the file will be saved in the /dev_hdd0/exdata/ folder.rap string? You can use a tool like RIF2RAP to generate a .rap from your existing .rif files. Then you can use a tool like hexdump to get the hex byte string.
.pkg links?You can use PSDLE to find .pkg URLs for the games you own. Then either use the original URL, or host the file on your own web server.
Check the /dev_hdd0/tmp/pkgi folder - each download will be in a separate .pkg file by its title id. Simply delete the file and start again.
Optimization is still pending. If direct download is slow, you can use background download mode to download files using the internal PS3 Download Manager.
You need to have installed:
Run make to create a release build. After that, run make pkg to create a .pkg install file.
You can also set the environment variable PS3LOAD=tcp:x.x.x.x to the PS3's IP address;
that will allow you to use make run and send pkgi-ps3.self directly to the PS3LoadX listener.
If you don't have the PS3 toolchain installed, you can build using Docker:
make -f Makefile.docker docker-pkg
This builds the Docker image (cached) and compiles the project inside the container. The output .pkg file will be in the project directory.
To build without creating the package: make -f Makefile.docker docker-build
To enable debug logging, build PKGi PS3 with make DEBUGLOG=1. The application will send debug messages to
UDP multicast address 239.255.0.100:30000. To receive them you can use socat on your PC:
$ socat udp4-recv:30000,ip-add-membership=239.255.0.100:0.0.0.0 -
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
$ claude mcp add pkgi-ps3 \
-- python -m otcore.mcp_server <graph>