Overview
Thefself tool converts standard ELF executables into SELF (Signed ELF) format for the PlayStation 3. It creates “fake” SELF files that can run on custom firmware but are not officially signed by Sony.
FSELF files are for homebrew development and custom firmware only. They will not run on retail PS3 systems with official firmware.
SELF vs FSELF
SELF (Signed ELF)
Official PlayStation 3 executable format signed by Sony. Required for all PS3 applications and games on retail firmware.
FSELF (Fake SELF)
Unsigned SELF format for homebrew. Works on custom firmware (CFW) without Sony’s signature. Used during development.
Key Differences
- SELF: Cryptographically signed, runs on retail PS3
- FSELF: Unsigned, only runs on custom firmware
- Use Case: FSELF for development, SELF for distribution (requires signing keys)
Command-Line Usage
Basic Example
Options
Create NPDRM SELF for use with pkg.py packaging. Required when building PKG files.
NPDRM Mode
NPDRM (PlayStation Network Platform Digital Rights Management) format is required when creating installable PKG packages.
Build Process Integration
Thefself tool is automatically integrated into the PSL1GHT build system through ppu_rules:
Typical Build Workflow
File Format Details
SELF Header Structure
The FSELF tool creates a complete SELF file with the following components:- SELF Header: Magic number, offsets, and metadata
- App Info: Application type and authentication information
- ELF Header: Standard ELF header from input file
- Program Headers: Segment information from ELF
- Section Info: Section metadata
- SCE Version: PlayStation 3 version information
- Control Info: Optional NPDRM control data
- ELF Data: The actual executable code and data
Example: Creating EBOOT.BIN
Common Use Cases
Development Testing
Package Creation
Dual Output
Source Code Reference
The fself implementation is located in:- Main:
tools/fself/source/main.c:3-95 - SELF Builder:
tools/fself/source/self.c - Utilities:
tools/fself/source/tools.c
Troubleshooting
Error: Failed reading ELF
Error: Failed reading ELF
The input file is not a valid ELF file or is corrupted. Ensure you compiled correctly:
Error: Could not open SELF for writing
Error: Could not open SELF for writing
Check file permissions and disk space. The output directory must be writable:
SELF doesn't run on PS3
SELF doesn't run on PS3
FSELF files only work on custom firmware. Ensure your PS3 has CFW installed and homebrew loading is enabled.
See Also
PS3 Loading
Load SELF files over network for testing
PKG Creation
Package SELF files for installation
SPRX Linker
Prepare ELF for SELF conversion
Build System
Integrate into your build process