Audio (340) Datatype (50) Demo (203) Development (592) Document (22) Driver (100) Emulation (146) Game (984) Graphics (491) Library (112) Network (230) Office (65) Utility (907) Video (68)
Total files: 4310
Full index file Recent index file
Amigans.net OpenAmiga Aminet IntuitionBase
|
Sjcrunch | 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: | 772 (Current version) | | 772 (Accumulated) | Votes: | 1 (0/0) (30 days/7 days) | |
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)
sjcrunch INPUT.ELF OUTPUT.ELF [START ADDRESS]
The input and output ELF's may be the same file. The start address is optional,
and in hexadecimal format (ie: 0x1b00000)
Notes:
------
* 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
implementation
* 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
|