Logo by Nickman (anonymous IP: 18.189.186.247,2258) | ||||||||||||||
| ||||||||||||||
Audio (343) Datatype (51) Demo (203) Development (602) Document (24) Driver (97) Emulation (149) Game (1011) Graphics (500) Library (118) Network (234) Office (66) Utility (932) Video (69) Total files: 4399 Full index file Recent index file
Amigans.net OpenAmiga Aminet IntuitionBase
Support the site
|
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 |
Copyright © 2004-2024 by Björn Hagström All Rights Reserved |