We just moved to a different server. Please be patient until all files and pages are restored and the MediaWiki software has been updated. Thank you

Realms of Arkania: Blade of Destiny

From REWiki
Jump to: navigation, search

Realms of Arkania: Blade of Destiny (Das Schwarze Auge: Die Schicksalsklinge) uses similar file formats as it's succesors (Realms of Arkania: Star Trail/Realms of Arkania: Shadows over Riva). If these file formats would be documented it would be rather easy to do a proof of concept engine/game as the underlying rpg system is a cut down version of the third edition of the German Das Schwarze Auge.

See also the documentation on the FreeDSA Project Page (German language)


Character encoding

All text is stored as uppercase C style strings (\0 byte indecates end of string) with some non-standard encoding:

60 " (begining quote)
62 " (ending quote)
64 newline (think '\n')
142 Ä
153 Ö
154 Ü
240 end red text (think HTML: "</font>")
241 start red text (think HTML: "<font color="red">")

File formats

.ADV Miles Sound System: Digital (Sampled) Sound Driver
.CHR Player-Character (same as .NPC)
.DAT Various (2 different container formats, the city 2.5d level layout, etc)
.DDT Unknown
.DNG Dungeon 2.5d level layout
.DTX Ingame (dungeon) text (same as .LXT)
.GAM Savegame
.NPC Non-Player-Character (same as .CHR)
.NVF Unknown
.LST Unknown
.LTX Ingame text (same as .DTX)
.TAB Unknown
.TLK Ingame dialog
.VOC Creative Labs Vocal file
.XMI Miles Sound System: Extended MIDI file
SAMPLE.AD Miles Sound System: Global Timbre Library


The main resource file BLADE.DAT/SCHICK.DAT starts with 308 file offsets (integer, 4 bytes). The filename-list is stored within the main executable, BLADEM.EXE (v3.09, offset=113419) or SCHICKM.EXE (v3.02 offset=116007):

std::string filenames[307] =
	"0154", // "\0"
	"0155", // "\0"
	"0158", // "\0"
	"OUTRO.XMI" // offset = 0 */


This file starts with a list of filename/offset entries:

struct DSAGEN_DAT_entry
	char filename[12];	// 12 bytes, note no \0 if the filename is 12 characters long
				   (8 characters (name) + 1 (".") + 3 (extension))
	int  offset;		//  4 bytes

You can calculate length of the entry-list using the first offset omitting empty entries. Note that some files stored within DSAGEN.DAT are compressed by the Amiga PowerPacker (PP20).

Personal tools