<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aybe</id>
	<title>ModdingWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aybe"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Aybe"/>
	<updated>2026-05-15T05:12:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Dynablaster&amp;diff=10617</id>
		<title>Dynablaster</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Dynablaster&amp;diff=10617"/>
		<updated>2022-08-01T05:36:11Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Add Dynablaster sprite sheets&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
{{NoModdingInfo}}&lt;br /&gt;
&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
The IMG files in the GFX directory are sprite sheets in [[LBM Format]] with most having a corrupt header.&lt;br /&gt;
&lt;br /&gt;
The following C# program will create corrected copies of them as .LBM files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using System.Buffers.Binary;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
var paths = Directory.GetFiles(Environment.CurrentDirectory, &amp;quot;*.img&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
foreach (var path in paths)&lt;br /&gt;
{&lt;br /&gt;
    using var src = File.OpenRead(path);&lt;br /&gt;
    using var tgt = File.Create(Path.ChangeExtension(path, &amp;quot;.lbm&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    src.CopyTo(tgt);&lt;br /&gt;
&lt;br /&gt;
    tgt.Position = default;&lt;br /&gt;
&lt;br /&gt;
    using var writer = new BinaryWriter(tgt, Encoding.Default, true);&lt;br /&gt;
&lt;br /&gt;
    var length = (int)src.Length - 8;&lt;br /&gt;
&lt;br /&gt;
    if (BitConverter.IsLittleEndian)&lt;br /&gt;
    {&lt;br /&gt;
        length = BinaryPrimitives.ReverseEndianness(length);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    writer.Write(Encoding.ASCII.GetBytes(&amp;quot;FORM&amp;quot;));&lt;br /&gt;
    writer.Write(length);&lt;br /&gt;
    writer.Write(Encoding.ASCII.GetBytes(&amp;quot;ILBM&amp;quot;));&lt;br /&gt;
    writer.Write(Encoding.ASCII.GetBytes(&amp;quot;BMHD&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Dynablaster.png&amp;diff=10616</id>
		<title>File:Dynablaster.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Dynablaster.png&amp;diff=10616"/>
		<updated>2022-08-01T05:35:28Z</updated>

		<summary type="html">&lt;p&gt;Aybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Quarantine&amp;diff=10204</id>
		<title>Quarantine</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Quarantine&amp;diff=10204"/>
		<updated>2021-11-26T22:47:01Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Levels (preliminary)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
 | Demo = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quarantine&#039;&#039;&#039; is a vehicular first person shooter set in a dystopian city. It was developed by [[:Category:Imagexcel|Imagexcel]] and published by [[:Category:GameTek|GameTek]] in 1994.&lt;br /&gt;
&lt;br /&gt;
The game&#039;s executable is a 32-bit [[Linear Executable (LX/LE) Format|Linear Executable]] loaded by the DOS4GW 16-bit extender. It was built with the Watcom C/C++ tool suite.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FLI&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.IMG&lt;br /&gt;
 | Format = [[Graphics Interchange Format|GIF]] with modified signature (&amp;quot;&amp;lt;tt&amp;gt;IMAGEX&amp;lt;/tt&amp;gt;&amp;quot; instead of standard &amp;quot;&amp;lt;tt&amp;gt;GIF87a&amp;lt;/tt&amp;gt;&amp;quot;)&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Fullscreen/backdrop graphics&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.SPR&lt;br /&gt;
 | Format = Simple package of [[Raw VGA Image]]s&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sprites&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:GameTek]]&lt;br /&gt;
[[Category:Imagexcel]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
&lt;br /&gt;
=== FARE[?].ENC ===&lt;br /&gt;
&lt;br /&gt;
Transcode the file, XOR-ing every byte read with 0x55, the file now looks like a structured text file:&lt;br /&gt;
&lt;br /&gt;
# the person talking, matched with regex &amp;lt;code&amp;gt;^\s*/\s*(\P{C}+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
# the person quotes, matched with regex &amp;lt;code&amp;gt;^\s*(&amp;quot;\P{C}+&amp;quot;,?)\s*$&amp;lt;/code&amp;gt;&lt;br /&gt;
# goto step 1, repeat until EOF&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 / PROFESSIONAL&lt;br /&gt;
 &amp;quot;SO, UH. DO YOU THINK YOU COULD GIVE ME A RIDE LITTLE BUDDY? I&#039;M IN A BIT OF A RUSH.&amp;quot;,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Levels (preliminary) ==&lt;br /&gt;
&lt;br /&gt;
Each level is constituted of three files, e.g. CITY.BLK, CITY.BSP, CITY.MAP.&lt;br /&gt;
&lt;br /&gt;
=== *.MAP ===&lt;br /&gt;
&lt;br /&gt;
# read an [[UINT16LE]], this is the map width&lt;br /&gt;
# read an [[UINT16LE]], this is the map height&lt;br /&gt;
# follows &amp;lt;code&amp;gt;width * height&amp;lt;/code&amp;gt; tiles as [[UINT16LE]]&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
[[User:aybe|aybe]] for the ENC format.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Quarantine&amp;diff=10203</id>
		<title>Quarantine</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Quarantine&amp;diff=10203"/>
		<updated>2021-11-26T22:15:11Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Reversed ENC format :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
 | Demo = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Quarantine&#039;&#039;&#039; is a vehicular first person shooter set in a dystopian city. It was developed by [[:Category:Imagexcel|Imagexcel]] and published by [[:Category:GameTek|GameTek]] in 1994.&lt;br /&gt;
&lt;br /&gt;
The game&#039;s executable is a 32-bit [[Linear Executable (LX/LE) Format|Linear Executable]] loaded by the DOS4GW 16-bit extender. It was built with the Watcom C/C++ tool suite.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.FLI&lt;br /&gt;
 | Format = [[FLIC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.IMG&lt;br /&gt;
 | Format = [[Graphics Interchange Format|GIF]] with modified signature (&amp;quot;&amp;lt;tt&amp;gt;IMAGEX&amp;lt;/tt&amp;gt;&amp;quot; instead of standard &amp;quot;&amp;lt;tt&amp;gt;GIF87a&amp;lt;/tt&amp;gt;&amp;quot;)&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Fullscreen/backdrop graphics&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.SPR&lt;br /&gt;
 | Format = Simple package of [[Raw VGA Image]]s&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sprites&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:GameTek]]&lt;br /&gt;
[[Category:Imagexcel]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
&lt;br /&gt;
=== FARE[?].ENC ===&lt;br /&gt;
&lt;br /&gt;
Transcode the file, XOR-ing every byte read with 0x55, the file now looks like a structured text file:&lt;br /&gt;
&lt;br /&gt;
# the person talking, matched with regex &amp;lt;code&amp;gt;^\s*/\s*(\P{C}+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
# the person quotes, matched with regex &amp;lt;code&amp;gt;^\s*(&amp;quot;\P{C}+&amp;quot;,?)\s*$&amp;lt;/code&amp;gt;&lt;br /&gt;
# goto step 1, repeat until EOF&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
 / PROFESSIONAL&lt;br /&gt;
 &amp;quot;SO, UH. DO YOU THINK YOU COULD GIVE ME A RIDE LITTLE BUDDY? I&#039;M IN A BIT OF A RUSH.&amp;quot;,&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
[[User:aybe|aybe]] for the ENC format.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File_format_data_types&amp;diff=10146</id>
		<title>File format data types</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File_format_data_types&amp;diff=10146"/>
		<updated>2021-09-26T14:49:54Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Add BitConverter.IsLittleEndian&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the data types used in the file format descriptions on the wiki.  They are loosely based on common C/C++ data types, and should be used throughout the wiki for consistency.&lt;br /&gt;
&lt;br /&gt;
== Type list ==&lt;br /&gt;
&lt;br /&gt;
==== Numeric values ====&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT8||Unsigned 8-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||Unsigned 16-bit integer in little-endian format&lt;br /&gt;
|-&lt;br /&gt;
|UINT16BE||Unsigned 16-bit integer in big-endian format&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE||Unsigned 32-bit integer in little-endian format&lt;br /&gt;
|-&lt;br /&gt;
|UINT32BE||Unsigned 32-bit integer in big-endian format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Signed equivalents are the same without the leading U, i.e. &amp;lt;tt&amp;gt;INT8&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;INT16LE&amp;lt;/tt&amp;gt;, etc.  Unless otherwise stated, the format is in [[wikipedia:Two&#039;s complement|two&#039;s complement]] (where a UINT8 value of 255 is -1 as an INT8, for example.)&lt;br /&gt;
&lt;br /&gt;
==== Floating point values ====&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|Single||32-bit float (IEEE-754)&lt;br /&gt;
|-&lt;br /&gt;
|[[Turbo Pascal Real|Real]]||48-bit float (Pascal specific)&lt;br /&gt;
|-&lt;br /&gt;
|Double||64-bit float (IEEE-754)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All floating point values are signed. They usually contain a sign bit, exponent, and mantissa.&lt;br /&gt;
&lt;br /&gt;
==== Character strings ====&lt;br /&gt;
&lt;br /&gt;
Characters and strings are all [[wp:Code page 437|CP437]] unless otherwise stated.  On modern platforms, this means the bytes will need to be converted to the local character set (such as UTF-8) in order for the glyphs to match what was originally intended.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|char[x]||String &#039;&#039;x&#039;&#039; bytes/characters long, may or may not be null terminated (each use should indicate which)&lt;br /&gt;
|-&lt;br /&gt;
|char||Single 8-bit character&lt;br /&gt;
|-&lt;br /&gt;
|ASCIIZ||A C-style string (variable-length, terminated with a single NULL/0x00 value)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Misc data types ====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE||Same as UINT8 but conceptually for generic data rather than numeric values (e.g. UINT8 would be used for a number, while a BYTE would be used for a bitfield)&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[x]||Block of data &#039;&#039;x&#039;&#039; bytes long&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Big endian vs little endian ==&lt;br /&gt;
&lt;br /&gt;
For numeric values larger than a single byte, the endianness specifies how the values are split over multiple bytes.  For example a hex value of 0x1234AABB when written to a file will take up two bytes, as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Endian!!Bytes in file&lt;br /&gt;
|-&lt;br /&gt;
|Big||&amp;lt;code&amp;gt;12 34 AA BB&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Little||&amp;lt;code&amp;gt;BB AA 34 12&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For those languages that allow direct memory access such as C/C++, converting an integer value to a byte array will reveal the value stored in-memory in the same order as the table above.&lt;br /&gt;
&lt;br /&gt;
Normally when reading or writing a variable to a file a programmer will simply pass the memory address of the variable, resulting in the file mirroring the byte order in memory.  This is no problem when reading the variable back in on the same system, as the byte order will match.  However when reading data from a different system (for example using an Intel PC to read files from a PowerPC Mac) the byte order will be opposite to what the system expects and the programmer must convert the values manually.&lt;br /&gt;
&lt;br /&gt;
=== Conversion examples ===&lt;br /&gt;
&lt;br /&gt;
If a value is being read on the same system (little to little or big to big) then no action is required.  If the systems are different, then the values must be swapped.  The following sections list examples for different programming languages.&lt;br /&gt;
&lt;br /&gt;
==== C/C++ ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 16-bit&lt;br /&gt;
int in = 0x1234;&lt;br /&gt;
int out = ((in &amp;amp; 0xFF) &amp;lt;&amp;lt; 8) | (in &amp;gt;&amp;gt; 8);&lt;br /&gt;
// out should now be 0x3412&lt;br /&gt;
&lt;br /&gt;
// 32-bit&lt;br /&gt;
int in = 0x1234AABB;&lt;br /&gt;
int out =&lt;br /&gt;
  ((in &amp;amp; 0xFF) &amp;lt;&amp;lt; 24) |&lt;br /&gt;
  ((in &amp;amp; 0xFF00) &amp;lt;&amp;lt; 8) |&lt;br /&gt;
  ((in &amp;amp; 0xFF0000) &amp;gt;&amp;gt; 8) |&lt;br /&gt;
  (in &amp;gt;&amp;gt; 24);&lt;br /&gt;
// out should now be 0xBBAA3412&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== C# .NET ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Int16 ByteSwap16(Int16 inValue)&lt;br /&gt;
{&lt;br /&gt;
  return (Int16)(&lt;br /&gt;
    ((inValue &amp;amp; 0xFF) &amp;lt;&amp;lt; 8) |&lt;br /&gt;
    ((inValue &amp;gt;&amp;gt; 8) &amp;amp; 0xFF)&lt;br /&gt;
    );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Int32 ByteSwap32(Int32 inValue)&lt;br /&gt;
{&lt;br /&gt;
  return (Int32)(&lt;br /&gt;
    ((inValue &amp;amp; 0xFF) &amp;lt;&amp;lt; 24) |&lt;br /&gt;
    ((inValue &amp;amp; 0xFF00) &amp;lt;&amp;lt; 8) |&lt;br /&gt;
    ((inValue &amp;amp; 0xFF0000) &amp;gt;&amp;gt; 8) |&lt;br /&gt;
    ((inValue &amp;gt;&amp;gt; 24) &amp;amp; 0xFF)&lt;br /&gt;
    );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Visual Basic .NET ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Function ByteSwap16(ByVal InValue as Int16) as Int16&lt;br /&gt;
  Return ((InValue And &amp;amp;HFF) &amp;lt;&amp;lt; 8) Or ((InValue &amp;gt;&amp;gt; 8) And &amp;amp;HFF)&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Function ByteSwap32(ByVal InValue as Int32) as Int32&lt;br /&gt;
  Return ((InValue And &amp;amp;HFF) &amp;lt;&amp;lt; 24) Or _&lt;br /&gt;
         ((InValue And &amp;amp;HFF00) &amp;lt;&amp;lt; 8) Or _&lt;br /&gt;
         ((InValue And &amp;amp;HFF0000) &amp;gt;&amp;gt; 8) Or _&lt;br /&gt;
         ((InValue &amp;gt;&amp;gt; 24) And &amp;amp;HFF)&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: endianness of the platform in .NET can be known using the value of &#039;&#039;System.BitConverter.IsLittleEndian&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Category:Fighting&amp;diff=9945</id>
		<title>Category:Fighting</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Category:Fighting&amp;diff=9945"/>
		<updated>2021-08-09T06:34:02Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Editing Category:Fighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains all fighting games in the wiki.&lt;br /&gt;
&lt;br /&gt;
[[Category:Game Genres]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Category:Fighting&amp;diff=9943</id>
		<title>Category:Fighting</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Category:Fighting&amp;diff=9943"/>
		<updated>2021-08-09T05:23:49Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Creating Category:Fighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains all fighting games in the wiki.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9942</id>
		<title>Super Street Fighter II TURBO</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9942"/>
		<updated>2021-08-09T05:22:33Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Category:Fighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Super Street Fighter II Turbo is a fighting game released for the arcades by Capcom in Japan on February 23, 1994, in North America on February 23 and March 26, 1994 (beta) and in Europe in March 1994 (beta). It is the fifth installment in the Street Fighter II sub-series of Street Fighter games, following Super Street Fighter II: The New Challengers. (from [https://en.wikipedia.org/wiki/Super_Street_Fighter_II_Turbo Wikipedia])&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.spr&lt;br /&gt;
 | Format = [[Super Street Fighter II TURBO Sprite Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Sprite graphics&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Fighting]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO.png&amp;diff=9941</id>
		<title>File:Super Street Fighter II TURBO.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO.png&amp;diff=9941"/>
		<updated>2021-08-09T05:15:23Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Aybe uploaded a new version of File:Mod-Super Street Fighter II TURBO.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO_Sprite_Format&amp;diff=9940</id>
		<title>Super Street Fighter II TURBO Sprite Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO_Sprite_Format&amp;diff=9940"/>
		<updated>2021-08-09T05:05:06Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Editing Super Street Fighter II TURBO Sprite Format (section)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Image Infobox&lt;br /&gt;
 | Hardware1 = VGA&lt;br /&gt;
 | Depth = 8-bit (VGA)&lt;br /&gt;
 | MinSize = Unknown&lt;br /&gt;
 | MaxSize = Unknown&lt;br /&gt;
 | Palette = External&lt;br /&gt;
 | NumPlanes = 1&lt;br /&gt;
 | HasTransparency = Yes&lt;br /&gt;
 | HasHitmap = Yes&lt;br /&gt;
 | Games = {{Game|Super Street Fighter II TURBO}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This format is used by [[Super Street Fighter II TURBO]] to store sprite graphics.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
Most of the files are RNC-compressed and therefore should be decompressed beforehand.&lt;br /&gt;
&lt;br /&gt;
Some files may store multiple frames each one after the other, this, without any indication.&lt;br /&gt;
&lt;br /&gt;
The associated external [[VGA Palette]] may have the same file name, or not if it&#039;s a generic one.&lt;br /&gt;
&lt;br /&gt;
Sprites used during &#039;&#039;Continue&#039;&#039; presumably are XOR-ed as some regions have diverging indices.&lt;br /&gt;
&lt;br /&gt;
== Algorithm ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out why it does work for all files but LEVELS\DHALSIM\ANIMS.SPR.}}&lt;br /&gt;
&lt;br /&gt;
The format is a simple form of [[RLE Compression]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Collections.ObjectModel;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
namespace SSF2T&lt;br /&gt;
{&lt;br /&gt;
    public class Sprite&lt;br /&gt;
    {&lt;br /&gt;
        public Sprite(Stream stream)&lt;br /&gt;
        {&lt;br /&gt;
            if (stream == null)&lt;br /&gt;
                throw new ArgumentNullException(nameof(stream));&lt;br /&gt;
&lt;br /&gt;
            using var reader = new BinaryReader(stream, Encoding.Default, true);&lt;br /&gt;
&lt;br /&gt;
            Width = reader.ReadUInt16();&lt;br /&gt;
            Height = reader.ReadUInt16();&lt;br /&gt;
&lt;br /&gt;
            var pixels = new byte[Width * Height];&lt;br /&gt;
&lt;br /&gt;
            var index = 0;&lt;br /&gt;
&lt;br /&gt;
            for (var i = 0; i &amp;lt; Height; i++)&lt;br /&gt;
            {&lt;br /&gt;
                while (true)&lt;br /&gt;
                {&lt;br /&gt;
                    var b = reader.ReadByte();&lt;br /&gt;
&lt;br /&gt;
                    if (b == 0)&lt;br /&gt;
                    {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    if (b &amp;lt; 128)&lt;br /&gt;
                    {&lt;br /&gt;
                        index += b;&lt;br /&gt;
                        continue;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    for (var j = 0; j &amp;lt; b - 128; j++)&lt;br /&gt;
                    {&lt;br /&gt;
                        pixels[index++] = reader.ReadByte();&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Pixels = new ReadOnlyCollection&amp;lt;byte&amp;gt;(pixels);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public ushort Width { get; }&lt;br /&gt;
&lt;br /&gt;
        public ushort Height { get; }&lt;br /&gt;
&lt;br /&gt;
        public IReadOnlyList&amp;lt;byte&amp;gt; Pixels { get; }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Reverse-engineered by aybe on 9th of August 2021.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO_Sprite_Format.png&amp;diff=9939</id>
		<title>File:Super Street Fighter II TURBO Sprite Format.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO_Sprite_Format.png&amp;diff=9939"/>
		<updated>2021-08-09T05:01:38Z</updated>

		<summary type="html">&lt;p&gt;Aybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO_Sprite_Format&amp;diff=9938</id>
		<title>Super Street Fighter II TURBO Sprite Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO_Sprite_Format&amp;diff=9938"/>
		<updated>2021-08-09T05:01:21Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Creating Super Street Fighter II TURBO Sprite Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Image Infobox&lt;br /&gt;
 | Hardware1 = VGA&lt;br /&gt;
 | Depth = 8-bit (VGA)&lt;br /&gt;
 | MinSize = Unknown&lt;br /&gt;
 | MaxSize = Unknown&lt;br /&gt;
 | Palette = External&lt;br /&gt;
 | NumPlanes = 1&lt;br /&gt;
 | HasTransparency = Yes&lt;br /&gt;
 | HasHitmap = Yes&lt;br /&gt;
 | Games = {{Game|Super Street Fighter II TURBO}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This format is used by [[Super Street Fighter II TURBO]] to store sprite graphics.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
Most of the files are RNC-compressed and therefore should be decompressed beforehand.&lt;br /&gt;
&lt;br /&gt;
Some files may store multiple frames each one after the other, this, without any indication.&lt;br /&gt;
&lt;br /&gt;
The associated external [[VGA Palette]] may have the same file name, or not if it&#039;s a generic one.&lt;br /&gt;
&lt;br /&gt;
== Algorithm ==&lt;br /&gt;
&lt;br /&gt;
{{TODO|Figure out why it does work for all files but LEVELS\DHALSIM\ANIMS.SPR.}}&lt;br /&gt;
&lt;br /&gt;
The format is a simple form of [[RLE Compression]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Collections.ObjectModel;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
namespace SSF2T&lt;br /&gt;
{&lt;br /&gt;
    public class Sprite&lt;br /&gt;
    {&lt;br /&gt;
        public Sprite(Stream stream)&lt;br /&gt;
        {&lt;br /&gt;
            if (stream == null)&lt;br /&gt;
                throw new ArgumentNullException(nameof(stream));&lt;br /&gt;
&lt;br /&gt;
            using var reader = new BinaryReader(stream, Encoding.Default, true);&lt;br /&gt;
&lt;br /&gt;
            Width = reader.ReadUInt16();&lt;br /&gt;
            Height = reader.ReadUInt16();&lt;br /&gt;
&lt;br /&gt;
            var pixels = new byte[Width * Height];&lt;br /&gt;
&lt;br /&gt;
            var index = 0;&lt;br /&gt;
&lt;br /&gt;
            for (var i = 0; i &amp;lt; Height; i++)&lt;br /&gt;
            {&lt;br /&gt;
                while (true)&lt;br /&gt;
                {&lt;br /&gt;
                    var b = reader.ReadByte();&lt;br /&gt;
&lt;br /&gt;
                    if (b == 0)&lt;br /&gt;
                    {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    if (b &amp;lt; 128)&lt;br /&gt;
                    {&lt;br /&gt;
                        index += b;&lt;br /&gt;
                        continue;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    for (var j = 0; j &amp;lt; b - 128; j++)&lt;br /&gt;
                    {&lt;br /&gt;
                        pixels[index++] = reader.ReadByte();&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Pixels = new ReadOnlyCollection&amp;lt;byte&amp;gt;(pixels);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public ushort Width { get; }&lt;br /&gt;
&lt;br /&gt;
        public ushort Height { get; }&lt;br /&gt;
&lt;br /&gt;
        public IReadOnlyList&amp;lt;byte&amp;gt; Pixels { get; }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Reverse-engineered by aybe on 9th of August 2021.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9937</id>
		<title>Super Street Fighter II TURBO</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9937"/>
		<updated>2021-08-09T04:43:08Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Editing Super Street Fighter II TURBO - SPR Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Super Street Fighter II Turbo is a fighting game released for the arcades by Capcom in Japan on February 23, 1994, in North America on February 23 and March 26, 1994 (beta) and in Europe in March 1994 (beta). It is the fifth installment in the Street Fighter II sub-series of Street Fighter games, following Super Street Fighter II: The New Challengers. (from [https://en.wikipedia.org/wiki/Super_Street_Fighter_II_Turbo Wikipedia])&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.spr&lt;br /&gt;
 | Format = [[Super Street Fighter II TURBO Sprite Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Sprite graphics&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO.png&amp;diff=9936</id>
		<title>File:Super Street Fighter II TURBO.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Super_Street_Fighter_II_TURBO.png&amp;diff=9936"/>
		<updated>2021-08-09T04:39:59Z</updated>

		<summary type="html">&lt;p&gt;Aybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9935</id>
		<title>Super Street Fighter II TURBO</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Super_Street_Fighter_II_TURBO&amp;diff=9935"/>
		<updated>2021-08-09T04:39:34Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Creating Super Street Fighter II TURBO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Super Street Fighter II Turbo is a fighting game released for the arcades by Capcom in Japan on February 23, 1994, in North America on February 23 and March 26, 1994 (beta) and in Europe in March 1994 (beta). It is the fifth installment in the Street Fighter II sub-series of Street Fighter games, following Super Street Fighter II: The New Challengers. (from [https://en.wikipedia.org/wiki/Super_Street_Fighter_II_Turbo Wikipedia])&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9151</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9151"/>
		<updated>2020-08-19T16:51:45Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each. &lt;br /&gt;
&lt;br /&gt;
Changing the first 256 bytes will screw particles for player wheels.&lt;br /&gt;
&lt;br /&gt;
Changing lots of its content makes DOSBox print &#039;&#039;DYNX86: Can&#039;t run code in this page !&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen. &lt;br /&gt;
&lt;br /&gt;
These are offsets to coordinates X = 0, Y = 60 on screen, when values are incremented, the players drawn in mini map are all offset by the same amount of pixels. &lt;br /&gt;
&lt;br /&gt;
When all set to zero, all players are all drawn at X = 0, Y = 60 position on screen, which confirms the previous theory.&lt;br /&gt;
&lt;br /&gt;
Its content is best described as a sawtooth wave pattern where values starts at 0x00 and increments (possibly) up to 0x4D, over and over until EOF. &lt;br /&gt;
&lt;br /&gt;
It&#039;s hard to tell why exactly it&#039;s content is like that but certainly it&#039;s a pre-computed table of some sort to save some CPU cycles.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
* As an addition to the previous note, since files aren&#039;t compressed, you can also directly edit &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt; content in a hex-editor for a quick roundtrip when trying to understand its secrets.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9150</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9150"/>
		<updated>2020-08-19T16:49:07Z</updated>

		<summary type="html">&lt;p&gt;Aybe: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each. &lt;br /&gt;
&lt;br /&gt;
Changing the first 256 bytes will screw particles for player wheels.&lt;br /&gt;
&lt;br /&gt;
Changing lots of its content makes DOSBox print &#039;&#039;DYNX86: Can&#039;t run code in this page !&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen. &lt;br /&gt;
&lt;br /&gt;
These are offsets to coordinates X = 0, Y = 60 on screen, when values are incremented, the players drawn in mini map are all offset by the same amount of pixels. &lt;br /&gt;
&lt;br /&gt;
When all set to zero, all players are all drawn at X = 0, Y = 60 position on screen, which confirms the previous theory.&lt;br /&gt;
&lt;br /&gt;
Its content is best described as a sawtooth wave pattern where values starts at 0x00 and increments (possibly) up to 0x4D, over and over until EOF. &lt;br /&gt;
&lt;br /&gt;
It&#039;s hard to tell why exactly it&#039;s content is like that but certainly it&#039;s a pre-computed table of some sort to save some CPU cycles.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9149</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9149"/>
		<updated>2020-08-19T16:48:02Z</updated>

		<summary type="html">&lt;p&gt;Aybe: map.xy more info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each. &lt;br /&gt;
&lt;br /&gt;
Changing the first 256 bytes will screw particles for player wheels.&lt;br /&gt;
&lt;br /&gt;
Changing lots of its content makes DOSBox print &#039;&#039;DYNX86: Can&#039;t run code in this page !&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen. &lt;br /&gt;
&lt;br /&gt;
These are offsets to coordinates X = 0, Y = 60 on screen, when values are incremented, the players drawn in mini map are all offset by the same amount of pixels. &lt;br /&gt;
&lt;br /&gt;
When all set to zero, all players are all drawn at X = 0, Y = 0 position on screen, which confirms the previous theory.&lt;br /&gt;
&lt;br /&gt;
Its content is best described as a sawtooth wave pattern where values starts at 0x00 and increments (possibly) up to 0x4D, over and over until EOF. &lt;br /&gt;
&lt;br /&gt;
It&#039;s hard to tell why exactly it&#039;s content is like that but certainly it&#039;s a pre-computed table of some sort to save some CPU cycles.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9148</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9148"/>
		<updated>2020-08-19T16:31:11Z</updated>

		<summary type="html">&lt;p&gt;Aybe: map.xy more info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each. &lt;br /&gt;
&lt;br /&gt;
Changing the first 256 bytes will screw particles for player wheels.&lt;br /&gt;
&lt;br /&gt;
Changing lots of its content makes DOSBox print &#039;&#039;DYNX86: Can&#039;t run code in this page !&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen.&lt;br /&gt;
&lt;br /&gt;
These are offsets to a yet to be found point on screen, when values are incremented, the players drawn in mini map are all offset by the same amount of pixels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9147</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9147"/>
		<updated>2020-08-18T18:49:14Z</updated>

		<summary type="html">&lt;p&gt;Aybe: wacky.sdx more info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each. &lt;br /&gt;
&lt;br /&gt;
Changing the first 256 bytes will screw particles for player wheels.&lt;br /&gt;
&lt;br /&gt;
Changing lots of its content makes DOSBox print &#039;&#039;DYNX86: Can&#039;t run code in this page !&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9146</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9146"/>
		<updated>2020-08-18T18:10:08Z</updated>

		<summary type="html">&lt;p&gt;Aybe: map.xy more info !&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Related to mini-map view (4096 bytes = 64*64 tiles), when not present, displays garbage at middle of screen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9145</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9145"/>
		<updated>2020-08-18T18:01:45Z</updated>

		<summary type="html">&lt;p&gt;Aybe: map.xy info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Size matches with other map formats, i.e. 4096 bytes equals 64*64 tiles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9144</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9144"/>
		<updated>2020-08-18T17:58:40Z</updated>

		<summary type="html">&lt;p&gt;Aybe: wacky.sdx info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Starts with an [[UINT16LE]] of 30, followed by 30 structs of 302 bytes each.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Music_and_Sound_Effects&amp;diff=9143</id>
		<title>Wacky Wheels Music and Sound Effects</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Music_and_Sound_Effects&amp;diff=9143"/>
		<updated>2020-08-18T17:30:42Z</updated>

		<summary type="html">&lt;p&gt;Aybe: new url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the files containing music and sound effects in [[Wacky Wheels]].&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
Wacky Wheels store all of its music in two formats: AdLib [[KLM Format]] and [[MID Format|MIDI Format]]. The MIDI files are played if you select “General MIDI” as your music device in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;; the KLM files are used otherwise. To hear the MIDI files being played, you need to use a MIDI synthesizer (either in software or hardware).&lt;br /&gt;
&lt;br /&gt;
[[Camoto]] has partial support for KLM files. There are many editors available for MIDI files.&lt;br /&gt;
&lt;br /&gt;
There was one song written for Wacky Wheels that was not used or included in the game, named &#039;&#039;Everything&#039;&#039;. The MIDI version of this song is available at Phil’s [https://web.archive.org/web/20171022173755/http://yellowantphil.com/wacky_wheels/music.php Wacky Wheels Music] page. That page also lists where in the game each music file is used.&lt;br /&gt;
&lt;br /&gt;
== Sound effects ==&lt;br /&gt;
Each sound effect in Wacky Wheels is stored in either one or three file formats. All sound effects are stored in [[VOC Format]]. Most sound effects are also stored as PC speaker sound effects and as AdLib sound effects.&lt;br /&gt;
&lt;br /&gt;
Each of the 36 VOC format sound effects are stored in &amp;lt;tt&amp;gt;[[DAT Format (Wacky Wheels)|wacky.dat]]&amp;lt;/tt&amp;gt;. There are 26 sound effects in each of the other two formats. These files are stored in &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;, which is an [[AudioT Format]] file. The header for this file is stored in &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; Both &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;. [[User:Yellowantphil|Phil]] has a rudimentary extractor for this file if you want it.&lt;br /&gt;
&lt;br /&gt;
The PC speaker sound effects are used if you select “PC Speaker” as your Sound fx device in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. When selecting SoundBlaster, Sound Source or Gravis Ultrasound, the &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt; files are used. I was unable to test the Pro AudioSpectrum option. I don’t know if the AdLib sound effects are ever used.&lt;br /&gt;
&lt;br /&gt;
When replacing &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt; files, the new file needs to be no longer in file size than the old file.&lt;br /&gt;
&lt;br /&gt;
The tables below briefly describe each VOC file. The index listed is the index of the corresponding PC speaker file in &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. Files are numbered 0–25. The AdLib files have the same index and are found in the second section of &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;float: left;&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name !! Index !! Description&lt;br /&gt;
|-&lt;br /&gt;
| backfire.voc || Unknown || Noise when you start accelerating&lt;br /&gt;
|-&lt;br /&gt;
| belch.voc || Unknown || The Dopefish’s sound&lt;br /&gt;
|-&lt;br /&gt;
| bell.voc || Unknown || Last lap warning bell&lt;br /&gt;
|-&lt;br /&gt;
| blombo.voc || Unknown || Blombo’s sound&lt;br /&gt;
|-&lt;br /&gt;
| boom.voc || Unknown || Explosion in two-player shootout&lt;br /&gt;
|-&lt;br /&gt;
| clang.voc || Unknown || Clang&lt;br /&gt;
|-&lt;br /&gt;
| drop.voc || Unknown || Sound when dropping an item&lt;br /&gt;
|-&lt;br /&gt;
| flame.voc || Unknown || Sound when firing fireballs&lt;br /&gt;
|-&lt;br /&gt;
| gig1.voc || Unknown || Giggle key #1 sound&lt;br /&gt;
|-&lt;br /&gt;
| gig2.voc || Unknown || Giggle key #2 sound&lt;br /&gt;
|-&lt;br /&gt;
| gig3.voc || Unknown || Giggle key #3 sound&lt;br /&gt;
|-&lt;br /&gt;
| gig4.voc || Unknown || Giggle key #4 sound&lt;br /&gt;
|-&lt;br /&gt;
| gig5.voc || Unknown || Giggle keys #5 and 6, last lap devil&lt;br /&gt;
|-&lt;br /&gt;
| glass.voc || Unknown || Breaking glass&lt;br /&gt;
|-&lt;br /&gt;
| hog.voc || Unknown || Sound when firing hedgehogs or ice cubes&lt;br /&gt;
|-&lt;br /&gt;
| horn.voc || Unknown || Alarm when driving underwater&lt;br /&gt;
|-&lt;br /&gt;
| horn1.voc || Unknown || Horn when honking at other drivers&lt;br /&gt;
|-&lt;br /&gt;
| morris.voc || Unknown || Morris’s sound&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name !! Index !! Description&lt;br /&gt;
|-&lt;br /&gt;
| motor.voc || Unknown || Engine noise. Playback speed is shifted according to driving speed.&lt;br /&gt;
|-&lt;br /&gt;
| no.voc || Unknown || Out of ammo noise&lt;br /&gt;
|-&lt;br /&gt;
| pass.voc || Unknown || Noise when drivers pass you&lt;br /&gt;
|-&lt;br /&gt;
| peggles.voc || Unknown || Peggles’ sound&lt;br /&gt;
|-&lt;br /&gt;
| plip.voc || Unknown || &lt;br /&gt;
|-&lt;br /&gt;
| puf.voc || Unknown || Sound when a driver is hit&lt;br /&gt;
|-&lt;br /&gt;
| quack.voc || Unknown || Duck quack&lt;br /&gt;
|-&lt;br /&gt;
| razer.voc || Unknown || Razer’s sound&lt;br /&gt;
|-&lt;br /&gt;
| ringo.voc || Unknown || Ringo’s sound&lt;br /&gt;
|-&lt;br /&gt;
| skid.voc || Unknown || Tires skidding&lt;br /&gt;
|-&lt;br /&gt;
| splash.voc || Unknown || Splash&lt;br /&gt;
|-&lt;br /&gt;
| stall1.voc || Unknown || Stalled engine (from ice cube)&lt;br /&gt;
|-&lt;br /&gt;
| start.voc || Unknown || Lion’s roar&lt;br /&gt;
|-&lt;br /&gt;
| sultan.voc || Unknown || Sultan’s sound&lt;br /&gt;
|-&lt;br /&gt;
| swipe.voc || Unknown || Noise when hitting another driver&lt;br /&gt;
|-&lt;br /&gt;
| tigi.voc || Unknown || Tigi’s sound&lt;br /&gt;
|-&lt;br /&gt;
| uno.voc || Unknown || Uno’s sound&lt;br /&gt;
|-&lt;br /&gt;
| warp.voc || Unknown || Jump/turbo/Apogee splash screen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Wacky Wheels]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Track_Format&amp;diff=9142</id>
		<title>Wacky Wheels Track Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Track_Format&amp;diff=9142"/>
		<updated>2020-08-18T17:23:38Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* Where objects are placed – *.spw */ -&amp;gt; spawn points&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 1&lt;br /&gt;
 | Tile size = 32&amp;amp;times;32&lt;br /&gt;
 | Viewport = 320&amp;amp;times;200&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Wacky Wheels}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] stores its levels across multiple files, with a different aspect of the level in each file.&lt;br /&gt;
&lt;br /&gt;
== Level files ==&lt;br /&gt;
&lt;br /&gt;
=== Map info – *.gam ===&lt;br /&gt;
&lt;br /&gt;
These are ASCII text file with CRLF line terminators (DOS format). Files contain either 25 or 28 lines. (Some of the &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt; files that ship with Wacky Wheels are one line longer than they need to be, but the last line is empty.)&lt;br /&gt;
&lt;br /&gt;
The first five lines give the names of [[PCX Format|PCX]] files to use. You can add new PCX files to &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; and use those instead of the defaults. See also [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
&lt;br /&gt;
Lines 9 and 10 give the position of the start line, but the computer players get confused if you move the start line too far. I think the finish line is located using the &amp;lt;tt&amp;gt;[[#Wrong way info – *.pos|*.pos]]&amp;lt;/tt&amp;gt; files. The game might rely on the start line being in a relatively fixed position relative to the finish line.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Line !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File name of the primary tile graphics file, with the leading &amp;lt;tt&amp;gt;a_&amp;lt;/tt&amp;gt; removed (e.g. &amp;lt;tt&amp;gt;f3.pcx&amp;lt;/tt&amp;gt; designates &amp;lt;tt&amp;gt;a_f3.pcx&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || File name of the secondary tile graphics file&lt;br /&gt;
|-&lt;br /&gt;
| 3 || File that selects properties for the primary tile graphics file (again with the leading &amp;lt;tt&amp;gt;a_&amp;lt;/tt&amp;gt; removed)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || File that selects properties for the secondary graphics file&lt;br /&gt;
|-&lt;br /&gt;
| 5 || File name of the sky PCX file to use (using the full file name)&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Always 1250 in the &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt; files that ship with the game. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Always 1500. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Always 1. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 9 || X position of the start line. X=0 is at the left edge of the map as viewed in the course preview screen. The right edge is near X=2048.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Y position of the start line. Y=0 is at the top edge of the map. The bottom edge is near Y=2048.&lt;br /&gt;
|-&lt;br /&gt;
| 11–24 || Unknown. These might be (X, Y) pairs of coordinates, but I can’t figure out what they do.&lt;br /&gt;
|-&lt;br /&gt;
| 25 || 1 enables color cycling using the palette in &amp;lt;tt&amp;gt;beach.pcx&amp;lt;/tt&amp;gt;; 0 disables it. See [[Wacky_Wheels Graphics Formats#Color palettes|Color palettes]]. If set to 0, the remaining three lines are not necessary.&lt;br /&gt;
|-&lt;br /&gt;
| 26 || Delay between changing to the next color in the color cycles associated with palette indices 148 and 161–164. In &amp;lt;tt&amp;gt;a_f3.pcx&amp;lt;/tt&amp;gt;, these indices are used to show water washing up onto the shore.&lt;br /&gt;
|-&lt;br /&gt;
| 27 || Delay between the end of the color cycle and restarting it, for palette indices 148 and 161–164.&lt;br /&gt;
|-&lt;br /&gt;
| 28 || Delay between changing to the next color for palette indices 168–175. There is no delay when restarting these color cycles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Map surface – *.m ===&lt;br /&gt;
&lt;br /&gt;
The *.m files store the road surface a 64x64 grid of tiles.  These files contain a 64x64 byte array (4096 bytes exactly) with each tile representing an index into the tileset.  The tilesets are 320x200 images in [[PCX Format]], split into 32x32 tiles.  There are only 54 tiles per image (so in the *.m files, byte values 0–53 refer to tiles 0–53 in the first tileset, and byte values 54–106 refer to tiles 0–53 in the second tileset.)&lt;br /&gt;
&lt;br /&gt;
=== Wrong way info – *.pos ===&lt;br /&gt;
&lt;br /&gt;
The same as the background layer (&amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;) except that instead of one byte per tile (8-bit number) there are two bytes per tile (16-bit number).  So effectively every tile position has a 16-bit number starting at 1 and increasing as you get closer to the end of the track.  The ‘wrong way’ message only flashes on the screen when the player moves to a tile location with a smaller number.  Since the files that ship with the game are fairly coarse in this regard (only using numbers 0–30, and fairly large blocks of the map sharing the same number), there is some delay between successive ‘wrong way’ messages when driving around the track at low speed in the wrong direction.&lt;br /&gt;
&lt;br /&gt;
=== Road path – *.rd ===&lt;br /&gt;
&lt;br /&gt;
The ‘road’ files control the paths the computer players drive.  The file begins with a [[UINT16LE]] containing the number of objects in the file, followed by that many objects.  Each object is in the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || x1 || X-coordinate of current position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || y1 || Y-coordinate of current position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || x2 || X-coordinate of next destination&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || y2 || Y-coordinate of next destination&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || angle || The angle given by the two (x, y) pairs above in seemingly arbitrary units. See below.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || compass_direction || Direction to face. Range is 0x00–0x07. 0x00 = S, 0x01 = SW, 0x02 = W, up to 0x07 = SE.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || distance || Distance between the current and next points&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The computer players drive in a straight line from (x1, y1) to (x2, y2) and then immediately appear at the (x1, y1) point of the next struct in the file. Generally, the (x2, y2) position of one struct should have the same coordinates as the (x1, y1) position in the next struct. If they aren’t, the computer players will drive in a series of line segments and teleport from the end of one line segment to the start of the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;distance&amp;lt;/tt&amp;gt; fields are apparently not used, but their values can be calculated automatically using a tool such as [[Camoto]].&lt;br /&gt;
&lt;br /&gt;
==== Calculating the angle ====&lt;br /&gt;
&lt;br /&gt;
For angles, north is taken to be at the top of the map. The +y direction points down, or to the south.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; field is in units of degrees times 16/3 and is always positive: it ranges from 0 ≤ &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; &amp;lt; 1920 (in decimal). The angle is zero when driving in the +X direction (due east). The +Y direction (south) is 480, west is 960, north is 1440, etc.&lt;br /&gt;
&lt;br /&gt;
This angle can be calculated from the X and Y positions as follows:&lt;br /&gt;
&lt;br /&gt;
 angle = atan2(y2−y1, x2−x1)/π*960;&lt;br /&gt;
 if (angle &amp;lt; 0) angle = angle + 1920;&lt;br /&gt;
&lt;br /&gt;
==== Calculating the compass direction ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;compass_direction&amp;lt;/tt&amp;gt; field can be calculated from the &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt;. The conversion is&lt;br /&gt;
 compass_direction = (angle/240.0 + 6.5) % 8&lt;br /&gt;
where you use floating point division and then truncate the result in parentheses to an integer.&lt;br /&gt;
&lt;br /&gt;
Instead of calculating &amp;lt;tt&amp;gt;compass_direction&amp;lt;/tt&amp;gt;, you can set the variable any way you like, so that the computer players drive backwards, skid in the turns, spin, etc. If you hit a driver facing you, it counts as a head on collision, even if you are both traveling the same direction.&lt;br /&gt;
&lt;br /&gt;
==== Calculating the distance ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;distance&amp;lt;/tt&amp;gt; field can be calculated as:&lt;br /&gt;
&lt;br /&gt;
 sqrt((x2 − x1)² + (y2 − y1)²)&lt;br /&gt;
&lt;br /&gt;
Note that decimals are truncated, not rounded (i.e. in C, the result is simply cast to an int.)&lt;br /&gt;
&lt;br /&gt;
=== Tile properties – *.sin ===&lt;br /&gt;
&lt;br /&gt;
The structs in *.sin are 12 bytes long and arranged like this:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop0_active || boolean telling if prop0 should be considered&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop1_active || boolean telling if prop1 should be considered&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || prop0        || properties for color 0 in f_ma#.pcx&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop1        || properties for color 1 in f_ma#.pcx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I think the boolean values can always be set to 1; the property won’t be used unless it’s selected in the appropriate a_ma*.pcx file. The properties select what type of ground or water that tile will be. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt gamedata.txt] for a listing that looks promising.&lt;br /&gt;
&lt;br /&gt;
=== Where objects are placed – *.spw ===&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;SPW&#039;&#039;&#039; probably stands for &#039;&#039;&#039;SP&#039;&#039;&#039;a&#039;&#039;&#039;W&#039;&#039;&#039;n)&lt;br /&gt;
&lt;br /&gt;
Bytes 0–1 are a [[UINT16LE]] giving how many 12-byte structs follow:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || objectid || Index of the &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt; file to read for the graphics. See [[Wacky Wheels Graphics Formats#Sprites|Sprites]] for more details.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || unknown1  || Unknown; always zero&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || xcoord   || 0–2048&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || ycoord   || 0–2048&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || unknown2  || Unknown; always zero&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || unknown3 || Unknown; always zero. Setting this number to something other than zero causes the game to cycle through many graphics. Setting it to a small negative number causes it to cycle a few times and then stop on its normal graphic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other level-specific files ==&lt;br /&gt;
These files also contain data for track number &#039;&#039;n&#039;&#039;:&lt;br /&gt;
* &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.par&amp;lt;/tt&amp;gt;: Contains the graphics used on the horizon (buildings, etc.). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
* &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.bmc&amp;lt;/tt&amp;gt;: Controls the computer player when driving on track &#039;&#039;n&#039;&#039; during demo mode. Only used for tracks 1–5 and 7. See [[BMC Format]].&lt;br /&gt;
* &amp;lt;tt&amp;gt;SHRINK&amp;lt;/tt&amp;gt;&#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.PCX&amp;lt;/tt&amp;gt;: Track preview map. It should be possible to generate these files from &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.m&amp;lt;/tt&amp;gt; and the tile sets specified in &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.gam&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The files &amp;lt;tt&amp;gt;BRONZEM.SP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SILVERM.SP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;GOLDM.SP&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;BONUS*.SP&amp;lt;/tt&amp;gt; contain the 5-track course previews. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;. It should be possible to generate these files from &amp;lt;tt&amp;gt;SHRINK*.SP&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See [[Wacky Wheels#Tools|Wacky Wheels Tools]] for a listing of viewers and editors for data in this format.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This format was reverse engineered by [http://yellowantphil.com/wacky_wheels/ Phil Carter] and Klas Arvidsson.  If you find this information helpful in a project you’re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;br /&gt;
&lt;br /&gt;
[[Category:Wacky Wheels]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Track_Format&amp;diff=9141</id>
		<title>Wacky Wheels Track Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels_Track_Format&amp;diff=9141"/>
		<updated>2020-08-18T16:46:44Z</updated>

		<summary type="html">&lt;p&gt;Aybe: new url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 1&lt;br /&gt;
 | Tile size = 32&amp;amp;times;32&lt;br /&gt;
 | Viewport = 320&amp;amp;times;200&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Wacky Wheels}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] stores its levels across multiple files, with a different aspect of the level in each file.&lt;br /&gt;
&lt;br /&gt;
== Level files ==&lt;br /&gt;
&lt;br /&gt;
=== Map info – *.gam ===&lt;br /&gt;
&lt;br /&gt;
These are ASCII text file with CRLF line terminators (DOS format). Files contain either 25 or 28 lines. (Some of the &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt; files that ship with Wacky Wheels are one line longer than they need to be, but the last line is empty.)&lt;br /&gt;
&lt;br /&gt;
The first five lines give the names of [[PCX Format|PCX]] files to use. You can add new PCX files to &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; and use those instead of the defaults. See also [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
&lt;br /&gt;
Lines 9 and 10 give the position of the start line, but the computer players get confused if you move the start line too far. I think the finish line is located using the &amp;lt;tt&amp;gt;[[#Wrong way info – *.pos|*.pos]]&amp;lt;/tt&amp;gt; files. The game might rely on the start line being in a relatively fixed position relative to the finish line.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Line !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || File name of the primary tile graphics file, with the leading &amp;lt;tt&amp;gt;a_&amp;lt;/tt&amp;gt; removed (e.g. &amp;lt;tt&amp;gt;f3.pcx&amp;lt;/tt&amp;gt; designates &amp;lt;tt&amp;gt;a_f3.pcx&amp;lt;/tt&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || File name of the secondary tile graphics file&lt;br /&gt;
|-&lt;br /&gt;
| 3 || File that selects properties for the primary tile graphics file (again with the leading &amp;lt;tt&amp;gt;a_&amp;lt;/tt&amp;gt; removed)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || File that selects properties for the secondary graphics file&lt;br /&gt;
|-&lt;br /&gt;
| 5 || File name of the sky PCX file to use (using the full file name)&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Always 1250 in the &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt; files that ship with the game. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Always 1500. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Always 1. Unknown use.&lt;br /&gt;
|-&lt;br /&gt;
| 9 || X position of the start line. X=0 is at the left edge of the map as viewed in the course preview screen. The right edge is near X=2048.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Y position of the start line. Y=0 is at the top edge of the map. The bottom edge is near Y=2048.&lt;br /&gt;
|-&lt;br /&gt;
| 11–24 || Unknown. These might be (X, Y) pairs of coordinates, but I can’t figure out what they do.&lt;br /&gt;
|-&lt;br /&gt;
| 25 || 1 enables color cycling using the palette in &amp;lt;tt&amp;gt;beach.pcx&amp;lt;/tt&amp;gt;; 0 disables it. See [[Wacky_Wheels Graphics Formats#Color palettes|Color palettes]]. If set to 0, the remaining three lines are not necessary.&lt;br /&gt;
|-&lt;br /&gt;
| 26 || Delay between changing to the next color in the color cycles associated with palette indices 148 and 161–164. In &amp;lt;tt&amp;gt;a_f3.pcx&amp;lt;/tt&amp;gt;, these indices are used to show water washing up onto the shore.&lt;br /&gt;
|-&lt;br /&gt;
| 27 || Delay between the end of the color cycle and restarting it, for palette indices 148 and 161–164.&lt;br /&gt;
|-&lt;br /&gt;
| 28 || Delay between changing to the next color for palette indices 168–175. There is no delay when restarting these color cycles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Map surface – *.m ===&lt;br /&gt;
&lt;br /&gt;
The *.m files store the road surface a 64x64 grid of tiles.  These files contain a 64x64 byte array (4096 bytes exactly) with each tile representing an index into the tileset.  The tilesets are 320x200 images in [[PCX Format]], split into 32x32 tiles.  There are only 54 tiles per image (so in the *.m files, byte values 0–53 refer to tiles 0–53 in the first tileset, and byte values 54–106 refer to tiles 0–53 in the second tileset.)&lt;br /&gt;
&lt;br /&gt;
=== Wrong way info – *.pos ===&lt;br /&gt;
&lt;br /&gt;
The same as the background layer (&amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;) except that instead of one byte per tile (8-bit number) there are two bytes per tile (16-bit number).  So effectively every tile position has a 16-bit number starting at 1 and increasing as you get closer to the end of the track.  The ‘wrong way’ message only flashes on the screen when the player moves to a tile location with a smaller number.  Since the files that ship with the game are fairly coarse in this regard (only using numbers 0–30, and fairly large blocks of the map sharing the same number), there is some delay between successive ‘wrong way’ messages when driving around the track at low speed in the wrong direction.&lt;br /&gt;
&lt;br /&gt;
=== Road path – *.rd ===&lt;br /&gt;
&lt;br /&gt;
The ‘road’ files control the paths the computer players drive.  The file begins with a [[UINT16LE]] containing the number of objects in the file, followed by that many objects.  Each object is in the following structure:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || x1 || X-coordinate of current position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || y1 || Y-coordinate of current position&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || x2 || X-coordinate of next destination&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || y2 || Y-coordinate of next destination&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || angle || The angle given by the two (x, y) pairs above in seemingly arbitrary units. See below.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || compass_direction || Direction to face. Range is 0x00–0x07. 0x00 = S, 0x01 = SW, 0x02 = W, up to 0x07 = SE.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || distance || Distance between the current and next points&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The computer players drive in a straight line from (x1, y1) to (x2, y2) and then immediately appear at the (x1, y1) point of the next struct in the file. Generally, the (x2, y2) position of one struct should have the same coordinates as the (x1, y1) position in the next struct. If they aren’t, the computer players will drive in a series of line segments and teleport from the end of one line segment to the start of the next.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;distance&amp;lt;/tt&amp;gt; fields are apparently not used, but their values can be calculated automatically using a tool such as [[Camoto]].&lt;br /&gt;
&lt;br /&gt;
==== Calculating the angle ====&lt;br /&gt;
&lt;br /&gt;
For angles, north is taken to be at the top of the map. The +y direction points down, or to the south.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; field is in units of degrees times 16/3 and is always positive: it ranges from 0 ≤ &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt; &amp;lt; 1920 (in decimal). The angle is zero when driving in the +X direction (due east). The +Y direction (south) is 480, west is 960, north is 1440, etc.&lt;br /&gt;
&lt;br /&gt;
This angle can be calculated from the X and Y positions as follows:&lt;br /&gt;
&lt;br /&gt;
 angle = atan2(y2−y1, x2−x1)/π*960;&lt;br /&gt;
 if (angle &amp;lt; 0) angle = angle + 1920;&lt;br /&gt;
&lt;br /&gt;
==== Calculating the compass direction ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;compass_direction&amp;lt;/tt&amp;gt; field can be calculated from the &amp;lt;tt&amp;gt;angle&amp;lt;/tt&amp;gt;. The conversion is&lt;br /&gt;
 compass_direction = (angle/240.0 + 6.5) % 8&lt;br /&gt;
where you use floating point division and then truncate the result in parentheses to an integer.&lt;br /&gt;
&lt;br /&gt;
Instead of calculating &amp;lt;tt&amp;gt;compass_direction&amp;lt;/tt&amp;gt;, you can set the variable any way you like, so that the computer players drive backwards, skid in the turns, spin, etc. If you hit a driver facing you, it counts as a head on collision, even if you are both traveling the same direction.&lt;br /&gt;
&lt;br /&gt;
==== Calculating the distance ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;distance&amp;lt;/tt&amp;gt; field can be calculated as:&lt;br /&gt;
&lt;br /&gt;
 sqrt((x2 − x1)² + (y2 − y1)²)&lt;br /&gt;
&lt;br /&gt;
Note that decimals are truncated, not rounded (i.e. in C, the result is simply cast to an int.)&lt;br /&gt;
&lt;br /&gt;
=== Tile properties – *.sin ===&lt;br /&gt;
&lt;br /&gt;
The structs in *.sin are 12 bytes long and arranged like this:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop0_active || boolean telling if prop0 should be considered&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop1_active || boolean telling if prop1 should be considered&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32LE]] || prop0        || properties for color 0 in f_ma#.pcx&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || prop1        || properties for color 1 in f_ma#.pcx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I think the boolean values can always be set to 1; the property won’t be used unless it’s selected in the appropriate a_ma*.pcx file. The properties select what type of ground or water that tile will be. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt gamedata.txt] for a listing that looks promising.&lt;br /&gt;
&lt;br /&gt;
=== Where objects are placed – *.spw ===&lt;br /&gt;
&lt;br /&gt;
Bytes 0–1 are a [[UINT16LE]] giving how many 12-byte structs follow:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || objectid || Index of the &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt; file to read for the graphics. See [[Wacky Wheels Graphics Formats#Sprites|Sprites]] for more details.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || unknown1  || Unknown; always zero&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || xcoord   || 0–2048&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || ycoord   || 0–2048&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || unknown2  || Unknown; always zero&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16LE]] || unknown3 || Unknown; always zero. Setting this number to something other than zero causes the game to cycle through many graphics. Setting it to a small negative number causes it to cycle a few times and then stop on its normal graphic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other level-specific files ==&lt;br /&gt;
These files also contain data for track number &#039;&#039;n&#039;&#039;:&lt;br /&gt;
* &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.par&amp;lt;/tt&amp;gt;: Contains the graphics used on the horizon (buildings, etc.). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
* &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.bmc&amp;lt;/tt&amp;gt;: Controls the computer player when driving on track &#039;&#039;n&#039;&#039; during demo mode. Only used for tracks 1–5 and 7. See [[BMC Format]].&lt;br /&gt;
* &amp;lt;tt&amp;gt;SHRINK&amp;lt;/tt&amp;gt;&#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.PCX&amp;lt;/tt&amp;gt;: Track preview map. It should be possible to generate these files from &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.m&amp;lt;/tt&amp;gt; and the tile sets specified in &#039;&#039;n&#039;&#039;&amp;lt;tt&amp;gt;.gam&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The files &amp;lt;tt&amp;gt;BRONZEM.SP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SILVERM.SP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;GOLDM.SP&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;BONUS*.SP&amp;lt;/tt&amp;gt; contain the 5-track course previews. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;. It should be possible to generate these files from &amp;lt;tt&amp;gt;SHRINK*.SP&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
See [[Wacky Wheels#Tools|Wacky Wheels Tools]] for a listing of viewers and editors for data in this format.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This format was reverse engineered by [http://yellowantphil.com/wacky_wheels/ Phil Carter] and Klas Arvidsson.  If you find this information helpful in a project you’re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;br /&gt;
&lt;br /&gt;
[[Category:Wacky Wheels]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9140</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9140"/>
		<updated>2020-08-18T16:40:08Z</updated>

		<summary type="html">&lt;p&gt;Aybe: new url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://web.archive.org/web/20171123135223/http://yellowantphil.com:80/wacky_wheels/ Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9139</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9139"/>
		<updated>2020-08-18T16:39:03Z</updated>

		<summary type="html">&lt;p&gt;Aybe: new url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [https://web.archive.org/web/20141013093804/http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://yellowantphil.com/wacky_wheels/wackydat.php Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9136</id>
		<title>Wacky Wheels</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wacky_Wheels&amp;diff=9136"/>
		<updated>2020-08-15T21:07:34Z</updated>

		<summary type="html">&lt;p&gt;Aybe: added versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Some&lt;br /&gt;
 | Music = Some&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Wacky Wheels]] is a light-hearted racing game where you can shoot hedgehogs (among other things) at your opponents in an attempt to overtake them.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Read&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://yellowantphil.com/wacky_wheels/downloads/wwsave.cpp wwsave]&lt;br /&gt;
| Platform = Win/Linux/Mac console&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = Edit&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/wackywheels.htm#extractor Wextract]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
* For information about editing Wacky Wheels tracks, see [[Wacky Wheels Track Format]].&lt;br /&gt;
* For information about editing the graphics in Wacky Wheels, see [[Wacky Wheels Graphics Formats]].&lt;br /&gt;
* For information about editing the sound effects and music in Wacky Wheels, see [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
&lt;br /&gt;
Most of the data files for Wacky Wheels are stored in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;, which is an archive file containing a number of other files. For the file format of &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; itself, see [[DAT Format (Wacky Wheels)|DAT Format]].&lt;br /&gt;
&lt;br /&gt;
Note also that the file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; is itself an archive file, containing 54 unnamed files. See the entry for &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt; in the table below.&lt;br /&gt;
&lt;br /&gt;
=== Files in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;ndist&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence where objects are drawn on the screen at different viewing angles. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;slp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence when objects are considered to be in your field of view. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;view&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | A table of integers that influence the apparent distance of objects and other drivers. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;sprite.atr&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Contains file names and properties for sprites used at objects on the track. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#sprite.atr|sprite.atr]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | [[B800 Text]]. Registered version (&amp;lt;tt&amp;gt;wwreg.bin&amp;lt;/tt&amp;gt;) and shareware (&amp;lt;tt&amp;gt;wwsw.bin&amp;lt;/tt&amp;gt;) exit screens.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.bmc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the computer player during demo mode. See [[BMC Format]]. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;trig.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Series of (x, y) pairs that describe a circle. See [[Miscellaneous Wacky Wheels File Formats#Tabulated data for drawing the screen|Tabulated data for drawing the screen]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.fx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Uncompressed [[AudioT Format]] sound effects for PC speaker and AdLib. The archive file &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt; contains 26 files of each format. &amp;lt;tt&amp;gt;audiohed.fx&amp;lt;/tt&amp;gt; is the header file for &amp;lt;tt&amp;gt;audiot.fx&amp;lt;/tt&amp;gt;. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.gam&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Track data. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.htt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default high score files for single player races. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.inf&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown; perhaps hotspot coordinates for sprites as seems to contain signed 32-bit integers. See [http://yellowantphil.com/wacky_wheels/downloads/gamedata.txt Klas Arvidsson’s notes].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.ing&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown. Looks like an unused default high score file, but the first 66 bytes have to do with memory allocation and possibly other things. See &amp;lt;tt&amp;gt;[[Miscellaneous Wacky Wheels File Formats#wacky.ing|wacky.ing]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.klm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in AdLib [[KLM Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.m&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Track maps. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.mid&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game music in [[MID Format|MIDI Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;gig.mov&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Controls the motion of the “giggle key” devils remain in two-player races. Also controls the devil that says “last lap.” See [[Miscellaneous Wacky Wheels File Formats#Devil motion – gig.mov|Devil motion]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.ott&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Default time trial high score files. See [[#Files not in wacky.dat|Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt;]] for the file format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Background images for the races (buildings, etc. on the horizon). See [[Wacky Wheels Graphics Formats#Horizon graphics – *.par|Horizon graphics – &amp;lt;tt&amp;gt;*.par&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pcx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Game graphics in [[PCX Format]]. See [[Wacky Wheels Graphics Formats#PCX graphics|Wacky Wheels Graphics Formats]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.pos&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Determines which direction is the wrong way in a race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.rd&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | The course followed by the computer players in each race. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.sdx&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sin&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the properties of each type of tile. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sp&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sprites. See &amp;lt;tt&amp;gt;[[Wacky Wheels Graphics Formats#*.sp|*.sp]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.spw&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFFFCC;&amp;quot; | Where objects are placed on the map. See [[Wacky Wheels Track Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.tab&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sets the top speed and acceleration curve for the human players. See [[Miscellaneous Wacky Wheels File Formats#Changing go kart/lawnmower speed – *.tab|Changing go kart/lawnmower speed]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.voc&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Sound effects in [[VOC Format]]. See [[Wacky Wheels Music and Sound Effects]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;map.xy&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #FFCCCC;&amp;quot; | Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files not in &amp;lt;tt&amp;gt;wacky.dat&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File name!!Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Generated by &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Contains settings selected in &amp;lt;tt&amp;gt;setup.exe&amp;lt;/tt&amp;gt;. Also contains saved games for one- and two-player races. See [[Wacky Wheels Configuration Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky.dtt&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for the Wacky Duck Shoot. See [[Wacky Wheels High Score Files#Duck shoot|editing duck shoot high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.hi&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for single-player races. See [[Wacky Wheels High Score Files#Single-player race|editing single-player race high scores]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;wacky*.tim&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | High scores for time trials. See [[Wacky Wheels High Score Files#Time trial|editing time trial scores]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Wacky Wheels does not read files from the current directory first, before falling back to &amp;lt;tt&amp;gt;WACKY.DAT&amp;lt;/tt&amp;gt;.  This means any modified files must be packaged up into the DAT file before they can be tested.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
There are two versions, first is licensed to Apogee Software, second is distributed by Beavis Soft directly, both differ only by a few bytes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WACKY.DAT&lt;br /&gt;
003ED60D: F7 77&lt;br /&gt;
0040D60D: F9 79&lt;br /&gt;
005FD60D: C1 41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WW.EXE&lt;br /&gt;
0005D60D: E8 68&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://yellowantphil.com/wacky_wheels/wackydat.php Phil&#039;s Wacky Wheels site] (some modding info)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:Driving]]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9135</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9135"/>
		<updated>2020-08-09T17:37:46Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS info -&amp;gt; image format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northern Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
Each image has the following format:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT16 || unknown || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| INT8 || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT8 || height || Image height&lt;br /&gt;
|-&lt;br /&gt;
| INT8[] || pixels || Image pixels, 8-bit paletted &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|&lt;br /&gt;
|Yes&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|&lt;br /&gt;
|No&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9134</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9134"/>
		<updated>2020-08-09T17:33:55Z</updated>

		<summary type="html">&lt;p&gt;Aybe: fixed bad link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northern Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|&lt;br /&gt;
|Yes&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|&lt;br /&gt;
|No&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9133</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9133"/>
		<updated>2020-08-09T17:31:31Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS info is int32 actually&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|&lt;br /&gt;
|Yes&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|&lt;br /&gt;
|No&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9132</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9132"/>
		<updated>2020-08-09T17:30:46Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS info is not unknown anymore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|&lt;br /&gt;
|Yes&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|&lt;br /&gt;
|No&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9131</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9131"/>
		<updated>2020-08-09T17:29:44Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|see above&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9130</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9130"/>
		<updated>2020-08-09T17:29:10Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* DAT/TAB pairs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9129</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9129"/>
		<updated>2020-08-09T17:28:29Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TMAPS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Contains powerups and some HUD elements but TAB format is different:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || flat || Size of RNC stream unpacked, useless as it&#039;s contained in stream header already&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || pos || Position in DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || index || Some index but can be duplicate, so likely a type or category instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are N+1 entries to be able to compute last item size in DAT.&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9126</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9126"/>
		<updated>2020-08-06T19:17:26Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* Game&amp;#039;s files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&amp;lt;br/&amp;gt;data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks unused, game still plays without them&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9125</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9125"/>
		<updated>2020-08-06T18:36:49Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* DAT/TAB pairs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAT format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Without a TAB file, it&#039;s raw pixels; with a TAB file it&#039;s a form of line by line RLE compression where only transparent pixels are compressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9124</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9124"/>
		<updated>2020-08-06T18:34:44Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* DAT/TAB pairs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TAB format:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || position || Image position in .DAT&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || width || Image width&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || height || Image height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9123</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9123"/>
		<updated>2020-08-06T18:29:11Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS.TAB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|10 bytes structs&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9122</id>
		<title>Hi Octane</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hi_Octane&amp;diff=9122"/>
		<updated>2020-08-06T18:25:47Z</updated>

		<summary type="html">&lt;p&gt;Aybe: TMAPS.DAT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hi Octane]] is hover-car racing game. According to Sean Cooper it was made in 6.5 weeks using engine code from Syndicate and Magic Carpet.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
Level inspector and incomplete editor by movAX13h (contains all assets of the original game extracted/converted by srtuss): https://github.com/movAX13h/HiOctaneTools&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = sounds/music.dat&lt;br /&gt;
 | Format = see below&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive containing music files in different formats: [[XMI Format]], [[GEN Format]], [[ROL Format]], [[WTB Format]].&amp;lt;br/&amp;gt;There are five files per format : TGAME1, TGAME2, TGAME3, TGAME4, TINTRO2.&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
== MUSIC.DAT ==&lt;br /&gt;
&lt;br /&gt;
* read the [[INT32LE]] at EOF and seek to returned position&lt;br /&gt;
* count the N number of [[INT16LE]] that equals &amp;lt;code&amp;gt;0x0001&amp;lt;/code&amp;gt;, then read N of the following struct:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTunes || Offset to the list of tunes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune1 || Offset to the first tune&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || unknown || Unknown (always &amp;lt;code&amp;gt;0xC0000000&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTunes || Length of all tunes together, bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* for each of the former struct&lt;br /&gt;
** seek to &amp;lt;code&amp;gt;offTunes&amp;lt;/code&amp;gt;&lt;br /&gt;
** read one of the following struct, its &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; indicates the byte sum of tunes following&lt;br /&gt;
** read as many of the following struct until their &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; sum equals the one in previous step&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || name[12] || File name of the tune, &amp;lt;code&amp;gt;\0&amp;lt;/code&amp;gt; padded&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[6] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || offTune || Tune relative offset&lt;br /&gt;
|-&lt;br /&gt;
| CHAR || padding[4] || Padding bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT32LE || lenTune || Tune length, bytes&lt;br /&gt;
|-&lt;br /&gt;
| INT16LE || unknown || Unknown (always &amp;lt;code&amp;gt;0x5A00&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* you now have a catalog of a collection of tunes, e.g. five ROL songs, five WTB songs etc&lt;br /&gt;
* to extract a song, copy &amp;lt;code&amp;gt;lenTune&amp;lt;/code&amp;gt; bytes starting at &amp;lt;code&amp;gt;offTune1 + offTune&amp;lt;/code&amp;gt;, file name is &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RNC-compressed files ==&lt;br /&gt;
&lt;br /&gt;
Many of the game&#039;s files are compressed using the [[Rob Northen Compression]] format; some of them such as &#039;&#039;SOUND\SOUND.DAT&#039;&#039; are a concatenation of many RNC archives simply &#039;&#039;glued&#039;&#039; together.&lt;br /&gt;
&lt;br /&gt;
A command-line unpacker can be found here : [http://syndicate.lubiki.pl/downloads/bullfrog_utils_rnc.zip Bullfrog games RNC Utilities] (from [http://syndicate.lubiki.pl/synd/rework/synd_rework_rnc.php Unpacking RNC files])&lt;br /&gt;
&lt;br /&gt;
== DAT/TAB pairs ==&lt;br /&gt;
&lt;br /&gt;
Can be decompressed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_tabdat.zip Bullfrog games DAT/TAB Graphics extractor] (they first must be decompressed if they are RNC-compressed).&lt;br /&gt;
&lt;br /&gt;
== Game&#039;s files ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Format&lt;br /&gt;
! RNC compressed&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|data\hfont0-0.dat&amp;lt;br/&amp;gt;data\hfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\hspr0-0.dat&amp;lt;br/&amp;gt;data\hspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (large)&lt;br /&gt;
|-&lt;br /&gt;
|data\intro.dat&lt;br /&gt;
|[[Autodesk FLI animation]]&lt;br /&gt;
|No&lt;br /&gt;
|Game introduction&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-0.dat&amp;lt;br/&amp;gt;data\logo0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\logo0-1.dat&amp;lt;br/&amp;gt;data\logo0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Game logo (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mfont0-0.dat&amp;lt;br/&amp;gt;data\mfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Thin white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\mspr0-0.dat&amp;lt;br/&amp;gt;data\mspr0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor icons (small)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-0.dat&amp;lt;br/&amp;gt;data\olfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\olfnt0-1.dat&amp;lt;br/&amp;gt;data\olfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Large white font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\onet0-*.dat&amp;lt;br/&amp;gt;data\oscr0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200 and 640&amp;amp;times;480&lt;br /&gt;
|Yes&lt;br /&gt;
|Loading and selection screens&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-0.dat&amp;lt;br/&amp;gt;data\osfnt0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\osfnt0-1.dat&amp;lt;br/&amp;gt;data\osfnt0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Small white font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\palet0-0.dat&lt;br /&gt;
|[[VGA Palette]]&lt;br /&gt;
|No&lt;br /&gt;
|The palette of every asset of the game, unless specified&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-0.dat&amp;lt;br/&amp;gt;data\panel0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel0-1.dat&amp;lt;br/&amp;gt;data\panel0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-0.dat&amp;lt;br/&amp;gt;data\panel9-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 2-players (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\panel9-1.dat&amp;lt;br/&amp;gt;data\panel9-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|HUD 1-player (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-0.dat&amp;lt;br/&amp;gt;data\pfont0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (VGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\pfont0-1.dat&amp;lt;br/&amp;gt;data\pfont0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|Large green font (SVGA)&lt;br /&gt;
|-&lt;br /&gt;
|data\point0-0.dat&amp;lt;br/&amp;gt;data\point0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Editor cursors&lt;br /&gt;
|-&lt;br /&gt;
|data\puzzle.dat&lt;br /&gt;
|[[Raw VGA image]], 112&amp;amp;times;96&lt;br /&gt;
|No&lt;br /&gt;
|The cheat puzzle activated with CTRL-Tab in-game&lt;br /&gt;
|-&lt;br /&gt;
|data\sky0-*.dat&lt;br /&gt;
|[[Raw VGA Image]], 256&amp;amp;times;256&lt;br /&gt;
|Yes&lt;br /&gt;
|Horizon of each track&lt;br /&gt;
|-&lt;br /&gt;
|data\srch0-0.dat&lt;br /&gt;
|[[Raw VGA Image]], 32&amp;amp;times;32&lt;br /&gt;
|Yes&lt;br /&gt;
|Looks like a radar but seems to be unused&lt;br /&gt;
|-&lt;br /&gt;
|data\table0-*.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
These files differ by at most a few bytes, their name suggests a sine table but this is pure speculation.&lt;br /&gt;
&lt;br /&gt;
The following pattern appears when they are interpreted as a 256 pixels wide image:&lt;br /&gt;
&lt;br /&gt;
[[File:HiOctaneTable.png]]&lt;br /&gt;
|-&lt;br /&gt;
|data\textu0-*.dat&lt;br /&gt;
|[[Raw VGA image]], 64&amp;amp;times;16384&lt;br /&gt;
|Yes&lt;br /&gt;
|64&amp;amp;times;64 terrain textures&lt;br /&gt;
|-&lt;br /&gt;
|data\title.dat&lt;br /&gt;
|[[Raw VGA image]], 320&amp;amp;times;200&lt;br /&gt;
|Yes&lt;br /&gt;
|The introductory screen&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.dat&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|Starts with BULLFROG followed by RNC streams&lt;br /&gt;
|-&lt;br /&gt;
|data\tmaps.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-0.dat&amp;lt;br/&amp;gt;data\track0-0.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|data\track0-1.dat&amp;lt;br/&amp;gt;data\track0-1.tab&lt;br /&gt;
|[[Unknown format]]&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-0.dat&amp;lt;br/&amp;gt;objects/data/tex0-0.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;768&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|objects/data/tex0-1.dat&amp;lt;br/&amp;gt;objects/data/tex0-1.tab&lt;br /&gt;
|[[Hi-Octane Texture Atlas]], 256&amp;amp;times;88&lt;br /&gt;
|No&lt;br /&gt;
|In-game textures&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; none of the TAB files are RNC-compressed.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image formats above are partially decoded, they are still missing palette information.&lt;br /&gt;
&lt;br /&gt;
All the images are paletted, 8 bits per pixels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;INTRO.DAT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Header can be fixed using [http://syndicate.lubiki.pl/downloads/bullfrog_utils_flifix.zip Autodesk Animator FLI files fixer] but since format is pretty old and that [http://syndicate.lubiki.pl/downloads/utils_waaplay110.zip Autodesk Animation Player 1.10] is a legacy Win16 executable, it is not very convenient to use as of today.&lt;br /&gt;
&lt;br /&gt;
Instead, the file can be converted by FFMPEG to either BMP or AVI,&lt;br /&gt;
&lt;br /&gt;
Convert the animation to individual images, handle last invalid frame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i INTRO.DAT -vframes 548 -pix_fmt bgr24 intro%03d.bmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the sequence of images to a raw AVI and respect the original frame rate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -r 14 -i intro%03d.bmp -vcodec rawvideo intro.avi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the underlying format does not handle audio, there won&#039;t be any.&lt;br /&gt;
&lt;br /&gt;
== Credits (in alphabetical order) == &lt;br /&gt;
&lt;br /&gt;
Aybe&lt;br /&gt;
&lt;br /&gt;
Malvineous&lt;br /&gt;
&lt;br /&gt;
movAX13h&lt;br /&gt;
&lt;br /&gt;
srtuss&lt;br /&gt;
&lt;br /&gt;
[http://syndicate.lubiki.pl/ Syndicate series unofficial fan site] for the various utilities.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://1drv.ms/f/s!AqAtR29m3cqGxz75Vv-3cap8guE3 Game demo, Network and MPU-401 patches]&lt;br /&gt;
&lt;br /&gt;
[https://www.vogons.org/viewtopic.php?f=7&amp;amp;t=33173&amp;amp;hilit=hi+octane Hi-Octane + General MIDI = crash?]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=TGA_Format&amp;diff=8869</id>
		<title>TGA Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=TGA_Format&amp;diff=8869"/>
		<updated>2019-11-25T07:23:13Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;TGA&#039;&#039;&#039;&#039;&#039;, or TARGA, is a bitmap format officially known as &#039;&#039;Truevision Advanced Raster Graphics Adapter&#039;&#039;. The format was developed by Truevision, Inc. which has since been acquired by Avid Technology. The format was designed for TARGA and VISTA graphic cards found in early PCs.&lt;br /&gt;
&lt;br /&gt;
The graphic format supports 8, 15, 16, 24, or 32 bit color and RLE compression. PCs tend to feature the *.tga extension, while Macintosh uses a TPIC type code. &lt;br /&gt;
&lt;br /&gt;
Technical specifications can be found here: [http://paulbourke.net/dataformats/tga/ http://paulbourke.net/dataformats/tga/]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20180830065146/https://www.loc.gov/preservation/digital/formats/fdd/fdd000180.shtml Truevision TGA, version 2.0]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20190128233219/http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf Truevision TGA FILE FORMAT SPECIFICATION Version 2.0]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20180916191252/http://www.ludorg.net/amnesia/TGA_File_Format_Spec.html Truevision TGA FILE FORMAT SPECIFICATION Version 2.0 HTML version]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20120303225747/http://tfc.duke.free.fr/coding/tga_specs.pdf TGA File Format]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=LBM_Format&amp;diff=8867</id>
		<title>LBM Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=LBM_Format&amp;diff=8867"/>
		<updated>2019-11-19T23:20:28Z</updated>

		<summary type="html">&lt;p&gt;Aybe: added few webarchive links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Image Infobox&lt;br /&gt;
 | Hardware1 = CGA&lt;br /&gt;
 | Hardware2 = EGA&lt;br /&gt;
 | Hardware3 = VGA&lt;br /&gt;
 | Depth = Any&lt;br /&gt;
 | MinSize = 0&amp;amp;times;0&lt;br /&gt;
 | MaxSize = 65535&amp;amp;times;65535&lt;br /&gt;
 | Palette = Internal&lt;br /&gt;
 | NumPlanes = 255&lt;br /&gt;
 | HasTransparency = Yes&lt;br /&gt;
 | HasHitmap = No&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Bubble Bobble featuring Rainbow Islands}}&lt;br /&gt;
   {{Game|Blockout}}&lt;br /&gt;
   {{Game|The Blues Brothers}}&lt;br /&gt;
   {{Game|Commander Keen Dreams}}&lt;br /&gt;
   {{Game|Dangerous Dave 3}}&lt;br /&gt;
   {{Game|Dangerous Dave 4}}&lt;br /&gt;
   {{Game|The Settlers II}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The LBM file extension is an image file in [[Interchange File Format (IFF)]] structure to store image or palette data. Most commonly you can find these files in &#039;&#039;&#039;&amp;lt;u&amp;gt;I&amp;lt;/u&amp;gt;nter&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eaved &amp;lt;u&amp;gt;B&amp;lt;/u&amp;gt;it&amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;ap (ILBM) format&#039;&#039;&#039;, but some games are using a similar, but simpler-to-use &#039;&#039;&#039;&amp;lt;u&amp;gt;P&amp;lt;/u&amp;gt;lanar &amp;lt;u&amp;gt;B&amp;lt;/u&amp;gt;it&amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;ap (PBM)&#039;&#039;&#039; format. Both formats commonly exist under the .lbm file extension, occasionally appearing also as .bbm extension.&lt;br /&gt;
&lt;br /&gt;
ILBM and PBM formats are used by games from late 80s and early 90s that either originated from Amiga platform or had their assets such as graphics done on Amiga.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
In essence LBM files consist of a number of consecutive chunks, whose order can, to some extent, be varied. Each chunk has a different function and has the same basic format. This means that a program does not have to read or decode every chunk in a file, only the ones it wants to deal with or the ones it can understand. For example a program might use a TIME chunk to store the date and time that a file was last edited. Another program does not need to know about this and can just skip the chunk and leave it unchanged, or drop the chunk entirely, although that is not an advisable thing for a tool to do automatically.&lt;br /&gt;
&lt;br /&gt;
For details on the chunk structure and how to read them, see [[Interchange File Format (IFF)]].&lt;br /&gt;
&lt;br /&gt;
LBM files usually contain enough information to allow them to be displayed by an image editing program, including image dimensions, palette and pixel data. Some files were designed to act as palettes for paint programs (pixel data left blank) or to be merged into another image. This makes them much more flexible, but also much more complex than other formats such as BMP.&lt;br /&gt;
&lt;br /&gt;
For LBMs the &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk and any other &#039;vital&#039; chunks must appear before the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk. Any chunks appearing after &#039;&#039;&#039;BODY&#039;&#039;&#039; are considered &#039;extra&#039; and many programs will leave them unread and unchanged.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FOURCC || chunkID || &amp;quot;FORM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32BE]] || lenChunk || Length of chunk data, in bytes.  Does not include the pad byte.  Will be the same as the file size minus eight bytes (this field and &amp;lt;tt&amp;gt;chunkID&amp;lt;/tt&amp;gt; are not included in the count)&lt;br /&gt;
|-&lt;br /&gt;
| FOURCC || formatID || &amp;quot;ILBM&amp;quot; or &amp;quot;PBM &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| BYTE[lenChunk - 4] || content || Actual data of the chunk, made up of the other sub-chunks below&lt;br /&gt;
|-&lt;br /&gt;
| BYTE || pad || Optional padding byte, only present if &amp;lt;tt&amp;gt;lenChunk&amp;lt;/tt&amp;gt; is not a multiple of 2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are many possible chunk types. However there are only a limited number of common chunk types used and understood by most programs, and descriptions of these follow.  Again refer to [[Interchange File Format (IFF)]] for further detail about finding and handling chunks.&lt;br /&gt;
&lt;br /&gt;
=== BMHD: Bitmap Header ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk specifies how the image is to be displayed and is usually the first chunk inside the &#039;&#039;&#039;FORM&#039;&#039;&#039;.  It not only defines the image&#039;s height/width, but where it is drawn on the screen, how to display it in various screen resolutions and if the image is compressed.  The content of this chunk is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || width || Image width, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || height || Image height, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || xOrigin ||rowspan=2| Where on screen, in pixels, the image&#039;s top-left corner is. Value is usually 0,0 unless image is part of a larger image or not fullscreen.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || yOrigin&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || numPlanes || Number of planes in bitmap, 1 for monochrome, 4 for 16 color, 8 for 256 color or 0 if there is only a colormap, and no image data. (i.e. this file is just a colormap.)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || mask || 1 = masked, 2 = transparent color, 3 = lasso (for MacPaint).  Mask data is not considered a bit plane.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || compression || If 0 then uncompressed. If 1 then image data is RLE compressed. Other values are theoretically possible, representing other compression methods.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pad1 || Ignore when reading, set to 0 when writing for future compatibility &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || transClr || Transparent colour, useful only when &amp;lt;tt&amp;gt;mask&amp;lt;/tt&amp;gt; &amp;gt;= 2&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xAspect ||rowspan=2| Pixel aspect, a ratio width:height; used for displaying the image on a variety of different screen resolutions for 320x200 5:6 or 10:11&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yAspect&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || pageWidth ||rowspan=2| The size of the screen the image is to be displayed on, in pixels, usually 320&amp;amp;times;200&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || pageHeight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BODY: Image data ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk is usually the last chunk in a file, and the largest.&lt;br /&gt;
&lt;br /&gt;
In ILBM files the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk stores the actual image data as interleaved bitplanes (and optional mask) by row. The bitplanes appear first from 1 to n, followed by the mask plane. If the image is uncompressed then each line will be made up of &amp;lt;code&amp;gt;(width + 15) / 16&amp;lt;/code&amp;gt; 16-bit values (i.e. one bit per pixel, rounded up to the nearest multiple of 16-bits.) If it is compressed then each line is compressed individually and is always a multiple of 16-bits long when compressed.&lt;br /&gt;
&lt;br /&gt;
In PBM files the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk is simpler as uncompressed it is just a continuous stream of bytes containing image data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compression ====&lt;br /&gt;
&lt;br /&gt;
If an image is compressed, each row of data (but not each bitplane) is compressed individually, including the mask data if present.  The compression is a variety of [[RLE Compression]] using flags.  It can be decoded as follows:&lt;br /&gt;
&lt;br /&gt;
* Loop until we have [Final length] bytes worth of data (final length calculated from image size.)&lt;br /&gt;
* While [Decompressed data length] &amp;lt; [Final length]:&lt;br /&gt;
*# Read a byte [Value]&lt;br /&gt;
*# If [Value] &amp;gt; 128, then:&lt;br /&gt;
*#* Read the next byte and output it (257 - [Value]) times.&lt;br /&gt;
*#* Move forward 2 bytes and return to step 1.&lt;br /&gt;
*# Else if [Value] &amp;lt; 128, then:&lt;br /&gt;
*#* Read and output the next [value + 1] bytes&lt;br /&gt;
*#* Move forward [Value + 2] bytes and return to step 3a.&lt;br /&gt;
*# Else [Value] = 128, exit the loop (stop decompressing)&lt;br /&gt;
&lt;br /&gt;
For the compression routine, it&#039;s best to encode a 2 byte repeat run as a replicate run except when preceded and followed by a literal run, in which case it&#039;s best to merge the three into one literal run. Always encode &amp;gt;3 byte repeats as replicate runs.&lt;br /&gt;
&lt;br /&gt;
=== CAMG: Amiga mode ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;CAMG&#039;&#039;&#039; chunk is specifically for the Commodore Amiga computer. It stores a LONG &amp;quot;viewport mode&amp;quot;. This lets you specify Amiga display modes like &amp;quot;dual playfield&amp;quot; and &amp;quot;hold and modify&amp;quot;. It is not surprisingly rare outside of Amiga games.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32BE]] || viewportMode|| bit flags; directly interpreted by Amiga hardware&lt;br /&gt;
|}&lt;br /&gt;
If you need to convert or display files that might contain meaningful CAMG chunks, see the &#039;Notes on working with LBM files&#039; below.&lt;br /&gt;
&lt;br /&gt;
=== CMAP: Palette ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;CMAP&#039;&#039;&#039; chunk contains the image&#039;s palette and consists of 3-byte RGB values for each colour used.  Each byte is between 0 and 255 inclusive.  The chunk is &amp;lt;code&amp;gt;3 &amp;amp;times; numColours&amp;lt;/code&amp;gt; bytes long.  The number of colours in the palette will be &amp;lt;code&amp;gt;2 ^ numBitplanes&amp;lt;/code&amp;gt;. This chunk is optional and a default palette will be used if it is not present.  It is possible to have fewer entries than expected (e.g. 7 colours for a 4-plane &#039;16 colour&#039; bitmap for example.)  Remember that if this has an odd number of colours, as per the IFF specification the chunk will be padded by one byte to make it an even number of bytes long, but the pad byte is not included in the chunk&#039;s length field.&lt;br /&gt;
&lt;br /&gt;
=== CRNG: Colour range ===&lt;br /&gt;
&lt;br /&gt;
The colour range chunk is &#039;nonstandard&#039;.  It is used by Electronic Arts&#039; Deluxe Paint program to identify a contiguous range of colour registers or a &amp;quot;shade range&amp;quot; and colour cycling.  There can be zero or more &#039;&#039;&#039;CRNG&#039;&#039;&#039; chunks in an LBM file, but all should appear before the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk.  Deluxe Paint normally writes 4 CRNG chunks in an LBM when the user asks it to &amp;quot;Save Picture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || padding || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || rate || Colour cycle rate.  The units are such that a rate of 60 steps per second is represented as 2&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt; = 16384.  Lower rates can be obtained by linear scaling: for 30 steps/second, rate = 8192.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || flags || Flags which control the cycling of colours through the palette. If bit0 is 1, the colours should cycle, otherwise this colour register range is inactive and should have no effect. If bit1 is 0, the colours cycle upwards, i.e. each colour moves into the next index position in the colour map and the uppermost colour in the range moves down to the lowest position. If bit1 is 1, the colours cycle in the opposite direction. Only those colours between the &#039;&#039;&#039;low&#039;&#039;&#039; and &#039;&#039;&#039;high&#039;&#039;&#039; entries in the colour map should cycle.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || low || The index of the first entry in the colour map that is part of this range.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || high || The index of the last entry in the colour map that is part of this range.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CCRT: Colour cycling ===&lt;br /&gt;
&lt;br /&gt;
Commodore&#039;s Graphicraft program uses &#039;&#039;&#039;CCRT&#039;&#039;&#039; for &#039;&#039;Colour Cycling Range and Timing&#039;&#039;. This chunk contains a CycleInfo structure. Like &#039;&#039;&#039;CRNG&#039;&#039;&#039; it is a nonstandard chunk.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || direction || Cycle direction: 0=no cycling, 1=forwards, -1=backwards&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || low || lowest color register selected&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || high || highest color register selected&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32BE]] || delaySec || Seconds between changing colors&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32BE]] || delayuS || Microseconds between changing colors (added to &#039;&#039;&#039;delaySec&#039;&#039;&#039; to get total delay time)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || padding || 0x0000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data is similar to a &#039;&#039;&#039;CRNG&#039;&#039;&#039; chunk.  A program would probably only use one of these two methods of expressing colour cycle data. You could write out both if you want to communicate this information to both DeluxePaint and Graphicraft.&lt;br /&gt;
&lt;br /&gt;
=== DEST: Bitplane combining ===&lt;br /&gt;
&lt;br /&gt;
The optional property &#039;&#039;&#039;DEST&#039;&#039;&#039; is a way to control how to scatter zero or more source bitplanes into a deeper destination image.  Some readers may ignore DEST.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || numPlanes || Number of bitplanes in source image&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pad1 || unused; use 0 for consistency&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planePick || How to pick planes to scatter them into the destination image&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planeOnOff || Default data for Plane Pick&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planeMask || Selects which bitplanes to store into&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The low order depth number of bits in planePick, planeOnOff, and planeMask correspond one-to-one with destination bitplanes. Bit 0 with bitplane 0, etc. (Any higher order bits should be ignored.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;1&amp;quot; bits in planePick mean &amp;quot;put the next source bitplane into this bitplane&amp;quot;, so the number of &amp;quot;1&amp;quot; bits should equal numPlanes. &amp;quot;0&amp;quot; bits mean &amp;quot;put the corresponding bit from planeOnOff into this bitplane&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bits in planeMask gate writing to the destination bitplane: &amp;quot;1&amp;quot; bits mean &amp;quot;write to this bitplane&amp;quot; while &amp;quot;0&amp;quot; bits mean &amp;quot;leave this bitplane alone&amp;quot;. The normal case (with no &#039;&#039;&#039;DEST&#039;&#039;&#039; chunk) is equivalent to &amp;lt;code&amp;gt;planePick = planeMask = (2 ^ numPlanes) - 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Remember that color numbers are formed by pixels in the destination bitmap (depth planes deep) not in the source bitmap (numPlanes planes deep).&lt;br /&gt;
&lt;br /&gt;
=== GRAB: Hotspot ===&lt;br /&gt;
&lt;br /&gt;
The optional &#039;&#039;&#039;GRAB&#039;&#039;&#039; chunk locates a &amp;quot;handle&amp;quot; or &amp;quot;hotspot&amp;quot; of the image relative to its upper left corner, e.g. when used as a mouse cursor or a &amp;quot;paint brush&amp;quot;. It is optional.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || x || X coordinate of hotspot, in pixels relative to top-left corner of the image&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || y || Y coordinate of hotspot, in pixels relative to top-left corner of the image&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SPRT: Z-order ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SPRT&#039;&#039;&#039; chunk indicates that an image is intended to be a sprite. It should thus have a mask plane or transparent colour and shouldn&#039;t be fullscreen. How this is handled depends on the program using the image. The only data stored here is the sprite order, used by many programs to place the sprite in the foreground (a sprite of order 1 appears behind one of order 0, etc.)  It is optional.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || order || Z-order of image (0 is closest to the foreground, larger numbers are further away/behind)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TINY: Thumbnail ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;TINY&#039;&#039;&#039; chunk contains a small preview image for various graphics programs, including Deluxe Paint. It is compressed and is similar in format to the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || width || Thumbnail width, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || height || Thumbnail height, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| BYTE[] || data || Pixel data, stored in exactly the same way as the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk. Use exactly the same algorithm, substituting the width and height from the &#039;&#039;&#039;TINY&#039;&#039;&#039; chunk in place of those taken from the &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes for working with LBM ==&lt;br /&gt;
&lt;br /&gt;
==== Color Maps ====&lt;br /&gt;
&lt;br /&gt;
Sometimes an LBM file contains only a colour map and no image data. Often used to store a palette of colours that can be applied to an image separately. In this case the BODY chunk should be empty and the numPlanes field in the BMHD chunk will be 0.&lt;br /&gt;
&lt;br /&gt;
==== Deep Images ====&lt;br /&gt;
&lt;br /&gt;
Some LBM files contain &#039;true-colour&#039; information rather than indexed colours. These so-called &#039;deep images&#039; files have no CMAP chunk and usually have 24 or 32 bitplanes. The standard ordering for the bitplanes will put the least significant bit of the red component first:&lt;br /&gt;
&lt;br /&gt;
R0 R1 R2 R3 R4 R5 R6 R7 G0 G1 G2 G3 G4 G5 G6 G7 B0 B1 B2 B3 B4 B5 B6 B7&lt;br /&gt;
&lt;br /&gt;
If there are 32 bit planes, the last 8 bit planes will be an alpha channel:&lt;br /&gt;
&lt;br /&gt;
R0 R1 ... R7 G0 ... G7 B0 ... B6 B7 A0 A1 A2 A3 A4 A5 A6 A7&lt;br /&gt;
&lt;br /&gt;
An image containing no colour map and only 8 bitplanes may be a greyscale image:&lt;br /&gt;
&lt;br /&gt;
I0 I1 I2 I3 I4 I5 I6 I7&lt;br /&gt;
&lt;br /&gt;
==== Extra Half-Brite ====&lt;br /&gt;
&lt;br /&gt;
If the ILBM file contains a CAMG chunk in which bit 7 is set (i.e. 0x80 in hexadecimal). The file expects to make use of the EHB (Extra Half-Brite) mode of the Amiga chipset. The colour map will have no more than 32 entries, but the image will have 6 bitplanes. The most significant bitplane should be regarded as a flag, when unset, use the lower 5 bits as an index into the colour map as usual. When the flag is set; use the lower 5 bits as an index into the colour map, but the actual colour to be used should be half as bright, which can be achieved by shifted the RGB components of the colour one bit to the right. Alternatively, create a colour map with 64 entries, and copy the lower 32 entries into the upper half, converting them to half brightness; then use all 6 bitplanes as a colour index.&lt;br /&gt;
&lt;br /&gt;
PBM images cannot exist in extra half-brite mode.&lt;br /&gt;
&lt;br /&gt;
==== Hold and Modify ====&lt;br /&gt;
&lt;br /&gt;
If the ILBM file contains a CAMG chunk in which bit 11 is set (i.e. 0x800 in hexadecimal) the file expects to make use of the HAM (Hold-And-Modify) mode of the Amiga chipset. In HAM6 format the colour map will have up to 16 entries, but the image will have 6 (or possibly 5 bitplanes). In HAM8 format the colour map will have up to 64 entries but the image will have 8 (or possibly 7 bitplanes).&lt;br /&gt;
&lt;br /&gt;
The last two bitplanes (if an odd number of bitplanes assume an extra bitplane which is always 0) are control flags which indicate how to use the first 4 (or 6) bitplanes.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Control Flags !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 00 || Use bitplanes 0-3 (or 0-5) as a colour map index as normal&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Use the colour of the previous pixel but replace the Blue component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Use the colour of the previous pixel but replace the Red component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Use the colour of the previous pixel but replace the Green component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the first pixel of a scanline is a modification pixel, then modify and use the image border colour.&lt;br /&gt;
&lt;br /&gt;
Note that when using 4 bits to modify a colour component you should use the 4 bits in the upper 4 bits of the component AND in the lower 4 bits (to avoid reducing the overall colour gamut). When using 6 bits this is less important, but you can still put the 2 most significant bits of the modification bits into the least significant two bits of the colour component.&lt;br /&gt;
&lt;br /&gt;
PBM images cannot exist in hold and modify mode.&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
&lt;br /&gt;
Most utilities that work with LBM and BBM files are rather &#039;&#039;&#039;dated&#039;&#039;&#039;, such as MacPaint or Deluxe Paint.&lt;br /&gt;
&lt;br /&gt;
* [http://settlers2.net/documentation/graphics-files-lbm/ Graphics Workshop 1.1Y] from mid-90s can convert from and to all variants of LBM files; it supports a variety of other image file formats. It is dated but still works on even Windows 10 when running in Windows XP compatibility mode. There is also newer commercial version known as [http://www.mindworkshop.com/gww.html Graphics Workshop Professional] with much more modern UI (seeming to be mid-00s), which however is also dated by today&#039;s standards.&lt;br /&gt;
&lt;br /&gt;
* [http://www.ultimatepaint.com/ Ultimate Paint] can read, write and display palette color cycle animations.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xnview.com/en/nconvert/ XnView&#039;s nconvert] is a free and &#039;&#039;&#039;up to date&#039;&#039;&#039; command line converter.&lt;br /&gt;
&lt;br /&gt;
* [http://www.imageconverterplus.com/ Image Converter Plus] is a program that will convert ILBM files into any number of formats. While the full version is not free, the demo version adds a watermark that can be removed.&lt;br /&gt;
&lt;br /&gt;
* Paint Shop Pro 7.04 and other older versions of PSP can read and write ILBM, but can only read PBM files. PSP7 gets a special mention as the shareware version has a bug that allows the evaluation shutdown mechanism to be skipped by simply opening a file (ie. modify shortcut to always open a file and you won&#039;t be bothered).&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
In the [[Commander Keen Dreams]] series of games, compressed standalone ILBM images are used for title screens, but the game does not read most of the ILBM chunks. This is becuase the images were edited in DeluxePaint, then imported directly into the game&#039;s files.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20190829195455/https://wiki.multimedia.cx/index.php/IFF IFF]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20070911223155/http://www.szonye.com/bradd/iff.html “EA IFF 85” Standard for Interchange Format Files]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=TGA_Format&amp;diff=8866</id>
		<title>TGA Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=TGA_Format&amp;diff=8866"/>
		<updated>2019-11-19T23:16:58Z</updated>

		<summary type="html">&lt;p&gt;Aybe: added few webarchive links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;TGA&#039;&#039;&#039;&#039;&#039;, or TARGA, is a bitmap format officially known as &#039;&#039;Truevision Advanced Raster Graphics Adapter&#039;&#039;. The format was developed by Truevision, Inc. which has since been acquired by Avid Technology. The format was designed for TARGA and VISTA graphic cards found in early PCs.&lt;br /&gt;
&lt;br /&gt;
The graphic format supports 8, 15, 16, 24, or 32 bit color and RLE compression. PCs tend to feature the *.tga extension, while Macintosh uses a TPIC type code. &lt;br /&gt;
&lt;br /&gt;
Technical specifications can be found here: [http://local.wasp.uwa.edu.au/~pbourke/dataformats/tga/ local.wasp.uwa.edu.au/~pbourke/dataformats/tga/]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20180830065146/https://www.loc.gov/preservation/digital/formats/fdd/fdd000180.shtml Truevision TGA, version 2.0]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20190128233219/http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf Truevision TGA FILE FORMAT SPECIFICATION Version 2.0]&lt;br /&gt;
&lt;br /&gt;
[https://web.archive.org/web/20180916191252/http://www.ludorg.net/amnesia/TGA_File_Format_Spec.html Truevision TGA FILE FORMAT SPECIFICATION Version 2.0 HTML version]&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Bubble_Bobble_featuring_Rainbow_Islands&amp;diff=8862</id>
		<title>Bubble Bobble featuring Rainbow Islands</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Bubble_Bobble_featuring_Rainbow_Islands&amp;diff=8862"/>
		<updated>2019-11-19T09:37:21Z</updated>

		<summary type="html">&lt;p&gt;Aybe: {{NeedMoreInfo}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
=== Windows (published by Xplosiv) ===&lt;br /&gt;
&lt;br /&gt;
Runs an emulator (Z80.DLL), SecuROM protected.&lt;br /&gt;
&lt;br /&gt;
=== DOS (version this page is about) ===&lt;br /&gt;
&lt;br /&gt;
Seems to be a direct port of the PSX version, which does not emulate a Z80.&lt;br /&gt;
&lt;br /&gt;
== SPR files ==&lt;br /&gt;
&lt;br /&gt;
Some but not all files are compressed using [[Rob Northern Compression]]. When decompressed, they will be either of [[PCX Format]] or [[LBM Format]], for the latter appearing to be taken from the PSX version with chunks such as &#039;&#039;&#039;PSX&#039;&#039;&#039;, &#039;&#039;&#039;CL00&#039;&#039;&#039; (CLUT, 16-bit colors), &#039;&#039;&#039;TP00&#039;&#039;&#039; (texture page, raw image), &#039;&#039;&#039;BX00&#039;&#039;&#039; (unknown).&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Bubble_Bobble_featuring_Rainbow_Islands&amp;diff=8861</id>
		<title>Bubble Bobble featuring Rainbow Islands</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Bubble_Bobble_featuring_Rainbow_Islands&amp;diff=8861"/>
		<updated>2019-11-19T09:34:16Z</updated>

		<summary type="html">&lt;p&gt;Aybe: /* SPR files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = No&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
{{NoModdingInfo}}&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
=== Windows (published by Xplosiv) ===&lt;br /&gt;
&lt;br /&gt;
Runs an emulator (Z80.DLL), SecuROM protected.&lt;br /&gt;
&lt;br /&gt;
=== DOS (version this page is about) ===&lt;br /&gt;
&lt;br /&gt;
Seems to be a direct port of the PSX version, which does not emulate a Z80.&lt;br /&gt;
&lt;br /&gt;
== SPR files ==&lt;br /&gt;
&lt;br /&gt;
Some but not all files are compressed using [[Rob Northern Compression]]. When decompressed, they will be either of [[PCX Format]] or [[LBM Format]], for the latter appearing to be taken from the PSX version with chunks such as &#039;&#039;&#039;PSX&#039;&#039;&#039;, &#039;&#039;&#039;CL00&#039;&#039;&#039; (CLUT, 16-bit colors), &#039;&#039;&#039;TP00&#039;&#039;&#039; (texture page, raw image), &#039;&#039;&#039;BX00&#039;&#039;&#039; (unknown).&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:LBM_Format.png&amp;diff=8860</id>
		<title>File:LBM Format.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:LBM_Format.png&amp;diff=8860"/>
		<updated>2019-11-19T09:30:45Z</updated>

		<summary type="html">&lt;p&gt;Aybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:PCX_Format.png&amp;diff=8859</id>
		<title>File:PCX Format.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:PCX_Format.png&amp;diff=8859"/>
		<updated>2019-11-19T09:30:19Z</updated>

		<summary type="html">&lt;p&gt;Aybe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=LBM_Format&amp;diff=8858</id>
		<title>LBM Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=LBM_Format&amp;diff=8858"/>
		<updated>2019-11-19T09:24:16Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Added Bubble Bobble featuring Rainbow Islands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Image Infobox&lt;br /&gt;
 | Hardware1 = CGA&lt;br /&gt;
 | Hardware2 = EGA&lt;br /&gt;
 | Hardware3 = VGA&lt;br /&gt;
 | Depth = Any&lt;br /&gt;
 | MinSize = 0&amp;amp;times;0&lt;br /&gt;
 | MaxSize = 65535&amp;amp;times;65535&lt;br /&gt;
 | Palette = Internal&lt;br /&gt;
 | NumPlanes = 255&lt;br /&gt;
 | HasTransparency = Yes&lt;br /&gt;
 | HasHitmap = No&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Bubble Bobble featuring Rainbow Islands}}&lt;br /&gt;
   {{Game|Blockout}}&lt;br /&gt;
   {{Game|The Blues Brothers}}&lt;br /&gt;
   {{Game|Commander Keen Dreams}}&lt;br /&gt;
   {{Game|Dangerous Dave 3}}&lt;br /&gt;
   {{Game|Dangerous Dave 4}}&lt;br /&gt;
   {{Game|The Settlers II}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The LBM file extension is an image file in [[Interchange File Format (IFF)]] structure to store image or palette data. Most commonly you can find these files in &#039;&#039;&#039;&amp;lt;u&amp;gt;I&amp;lt;/u&amp;gt;nter&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eaved &amp;lt;u&amp;gt;B&amp;lt;/u&amp;gt;it&amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;ap (ILBM) format&#039;&#039;&#039;, but some games are using a similar, but simpler-to-use &#039;&#039;&#039;&amp;lt;u&amp;gt;P&amp;lt;/u&amp;gt;lanar &amp;lt;u&amp;gt;B&amp;lt;/u&amp;gt;it&amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;ap (PBM)&#039;&#039;&#039; format. Both formats commonly exist under the .lbm file extension, occasionally appearing also as .bbm extension.&lt;br /&gt;
&lt;br /&gt;
ILBM and PBM formats are used by games from late 80s and early 90s that either originated from Amiga platform or had their assets such as graphics done on Amiga.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
In essence LBM files consist of a number of consecutive chunks, whose order can, to some extent, be varied. Each chunk has a different function and has the same basic format. This means that a program does not have to read or decode every chunk in a file, only the ones it wants to deal with or the ones it can understand. For example a program might use a TIME chunk to store the date and time that a file was last edited. Another program does not need to know about this and can just skip the chunk and leave it unchanged, or drop the chunk entirely, although that is not an advisable thing for a tool to do automatically.&lt;br /&gt;
&lt;br /&gt;
For details on the chunk structure and how to read them, see [[Interchange File Format (IFF)]].&lt;br /&gt;
&lt;br /&gt;
LBM files usually contain enough information to allow them to be displayed by an image editing program, including image dimensions, palette and pixel data. Some files were designed to act as palettes for paint programs (pixel data left blank) or to be merged into another image. This makes them much more flexible, but also much more complex than other formats such as BMP.&lt;br /&gt;
&lt;br /&gt;
For LBMs the &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk and any other &#039;vital&#039; chunks must appear before the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk. Any chunks appearing after &#039;&#039;&#039;BODY&#039;&#039;&#039; are considered &#039;extra&#039; and many programs will leave them unread and unchanged.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| FOURCC || chunkID || &amp;quot;FORM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32BE]] || lenChunk || Length of chunk data, in bytes.  Does not include the pad byte.  Will be the same as the file size minus eight bytes (this field and &amp;lt;tt&amp;gt;chunkID&amp;lt;/tt&amp;gt; are not included in the count)&lt;br /&gt;
|-&lt;br /&gt;
| FOURCC || formatID || &amp;quot;ILBM&amp;quot; or &amp;quot;PBM &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| BYTE[lenChunk - 4] || content || Actual data of the chunk, made up of the other sub-chunks below&lt;br /&gt;
|-&lt;br /&gt;
| BYTE || pad || Optional padding byte, only present if &amp;lt;tt&amp;gt;lenChunk&amp;lt;/tt&amp;gt; is not a multiple of 2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are many possible chunk types. However there are only a limited number of common chunk types used and understood by most programs, and descriptions of these follow.  Again refer to [[Interchange File Format (IFF)]] for further detail about finding and handling chunks.&lt;br /&gt;
&lt;br /&gt;
=== BMHD: Bitmap Header ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk specifies how the image is to be displayed and is usually the first chunk inside the &#039;&#039;&#039;FORM&#039;&#039;&#039;.  It not only defines the image&#039;s height/width, but where it is drawn on the screen, how to display it in various screen resolutions and if the image is compressed.  The content of this chunk is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || width || Image width, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || height || Image height, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || xOrigin ||rowspan=2| Where on screen, in pixels, the image&#039;s top-left corner is. Value is usually 0,0 unless image is part of a larger image or not fullscreen.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || yOrigin&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || numPlanes || Number of planes in bitmap, 1 for monochrome, 4 for 16 color, 8 for 256 color or 0 if there is only a colormap, and no image data. (i.e. this file is just a colormap.)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || mask || 1 = masked, 2 = transparent color, 3 = lasso (for MacPaint).  Mask data is not considered a bit plane.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || compression || If 0 then uncompressed. If 1 then image data is RLE compressed. Other values are theoretically possible, representing other compression methods.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pad1 || Ignore when reading, set to 0 when writing for future compatibility &lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || transClr || Transparent colour, useful only when &amp;lt;tt&amp;gt;mask&amp;lt;/tt&amp;gt; &amp;gt;= 2&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || xAspect ||rowspan=2| Pixel aspect, a ratio width:height; used for displaying the image on a variety of different screen resolutions for 320x200 5:6 or 10:11&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || yAspect&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || pageWidth ||rowspan=2| The size of the screen the image is to be displayed on, in pixels, usually 320&amp;amp;times;200&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || pageHeight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BODY: Image data ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk is usually the last chunk in a file, and the largest.&lt;br /&gt;
&lt;br /&gt;
In ILBM files the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk stores the actual image data as interleaved bitplanes (and optional mask) by row. The bitplanes appear first from 1 to n, followed by the mask plane. If the image is uncompressed then each line will be made up of &amp;lt;code&amp;gt;(width + 15) / 16&amp;lt;/code&amp;gt; 16-bit values (i.e. one bit per pixel, rounded up to the nearest multiple of 16-bits.) If it is compressed then each line is compressed individually and is always a multiple of 16-bits long when compressed.&lt;br /&gt;
&lt;br /&gt;
In PBM files the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk is simpler as uncompressed it is just a continuous stream of bytes containing image data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compression ====&lt;br /&gt;
&lt;br /&gt;
If an image is compressed, each row of data (but not each bitplane) is compressed individually, including the mask data if present.  The compression is a variety of [[RLE Compression]] using flags.  It can be decoded as follows:&lt;br /&gt;
&lt;br /&gt;
* Loop until we have [Final length] bytes worth of data (final length calculated from image size.)&lt;br /&gt;
* While [Decompressed data length] &amp;lt; [Final length]:&lt;br /&gt;
*# Read a byte [Value]&lt;br /&gt;
*# If [Value] &amp;gt; 128, then:&lt;br /&gt;
*#* Read the next byte and output it (257 - [Value]) times.&lt;br /&gt;
*#* Move forward 2 bytes and return to step 1.&lt;br /&gt;
*# Else if [Value] &amp;lt; 128, then:&lt;br /&gt;
*#* Read and output the next [value + 1] bytes&lt;br /&gt;
*#* Move forward [Value + 2] bytes and return to step 3a.&lt;br /&gt;
*# Else [Value] = 128, exit the loop (stop decompressing)&lt;br /&gt;
&lt;br /&gt;
For the compression routine, it&#039;s best to encode a 2 byte repeat run as a replicate run except when preceded and followed by a literal run, in which case it&#039;s best to merge the three into one literal run. Always encode &amp;gt;3 byte repeats as replicate runs.&lt;br /&gt;
&lt;br /&gt;
=== CAMG: Amiga mode ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;CAMG&#039;&#039;&#039; chunk is specifically for the Commodore Amiga computer. It stores a LONG &amp;quot;viewport mode&amp;quot;. This lets you specify Amiga display modes like &amp;quot;dual playfield&amp;quot; and &amp;quot;hold and modify&amp;quot;. It is not surprisingly rare outside of Amiga games.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT32BE]] || viewportMode|| bit flags; directly interpreted by Amiga hardware&lt;br /&gt;
|}&lt;br /&gt;
If you need to convert or display files that might contain meaningful CAMG chunks, see the &#039;Notes on working with LBM files&#039; below.&lt;br /&gt;
&lt;br /&gt;
=== CMAP: Palette ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;CMAP&#039;&#039;&#039; chunk contains the image&#039;s palette and consists of 3-byte RGB values for each colour used.  Each byte is between 0 and 255 inclusive.  The chunk is &amp;lt;code&amp;gt;3 &amp;amp;times; numColours&amp;lt;/code&amp;gt; bytes long.  The number of colours in the palette will be &amp;lt;code&amp;gt;2 ^ numBitplanes&amp;lt;/code&amp;gt;. This chunk is optional and a default palette will be used if it is not present.  It is possible to have fewer entries than expected (e.g. 7 colours for a 4-plane &#039;16 colour&#039; bitmap for example.)  Remember that if this has an odd number of colours, as per the IFF specification the chunk will be padded by one byte to make it an even number of bytes long, but the pad byte is not included in the chunk&#039;s length field.&lt;br /&gt;
&lt;br /&gt;
=== CRNG: Colour range ===&lt;br /&gt;
&lt;br /&gt;
The colour range chunk is &#039;nonstandard&#039;.  It is used by Electronic Arts&#039; Deluxe Paint program to identify a contiguous range of colour registers or a &amp;quot;shade range&amp;quot; and colour cycling.  There can be zero or more &#039;&#039;&#039;CRNG&#039;&#039;&#039; chunks in an LBM file, but all should appear before the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk.  Deluxe Paint normally writes 4 CRNG chunks in an LBM when the user asks it to &amp;quot;Save Picture&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || padding || 0x0000&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || rate || Colour cycle rate.  The units are such that a rate of 60 steps per second is represented as 2&amp;lt;sup&amp;gt;14&amp;lt;/sup&amp;gt; = 16384.  Lower rates can be obtained by linear scaling: for 30 steps/second, rate = 8192.&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || flags || Flags which control the cycling of colours through the palette. If bit0 is 1, the colours should cycle, otherwise this colour register range is inactive and should have no effect. If bit1 is 0, the colours cycle upwards, i.e. each colour moves into the next index position in the colour map and the uppermost colour in the range moves down to the lowest position. If bit1 is 1, the colours cycle in the opposite direction. Only those colours between the &#039;&#039;&#039;low&#039;&#039;&#039; and &#039;&#039;&#039;high&#039;&#039;&#039; entries in the colour map should cycle.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || low || The index of the first entry in the colour map that is part of this range.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || high || The index of the last entry in the colour map that is part of this range.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CCRT: Colour cycling ===&lt;br /&gt;
&lt;br /&gt;
Commodore&#039;s Graphicraft program uses &#039;&#039;&#039;CCRT&#039;&#039;&#039; for &#039;&#039;Colour Cycling Range and Timing&#039;&#039;. This chunk contains a CycleInfo structure. Like &#039;&#039;&#039;CRNG&#039;&#039;&#039; it is a nonstandard chunk.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || direction || Cycle direction: 0=no cycling, 1=forwards, -1=backwards&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || low || lowest color register selected&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || high || highest color register selected&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32BE]] || delaySec || Seconds between changing colors&lt;br /&gt;
|-&lt;br /&gt;
| [[INT32BE]] || delayuS || Microseconds between changing colors (added to &#039;&#039;&#039;delaySec&#039;&#039;&#039; to get total delay time)&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || padding || 0x0000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data is similar to a &#039;&#039;&#039;CRNG&#039;&#039;&#039; chunk.  A program would probably only use one of these two methods of expressing colour cycle data. You could write out both if you want to communicate this information to both DeluxePaint and Graphicraft.&lt;br /&gt;
&lt;br /&gt;
=== DEST: Bitplane combining ===&lt;br /&gt;
&lt;br /&gt;
The optional property &#039;&#039;&#039;DEST&#039;&#039;&#039; is a way to control how to scatter zero or more source bitplanes into a deeper destination image.  Some readers may ignore DEST.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || numPlanes || Number of bitplanes in source image&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || pad1 || unused; use 0 for consistency&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planePick || How to pick planes to scatter them into the destination image&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planeOnOff || Default data for Plane Pick&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || planeMask || Selects which bitplanes to store into&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The low order depth number of bits in planePick, planeOnOff, and planeMask correspond one-to-one with destination bitplanes. Bit 0 with bitplane 0, etc. (Any higher order bits should be ignored.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;1&amp;quot; bits in planePick mean &amp;quot;put the next source bitplane into this bitplane&amp;quot;, so the number of &amp;quot;1&amp;quot; bits should equal numPlanes. &amp;quot;0&amp;quot; bits mean &amp;quot;put the corresponding bit from planeOnOff into this bitplane&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Bits in planeMask gate writing to the destination bitplane: &amp;quot;1&amp;quot; bits mean &amp;quot;write to this bitplane&amp;quot; while &amp;quot;0&amp;quot; bits mean &amp;quot;leave this bitplane alone&amp;quot;. The normal case (with no &#039;&#039;&#039;DEST&#039;&#039;&#039; chunk) is equivalent to &amp;lt;code&amp;gt;planePick = planeMask = (2 ^ numPlanes) - 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Remember that color numbers are formed by pixels in the destination bitmap (depth planes deep) not in the source bitmap (numPlanes planes deep).&lt;br /&gt;
&lt;br /&gt;
=== GRAB: Hotspot ===&lt;br /&gt;
&lt;br /&gt;
The optional &#039;&#039;&#039;GRAB&#039;&#039;&#039; chunk locates a &amp;quot;handle&amp;quot; or &amp;quot;hotspot&amp;quot; of the image relative to its upper left corner, e.g. when used as a mouse cursor or a &amp;quot;paint brush&amp;quot;. It is optional.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || x || X coordinate of hotspot, in pixels relative to top-left corner of the image&lt;br /&gt;
|-&lt;br /&gt;
| [[INT16BE]] || y || Y coordinate of hotspot, in pixels relative to top-left corner of the image&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SPRT: Z-order ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SPRT&#039;&#039;&#039; chunk indicates that an image is intended to be a sprite. It should thus have a mask plane or transparent colour and shouldn&#039;t be fullscreen. How this is handled depends on the program using the image. The only data stored here is the sprite order, used by many programs to place the sprite in the foreground (a sprite of order 1 appears behind one of order 0, etc.)  It is optional.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || order || Z-order of image (0 is closest to the foreground, larger numbers are further away/behind)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TINY: Thumbnail ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;TINY&#039;&#039;&#039; chunk contains a small preview image for various graphics programs, including Deluxe Paint. It is compressed and is similar in format to the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || width || Thumbnail width, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16BE]] || height || Thumbnail height, in pixels&lt;br /&gt;
|-&lt;br /&gt;
| BYTE[] || data || Pixel data, stored in exactly the same way as the &#039;&#039;&#039;BODY&#039;&#039;&#039; chunk. Use exactly the same algorithm, substituting the width and height from the &#039;&#039;&#039;TINY&#039;&#039;&#039; chunk in place of those taken from the &#039;&#039;&#039;BMHD&#039;&#039;&#039; chunk.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes for working with LBM ==&lt;br /&gt;
&lt;br /&gt;
==== Color Maps ====&lt;br /&gt;
&lt;br /&gt;
Sometimes an LBM file contains only a colour map and no image data. Often used to store a palette of colours that can be applied to an image separately. In this case the BODY chunk should be empty and the numPlanes field in the BMHD chunk will be 0.&lt;br /&gt;
&lt;br /&gt;
==== Deep Images ====&lt;br /&gt;
&lt;br /&gt;
Some LBM files contain &#039;true-colour&#039; information rather than indexed colours. These so-called &#039;deep images&#039; files have no CMAP chunk and usually have 24 or 32 bitplanes. The standard ordering for the bitplanes will put the least significant bit of the red component first:&lt;br /&gt;
&lt;br /&gt;
R0 R1 R2 R3 R4 R5 R6 R7 G0 G1 G2 G3 G4 G5 G6 G7 B0 B1 B2 B3 B4 B5 B6 B7&lt;br /&gt;
&lt;br /&gt;
If there are 32 bit planes, the last 8 bit planes will be an alpha channel:&lt;br /&gt;
&lt;br /&gt;
R0 R1 ... R7 G0 ... G7 B0 ... B6 B7 A0 A1 A2 A3 A4 A5 A6 A7&lt;br /&gt;
&lt;br /&gt;
An image containing no colour map and only 8 bitplanes may be a greyscale image:&lt;br /&gt;
&lt;br /&gt;
I0 I1 I2 I3 I4 I5 I6 I7&lt;br /&gt;
&lt;br /&gt;
==== Extra Half-Brite ====&lt;br /&gt;
&lt;br /&gt;
If the ILBM file contains a CAMG chunk in which bit 7 is set (i.e. 0x80 in hexadecimal). The file expects to make use of the EHB (Extra Half-Brite) mode of the Amiga chipset. The colour map will have no more than 32 entries, but the image will have 6 bitplanes. The most significant bitplane should be regarded as a flag, when unset, use the lower 5 bits as an index into the colour map as usual. When the flag is set; use the lower 5 bits as an index into the colour map, but the actual colour to be used should be half as bright, which can be achieved by shifted the RGB components of the colour one bit to the right. Alternatively, create a colour map with 64 entries, and copy the lower 32 entries into the upper half, converting them to half brightness; then use all 6 bitplanes as a colour index.&lt;br /&gt;
&lt;br /&gt;
PBM images cannot exist in extra half-brite mode.&lt;br /&gt;
&lt;br /&gt;
==== Hold and Modify ====&lt;br /&gt;
&lt;br /&gt;
If the ILBM file contains a CAMG chunk in which bit 11 is set (i.e. 0x800 in hexadecimal) the file expects to make use of the HAM (Hold-And-Modify) mode of the Amiga chipset. In HAM6 format the colour map will have up to 16 entries, but the image will have 6 (or possibly 5 bitplanes). In HAM8 format the colour map will have up to 64 entries but the image will have 8 (or possibly 7 bitplanes).&lt;br /&gt;
&lt;br /&gt;
The last two bitplanes (if an odd number of bitplanes assume an extra bitplane which is always 0) are control flags which indicate how to use the first 4 (or 6) bitplanes.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Control Flags !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 00 || Use bitplanes 0-3 (or 0-5) as a colour map index as normal&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Use the colour of the previous pixel but replace the Blue component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Use the colour of the previous pixel but replace the Red component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Use the colour of the previous pixel but replace the Green component with bits from bitplanes 0-3 (or 0-5)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the first pixel of a scanline is a modification pixel, then modify and use the image border colour.&lt;br /&gt;
&lt;br /&gt;
Note that when using 4 bits to modify a colour component you should use the 4 bits in the upper 4 bits of the component AND in the lower 4 bits (to avoid reducing the overall colour gamut). When using 6 bits this is less important, but you can still put the 2 most significant bits of the modification bits into the least significant two bits of the colour component.&lt;br /&gt;
&lt;br /&gt;
PBM images cannot exist in hold and modify mode.&lt;br /&gt;
&lt;br /&gt;
== Utilities ==&lt;br /&gt;
&lt;br /&gt;
Most utilities that work with LBM and BBM files are rather &#039;&#039;&#039;dated&#039;&#039;&#039;, such as MacPaint or Deluxe Paint.&lt;br /&gt;
&lt;br /&gt;
* [http://settlers2.net/documentation/graphics-files-lbm/ Graphics Workshop 1.1Y] from mid-90s can convert from and to all variants of LBM files; it supports a variety of other image file formats. It is dated but still works on even Windows 10 when running in Windows XP compatibility mode. There is also newer commercial version known as [http://www.mindworkshop.com/gww.html Graphics Workshop Professional] with much more modern UI (seeming to be mid-00s), which however is also dated by today&#039;s standards.&lt;br /&gt;
&lt;br /&gt;
* [http://www.ultimatepaint.com/ Ultimate Paint] can read, write and display palette color cycle animations.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xnview.com/en/nconvert/ XnView&#039;s nconvert] is a free and &#039;&#039;&#039;up to date&#039;&#039;&#039; command line converter.&lt;br /&gt;
&lt;br /&gt;
* [http://www.imageconverterplus.com/ Image Converter Plus] is a program that will convert ILBM files into any number of formats. While the full version is not free, the demo version adds a watermark that can be removed.&lt;br /&gt;
&lt;br /&gt;
* Paint Shop Pro 7.04 and other older versions of PSP can read and write ILBM, but can only read PBM files. PSP7 gets a special mention as the shareware version has a bug that allows the evaluation shutdown mechanism to be skipped by simply opening a file (ie. modify shortcut to always open a file and you won&#039;t be bothered).&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
In the [[Commander Keen Dreams]] series of games, compressed standalone ILBM images are used for title screens, but the game does not read most of the ILBM chunks. This is becuase the images were edited in DeluxePaint, then imported directly into the game&#039;s files.&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=PCX_Format&amp;diff=8857</id>
		<title>PCX Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=PCX_Format&amp;diff=8857"/>
		<updated>2019-11-19T09:23:37Z</updated>

		<summary type="html">&lt;p&gt;Aybe: Added Bubble Bobble featuring Rainbow Islands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Image Infobox&lt;br /&gt;
 | Hardware1 = CGA&lt;br /&gt;
 | Hardware2 = EGA&lt;br /&gt;
 | Hardware3 = VGA&lt;br /&gt;
 | Depth = Multiple&lt;br /&gt;
 | MinSize = 0&amp;amp;times;0&lt;br /&gt;
 | MaxSize = 65536&amp;amp;times;65536 &amp;lt;!-- Ymin=0, Ymax=65535 = height 65536 --&amp;gt;&lt;br /&gt;
 | Palette = Internal (optional)&lt;br /&gt;
 | NumPlanes = 1-255&lt;br /&gt;
 | HasTransparency = No&lt;br /&gt;
 | HasHitmap = No&lt;br /&gt;
&amp;lt;!-- All the games that use this file format --&amp;gt;&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Bubble Bobble featuring Rainbow Islands}}&lt;br /&gt;
   {{Game|Crystal Caves}}&lt;br /&gt;
   {{Game|Halloween Harry}}&lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
   {{Game|Hugo&#039;s House of Horrors}}&lt;br /&gt;
   {{Game|Hugo II, Whodunit?}}&lt;br /&gt;
   {{Game|Hugo III, Jungle of Doom!}}&lt;br /&gt;
   {{Game|Math Rescue}}&lt;br /&gt;
   {{Game|Wacky Wheels}}&lt;br /&gt;
   {{Game|Word Rescue}}&lt;br /&gt;
}}&lt;br /&gt;
The [[PCX Format]] is an image format used by many games, usually to store full screen (320x200) 16-colour EGA, and later 256-colour VGA (mode 13h), graphics.  It was, for a time, also a general picture format like .bmp or .png, and was the primary format used by PC Paintbrush.  It declined in popularity after support for 24-bit true colour images was added too late, by which time many people had switched to competing formats like .png and JPEG (the latter offering far better compression for photos.)  It also lacks support for transparency, which resulted in it losing some ground to the GIF format which otherwise provided a similar feature set.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
&lt;br /&gt;
The PCX file is composed of two parts, the header and the image data, which is usually compressed. The header is as follows:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Data type !! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || Manufacturer || Always 0x0A&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || Version || PC Paintbrush version. Acts as file format version. &amp;lt;br/&amp;gt;0 = v2.5&amp;lt;br/&amp;gt;2 = v2.8 with palette&amp;lt;br/&amp;gt;3 = v2.8 without palette&amp;lt;br/&amp;gt;4 = Paintbrush for Windows&amp;lt;br/&amp;gt;5 = v3.0 or higher&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || Encoding || Should be 0x01&amp;lt;br/&amp;gt;0 = uncompressed image (not officially allowed, but some software supports it)&amp;lt;br/&amp;gt;1 = PCX run length encoding&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || BitsPerPlane || Number of bits per pixel in each entry of the colour planes (1, 2, 4, 8, 24)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || WindowXmin ||rowspan=4| Window (image dimensions):&amp;lt;br/&amp;gt;ImageWidth = &amp;lt;tt&amp;gt;Xmax - Xmin + 1&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;ImageHeight = &amp;lt;tt&amp;gt;Ymax - Ymin + 1&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;Normally &amp;lt;tt&amp;gt;Xmin&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Ymin&amp;lt;/tt&amp;gt; should be set to zero. Note that these field values are valid rows and columns, which is why you have to add one to get the actual dimension (so a 200 pixel high image would have Ymin=0 and Ymax=199, or Ymin=100 and Ymax=299, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || WindowYmin&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || WindowXmax&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || WindowYmax&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || VertDPI ||rowspan=2| This is supposed to specify the image&#039;s vertical and horizontal resolution in DPI (dots per inch), but it is rarely reliable. It often contains the image dimensions, or nothing at all.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || HorzDPI&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || Palette[48] || Palette for 16 colors or less, in three-byte RGB entries. Padded with 0x00 to 48 bytes in total length. See below for more details on palette handling.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || Reserved || Should be set to 0, but can sometimes contain junk.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT8]] || ColorPlanes || Number of colour planes. Multiply by &amp;lt;tt&amp;gt;BitsPerPlane&amp;lt;/tt&amp;gt; to get the actual colour depth.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || BytesPerPlaneLine || Number of bytes to read for a single plane&#039;s scanline, i.e. at least &amp;lt;tt&amp;gt;ImageWidth&amp;lt;/tt&amp;gt; &amp;amp;divide; 8 bits per byte &amp;amp;times; &amp;lt;tt&amp;gt;BitsPerPlane&amp;lt;/tt&amp;gt;. Must be an even number. Do &#039;&#039;&#039;not&#039;&#039;&#039; calculate from Xmax-Xmin. Normally a multiple of the machine&#039;s native word length (2 or 4)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || PaletteInfo || How to interpret palette:&amp;lt;br/&amp;gt;1 = Color/BW&amp;lt;br/&amp;gt;2 = Grayscale (ignored in PC Paintbrush IV and later)&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || HorScrSize ||rowspan=2| Only supported by PC Paintbrush IV or higher; deals with scrolling. Best to just ignore it.&lt;br /&gt;
|-&lt;br /&gt;
| [[UINT16LE]] || VerScrSize&lt;br /&gt;
|-&lt;br /&gt;
| [[BYTE]][54] || Padding || Filler to bring header up to 128 bytes total. Can contain junk.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Image Data ==&lt;br /&gt;
&lt;br /&gt;
Image data comes after the header (starting at offset 0x80 in a PCX file), and will be RLE compressed if the header indicated so. The way the data is stored depends on how many colour planes are specified. Each row has its color planes stored sequentially, similar to [[raw EGA data]].&lt;br /&gt;
&lt;br /&gt;
For one plane of eight bits (256-colour), each byte will represent one pixel. For one plane of four bits (16-colour), each byte will represent two pixels. The bits within the byte are in big-endian order, so the most significant bit belongs to the left-most pixel. In other words, in two bits per pixel mode, a byte of value 0xE4 (binary 11 10 01 00) will have left-to-right pixel values of 3, 2, 1, 0.&lt;br /&gt;
&lt;br /&gt;
EGA 16-colour images are often stored with four colour planes instead of one, with each plane being one-bit-per-pixel (think of four black and white images, one each for red, green, blue and intensity.)  The planes are stored sequentially for each line (see [[Raw EGA data#Row-planar EGA data|Row-planar EGA data]] for the exact details), thus a 320x200 EGA image will store at least 40 bytes for each scanline&#039;s colour plane (320 pixels &amp;amp;divide; 8 bits per byte &amp;amp;times; 1 bit per pixel), with each scanline being at least 160 bytes long (320 pixels &amp;amp;divide; 8 bits per byte &amp;amp;times; 1 bit per pixel &amp;amp;times; 4 planes). Note that the scanline length can be larger than expected (40 bytes in this example), especially for images whose width is not a multiple of four. This is because each scanline in a plane is padded to a multiple of two or four bytes, depending on the architecture of the machine used to create the file. The actual size is stored in the &amp;lt;tt&amp;gt;BytesPerPlaneLine&amp;lt;/tt&amp;gt; field in the header, which should always be used instead of calculating the value from the other image attributes.&lt;br /&gt;
&lt;br /&gt;
True colour PCX files are not common, and could be either three planes (R, G and B) of eight bits each (24-bit RGB) or one plane of 24-bits. Technically, the same is applicable for alpha-capable 32-bit images (with four planes in planar mode), though no official format specs ever included such a thing.&lt;br /&gt;
&lt;br /&gt;
The split into planes is generally governed by what is most convenient for the game at the time, which in turn depends on which video mode is being used to display the image. Since EGA video memory is split into planes, 16-colour PCX files are frequently split into matching planes so that no processing is required when loading an image directly into video memory.&lt;br /&gt;
&lt;br /&gt;
=== RLE Compression ===&lt;br /&gt;
&lt;br /&gt;
The PCX format uses a form of [[RLE Compression]] that is rather unique. It compresses on the byte level and uses a flag system, where the flag is the two highest bits of a byte. If this flag is set (i.e. the two upper bits are set, or in other words the value is &amp;gt;= 192) then the lower six bits are the number of times to repeat the following byte.&lt;br /&gt;
&lt;br /&gt;
Thus, for a  byte pair &amp;lt;tt&amp;gt;C7 28&amp;lt;/tt&amp;gt;, the 0xC7 can be decomposed into the flag value 192 (128 + 64) plus 7, meaning the full byte pair means &#039;7 bytes of 0x28&#039;. So to get the amount, you subtract 192 from the flag, or, using faster logic operations, you can do &amp;lt;code&amp;gt;byte &amp;amp; 0x3F&amp;lt;/code&amp;gt; to retain only the lowest six bits.&lt;br /&gt;
&lt;br /&gt;
This means that the six-bit length values have a maximum of 63. It also means that any value larger than 191 &#039;&#039;must&#039;&#039; be stored as a length/value pair, which can actually &#039;&#039;increase&#039;&#039; the size of the file in some cases. For instance, if you have a single byte of color 192, then it must be represented by two bytes - one of 193 (C1, a repeat of one time) followed by one of 192 (C0, color byte 192).&lt;br /&gt;
&lt;br /&gt;
It is also worth noting that the byte value C0 does not have a clearly defined effect. Depending on the implementation in the decoding program, this could do any of the following:&lt;br /&gt;
&lt;br /&gt;
* treat &amp;lt;tt&amp;gt;C0&amp;lt;/tt&amp;gt; as a literal byte.&lt;br /&gt;
* ignore &amp;lt;tt&amp;gt;C0&amp;lt;/tt&amp;gt; and continue with the following byte.&lt;br /&gt;
* &#039;repeat the following byte zero times&#039;, effectively ignoring any byte following &amp;lt;tt&amp;gt;C0&amp;lt;/tt&amp;gt;. This could conceivably be used to embed non-image data in the PCX file which would be ignored by any program displaying the image.&lt;br /&gt;
* &#039;repeat the following byte 65536 times&#039;, which is basically a bugged implementation using a &amp;quot;&amp;lt;tt&amp;gt;while (--count != 0)&amp;lt;/tt&amp;gt;&amp;quot; style loop with a 16 bit variable/CPU register.&lt;br /&gt;
&lt;br /&gt;
At any rate, the best way to handle a &amp;lt;tt&amp;gt;C0&amp;lt;/tt&amp;gt; when encoding (compressing) is to write the sequence &amp;lt;tt&amp;gt;C1 C0&amp;lt;/tt&amp;gt;. When decoding (decompressing), a value of &amp;lt;tt&amp;gt;C0&amp;lt;/tt&amp;gt; almost always indicates an error in the file.&lt;br /&gt;
&lt;br /&gt;
Note that each scanline is compressed independently - an RLE sequence may span multiple planes, but it will never span more than one row of pixels. Thus when decompressing an image, the RLE algorithm will produce at most &amp;lt;tt&amp;gt;BytesPerPlaneLine&amp;lt;/tt&amp;gt; bytes at a time. Even where the RLE coding could have continued over to the next scanline, it will stop and start again fresh for each line.&amp;lt;ref&amp;gt;[http://www.drdobbs.com/pcx-graphics/184402396#01ED_0105 PCX Graphics | Dr Dobb&#039;s]&amp;lt;/ref&amp;gt;  For example, if the input image is 8&amp;amp;times;4 pixels EGA 16-colour, and the first two lines of pixels are black (color 0) and the last two are white (color 15), they must be compressed as &amp;lt;tt&amp;gt;C4 00 | C4 00 | C4 FF | C4 FF&amp;lt;/tt&amp;gt; and not as &amp;lt;tt&amp;gt;C8 00 | C8 FF&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Palettes ===&lt;br /&gt;
&lt;br /&gt;
Most of the game&#039;s supported formats are indexed, and thus require a colour palette. There are, however, three distinct ways of handling those palettes; CGA, EGA and VGA. For images with 16 colours or less, the palette is stored in the header. For images with more colours (i.e. 256-colour images) the header palette is ignored, and the 768-byte is stored after the image data. Some sources seem to indicate that there are formats where even the smaller palettes are added behind the image, so it is best to always check for it there. To determine if this is the case, check if the decompressed image data is followed by a &amp;lt;tt&amp;gt;0C&amp;lt;/tt&amp;gt; byte, and if there is enough data left in the file behind that for the palette data.&lt;br /&gt;
&lt;br /&gt;
As a general rule, the palettes are lists of 3-byte blocks. These blocks normally contain 8-bit RGB data, but even if they are used differently (as is the case for CGA palettes), they will still retain the 3-byte block structure.&lt;br /&gt;
&lt;br /&gt;
It is difficult to correctly determine the palette for 1-bit and 2-bit images, since they can be stored either as CGA or as VGA, and there is no real way to identify which method to use. Some sources suggest checking for 640x200 dimensions on 1-bit images, or 320x200 on 2-bit, since those are standard CGA sizes for respectively its monochrome and 4-colour mode, but 320x200 is a very common size for non-CGA images as well, and there has most likely never been anything preventing people on CGA hardware from saving PCX images in different sizes than a full screen. It is also suggested, for two bit per pixel images, that those with a single 2-bit plane would use a CGA palette, while those with two 1-bit planes would use VGA&amp;lt;ref&amp;gt;[http://www.fysnet.net/pcxfile.htm PCX graphics files explained] - section &amp;quot;Interpretation of the PCX data&amp;quot;&amp;lt;/ref&amp;gt;. All of this makes fully automatic identification for these image types very difficult.&lt;br /&gt;
&lt;br /&gt;
==== CGA palette ====&lt;br /&gt;
&lt;br /&gt;
CGA palette handling is a bit peculiar. As with other colour palettes, the data is seen as blocks of three bytes. However, in CGA mode, these blocks do not contain normal RGB colour data.&lt;br /&gt;
&lt;br /&gt;
The first triplet contains the background colour to be put on palette index #0. Only the highest four bits of the first byte are used, meaning the actual colour value can be found by taking that byte and shifting it four bits to the right. The result is a value from 0..15, which matches [[EGA Palette|one of the standard CGA/EGA text-mode colours]].&lt;br /&gt;
&lt;br /&gt;
For monochrome CGA images, the other entry is filled in with black (EGA palette entry #0), and the palette is complete.&lt;br /&gt;
&lt;br /&gt;
For actual 4-colour palettes, three status bits are normally fed into the CGA hardware to determine the rest of the palette:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| ColorBurst || Technically indicates the presence of colour on the palette, but disabling the bit actually causes a switch to Mode 5, which, on colour monitors, gives access to the extra unofficial &#039;&#039;&#039;palette 2&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Palette || Choice between &#039;&#039;&#039;palette 0&#039;&#039;&#039; and &#039;&#039;&#039; palette 1&#039;&#039;&#039;. If &amp;lt;tt&amp;gt;ColorBurst&amp;lt;/tt&amp;gt; is disabled, this bit is ignored.&lt;br /&gt;
|-&lt;br /&gt;
| Intensity || Choice between &#039;&#039;&#039;dark&#039;&#039;&#039; (0) or &#039;&#039;&#039;bright&#039;&#039;&#039; (1) version of the palette.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The default palettes are comprised of the following indices on the [[EGA Palette|standard EGA palette]]. The Intensity modifier simply increases all indices by 8 to get the bright equivalents of these colours.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Palette # !! Dark colours  !! Bright colours !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [2,4,6] || [10,12,14]|| Mode 4, palette 0&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [3,5,7] || [11,13,15]|| Mode 4, palette 1&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [3,4,7] || [11,12,15]|| The unofficial Mode 5 palette, accessed by disabling &amp;lt;tt&amp;gt;ColorBurst&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
However, the way these three bits are determined changed in PC Paintbrush version IV, and this change is not reflected in a change in the &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; value in the header. The only decent way to distinguish the files from before and after version IV is to check the &amp;lt;tt&amp;gt;PaletteInfo&amp;lt;/tt&amp;gt; byte in the header, which is 0 on files using the old method, and filled in (with 1 or 2) on files using the new method.&lt;br /&gt;
&lt;br /&gt;
===== Older method =====&lt;br /&gt;
&lt;br /&gt;
In the original way the status bits were saved, the second palette entry&#039;s first byte (byte 3) contains the three status bits.&amp;lt;ref name=&amp;quot;fileformat&amp;quot;&amp;gt;[https://www.fileformat.info/format/pcx/egff.htm PCX specs on fileformat.info]&amp;lt;/ref&amp;gt; They can be extracted by taking the highest three bits of that byte.&lt;br /&gt;
&lt;br /&gt;
* Bit 8 (&amp;lt;tt&amp;gt;10000000&amp;lt;/tt&amp;gt;) is &amp;lt;tt&amp;gt;ColorBurst&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Bit 7 (&amp;lt;tt&amp;gt;01000000&amp;lt;/tt&amp;gt;) is the &amp;lt;tt&amp;gt;Palette&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Bit 6 (&amp;lt;tt&amp;gt;00100000&amp;lt;/tt&amp;gt;) is the &amp;lt;tt&amp;gt;Intensity&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== Newer method =====&lt;br /&gt;
&lt;br /&gt;
For the newer files, with the &amp;lt;tt&amp;gt;PaletteInfo&amp;lt;/tt&amp;gt; byte filled in, the following&amp;lt;ref&amp;gt;[https://github.com/samuel/go-pcx/blob/d9c017170db4e016377181263f7e4cbb6bf1d8cc/pcx/decoder.go#L299 PCX image encoder and decoder for Go] - &#039;&#039;PC Paintbush 4.0 encodes the CGA palettes differently than 3.0.&#039;&#039;&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://github.com/wjaguar/mtPaint/blob/3884b6d6ebc18511df7bf1485a19fe774dd61dcf/src/png.c#L5416 Mark Tyler&#039;s Painting Program] - &#039;&#039;CGA palette is evil: what the PCX spec describes is the way it was handled by PC Paintbrush 3.0, while 4.0 was using an entirely different, undocumented encoding for palette selection.&#039;&#039;&amp;lt;/ref&amp;gt; should be done to determine the palette:&lt;br /&gt;
&lt;br /&gt;
* Take the green and blue values of the second palette entry. These are the bytes at index 4 and 5 in the palette data.&lt;br /&gt;
* If the green value is strictly-greater than the blue value, take Palette 0, otherwise take Palette 1.&lt;br /&gt;
* If the largest of these two values is greater than 200, the Intensity bit is enabled.&lt;br /&gt;
&lt;br /&gt;
The new method seemed to have been intended to convert a fully-saved colour palette back to CGA status bits. Sadly, it seems people figured out exactly what it checked, and started writing PCX files which contained only exactly enough data to derive those bits instead of saving an actual full palette.&lt;br /&gt;
&lt;br /&gt;
As a side effect of this, there is no real check for the color burst, meaning it is always considered to be enabled, and there is no support for palette 2. If an actual palette is saved in the file, such support &#039;&#039;could&#039;&#039; be added. A viable check for detecting palette 2 (meaning, a disabled colour burst bit) would be that the original logic matches palette 1, and the third entry&#039;s red value is greater than its blue value.&lt;br /&gt;
&lt;br /&gt;
==== EGA palette ====&lt;br /&gt;
&lt;br /&gt;
EGA images are those with eight or sixteen colours. Typically, they have &amp;lt;tt&amp;gt;BitsPerPlane&amp;lt;/tt&amp;gt; set to 1 and &amp;lt;tt&amp;gt;ColorPlanes&amp;lt;/tt&amp;gt; set to 3 or 4, though variations like two 2-bit planes or one 4-bit plane are possible as well. For these images, there are two ways of handling the colours:&lt;br /&gt;
&lt;br /&gt;
* If the version in the header is 0 or 3, then the [[EGA Palette|standard EGA palette]] is used, since version 0 does not support a modified palette, and version 3 specifically indicates that no palette information is present in the file.&amp;lt;ref name=&amp;quot;fileformat&amp;quot; /&amp;gt;&lt;br /&gt;
* In any other version, the palette is read from the header. The data is structured the same way as [[VGA Palette#The_.22Modern.22_format|8-bit VGA palettes]], except that it&#039;s less long.&lt;br /&gt;
&lt;br /&gt;
Most EGA images will be 4 bits per pixel, meaning the palette will be 16 colours long, but 3 bit per pixel planar format is supported as well. In that case, only 8 entries are read, or if it uses the default EGA palette, only the darker first eight colours will be available. 2 bit per pixel images could use EGA palette handling as well, but these are hard to distinguish from the CGA ones.&lt;br /&gt;
&lt;br /&gt;
Note that technically, EGA images are limited to 2 bit colour components, meaning every component would need to be rounded to the nearest multiple of &amp;lt;tt&amp;gt;0x55&amp;lt;/tt&amp;gt;, though, practically, there is little reason to not let the images retain the more accurate colours as they are specified in the palette.&lt;br /&gt;
&lt;br /&gt;
==== VGA palette ====&lt;br /&gt;
&lt;br /&gt;
For 8-bit images, the 256-colour palette can be found behind the image data. It is a [[VGA Palette#The_.22Modern.22_format|standard VGA palette in 8-bit RGB format]]. A single signature byte of &amp;lt;tt&amp;gt;0C&amp;lt;/tt&amp;gt; is included before the palette data begins.&lt;br /&gt;
&lt;br /&gt;
Some PCX readers simplify the start offset of the 256-colour palette to &amp;lt;code&amp;gt;EndOfFile - 768&amp;lt;/code&amp;gt;, though technically, the correct way to find it is to take the offset you end up at after decompressing the image, checking for the &amp;lt;tt&amp;gt;0C&amp;lt;/tt&amp;gt; byte after that, and then reading the 768-byte palette.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
&lt;br /&gt;
=== ASM ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
EXTERN  kbdin, dosxit           ; LIB291 functions&lt;br /&gt;
&lt;br /&gt;
SEGMENT ScratchSeg&lt;br /&gt;
ScratchPad      resb 65535&lt;br /&gt;
&lt;br /&gt;
SEGMENT stkseg STACK&lt;br /&gt;
        resb    64*8&lt;br /&gt;
stacktop:&lt;br /&gt;
        resb    0&lt;br /&gt;
&lt;br /&gt;
SEGMENT code&lt;br /&gt;
&lt;br /&gt;
PCX1    db      &#039;my_pcx1.pcx&#039;, 0        ; Filenames&lt;br /&gt;
PCX2    db      &#039;my_pcx2.pcx&#039;, 0        ; (Must end with 0 byte)&lt;br /&gt;
&lt;br /&gt;
..start:&lt;br /&gt;
        mov     ax, cs          ; Set up data and stack segments&lt;br /&gt;
        mov     ds, ax&lt;br /&gt;
        mov     ax, stkseg&lt;br /&gt;
        mov     ss, ax&lt;br /&gt;
        mov     sp, stacktop&lt;br /&gt;
&lt;br /&gt;
MAIN:&lt;br /&gt;
        ; Sets up mode 13h and clears screen&lt;br /&gt;
        mov     ax, 0013h&lt;br /&gt;
        int     10h&lt;br /&gt;
&lt;br /&gt;
        mov     dx, pcx1        ; Filename to display&lt;br /&gt;
        call    ShowPCX         ; Display PCX file to screen&lt;br /&gt;
&lt;br /&gt;
        ; Wait for keypress&lt;br /&gt;
        call    kbdin&lt;br /&gt;
&lt;br /&gt;
        ; Go back to text mode&lt;br /&gt;
        mov     ax, 0003h&lt;br /&gt;
        int     10h&lt;br /&gt;
&lt;br /&gt;
        ; Return to DOS&lt;br /&gt;
        call    dosxit&lt;br /&gt;
&lt;br /&gt;
;-----------------------------------------------------------------------------&lt;br /&gt;
; ShowPCX procedure by Brandon Long,&lt;br /&gt;
;   modified by Eric Meidel and Nathan Jachimiec,&lt;br /&gt;
;   converted to NASM, cleaned up, and better commented by Peter Johnson&lt;br /&gt;
; Inputs: DX has the offset of PCX filename to show.&lt;br /&gt;
; Output: PCX file displayed (all registers unchanged)&lt;br /&gt;
; Notes:  Assumes PCX file is 320x200x256.&lt;br /&gt;
;         Uses ScratchSeg for temporary storage.&lt;br /&gt;
;         The PCX file must be in the same directory as this executable.&lt;br /&gt;
;-----------------------------------------------------------------------------&lt;br /&gt;
ShowPCX&lt;br /&gt;
        push    ax              ; Save registers&lt;br /&gt;
        push    bx&lt;br /&gt;
        push    cx&lt;br /&gt;
        push    si&lt;br /&gt;
        push    di&lt;br /&gt;
        push    es&lt;br /&gt;
&lt;br /&gt;
        mov     ax, 3D00h&lt;br /&gt;
        int     21h             ; Open file&lt;br /&gt;
        jc      .error          ; Exit if open failed&lt;br /&gt;
&lt;br /&gt;
        mov     bx, ax          ; File handle&lt;br /&gt;
        mov     cx, 65535       ; Number of bytes to read&lt;br /&gt;
        mov     ax, ScratchSeg  ; DS:DX -&amp;gt; buffer for data&lt;br /&gt;
        mov     ds, ax&lt;br /&gt;
        mov     dx, ScratchPad&lt;br /&gt;
        mov     si, dx&lt;br /&gt;
        mov     ah, 3Fh&lt;br /&gt;
        int     21h             ; Read from file&lt;br /&gt;
&lt;br /&gt;
        mov     ax, 0A000h      ; Start writing to upper-left corner&lt;br /&gt;
        mov     es, ax          ; of graphics display&lt;br /&gt;
        xor     di, di&lt;br /&gt;
&lt;br /&gt;
        add     si, 128         ; Skip header information&lt;br /&gt;
&lt;br /&gt;
        xor     ch, ch          ; Clear high part of CX for string copies&lt;br /&gt;
&lt;br /&gt;
.nextbyte:&lt;br /&gt;
        mov     cl, [si]        ; Get next byte&lt;br /&gt;
        cmp     cl, 0C0h        ; Is it a length byte?&lt;br /&gt;
        jb      .normal         ;  No, just copy it&lt;br /&gt;
        and     cl, 3Fh         ; Strip upper two bits from length byte&lt;br /&gt;
        inc     si              ; Advance to next byte - color byte&lt;br /&gt;
        lodsb                   ; Get color byte into AL from [SI]&lt;br /&gt;
        rep stosb               ; Store to [ES:DI] and inc DI, CX times&lt;br /&gt;
        jmp     short .tst&lt;br /&gt;
&lt;br /&gt;
.normal:&lt;br /&gt;
        movsb                   ; Copy color value from [SI] to [ES:DI]&lt;br /&gt;
&lt;br /&gt;
.tst:&lt;br /&gt;
        cmp     di, 320*200     ; End of file? (written 320x200 bytes)&lt;br /&gt;
        jb      .nextbyte&lt;br /&gt;
&lt;br /&gt;
        mov     cl, [si]&lt;br /&gt;
        cmp     cl, 0Ch         ; Palette available?&lt;br /&gt;
        jne     .close&lt;br /&gt;
&lt;br /&gt;
        ; Set palette using port I/O&lt;br /&gt;
        mov     dx, 3C8h&lt;br /&gt;
        mov     al, 0&lt;br /&gt;
        out     dx, al&lt;br /&gt;
        inc     dx              ; Port 3C9h&lt;br /&gt;
        mov     cx, 256*3       ; Copy 256 entries, 3 bytes (RGB) apiece&lt;br /&gt;
        inc     si              ; Skip past padding byte&lt;br /&gt;
&lt;br /&gt;
.palette:&lt;br /&gt;
        lodsb&lt;br /&gt;
        shr     al, 1           ; PCX stores color values as 0-255&lt;br /&gt;
        shr     al, 1           ;  but VGA DAC is only 0-63&lt;br /&gt;
        out     dx, al&lt;br /&gt;
        dec     cx&lt;br /&gt;
        jnz     .palette&lt;br /&gt;
&lt;br /&gt;
.close:&lt;br /&gt;
        mov     ah, 3Eh&lt;br /&gt;
        int     21h             ; Close file&lt;br /&gt;
&lt;br /&gt;
.error:&lt;br /&gt;
        pop     es              ; Restore registers&lt;br /&gt;
        pop     di&lt;br /&gt;
        pop     si&lt;br /&gt;
        pop     cx&lt;br /&gt;
        pop     bx&lt;br /&gt;
        pop     ax&lt;br /&gt;
        ret&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
PCX files can be read, and occasionally converted by several programs, notably, the Microsoft Photo Editor included in Windows XP can do so.&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=image}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.xnview.com XnView]&lt;br /&gt;
| Platform = Windows/MacOSX/Linux&lt;br /&gt;
| canView = Yes&lt;br /&gt;
| canExport = Yes&lt;br /&gt;
| canImport = Yes&lt;br /&gt;
| editHidden = N/A&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Freeware for private non-commercial or educational use.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.imagemagick.com ImageMagick]&lt;br /&gt;
| Platform = Cross-platform&lt;br /&gt;
| canView = Yes&lt;br /&gt;
| canExport = Yes&lt;br /&gt;
| canImport = Yes&lt;br /&gt;
| editHidden = N/A&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Is unable to correctly write 16-colour PCX files.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.gimp.org GNU Image Manipulation Program]&lt;br /&gt;
| Platform = Cross-platform&lt;br /&gt;
| canView = Yes&lt;br /&gt;
| canExport = Yes&lt;br /&gt;
| canImport = Yes&lt;br /&gt;
| editHidden = N/A&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Does not handle CGA or default-palette EGA images correctly.&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Engie File Converter]]&lt;br /&gt;
| Platform = Windows&lt;br /&gt;
| canView = Yes&lt;br /&gt;
| canExport = No&lt;br /&gt;
| canImport = Yes&lt;br /&gt;
| editHidden = N/A&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
| notes = Relies on common image dimensions for CGA detection.&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://bespin.org/~qz/pc-gpe/pcx.txt Official PCX documentation]&lt;br /&gt;
* [http://web.archive.org/web/20030111010058/http://www.nist.fss.ru/hr/doc/spec/pcx.htm Official PCX documentation in HTML (archived version)]&lt;br /&gt;
* [http://www.fileformat.info/format/pcx/egff.htm PCX at the File Format Encyclopaedia] - very detailed&lt;br /&gt;
* [http://fileformats.archiveteam.org/wiki/PCX PCX on the &#039;Just Solve the File Format Problem&#039; wiki] - includes useful sample files.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aybe</name></author>
	</entry>
</feed>