<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=ReadySoft_scenes</id>
	<title>ReadySoft scenes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=ReadySoft_scenes"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=ReadySoft_scenes&amp;action=history"/>
	<updated>2026-04-08T09:23:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=ReadySoft_scenes&amp;diff=15862&amp;oldid=prev</id>
		<title>Kostya: fill some information</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=ReadySoft_scenes&amp;diff=15862&amp;oldid=prev"/>
		<updated>2025-03-09T17:37:29Z</updated>

		<summary type="html">&lt;p&gt;fill some information&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The company has created several PC ports of classic FMV games such as [https://www.mobygames.com/game/4495/dragons-lair-escape-from-singes-castle/ Dragon's Lair], [https://www.mobygames.com/game/54843/space-ace/ Space Ace] or [https://www.mobygames.com/game/2083/brain-dead-13/ Brain Dead 13].&lt;br /&gt;
&lt;br /&gt;
While the formats for each game differ, there is a lot of common between them. For instance, they all employ RLE compression, splitting image into background and sprite and moving them separately.&lt;br /&gt;
&lt;br /&gt;
== Dragon's Lair scenes ==&lt;br /&gt;
Files start with 128-byte header, followed by chunks with the following header:&lt;br /&gt;
  2 bytes - some count&lt;br /&gt;
  4 bytes - chunk size&lt;br /&gt;
  4 bytes - unknown&lt;br /&gt;
  4 bytes - chunk type&lt;br /&gt;
&lt;br /&gt;
Chunk type is a four-character code telling what kinds of data it has inside. First letter being 'A' means RLE-encoded inter frame while 'B' chunks contain raw background image and audio. Images are stored in VGA banked mode (i.e. every fourth column).&lt;br /&gt;
&lt;br /&gt;
== Space Ace scenes ==&lt;br /&gt;
&lt;br /&gt;
Data is organised into chunks (32-bit next chunk offset plus 16-bit chunk ID) with the following meaning:&lt;br /&gt;
* 0 - background&lt;br /&gt;
* 1 - sprite&lt;br /&gt;
* 2 - audio&lt;br /&gt;
* 5 - frame output command?&lt;br /&gt;
* 6 - VGA palette update (starts with 16-bit number of colours, 32-bit offset to palette data)&lt;br /&gt;
&lt;br /&gt;
Background data starts with several 16-bit values: image translation vector (i.e. how to shift it up/left), update area X offset and width, update area Y offset and with. Then there are 32-bit image data size and offset (usually image starts immediately after the header).&lt;br /&gt;
Image is coded with RLE: one-byte opcode, 0x80 means end of decoding, negative values mean run, 0x00 is no-op, positive values mean copy. &lt;br /&gt;
&lt;br /&gt;
Sprite data starts with 16-bit coordinates, 32-bit mask offset and 32-bit data offset. Mask tells which 8x8 sprite blocks should be decoded and displayed over background.&lt;br /&gt;
&lt;br /&gt;
Audio data starts with 32-bit size and offset.&lt;br /&gt;
&lt;br /&gt;
Additionally images are coded for VGA banked mode (i.e. interlaced by every fourth column), in transposed form and background image has size 328x208.&lt;br /&gt;
&lt;br /&gt;
== Brain Dead 13 scenes ==&lt;br /&gt;
&lt;br /&gt;
Data is organised into chunks (32-bit next chunk offset plus 16-bit chunk ID) with the following meaning:&lt;br /&gt;
* 0 - background&lt;br /&gt;
* 1 - sprite&lt;br /&gt;
* 2 - audio&lt;br /&gt;
* 5 - frame output command?&lt;br /&gt;
* 6 - VGA palette update (starts with 16-bit number of colours, 32-bit offset to palette data)&lt;br /&gt;
* 10 - some header chunk&lt;br /&gt;
* 11 - audio header&lt;br /&gt;
&lt;br /&gt;
Background data starts with three pairs of 16-bit values: image translation vector (i.e. how to shift it up/left), update area coordinates, update area dimensions. Then there are 32-bit image data size and offset (usually image starts immediately after the header).&lt;br /&gt;
Image is coded with RLE: one-byte opcode, 0x80 means end of decoding, negative values mean run, positive values mean copy.&lt;br /&gt;
&lt;br /&gt;
Sprite data starts with 16-bit coordinates, 16-bit update flag, 32-bit sprite data size and offset. Image data is coded in the same manner but with two enhancements: opcode 0x00 means long RLE with actual 16-bit operation length, and there are two special pixel values (0x00 mean leave pixel unchanged and 0xFF mean copying data from the background frame).&lt;br /&gt;
&lt;br /&gt;
Audio data starts with 32-bit size and offset.&lt;br /&gt;
&lt;br /&gt;
[[Category:Game Formats]]&lt;/div&gt;</summary>
		<author><name>Kostya</name></author>
	</entry>
</feed>