<?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=Calvero</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=Calvero"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Calvero"/>
	<updated>2026-05-14T05:01:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Malvineous&amp;diff=3141</id>
		<title>User talk:Malvineous</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Malvineous&amp;diff=3141"/>
		<updated>2010-12-12T20:43:53Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Dangerous Dave */ VGA is RLE, enemies unknown&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wolfenstein 3D -&amp;gt; Wolfenstein 3-D ==&lt;br /&gt;
I&#039;ve corrected the infamous 3D tyop in the names of several Wolf3D-related pages; can you please delete the following ones?&lt;br /&gt;
&lt;br /&gt;
[[:Category:Wolfenstein 3D]] -&amp;gt; Superseded by [[:Category:Wolfenstein 3-D]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Image:Wolfenstein_3D.png]] -&amp;gt; Superseded by [[:Image:Wolfenstein_3-D.png]]&lt;br /&gt;
&lt;br /&gt;
Thanks :) --De Zeurkous (zeurkous@zeurcomp.nichten.info), Thu Nov 22 08:18:42 UTC 2007&lt;br /&gt;
&lt;br /&gt;
:Haha, you&#039;ve certainly been busy.  Don&#039;t forget that this wiki isn&#039;t meant to be an encyclopaedia of the games, its main purpose is documenting the file formats and editing tools that can be used with the games, as opposed to how the games behave without any mods, or what they might be called if you forget to change the title screen :-) -- [[User:Malvineous|Malvineous]] 11:14, 22 November 2007 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Nah, I haven&#039;t forgotten. As we&#039;re reinventing the wheel for a semi-virgin wiki, the naming and something static like the cheats seemed like a good place to start :) --De Zeurkous (zeurkous@nichten.info), Thu Nov 22 12:20:04 UTC 2007&lt;br /&gt;
&lt;br /&gt;
== Jill of the Jungle palette ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m currently working on a level viewer for [[Jill of the Jungle]] (maybe an editor later on). Some of the information I found here has been very useful, but there&#039;s one thing I&#039;m a bit stuck on. On the [[SHA Format]] page it says:&lt;br /&gt;
:&#039;&#039;Each array item contains 4 unsigned bytes, representing CGA, EGA and VGA, respectivley, and then a null value. [...] Each byte maps to the index of a colour in the palette. If there are no colours required, the tile set uses the default colours.&#039;&#039;&lt;br /&gt;
However, it doesn&#039;t say anywhere where the palette can be found. Is it stored in the EXE file? I hope you can help me on this :)&lt;br /&gt;
&lt;br /&gt;
Regards, [[User:Spinal|Spinal]] 13:00, 2 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
:Unfortunately I didn&#039;t write the JotJ SHA page, and I haven&#039;t yet had the time to figure this out.  For Xargon I&#039;ve taken the quick and dirty route and used a screenshot from within DOSBox as the source of the palette, until I can figure out where the palette is located.  If you find this out, don&#039;t forget to update the page! :-) -- [[User:Malvineous|Malvineous]] 22:02, 2 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Hey Spinal, sorry, I wrote the [[SHA Format]] page, so that was probably my bad. I wasn&#039;t able to find the palette either. I assume it&#039;s in the .EXE, however I spent a fair bit of time manually mapping it using a Wombat tool (http://www.szevvy.com/node/3). I was also writing a level viewer (initally in XHTML which turned out to be too slow, so then I moved to Flash 9). I tried to email you my findings, but the email bounced. I&#039;m not sure if they were 100% accurat, which is why I never added them to the documentation.&lt;br /&gt;
&lt;br /&gt;
::Hey Malvineous, it seems the Jill - [[DMA Format]] page has been removed. Do you have a log of what happened to it? I&#039;m sure it existed at some point.&lt;br /&gt;
&lt;br /&gt;
::- [[User:dheim|Daniel]] 20:00, 5 March 2008&lt;br /&gt;
&lt;br /&gt;
:::I don&#039;t ever remember seeing a DMA page - certainly there&#039;s nothing in the wiki logs about it being deleted or renamed.  Maybe you started working on it but never got around to saving it?  Or is it one of the Xargon pages that shares the same format as Jill?  (by the way, you can type &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; to automatically put in the signature in these messages.) -- [[User:Malvineous|Malvineous]] 11:28, 5 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::Sorry, it must have been the stuff in the [[SHA Format]] page that I was thinking of. I may have added the link to the [[DMA Format]] page, and never expanded on it. - [[User:Dheim|Daniel]] 02:46, 6 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::::Hi guys. Sorry for the mistake, I mixed up the authors of the SHA and level formats. I&#039;ve written a level viewer in PHP the last week, by using static images instead of getting them from the actual files. This causes some problems for episode 2, which uses a different palette, but besides that it works great :) When everything is done I&#039;ll upload the maps to my server and the tile/object lists to this wiki.&lt;br /&gt;
:::::@Daniel: strange that it bounced, I confirmed my address so it should be working fine... You can mail it to spinal -at- zanderz -dot- net. Also, I saw on your Wombat page that you &amp;quot;have a vague idea of how to do&amp;quot; [[Hocus Pocus]]. Could you share your findings on this wiki? I&#039;d love to make maps, or even a level viewer/editor for that game :) -- [[User:Spinal|Spinal]] 00:32, 8 March 2008 (GMT)&lt;br /&gt;
:Okay, with help of [[User:Dheim|Daniel]] who send me the palette I found it! I&#039;ll put my findings on [[Jill of the Jungle palette]]. -- [[User:Spinal|Spinal]] 15:36, 13 March 2008 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Halloween Harry/Alien Carnage ==&lt;br /&gt;
&lt;br /&gt;
Hi Malvineous. Thanks for your edits on the GMF article! I notice you mentioned there exist versions of the game which don&#039;t require exploding a BNK to get at the game data. What does the directory structure look like for the version you have? I&#039;m working on a map viewer (which will become a map editor at some point) and would like it to be able to work on whatever versions are out there. Thanks for any info. -[[User:Duckthing|Duckthing]] 04:41, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Hi Duckthing - no worries, Halloween Harry has long been an interest of mine, but my map editor sadly needs a lot more work before I can begin reverse engineering more file formats so I&#039;m glad you&#039;ve made a start!  AFAIK technically Halloween Harry has no compression, but for whatever reason (probably listed in the Apogee FAQ) they decided to swap episodes 1 and 3, compress the BNK file and then re-release it under the name Alien Carnage.  You can download all available versions (including registered versions since the game was released as freeware in 2007) from [http://www.classicdosgames.com/game/Alien_Carnage.html RGB Classic Games].  BTW not sure if you noticed but I also posted a couple of things on the GMF article&#039;s talk/discussion page. -- [[User:Malvineous|Malvineous]] 06:08, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:: Thank you! Working with the uncompressed version will keep things less complicated. I did notice the GMF discussion you added, but haven&#039;t had a chance to really go through it yet. -- [[User:Duckthing|Duckthing]] 06:41, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::: No worries.  If you&#039;re running Linux or MacOSX you should be able to compile [[Camoto|libgamearchive]] which will let you copy files in and out of the BNK files.  This is a library so it&#039;s also possible to use it in your own program for accessing and editing the map files while they&#039;re still inside the BNK, for instance.  (BTW the &#039;minor&#039; tickbox should only be used when the edit does not affect the information on the page - e.g. fixing a typo or a broken URL.  If you are changing the actual content on a page it is never a minor edit!) -- [[User:Malvineous|Malvineous]] 07:51, 11 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dangerous Dave ==&lt;br /&gt;
&lt;br /&gt;
Working on this, does anyone have any info on the formats? The EGA graphics are 84KB and external, but CGA and VGA graphics unrelated to them are in the 174KB executable, apparently uncompressed, I don&#039;t know how this is possible. I&#039;ve found the levels and partially reverse engineered the format (The first 1000 bytes, a 100x10 array of tiles.) but each level is followed by ~280 bytes of variable and unknown data I assume is sprites. I have a list of internal files in the executable, looks like most of it is non-game code. Any help would be appreciated. -[[User:Levellass|Endian? What are you on about?]] 06:03, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Hmm, interesting.  All I can suggest for the levels is - as you&#039;re probably already familiar with - changing the values in a hex editor then loading the game to see what happens.  I would suspect that all the graphics would be in a similar format, so if there are any headers or structures used in the EGA graphics files perhaps they&#039;re duplicated for CGA/VGA?  Also John Romero seems pretty accessible, perhaps you could ask him directly?  Failing that, randomly writing data into the .exe until the images change could be used as a last resort! -- [[User:Malvineous|Malvineous]] 12:09, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Ha, that was easier than I expected - uncompressed VGA data is easy to find with a good hex editor ;-)  [http://www.shikadi.net/pics/ddave-vga-hexdump.png This looks like it] -- [[User:Malvineous|Malvineous]] 12:17, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
: Ok that was only the menu graphics.  At offset 0xC629 there&#039;s some sort of offset table which looks very similar to the contents of EGADAVE.DAV but there are extra bytes dotted all over the place - perhaps it&#039;s RLE encoded?  Actually just before that there&#039;s the number 0x6CAA.  If you go a bit less than 0x6CAA bytes after this you end up with another table, which to me suggests that 0x6CAA is the decompressed size of that first table. -- [[User:Malvineous|Malvineous]] 13:01, 12 December 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:If I remember it correctly, the VGA sprites and tiles are RLE compressed and it&#039;s not too hard to decompress them. The positions of the enemies in the levels on the other hand are still a mystery to me. [[User:Calvero|Calvero]] 20:43, 12 December 2010 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Jill_of_the_Jungle&amp;diff=2912</id>
		<title>Jill of the Jungle</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Jill_of_the_Jungle&amp;diff=2912"/>
		<updated>2010-07-15T15:44:57Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Episode 2: Jill Goes Underground */ fixed a copy-paste typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage}}&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
