OS4 DepotLogo by Alkaron 
(anonymous IP:,2219) 

   Bug tracker
   Locale browser


   o Audio (343)
   o Datatype (51)
   o Demo (203)
   o Development (600)
   o Document (22)
   o Driver (97)
   o Emulation (148)
   o Game (1005)
   o Graphics (499)
   o Library (116)
   o Network (233)
   o Office (66)
   o Utility (927)
   o Video (69)

Total files: 4379

Full index file
Recent index file



Support the site

 Readme for:  Development » Cross » sjcrunch.lha


Description: a Playstation 2 (PS2) elf cruncher.
Download: sjcrunch.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 75kb
Version: 2.1
Date: 29 Sep 2008
Author: Sjeep, AmigaOS 4.x compile by Spot / Up Rough
Submitter: Spot / Up Rough
Email: spot/triad se
Category: development/cross
License: Other
Distribute: yes
Min OS Version: 4.0
FileID: 4109
Comments: 0
Snapshots: 0
Videos: 0
Downloads: 788  (Current version)
788  (Accumulated)
Votes: 1 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
SjCRUNCH v2.1 - by Sjeep

SjCRUNCH is an ELF packer for the PS2. It uses the LZO compression library to
create a compressed version of the input elf, which is then decompressed (VERY 
quickly, thanks to the LZO algo) at runtime. It consists of a PC-side
tool and script, and a EE-side decompression stub. The PC-side tool creates a
"memory image" of the input ELF then compresses this image. The compressed 
image is then linked with the EE-side decompression stub, forming a
self-extracting elf.

SjCRUNCH relies on ee-gcc, ee-as and ee-ld. You must have these tools installed
before you can use SjCRUNCH. Also, the PC-side script is written for the bash
shell - so you must either have bash installed (for linux, cygwin, whatever) or
re-write the script for a different interpreter :)

Usage directions:

Extract the contents of the archive. Then, move the "sjcrunch" file from the
script/ directory to a directory within your path (ie: /usr/local/ps2dev/bin).
Open the sjcrunch script in a text editor, and edit the following variables
to match your setup: 

SJCRUNCH_PATH - this must point to the script/ dir from the SjCRUNCH archive.
SJCRUNCH_PACKER - this must point to the packer executable (which is generally
                  stored within the script/ directory).
EE_GCC - this must point to ee-gcc. If ee-gcc is not in your path, then it must
         be an absolute filename.

Now you are ready to go. To pack an elf, use the following command: (assuming
that sjcrunch is now correctly install and is in your path)


The input and output ELF's may be the same file. The start address is optional,
and in hexadecimal format (ie: 0x1b00000)


* The start address of the resulting packed elf may be specified when sjcrunch
  is invoked. Use this to prevent elf load location conflicts.
* Adresd has done some experimenting with the RNC compression algorithm, and
  has modified SjCRUNCH to use this. In general, RNC does achieve a better
  compression ratio than LZO. Contact Adresd if you are interested in the RNC
* Have fun :)

Changes from v2.0:

* The depacker stub now passes arguments to the packed elf (dont know why
  I wasnt doing this originally).
* Fixed a problem preventing ELF's packed with SjCRUNCH from loading via
  the AR2 swap.

Changes from v0.3:

* SjCRUNCH now builds the elf "memory image" using program headers instead of 
  elf section headers.
* The de-packed elf is now started using the ExecPS2 system call, which is much
  safer than simply jumping to the de-packed code (which the older release did).
* The start address of the resulting packed elf may now be specified on the
  command line.
* Works with GCC 3.2.2

- Sjeep

e-mail: sjeep()gamebase.ca

Copyright © 2004-2024 by Björn Hagström All Rights Reserved