This website is not maintained anymore. However, I want to redirect you to this continuation (code), who continued the Stracciatella project in March 2013. He has precompiled versions available for Mac and Windows, and added the much desired freedom to play at any resolution. If you are looking for any more information related to JA2: Stracciatella, refer to the JA-Galaxy forum, which has been the central point of communication throughout the past decade (!). Much credits forever to Tron, for his great initiative to create Straciatella back in 2009.

JA2 modding tools

Platform independancy! All written in PHP - a work in progress.

SLF

For loading / extracting SLF files. Refer to sgp/LibraryDataBase.cc.

SLF Class

Commandline script for SLF extraction (requires SLF.php)

extract.php

Usage
php extract.php [path-to-slf-file] [absolute-path-to-output-folder]

JA2File

Opening, reading and writing JA2 encrypted-data files. Requires the JA2Encryption class.

JA2File Class

JA2Encryption

For interpreting encrypted-data from JA2 files. Refer to Build/Utils/Encrypted_File.cc.

JA2Encryption Class

MercData

For reading / writing the Prof.dat file.

MercData Class

Usage Example

I used these classes to build my custom IMPTEXT.EDT. To do this, I wrote a small IMPText class which allowed me to read and write text at a specific index of IMPTEXT.EDT.
class IMPText extends JA2File {
	private $entryLength = 400;
	private $entryCount  = 239;
	
	public function __construct($writing = false) {
		parent::__construct('IMPTEXT.EDT', $writing);
	}
	
	public function entryCount() {
		return $this->entryCount;
	}
	
	public function read($index) {
		return $this->readData($this->entryLength, $index * ($this->entryLength * 2));
	}
	
	public function write($index, $data) {
		return $this->writeData($data, $this->entryLength, $index * ($this->entryLength * 2));
	}
}