A Python tool to extract resources from PalmOS PRC files.
prc2bin extracts all resources from a PalmOS PRC (Palm Resource Code) file and saves them as individual binary files. It also saves the PRC header to a separate .hdr file.
This is a modern Python reimplementation of the original C version by E.Sundaw (1999).
This tool requires Python 3.10 or higher and has no external dependencies.
# Make the script executable
chmod +x main.py
./main.py <input-file> <output-directory> [OPTIONS]
input-file: Path to the PRC file to extractoutput-directory: Directory where extracted files will be written (use . for current directory)-t, --by-type: Organize extracted files into subdirectories by resource type (e.g., code/, forms/, fonts/, bitmaps/)-v, --verbose: Print detailed header information including timestamps, creator ID, and validation warningsExtract to current directory:
./main.py myapp.prc .
Extract and organize by resource type:
./main.py myapp.prc extracted/ --by-type
This will extract:
<TYPE><ID>.bin (e.g., CODE0001.bin, tAIN1000.bin)myapp.prc.hdr--by-type, files are organized into human-readable subdirectories:
code/ - Executable code segmentsforms/ - UI form definitionsfonts/ - Font resourcesstrings/ - String resourcesbitmaps/ - Image resourcesapp-icons/ - Application iconscolor-tables/ - Color paletteslocales/ - Localization resourcesEach resource is saved with a filename composed of:
.bin extensionExample filenames:
CODE0001.bin - Code resource with ID 0x0001tAIN1000.bin - tAIN resource with ID 0x1000data03e8.bin - data resource with ID 0x03e8PalmOS PRC files contain:
All multi-byte values in PRC files are stored in big-endian (network) byte order.
Based on the original work by E.Sundaw sundaw@yahoo.com, 1999.