* [[CMF Format]] - game music is stored in the &amp;lt;tt&amp;gt;*.DDT&amp;lt;/tt&amp;gt; files&lt;br /&gt;
* [[CFG Format (Jill of the Jungle)|CFG Format]] - game configuration is stored in &amp;lt;tt&amp;gt;JILL?.CFG&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[MAC Format (Jill of the Jungle)|MAC Format]] - macros (level demos)&lt;br /&gt;
* [[DMA Format]] - Level tiles&lt;br /&gt;
* [[SHA Format]] - Graphics&lt;br /&gt;
* [[Jill of the Jungle Map Format]] - Levels are stored in &amp;lt;tt&amp;gt;*.JN&amp;lt;i&amp;gt;x&amp;lt;/i&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;INTRO.JN&amp;lt;i&amp;gt;x&amp;lt;/i&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Saved games are just dumps of the entire level in its current state (so they&#039;re the same format as the [[Jill of the Jungle Map Format|actual levels]], stored in &amp;lt;tt&amp;gt;JN?SAVE.?&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Palette  ==&lt;br /&gt;
[[Image:Jill of the Jungle palette.png|thumb|right|128px|Jill of the Jungle palette]]&lt;br /&gt;
The VGA palette can be found inside the .EXE file. The palette is the same in all episodes and versions.&lt;br /&gt;
&lt;br /&gt;
==== Episode 1: Jill of the Jungle ====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Version!!CRC32!!Date!!Size!!Palette Offset&lt;br /&gt;
|-&lt;br /&gt;
|1.0||7899CC28||1992-06-01||216 804 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2||51ADAE83||1992-07-30||206 963 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2a||171E9EC0||1992-08-21||206 712 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2b||C52CA6D9||1993-02-17||206 636 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2c||0E7C596F||1993-12-27||219 216 bytes||?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Episode 2: Jill Goes Underground ====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Version!!CRC32!!Date!!Size!!Palette Offset&lt;br /&gt;
|-&lt;br /&gt;
|1.0||6064EA0A||1992-06-17||65 166&amp;lt;sup&amp;gt;†&amp;lt;/sup&amp;gt; bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2||?||1992-07-30||?||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2a||17477A49||1992-08-21||204 158 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2b||75176ED7||1993-02-17||204 096 bytes||?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Episode 3: Jill Saves the Prince ====&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Version!!CRC32!!Date!!Size!!Palette Offset&lt;br /&gt;
|-&lt;br /&gt;
|1.0||3B4D8C3B||1992-07-07||201 616 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2||51ADAE83||1992-07-30||204 425 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2a||D5435AFB||1992-08-21||204 174 bytes||?&lt;br /&gt;
|-&lt;br /&gt;
|1.2b||3FFF0F6C||1993-02-17||204 112 bytes||?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
†This version has been packed using [[LZEXE|LZEXE91]].&lt;br /&gt;
&lt;br /&gt;
The palette is in [[VGA Palette|classic VGA format]] (6-bit RGB.)  Note that the [[SHA Format]] can override this palette.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Since the level files are used for a lot of different things, you can e.g. swap &amp;lt;tt&amp;gt;INTRO.JN1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;1.JN1&amp;lt;/tt&amp;gt; and then when you load the first level you&#039;ll be playing the intro screen.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://jillofthejungle.110mb.com/ Unofficial Jill of the Jungle page] ([http://members.tripod.com/classic_roach/id14.html Older version])&lt;br /&gt;
*[http://ftp.funet.fi/pub/msdos/games/editors/jilledit.zip JillEdit] [http://www.stuntsillusion.com/download/jilledit.zip (mirror)] - a level editor for Jill of the Jungle created by Rory L. Fisher.&lt;br /&gt;
&lt;br /&gt;
[[Category:Epic Megagames]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Jill_of_the_Jungle&amp;diff=2911</id>
		<title>Talk:Jill of the Jungle</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Jill_of_the_Jungle&amp;diff=2911"/>
		<updated>2010-07-15T15:42:34Z</updated>

		<summary type="html">&lt;p&gt;Calvero: There&amp;#039;s a UK version of Jill 1. And not all versions have the references to Keen et al.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my version of Jill of the Jungle, the palettes were found at these locations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x24964.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x24A64.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill2:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x1F5B4.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x1F6B4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill3:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x1F704.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x1F804.&lt;br /&gt;
&lt;br /&gt;
Some of them differ from the posted. Does anyone else have a different version? --[[User:SaxxonPike|SaxxonPike]] 16:10, 12 July 2010 (GMT)&lt;br /&gt;
:Not sure - is there an easy way to tell which version a given .exe is?  If so we should add a column to the table for the version number, so we can list the offsets for all known versions.  Maybe also a signature code so it&#039;s easy for a program to identify which version a given file is. -- [[User:Malvineous|Malvineous]] 22:49, 12 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve seen different versions of a couple of Epic games, like Jill of the Jungle, Jazz Jackrabbit, Epic Pinball, Silverball and Extreme Pinball, and I couldn&#039;t find a version number inside the .exe files or see a version number when running the game. The only way to see which version number a game has, is to read what the included Helpme.doc file says. And even that is not foolproof as I&#039;ve seen different .exe files with the same Helpme.doc file. Apogee surely did the version numbering a lot better than Epic :). [[User:Calvero|Calvero]] 11:17, 13 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::The HELPME.DOC files can be quite misleading, actually. I&#039;ve found a bunch of copies of the shareware episodes where the HELPME.DOC claims the game is version 2.0 when the game itself identifies itself by another version number (e.g. Solar Winds, version 2.0 in the .DOC and 1.1 in-game). Regarding Jill of the Jungle, there are &amp;quot;officially&amp;quot; (by officially I mean what they identify themselves as in the documents) only two recognized versions, 1.0 and 1.2. But there are also a number of revisions I&#039;ve found to version 1.2 which I personally call 1.2, 1.2a, 1.2b and 1.2c. I know for a fact all of these revisions except 1.2c also have matching registered versions (I&#039;m not too convinced that 1.2c actually had anything else than a shareware release). I have made a document some time ago to make it easier to identify these versions and it can be found from [http://aoebeta.110mb.com/Private/jill_versions.txt here] (the data is that of the main game EXE). --[[User:Litude|Litude]] 11:24, 15 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::Wow, would you mind including that info on the main Jill page?  I&#039;m happy to do it but might be better if you do the first edit so it goes against your name in the edit history.  Add an extra column for those palette offsets so we can add them in when we find them out for a particular version.  My Jill versions match up well with your list, except my Jill 1 v1.0 (216804) is dated 1992-06-01, one day earlier than in your list.  Also not sure if you&#039;re recording dates/versions of jjfile0.exe (the episode loader) because I&#039;m not sure where that came from as I didn&#039;t find it until relatively recently. -- [[User:Malvineous|Malvineous]] 11:38, 15 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:::::Alright, I&#039;ll try adding the info though I don&#039;t really mind having someone else adding them (I don&#039;t really care that much about getting credited for stuff). Regarding the modify date of version 1.0, you&#039;re absolutely right. It seems my finger slipped when putting together that document. JJFILE0.EXE first appeared in version 1.2a and was also present in version 1.2b, but it was removed in 1.2c (which is why I think its shareware only, can&#039;t see any other reason for its removal). I don&#039;t record the dates of that file as as far as I know there are only two versions of the file, one of which is present in version 1.2a and the other one which is present in 1.2b.--[[User:Litude|Litude]] 12:43, 15 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::::The version that is called version 1.1 of Jill 1 on [http://www.classicdosgames.com/game/Jill_of_the_Jungle.html RGB Classic Games] is called version 1.2a here, but when you run the game it says it&#039;s the United kingdom version. It gets this version information from the file INTRO.JN1. So at least one version of the game has in-game version information :).&amp;lt;br&amp;gt;Through my own research I found out that only version 1.0 has the references to Commander Keen, Mario, Duke Nukem and Pac-Man in the map level. Can someone confirm this? It&#039;s possible to copy MAP.JN1 of version 1.0 to later versions to restore these references. [[User:Calvero|Calvero]] 15:42, 15 July 2010 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Jill_of_the_Jungle&amp;diff=2903</id>
		<title>Talk:Jill of the Jungle</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Jill_of_the_Jungle&amp;diff=2903"/>
		<updated>2010-07-13T11:17:55Z</updated>

		<summary type="html">&lt;p&gt;Calvero: reply - Almost no version information in Epic games :(&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In my version of Jill of the Jungle, the palettes were found at these locations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x24964.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x24A64.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill2:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x1F5B4.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x1F6B4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Jill3:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VGA to EGA conversion table @ 0x1F704.&lt;br /&gt;
&lt;br /&gt;
VGA palette @ 0x1F804.&lt;br /&gt;
&lt;br /&gt;
Some of them differ from the posted. Does anyone else have a different version? --[[User:SaxxonPike|SaxxonPike]] 16:10, 12 July 2010 (GMT)&lt;br /&gt;
:Not sure - is there an easy way to tell which version a given .exe is?  If so we should add a column to the table for the version number, so we can list the offsets for all known versions.  Maybe also a signature code so it&#039;s easy for a program to identify which version a given file is. -- [[User:Malvineous|Malvineous]] 22:49, 12 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve seen different versions of a couple of Epic games, like Jill of the Jungle, Jazz Jackrabbit, Epic Pinball, Silverball and Extreme Pinball, and I couldn&#039;t find a version number inside the .exe files or see a version number when running the game. The only way to see which version number a game has, is to read what the included Helpme.doc file says. And even that is not foolproof as I&#039;ve seen different .exe files with the same Helpme.doc file. Apogee surely did the version numbering a lot better than Epic :). [[User:Calvero|Calvero]] 11:17, 13 July 2010 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Crystal_Caves&amp;diff=2878</id>
		<title>Talk:Crystal Caves</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Crystal_Caves&amp;diff=2878"/>
		<updated>2010-07-10T11:48:54Z</updated>

		<summary type="html">&lt;p&gt;Calvero: UNP vs Unlzexe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;No modding tools exist for Crystal Caves, correct?&lt;br /&gt;
&lt;br /&gt;
Also, it appears that the levels are located in the UNP&#039;d executable starting at seg000:7332 (or $8C30 in the UNP&#039;d exe).  I believe tiles are stored as byte values, in pascal strings.  Each row of tiles is 40 long, so there is an array of strings of length 41.  Also, just looking at the ASCII representation of the hex values, you can clearly see the outline of the main level.  Therefore, this should be easily patchable using a CKPATCH like utility.&lt;br /&gt;
&lt;br /&gt;
 (2222222222222222222222222222222222222222&lt;br /&gt;
 (                                        &lt;br /&gt;
 (     Y                     ÛÜ           &lt;br /&gt;
 (                               [A       &lt;br /&gt;
 (                               nn       &lt;br /&gt;
 (Dddddddddddddddddddddddddddddddddddddddn &lt;br /&gt;
 (                           ÛÜ           &lt;br /&gt;
 (                               Y        &lt;br /&gt;
 (        [5                              &lt;br /&gt;
 (        [B                              &lt;br /&gt;
 (        nn                              &lt;br /&gt;
 (z   mN                                 z&lt;br /&gt;
 (z                                      z&lt;br /&gt;
 (z                            un        z&lt;br /&gt;
 (z Y                          Žn        z&lt;br /&gt;
 (zZZZZZZZ[mZZZZZZZZZZZZZZZZZZnnnZZZZZZZz&lt;br /&gt;
 (lklklklklklklklklkKlkLKlkLKlkLKlkLKk kLk&lt;br /&gt;
 (k        Õ     Õ         Õ    [d       L&lt;br /&gt;
 (l    x              x            ±±±±± l&lt;br /&gt;
 (LÕ  ±±±  H  ±±±±±±±±±±±±±±±±±     ðn ² k&lt;br /&gt;
 (K    ²       ðn   x       ðn    ú ³nx²Æk&lt;br /&gt;
 (kù  ±±± [d   ³n  ±±±±  Õ  ³n   ±±±±±±± L&lt;br /&gt;
 (lú   ²     Õ ³n   ðn      ³n      ðn ² l&lt;br /&gt;
 (Lùù x²x      ³n   ³n ù    ³n  ú   ³nx² k&lt;br /&gt;
 (k±±±±±±±±±±±±±±±±±±±±±±   ³n ùùú  ³n±±VK&lt;br /&gt;
 (l  ðnÕ   Õðn  ²Õ          ±±±±±±±±±±±± k&lt;br /&gt;
 (kx ³n     ³n x²      x    ²   ðn  ðn   l&lt;br /&gt;
 (K±±±±±   ±±±±±±±  ±±±±±±±±²x  ³n  ³n   K&lt;br /&gt;
 (k  ðnÕ   Õðn  ²      ðn Õ ±±±±±±±±±±±± k&lt;br /&gt;
 (Lx ³n     ³n x²x ù   ³n             x² K&lt;br /&gt;
 (l±±±±± V ±±±±±±±±±±±±±±±±±±±±±±±±±±±±± k&lt;br /&gt;
 (k  ðn          [4n       ðn      ðn    L&lt;br /&gt;
 (Kx ³n      Õ         Õ   ³n  Õ   ³n Õ  L&lt;br /&gt;
 (kK ³n                    ³n      ³n    k&lt;br /&gt;
 (lKkLkKklKLklKLKkKlkLKlkLKlkLKlkLKlkLKlkl&lt;br /&gt;
 (1111111111111111111111111111111111111111&lt;br /&gt;
&lt;br /&gt;
[[User:Lemm|Lemm]] 13:31, 9 December 2009 (GMT)&lt;br /&gt;
&lt;br /&gt;
Nifty. There are a handful of graphics editors for it, but nothing else. This should help with level editing muchly. -- [[User:Draik|Draik]] 05:33, 10 December 2009 (GMT)&lt;br /&gt;
&lt;br /&gt;
:How many versions of Crystal Caves are there?  In my unlzexe&#039;d version the level data starts at 0x8CE0 instead.  The levels seem to be of varying height though - the map is 36 rows high, most of the levels are 24 rows high but either e1l6 or e1l7 seems to be only 23 rows high.  Maybe there&#039;s an array somewhere with all the level heights? -- [[User:Malvineous|Malvineous]] 13:25, 9 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:: Here are my guesstimations based on the look of each level.  Map is 36 tiles high, levels 7, 8 and 14 are 23 tiles high, and the rest are 24 tiles high. -- [[User:Malvineous|Malvineous]] 13:43, 9 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
::Be aware that UNP and Unlzexe don&#039;t create the same output on the same input! [[User:Calvero|Calvero]] 11:48, 10 July 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Graphics editors ==&lt;br /&gt;
&lt;br /&gt;
They can be found over at http://spikenexus.toxicsheep.com/pccw/pages/index.php?page=downloads&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent&amp;diff=2871</id>
		<title>Secret Agent</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent&amp;diff=2871"/>
		<updated>2010-07-05T14:02:48Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* File formats */ MNI link changed to link to Crystal Caves Tileset Format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage}}&lt;br /&gt;
&lt;br /&gt;
== File formats ==&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
With the exception of the full screen PCX images, the data files of Secret Agent are encrypted with the [[Secret Agent encryption]]. When the files are decrypted, they are in (almost) the same format as the [[Crystal Caves]] data files.&lt;br /&gt;
&lt;br /&gt;
* [[PCX Format]] - 320&amp;amp;times;200 16 color full screen images stored in &amp;lt;tt&amp;gt;*.APO&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.CRD&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.END&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;*.TTL&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
* [[Crystal Caves Tileset Format]] - 8&amp;amp;times;8 16 color sprites, like the characters and icons on the status bar, are stored in &amp;lt;tt&amp;gt;SAM?02.GFX&amp;lt;/tt&amp;gt; files. The 16&amp;amp;times;16 16 color sprites stored in &amp;lt;tt&amp;gt;SAM?01.GFX&amp;lt;/tt&amp;gt; files are also in this format.&lt;br /&gt;
* [[Crystal Caves Sound format|SND Format]] - PC speaker sound effects, a modified form of [[Inverse Frequency Sound format]].&lt;br /&gt;
* [[Secret Agent level format]] - the levels are stored in &amp;lt;tt&amp;gt;SAM?03.GFX&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=EPF_Format&amp;diff=2834</id>
		<title>EPF Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=EPF_Format&amp;diff=2834"/>
		<updated>2010-05-02T14:20:34Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* File entry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The EPF file format is used in many games, like:&lt;br /&gt;
Alien Breed Tower Assault,&lt;br /&gt;
Arcade Pool,&lt;br /&gt;
Overdrive,&lt;br /&gt;
Project X,&lt;br /&gt;
Sensible Golf,&lt;br /&gt;
Spirou,&lt;br /&gt;
The Jungle Book,&lt;br /&gt;
The Lion King,&lt;br /&gt;
The Smurfs,&lt;br /&gt;
Tin Tin in Tibet and&lt;br /&gt;
Universe&lt;br /&gt;
&lt;br /&gt;
Some (all?) of these games are made by East Point Software, so EPF (a shortened version of &amp;quot;EPFS&amp;quot; from the file header) probably stands for East Point File System or something similar.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Signature ===&lt;br /&gt;
&lt;br /&gt;
The first four bytes in the file are &amp;quot;EPFS&amp;quot;, followed by a UINT32LE offset (so that value must be smaller than the total file size.)&lt;br /&gt;
&lt;br /&gt;
=== Header ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE signature[4]||&amp;quot;EPFS&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE fatOffset||Offset of the FAT&lt;br /&gt;
|-&lt;br /&gt;
|UINT8 unknown||{{TODO|Unknown, always zero - flags?}}&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE numFiles||Number of files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data for the first file starts immediately after the header (i.e. file offset 11.)&lt;br /&gt;
&lt;br /&gt;
=== File entry ===&lt;br /&gt;
&lt;br /&gt;
At offset &amp;lt;tt&amp;gt;fatOffset&amp;lt;/tt&amp;gt; sits a list of file entries.  The following structure is repeated until the end of the file.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE filename[13]||Filename (NULL-terminated)&lt;br /&gt;
|-&lt;br /&gt;
|UINT8 compressionFlag||0 for &amp;quot;file is not compressed&amp;quot;, 1 for &amp;quot;file is compressed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE compressedSize||size of the compressed file&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE decompressedSize||size of the file after decompression&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In order to calculate the offset of each file, a running total is required.  It should start at offset 11 (just after the header), then the &amp;lt;tt&amp;gt;compressedSize&amp;lt;/tt&amp;gt; should be added to reveal the offset of the next file.&lt;br /&gt;
&lt;br /&gt;
=== Compression ===&lt;br /&gt;
&lt;br /&gt;
The compression scheme in use is currently unknown.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=group}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = No&lt;br /&gt;
| canCreate = Yes&lt;br /&gt;
| canModify = Yes&lt;br /&gt;
| canCompress = No&lt;br /&gt;
| editHidden = Yes&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Group Files]]&lt;br /&gt;
[[Category:Group Files supporting compression]]&lt;br /&gt;
[[Category:Group Files with trailing FAT]]&lt;br /&gt;
[[Category:The Lion King]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Calvero&amp;diff=2830</id>
		<title>User talk:Calvero</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User_talk:Calvero&amp;diff=2830"/>
		<updated>2010-05-01T20:32:35Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* EPF format */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EPF format ==&lt;br /&gt;
&lt;br /&gt;
Hi Calvero - on [[EPF Format]] your description differs to the file I have.  Do you have a file in the format you described I could examine?  Also, did you reverse engineer this format yourself or did it come from elsewhere?  Thanks! -- [[User:Malvineous|Malvineous]] 12:41, 25 April 2010 (GMT)&lt;br /&gt;
&lt;br /&gt;
:I reverse engineered this format myself. The main difference between my description of this file format and your description is that, if I understand your description correctly, you&#039;re saying the header consists of two fields (BYTE signature[4] and UINT32LE fatOffset) and the first file starts at offset 8, while I&#039;m saying the header consists of&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE signature[4]||&amp;quot;EPFS&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE fatOffset||Offset of the FAT&lt;br /&gt;
|-&lt;br /&gt;
|BYTE zero||this byte is always zero&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE iFileCount||number of files&lt;br /&gt;
|-&lt;br /&gt;
|BYTE unknown[8]||8 bytes with an unknown meaning&lt;br /&gt;
|}&lt;br /&gt;
:and the first file starts at offset 0x13. I can&#039;t remember why I said there are 8 bytes with an unknown meaning in the header and I can&#039;t remember why I said UINT16LE iNumberOfFiles is zero based, so I&#039;m probably wrong and you&#039;re right :). Do you still want a file in the format I described? I probably investigated the data file of the Smurfs game the most, because in 2008 the Smurfs celebrated their 50th anniversary. [[User:Calvero|Calvero]] 20:32, 1 May 2010 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=IMF_Format&amp;diff=2755</id>
		<title>IMF Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=IMF_Format&amp;diff=2755"/>
		<updated>2010-04-11T14:57:31Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Use */ The beta version of Realms of Chaos also uses this file format. The released version uses MIDI.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;i&amp;lt;/u&amp;gt;d Software &amp;lt;u&amp;gt;M&amp;lt;/u&amp;gt;usic &amp;lt;u&amp;gt;F&amp;lt;/u&amp;gt;ormat (IMF)&amp;lt;/b&amp;gt; is a raw music format that stores the actual bytes sent to the Adlib&#039;s [[OPL2]] chip.  For this reason it is a very simple format to process.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
There are two versions of the IMF format.  The first two bytes in the file will be zero if it&#039;s in &amp;lt;b&amp;gt;Type-0&amp;lt;/b&amp;gt; format, otherwise it will be &amp;lt;b&amp;gt;Type-1&amp;lt;/b&amp;gt; format.  In a Type-0 file the two initial zero bytes are skipped, then the rest of the file is Adlib data that is played until the end of the file is reached.  In a Type-1 file the two initial bytes contain the size of the Adlib data (not including the two bytes themselves [TODO: Check this]), so only this much data is played.  This means it&#039;s possible to store arbitrary data in a Type-1 IMF file after the song data (see [[#Tag Data]] below.)&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||iLength||Type-1: Song data length (in bytes), Type-0: 0x0000&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[iLength]||cAdlibData||Song data (see below) - &amp;lt;code&amp;gt;iLength&amp;lt;/code&amp;gt; bytes long if Type-1, or until EOF if Type-0&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[]||cExtraData||Arbitrary data/tags (Type-1 format only, see [[#Tag Data]] below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that for Type-1 files, the initial two bytes (the &amp;quot;song data length&amp;quot;) are likely to be the filesize minus two, as the two initial bytes aren&#039;t counted.  The obvious exception to this is if there is trailing data at the end of the OPL data, such as an info tag.&lt;br /&gt;
&lt;br /&gt;
The song data is composed of four-byte &amp;quot;units&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE||Adlib register&lt;br /&gt;
|-&lt;br /&gt;
|BYTE||Adlib data&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||Delay&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The data byte is sent to the specified register on the Adlib card, followed by a delay for the specified number of cycles.&lt;br /&gt;
&lt;br /&gt;
=== Timing ===&lt;br /&gt;
&lt;br /&gt;
IMF files exist at three known speeds.  Unfortunately this is determined by the game, not the IMF file, so tempo cannot be determined from the music files alone. Extracted IMFs can be compared to discern their speeds.  The known speeds are:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Speed!!Game&lt;br /&gt;
|-&lt;br /&gt;
|280Hz||[[Duke Nukem II]]&lt;br /&gt;
|-&lt;br /&gt;
|560Hz||[[Bio Menace]], [[Commander Keen]], [[Cosmo&#039;s Cosmic Adventures]], [[Monster Bash]]&lt;br /&gt;
|-&lt;br /&gt;
|700Hz||[[Blake Stone]], [[Major Stryker]], [[Operation Body Count]], [[Wolfenstein 3-D]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The easiest method to tell the files apart is to treat all files with a .WLF extension as 700Hz and all .IMF files as 560Hz.  Since Duke II is the odd one out, it is usually ignored since doubling the value of all the delay bytes conveniently turns it into a 560Hz .IMF.&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
&lt;br /&gt;
As IMF files contain Adlib music for games that may also have Adlib sound effects, care must be taken to ensure that IMF music and any sound effects can share the OPL chip without conflict.  This is done by reserving the OPL&#039;s first channel for sound effects, leaving eight remaining channels available for use in IMF files.  This has been confirmed by automated inspection of the IMF files from the following games, all of which have no data on OPL channel #0 beyond 2-3 initialisation commands: [[Bio Menace]], [[Blake Stone]], [[Commander Keen 4-6]], [[Cosmo&#039;s Cosmic Adventures]], [[Duke Nukem II]], [[Major Stryker]], [[Monster Bash]], [[Operation Body Count]], [[Wolfenstein 3-D]].&lt;br /&gt;
&lt;br /&gt;
In situations where channel #0 is not reserved and is used by the IMF file, when it is placed back into the game it interferes with the sound effects causing distortion, transposition, and otherwise resulting in broken sound effects.  This can happen when an IMF file is created using a utility that does not take into account the fact that channel #0 must be left unused.  See the end of this page for a list of utilities that can create IMF files and whether they treat channel #0 correctly.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that channel #0 is unused even games such as Cosmo and Monster Bash, which do not use Adlib sound effects (Cosmo has PC speaker effects only and Monster Bash has PC speaker and digitised PCM audio.)  It is also worth mentioning that none of these games make use of the OPL&#039;s rhythm-mode, which would trade three note-producing channels for five percussion channels, even though there is no technical reason why it cannot be done.&lt;br /&gt;
&lt;br /&gt;
=== Tag Data ===&lt;br /&gt;
&lt;br /&gt;
In a Type-1 IMF file it&#039;s possible to store data after the end of a song.  Some games (such as Wolfenstein 3-D) have extra data stored there, but its purpose is unknown.  It is also possible to store tags there, and this simple format is supported by most IMF players:&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;
|BYTE||cSignature||0x1A&lt;br /&gt;
|-&lt;br /&gt;
|ASCIIZ[256]||strTitle||Song title&lt;br /&gt;
|-&lt;br /&gt;
|ASCIIZ[256]||strComposer||Song composer&lt;br /&gt;
|-&lt;br /&gt;
|ASCIIZ[256]||strRemarks||Song comment/message&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[9]||cProg||Name of the first program that added these tags (eight bytes + terminating NULL, pad out with NULLs if necessary.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the ASCIIZ[256] strings are variable-length NULL-terminated strings.  Their maximum length is 256 bytes *including* the terminating NULL, meaning the string will only ever contain 255 characters or less, plus the terminating-NULL.  Of course the string will normally be much shorter, and an empty string will consist of a single 0x00 byte.&lt;br /&gt;
&lt;br /&gt;
This tag format is supported by AdPlug when playing IMFs.  The tag format can also be used with .raw files, but no players officially support it yet.&lt;br /&gt;
&lt;br /&gt;
Note that the tags should begin directly after the IMF data, so in other words reading in the first two bytes of the file (the &amp;quot;song length&amp;quot;) and then seeking forward that many bytes, should put the file pointer at the start of the tag block (so the next byte that will be read in should be 0x1A, if the tags are present.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Adlib]]&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Music Files]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- All the games that use this file format --&amp;gt;&lt;br /&gt;
[[Category:Commander Keen 4-6]]&lt;br /&gt;
[[Category:Cosmo&#039;s Cosmic Adventures]]&lt;br /&gt;
[[Category:Duke Nukem II]]&lt;br /&gt;
[[Category:Major Stryker]]&lt;br /&gt;
[[Category:Monster Bash]]&lt;br /&gt;
[[Category:Wolfenstein 3-D]]&lt;br /&gt;
&lt;br /&gt;
== Use ==&lt;br /&gt;
&lt;br /&gt;
This format has been used in the following games:&lt;br /&gt;
&lt;br /&gt;
* [[Bio Menace]]&lt;br /&gt;
* [[Blake Stone]]&lt;br /&gt;
* [[Catacomb 3D]]&lt;br /&gt;
* [[Commander Keen 4-6]]&lt;br /&gt;
* [[Corridor 7]]&lt;br /&gt;
* [[Cosmo&#039;s Cosmic Adventures]]&lt;br /&gt;
* [[Duke Nukem II]]&lt;br /&gt;
* [[Hocus Pocus]]&lt;br /&gt;
* [[Major Stryker]]&lt;br /&gt;
* [[Monster Bash]]&lt;br /&gt;
* [[Operation Body Count]]&lt;br /&gt;
* [[Realms of Chaos]] (beta version only)&lt;br /&gt;
* [[Wolfenstein 3-D]]&lt;br /&gt;
&lt;br /&gt;
=== Utilities ===&lt;br /&gt;
The following utilities work with this file format.&lt;br /&gt;
&lt;br /&gt;
==== Convert other formats to IMF ====&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Utility/Description!!280Hz&amp;lt;br/&amp;gt;DukeII!!560Hz&amp;lt;br/&amp;gt;IMF!!700Hz&amp;lt;br/&amp;gt;WLF!!Channel #0 left blank for SFX&lt;br /&gt;
|-&lt;br /&gt;
|[http://winwolf3d.dugtrio17.com/download/IMFCreator IMFCreator] creates IMF files from MIDI files in one step and also includes a preview feature, from the WinWolf3D website&lt;br /&gt;
||Yes&lt;br /&gt;
||Yes&lt;br /&gt;
||Yes&lt;br /&gt;
||Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[MIDI2MUS]] then [[MUS2IMF]] can be used together to make IMF files&lt;br /&gt;
||?&lt;br /&gt;
||?&lt;br /&gt;
||?&lt;br /&gt;
||No?&lt;br /&gt;
|-&lt;br /&gt;
||[http://www.shikadi.net/utils/#dro2midi DRO2IMF] can convert DOSBox OPL captures into IMF files&lt;br /&gt;
||Requires recompilation&lt;br /&gt;
||Yes&lt;br /&gt;
||Requires recompilation&lt;br /&gt;
||No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Convert IMF to other formats ====&lt;br /&gt;
* [[DRO2MIDI]] converts IMF to MIDI files&lt;br /&gt;
&lt;br /&gt;
==== Play this file format ====&lt;br /&gt;
* [http://www.winamp.com/player Winamp] with [[AdPlug]] can play IMF and WLF files&lt;br /&gt;
* The [http://adplug.sourceforge.net AdPlug] library includes the command-line AdPlay utility&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Inverse_Frequency_Sound_format&amp;diff=2754</id>
		<title>Inverse Frequency Sound format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Inverse_Frequency_Sound_format&amp;diff=2754"/>
		<updated>2010-04-11T14:55:06Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Notes */ The beta version of Realms of Chaos also uses this file format. The released version doesn&amp;#039;t support PC speaker sound effects.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverse frequency sound format is the format used by Apogee\Id Software in many of their games for the PC sounds. It is named because the bulk of the data is stored as &#039;inverse frequency&#039; values. (The higher the value, the lower the tone it produces.) Most commonly this is stored in a &amp;lt;tt&amp;gt;SOUNDS.xxx&amp;lt;/tt&amp;gt; file, though it may be stored internally.&lt;br /&gt;
&lt;br /&gt;
Later games, such as [[Wolfenstein 3D]] use a modified form of this for their (Less important) PC speaker and adlib sounds.&lt;br /&gt;
&lt;br /&gt;
The file is divided into three sections, 16 bytes of header, a list of sound names and the actual sound data. The start of sound data should thus be (Numsnds + 1) * 16 bytes from the file start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
 0   4   Identifier  &amp;quot;SND&amp;quot; + $00; indicates the start of a sound file, whereas &amp;quot;SPK&amp;quot; + $00 indicates&lt;br /&gt;
                     the start of the older &#039;speaker&#039; format, which has very few differences.&lt;br /&gt;
 4   2   Filesize    Size of file&lt;br /&gt;
 6   2   ???         Usually $3C $00, but doesn&#039;t appear to do anything.&lt;br /&gt;
 8   2   Sndnum      Number of sounds in file. For SPK files this is blank as the number of sounds&lt;br /&gt;
                     is always 63&lt;br /&gt;
 10  6   Spacer      Padded with nulls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sound names==&lt;br /&gt;
&lt;br /&gt;
 SOUND HEADER:    (1 per sound, 16 bytes each)&lt;br /&gt;
 ?  2   Location    Location of sound start in file&lt;br /&gt;
 2  1   Priority    Whether or not sound will be interrupted by another sound if said sound&lt;br /&gt;
                    starts playing while the first is. Sounds can only be interrupted by sounds&lt;br /&gt;
                    that have an equal or higher value of this. 255 is max, 0 is inadvisable&lt;br /&gt;
 3  1   Validater   If a sound is a &#039;placeholder&#039; to be ignored, this is 1, if it is a proper&lt;br /&gt;
                    sound it is 8&lt;br /&gt;
 4  12  Name        Sound name, padded with nulls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sound data==&lt;br /&gt;
&lt;br /&gt;
Sound data is divided into words, with the word value being inversely proportional to the sound frequency. Each word is around 1/64th of a second of tone and most files contain a few seconds of sound. The value $FFFF signals the end of a sound and most values are between the range $0100-$5000. $0000 is silence.&lt;br /&gt;
&lt;br /&gt;
Later games use a similar format for PC and Adlib sounds, the sound data is in bytes with values of 0-255, the loss of fine-tuning being attributable to the lesser role of PC sounds and the Adlib format. The [[AudioT Format]] also has a totally different way of reading the sounds, and contains music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered many times, most often in the [[Commander Keen 1-3]] fan community. Probably first by [http://web.archive.org/web/20000815235203/http://www.dd.chalmers.se/~f98anga/projects/keen/ Anders Gavare].&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Catacomb]] 1 and 2, [[Commander Keen 1-3]], [[Cosmo&#039;s Cosmic Adventures]], [[Dangerous Dave]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Duke Nukem]], [[Duke Nukem II]], [[Hovertank 3D]], [[Math Rescue]], [[Major Stryker]], [[Monster Bash]], [[Paragon]] (aka Street Ball), [[Pickle Wars]], [[Realms of Chaos]] (beta version only), [[Rescue Rover]],  [[Shadow Knights]], [[Slordax]], [[Word Rescue]] and [[Xenopods]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Audio Files]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=CMP_Format&amp;diff=2753</id>
		<title>CMP Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=CMP_Format&amp;diff=2753"/>
		<updated>2010-04-10T21:12:47Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Utilities */ added WinTExtract&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;CMP format&#039;&#039;&#039; is how most files in the games [[Cosmo&#039;s Cosmic Adventures]], [[Duke Nukem II]], and [[Major Stryker]] are stored, albeit with varying file extensions (Cosmo prefers VOL and STN, while Major Stryker uses MS1, MS2 and MS3.)&lt;br /&gt;
&lt;br /&gt;
The games will check the current directory first for files, and fall back to the CMP file if none are found.  This means files inside the CMP can be easily overridden by simply placing their replacements as normal files in the game directory.&lt;br /&gt;
&lt;br /&gt;
= File format =&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
There is no known signature for this format.  One method to identify files is to read in the file entries (as there is a fixed maximum of these, all 4000 bytes must be present for the file to be valid) and confirm that each filename only consists of ASCII characters or nulls, and each file offset plus its size is less than the total size of the CMP file.  It is extremely unlikely that this method would incorrectly identify a file.&lt;br /&gt;
&lt;br /&gt;
An additional check may be to examine the offset of the first file.  This should always be 0xFA0 (4000), as the FAT is always 4000 bytes.  However it is unknown whether this is a requirement of the file format - the games may well work with a smaller FAT.&lt;br /&gt;
&lt;br /&gt;
== File entry ==&lt;br /&gt;
&lt;br /&gt;
The first 4000 bytes of the file consists of file entries, with the remainder containing the data.  Each file entry consists of the filename, its offset and its size.  This slightly unusual configuration (storing both the offset and the size) means it is possible (in theory) for two different files to share the same data, and to insert &amp;quot;hidden&amp;quot; data between files.&lt;br /&gt;
&lt;br /&gt;
A file entry is laid out as follows.&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]] cFilename[12]||Filename (8.3 style), only NULL-terminated if there is enough room&lt;br /&gt;
|-&lt;br /&gt;
|[[UINT32LE]] iOffset||File offset from start of group file&lt;br /&gt;
|-&lt;br /&gt;
|[[UINT32LE]] iSize||File size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The 4000 bytes available leaves enough room for 200 files.  Unused file entries are NULL.  The very last file entry seems to contain an ASCII decimal number closely related to the number of files, however its purpose (and whether it is required to be updated after editing) is presently unknown.&lt;br /&gt;
&lt;br /&gt;
= Utilities =&lt;br /&gt;
&lt;br /&gt;
Several programs that edit various games will extract CMP files, but the only two designed solely for this are Frenkel&#039;s textract and Adam Biser&#039;s WinTExtract.&lt;br /&gt;
&lt;br /&gt;
* [http://www.szevvy.net Wombat]&lt;br /&gt;
* [http://www.student.tue.nl/p/f.a.m.smeijers/sfp/games/duke2.htm#extractor textract]&lt;br /&gt;
* [http://winwolf3d.dugtrio17.com/downloads.php WinTExtract]&lt;br /&gt;
&lt;br /&gt;
[[Category:Cosmo&#039;s Cosmic Adventures]]&lt;br /&gt;
[[Category:Duke Nukem II]]&lt;br /&gt;
[[Category:Major Stryker]]&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Group Files]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent_encryption&amp;diff=2667</id>
		<title>Secret Agent encryption</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent_encryption&amp;diff=2667"/>
		<updated>2010-01-11T13:56:28Z</updated>

		<summary type="html">&lt;p&gt;Calvero: I hope this all is clear. The encryption is not hard to understand, but writing it down in natural language is not trivial.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The files of Secret Agent are encrypted, but not compressed: an encrypted file has exactly the same size as its corresponding unencrypted file.&lt;br /&gt;
&lt;br /&gt;
= Key =&lt;br /&gt;
Encrypting and decrypting files for Secret Agent depend on a key. The key consists of the string &amp;quot;Copyright 1991 Peder Jungck&amp;quot; followed by a null-character. So the length of the key is 28 characters.&lt;br /&gt;
The first time the key is used, it should return the ASCII number of the first character in the string. So, it should return 67, because the 67th entry in the ASCII table is &#039;C&#039;. The second time it should return 111 (&#039;o&#039;). Etc.&lt;br /&gt;
When all 28 characters are used, including the null-character, it should start over at the beginning with 67 (&#039;C&#039;).&lt;br /&gt;
&lt;br /&gt;
When encrypting or decrypting a level file (&amp;lt;tt&amp;gt;SAM?03.GFX&amp;lt;/tt&amp;gt;), after 42 times, it should start over at the beginning with 67 (&#039;C&#039;).&lt;br /&gt;
Encrypting and decrypting sprite files should start over after 8064 for &amp;lt;tt&amp;gt;SAM?01.GFX&amp;lt;/tt&amp;gt; files and after 2048 times for &amp;lt;tt&amp;gt;SAM?02.GFX&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Decryption =&lt;br /&gt;
For all bytes in a file, do:&lt;br /&gt;
&lt;br /&gt;
Read a byte.&lt;br /&gt;
&lt;br /&gt;
Turn the bits in the byte around. For example, 00000001 becomes 10000000, and 10110000 becomes 00001101.&lt;br /&gt;
&lt;br /&gt;
XOR this turned-around-byte with the next key-value.&lt;br /&gt;
&lt;br /&gt;
Return the result&lt;br /&gt;
&lt;br /&gt;
= Encryption =&lt;br /&gt;
Encryption is the reverse of decryption. So, after reading a byte, XOR it with the next key-value and then turn the bits around.&lt;br /&gt;
&lt;br /&gt;
= Credits =&lt;br /&gt;
&lt;br /&gt;
This encryption was reverse engineered by [http://www.student.tue.nl/p/f.a.m.smeijers/sfp/games/secretagent.htm Frenkel Smeijers]. If you find this information helpful in a project you&#039;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:Secret Agent]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent&amp;diff=2666</id>
		<title>Secret Agent</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Secret_Agent&amp;diff=2666"/>
		<updated>2010-01-11T12:22:38Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added some file format information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage}}&lt;br /&gt;
&lt;br /&gt;
== File formats ==&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
With the exception of the full screen PCX images, the data files of Secret Agent are encrypted with the [[Secret Agent encryption]]. When the files are decrypted, they are in (almost) the same format as the [[Crystal Caves]] data files.&lt;br /&gt;
&lt;br /&gt;
* [[PCX Format]] - 320&amp;amp;times;200 16 color full screen images stored in &amp;lt;tt&amp;gt;*.APO&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.CRD&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.END&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;*.TTL&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
* [[MNI Format]] - 8&amp;amp;times;8 16 color sprites, like the characters and icons on the status bar, are stored in &amp;lt;tt&amp;gt;SAM?02.GFX&amp;lt;/tt&amp;gt; files. The 16&amp;amp;times;16 16 color sprites stored in &amp;lt;tt&amp;gt;SAM?01.GFX&amp;lt;/tt&amp;gt; files are also in this format.&lt;br /&gt;
* [[Crystal Caves Sound format|SND Format]] - PC speaker sound effects, a modified form of [[Inverse Frequency Sound format]].&lt;br /&gt;
* [[Secret Agent level format]] - the levels are stored in &amp;lt;tt&amp;gt;SAM?03.GFX&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Crystal_Caves_Sound_format&amp;diff=2665</id>
		<title>Crystal Caves Sound format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Crystal_Caves_Sound_format&amp;diff=2665"/>
		<updated>2010-01-11T11:34:49Z</updated>

		<summary type="html">&lt;p&gt;Calvero: typos removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Crystal Caves]] sound format is similar to the [[Inverse Frequency Sound format]] used by many games made by Apogee, id Software and Softdisk, with a few modifications and restrictions. The main difference is that the sound files do not contain a header or sound names, and sounds are of a fixed length. (610 bytes.)&lt;br /&gt;
&lt;br /&gt;
The sounds are stored in the files &amp;lt;tt&amp;gt;CCx-y.SND&amp;lt;/tt&amp;gt;; 12 sounds to a file.&lt;br /&gt;
&lt;br /&gt;
The sound data itself is identical in format to that of inverse frequency, two-byte values inversely proportional to the tone frequency they produce. (Larger value, higher pitch.) with a value of -1 ending the sound. (There is one terminator at the sound play end and another at the sound data end, just to be sure.) The actual sound data takes up the last 600 bytes of the sound, the first 10 being a number of attributes as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 0   2   Priority  Whether or not sound will be interrupted by another sound if said sound&lt;br /&gt;
                   starts playing while the first is. Sounds can only be interrupted by sounds&lt;br /&gt;
                   that have an equal or higher value of this.&lt;br /&gt;
 2   2   ???       Unknown&lt;br /&gt;
 4   2   Vibrate   A divider for the vibrate; this changes a sound&#039;s tone by periodicly switching&lt;br /&gt;
                   off the PC speaker. (But at a more rapid rate than would be achieved by simply&lt;br /&gt;
                   adding silences to the sound data&lt;br /&gt;
 6   4   ???       Unknown&lt;br /&gt;
 10  600 Data      Inverse frequency sound data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Audio Files]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:SkyRoads&amp;diff=2633</id>
		<title>Talk:SkyRoads</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:SkyRoads&amp;diff=2633"/>
		<updated>2009-11-22T21:02:26Z</updated>

		<summary type="html">&lt;p&gt;Calvero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey there, does anyone know where I (Levellass) can get this game? The .lzs format it a variety of LZW compression used a lot in Japan and if this is the same, extraction could be quite easy. But I&#039;ll need the game files to test this.&lt;br /&gt;
::You didn&#039;t look really hard, did you? A link is right there on the SkyRoads main page in this wiki. [[User:Calvero|Calvero]] 21:02, 22 November 2009 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Stunts&amp;diff=2613</id>
		<title>Talk:Stunts</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Stunts&amp;diff=2613"/>
		<updated>2009-11-10T12:53:20Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added link to Stunts Wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here&#039;s a link to the [http://jonas-baehr.de/stunts/format.php Original Stunts (4D Sports Driving) Track-Format].&lt;br /&gt;
:And there&#039;s lots of information about the other Stunts files in the [http://wiki.stunts.hu/index.php/Category:Modding Stunts Wiki]. [[User:Calvero|Calvero]] 12:53, 10 November 2009 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Inverse_Frequency_Sound_format&amp;diff=2464</id>
		<title>Inverse Frequency Sound format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Inverse_Frequency_Sound_format&amp;diff=2464"/>
		<updated>2009-03-01T21:34:09Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Notes */ added more credits, added more games&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The inverse frequency sound format is the format used by Apogee\Id Software in many of their games for the PC sounds. It is named because the bulk of the data is stored as &#039;inverse frequency&#039; values. (The higher the value, the lower the tone it produces.) Most commonly this is stored in a &amp;lt;tt&amp;gt;SOUNDS.xxx&amp;lt;/tt&amp;gt; file, though it may be stored internally.&lt;br /&gt;
&lt;br /&gt;
Later games, such as [[Wolfenstein 3D]] use a modified form of this for their (Less important) PC speaker and adlib sounds.&lt;br /&gt;
&lt;br /&gt;
The file is divided into three sections, 16 bytes of header, a list of sound names and the actual sound data. The start of sound data should thus be (Numsnds + 1) * 16 bytes from the file start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
 0   4   Identifier  &amp;quot;SND&amp;quot; + $00; indicates the start of a sound file, whereas &amp;quot;SPK&amp;quot; + $00 indicates&lt;br /&gt;
                     the start of the older &#039;speaker&#039; format, which has very few differences.&lt;br /&gt;
 4   2   Filesize    Size of file&lt;br /&gt;
 6   2   ???         Usually $3C $00, but doesn&#039;t appear to do anything.&lt;br /&gt;
 8   2   Sndnum      Number of sounds in file. For SPK files this is blank as the number of sounds&lt;br /&gt;
                     is always 63&lt;br /&gt;
 10  6   Spacer      Padded with nulls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sound names==&lt;br /&gt;
&lt;br /&gt;
 SOUND HEADER:    (1 per sound, 16 bytes each)&lt;br /&gt;
 ?  2   Location    Location of sound start in file&lt;br /&gt;
 2  1   Priority    Whether or not sound will be interrupted by another sound if said sound&lt;br /&gt;
                    starts playing while the first is. Sounds can only be interrupted by sounds&lt;br /&gt;
                    that have an equal or higher value of this. 255 is max, 0 is inadvisable&lt;br /&gt;
 3  1   Validater   If a sound is a &#039;placeholder&#039; to be ignored, this is 1, if it is a proper&lt;br /&gt;
                    sound it is 8&lt;br /&gt;
 4  12  Name        Sound name, padded with nulls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sound data==&lt;br /&gt;
&lt;br /&gt;
Sound data is divided into words, with the word value being inversely proportional to the sound frequency. Each word is around 1/64th of a second of tone and most files contain a few seconds of sound. The value $FFFF signals the end of a sound and most values are between the range $0100-$5000. $0000 is silence.&lt;br /&gt;
&lt;br /&gt;
Later games use a similar format for PC and Adlib sounds, the sound data is in bytes with values of 0-255, the loss of fine-tuning being attributable to the lesser role of PC sounds and the Adlib format. The [[AudioT Format]] also has a totally different way of reading the sounds, and contains music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
This format has been reverse engineered many times, most often in the [[Commander Keen 1-3]] fan community. Probably first by [http://web.archive.org/web/20000815235203/http://www.dd.chalmers.se/~f98anga/projects/keen/ Anders Gavare].&lt;br /&gt;
&lt;br /&gt;
Games that use this format are [[Catacomb]] 1 and 2, [[Commander Keen 1-3]], [[Cosmo&#039;s Cosmic Adventures]], [[Dangerous Dave]], [[Dangerous Dave in Copyright Infringement]], [[Dangerous Dave 2]], [[Duke Nukem]], [[Duke Nukem II]], [[Hovertank 3D]], [[Math Rescue]], [[Major Stryker]], [[Monster Bash]], [[Paragon]] (aka Street Ball), [[Pickle Wars]], [[Rescue Rover]],  [[Shadow Knights]], [[Slordax]], [[Word Rescue]] and [[Xenopods]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Audio Files]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=GameMaps_Format&amp;diff=2461</id>
		<title>GameMaps Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=GameMaps_Format&amp;diff=2461"/>
		<updated>2009-02-19T15:38:26Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Notes */ Bio Menace typo fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The map data for [[Commander Keen 4-6]] is mainly stored in the &amp;lt;tt&amp;gt;GAMEMAPS.CKx&amp;lt;/tt&amp;gt; file. This stores all the maps of the levels used in the game. The GAMEMAPS file is read and decompressed using data stored in the &amp;lt;tt&amp;gt;MAPHEAD.CKx&amp;lt;/tt&amp;gt; file. The file&#039;s start is easily located as it always begins with the word $ABCD followed by several dwords and a lot of blank space. In the 1.4 versions of Keen 4-6 (Dumped executable) the file starts at the following:&lt;br /&gt;
&lt;br /&gt;
  Keen 4: $24830&lt;br /&gt;
  Keen 5: $25990&lt;br /&gt;
  Keen 6: $25080&lt;br /&gt;
 (Keen D: $1FA50)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map headers ==&lt;br /&gt;
&lt;br /&gt;
In Keen, as in most games, the &amp;lt;tt&amp;gt;MAPHEAD&amp;lt;/tt&amp;gt; file is 402 bytes long, consisting of a word and 100 level dwords.&lt;br /&gt;
&lt;br /&gt;
The first word is the flag for [[RLEW compression]], used to compress the &amp;lt;tt&amp;gt;GAMEMAPS&amp;lt;/tt&amp;gt; file. By default this is $ABCD (This can be changed.). The remaining dwords point to the headers of each level in the &amp;lt;tt&amp;gt;GAMEMAPS&amp;lt;/tt&amp;gt; file. (Nonexistent levels have a blank dword, so most of the file is empty space.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GAMEMAPS Format ==&lt;br /&gt;
&lt;br /&gt;
The structure of the &amp;lt;tt&amp;gt;GAMEMAPS&amp;lt;/tt&amp;gt; file is disordered due to the fact that the level headers and level data can be located in any place in any order. The usual structure consists of a variable string of TED settings (&#039;TEDv1.0...&#039;) followed by the levels in no particular order. Each level usually consists of the level header followed by three planes of data, though not always.&lt;br /&gt;
&lt;br /&gt;
The TED settings are unimportant and can usually be ignored. (Though in some cases TED may use them.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Levels in GAMEMAPS ===&lt;br /&gt;
&lt;br /&gt;
The header for each level that is pointed to by MAPHEAD is 42 bytes long:&lt;br /&gt;
&lt;br /&gt;
 0   4    Offset in GAMEMAPS to beginning of compressed plane 0 data&lt;br /&gt;
 4   4    Offset in GAMEMAPS to beginning of compressed plane 1 data&lt;br /&gt;
 8   4    Offset in GAMEMAPS to beginning of compressed plane 2 data&lt;br /&gt;
 12  2    Length of compressed plane 0 data (in bytes)&lt;br /&gt;
 14  2    Length of compressed plane 1 data (in bytes)&lt;br /&gt;
 16  2    Length of compressed plane 2 data (ib bytes)&lt;br /&gt;
 18  2    Width of level (in tiles)&lt;br /&gt;
 20  2    Height of level (in tiles)&lt;br /&gt;
 22  16   Internal name for level (used only by editor, not displayed in-game. null-terminated)&lt;br /&gt;
 38  4    Signature &amp;quot;!ID!&amp;quot;&lt;br /&gt;
 42  x    Level data, three planes RLEW and Carmack compressed&lt;br /&gt;
&lt;br /&gt;
The presence of the level name and the signature are not required by the Keen engine to play the level. Plane 0 is the &#039;background&#039; plane, plane 1 is the &#039;foreground&#039; plane, and plane 2 is the &#039;info&#039; plane. Each is compressed separately, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compression in GAMEMAPS ===&lt;br /&gt;
&lt;br /&gt;
Each plane is compressed with two successive compression algorithms. The first is [[RLEW compression]], identical to that used in [[Commander Keen 1-3]], except that the magic word (Flag.) is different. (It is specified in the MAPHEAD file, rather than always being xFEFE.) The second is [[Carmack compression]].&lt;br /&gt;
&lt;br /&gt;
The order of compression is RLEW followed by Carmack. One must also keep in mind that each compression algorithm outputs as its first word the length of the uncompressed data. So in the GAMEMAPS file for a particular plane of a particular level, the first word is the number of bytes in the RLEW-compressed data, and the first word of the RLEW-compressed data is the number of bytes in the uncompressed data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
This format was reverse engineered by CKGuy&lt;br /&gt;
&lt;br /&gt;
The format is used by other games as well, including [[Bio Menace]], [[Catacomb 3D]], [[Dangerous Dave 3]], [[Dave Goes Nutz]], and [[Wolfenstein 3D]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Dangerous_Dave_2&amp;diff=2433</id>
		<title>Talk:Dangerous Dave 2</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Dangerous_Dave_2&amp;diff=2433"/>
		<updated>2009-01-29T10:37:36Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Dave 2 file format completeness question.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dangerous Dave 2 is dissected by Gawd on his website: [http://www.megidish.net/museum/ Gawd&#039;s Museum of Dissected Games].&lt;br /&gt;
I&#039;m a bit lazy now to check for myself, but is everything he found out about the file formats of Dave 2 also on this ModdingWiki?&lt;br /&gt;
[[User:Calvero|Calvero]] 10:37, 29 January 2009 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=God_of_Thunder&amp;diff=2296</id>
		<title>God of Thunder</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=God_of_Thunder&amp;diff=2296"/>
		<updated>2009-01-17T21:35:43Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added link to unpacker and data converter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GamePage}}&lt;br /&gt;
All data appears to be stored in the file &#039;&#039;GOTRES.DAT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
* [[VOC Format]] - audio files&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://grompe.org.ru Unpacker and partial data converter]&lt;br /&gt;
&lt;br /&gt;
{{NoModdingInfo}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Overhead]]&lt;br /&gt;
[[Category:Puzzle]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=TED5&amp;diff=2195</id>
		<title>TED5</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=TED5&amp;diff=2195"/>
		<updated>2008-08-10T15:47:25Z</updated>

		<summary type="html">&lt;p&gt;Calvero: download link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
[[Image:TED5-Keen4.png|frame|Editing a [[Commander Keen 4-6|Keen 4]] level with [[TED5]]]]&lt;br /&gt;
&lt;br /&gt;
Tile Editor v5.0 (TED5) is a level editor written by [[:Category:id Software|id Software]] that has been used to create the levels for many of their games.&lt;br /&gt;
&amp;lt;!-- TODO: Instructions for setting up TED5 to edit the supported games --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Supported Games ==&lt;br /&gt;
&lt;br /&gt;
This is a list of games that have been successfully edited with TED5:&lt;br /&gt;
&lt;br /&gt;
* [[Bio Menace]]&lt;br /&gt;
* [[Commander Keen 4-6]]&lt;br /&gt;
* [[Rise of the Triad]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
TED5 has been released as open source freeware. TED5 and its source code can be downloaded from [http://www.3drealms.com/downloads.html#rott 3D Realms]. It can be used to edit the levels of Bio Menace and to create new levels for Rise of the Triad. It is also possible to edit the levels of Commander Keen 4-6, but this is a bit harder to [http://www.keenmodding.org/viewtopic.php?t=899 setup].&lt;br /&gt;
&lt;br /&gt;
[[Category:TODO]]&lt;br /&gt;
[[Category:Level Editors]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- List of games that this editor works with --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Bio Menace]]&lt;br /&gt;
[[Category:Commander Keen 4-6]]&lt;br /&gt;
[[Category:Rise of the Triad]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Wolfenstein_3-D&amp;diff=2194</id>
		<title>Wolfenstein 3-D</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Wolfenstein_3-D&amp;diff=2194"/>
		<updated>2008-08-10T15:22:18Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added Wolf3D source code link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage|Wolfenstein 3-D}}&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
* [[AudioT Format]] - sounds and music are stored in the &amp;lt;tt&amp;gt;AUDIO*.WL?&amp;lt;/tt&amp;gt; files&lt;br /&gt;
* [[TED5 Gamemaps]] - levels are stored in &amp;lt;tt&amp;gt;GAMEMAPS.WL?&amp;lt;/tt&amp;gt;&lt;br /&gt;
* WLF Format - identical to the [[IMF Format]] only with a faster tempo&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
These tools can be used to edit this game.&lt;br /&gt;
&lt;br /&gt;
* [[TED5]] - the editor used by id Software to create the original levels&lt;br /&gt;
&lt;br /&gt;
== Debugging/testing info ==&lt;br /&gt;
&lt;br /&gt;
* [[Wolfenstein 3-D Cheat Codes]] - including debugging &amp;quot;cheats&amp;quot; useful for modders&lt;br /&gt;
&lt;br /&gt;
== Further information ==&lt;br /&gt;
&lt;br /&gt;
The source code of Wolfenstein 3-D was released by id Software on July 21, 1995. It can be downloaded from id Software&#039;s [ftp://ftp.idsoftware.com/idstuff/source/ FTP server].&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:id Software]]&lt;br /&gt;
[[Category:3D]]&lt;br /&gt;
[[Category:First-Person Shooter]]&lt;br /&gt;
[[Category:Wolfenstein 3-D]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Hocus_Pocus_palette&amp;diff=2166</id>
		<title>Talk:Hocus Pocus palette</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Hocus_Pocus_palette&amp;diff=2166"/>
		<updated>2008-03-20T11:24:02Z</updated>

		<summary type="html">&lt;p&gt;Calvero: a reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If the palette is located inside the main .DAT file, it&#039;s probably better to list the file number rather than (or at least as well as) the offset (e.g. the palette is the 20th file in the .DAT file.) -- [[User:Malvineous|Malvineous]] 09:01, 18 March 2008 (GMT)&lt;br /&gt;
:I think even that is too much work. Once a palette file is extracted from the Hocus.dat group file, it&#039;s just a palette file in a format that is used in many VGA games. Do all these VGA games need their own palette format page with every time the same information? I think not. [[User:Calvero|Calvero]] 11:24, 20 March 2008 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:DAT_Format_(Hocus_Pocus)&amp;diff=2161</id>
		<title>Talk:DAT Format (Hocus Pocus)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:DAT_Format_(Hocus_Pocus)&amp;diff=2161"/>
		<updated>2008-03-16T13:45:44Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Beta version question&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There&#039;s a beta of Hocus Pocus floating around somewhere on the Internet. But I don&#039;t know whether it is legal to have it in ones possession. Are we going to support that version on this ModdingWiki? [[User:Calvero|Calvero]] 13:45, 16 March 2008 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Rockford&amp;diff=2140</id>
		<title>Talk:Rockford</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Rockford&amp;diff=2140"/>
		<updated>2008-03-15T14:50:55Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Rockford != Boulder Dash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wikipedia says Rockford and Boulder Dash are the same game - is that true? -- [[User:Malvineous|Malvineous]] 08:49, 15 March 2008 (GMT)&lt;br /&gt;
:Rockford [http://www.mobygames.com/game/rockford-the-arcade-game] is a sequel to Boulder Dash [http://www.mobygames.com/game/boulder-dash]. [[User:Calvero|Calvero]] 14:50, 15 March 2008 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Hocus_Pocus&amp;diff=2112</id>
		<title>Talk:Hocus Pocus</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Hocus_Pocus&amp;diff=2112"/>
		<updated>2008-03-09T10:08:11Z</updated>

		<summary type="html">&lt;p&gt;Calvero: 240x60 confirmation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Levels ==&lt;br /&gt;
&lt;br /&gt;
From [http://www.szevvy.com/node/3 Wombat] it appears the levels are 14400 bytes long, and are stored tile-based like most games in those days. From hex-editing a level exported by Wombat it appears the levels do not store the width and height of the map.&lt;br /&gt;
I made crude maps of the first 2 levels by copy-pasting screenshots together, and the first level is at least 188x30 tiles. The second level is at least 236x50 tiles. Given that all levels have the same size, it is likely that they are all 240x60 tiles, which is exactly 14400 bytes.&lt;br /&gt;
Wombat also exports files that are twice the size. Maybe they store where enemies, switches and other objects are placed? Or maybe it&#039;s the other way around?&lt;br /&gt;
This definitely needs more attention. -- [[User:Spinal|Spinal]] 00:16, 9 March 2008 (GMT)&lt;br /&gt;
:When you extract a level file with a size of 14400 bytes with Wombat Game Tools and you open it with the command &amp;quot;edit /240 levelfile&amp;quot; in Windows or DOS you get something that looks like a level. So I think the levels are indeed 240&amp;amp;times;60 tiles. With the level files that are 28800 bytes long it&#039;s harder to see a level in it. [[User:Calvero|Calvero]] 10:08, 9 March 2008 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Crystal_Caves&amp;diff=2109</id>
		<title>Crystal Caves</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Crystal_Caves&amp;diff=2109"/>
		<updated>2008-03-07T20:07:41Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added file formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage}}&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
* [[PCX Format]] - 320&amp;amp;times;200 16 color full screen images stored in the &amp;lt;tt&amp;gt;*.APG&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.CDT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;*.END&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;*.TTL&amp;lt;/tt&amp;gt; files.&lt;br /&gt;
* [[MNI Format]] - 8&amp;amp;times;8 16 color sprites, like the characters and icons on the status bar. The 16&amp;amp;times;16 16 color sprites stored in the &amp;lt;tt&amp;gt;*.GFX&amp;lt;/tt&amp;gt; files are also in this format.&lt;br /&gt;
* [[SND Format (Crystal Caves)|SND Format]] - PC speaker sound effects.&lt;br /&gt;
&lt;br /&gt;
The levels are stored inside the executable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=RTL_Format&amp;diff=2094</id>
		<title>RTL Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=RTL_Format&amp;diff=2094"/>
		<updated>2008-03-02T16:54:42Z</updated>

		<summary type="html">&lt;p&gt;Calvero: added link to the official ROTT Map Specs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&amp;lt;i&amp;gt;This is a placeholder for the Rise of the Triad RTL format.  This format is known, it just needs to be documented here.&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This format is used for storing [[Rise of the Triad]] game levels.&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.3drealms.com/stuff/rotspec1.zip ROTT Map Specs] A detailed explanation of the map format for ROTT, written by the developers of ROTT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:TODO]]&lt;br /&gt;
[[Category:Rise of the Triad]]&lt;br /&gt;
[[Category:File Formats]]&lt;br /&gt;
[[Category:Group Files]]&lt;br /&gt;
[[Category:Map Files]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=ICO_Format_(Halloween_Harry)&amp;diff=2093</id>
		<title>ICO Format (Halloween Harry)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=ICO_Format_(Halloween_Harry)&amp;diff=2093"/>
		<updated>2008-03-02T16:47:51Z</updated>

		<summary type="html">&lt;p&gt;Calvero: New page: Alien.ico consists of chunks with the following format. The image date is a standard 256 color bitmap. The palette is stored somewhere else.  {|class=&amp;quot;wikitable&amp;quot; !Data type!!Description |-...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alien.ico consists of chunks with the following format. The image date is a standard 256 color bitmap. The palette is stored somewhere else.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE iWidth||Width of image&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE iHeight||Height of image&lt;br /&gt;
|-&lt;br /&gt;
|BYTE cData[iWidth * iHeight]||Image data&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Halloween_Harry&amp;diff=2092</id>
		<title>Halloween Harry</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Halloween_Harry&amp;diff=2092"/>
		<updated>2008-03-02T16:37:54Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* File formats */ ICO is not in the same format as HSB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{GamePage}}&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the major file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
* [[BNK Format (Halloween Harry)|BNK Format]] - group files storing most of the game data (&amp;lt;tt&amp;gt;HARRY.-0&amp;lt;/tt&amp;gt; is also in this format.)&lt;br /&gt;
* FAT Format - file allocation table used by [[BNK Format (Halloween Harry)|BNK files]]&lt;br /&gt;
* [[4MD Format]] - a variation on the [[MOD Format]] used for game music&lt;br /&gt;
* [[TOP Format (Halloween Harry)|TOP Format]] - high scores&lt;br /&gt;
* [[ICO Format (Halloween Harry)|ICO Format]] - graphics&lt;br /&gt;
* [[HSB Format (Halloween Harry)|HSB Format]] - sprites graphics&lt;br /&gt;
* [[CFG Format (Halloween Harry)|CFG Format]] - game configuration&lt;br /&gt;
* [[SLOT Format (Halloween Harry)|SLOT Format]] - saved games (&amp;lt;tt&amp;gt;SLOT.1&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SLOT.2&amp;lt;/tt&amp;gt;, etc.)&lt;br /&gt;
* &amp;lt;tt&amp;gt;HARRY*.-0&amp;lt;/tt&amp;gt; are all [[EXE Format|.exe files]], except for &amp;lt;tt&amp;gt;HARRY.-0&amp;lt;/tt&amp;gt; mentioned above.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the game ==&lt;br /&gt;
&lt;br /&gt;
The full version of this game [http://www.3drealms.com/news/2007/05/alien_carnage_freeware.html has been released as freeware].  One notable omission from the freeware release was the inclusion of STUDIO.EXE, a separate &#039;jukebox&#039; program that could play all the music from the game.&lt;br /&gt;
&lt;br /&gt;
* Four different versions are available from [http://www.classicdosgames.com/apogee.html Classic DOS Games] (listed under &amp;quot;Alien Carnage&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;br /&gt;
[[Category:Freeware]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=EPF_Format&amp;diff=2091</id>
		<title>EPF Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=EPF_Format&amp;diff=2091"/>
		<updated>2008-03-02T16:33:53Z</updated>

		<summary type="html">&lt;p&gt;Calvero: EPF page started, needs major clean up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The EPF file format is used in many games, like:&lt;br /&gt;
Alien Breed Tower Assault,&lt;br /&gt;
Arcade Pool,&lt;br /&gt;
Overdrive,&lt;br /&gt;
Project X,&lt;br /&gt;
Sensible Golf,&lt;br /&gt;
Spirou,&lt;br /&gt;
The Jungle Book,&lt;br /&gt;
The Lion King,&lt;br /&gt;
The Smurfs,&lt;br /&gt;
Tin Tin in Tibet and&lt;br /&gt;
Universe&lt;br /&gt;
&lt;br /&gt;
Some (or all?) of these games are made by East Point Software, so I guess EPF stands for East Point File, or something like that.&lt;br /&gt;
&lt;br /&gt;
An EPF file starts with the magic word &amp;quot;EPFS&amp;quot;, followed by an UINT32LE iOffset to a table at the end of the file. This table contains:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|BYTE cFilename[13]||Filename (NULL-terminated)&lt;br /&gt;
|-&lt;br /&gt;
|UINT8 iCompressionflag||0 for &amp;quot;file is not compressed&amp;quot;, 1 for &amp;quot;file is compressed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE iFilesizeCompressed||size of the compressed file&lt;br /&gt;
|-&lt;br /&gt;
|UINT32LE iFilesizeUncompressed||size of the file when uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The compression that is used is unknown. Also, the data of the files don&#039;t start immediately after the UINT32LE iOffset. The UINT32LE iOffset is followed by a zero byte, followed by an UINT16LE iNumberOfFiles (zero based), followed by 8 bytes with an unknown meaning.&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Stunts&amp;diff=2090</id>
		<title>Talk:Stunts</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Stunts&amp;diff=2090"/>
		<updated>2008-03-02T16:09:55Z</updated>

		<summary type="html">&lt;p&gt;Calvero: link to track format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here&#039;s a link to the [http://jonas-baehr.de/stunts/format.php Original Stunts (4D Sports Driving) Track-Format].&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=SAV_Format_(Hocus_Pocus)&amp;diff=2071</id>
		<title>SAV Format (Hocus Pocus)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=SAV_Format_(Hocus_Pocus)&amp;diff=2071"/>
		<updated>2008-01-30T13:09:08Z</updated>

		<summary type="html">&lt;p&gt;Calvero: /* Save Game part */ wether -&amp;gt; whether&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information from the shareware episode:&lt;br /&gt;
&lt;br /&gt;
= File format =&lt;br /&gt;
The file HOCUS.SAV:&lt;br /&gt;
&lt;br /&gt;
==Save Game part==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x1E||SINT16LE valid[9]||field indicating whether the each savegame can be loaded. -1 = no 0 = yes&lt;br /&gt;
|-&lt;br /&gt;
|0x30||INT16LE level[9]||saved level of each savegame. 0 = first level. 1 = second level etc.&lt;br /&gt;
|-&lt;br /&gt;
|0x42||INT16LE difficulty[9]||difficulty of each savegame 0 = easy, 1 = moderate, 2 = hard&lt;br /&gt;
|-&lt;br /&gt;
|0x54||ASCIZ [9][26]||name of each savegame with trailing zero. (maximum 25 characters + trailing zero)&lt;br /&gt;
|-&lt;br /&gt;
|?||??||some rubbish 9 times 1 and 1 time zero. Episode number ?&lt;br /&gt;
|-&lt;br /&gt;
|0x148||INT32LE score[9]||score of each savegame.&lt;br /&gt;
|}&lt;br /&gt;
=== Example ===&lt;br /&gt;
Small sample program(C++) to show information about the savegames: (start like this: &#039;&#039;&#039;app HOCUS.SAV&#039;&#039;&#039;)&lt;br /&gt;
&#039;&#039;int assumed to be 32 bit, short to be 16 bit. Only for little endian machines.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 #include &amp;lt;fstream&amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[]) {&lt;br /&gt;
    if(argc != 2) return 1;&lt;br /&gt;
 &lt;br /&gt;
    ifstream input(argv[1]);&lt;br /&gt;
    input.seekg(0x1E,ios::beg);&lt;br /&gt;
    short signed int valid[9];&lt;br /&gt;
    input.read(reinterpret_cast&amp;lt;char*&amp;gt;(&amp;amp;valid),2*9);&lt;br /&gt;
    short level[9];&lt;br /&gt;
    input.read(reinterpret_cast&amp;lt;char*&amp;gt;(&amp;amp;level),2*9);&lt;br /&gt;
    short difficulty[9];&lt;br /&gt;
    input.read(reinterpret_cast&amp;lt;char*&amp;gt;(&amp;amp;difficulty),2*9);&lt;br /&gt;
    char name[9][26];&lt;br /&gt;
    input.read(&amp;amp;name[0][0],9*26);&lt;br /&gt;
 &lt;br /&gt;
    input.seekg(0x148,ios::beg);&lt;br /&gt;
    int score[9];&lt;br /&gt;
    input.read(reinterpret_cast&amp;lt;char*&amp;gt;(&amp;amp;score),4*9);&lt;br /&gt;
 &lt;br /&gt;
    for(int i = 0;i &amp;lt; 9;i++) {&lt;br /&gt;
       cout &amp;lt;&amp;lt; &amp;quot;save &amp;quot; &amp;lt;&amp;lt; i+1 &amp;lt;&amp;lt; &amp;quot; valid &amp;quot; &amp;lt;&amp;lt; valid[i]&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot; level &amp;quot; &amp;lt;&amp;lt; level[i] &amp;lt;&amp;lt; &amp;quot; difficulty &amp;quot; &amp;lt;&amp;lt; difficulty[i]&lt;br /&gt;
            &amp;lt;&amp;lt; &amp;quot; name: &amp;quot;&amp;lt;&amp;lt; name[i] &amp;lt;&amp;lt; &amp;quot; score &amp;quot; &amp;lt;&amp;lt; score[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
      }&lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Highscore part== &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x16C||ASCIZ Name1[5][26]||Names of the people with highscores for episode 1&lt;br /&gt;
|-&lt;br /&gt;
|0x1EE||ASCIZ Name2[5][26]||Names of the people with highscores for episode 2&lt;br /&gt;
|-&lt;br /&gt;
|0x270||ASCIZ Name3[5][26]||Names of the people with highscores for episode 3&lt;br /&gt;
|-&lt;br /&gt;
|0x2F2||ASCIZ Name4[5][26]||Names of the people with highscores for episode 4&lt;br /&gt;
|-&lt;br /&gt;
|0x374||INT32LE Score[4][5]||Highscores themselves. Listed by episode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sound Configuration==&lt;br /&gt;
Stored at the bottom of the file. (less interesting as setup.exe can change those)&lt;br /&gt;
&lt;br /&gt;
= Credits = &lt;br /&gt;
[[User:Qbix]]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1834</id>
		<title>Talk:CMP Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1834"/>
		<updated>2007-08-14T16:06:22Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Forgot to sign, and another link to Lon Matero&amp;#039;s Apogee Page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m pretty sure that not only Duke Nukem II, but also Cosmo&#039;s Cosmic Adventure and Major Stryker use this file format. [[User:Calvero|Calvero]] 19:22, 2 August 2007 (GMT)&lt;br /&gt;
&lt;br /&gt;
:Yep, they do.  Just a matter of getting around to documenting that here :-)  They also share graphics and level formats, so it&#039;ll probably be a copy and paste job once one of the games has been fully documented. -- [[User:Malvineous|Malvineous]] 11:25, 11 August 2007 (GMT)&lt;br /&gt;
&lt;br /&gt;
::It looks like the file format was first documented in public by someone around July 1998 on [http://web.archive.org/web/20021105125505/www.oakland.edu/~lcmatero/cosmo/cosmo8.html Lon Matero&#039;s Apogee Page]. [[User:Calvero|Calvero]]&lt;br /&gt;
&lt;br /&gt;
:::Yeah, I figured it out myself around 1995 so I&#039;ll just go from memory when I document it (it&#039;s a really trivial format which is why I haven&#039;t bothered yet, you can figure it out in under a minute by just loading the file in a hex editor.) -- [[User:Malvineous|Malvineous]] 12:39, 14 August 2007 (GMT)&lt;br /&gt;
&lt;br /&gt;
::::Woops, I forgot to sign my message. And [http://apogeegames.com/cosmo/cosmo8.html Lon Matero&#039;s Apogee Page - Cosmo&#039;s Cosmic Adventure] page is still available, so the Archive.org link isn&#039;t really necessary. [[User:Calvero|Calvero]] 16:06, 14 August 2007 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1831</id>
		<title>Talk:CMP Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1831"/>
		<updated>2007-08-13T22:09:07Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Something for the Credits section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m pretty sure that not only Duke Nukem II, but also Cosmo&#039;s Cosmic Adventure and Major Stryker use this file format. [[User:Calvero|Calvero]] 19:22, 2 August 2007 (GMT)&lt;br /&gt;
:Yep, they do.  Just a matter of getting around to documenting that here :-)  They also share graphics and level formats, so it&#039;ll probably be a copy and paste job once one of the games has been fully documented. -- [[User:Malvineous|Malvineous]] 11:25, 11 August 2007 (GMT)&lt;br /&gt;
::It looks like the file format was first documented in public by someone around July 1998 on [http://web.archive.org/web/20021105125505/www.oakland.edu/~lcmatero/cosmo/cosmo8.html Lon Matero&#039;s Apogee Page]&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:Zool&amp;diff=1824</id>
		<title>Talk:Zool</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:Zool&amp;diff=1824"/>
		<updated>2007-08-02T19:25:18Z</updated>

		<summary type="html">&lt;p&gt;Calvero: Zool and Lotus 3 file format similarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think Zool&#039;s file format is similar to that of Lotus III, because it&#039;s made by the same company.&lt;br /&gt;
Here&#039;s some information about the file format of Lotus III: [http://rewiki.regengedanken.de/wiki/Lotus_III:_The_Ultimate_Challenge]. [[User:Calvero|Calvero]] 19:25, 2 August 2007 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1823</id>
		<title>Talk:CMP Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Talk:CMP_Format&amp;diff=1823"/>
		<updated>2007-08-02T19:22:17Z</updated>

		<summary type="html">&lt;p&gt;Calvero: DN2, CCA, MS file format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m pretty sure that not only Duke Nukem II, but also Cosmo&#039;s Cosmic Adventure and Major Stryker use this file format. [[User:Calvero|Calvero]] 19:22, 2 August 2007 (GMT)&lt;/div&gt;</summary>
		<author><name>Calvero</name></author>
	</entry>
</feed>