<?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=Hisymak</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=Hisymak"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/Hisymak"/>
	<updated>2026-04-30T14:26:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=7007</id>
		<title>Hocus Pocus</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=7007"/>
		<updated>2016-11-13T12:07:14Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update info about HocusEditor v1.2 and game editability&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = Edit&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = Some&lt;br /&gt;
 | Interface = Some&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hocus Pocus]] is a VGA platform game.  The levels are notable for having some technical complexity, as tiles can be added and removed from maps in response to player actions.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Replace&lt;br /&gt;
| sfx = Replace&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = Yes&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusSharp]]&lt;br /&gt;
| Platform = Microsoft .NET Framework&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
=== Standalone files ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Group file storing most of the game data in [[DAT Format (Hocus Pocus)|DAT Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sav&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Saved games in [[SAV Format (Hocus Pocus)|SAV Format]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files inside hocus.dat ===&lt;br /&gt;
&lt;br /&gt;
The files stored inside &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt; have no filenames.  See the [[DAT Format (Hocus Pocus)|DAT Format]] page for a list of which files are which.  The formats used are:&lt;br /&gt;
&lt;br /&gt;
* File #0 is a 1bpp (monochrome) 8&amp;amp;times;720 image, containing 90 8&amp;amp;times;8 glyphs used as the main game font&lt;br /&gt;
* [[Hocus Pocus Map Format]] - game levels&lt;br /&gt;
* [[MID Format]] - MIDIs are used for game music&lt;br /&gt;
* [[B800 Text]] - text screen shown at exit&lt;br /&gt;
* [[PCX Format]] - used for game graphics and map tiles&lt;br /&gt;
* [[Hocus Pocus Palette Format]] - used to store game palettes&lt;br /&gt;
* [[Hocus Pocus Image Format]] - used for game graphics that are not 320 &amp;amp;times; 200&lt;br /&gt;
* [[Hocus Pocus Sprite Format]] - used for sprites&lt;br /&gt;
* [[Hocus Pocus Text Format]] - used for story texts and ordering info&lt;br /&gt;
* [[Hocus Pocus Demo Format]] - used to store demo macros&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=7006</id>
		<title>HocusEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=7006"/>
		<updated>2016-11-13T11:57:49Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update to version 1.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 2015-12-26 &amp;lt;!-- earliest release date --&amp;gt;&lt;br /&gt;
 | Download = [https://github.com/jkoncick/HocusEditor/releases/download/v1.2/HocusEditor_v1.2.zip Version 1.2]&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Edit2 = Extraction&lt;br /&gt;
 | Edit3 = Graphics&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HocusEditor&#039;&#039;&#039; is a modding tool for [[Hocus Pocus]] written by [[User:Hisymak|Hisymak]], primarily it is a level editor. Since later versions it became more complex modding tool, which can also export and import game resources, edit graphics, and patch the game executable.&lt;br /&gt;
&lt;br /&gt;
== Level editing features ==&lt;br /&gt;
&lt;br /&gt;
* Open/save levels directly from/to HOCUS.DAT or an external level file&lt;br /&gt;
* Read tilesets and sprites directly from HOCUS.DAT&lt;br /&gt;
* Advanced map editing possibilities, allowing you make maps more easily and fast:&lt;br /&gt;
** Three editing modes: Tile mode, Pattern mode and Block mode &lt;br /&gt;
** Predefined Pattern and Block presets for each tileset, ability to add your own presets&lt;br /&gt;
** Undo&amp;amp;Redo feature&lt;br /&gt;
** Copy&amp;amp;Paste feature (works also between different maps)&lt;br /&gt;
** Flood-fill feature&lt;br /&gt;
** Auto-draw window borders feature&lt;br /&gt;
** Shift map feature&lt;br /&gt;
* Full support for editing all special objects and events (teleports, monsters, switches, locks...)&lt;br /&gt;
* Editing level properties, animation and monster data&lt;br /&gt;
* Show/hide specific map layers, show grid feature&lt;br /&gt;
* Minimap feature (providing schematic overview of all map)&lt;br /&gt;
* Save map image feature&lt;br /&gt;
* Simple statistics (number of crystals, healing potions, points etc. in a map)&lt;br /&gt;
* Test map feature (map is saved, game is launched in Dosbox, tested level is &amp;quot;saved&amp;quot; on the first savegame slot)&lt;br /&gt;
* Many keyboard shortcuts and special mouse actions for Ctrl/Shift key combinations&lt;br /&gt;
&lt;br /&gt;
== Additional modding features ==&lt;br /&gt;
&lt;br /&gt;
* Export and import any file from/to [[DAT_Format_(Hocus_Pocus)|HOCUS.DAT]] (graphics, music, sounds...)&lt;br /&gt;
* Viewing, exporting and importing sprites in [[Hocus_Pocus_Sprite_Format|Hocus Pocus Sprite Format]]&lt;br /&gt;
* Viewing, exporting and importing menu and UI graphics in [[Hocus_Pocus_Image_Format|Hocus Pocus Image Format]]&lt;br /&gt;
* Exe patching feature&lt;br /&gt;
* Apply mod patch feature (the way for distribution of mods)&lt;br /&gt;
* &amp;quot;Compute VRAM usage&amp;quot; feature to help modders manage the graphics limitations&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
The zip package contains a readme file and document called &amp;quot;Hocus Pocus graphics replacement guide&amp;quot;.&lt;br /&gt;
In the readme file basic modding tips and instructions how to install and use the program are described.&lt;br /&gt;
The &amp;quot;graphics replacement guide&amp;quot; is a PDF document which deeply describes how the Hocus Pocus graphics work and what limitations are there. It provides two illustrative examples how to replace a tileset and a backdrop image, as well as the instructions to edit sprites and menu/UI graphics.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:HocusEditor2.png|Editing a level&lt;br /&gt;
File:HocusEditor3.png|Sprites being shown on the map&lt;br /&gt;
File:HocusEditor4.png|Editing level properties&lt;br /&gt;
File:HocusEditor5.png|Tool for editing sprites&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor5.png&amp;diff=7005</id>
		<title>File:HocusEditor5.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor5.png&amp;diff=7005"/>
		<updated>2016-11-13T11:30:19Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Tool for editing sprites&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tool for editing sprites&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor4.png&amp;diff=7004</id>
		<title>File:HocusEditor4.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor4.png&amp;diff=7004"/>
		<updated>2016-11-13T11:28:12Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Editing level properties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Editing level properties&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor3.png&amp;diff=7003</id>
		<title>File:HocusEditor3.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor3.png&amp;diff=7003"/>
		<updated>2016-11-13T11:24:12Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Sprites being shown on the map.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sprites being shown on the map.&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars/Mods&amp;diff=6993</id>
		<title>Vinyl Goddess From Mars/Mods</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars/Mods&amp;diff=6993"/>
		<updated>2016-10-12T18:28:04Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update download link because the old one has expired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Download(s)&lt;br /&gt;
! Video&lt;br /&gt;
! Release date&lt;br /&gt;
! Modder(s)&lt;br /&gt;
! # of levels&lt;br /&gt;
! Protagonist&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Hisymak&#039;s VGMF Level Pack&lt;br /&gt;
| [https://drive.google.com/open?id=0B_Lu2XP55IIVdGl0VnNQdFgtWlU version 1]&lt;br /&gt;
| [https://www.youtube.com/watch?v=_GWeph9MhSY Video]&lt;br /&gt;
| 2016-04-16&lt;br /&gt;
| [[User:Hisymak|Hisymak]]&lt;br /&gt;
| 2&lt;br /&gt;
| Vinyl Goddess from Mars&lt;br /&gt;
| Created to test and promote [[VinylEditor]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods by game]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=DAT_Format_(Hocus_Pocus)&amp;diff=6955</id>
		<title>DAT Format (Hocus Pocus)</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=DAT_Format_(Hocus_Pocus)&amp;diff=6955"/>
		<updated>2016-08-29T19:52:19Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update info about HocusEditor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Archive Infobox&lt;br /&gt;
 | MaxFiles = Set by FAT length&lt;br /&gt;
 | FAT = External&lt;br /&gt;
 | Names = N&lt;br /&gt;
 | Metadata = None&lt;br /&gt;
 | Subdirectories = N&lt;br /&gt;
 | Compressed = N&lt;br /&gt;
 | Encrypted = N&lt;br /&gt;
 | Hidden = Y&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
The &#039;&#039;&#039;DAT group format&#039;&#039;&#039; used by [[Hocus Pocus]] is for storing a number of related game files together in a single file (similar to how a .zip file is used.)  The format is somewhat complicated by the fact that the offsets of each file are stored in the main &amp;lt;tt&amp;gt;HOCUS.EXE&amp;lt;/tt&amp;gt;, which can make altering the file more complex than most other group formats.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
=== Signature ===&lt;br /&gt;
&lt;br /&gt;
The Hocus Pocus .DAT file has no signature, so there isn&#039;t really any way of detecting whether it&#039;s a .DAT file or not  - but the fact that &amp;lt;tt&amp;gt;HOCUS.EXE&amp;lt;/tt&amp;gt; must exist and contain in-range offsets is probably good enough to avoid false detection.&lt;br /&gt;
&lt;br /&gt;
=== FAT ===&lt;br /&gt;
&lt;br /&gt;
The File Allocation Table is stored in the main game executable, &amp;lt;tt&amp;gt;HOCUS.EXE&amp;lt;/tt&amp;gt;.  The offsets are in the table below.  The FAT itself is a simple array of eight-byte entries, where each entry contains two numbers - a UINT32LE for the offset into the .DAT file, followed by another UINT32LE containing the file size.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Version!!FAT Offset||Number of files||Method of identifying this EXE version&lt;br /&gt;
|-&lt;br /&gt;
|Leaked beta||0x01AD74||236||EXE is 218,069 bytes&lt;br /&gt;
|-&lt;br /&gt;
|Shareware v1.0||0x01EE04||252||EXE is 178,592 bytes, and string at offset 0x20E03 is &amp;quot;HOCUS POCUS Version 1.0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Shareware v1.1||0x01F0E4||253||EXE is 179,360 bytes, and string at offset 0x210F9 is &amp;quot;HOCUS POCUS Version 1.1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Registered v1.0||0x01EEB4||651||EXE is 181,872 bytes, and string at offset 0x21AD1 is &amp;quot;HOCUS POCUS Version 1.0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Registered v1.1||0x01F1A4||652||EXE is 182,656 bytes, and string at offset 0x21DD7 is &amp;quot;HOCUS POCUS Version 1.1&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of files ==&lt;br /&gt;
&lt;br /&gt;
The following table lists the contents of &amp;lt;tt&amp;gt;HOCUS.DAT&amp;lt;/tt&amp;gt; from the registered version 1.1 of the game. In version 1.0 or the shareware versions of the game, some files may be absent or have different sizes, but the order of the files appears to be unchanged.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that these filenames are not the original filenames of the files stored in the DAT file.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File #!!Offset||Size!!Filename||Format||Notes&lt;br /&gt;
|-&lt;br /&gt;
|0||0||720||FONT.MSK||1bpp (monochrome) 8×720 image || Main font, containing 90 8×8 glyphs&lt;br /&gt;
|-&lt;br /&gt;
|1||720||30949||APOGEE.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|2||31669||39081||TITLE.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|3||70750||3844||REGIST.IMG|| [[Hocus Pocus Image Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|4||74594||73346||WARP.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|5||147940||2880||SINCOS.DAT||720 floats||Sine / Cosine values for all angles from 0 to 359 degrees&lt;br /&gt;
|-&lt;br /&gt;
|6||150820||2000||RANDOM.DAT||1000 INT16LEs||Random number table&lt;br /&gt;
|-&lt;br /&gt;
|7||152820||384||GAMEPAL.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|8||153204||384||MENUPAL.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|9||153588||5124||BOTTOM.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|10||158712||12484||HOCUS.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|11||171196||1348||HUDSTUFF.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|12||172544||12804||NEW_HUD.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|13||185348||12804||OLD_HUD.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|14||198152||1924||BULLIT.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|15||200076||420||VOL_BAR.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|16||200496||14964||CRYSTAL.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|17||215460||9403||PIRACY.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|18||224863||9380||DEMO1.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|19||234243||11474||DEMO2.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|20||245717||12932||DEMO3.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|21||258649||11420||DEMO4.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|22||270069||8408||DEMO5.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|23||278477||11729||CREDITS1.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|24||290206||9406||CREDITS2.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|25||299612||10962||HELP1_K.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|26||310574||11086||HELP1_J.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|27||321660||14470||HELP2.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|28||336130||10461||GRAVIS.PCX|| [[PCX Format]] ||v1.1 only&lt;br /&gt;
|-&lt;br /&gt;
|29||346591||9199||HELP3.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|30||355790||39168||PREVIEW1.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|31||394958||38135||PREVIEW2.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|32||433093||46814||PREVIEW3.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|33||479907||36010||PREVIEW4.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|34||515917||46515||PREVIEW5.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|35||562432||53374||PREVIEW6.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|36||615806||36861||PREVIEW7.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|37||652667||45998||PREVIEW8.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|38||698665||50472||PREVIEW9.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|39||749137||45009||PREVIEW11.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|40||794146||39457||PREVIEW12.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|41||833603||1686||ORDER_R1.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|42||835289||1686||ORDER_R2.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|43||836975||1686||ORDER1.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|44||838661||1686||ORDER2.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|45||840347||1686||ORDER3.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|46||842033||1686||ORDER4.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|47||843719||1686||ORDER5.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|48||845405||1686||ORDER6.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|49||847091||1686||ORDER7.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|50||848777||1686||ORDER7+.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|51||850463||1686||REGISTER.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|52||852149||1686||STORY01.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|53||853835||1686||STORY02.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|54||855521||1686||STORY03.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|55||857207||1686||STORY04.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|56||858893||1686||STORY05.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|57||860579||1686||STORY06.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|58||862265||1686||STORY07.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|59||863951||1686||STORY08.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|60||865637||1686||STORY09.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|61||867323||1686||STORY10.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|62||869009||1686||E1END1.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|63||870695||1686||E1END2.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|64||872381||1686||E2END1.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|65||874067||1686||E2END2.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|66||875753||1686||E3END1.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|67||877439||1686||E3END2.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|68||879125||1686||E3END3.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|69||880811||1686||E3END4.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|70||882497||1686||E4END1.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|71||884183||1686||E4END2.PAG|| [[Hocus Pocus Text Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|72||885869||38203||KISS.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|73||924072||384||BACK01.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|74||924456||384||BACK02.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|75||924840||384||BACK03.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|76||925224||384||BACK04.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|77||925608||384||BACK05.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|78||925992||384||BACK06.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|79||926376||384||BACK07.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|80||926760||384||BACK08.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|81||927144||384||BACK09.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|82||927528||384||BACK10.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|83||927912||384||BACK11.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|84||928296||384||BACK12.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|85||928680||384||BACK13.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|86||929064||384||BACK14.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|87||929448||384||BACK15.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|88||929832||384||BACK16.PAL|| [[Hocus Pocus Palette Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|89||930216||34000||BACK01.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|90||964216||48085||BACK02.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|91||1012301||33432||BACK03.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|92||1045733||45319||BACK04.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|93||1091052||33286||BACK05.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|94||1124338||50652||BACK06.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|95||1174990||38067||BACK07.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|96||1213057||59856||BACK08.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|97||1272913||32394||BACK09.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|98||1305307||28400||BACK10.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|99||1333707||43647||BACK11.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|100||1377354||46761||BACK12.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|101||1424115||32361||BACK13.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|102||1456476||47212||BACK14.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|103||1503688||35841||BACK15.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|104||1539529||59572||BACK16.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|105||1599101||24974||TILES01.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|106||1624075||28637||TILES02.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|107||1652712||30376||TILES03.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|108||1683088||20435||TILES04.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|109||1703523||22139||TILES05.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|110||1725662||24693||TILES06.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|111||1750355||26397||TILES07.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|112||1776752||25608||TILES08.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|113||1802360||22390||TILES09.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|114||1824750||20262||TILES10.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|115||1845012||25570||TILES11.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|116||1870582||23451||TILES12.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|117||1894033||24107||TILES13.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|118||1918140||26763||TILES14.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|119||1944903||23696||TILES15.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|120||1968599||21583||TILES16.PCX|| [[PCX Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|121||1990182||15796||PIC1.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|122||2005978||39249||WIN.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|123||2045227||22468||PIC2.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|124||2067695||22468||PIC3.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|125||2090163||15796||PIC4.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|126||2105959||27652||PIC5.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|127||2133611||22468||PIC6.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|128||2156079||22468||PIC7.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|129||2178547||28804||PIC8.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|130||2207351||386965||SPRITES.SPR||[[Hocus Pocus Sprite Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|131||2594316||8||E1L1.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|132||2594324||8||E1L2.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|133||2594332||8||E1L3.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|134||2594340||8||E1L4.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|135||2594348||8||E1L5.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|136||2594356||8||E1L6.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|137||2594364||8||E1L7.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|138||2594372||8||E1L8.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|139||2594380||8||E1L9.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|140||2594388||8||E2L1.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|141||2594396||8||E2L2.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|142||2594404||8||E2L3.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|143||2594412||8||E2L4.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|144||2594420||8||E2L5.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|145||2594428||8||E2L6.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|146||2594436||8||E2L7.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|147||2594444||8||E2L8.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|148||2594452||8||E2L9.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|149||2594460||8||E3L1.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|150||2594468||8||E3L2.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|151||2594476||8||E3L3.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|152||2594484||8||E3L4.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|153||2594492||8||E3L5.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|154||2594500||8||E3L6.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|155||2594508||8||E3L7.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|156||2594516||8||E3L8.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|157||2594524||8||E3L9.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|158||2594532||8||E4L1.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|159||2594540||8||E4L2.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|160||2594548||8||E4L3.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|161||2594556||8||E4L4.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|162||2594564||8||E4L5.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|163||2594572||8||E4L6.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|164||2594580||8||E4L7.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|165||2594588||8||E4L8.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|166||2594596||8||E4L9.000||Player Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|167||2594604||724||E1L1.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|168||2595328||724||E1L2.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|169||2596052||724||E1L3.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|170||2596776||724||E1L4.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|171||2597500||724||E1L5.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|172||2598224||724||E1L6.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|173||2598948||724||E1L7.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|174||2599672||724||E1L8.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|175||2600396||724||E1L9.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|176||2601120||724||E2L1.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|177||2601844||724||E2L2.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|178||2602568||724||E2L3.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|179||2603292||724||E2L4.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|180||2604016||724||E2L5.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|181||2604740||724||E2L6.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|182||2605464||724||E2L7.001,||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|183||2606188||724||E2L8.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|184||2606912||724||E2L9.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|185||2607636||724||E3L1.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|186||2608360||724||E3L2.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|187||2609084||724||E3L3.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|188||2609808||724||E3L4.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|189||2610532||724||E3L5.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|190||2611256||724||E3L6.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|191||2611980||724||E3L7.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|192||2612704||724||E3L8.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|193||2613428||724||E3L9.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|194||2614152||724||E4L1.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|195||2614876||724||E4L2.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|196||2615600||724||E4L3.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|197||2616324||724||E4L4.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|198||2617048||724||E4L5.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|199||2617772||724||E4L6.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|200||2618496||724||E4L7.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|201||2619220||724||E4L8.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|202||2619944||724||E4L9.001||Tile Animation Settings||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|203||2620668||5040||E1L1.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|204||2625708||5040||E1L2.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|205||2630748||5040||E1L3.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|206||2635788||5040||E1L4.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|207||2640828||5040||E1L5.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|208||2645868||5040||E1L6.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|209||2650908||5040||E1L7.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|210||2655948||5040||E1L8.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|211||2660988||5040||E1L9.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|212||2666028||5040||E2L1.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|213||2671068||5040||E2L2.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|214||2676108||5040||E2L3.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|215||2681148||5040||E2L4.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|216||2686188||5040||E2L5.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|217||2691228||5040||E2L6.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|218||2696268||5040||E2L7.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|219||2701308||5040||E2L8.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|220||2706348||5040||E2L9.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|221||2711388||5040||E3L1.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|222||2716428||5040||E3L2.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|223||2721468||5040||E3L3.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|224||2726508||5040||E3L4.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|225||2731548||5040||E3L5.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|226||2736588||5040||E3L6.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|227||2741628||5040||E3L7.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|228||2746668||5040||E3L8.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|229||2751708||5040||E3L9.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|230||2756748||5040||E4L1.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|231||2761788||5040||E4L2.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|232||2766828||5040||E4L3.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|233||2771868||5040||E4L4.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|234||2776908||5040||E4L5.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|235||2781948||5040||E4L6.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|236||2786988||5040||E4L7.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|237||2792028||5040||E4L8.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|238||2797068||5040||E4L9.002||Message Texts||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|239||2802108||40||E1L1.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|240||2802148||40||E1L2.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|241||2802188||40||E1L3.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|242||2802228||40||E1L4.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|243||2802268||40||E1L5.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|244||2802308||40||E1L6.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|245||2802348||40||E1L7.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|246||2802388||40||E1L8.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|247||2802428||40||E1L9.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|248||2802468||40||E2L1.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|249||2802508||40||E2L2.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|250||2802548||40||E2L3.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|251||2802588||40||E2L4.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|252||2802628||40||E2L5.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|253||2802668||40||E2L6.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|254||2802708||40||E2L7.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|255||2802748||40||E2L8.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|256||2802788||40||E2L9.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|257||2802828||40||E3L1.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|258||2802868||40||E3L2.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|259||2802908||40||E3L3.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|260||2802948||40||E3L4.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|261||2802988||40||E3L5.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|262||2803028||40||E3L6.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|263||2803068||40||E3L7.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|264||2803108||40||E3L8.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|265||2803148||40||E3L9.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|266||2803188||40||E4L1.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|267||2803228||40||E4L2.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|268||2803268||40||E4L3.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|269||2803308||40||E4L4.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|270||2803348||40||E4L5.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|271||2803388||40||E4L6.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|272||2803428||40||E4L7.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|273||2803468||40||E4L8.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|274||2803508||40||E4L9.003||Teleporter Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|275||2803548||506||E1L1.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|276||2804054||506||E1L2.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|277||2804560||506||E1L3.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|278||2805066||506||E1L4.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|279||2805572||506||E1L5.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|280||2806078||506||E1L6.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|281||2806584||506||E1L7.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|282||2807090||506||E1L8.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|283||2807596||506||E1L9.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|284||2808102||506||E2L1.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|285||2808608||506||E2L2.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|286||2809114||506||E2L3.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|287||2809620||506||E2L4.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|288||2810126||506||E2L5.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|289||2810632||506||E2L6.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|290||2811138||506||E2L7.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|291||2811644||506||E2L8.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|292||2812150||506||E2L9.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|293||2812656||506||E3L1.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|294||2813162||506||E3L2.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|295||2813668||506||E3L3.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|296||2814174||506||E3L4.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|297||2814680||506||E3L5.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|298||2815186||506||E3L6.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|299||2815692||506||E3L7.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|300||2816198||506||E3L8.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|301||2816704||506||E3L9.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|302||2817210||506||E4L1.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|303||2817716||506||E4L2.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|304||2818222||506||E4L3.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|305||2818728||506||E4L4.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|306||2819234||506||E4L5.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|307||2819740||506||E4L6.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|308||2820246||506||E4L7.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|309||2820752||506||E4L8.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|310||2821258||506||E4L9.004||Switch Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|311||2821764||300||E1L1.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|312||2822064||300||E1L2.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|313||2822364||300||E1L3.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|314||2822664||300||E1L4.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|315||2822964||300||E1L5.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|316||2823264||300||E1L6.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|317||2823564||300||E1L7.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|318||2823864||300||E1L8.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|319||2824164||300||E1L9.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|320||2824464||300||E2L1.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|321||2824764||300||E2L2.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|322||2825064||300||E2L3.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|323||2825364||300||E2L4.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|324||2825664||300||E2L5.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|325||2825964||300||E2L6.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|326||2826264||300||E2L7.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|327||2826564||300||E2L8.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|328||2826864||300||E2L9.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|329||2827164||300||E3L1.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|330||2827464||300||E3L2.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|331||2827764||300||E3L3.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|332||2828064||300||E3L4.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|333||2828364||300||E3L5.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|334||2828664||300||E3L6.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|335||2828964||300||E3L7.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|336||2829264||300||E3L8.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|337||2829564||300||E3L9.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|338||2829864||300||E4L1.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|339||2830164||300||E4L2.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|340||2830464||300||E4L3.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|341||2830764||300||E4L4.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|342||2831064||300||E4L5.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|343||2831364||300||E4L6.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|344||2831664||300||E4L7.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|345||2831964||300||E4L8.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|346||2832264||300||E4L9.005||Insert Data Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|347||2832564||300||E1L1.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|348||2832864||300||E1L2.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|349||2833164||300||E1L3.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|350||2833464||300||E1L4.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|351||2833764||300||E1L5.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|352||2834064||300||E1L6.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|353||2834364||300||E1L7.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|354||2834664||300||E1L8.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|355||2834964||300||E1L9.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|356||2835264||300||E2L1.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|357||2835564||300||E2L2.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|358||2835864||300||E2L3.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|359||2836164||300||E2L4.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|360||2836464||300||E2L5.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|361||2836764||300||E2L6.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|362||2837064||300||E2L7.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|363||2837364||300||E2L8.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|364||2837664||300||E2L9.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|365||2837964||300||E3L1.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|366||2838264||300||E3L2.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|367||2838564||300||E3L3.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|368||2838864||300||E3L4.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|369||2839164||300||E3L5.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|370||2839464||300||E3L6.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|371||2839764||300||E3L7.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|372||2840064||300||E3L8.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|373||2840364||300||E3L9.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|374||2840664||300||E4L1.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|375||2840964||300||E4L2.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|376||2841264||300||E4L3.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|377||2841564||300||E4L4.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|378||2841864||300||E4L5.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|379||2842164||300||E4L6.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|380||2842464||300||E4L7.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|381||2842764||300||E4L8.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|382||2843064||300||E4L9.006||Keyhole Coordinates||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|383||2843364||240||E1L1.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|384||2843604||240||E1L2.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|385||2843844||240||E1L3.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|386||2844084||240||E1L4.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|387||2844324||240||E1L5.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|388||2844564||240||E1L6.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|389||2844804||240||E1L7.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|390||2845044||240||E1L8.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|391||2845284||240||E1L9.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|392||2845524||240||E2L1.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|393||2845764||240||E2L2.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|394||2846004||240||E2L3.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|395||2846244||240||E2L4.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|396||2846484||240||E2L5.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|397||2846724||240||E2L6.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|398||2846964||240||E2L7.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|399||2847204||240||E2L8.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|400||2847444||240||E2L9.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|401||2847684||240||E3L1.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|402||2847924||240||E3L2.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|403||2848164||240||E3L3.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|404||2848404||240||E3L4.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|405||2848644||240||E3L5.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|406||2848884||240||E3L6.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|407||2849124||240||E3L7.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|408||2849364||240||E3L8.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|409||2849604||240||E3L9.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|410||2849844||240||E4L1.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|411||2850084||240||E4L2.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|412||2850324||240||E4L3.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|413||2850564||240||E4L4.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|414||2850804||240||E4L5.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|415||2851044||240||E4L6.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|416||2851284||240||E4L7.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|417||2851524||240||E4L8.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|418||2851764||240||E4L9.007||Tile Properties?||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|419||2852004||8000||E1L1.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|420||2860004||8000||E1L2.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|421||2868004||8000||E1L3.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|422||2876004||8000||E1L4.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|423||2884004||8000||E1L5.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|424||2892004||8000||E1L6.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|425||2900004||8000||E1L7.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|426||2908004||8000||E1L8.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|427||2916004||8000||E1L9.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|428||2924004||8000||E2L1.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|429||2932004||8000||E2L2.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|430||2940004||8000||E2L3.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|431||2948004||8000||E2L4.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|432||2956004||8000||E2L5.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|433||2964004||8000||E2L6.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|434||2972004||8000||E2L7.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|435||2980004||8000||E2L8.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|436||2988004||8000||E2L9.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|437||2996004||8000||E3L1.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|438||3004004||8000||E3L2.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|439||3012004||8000||E3L3.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|440||3020004||8000||E3L4.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|441||3028004||8000||E3L5.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|442||3036004||8000||E3L6.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|443||3044004||8000||E3L7.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|444||3052004||8000||E3L8.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|445||3060004||8000||E3L9.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|446||3068004||8000||E4L1.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|447||3076004||8000||E4L2.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|448||3084004||8000||E4L3.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|449||3092004||8000||E4L4.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|450||3100004||8000||E4L5.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|451||3108004||8000||E4L6.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|452||3116004||8000||E4L7.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|453||3124004||8000||E4L8.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|454||3132004||8000||E4L9.008||Enemy Trigger Table||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|455||3140004||14400||E1L1.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|456||3154404||14400||E1L2.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|457||3168804||14400||E1L3.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|458||3183204||14400||E1L4.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|459||3197604||14400||E1L5.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|460||3212004||14400||E1L6.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|461||3226404||14400||E1L7.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|462||3240804||14400||E1L8.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|463||3255204||14400||E1L9.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|464||3269604||14400||E2L1.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|465||3284004||14400||E2L2.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|466||3298404||14400||E2L3.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|467||3312804||14400||E2L4.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|468||3327204||14400||E2L5.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|469||3341604||14400||E2L6.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|470||3356004||14400||E2L7.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|471||3370404||14400||E2L8.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|472||3384804||14400||E2L9.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|473||3399204||14400||E3L1.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|474||3413604||14400||E3L2.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|475||3428004||14400||E3L3.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|476||3442404||14400||E3L4.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|477||3456804||14400||E3L5.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|478||3471204||14400||E3L6.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|479||3485604||14400||E3L7.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|480||3500004||14400||E3L8.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|481||3514404||14400||E3L9.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|482||3528804||14400||E4L1.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|483||3543204||14400||E4L2.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|484||3557604||14400||E4L3.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|485||3572004||14400||E4L4.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|486||3586404||14400||E4L5.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|487||3600804||14400||E4L6.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|488||3615204||14400||E4L7.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|489||3629604||14400||E4L8.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|490||3644004||14400||E4L9.009||Background Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|491||3658404||14400||E1L1.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|492||3672804||14400||E1L2.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|493||3687204||14400||E1L3.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|494||3701604||14400||E1L4.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|495||3716004||14400||E1L5.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|496||3730404||14400||E1L6.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|497||3744804||14400||E1L7.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|498||3759204||14400||E1L8.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|499||3773604||14400||E1L9.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|500||3788004||14400||E2L1.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|501||3802404||14400||E2L2.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|502||3816804||14400||E2L3.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|503||3831204||14400||E2L4.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|504||3845604||14400||E2L5.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|505||3860004||14400||E2L6.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|506||3874404||14400||E2L7.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|507||3888804||14400||E2L8.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|508||3903204||14400||E2L9.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|509||3917604||14400||E3L1.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|510||3932004||14400||E3L2.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|511||3946404||14400||E3L3.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|512||3960804||14400||E3L4.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|513||3975204||14400||E3L5.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|514||3989604||14400||E3L6.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|515||4004004||14400||E3L7.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|516||4018404||14400||E3L8.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|517||4032804||14400||E3L9.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|518||4047204||14400||E4L1.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|519||4061604||14400||E4L2.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|520||4076004||14400||E4L3.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|521||4090404||14400||E4L4.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|522||4104804||14400||E4L5.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|523||4119204||14400||E4L6.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|524||4133604||14400||E4L7.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|525||4148004||14400||E4L8.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|526||4162404||14400||E4L9.010||Main Map Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|527||4176804||14400||E1L1.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|528||4191204||14400||E1L2.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|529||4205604||14400||E1L3.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|530||4220004||14400||E1L4.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|531||4234404||14400||E1L5.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|532||4248804||14400||E1L6.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|533||4263204||14400||E1L7.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|534||4277604||14400||E1L8.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|535||4292004||14400||E1L9.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|536||4306404||14400||E2L1.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|537||4320804||14400||E2L2.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|538||4335204||14400||E2L3.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|539||4349604||14400||E2L4.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|540||4364004||14400||E2L5.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|541||4378404||14400||E2L6.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|542||4392804||14400||E2L7.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|543||4407204||14400||E2L8.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|544||4421604||14400||E2L9.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|545||4436004||14400||E3L1.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|546||4450404||14400||E3L2.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|547||4464804||14400||E3L3.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|548||4479204||14400||E3L4.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|549||4493604||14400||E3L5.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|550||4508004||14400||E3L6.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|551||4522404||14400||E3L7.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|552||4536804||14400||E3L8.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|553||4551204||14400||E3L9.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|554||4565604||14400||E4L1.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|555||4580004||14400||E4L2.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|556||4594404||14400||E4L3.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|557||4608804||14400||E4L4.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|558||4623204||14400||E4L5.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|559||4637604||14400||E4L6.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|560||4652004||14400||E4L7.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|561||4666404||14400||E4L8.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|562||4680804||14400||E4L9.011||Insert Data Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|563||4695204||28800||E1L1.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|564||4724004||28800||E1L2.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|565||4752804||28800||E1L3.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|566||4781604||28800||E1L4.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|567||4810404||28800||E1L5.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|568||4839204||28800||E1L6.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|569||4868004||28800||E1L7.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|570||4896804||28800||E1L8.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|571||4925604||28800||E1L9.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|572||4954404||28800||E2L1.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|573||4983204||28800||E2L2.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|574||5012004||28800||E2L3.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|575||5040804||28800||E2L4.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|576||5069604||28800||E2L5.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|577||5098404||28800||E2L6.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|578||5127204||28800||E2L7.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|579||5156004||28800||E2L8.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|580||5184804||28800||E2L9.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|581||5213604||28800||E3L1.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|582||5242404||28800||E3L2.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|583||5271204||28800||E3L3.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|584||5300004||28800||E3L4.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|585||5328804||28800||E3L5.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|586||5357604||28800||E3L6.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|587||5386404||28800||E3L7.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|588||5415204||28800||E3L8.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|589||5444004||28800||E3L9.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|590||5472804||28800||E4L1.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|591||5501604||28800||E4L2.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|592||5530404||28800||E4L3.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|593||5559204||28800||E4L4.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|594||5588004||28800||E4L5.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|595||5616804||28800||E4L6.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|596||5645604||28800||E4L7.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|597||5674404||28800||E4L8.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|598||5703204||28800||E4L9.012||Info Layer||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|599||5732004||1540||FANFARE.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|600||5733544||11820||MUSIC01.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|601||5745364||8895||MUSIC02.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|602||5754259||10778||TITLE.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|603||5765037||13889||MUSIC04.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|604||5778926||10795||MUSIC05.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|605||5789721||9742||MUSIC06.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|606||5799463||12525||DUNES.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|607||5811988||10441||SPOOKY.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|608||5822429||9288||TAJMAHAL.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|609||5831717||29099||MUSIC10.MID|| [[MID Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|610||5860816||1404||TREE10.MID|| [[MID Format]] ||Registered Version only&lt;br /&gt;
|-&lt;br /&gt;
|611||5862220||62925||SOUND01.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|612||5925145||13489||SOUND02.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|613||5938634||1000||SOUND02.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|614||5939634||9176||SOUND03.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|615||5948810||16744||SOUND04.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|616||5965554||18682||SOUND05.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|617||5984236||11233||SOUND06.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|618||5995469||6643||SOUND07.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|619||6002112||1000||SOUND07.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|620||6003112||3935||SOUND08.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|621||6007047||400||SOUND08.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|622||6007447||4273||SOUND09.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|623||6011720||400||SOUND09.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|624||6012120||9333||SOUND10.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|625||6021453||200||SOUND10.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|626||6021653||2705||SOUND11.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|627||6024358||400||SOUND11.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|628||6024758||2167||SOUND12.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|629||6026925||400||SOUND12.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|630||6027325||4191||SOUND13.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|631||6031516||1000||SOUND13.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|632||6032516||4191||SOUND14.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|633||6036707||1000||SOUND14.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|634||6037707||7241||SOUND15.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|635||6044948||1200||SOUND15.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|636||6046148||1573||SOUND16.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|637||6047721||80||SOUND16.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|638||6047801||12361||SOUND17.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|639||6060162||1000||SOUND17.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|640||6061162||791||SOUND18.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|641||6061953||400||SOUND18.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|642||6062353||8211||SOUND19.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|643||6070564||1200||SOUND19.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|644||6071764||5969||SOUND20.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|645||6077733||1000||SOUND20.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|646||6078733||12863||SOUND21.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|647||6091596||400||SOUND21.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|648||6091996||1129||SOUND22.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|649||6093125||400||SOUND22.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|650||6093525||4000||DOSSHARE.BIN|| [[B800 Text]] ||&lt;br /&gt;
|-&lt;br /&gt;
|651||6097525||4000||DOSREG.BIN|| [[B800 Text]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of beta files ==&lt;br /&gt;
&lt;br /&gt;
The following table lists the contents of &amp;lt;tt&amp;gt;HOCUS.DAT&amp;lt;/tt&amp;gt; from the beta version of the game.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that these filenames are not the original filenames of the files stored in the DAT file.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File #!!Offset||Size!!Filename||Format||Notes&lt;br /&gt;
|-&lt;br /&gt;
|0||0||720||FONT.MSK||1bpp (monochrome) 8×720 image || Main font, containing 90 8×8 glyphs&lt;br /&gt;
|-&lt;br /&gt;
|1||720||956||UNKNOWN||??||&lt;br /&gt;
|-&lt;br /&gt;
|2||1676||30949||APOGEE.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|3||32625||39097||TITLE.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|4||71722||73346||WARP.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|5||145068||2880||SINCOS.DAT||720 floats||Sine / Cosine values for all angles from 0 to 359 degrees&lt;br /&gt;
|-&lt;br /&gt;
|6||147948||2000||RANDOM.DAT||1000 INT16LEs||Random number table&lt;br /&gt;
|-&lt;br /&gt;
|7||149948||384||GAMEPAL.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|8||150332||384||MENUPAL.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|9||150716||5124||BOTTOM.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|10||155840||12484||HOCUS.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|11||168324||1348||HUDSTUFF.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|12||169672||12804||NEW_HUD.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|13||182476||12804||OLD_HUD.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|14||195280||1924||BULLIT.IMG|| [[Hocus Pocus Image Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|15||197204||10142||DEMO1.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|16||207346||9746||DEMO2.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|17||217092||4562||DEMO3.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|18||221654||5990||DEMO4.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|19||227644||8234||DEMO5.DMO|| [[Hocus Pocus Demo Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|20||235878||6430||CREDITS1.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|21||242308||7679||CREDITS2.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|22||249987||5764||CREDITS3.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|23||255751||7156||CREDITS4.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|24||262907||7206||CREDITS5.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|25||270113||9932||CREDITS6.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|26||280045||5489||CREDITS7.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|27||285534||12661||CREDITS8.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|28||298195||10500||HELP1_K.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|29||308695||10620||HELP1_J.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|30||319315||12315||HELP2.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|31||331630||10875||HELP3.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|32||342505||64768||PREVIEW1|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|33||407273||64768||PREVIEW2|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|34||472041||64768||PREVIEW3|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|35||536809||64768||PREVIEW4|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|36||601577||64768||PREVIEW5|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|37||666345||64768||PREVIEW6|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|38||731113||64768||PREVIEW7|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|39||795881||64768||PREVIEW8|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|40||860649||64768||PREVIEW9|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|41||925417||64768||PREVIEW10|| 768-byte [[VGA Palette]] (6-bit RGB) followed by 8bpp image split into 16 planes ||&lt;br /&gt;
|-&lt;br /&gt;
|42||990185||1686||ORDER1.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|43||991871||1686||ORDER2.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|44||993557||1686||ORDER3.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|45||995243||1686||ORDER4.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|46||996929||1686||ORDER5.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|47||998615||1686||ORDER6.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|48||1000301||1686||ORDER7.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|49||1001987||1686||ORDER8.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|50||1003673||1686||ORDER9.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|51||1005359||1686||ORDER10.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|52||1007045||1686||ORDER11.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|53||1008731||1686||ORDER12.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|54||1010417||1686||ORDER13.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|55||1012103||1686||ORDER14.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|56||1013789||1686||ORDER15.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|57||1015475||1686||ORDER16.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|58||1017161||1686||ORDER17.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|59||1018847||1686||ORDER18.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|60||1020533||1686||ORDER19.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|61||1022219||1686||ORDER20.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|62||1023905||1686||ORDER21.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|63||1025591||1686||ORDER22.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|64||1027277||1686||REGISTER.PAG|| [[Hocus Pocus Text Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|65||1028963||384||BACK01.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|66||1029347||384||BACK02.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|67||1029731||384||BACK03.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|68||1030115||384||BACK04.PAL|| [[Hocus Pocus Palette Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|69||1030499||34000||BACK01.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|70||1064499||48085||BACK02.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|71||1112584||33432||BACK03.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|72||1146016||45319||BACK04.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|73||1191335||17816||TILES01.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|74||1209151||28301||TILES02.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|75||1237452||30052||TILES03.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|76||1267504||20056||TILES04.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|77||1287560||39249||WIN.PCX|| [[PCX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|78||1326809||381555||SPRITES.SPR||[[Hocus Pocus Sprite Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|79||1708364||8||E1L1.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|80||1708372||8||E1L2.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|81||1708380||8||E1L3.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|82||1708388||8||E1L4.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|83||1708396||8||E1L5.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|84||1708404||8||E1L6.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|85||1708412||8||E1L7.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|86||1708420||8||E1L8.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|87||1708428||8||E1L9.000||Player Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|88||1708436||724||E1L1.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|89||1709160||724||E1L2.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|90||1709884||724||E1L3.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|91||1710608||724||E1L4.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|92||1711332||724||E1L5.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|93||1712056||724||E1L6.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|94||1712780||724||E1L7.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|95||1713504||724||E1L8.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|96||1714228||724||E1L9.001||Tile Animation Settings||&lt;br /&gt;
|-&lt;br /&gt;
|97||1714952||5040||E1L1.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|98||1719992||5040||E1L2.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|99||1725032||5040||E1L3.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|100||1730072||5040||E1L4.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|101||1735112||5040||E1L5.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|102||1740152||5040||E1L6.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|103||1745192||5040||E1L7.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|104||1750232||5040||E1L8.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|105||1755272||5040||E1L9.002||Message Texts||&lt;br /&gt;
|-&lt;br /&gt;
|106||1760312||40||E1L1.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|107||1760352||40||E1L2.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|108||1760392||40||E1L3.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|109||1760432||40||E1L4.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|110||1760472||40||E1L5.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|111||1760512||40||E1L6.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|112||1760552||40||E1L7.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|113||1760592||40||E1L8.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|114||1760632||40||E1L9.003||Teleporter Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|115||1760672||506||E1L1.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|116||1761178||506||E1L2.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|117||1761684||506||E1L3.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|118||1762190||506||E1L4.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|119||1762696||506||E1L5.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|120||1763202||506||E1L6.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|121||1763708||506||E1L7.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|122||1764214||506||E1L8.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|123||1764720||506||E1L9.004||Switch Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|124||1765226||300||E1L1.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|125||1765526||300||E1L2.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|126||1765826||300||E1L3.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|127||1766126||300||E1L4.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|128||1766426||300||E1L5.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|129||1766726||300||E1L6.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|130||1767026||300||E1L7.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|131||1767326||300||E1L8.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|132||1767626||300||E1L9.005||Insert Data Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|133||1767926||300||E1L1.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|134||1768226||300||E1L2.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|135||1768526||300||E1L3.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|136||1768826||300||E1L4.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|137||1769126||300||E1L5.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|138||1769426||300||E1L6.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|139||1769726||300||E1L7.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|140||1770026||300||E1L8.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|141||1770326||300||E1L9.006||Keyhole Coordinates||&lt;br /&gt;
|-&lt;br /&gt;
|142||1770626||240||E1L1.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|143||1770866||240||E1L2.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|144||1771106||240||E1L3.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|145||1771346||240||E1L4.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|146||1771586||240||E1L5.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|147||1771826||240||E1L6.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|148||1772066||240||E1L7.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|149||1772306||240||E1L8.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|150||1772546||240||E1L9.007||Tile Properties?||&lt;br /&gt;
|-&lt;br /&gt;
|151||1772786||8000||E1L1.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|152||1780786||8000||E1L2.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|153||1788786||8000||E1L3.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|154||1796786||8000||E1L4.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|155||1804786||8000||E1L5.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|156||1812786||8000||E1L6.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|157||1820786||8000||E1L7.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|158||1828786||8000||E1L8.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|159||1836786||8000||E1L9.008||Enemy Trigger Table||&lt;br /&gt;
|-&lt;br /&gt;
|160||1844786||14400||E1L1.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|161||1859186||14400||E1L2.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|162||1873586||14400||E1L3.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|163||1887986||14400||E1L4.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|164||1902386||14400||E1L5.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|165||1916786||14400||E1L6.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|166||1931186||14400||E1L7.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|167||1945586||14400||E1L8.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|168||1959986||14400||E1L9.009||Background Layer||&lt;br /&gt;
|-&lt;br /&gt;
|169||1974386||14400||E1L1.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|170||1988786||14400||E1L2.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|171||2003186||14400||E1L3.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|172||2017586||14400||E1L4.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|173||2031986||14400||E1L5.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|174||2046386||14400||E1L6.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|175||2060786||14400||E1L7.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|176||2075186||14400||E1L8.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|177||2089586||14400||E1L9.010||Main Map Layer||&lt;br /&gt;
|-&lt;br /&gt;
|178||2103986||14400||E1L1.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|179||2118386||14400||E1L2.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|180||2132786||14400||E1L3.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|181||2147186||14400||E1L4.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|182||2161586||14400||E1L5.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|183||2175986||14400||E1L6.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|184||2190386||14400||E1L7.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|185||2204786||14400||E1L8.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|186||2219186||14400||E1L9.011||Insert Data Layer||&lt;br /&gt;
|-&lt;br /&gt;
|187||2233586||28800||E1L1.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|188||2262386||28800||E1L2.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|189||2291186||28800||E1L3.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|190||2319986||28800||E1L4.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|191||2348786||28800||E1L5.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|192||2377586||28800||E1L6.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|193||2406386||28800||E1L7.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|194||2435186||28800||E1L8.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|195||2463986||28800||E1L9.012||Info Layer||&lt;br /&gt;
|-&lt;br /&gt;
|196||2492786||3756||MUSIC01.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|197||2496542||12608||MUSIC02.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|198||2509150||9500||MUSIC03.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|199||2518650||11476||MUSIC04.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|200||2530126||9752||MUSIC05.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|201||2539878||11988||MUSIC06.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|202||2551866||12320||MUSIC07.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|203||2564186||15096||MUSIC08.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|204||2579282||15984||MUSIC09.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|205||2595266||11844||MUSIC10.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|206||2607110||28116||MUSIC11.IMF||[[IMF Format]]||&lt;br /&gt;
|-&lt;br /&gt;
|207||2635226||15571||SOUND01.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|208||2650797||1000||SOUND01.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|209||2651797||9176||SOUND02.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|210||2660973||16744||SOUND03.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|211||2677717||18682||SOUND04.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|212||2696399||11233||SOUND05.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|213||2707632||7137||SOUND06.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|214||2714769||400||SOUND06.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|215||2715169||9525||SOUND07.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|216||2724694||200||SOUND07.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|217||2724894||3114||SOUND08.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|218||2728008||400||SOUND08.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|219||2728408||4097||SOUND09.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|220||2732505||1000||SOUND09.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|221||2733505||3490||SOUND10.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|222||2736995||1000||SOUND10.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|223||2737995||5689||SOUND11.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|224||2743684||1200||SOUND11.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|225||2744884||5790||SOUND12.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|226||2750674||80||SOUND13.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|227||2750754||9163||SOUND14.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|228||2759917||1000||SOUND14.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|229||2760917||6043||SOUND15.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|230||2766960||400||SOUND15.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|231||2767360||9817||SOUND16.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|232||2777177||1200||SOUND16.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|233||2778377||4329||SOUND17.VOC|| [[VOC Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|234||2782706||1000||SOUND17.SFX|| [[Hocus Pocus SFX Format]] ||&lt;br /&gt;
|-&lt;br /&gt;
|235||2783706||4000||DOSMSG.BIN|| [[B800 Text]] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Identifying files ==&lt;br /&gt;
&lt;br /&gt;
Since there are no filenames in this format, some other method needs to be used to identify files (to avoid uninteresting names like FILE001.DAT, FILE002.DAT, etc.)&lt;br /&gt;
&lt;br /&gt;
One method is to scan the first few bytes of each file, and if it&#039;s a known signature the file type can be identified.  A few examples of known file formats used by Hocus Pocus and how to identify them are shown below.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Initial Bytes!!Fixed Size||File Type!!File Format&lt;br /&gt;
|-&lt;br /&gt;
|0x0A 0x05||-||Image||[[PCX Format]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Creative Voice File&amp;quot; 0x1A||-||Digital audio||[[VOC Format]]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;MThd&amp;quot;||-||Background music||[[MID Format]]&lt;br /&gt;
|-&lt;br /&gt;
||-||14400 bytes||Map layer||[[Hocus Pocus Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
||-||28800 bytes||Map event layer||[[Hocus Pocus Map Format]]&lt;br /&gt;
|-&lt;br /&gt;
||-||384 bytes||VGA palette||[[Hocus Pocus Palette Format]]&lt;br /&gt;
|-&lt;br /&gt;
||-||4000 bytes||Text screen||[[B800 Text]]&lt;br /&gt;
|}&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;
| Platform = Linux/Windows&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = Yes&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = No&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusEditor]]&lt;br /&gt;
| Platform = Windows&lt;br /&gt;
| canExtract = Yes&lt;br /&gt;
| canDecompress = N/A&lt;br /&gt;
| canCreate = No&lt;br /&gt;
| canModify = Yes&lt;br /&gt;
| canCompress = N/A&lt;br /&gt;
| editHidden = No&lt;br /&gt;
| editMetadata = N/A&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]], with contributions from [[User:Spinal|Spinal]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=6954</id>
		<title>Hocus Pocus</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=6954"/>
		<updated>2016-08-29T19:50:01Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update info about HocusEditor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hocus Pocus]] is a VGA platform game.  The levels are notable for having some technical complexity, as tiles can be added and removed from maps in response to player actions.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Partial&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = Replace&lt;br /&gt;
| sfx = Replace&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusSharp]]&lt;br /&gt;
| Platform = Microsoft .NET Framework&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
=== Standalone files ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Group file storing most of the game data in [[DAT Format (Hocus Pocus)|DAT Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sav&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Saved games in [[SAV Format (Hocus Pocus)|SAV Format]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files inside hocus.dat ===&lt;br /&gt;
&lt;br /&gt;
The files stored inside &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt; have no filenames.  See the [[DAT Format (Hocus Pocus)|DAT Format]] page for a list of which files are which.  The formats used are:&lt;br /&gt;
&lt;br /&gt;
* File #0 is a 1bpp (monochrome) 8&amp;amp;times;720 image, containing 90 8&amp;amp;times;8 glyphs used as the main game font&lt;br /&gt;
* [[Hocus Pocus Map Format]] - game levels&lt;br /&gt;
* [[MID Format]] - MIDIs are used for game music&lt;br /&gt;
* [[B800 Text]] - text screen shown at exit&lt;br /&gt;
* [[PCX Format]] - used for game graphics and map tiles&lt;br /&gt;
* [[Hocus Pocus Palette Format]] - used to store game palettes&lt;br /&gt;
* [[Hocus Pocus Image Format]] - used for game graphics that are not 320 &amp;amp;times; 200&lt;br /&gt;
* [[Hocus Pocus Sprite Format]] - used for sprites&lt;br /&gt;
* [[Hocus Pocus Text Format]] - used for story texts and ordering info&lt;br /&gt;
* [[Hocus Pocus Demo Format]] - used to store demo macros&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6953</id>
		<title>HocusEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6953"/>
		<updated>2016-08-29T19:45:22Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Update to version 1.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 2015-12-26 &amp;lt;!-- earliest release date --&amp;gt;&lt;br /&gt;
 | Download = [https://github.com/jkoncick/HocusEditor/releases/download/v1.1/HocusEditor_v1.1.zip Version 1.1]&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HocusEditor&#039;&#039;&#039; is a level editor for [[Hocus Pocus]] written by [[User:Hisymak|Hisymak]].&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
&lt;br /&gt;
* Open/save maps directly from/to HOCUS.DAT file or an external map file&lt;br /&gt;
* Read tilesets directly from HOCUS.DAT&lt;br /&gt;
* Advanced map editing possibilities, allowing you make maps more easily and fast:&lt;br /&gt;
** Three editing modes: Tile mode, Pattern mode and Block mode &lt;br /&gt;
** Predefined Pattern and Block presets for each tileset, ability to add your own presets&lt;br /&gt;
** Undo&amp;amp;Redo feature&lt;br /&gt;
** Copy&amp;amp;Paste feature (works also between different maps)&lt;br /&gt;
** Flood-fill feature&lt;br /&gt;
** Auto-draw window borders feature&lt;br /&gt;
** Shift map feature&lt;br /&gt;
* Full support for editing all special objects and events (teleports, monsters, switches, locks...)&lt;br /&gt;
* Editing level properties, animation and monster data&lt;br /&gt;
* Show/hide specific map layers, show grid feature&lt;br /&gt;
* Minimap feature (providing schematic overview of all map)&lt;br /&gt;
* Save map image feature&lt;br /&gt;
* Simple statistics (number of crystals, healing potions, points etc. in a map)&lt;br /&gt;
* Test map feature (map is saved, game is launched in Dosbox, tested level is &amp;quot;saved&amp;quot; on the first savegame slot)&lt;br /&gt;
* Many keyboard shortcuts and special mouse actions for Ctrl/Shift key combinations&lt;br /&gt;
New from version 1.1 (released 2016-08-29)&lt;br /&gt;
* Export and import any file from/to HOCUS.DAT (graphics, music, sounds...)&lt;br /&gt;
* Edit level properties stored inside HOCUS.EXE (par times, elevator tiles, music...)&lt;br /&gt;
* Apply mod patch feature (easy distribution of your mods)&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:HocusEditor2.png|Editing a level&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus/Modding_Tips&amp;diff=6853</id>
		<title>Hocus Pocus/Modding Tips</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus/Modding_Tips&amp;diff=6853"/>
		<updated>2016-06-16T20:53:13Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How the palettes work ==&lt;br /&gt;
&lt;br /&gt;
Hocus Pocus actually uses two separate palettes at a time: one being the lower 128 colors and the second being the upper 128 colors of 256-color VGA palette.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;lower&amp;quot; palette is fixed through all the game and is stored in &amp;lt;tt&amp;gt;GAMEPAL.PAL&amp;lt;/tt&amp;gt; file inside &amp;lt;tt&amp;gt;HOCUS.DAT&amp;lt;/tt&amp;gt;. The &amp;quot;upper&amp;quot; palette is variable and is bound to a specific backdrop image. In other words, each backdrop image (&amp;lt;tt&amp;gt;BACKxx.PCX&amp;lt;/tt&amp;gt;) has its own palette (&amp;lt;tt&amp;gt;BACKxx.PAL&amp;lt;/tt&amp;gt;). The menu has also its own palette (&amp;lt;tt&amp;gt;MENUPAL.PAL&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
All the original game tilesets and sprites use only colors within palette indexes 0 - 127. And all the backdrop images consist only of colors with indexes 128 - 255.&lt;br /&gt;
&lt;br /&gt;
If you are making new graphics, the backdrop image may contain fixed colors from range 0 - 127 and for the rest colors (128 - 255) you can make your own palette. Just remember to save your upper palette into &amp;lt;tt&amp;gt;BACKxx.PAL&amp;lt;/tt&amp;gt; as &#039;&#039;&#039;the game ignores the palette internally stored in PCX file itself&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You can use colors from range 128 - 255 in a tileset, but remember that the tileset must be bound to a specific backdrop image with the same upper palette. Because the upper palette depends on backdrop image which is loaded.&lt;br /&gt;
&lt;br /&gt;
== How graphics data are stored in memory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unfortunately there is a data limit of how many tiles in the tileset and how many sprites can be used in a level.&#039;&#039;&#039; This is because the game uses a fixed-size memory area to store graphics. That area is shared by tiles, sprites, and backdrop image data.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how this memory area is used:&lt;br /&gt;
&lt;br /&gt;
 TTTTTTTTTTTTTTSSSSSSSSSSSSSSSSXXBBBBBBBBBBBBBBBBBBBB&lt;br /&gt;
 &lt;br /&gt;
 T = Tileset data&lt;br /&gt;
 S = Sprite data&lt;br /&gt;
 X = Free space&lt;br /&gt;
 B = Backdrop image data&lt;br /&gt;
&lt;br /&gt;
The size of tileset data depends of how many tiles are used in tileset (see later how it works). Sprite data are stored immediately after tileset data. Some sprites are loaded always autimatically (the player, score tags etc.) and after that monster sprites are loaded according to which monsters are used in a level. Backdrop image data have fixed size and are always loaded at fixed position.&lt;br /&gt;
&lt;br /&gt;
If you use too many monster types in a level, the pixel data of the &amp;quot;highest&amp;quot; sprites will load into memory area reserved for a backdrop image. Because backdrop image is loaded after sprites (in time order), the sprites will get overwritten with it. The same happens if there are too many tiles in tileset - the sprite data are pushed away to the area reserved for backdrop image and will get overwritten too.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Now how the number of tiles in tileset is determined.&#039;&#039;&#039; The 320x200 tileset image is not loaded into memory as a whole, but it is being stored tile by tile. After the last used tile follows a special &#039;&#039;&#039;&amp;quot;white tile&amp;quot;&#039;&#039;&#039; which is marking the end of tileset and telling the game to stop loading data. The empty part of tileset after this white tile is ignored. The white tile is actually fully made of pixels with &#039;&#039;&#039;palette index 255.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is effective limit of &#039;&#039;&#039;135 tiles and 3 simultaneous monster types in a level&#039;&#039;&#039; (that&#039;s reached in E1L5 and E1L6). In some levels there are more (even 4 or 5) monster types, but less tiles in the tileset. So this is always a trade-off.&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars/Mods&amp;diff=6832</id>
		<title>Vinyl Goddess From Mars/Mods</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars/Mods&amp;diff=6832"/>
		<updated>2016-04-16T20:58:19Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 90%; border:1px solid gray; border-collapse: collapse; text-align: center; width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Download(s)&lt;br /&gt;
! Video&lt;br /&gt;
! Release date&lt;br /&gt;
! Modder(s)&lt;br /&gt;
! # of levels&lt;br /&gt;
! Protagonist&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Hisymak&#039;s VGMF Level Pack&lt;br /&gt;
| [http://www67.zippyshare.com/v/rDctsgkK/file.html version 1]&lt;br /&gt;
| [https://www.youtube.com/watch?v=_GWeph9MhSY Video]&lt;br /&gt;
| 2016-04-16&lt;br /&gt;
| [[User:Hisymak|Hisymak]]&lt;br /&gt;
| 2&lt;br /&gt;
| Vinyl Goddess from Mars&lt;br /&gt;
| Created to test and promote [[VinylEditor]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods by game]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VinylEditor&amp;diff=6831</id>
		<title>VinylEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VinylEditor&amp;diff=6831"/>
		<updated>2016-04-16T20:50:18Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: New release of VinylEditor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 2016-04-16&lt;br /&gt;
 | Download = [https://github.com/jkoncick/VinylEditor/releases/download/v1.0/VinylEditor_v1.0.zip Download]&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VinylEditor&#039;&#039;&#039; is a level editor for [[Vinyl Goddess From Mars]] written by [[User:Hisymak|Hisymak]]. &lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
&lt;br /&gt;
* Open/save maps directly from/to GODDESS.LBR file or import/export from/to a file&lt;br /&gt;
* Read tilesets directly from GODDESS.LBR&lt;br /&gt;
* Advanced map editing modes and features, allowing you make maps easily and fast:&lt;br /&gt;
** Four editing modes: Basic Tile mode, Pattern mode, Block mode, Change tile type&lt;br /&gt;
** Predefined Pattern and Block presets for basic tilesets &lt;br /&gt;
** Ability to add your own presets&lt;br /&gt;
** Undo&amp;amp;Redo feature&lt;br /&gt;
** Copy&amp;amp;Paste feature (works also between different maps)&lt;br /&gt;
** Resize map, Shift map feature&lt;br /&gt;
** Auto-draw shadows feature&lt;br /&gt;
* Full support for editing all special objects and events (walk-through doors, switches, locks...)&lt;br /&gt;
* Editing of available object types and tile properties&lt;br /&gt;
* Show/hide specific map layers, show grid feature&lt;br /&gt;
* Minimap feature (providing schematic overview of the map)&lt;br /&gt;
* Save map image feature&lt;br /&gt;
* Simple statistics (number of objects, monsters, points etc. in a map)&lt;br /&gt;
* Test map feature (game is directly launched in Dosbox)&lt;br /&gt;
* Many keyboard shortcuts and special mouse actions for Ctrl/Shift key combinations&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:VinylEditor2.png|Editing a level&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6830</id>
		<title>Vinyl Goddess From Mars</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6830"/>
		<updated>2016-04-16T20:45:36Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: VinylEditor is now fully functional&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Tilesets&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/vinyl.htm#extractor Vgfmext]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Extract&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.shikadi.net/utils/#vinyl2cmf Vinyl2CMF]&lt;br /&gt;
| Platform = Windows CLI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[VinylEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Cheats ==&lt;br /&gt;
&lt;br /&gt;
There is a trainer at [http://artscene.textfiles.com/intros/PC/1995/ textfiles.com] that provides some cheat ability, as the game does not appear to have any cheat codes at all.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bin&amp;lt;br/&amp;gt;*.scn&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.cmp&lt;br /&gt;
 | Format = [[VGFM Sprite Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Sprite images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = config.dat&lt;br /&gt;
 | Format = [[VGFM Config Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = data.dat&lt;br /&gt;
 | Format = [[VGFM Save Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Saved games&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.lbr&lt;br /&gt;
 | Format = [[LBR Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive file storing most of the game data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gra (except unlogic1.gra and *font.gra)&lt;br /&gt;
 | Format = [[VGFM Graphics Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.m&amp;lt;br/&amp;gt;*.map&lt;br /&gt;
 | Format = [[VGFM Level Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mus&lt;br /&gt;
 | Format = [[VGFM Music Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = 8-bit [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tileset palettes&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[VGFM Raw Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for UI elements&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.scr&lt;br /&gt;
 | Format = [[VGFM Screen Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Some full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.snd&lt;br /&gt;
 | Format = 8-bit unsigned 8kHz PCM, no header&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tim&lt;br /&gt;
 | Format = [[VGFM Instrument Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Instrument data (timbres) for the background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tls&lt;br /&gt;
 | Format = [[VGFM Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for map tiles&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = unlogic1.gra&lt;br /&gt;
 | Format = 320&amp;amp;times;200 8bpp raw VGA image&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Union Logic logo (&amp;lt;tt&amp;gt;unlogic1.pal&amp;lt;/tt&amp;gt; is palette)&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:Mod-Vinyl_Goddess_From_Mars.png&amp;diff=6829</id>
		<title>File:Mod-Vinyl Goddess From Mars.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:Mod-Vinyl_Goddess_From_Mars.png&amp;diff=6829"/>
		<updated>2016-04-16T16:19:47Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6828</id>
		<title>VGFM Level Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6828"/>
		<updated>2016-04-13T20:32:43Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Add some clarifications and limitations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 2&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;159&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In VGFM there are two types of levels: regular levels (&amp;lt;tt&amp;gt;*.M&amp;lt;/tt&amp;gt;) and &amp;quot;Map&amp;quot; levels (&amp;lt;tt&amp;gt;*.MAP&amp;lt;/tt&amp;gt;) - a world map where you travel between levels. They both use the same file format and structure, but some data fields are used for different purpose in Map levels.&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
The file contains no signature.  Identification can only be done by parsing the file and checking that valid (in-range) data is at the expected locations.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Height of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Width of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[width * height]||background||Background layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; &amp;amp;times; 2 bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT8[width * height]||foreground||Foreground layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||platformTiles||Number of tiles from the start of the tileset that can be stood upon (and can be passed through from left, right and bottom direction).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||solidTiles||Number of tiles from the start of the tileset that are impassable. The value is always less or equal to platformTiles, meaning that solid tiles are located always in the beginning of tileset, followed by 0 or more platform tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][15]||tileAnimations||Animated tile information&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTileAnimations||Number of tile animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||noAnimationTiles||Number of tiles from the start of the tileset that should not be animated. That means animated tiles are always in the end of tileset. Lowering the value makes all tiles with index &amp;gt;= value animate, and eventually stay animated within the first defined animation. &lt;br /&gt;
|-&lt;br /&gt;
|UINT8[500]||safeTiles||0=tile hurts player, 1=tile safe, one byte for each tile in the tileset. In Map level this means whether a tile is passable or not: 0 = impassable, 1 = passable.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||capsuleCount||Number of capsules (red orbs) in level (displayed on stats screen after level exit)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItem||Tile index of first item tile. These tiles can be picked up - when touched by player they disappear and a twinkle animation is shown.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItem||Tile index of last item tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstClimb||Tile index of first climbable tile (vine, chain, stick)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastClimb||Tile index of last climbable tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstLadder||Tile index of first ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastLadder||Tile index of last ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstRail||Tile index of first overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastRail||Tile index of last overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||X-tile-coordinate which camera will never exceed when scrolling in left direction. The level will scroll normally as the player moves to the right, but it will only scroll back until tiles at this X-coordinate are visible.  No tiles where X is less than this value will appear.  If the player continues to walk off the screen to the left, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop||Y-tile-coordinate which camera should never exceed when scrolling in up direction. Not working - probably not or wrongly implemented in the game.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight||X-tile-coordinate which camera will never exceed when scrolling in right direction.  As the player moves right, the level will only scroll this far.  The tile at this X coordinate will never be seen, only the one at X-1.  Normally this is set close to the width of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and continues to walk off the screen to the right, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom||Y-tile-coordinate which camera will never exceed when scrolling in down direction.  As the player moves down/looks down, the level will only scroll this far.  The tile at this Y coordinate will never be seen, only the one at Y-1.  Normally this is set to the height of the level of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and can move past this point, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TDoorEntry structure|TDoorEntry]][10]||doors||Definitions of walk-through doors, allowing the player move from one place in a map to another. One door allows one-way movement, that means always 2 doors are used for two-way movement. So there can be only 5 two-way doors in a level.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSwitchEntry structure|TSwitchEntry]][25]||switches||Definitions of switches, which can be activated by the player to perform some change in a level (activate platform, remove blocking tiles).&lt;br /&gt;
|-&lt;br /&gt;
|[[#TLockEntry structure|TLockEntry]][15]||locks||Definitions of locks (keyhole tiles), which are unlocked by the player by touching them while holding the respective key. Usually blocking tiles are removed when unlocking a lock. In Map level locks are used to define entrance to a regular level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numDoors||Number of doors used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numSwitches||Number of switches used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numLocks||Number of locks used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstTransparent||Tile index of first transparent tile rendered in front of sprites, partially covering them. This is used on barred windows, trees and some other decorations. Other tiles are rendered behind sprites.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastTransparent||Tile index of last transparent tile rendered in front of sprites&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[26]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||tilesetFilename||Filename of tileset to use in this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||paletteFilename||Filename of palette for this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstBoundary||Tile index of first solid (impassable) tile which is used as a boundary of hidden passages. These tiles are always inside tileFirstFront - tileLastFront range, so they cover all sprites (specifically splashes and explosions).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastBoundary||Tile index of last solid (impassable) tile which is used as a boundary of hidden passages.&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[1140]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelX||X-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level. This is for example used to move the player to different place after finishing level 4 in the first episode.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelY||Y-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unused, contains garbage/leftover data. Editing did not change anything in the level. It appears to store a number of used structures in the preceding unused data fields. There is place for 25 48-byte structures which seem to be related to locks and switches as they store coordinates to tiles which are removed by unlocking the lock. &lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][5]||itemAnimations||Defines animations of item tiles - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItemAnim||Tile index of first item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItemAnim||Tile index of last item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|[[#TPaletteAnimationEntry structure|TPaletteAnimationEntry]][5]||paletteAnimations||Defines palette animations - palette continuously &amp;quot;rotates&amp;quot; within this range. This is used to animate falling/flowing water in several levels (most notably egyptian-themed levels in episode 3) as well as blue-circle-shaped level markers in Map level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numPaletteAnimations||Number of palette animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileFirstItemType||Tile index of first item tile for particular item type - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileLastItemType||Tile index of last item tile for particular item type&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstFront||Tile index of first opaque tile rendered in front of sprites, fully covering them. This is used to make hidden (secret) passages. &lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastFront||Tile index of last opaque tile rendered in front of sprites, fully covering them.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSpriteDefinition structure|TSpriteDefinition]][30]||usedSprites||Definitions of sprites (&amp;quot;object types&amp;quot;) used in the level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TObjectEntry structure|TObjectEntry]][150]||objects||Definitions of objects in the level (monsters, weapons, healing potions, keys, moving platforms etc...)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTransformationBlocks||Number of transformation blocks used in level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TTransformationBlock structure|TTransformationBlock]]&amp;lt;br&amp;gt;[numTransformationBlocks]||transformationBlocks||Definitions of blocks, which replace a block in a map after unlocking a lock or pressing a switch. This is almost always used to remove blocking tiles or open a door, but can be used for generally anything, like inserting a platform (as it is in E2L7).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown. Mostly, but not always it is 0.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastTile||Tile index of last tile in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstTile||Tile index of first tile in animation sequence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TPaletteAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstIndex||Index of first color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastIndex||Index of last color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||startIndex||Should be set to same value as firstIndex. Setting to a value out of range causes strange graphical effects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0. Editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TDoorEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minX||rowspan=&amp;quot;4&amp;quot;|Defines the door entrance area&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxX&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelX||rowspan=&amp;quot;2&amp;quot;|Destination coordinates (where player&#039;s sprite appears after entering the door) in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||rowspan=&amp;quot;4&amp;quot;|Behave in same way as scrollBorder values defined in level data, but these values apply in the area reached by entering the door. That means, once player enters any door, the values defined in level data are never valid again (only after player&#039;s death)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TSwitchEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the switch in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||initialState||0 = Down, 1 = Up. The switch action is performed only when it is flipped from Up state to Down state, so that it is always (and should be) set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||switchType||Type of switch action: 1 = Activate object, 3 = Transform tiles, 4 = Remove tiles from foreground layer, 5 = Remove objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var1||rowspan=&amp;quot;4&amp;quot;|Various meaning, depends on the switch type.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var4&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[5]||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For type 1 (Activate object) var1 is the object number to activate. &#039;&#039;Note: Technically a switch of this type sets the &amp;quot;var1&amp;quot; property on an object to &amp;quot;1&amp;quot;. For most object/behavior types this value means whether the object is active. But a vertical platform uses &amp;quot;var2&amp;quot; property to determine whether it is active, that&#039;s why vertical platform unfortunately cannot be activated with a switch.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For type 3 (Transform tiles) var1 is the number of transformation block which is applied.&lt;br /&gt;
&lt;br /&gt;
For type 4 (Remove tiles from foreground layer) var1 and var2 are X/Y coordinates of the target area and var3/var4 are width/height of the target area (in tiles). &#039;&#039;Note: At most 24 tiles can be removed this way.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For type 5 (Remove objects) var1 and var2 are first/last object numbers to remove. The numbers are not absolute, but are counted from 0 through only valid objects, so if there is for example free space of 5 objects in the object array, the following objects have number less than 5 than their index. &#039;&#039;Note: The removed objects must be out of the viewport. If you remove objects which are on-screen they won&#039;t disappear completely but become flickering. They will eventually disappear after leaving the viewport.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The switch action is irreversible once the switch is activated. When the switch state is changed, the tile in background layer is changed to the respective adjacent tile in the tileset.&lt;br /&gt;
&lt;br /&gt;
=== TLockEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the corresponding key in tiles. This is not used by the game (editing these values does not change anything) because keys are defined as objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the lock (keyhole tile) in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||transblockNumber||Number of transformation block which is applied when unlocking the lock.&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||messageNumber||Number of message which is displayed when touching the lock without the corresponding key. 0 = &amp;quot;You need a gold key&amp;quot;, 1 = red, 2 = green, 3 = blue. Any other value (including negative values) will display some other message from the game&#039;s list.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||showMessage||0 = Message is shown, nonzero value = Message is not shown&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Map level locks define entrances to levels. In this case keyX/keyY/posX/posY define coordinates of the level entrance area (always posX = keyX + 1, posY = keyY + 1).&lt;br /&gt;
&lt;br /&gt;
=== TSpriteDefinition structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[16]||name||File name of the sprite (always including &amp;lt;tt&amp;gt;.cmp&amp;lt;/tt&amp;gt; extension), null-terminated.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Sprite width&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Sprite height&lt;br /&gt;
|-&lt;br /&gt;
|INT8||behavior||This is the same as behavior value defined for each object separately but this &amp;quot;global&amp;quot; value is applied when the object is spawned during gameplay (a projectile is shot). The value means how the sprite moves and how animates.&lt;br /&gt;
|-&lt;br /&gt;
|INT8||kind||Defines the type of object - whether hurts player or not, whether can be stood upon etc: 2 = monster, 3,4 = hazard/projectile (hurts), 5 = pick-up item, 6 = exit, 10 = decoration, 11 = can be stood upon&lt;br /&gt;
|-&lt;br /&gt;
|INT8||numSprites||Number of sprites in the cmp file&lt;br /&gt;
|-&lt;br /&gt;
|INT8||itemType||Type of the item: 0 = weapon, 1 = healing, 3 = key, 5 = checkpoint&lt;br /&gt;
|-&lt;br /&gt;
|INT8||fullHealth||1 = if healing item, restores full health&lt;br /&gt;
|-&lt;br /&gt;
|INT8||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstSpriteIndex||It is sum of numSprites value of all preceding sprite definitions&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||childSprite||Sprite (sprite definition number) which is spawned by this sprite (fired projectlile, pick-up animation)&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[92]||*||{{TODO|Not known yet, seems to be more details about behavior, sprite offsets etc.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The sprite definition with index 0 has always empty name and it is the player sprite (used as starting point)&lt;br /&gt;
&lt;br /&gt;
=== TObjectEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||objType||Object type - index of sprite definition. -1 = object is not used.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelX||X-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelY||Y-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var1||Various meaning, depending on object type and behavior (whether monster or platform is active, weapon type, item animaiton speed)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var2||Various meaning, depending on object type and behavior (key number)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||phase||Used on in-out platforms in E2L2, also works on spikes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[6]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3||Various meaning, depending on object type and behavior (platform speed, swing/circling radius)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[20]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||behavior||Means how the sprite moves and how animates: 1, 2 = Move horizontally (moving platform), 4 = Walking and shooting (monster), 8 = Move vertically (moving platform), 12 = Continuous animation (item), 16 = Jump (jumping spike ball), 23 = Swing, 38 = Move in circle, and many more values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The object with index 0 is always the starting point (and is of type 0).&lt;br /&gt;
&lt;br /&gt;
=== TTransformationBlock structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Target coordinates of the block in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||rowspan=&amp;quot;2&amp;quot;|Block size&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numBytes||Size of tiles array in bytes, equal to width&amp;amp;times;height&amp;amp;times;2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[numBytes/2]||tiles||Tiles (tile indexes) in the block&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: Only up to 25 tiles can be transformed at once, so this is a limitation of transformation block size. If a transformation block has more tiles, the tiles above 25 (counted up-to-down, left-to-right) will not be visually redrawn, but still will be internally changed and redrawn respectively if going off-screen and then on-screen. This limit includes also the switch tile so you can use a block of at most 24 tiles if it is triggered with a switch.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
Each tile code in both the foreground and background layer is an index into the tileset. Since the foreground layer only uses one byte for each tile, it can only store tiles up to index 255. The background layer&#039;s maximum of 65,535 is well within the 500 tiles in the tileset.&lt;br /&gt;
&lt;br /&gt;
In the foreground layer, a code of 0 is used for an empty tile which is not drawn. In the background layer there is no value reserved for an empty tile, so 0 is valid tile index there.&lt;br /&gt;
&lt;br /&gt;
The background layer can only consist of opaque tiles (tiles not having any transparent pixels) and the foreground layer can only contain transparent tiles (tiles which have transparent pixels). Both types of tiles are stored in different format in the [[VGFM Tileset Format|tileset]] and if a tile is used in the background layer the game treats it as if it was stored in the opaque tile format and vice versa. Using tiles improperly results in wrongly rendered tiles.&lt;br /&gt;
&lt;br /&gt;
== Unclear information ==&lt;br /&gt;
&lt;br /&gt;
* It is not known how the game determines the player&#039;s position on the Map level when saving game inside a regular level. When you restore this saved game you appear on the Map level standing just before the marker of the level you saved in, and the position is part of the [[VGFM Save Format|saved game]]. The position is neither stored in the regular level nor the Map level (editing all unknown/unused data didn&#039;t change it). It is possible that this information is stored in a different file or is hard-coded in the executable.&lt;br /&gt;
&lt;br /&gt;
* It is not clearly known how the &amp;quot;locked doors&amp;quot; work (the walk-through doors you cannot pass until unlocked, they appear only in E3L1). It was discovered that the game checks for tiles which are in the door entrance area and for some particular tiles it won&#039;t let the player pass (namely the tiles which contain iron bars). But it is not known how these tiles are determined - it is possible that the game checks the pixels in the tiles and for some particular colors it treats the tile as &amp;quot;locking&amp;quot; the doors.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]] and [[User:Hisymak|Hisymak]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus_Map_Format&amp;diff=6779</id>
		<title>Hocus Pocus Map Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus_Map_Format&amp;diff=6779"/>
		<updated>2016-02-26T09:35:03Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added unclear information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 4&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;160&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hocus Pocus]] maps consist of 13 individual files which will be referred to using the extensions .000 to .012 for convenience (as neither filenames nor extensions are stored in HOCUS.DAT). Each map uses four layers: a background layer, two foreground layers and an &amp;quot;event&amp;quot; layer containing enemies, treasures and such.  The background and foreground layers are 14400 bytes long, corresponding to a level sized 240x60 tiles. Maps are stored left-to-right, top-to-bottom. The event layer is 28800 bytes long, stored in the same way but with 2 bytes per tile.&lt;br /&gt;
&lt;br /&gt;
== File Formats ==&lt;br /&gt;
&lt;br /&gt;
=== *.000 (8 bytes) ===&lt;br /&gt;
&lt;br /&gt;
   0 UINT16LE iNull&lt;br /&gt;
   2 UINT16LE iPlayerX&lt;br /&gt;
   4 UINT16LE iPlayerY&lt;br /&gt;
   6 UINT16LE iShootDelay	The lower value, the more frequently enemies shoot projectiles (45 = standard value, 0 crashes game)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.001 (724 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This stores animation setings for the tileset. The file contains this 4-byte header:&lt;br /&gt;
&lt;br /&gt;
   0 UINT8 iBackgroundTile&lt;br /&gt;
   1 UINT8 iSwitchDownTile&lt;br /&gt;
   2 UINT8 iSwitchUpTile&lt;br /&gt;
   3 UINT8 iShootableTile&lt;br /&gt;
&lt;br /&gt;
The header is followed by 240 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TAnimData (3 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT8 iFirstIndex	&lt;br /&gt;
   1 UINT8 iLastIndex&lt;br /&gt;
   2 UINT8 iAnimType	0 = no animation, 1 = permanent animation, 2 = animation starts at random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.002 (5040 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TMessageData (504 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iPosX&lt;br /&gt;
   2 UINT16LE iPosY&lt;br /&gt;
   4 CHAR[50] cLine0&lt;br /&gt;
  54 CHAR[50] cLine1&lt;br /&gt;
 104 CHAR[50] cLine2&lt;br /&gt;
 154 CHAR[50] cLine3&lt;br /&gt;
 204 CHAR[50] cLine4&lt;br /&gt;
 254 CHAR[50] cLine5&lt;br /&gt;
 304 CHAR[50] cLine6&lt;br /&gt;
 354 CHAR[50] cLine7&lt;br /&gt;
 404 CHAR[50] cLine8&lt;br /&gt;
 454 CHAR[50] cLine9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.003 (40 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file contains data for the teleporting potions. The file stores 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TTeleportCoordinates (4 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iStartOff		index into linear map layer data&lt;br /&gt;
   2 UINT16LE iEndOff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.004 (506 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 23 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TSwitchCoordinates (22 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iSwitchType	0 = remove tiles from map layer, 1 = fill with tiles from additional map layer&lt;br /&gt;
   2 UINT16LE iSwitchOff0	offset into background layer; $FFFF if unused&lt;br /&gt;
   4 UINT16LE iSwitchOff1&lt;br /&gt;
   6 UINT16LE iSwitchOff2&lt;br /&gt;
   8 UINT16LE iSwitchOff3&lt;br /&gt;
  10 BYTE     bDesiredTile0	this data must be in the background layer at the offset given above for the switch to be activated&lt;br /&gt;
  11 BYTE     bDesiredTile1&lt;br /&gt;
  12 BYTE     bDesiredTile2&lt;br /&gt;
  13 BYTE     bDesiredTile3&lt;br /&gt;
  14 UINT16LE iUpperLeftX&lt;br /&gt;
  16 UINT16LE iUpperLeftY&lt;br /&gt;
  18 UINT16LE iLowerRightX&lt;br /&gt;
  20 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.005 (300 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 25 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TToggleCoordinates (12 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iRequiredKey	always 0 in the original files, but the game does check this value and behave accordingly&lt;br /&gt;
   2 UINT16LE iRequiredTile&lt;br /&gt;
   4 UINT16LE iUpperLeftX&lt;br /&gt;
   6 UINT16LE iUpperLeftY&lt;br /&gt;
   8 UINT16LE iLowerRightX&lt;br /&gt;
  10 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
=== *.006 (300 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 25 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TToggleCoordinates (12 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iRequiredKey	0 = no key required, 1 = silver key, 2 = gold key&lt;br /&gt;
   2 UINT16LE iRequiredTile	tile number in backgrund layer&lt;br /&gt;
   4 UINT16LE iUpperLeftX&lt;br /&gt;
   6 UINT16LE iUpperLeftY&lt;br /&gt;
   8 UINT16LE iLowerRightX&lt;br /&gt;
  10 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.007 (240 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This contains 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
  0 UINT16LE iSpriteSet	$FFFF = unused entry. Used iSpriteSet values are: 0x04-0x15, 0x17-0x1C, 0x1E-0x27.&lt;br /&gt;
  2 UINT16LE iHealth	if this value plus the current difficulty setting is 20 or higher, enables boss health bar and kill-on-touch.&lt;br /&gt;
  4 UINT16LE iProjectileHSpeed&lt;br /&gt;
  6 UINT16LE iProjectileVSpeed&lt;br /&gt;
  8 UINT16LE iProjectileXOffset	Valid for vertical projectiles&lt;br /&gt;
 10 UINT16LE iTargetPlayer	If 1, vertical projectiles will move horizontally towards the player.&lt;br /&gt;
 12 UINT16LE iUnknown2&lt;br /&gt;
 14 UINT16LE iShootProjectiles	If 1, enemy will fire projectiles.&lt;br /&gt;
 16 UINT16LE iUnknown3&lt;br /&gt;
 18 UINT16LE iWobblyProjectiles	If 1, projectiles will have a wobbly motion.&lt;br /&gt;
 20 UINT16LE iUnknown4		Always 0&lt;br /&gt;
 22 UINT16LE iBehavior&lt;br /&gt;
&lt;br /&gt;
Valid iBehavior values are:&lt;br /&gt;
*0: Walk around, stop when shooting&lt;br /&gt;
*1: Walk around, dash towards player, don&#039;t stop when shooting&lt;br /&gt;
*2: Fly, facing one direction&lt;br /&gt;
*3: Fly, facing towards player&lt;br /&gt;
*4: Stand still, animated, firing rapidly (1st episode boss)&lt;br /&gt;
*5: Stand still, animated, firing normally (flower)&lt;br /&gt;
*6: 3, but faster (ghost)&lt;br /&gt;
*7: Bugged&lt;br /&gt;
*8: Dragon (3rd episode boss)&lt;br /&gt;
*99: Trolodon (4th episode boss)&lt;br /&gt;
&lt;br /&gt;
=== *.008 (8000 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stored data required for spawning enemies. It consists of 250 entries of the following format:&lt;br /&gt;
&lt;br /&gt;
 TEnemyEntry (32 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE[8] iEnemyType	enemy type, $FFFF = never spawn/unused entry&lt;br /&gt;
  16 UINT16LE[8] iOffsets	index into info layer (info layer is an array of 16 bit values!) or $FFFF for unused slots&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.009 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Background Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop is visible), other values are tileset indices&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== *.010 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Map Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop or background layer are visible), other values are tileset indices&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== *.011 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Additional Map Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop or background layer are visible), other values are tileset indices&lt;br /&gt;
&lt;br /&gt;
This layer is almost identical to the main map layer but it is never used directly to draw the maps in the game. It contains all the blocks that will be pasted into the main map layer when a switch (type 1) or an &amp;quot;insert wall&amp;quot; trigger is activated in the game. This layer is NOT used when a switch or a trigger makes walls disappear. In those cases, the area in the main map layer is simply filled with non-tile values ($FF).&lt;br /&gt;
&lt;br /&gt;
=== *.012 (28800 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Info/Event Layer (array of 240*60 UINT16LE values)&lt;br /&gt;
&lt;br /&gt;
A value of 30000 ($7530) indicates an empty cell, other values have the following meaning:&lt;br /&gt;
&lt;br /&gt;
 0000	red gem		(100)&lt;br /&gt;
 0001	grey gem	(250)&lt;br /&gt;
 0002	goblet		(500)&lt;br /&gt;
 0003	crown		(1000)&lt;br /&gt;
 0004	green potion	(healing)&lt;br /&gt;
 0005	magic crystal&lt;br /&gt;
 0006	spikes		(hazard)&lt;br /&gt;
 0007	zapper		(increase firepower)&lt;br /&gt;
 0008	-- UNUSED --	(invisibility)&lt;br /&gt;
 0009	golden potion	(jumping power)&lt;br /&gt;
 000A	white potion	(rapid fire)&lt;br /&gt;
 000B	-- UNUSED --&lt;br /&gt;
 000C	silver key&lt;br /&gt;
 000D	gold key&lt;br /&gt;
 000E	lava		(hazard)&lt;br /&gt;
 000F	wizard		(&amp;quot;hint&amp;quot; messages)&lt;br /&gt;
 0010	grey potion	(3 fireballs)&lt;br /&gt;
 &lt;br /&gt;
 0011-0016	-- UNUSED --&lt;br /&gt;
 &lt;br /&gt;
 0017-001D	teleport tags&lt;br /&gt;
 001E-0020	-- UNUSED -- (teleport tags)&lt;br /&gt;
 &lt;br /&gt;
 0021-0031	switches&lt;br /&gt;
 0032-0037	-- UNUSED -- (switches)&lt;br /&gt;
 &lt;br /&gt;
 0038-003A	trigger: insert wall&lt;br /&gt;
 003B-0050	-- UNUSED -- (trigger: insert wall)&lt;br /&gt;
 &lt;br /&gt;
 0051-0058	trigger: remove wall&lt;br /&gt;
 0059-0069	-- UNUSED -- (trigger: remove wall)&lt;br /&gt;
 &lt;br /&gt;
 006A-006E	enemies&lt;br /&gt;
 006F-0073	-- UNUSED -- (enemies?)&lt;br /&gt;
 &lt;br /&gt;
 0074-008C	trigger: enemies&lt;br /&gt;
 008D-016D	-- UNUSED -- (trigger: enemies)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
The background and foreground layers each store one byte per tile.  This is a direct index into the tileset, with the value 0xFF being used as &#039;no tile&#039; (to see through to the layer below, or in the case of the background layer, to the backdrop image.)&lt;br /&gt;
&lt;br /&gt;
Levels 1 and 2 use the first tileset image in the DAT file, Levels 3 and 4 use the second and levels 5 and 6 use the third tileset image. The last three levels of each episode use the same tileset, which will be the fourth tileset file for Episode 1. The same pattern is repeated for episodes 2 to 4 of the registered version, using tileset images 5 to 16. The same scheme is used for the backdrop images, which are the 4 PCX files (or 16 for the registered version) located directly before the 4 (or 16) PCX files containing the tileset images.&lt;br /&gt;
&lt;br /&gt;
The mapping can be calculated using the following formula (assuming &amp;lt;tt&amp;gt;Episode&amp;lt;/tt&amp;gt; ranges from 0 to 3 and &amp;lt;tt&amp;gt;Level&amp;lt;/tt&amp;gt; ranges from 0 to 8):&lt;br /&gt;
&lt;br /&gt;
 TilesetNumber  = FirstTilesetNumber  + 4*Episode + MIN(Level/2, 3)&lt;br /&gt;
 BackdropNumber = FirstBackdropNumber + 4*Episode + MIN(Level/2, 3)&lt;br /&gt;
&lt;br /&gt;
The tilesets are in PCX format, as a 320&amp;amp;times;200 image made up of 16&amp;amp;times;16 images.  Tile 0 is at (0,0) and tile 1 is at (16,0) for example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unclear information ==&lt;br /&gt;
&lt;br /&gt;
* It is not known where a level time limit (for getting a &amp;quot;fast enough&amp;quot; point bonus) is stored.&lt;br /&gt;
* It is not known how &amp;quot;elevator tiles&amp;quot; are determined or where they are specified for a specific tileset or level. There are two elevator tiles (left and right) which move up or down when the player presses up or down arrow while standing upon one of these tiles (an elevator tile always links with the respective adjacent tile, even if that tile is not an elevator tile).&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]], [[User:K1n9 Duk3|K1n9 Duk3]], [[User:MainMemory|MainMemory]] and some clarifications were added by  [[User:Hisymak|Hisymak]]. 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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6777</id>
		<title>Vinyl Goddess From Mars</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6777"/>
		<updated>2016-02-21T14:28:46Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: VGFM Level Format can now be considered known&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Tilesets&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/vinyl.htm#extractor Vgfmext]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Extract&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.shikadi.net/utils/#vinyl2cmf Vinyl2CMF]&lt;br /&gt;
| Platform = Windows CLI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[VinylEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Cheats ==&lt;br /&gt;
&lt;br /&gt;
There is a trainer at [http://artscene.textfiles.com/intros/PC/1995/ textfiles.com] that provides some cheat ability, as the game does not appear to have any cheat codes at all.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bin&amp;lt;br/&amp;gt;*.scn&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.cmp&lt;br /&gt;
 | Format = [[VGFM Sprite Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Sprite images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = config.dat&lt;br /&gt;
 | Format = [[VGFM Config Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = data.dat&lt;br /&gt;
 | Format = [[VGFM Save Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Saved games&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.lbr&lt;br /&gt;
 | Format = [[LBR Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive file storing most of the game data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gra (except unlogic1.gra and *font.gra)&lt;br /&gt;
 | Format = [[VGFM Graphics Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.m&amp;lt;br/&amp;gt;*.map&lt;br /&gt;
 | Format = [[VGFM Level Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mus&lt;br /&gt;
 | Format = [[VGFM Music Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = 8-bit [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tileset palettes&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[VGFM Raw Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for UI elements&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.scr&lt;br /&gt;
 | Format = [[VGFM Screen Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Some full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.snd&lt;br /&gt;
 | Format = 8-bit unsigned 8kHz PCM, no header&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tim&lt;br /&gt;
 | Format = [[VGFM Instrument Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Instrument data (timbres) for the background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tls&lt;br /&gt;
 | Format = [[VGFM Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for map tiles&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = unlogic1.gra&lt;br /&gt;
 | Format = 320&amp;amp;times;200 8bpp raw VGA image&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Union Logic logo (&amp;lt;tt&amp;gt;unlogic1.pal&amp;lt;/tt&amp;gt; is palette)&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6776</id>
		<title>VGFM Save Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6776"/>
		<updated>2016-02-21T14:25:19Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Mark unknown data as TODO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = World&lt;br /&gt;
 | Elements = Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In Vinyl Goddess From Mars you can save in both Map level and a regular level, but restoring a game saved inside a regular level makes you appear on the Map level, standing just before a marker of the level you saved in. The state of Map level (including gate keys and gates) as well as your position, score and health is saved. Six save positions are available.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file DATA.DAT stores 6 saved games, each one is 109 bytes long, making the total file size of 654 bytes.&lt;br /&gt;
&lt;br /&gt;
This is the data structure of one saved game entry:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0||BYTE[24]||name||Name of saved game represented by zero-terminated indexes to the game&#039;s font (not ASCII, &#039;A&#039; = 0x1A). The game lets you type at most 21 characters, only capital letters or space.&lt;br /&gt;
|-&lt;br /&gt;
|24||UINT16LE||pixelX||X-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|26||UINT16LE||pixelY||Y-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|28||INT16LE||difficulty||-1 = easy, 0 = moderate, 1 = hard&lt;br /&gt;
|-&lt;br /&gt;
|30||UINT16LE||numKeys||Number of gate keys you carry&lt;br /&gt;
|-&lt;br /&gt;
|32||UINT16LE||*||{{TODO|Unknown, but has a meaningful value}}&lt;br /&gt;
|-&lt;br /&gt;
|34||UINT16LE||episode||0 = first episode&lt;br /&gt;
|-&lt;br /&gt;
|36||UINT16LE||health||9 = full health, 0 = one hit point&lt;br /&gt;
|-&lt;br /&gt;
|38||BOOL[27]||finishedLevels||Levels you finished, levels from the second episode start at index 9 and so on&lt;br /&gt;
|-&lt;br /&gt;
|65||BYTE[37]||*||{{TODO|Unknown, but confirmed that the status of gate keys and gates is stored inside this field}}&lt;br /&gt;
|-&lt;br /&gt;
|102||BYTE[7]||scoreDigits||Player&#039;s score, each decimal digit is stored separately, $FF means no digit, least significant digit at the first index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Hisymak|Hisymak]]. 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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:VGFM_Level_Format.png&amp;diff=6775</id>
		<title>File:VGFM Level Format.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:VGFM_Level_Format.png&amp;diff=6775"/>
		<updated>2016-02-21T14:19:46Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6774</id>
		<title>VGFM Level Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6774"/>
		<updated>2016-02-21T14:17:14Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added rest of information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 2&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;159&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In VGFM there are two types of levels: regular levels (&amp;lt;tt&amp;gt;*.M&amp;lt;/tt&amp;gt;) and &amp;quot;Map&amp;quot; levels (&amp;lt;tt&amp;gt;*.MAP&amp;lt;/tt&amp;gt;) - a world map where you travel between levels. They both use the same file format and structure, but some data fields are used for different purpose in Map levels.&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
The file contains no signature.  Identification can only be done by parsing the file and checking that valid (in-range) data is at the expected locations.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Height of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Width of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[width * height]||background||Background layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; &amp;amp;times; 2 bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT8[width * height]||foreground||Foreground layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||platformTiles||Number of tiles from the start of the tileset that can be stood upon (and can be passed through from left, right and bottom direction).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||solidTiles||Number of tiles from the start of the tileset that are impassable. The value is always less or equal to platformTiles, meaning that solid tiles are located always in the beginning of tileset, followed by 0 or more platform tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][15]||tileAnimations||Animated tile information&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTileAnimations||Number of tile animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||noAnimationTiles||Number of tiles from the start of the tileset that should not be animated. That means animated tiles are always in the end of tileset. Lowering the value makes all tiles with index &amp;gt;= value animate, and eventually stay animated within the first defined animation. &lt;br /&gt;
|-&lt;br /&gt;
|UINT8[500]||safeTiles||0=tile hurts player, 1=tile safe, one byte for each tile in the tileset. In Map level this means whether a tile is passable or not: 0 = impassable, 1 = passable.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||capsuleCount||Number of capsules (red orbs) in level (displayed on stats screen after level exit)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItem||Tile index of first item tile. These tiles can be picked up - when touched by player they disappear and a twinkle animation is shown.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItem||Tile index of last item tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstClimb||Tile index of first climbable tile (vine, chain, stick)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastClimb||Tile index of last climbable tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstLadder||Tile index of first ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastLadder||Tile index of last ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstRail||Tile index of first overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastRail||Tile index of last overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||X-tile-coordinate which camera will never exceed when scrolling in left direction. The level will scroll normally as the player moves to the right, but it will only scroll back until tiles at this X-coordinate are visible.  No tiles where X is less than this value will appear.  If the player continues to walk off the screen to the left, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop||Y-tile-coordinate which camera should never exceed when scrolling in up direction. Not working - probably not or wrongly implemented in the game.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight||X-tile-coordinate which camera will never exceed when scrolling in right direction.  As the player moves right, the level will only scroll this far.  The tile at this X coordinate will never be seen, only the one at X-1.  Normally this is set close to the width of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and continues to walk off the screen to the right, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom||Y-tile-coordinate which camera will never exceed when scrolling in down direction.  As the player moves down/looks down, the level will only scroll this far.  The tile at this Y coordinate will never be seen, only the one at Y-1.  Normally this is set to the height of the level of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and can move past this point, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TDoorEntry structure|TDoorEntry]][10]||doors||Definitions of walk-through doors, allowing the player move from one place in a map to another. One door allows one-way movement, that means always 2 doors are used for two-way movement. So there can be only 5 two-way doors in a level.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSwitchEntry structure|TSwitchEntry]][25]||switches||Definitions of switches, which can be activated by the player to perform some change in a level (activate platform, remove blocking tiles).&lt;br /&gt;
|-&lt;br /&gt;
|[[#TLockEntry structure|TLockEntry]][15]||locks||Definitions of locks (keyhole tiles), which are unlocked by the player by touching them while holding the respective key. Usually blocking tiles are removed when unlocking a lock. In Map level locks are used to define entrance to a regular level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numDoors||Number of doors used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numSwitches||Number of switches used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numLocks||Number of locks used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstTransparent||Tile index of first transparent tile rendered in front of sprites, partially covering them. This is used on barred windows, trees and some other decorations. Other tiles are rendered behind sprites.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastTransparent||Tile index of last transparent tile rendered in front of sprites&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[26]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||tilesetFilename||Filename of tileset to use in this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||paletteFilename||Filename of palette for this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstBoundary||Tile index of first solid (impassable) tile which is used as a boundary of hidden passages. These tiles are always inside tileFirstFront - tileLastFront range, so they cover all sprites (specifically splashes and explosions).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastBoundary||Tile index of last solid (impassable) tile which is used as a boundary of hidden passages.&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[1140]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelX||X-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level. This is for example used to move the player to different place after finishing level 4 in the first episode.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelY||Y-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unused, contains garbage/leftover data. Editing did not change anything in the level. It appears to store a number of used structures in the preceding unused data fields. There is place for 25 48-byte structures which seem to be related to locks and switches as they store coordinates to tiles which are removed by unlocking the lock. &lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][5]||itemAnimations||Defines animations of item tiles - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItemAnim||Tile index of first item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItemAnim||Tile index of last item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|[[#TPaletteAnimationEntry structure|TPaletteAnimationEntry]][5]||paletteAnimations||Defines palette animations - palette continuously &amp;quot;rotates&amp;quot; within this range. This is used to animate falling/flowing water in several levels (most notably egyptian-themed levels in episode 3) as well as blue-circle-shaped level markers in Map level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numPaletteAnimations||Number of palette animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileFirstItemType||Tile index of first item tile for particular item type - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileLastItemType||Tile index of last item tile for particular item type&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstFront||Tile index of first opaque tile rendered in front of sprites, fully covering them. This is used to make hidden (secret) passages. &lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastFront||Tile index of last opaque tile rendered in front of sprites, fully covering them.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSpriteDefinition structure|TSpriteDefinition]][30]||usedSprites||Definitions of sprites (&amp;quot;object types&amp;quot;) used in the level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TObjectEntry structure|TObjectEntry]][150]||objects||Definitions of objects in the level (monsters, weapons, healing potions, keys, moving platforms etc...)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTransformationBlocks||Number of transformation blocks used in level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TTransformationBlock structure|TTransformationBlock]]&amp;lt;br&amp;gt;[numTransformationBlocks]||transformationBlocks||Definitions of blocks, which replace a block in a map after unlocking a lock or pressing a switch. This is almost always used to remove blocking tiles or open a door, but can be used for generally anything, like inserting a platform (as it is in E2L7).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown. Mostly, but not always it is 0.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastTile||Tile index of last tile in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstTile||Tile index of first tile in animation sequence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TPaletteAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstIndex||Index of first color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastIndex||Index of last color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||startIndex||Should be set to same value as firstIndex. Setting to a value out of range causes strange graphical effects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0. Editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TDoorEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minX||rowspan=&amp;quot;4&amp;quot;|Defines the door entrance area&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxX&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelX||rowspan=&amp;quot;2&amp;quot;|Destination coordinates (where player&#039;s sprite appears after entering the door) in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||rowspan=&amp;quot;4&amp;quot;|Behave in same way as scrollBorder values defined in level data, but these values apply in the area reached by entering the door. That means, once player enters any door, the values defined in level data are never valid again (only after player&#039;s death)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TSwitchEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the switch in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||initialState||0 = Down, 1 = Up. The switch action is performed only when it is flipped from Up state to Down state, so that it is always (and should be) set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||switchType||Type of switch action: 1 = Activate platform, 3 = Transform tiles, 4 = Remove tiles from foreground layer, 5 = Remove objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var1||rowspan=&amp;quot;4&amp;quot;|Various meaning, depends on the switch type.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var4&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[5]||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For type 1 (Activate platform) var1 is the object number to activate.&lt;br /&gt;
&lt;br /&gt;
For type 3 (Transform tiles) var1 is the number of transformation block which is applied.&lt;br /&gt;
&lt;br /&gt;
For type 4 (Remove tiles from foreground layer) var1 and var2 are X/Y coordinates of the target area and var3/var4 are width/height of the target area (in tiles).&lt;br /&gt;
&lt;br /&gt;
For type 5 (Remove objects) var1 and var2 are first/last object numbers to remove. The numbers are not absolute, but are counted from 0 through only valid objects, so if there is for example free space of 5 objects in the object array, the following objects have number less than 5 than their index. The removed objects must be out of the actual viewport, otherwise graphical glitch will occur.&lt;br /&gt;
&lt;br /&gt;
The switch action is irreversible once the switch is activated. When the switch state is changed, the tile in background layer is changed to the respective adjacent tile in the tileset.&lt;br /&gt;
&lt;br /&gt;
=== TLockEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the corresponding key in tiles. This is not used by the game (editing these values does not change anything) because keys are defined as objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the lock (keyhole tile) in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||transblockNumber||Number of transformation block which is applied when unlocking the lock.&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||messageNumber||Number of message which is displayed when touching the lock without the corresponding key. 0 = &amp;quot;You need a gold key&amp;quot;, 1 = red, 2 = green, 3 = blue. Any other value (including negative values) will display some other message from the game&#039;s list.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||showMessage||0 = Message is shown, nonzero value = Message is not shown&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Map level locks define entrances to levels. In this case keyX/keyY/posX/posY define coordinates of the level entrance area (always posX = keyX + 1, posY = keyY + 1).&lt;br /&gt;
&lt;br /&gt;
=== TSpriteDefinition structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[16]||name||File name of the sprite (always including &amp;lt;tt&amp;gt;.cmp&amp;lt;/tt&amp;gt; extension), null-terminated.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Sprite width&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Sprite height&lt;br /&gt;
|-&lt;br /&gt;
|INT8||behavior||This is the same as behavior value defined for each object separately but this &amp;quot;global&amp;quot; value is applied when the object is spawned during gameplay (a projectile is shot). The value means how the sprite moves and how animates.&lt;br /&gt;
|-&lt;br /&gt;
|INT8||kind||Defines the type of object - whether hurts player or not, whether can be stood upon etc: 2 = monster, 3,4 = hazard/projectile (hurts), 5 = pick-up item, 6 = exit, 10 = decoration, 11 = can be stood upon&lt;br /&gt;
|-&lt;br /&gt;
|INT8||numSprites||Number of sprites in the cmp file&lt;br /&gt;
|-&lt;br /&gt;
|INT8||itemType||Type of the item: 0 = weapon, 1 = healing, 3 = key, 5 = checkpoint&lt;br /&gt;
|-&lt;br /&gt;
|INT8||fullHealth||1 = if healing item, restores full health&lt;br /&gt;
|-&lt;br /&gt;
|INT8||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstSpriteIndex||It is sum of numSprites value of all preceding sprite definitions&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||childSprite||Sprite (sprite definition number) which is spawned by this sprite (fired projectlile, pick-up animation)&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[92]||*||{{TODO|Not known yet, seems to be more details about behavior, sprite offsets etc.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The sprite definition with index 0 has always empty name and it is the player sprite (used as starting point)&lt;br /&gt;
&lt;br /&gt;
=== TObjectEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||objType||Object type - index of sprite definition. -1 = object is not used.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelX||X-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelY||Y-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var1||Various meaning, depending on object type and behavior (whether monster or platform is active, weapon type, item animaiton speed)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var2||Various meaning, depending on object type and behavior (key number)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||animationPhase||Used on in-out platforms in E2L2, also works on spikes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[6]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3||Various meaning, depending on object type and behavior (platform speed, swing and circling radius, jump height)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[20]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||behavior||Means how the sprite moves and how animates: 1, 2 = Move horizontally (moving platform), 4 = Walking and shooting (monster), 8 = Move vertically (moving platform), 12 = Continuous animation (item), 16 = Jump (jumping spike ball), 23 = Swing, 38 = Move in circle, and many more values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The object with index 0 is always the starting point (and is of type 0).&lt;br /&gt;
&lt;br /&gt;
=== TTransformationBlock structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Target coordinates of the block in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||rowspan=&amp;quot;2&amp;quot;|Block size&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numBytes||Size of tiles array in bytes, equal to width&amp;amp;times;height&amp;amp;times;2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[numBytes/2]||tiles||Tiles (tile indexes) in the block&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
Each tile code in both the foreground and background layer is an index into the tileset. Since the foreground layer only uses one byte for each tile, it can only store tiles up to index 255. The background layer&#039;s maximum of 65,535 is well within the 500 tiles in the tileset.&lt;br /&gt;
&lt;br /&gt;
In the foreground layer, a code of 0 is used for an empty tile which is not drawn. In the background layer there is no value reserved for an empty tile, so 0 is valid tile index there.&lt;br /&gt;
&lt;br /&gt;
The background layer can only consist of opaque tiles (tiles not having any transparent pixels) and the foreground layer can only contain transparent tiles (tiles which have transparent pixels). Both types of tiles are stored in different format in the [[VGFM Tileset Format|tileset]] and if a tile is used in the background layer the game treats it as if it was stored in the opaque tile format and vice versa. Using tiles improperly results in wrongly rendered tiles.&lt;br /&gt;
&lt;br /&gt;
== Unclear information ==&lt;br /&gt;
&lt;br /&gt;
* It is not known how the game determines the player&#039;s position on the Map level when saving game inside a regular level. When you restore this saved game you appear on the Map level standing just before the marker of the level you saved in, and the position is part of the [[VGFM Save Format|saved game]]. The position is neither stored in the regular level nor the Map level (editing all unknown/unused data didn&#039;t change it). It is possible that this information is stored in a different file or is hard-coded in the executable.&lt;br /&gt;
&lt;br /&gt;
* It is not clearly known how the &amp;quot;locked doors&amp;quot; work (the walk-through doors you cannot pass until unlocked, they appear only in E3L1). It was discovered that the game checks for tiles which are in the door entrance area and for some particular tiles it won&#039;t let the player pass (namely the tiles which contain iron bars). But it is not known how these tiles are determined - it is possible that the game checks the pixels in the tiles and for some particular colors it treats the tile as &amp;quot;locking&amp;quot; the doors.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]] and [[User:Hisymak|Hisymak]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6773</id>
		<title>VGFM Level Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6773"/>
		<updated>2016-02-17T21:39:43Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added description of the rest of data structures&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 2&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;159&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In VGFM there are two types of levels: regular levels (&amp;lt;tt&amp;gt;*.M&amp;lt;/tt&amp;gt;) and &amp;quot;Map&amp;quot; levels (&amp;lt;tt&amp;gt;*.MAP&amp;lt;/tt&amp;gt;) - a world map where you travel between levels. They both use the same format and structure, but some data fields are used for different purpose in Map levels.&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
The file contains no signature.  Identification can only be done by parsing the file and checking that valid (in-range) data is at the expected locations.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Height of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Width of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[width * height]||background||Background layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; &amp;amp;times; 2 bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT8[width * height]||foreground||Foreground layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||platformTiles||Number of tiles from the start of the tileset that can be stood upon (and can be passed through from left, right and bottom direction).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||solidTiles||Number of tiles from the start of the tileset that are impassable. The value is always less or equal to platformTiles, meaning that solid tiles are located always in the beginning of tileset, followed by 0 or more platform tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][15]||tileAnimations||Animated tile information&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTileAnimations||Number of tile animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||noAnimationTiles||Number of tiles from the start of the tileset that should not be animated. That means animated tiles are always in the end of tileset. Lowering the value makes all tiles with index &amp;gt;= value animate, and eventually stay animated within the first defined animation. &lt;br /&gt;
|-&lt;br /&gt;
|UINT8[500]||safeTiles||0=tile hurts player, 1=tile safe, one byte for each tile in the tileset. In Map level this means whether a tile is passable or not: 0 = impassable, 1 = passable.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||capsuleCount||Number of capsules (red orbs) in level (displayed on stats screen after level exit)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItem||Tile index of first item tile. These tiles can be picked up - when touched by player they disappear and a twinkle animation is shown.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItem||Tile index of last item tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstClimb||Tile index of first climbable tile (vine, chain, stick)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastClimb||Tile index of last climbable tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstLadder||Tile index of first ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastLadder||Tile index of last ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstRail||Tile index of first overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastRail||Tile index of last overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||X-tile-coordinate which camera will never exceed when scrolling in left direction. The level will scroll normally as the player moves to the right, but it will only scroll back until tiles at this X-coordinate are visible.  No tiles where X is less than this value will appear.  If the player continues to walk off the screen to the left, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop||Y-tile-coordinate which camera should never exceed when scrolling in up direction. Not working - probably not or wrongly implemented in the game.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight||X-tile-coordinate which camera will never exceed when scrolling in right direction.  As the player moves right, the level will only scroll this far.  The tile at this X coordinate will never be seen, only the one at X-1.  Normally this is set close to the width of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and continues to walk off the screen to the right, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom||Y-tile-coordinate which camera will never exceed when scrolling in down direction.  As the player moves down/looks down, the level will only scroll this far.  The tile at this Y coordinate will never be seen, only the one at Y-1.  Normally this is set to the height of the level of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and can move past this point, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TDoorEntry structure|TDoorEntry]][10]||doors||Definitions of walk-through doors, allowing the player move from one place in a map to another. One door allows one-way movement, that means always 2 doors are used for two-way movement. So there can be only 5 two-way doors in a level.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSwitchEntry structure|TSwitchEntry]][25]||switches||Definitions of switches, which can be activated by the player to perform some change in a level (activate platform, remove blocking tiles).&lt;br /&gt;
|-&lt;br /&gt;
|[[#TLockEntry structure|TLockEntry]][15]||locks||Definitions of locks (keyhole tiles), which are unlocked by the player by touching them while holding the respective key. Usually blocking tiles are removed when unlocking a lock. In Map level locks are used to define entrance to a regular level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numDoors||Number of doors used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numSwitches||Number of switches used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numLocks||Number of locks used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstTransparent||Tile index of first transparent tile rendered in front of sprites, partially covering them. This is used on barred windows, trees and some other decorations. Other tiles are rendered behind sprites.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastTransparent||Tile index of last transparent tile rendered in front of sprites&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[26]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||tilesetFilename||Filename of tileset to use in this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||paletteFilename||Filename of palette for this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstBoundary||Tile index of first solid (impassable) tile which is used as a boundary of hidden passages. These tiles are always inside tileFirstFront - tileLastFront range, so they cover all sprites (specifically splashes and explosions).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastBoundary||Tile index of last solid (impassable) tile which is used as a boundary of hidden passages.&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[1140]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelX||X-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level. This is for example used to move the player to different place after finishing level 4 in the first episode.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelY||Y-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unused, contains garbage/leftover data. Editing did not change anything in the level. It appears to store a number of used structures in the preceding unused data fields. There is place for 25 48-byte structures which seem to be related to locks and switches as they store coordinates to tiles which are removed by unlocking the lock. &lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][5]||itemAnimations||Defines animations of item tiles - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItemAnim||Tile index of first item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItemAnim||Tile index of last item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|[[#TPaletteAnimationEntry structure|TPaletteAnimationEntry]][5]||paletteAnimations||Defines palette animations - palette continuously &amp;quot;rotates&amp;quot; within this range. This is used to animate falling/flowing water in several levels (most notably egyptian-themed levels in episode 3) as well as blue-circle-shaped level markers in Map level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numPaletteAnimations||Number of palette animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileFirstItemType||Tile index of first item tile for particular item type - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileLastItemType||Tile index of last item tile for particular item type&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstFront||Tile index of first opaque tile rendered in front of sprites, fully covering them. This is used to make hidden (secret) passages. &lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastFront||Tile index of last opaque tile rendered in front of sprites, fully covering them.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSpriteDefinition structure|TSpriteDefinition]][30]||usedSprites||Definitions of sprites (&amp;quot;object types&amp;quot;) used in the level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TObjectEntry structure|TObjectEntry]][150]||objects||Definitions of objects in the level (monsters, weapons, healing potions, keys, moving platforms etc...)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTransformationBlocks||Number of transformation blocks used in level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TTransformationBlock structure|TTransformationBlock]]&amp;lt;br&amp;gt;[numTransformationBlocks]||transformationBlocks||Definitions of blocks, which replace a block in a map after unlocking a lock or pressing a switch. This is almost always used to remove blocking tiles or open a door, but can be used for generally anything, like inserting a platform (as it is in E2L7).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown. Mostly, but not always it is 0.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastTile||Tile index of last tile in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstTile||Tile index of first tile in animation sequence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TPaletteAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstIndex||Index of first color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastIndex||Index of last color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||startIndex||Should be set to same value as firstIndex. Setting to a value out of range causes strange graphical effects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0. Editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TDoorEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minX||rowspan=&amp;quot;4&amp;quot;|Defines the door entrance area&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxX&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelX||rowspan=&amp;quot;2&amp;quot;|Destination coordinates (where player&#039;s sprite appears after entering the door) in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||rowspan=&amp;quot;4&amp;quot;|Behave in same way as scrollBorder values defined in level data, but these values apply in the area reached by entering the door. That means, once player enters any door, the values defined in level data are never valid again (only after player&#039;s death)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TSwitchEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the switch in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||initialState||0 = Down, 1 = Up. The switch action is performed only when it is flipped from Up state to Down state, so that it is always (and should be) set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||switchType||Type of switch action: 1 = Activate platform, 3 = Transform tiles, 4 = Remove tiles from foreground layer, 5 = Remove objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var1||rowspan=&amp;quot;4&amp;quot;|Various meaning, depends on the switch type.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var4&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[5]||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For type 1 (Activate platform) var1 is the object number to activate.&lt;br /&gt;
&lt;br /&gt;
For type 3 (Transform tiles) var1 is the number of transformation block which is applied.&lt;br /&gt;
&lt;br /&gt;
For type 4 (Remove tiles from foreground layer) var1 and var2 are X/Y coordinates of the target area and var3/var4 are width/height of the target area (in tiles).&lt;br /&gt;
&lt;br /&gt;
For type 5 (Remove objects) var1 and var2 are first/last object numbers to remove. The numbers are not absolute, but are counted from 0 through only valid objects, so if there is for example free space of 5 objects in the object array, the following objects have number less than 5 than their index. The removed objects must be out of the actual viewport, otherwise graphical glitch will occur.&lt;br /&gt;
&lt;br /&gt;
The switch action is irreversible once the switch is activated. When the switch state is changed, the tile in background layer is changed to the respective adjacent tile in the tileset.&lt;br /&gt;
&lt;br /&gt;
=== TLockEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the corresponding key in tiles. This is not used by the game (editing these values does not change anything) because keys are defined as objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the lock (keyhole tile) in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||transblockNumber||Number of transformation block which is applied when unlocking the lock.&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||messageNumber||Number of message which is displayed when touching the lock without the corresponding key. 0 = &amp;quot;You need a gold key&amp;quot;, 1 = red, 2 = green, 3 = blue. Any other value (including negative values) will display some other message from the game&#039;s list.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||showMessage||0 = Message is shown, nonzero value = Message is not shown&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Map level locks define entrances to levels. In this case keyX/keyY/posX/posY define coordinates of the level entrance area (always posX = keyX + 1, posY = keyY + 1).&lt;br /&gt;
&lt;br /&gt;
=== TSpriteDefinition structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[16]||name||File name of the sprite (always including &amp;lt;tt&amp;gt;.cmp&amp;lt;/tt&amp;gt; extension), null-terminated.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Sprite width&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Sprite height&lt;br /&gt;
|-&lt;br /&gt;
|INT8||behavior||This is the same as behavior value defined for each object separately but this &amp;quot;global&amp;quot; value is applied when the object is spawned during gameplay (a projectile is shot). The value means how the sprite moves and how animates.&lt;br /&gt;
|-&lt;br /&gt;
|INT8||kind||Defines the type of object - whether hurts player or not, whether can be stood upon etc: 2 = monster, 3,4 = hazard/projectile (hurts), 5 = pick-up item, 6 = exit, 10 = decoration, 11 = can be stood upon&lt;br /&gt;
|-&lt;br /&gt;
|INT8||numSprites||Number of sprites in the cmp file&lt;br /&gt;
|-&lt;br /&gt;
|INT8||itemType||Type of the item: 0 = weapon, 1 = healing, 3 = key, 5 = checkpoint&lt;br /&gt;
|-&lt;br /&gt;
|INT8||fullHealth||1 = if healing item, restores full health&lt;br /&gt;
|-&lt;br /&gt;
|INT8||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstSpriteIndex||It is sum of numSprites value of all preceding sprite definitions&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||childSprite||Sprite (sprite definition number) which is spawned by this sprite (fired projectlile, pick-up animation)&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[92]||*||{{TODO|Not known yet, seems to be more details about behavior, sprite offsets etc.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The sprite definition with index 0 has always empty name and it is the player sprite (used as starting point)&lt;br /&gt;
&lt;br /&gt;
=== TObjectEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||objType||Object type - index of sprite definition. -1 = object is not used.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelX||X-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||pixelY||Y-coordinate in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var1||Various meaning, depending on object type and behavior (whether monster or platform is active, weapon type, item animaiton speed)&lt;br /&gt;
|-&lt;br /&gt;
|INT8||var2||Various meaning, depending on object type and behavior (key number)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||animationPhase||Used on in-out platforms in E2L2, also works on spikes&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[6]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3||Various meaning, depending on object type and behavior (platform speed, swing and circling radius, jump height)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[20]||*||Unknown, always 0&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||behavior||Means how the sprite moves and how animates: 1, 2 = Move horizontally (moving platform), 4 = Walking and shooting (monster), 8 = Move vertically (moving platform), 12 = Continuous animation (item), 16 = Jump (jumping spike ball), 23 = Swing, 38 = Move in circle, and many more values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The object with index 0 is always the starting point (and is of type 0).&lt;br /&gt;
&lt;br /&gt;
=== TTransformationBlock structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Name!!Description&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Target coordinates of the block in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||rowspan=&amp;quot;2&amp;quot;|Block size&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numBytes||Size of tiles array in bytes, equal to width&amp;amp;times;height&amp;amp;times;2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[numBytes/2]||tiles||Tiles (tile indexes) in the block&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
Each tile code in both the foreground and background layer is an index into the tileset. Since the foreground layer only uses one byte for each tile, it can only store tiles up to index 255. The background layer&#039;s maximum of 65,535 is well within the 500 tiles in the tileset.&lt;br /&gt;
&lt;br /&gt;
Tile codes are simply indices into the map tileset. A code of 0 is the first tile in the tileset, 1 is the second tile, and so on.  In the foreground layer, a code of 0 used for empty tiles and should not drawn.&lt;br /&gt;
&lt;br /&gt;
== Unclear information ==&lt;br /&gt;
&lt;br /&gt;
To be added&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]] and [[User:Hisymak|Hisymak]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6772</id>
		<title>VGFM Level Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6772"/>
		<updated>2016-02-15T21:42:01Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added description of data structures&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 2&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;159&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In VGFM there are two types of levels: regular levels (&amp;lt;tt&amp;gt;*.M&amp;lt;/tt&amp;gt;) and &amp;quot;Map&amp;quot; levels (&amp;lt;tt&amp;gt;*.MAP&amp;lt;/tt&amp;gt;) - a world map where you travel between levels. They both use the same format and structure, but some data fields are used for different purpose in Map levels.&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
The file contains no signature.  Identification can only be done by parsing the file and checking that valid (in-range) data is at the expected locations.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Height of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Width of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[width * height]||background||Background layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; &amp;amp;times; 2 bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT8[width * height]||foreground||Foreground layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||platformTiles||Number of tiles from the start of the tileset that can be stood upon (and can be passed through from left, right and bottom direction).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||solidTiles||Number of tiles from the start of the tileset that are impassable. The value is always less or equal to platformTiles, meaning that solid tiles are located always in the beginning of tileset, followed by 0 or more platform tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][15]||tileAnimations||Animated tile information&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTileAnimations||Number of tile animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||noAnimationTiles||Number of tiles from the start of the tileset that should not be animated. That means animated tiles are always in the end of tileset. Lowering the value makes all tiles with index &amp;gt;= value animate, and eventually stay animated within the first defined animation. &lt;br /&gt;
|-&lt;br /&gt;
|UINT8[500]||safeTiles||0=tile hurts player, 1=tile safe, one byte for each tile in the tileset. In Map level this means whether a tile is passable or not: 0 = impassable, 1 = passable.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||capsuleCount||Number of capsules (red orbs) in level (displayed on stats screen after level exit)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItem||Tile index of first item tile. These tiles can be picked up - when touched by player they disappear and a twinkle animation is shown.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItem||Tile index of last item tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstClimb||Tile index of first climbable tile (vine, chain, stick)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastClimb||Tile index of last climbable tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstLadder||Tile index of first ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastLadder||Tile index of last ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstRail||Tile index of first overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastRail||Tile index of last overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||X-tile-coordinate which camera will never exceed when scrolling in left direction. The level will scroll normally as the player moves to the right, but it will only scroll back until tiles at this X-coordinate are visible.  No tiles where X is less than this value will appear.  If the player continues to walk off the screen to the left, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop||Y-tile-coordinate which camera should never exceed when scrolling in up direction. Not working - probably not or wrongly implemented in the game.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight||X-tile-coordinate which camera will never exceed when scrolling in right direction.  As the player moves right, the level will only scroll this far.  The tile at this X coordinate will never be seen, only the one at X-1.  Normally this is set close to the width of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and continues to walk off the screen to the right, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom||Y-tile-coordinate which camera will never exceed when scrolling in down direction.  As the player moves down/looks down, the level will only scroll this far.  The tile at this Y coordinate will never be seen, only the one at Y-1.  Normally this is set to the height of the level of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and can move past this point, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TDoorEntry structure|TDoorEntry]][10]||doors||Definitions of walk-through doors, allowing the player move from one place in a map to another. One door allows one-way movement, that means always 2 doors are used for two-way movement. So there can be only 5 two-way doors in a level.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSwitchEntry structure|TSwitchEntry]][25]||switches||Definitions of switches, which can be activated by the player to perform some change in a level (activate platform, remove blocking tiles).&lt;br /&gt;
|-&lt;br /&gt;
|[[#TLockEntry structure|TLockEntry]][15]||locks||Definitions of locks (keyhole tiles), which are unlocked by the player by touching them while holding the respective key. Usually blocking tiles are removed when unlocking a lock. In Map level locks are used to define entrance to a regular level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numDoors||Number of doors used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numSwitches||Number of switches used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numLocks||Number of locks used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstTransparent||Tile index of first transparent tile rendered in front of sprites, partially covering them. This is used on barred windows, trees and some other decorations. Other tiles are rendered behind sprites.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastTransparent||Tile index of last transparent tile rendered in front of sprites&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[26]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||tilesetFilename||Filename of tileset to use in this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||paletteFilename||Filename of palette for this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstBoundary||Tile index of first solid (impassable) tile which is used as a boundary of hidden passages. These tiles are always inside tileFirstFront - tileLastFront range, so they cover all sprites (specifically splashes and explosions).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastBoundary||Tile index of last solid (impassable) tile which is used as a boundary of hidden passages.&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[1140]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelX||X-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level. This is for example used to move the player to different place after finishing level 4 in the first episode.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelY||Y-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unused, contains garbage/leftover data. Editing did not change anything in the level. It appears to store a number of used structures in the preceding unused data fields. There is place for 25 48-byte structures which seem to be related to locks and switches as they store coordinates to tiles which are removed by unlocking the lock. &lt;br /&gt;
|-&lt;br /&gt;
|[[#TAnimationEntry structure|TAnimationEntry]][5]||itemAnimations||Defines animations of item tiles - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItemAnim||Tile index of first item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItemAnim||Tile index of last item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|[[#TPaletteAnimationEntry structure|TPaletteAnimationEntry]][5]||paletteAnimations||Defines palette animations - palette continuously &amp;quot;rotates&amp;quot; within this range. This is used to animate falling/flowing water in several levels (most notably egyptian-themed levels in episode 3) as well as blue-circle-shaped level markers in Map level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numPaletteAnimations||Number of palette animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileFirstItemType||Tile index of first item tile for particular item type - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileLastItemType||Tile index of last item tile for particular item type&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstFront||Tile index of first opaque tile rendered in front of sprites, fully covering them. This is used to make hidden (secret) passages. &lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastFront||Tile index of last opaque tile rendered in front of sprites, fully covering them.&lt;br /&gt;
|-&lt;br /&gt;
|[[#TSpriteDefinition structure|TSpriteDefinition]][30]||usedSprites||Definitions of sprites (&amp;quot;object types&amp;quot;) used in the level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TObjectEntry structure|TObjectEntry]][150]||objects||Definitions of objects in the level (monsters, weapons, healing potions, keys, moving platforms etc...)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTransformationBlocks||Number of transformation blocks used in level&lt;br /&gt;
|-&lt;br /&gt;
|[[#TTransformationBlock structure|TTransformationBlock]]&amp;lt;br&amp;gt;[numTransformationBlocks]||transformationBlocks||Definitions of blocks, which replace a block in a map after unlocking a lock or pressing a switch. This is almost always used to remove blocking tiles or open a door, but can be used for generally anything, like inserting a platform (as it is in E2L7).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown. Mostly, but not always it is 0.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastTile||Tile index of last tile in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstTile||Tile index of first tile in animation sequence&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TPaletteAnimationEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||firstIndex||Index of first color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||lastIndex||Index of last color in animation sequence&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||startIndex||Should be set to same value as firstIndex. Setting to a value out of range causes strange graphical effects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, always 0. Editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TDoorEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minX||rowspan=&amp;quot;4&amp;quot;|Defines the door entrance area&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxX&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||minY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||maxY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelX||rowspan=&amp;quot;2&amp;quot;|Destination coordinates (where player&#039;s sprite appears after entering the door) in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||destPixelY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||rowspan=&amp;quot;4&amp;quot;|Behave in same way as scrollBorder values defined in level data, but these values apply in the area reached by entering the door. That means, once player enters any door, the values defined in level data are never valid again (only after player&#039;s death)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TSwitchEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the switch in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||initialState||0 = Down, 1 = Up. The switch action is performed only when it is flipped from Up state to Down state, so that it is always (and should be) set to 1.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||switchType||Type of switch action: 1 = Activate platform, 3 = Transform tiles, 4 = Remove tiles from foreground layer, 5 = Remove objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var1||rowspan=&amp;quot;4&amp;quot;|Various meaning, depends on the switch type.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var2&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var3&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||var4&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[5]||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For type 1 (Activate platform) var1 is the object number to activate.&lt;br /&gt;
&lt;br /&gt;
For type 3 (Transform tiles) var1 is the number of transformation block which is applied.&lt;br /&gt;
&lt;br /&gt;
For type 4 (Remove tiles from foreground layer) var1 and var2 are X/Y coordinates of the target area and var3/var4 are width/height of the target area (in tiles).&lt;br /&gt;
&lt;br /&gt;
For type 5 (Remove objects) var1 and var2 are first/last object numbers to remove. The numbers are not absolute, but are counted from 0 through only valid objects, so if there is for example free space of 5 objects in the object array, the following objects have number less than 5 than their index. The removed objects must be out of the actual viewport, otherwise graphical glitch will occur.&lt;br /&gt;
&lt;br /&gt;
The switch action is irreversible once the switch is activated. When the switch state is changed, the tile in background layer is changed to the respective adjacent tile in the tileset.&lt;br /&gt;
&lt;br /&gt;
=== TLockEntry structure ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the corresponding key in tiles. This is not used by the game (editing these values does not change anything) because keys are defined as objects.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||keyY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posX||rowspan=&amp;quot;2&amp;quot;|Coordinates of the lock (keyhole tile) in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||posY&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||transblockNumber||Number of transformation block which is applied when unlocking the lock.&lt;br /&gt;
|-&lt;br /&gt;
|INT16LE||messageNumber||Number of message which is displayed when touching the lock without the corresponding key. 0 = &amp;quot;You need a gold key&amp;quot;, 1 = red, 2 = green, 3 = blue. Any other value (including negative values) will display some other message from the game&#039;s list.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||showMessage||0 = Message is shown, nonzero value = Message is not shown&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unknown, editing did not change anything.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Map level locks define entrances to levels. In this case keyX/keyY/posX/posY define coordinates of the level entrance area (always posX = keyX + 1, posY = keyY + 1).&lt;br /&gt;
&lt;br /&gt;
=== TSpriteDefinition structure ===&lt;br /&gt;
&lt;br /&gt;
To be added&lt;br /&gt;
&lt;br /&gt;
=== TObjectEntry structure ===&lt;br /&gt;
&lt;br /&gt;
To be added&lt;br /&gt;
&lt;br /&gt;
=== TTransformationBlock structure ===&lt;br /&gt;
&lt;br /&gt;
To be added&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
Each tile code in both the foreground and background layer is an index into the tileset. Since the foreground layer only uses one byte for each tile, it can only store tiles up to index 255. The background layer&#039;s maximum of 65,535 is well within the 500 tiles in the tileset.&lt;br /&gt;
&lt;br /&gt;
Tile codes are simply indices into the map tileset. A code of 0 is the first tile in the tileset, 1 is the second tile, and so on.  In the foreground layer, a code of 0 used for empty tiles and should not drawn.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Confirm whether tile #0 should be drawn for the background layer}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]] and [[User:Hisymak|Hisymak]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6771</id>
		<title>VGFM Level Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Level_Format&amp;diff=6771"/>
		<updated>2016-02-14T11:59:24Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Described the full level structure (more details to be added later)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 2&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;159&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
The file contains no signature.  Identification can only be done by parsing the file and checking that valid (in-range) data is at the expected locations.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||height||Height of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||width||Width of level, in tiles&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE[width * height]||background||Background layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; &amp;amp;times; 2 bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT8[width * height]||foreground||Foreground layer, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; &amp;amp;times; &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; bytes long&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||platformTiles||Number of tiles from the start of the tileset that can be stood upon (and can be passed through from left, right and bottom direction).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||solidTiles||Number of tiles from the start of the tileset that are impassable. The value is always less or equal to platformTiles, meaning that solid tiles are located always in the beginning of tileset, followed by 0 or more platform tiles.&lt;br /&gt;
|-&lt;br /&gt;
|TAnimationEntry[15]||tileAnimations||Animated tile information&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTileAnimations||Number of tile animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||noAnimationTiles||Number of tiles from the start of the tileset that should not be animated. That means animated tiles are always in the end of tileset. Lowering the value makes all tiles with index &amp;gt;= value animate, and eventually stay animated within the first defined animation. &lt;br /&gt;
|-&lt;br /&gt;
|UINT8[500]||safeTiles||0=tile hurts player, 1=tile safe, one byte for each tile in the tileset. In Map level this means whether a tile is passable or not: 0 = impassable, 1 = passable.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||capsuleCount||Number of capsules (red orbs) in level (displayed on stats screen after level exit)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItem||Tile index of first item tile that can be picked up (either capsule or point). Also causes pick-up animation when a tile is touched by player.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItem||Tile index of last item tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstClimb||Tile index of first climbable tile (vine, chain, stick)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastClimb||Tile index of last climbable tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstLadder||Tile index of first ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastLadder||Tile index of last ladder tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstRail||Tile index of first overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastRail||Tile index of last overhead climbing rail tile&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderLeft||X-tile-coordinate which camera will never exceed when scrolling in left direction. The level will scroll normally as the player moves to the right, but it will only scroll back until tiles at this X-coordinate are visible.  No tiles where X is less than this value will appear.  If the player continues to walk off the screen to the left, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderTop||Y-tile-coordinate which camera should never exceed when scrolling in up direction. Not working - probably not or wrongly implemented in the game.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderRight||X-tile-coordinate which camera will never exceed when scrolling in right direction.  As the player moves right, the level will only scroll this far.  The tile at this X coordinate will never be seen, only the one at X-1.  Normally this is set close to the width of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and continues to walk off the screen to the right, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||scrollBorderBottom||Y-tile-coordinate which camera will never exceed when scrolling in down direction.  As the player moves down/looks down, the level will only scroll this far.  The tile at this Y coordinate will never be seen, only the one at Y-1.  Normally this is set to the height of the level of the level, so that it is not possible to scroll past the edge of the level.  If the player is not blocked and can move past this point, graphical glitches will occur.&lt;br /&gt;
|-&lt;br /&gt;
|TDoorEntry[10]||doors||Definitions of walk-through doors, allowing the player move from one place in a map to another. One door allows one-way movement, that means always 2 doors are used for two-way movement. So there can be only 5 two-way doors in a level.&lt;br /&gt;
|-&lt;br /&gt;
|TSwitchEntry[25]||switches||Definitions of switches, which can be activated by the player to perform some change in a level (activate platform, remove blocking tiles).&lt;br /&gt;
|-&lt;br /&gt;
|TLockEntry[15]||locks||Definitions of locks (keyhole tiles), which are unlocked by the player by touching them while holding the respective key. Usually blocking tiles are removed when unlocking a lock. In Map level locks are used to define entrance to a regular level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numDoors||Number of doors used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numSwitches||Number of switches used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numLocks||Number of locks used in level&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstTransparent||Tile index of first transparent tile rendered in front of sprites, partially covering them. This is used on barred windows, trees and some other decorations. Other tiles are rendered behind sprites.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastTransparent||Tile index of last transparent tile rendered in front of sprites&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[26]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||tilesetFilename||Filename of tileset to use in this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|CHAR[13]||paletteFilename||Filename of palette for this level, NULL terminated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstBoundary||Tile index of first solid (impassable) tile which is used as a boundary of hidden passages. These tiles are always inside tileFirstFront - tileLastFront range, so they cover all sprites (specifically splashes and explosions).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastBoundary||Tile index of last solid (impassable) tile which is used as a boundary of hidden passages.&lt;br /&gt;
|-&lt;br /&gt;
|BYTE[1140]||*||Unused, contains garbage/leftover data. Editing did not change anything in the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelX||X-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level. This is for example used to move the player to different place after finishing level 4 in the first episode.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||mapFinishPixelY||Y-coordinate in pixels (1 tile = 16 pixels) where you appear on Map level after you finish the level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||*||Unused, contains garbage/leftover data. Editing did not change anything in the level. It appears to store a number of used structures in the preceding unused data fields. There is place for 25 48-byte structures which seem to be related to locks and switches as they store coordinates to tiles which are removed by unlocking the lock. &lt;br /&gt;
|-&lt;br /&gt;
|TAnimationEntry[5]||itemAnimations||Defines animations of item tiles - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstItemAnim||Tile index of first item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastItemAnim||Tile index of last item tile which should be animated&lt;br /&gt;
|-&lt;br /&gt;
|TPaletteAnimationEntry[5]||paletteAnimations||Defines palette animations - palette continuously &amp;quot;rotates&amp;quot; within this range. This is used to animate falling/flowing water in several levels (most notably egyptian-themed levels in episode 3) as well as blue-circle-shaped level markers in Map level.&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numPaletteAnimations||Number of palette animations that are used&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileFirstItemType||Tile index of first item tile for particular item type - capsule, 100 points, 250 points, 500 points and 1000 points (never used).&lt;br /&gt;
|-&lt;br /&gt;
|INT8[5]||tileLastItemType||Tile index of last item tile for particular item type&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileFirstFront||Tile index of first solid tile rendered in front of sprites, fully covering them. This is used to make hidden (secret) passages. &lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||tileLastFront||Tile index of first solid tile rendered in front of sprites, fully covering them.&lt;br /&gt;
|-&lt;br /&gt;
|TSpriteDefinition[30]||usedSprites||Definitions of sprites (&amp;quot;object types&amp;quot;) used in the level&lt;br /&gt;
|-&lt;br /&gt;
|TObjectEntry[150]||objects||Definitions of objects in the level (monsters, weapons, healing potions, keys, moving platforms etc...)&lt;br /&gt;
|-&lt;br /&gt;
|UINT16LE||numTransformationBlocks||Number of transformation blocks used in level&lt;br /&gt;
|-&lt;br /&gt;
|TTransformationBlock&amp;lt;br&amp;gt;[numTransformationBlocks]||transformationBlocks||Definitions of blocks, which replace a block in a map after unlocking a lock or pressing a switch. This is almost always used to remove blocking tiles or open a door, but can be used for generally anything, like inserting a platform (as it is in E2L7).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|The animation data is currently unknown}} but seems to be in units of three UINT16LE values.  The first is always 0x0000, the second is the last tile in the animation sequence, and the third is the first tile in the animation sequence.  But this doesn&#039;t work for all tiles.&lt;br /&gt;
&lt;br /&gt;
* If you include a tile as a point item the game does not recognise, it will silently disappear with a twinkle when the player walks into it.  This could be used to create secret walls which disappear as the player walks through them.&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
Each tile code in both the foreground and background layer is an index into the tileset.  Since the foreground layer only uses one byte for each tile, it can only store tiles up to index 255.  The background layer&#039;s maximum of 65,535 is well within the 500 tiles in the tileset.&lt;br /&gt;
&lt;br /&gt;
Tile codes are simply indices into the map tileset.  A code of 0 is the first tile in the tileset, 1 is the second tile, and so on.  In the foreground layer, a code of 0 used for empty tiles and should not drawn.&lt;br /&gt;
&lt;br /&gt;
{{TODO|Confirm whether tile #0 should be drawn for the background layer}}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Malvineous|Malvineous]].  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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6770</id>
		<title>VGFM Save Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6770"/>
		<updated>2016-02-13T23:13:02Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Fix letter size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = World&lt;br /&gt;
 | Elements = Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In Vinyl Goddess From Mars you can save in both Map level and a regular level, but restoring a game saved inside a regular level makes you appear on the Map level, standing just before a marker of the level you saved in. The state of Map level (including gate keys and gates) as well as your position, score and health is saved. Six save positions are available.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file DATA.DAT stores 6 saved games, each one is 109 bytes long, making the total file size of 654 bytes.&lt;br /&gt;
&lt;br /&gt;
This is the data structure of one saved game entry:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|0||BYTE[24]||name||Name of saved game represented by zero-terminated indexes to the game&#039;s font (not ASCII, &#039;A&#039; = 0x1A). The game lets you type at most 21 characters, only capital letters or space.&lt;br /&gt;
|-&lt;br /&gt;
|24||UINT16LE||pixelX||X-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|26||UINT16LE||pixelY||Y-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|28||INT16LE||difficulty||-1 = easy, 0 = moderate, 1 = hard&lt;br /&gt;
|-&lt;br /&gt;
|30||UINT16LE||numKeys||Number of gate keys you carry&lt;br /&gt;
|-&lt;br /&gt;
|32||UINT16LE||??||Unknown, but has a meaningful value&lt;br /&gt;
|-&lt;br /&gt;
|34||UINT16LE||episode||0 = first episode&lt;br /&gt;
|-&lt;br /&gt;
|36||UINT16LE||health||9 = full health, 0 = one hit point&lt;br /&gt;
|-&lt;br /&gt;
|38||BOOL[27]||finishedLevels||Levels you finished, levels from the second episode start at index 9 and so on&lt;br /&gt;
|-&lt;br /&gt;
|65||BYTE[37]||??||Unknown, but confirmed that the status of gate keys and gates is stored inside this field&lt;br /&gt;
|-&lt;br /&gt;
|102||BYTE[7]||scoreDigits||Player&#039;s score, each decimal digit is stored separately, $FF means no digit, least significant digit at the first index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Hisymak|Hisymak]]. 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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6769</id>
		<title>VGFM Save Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VGFM_Save_Format&amp;diff=6769"/>
		<updated>2016-02-13T23:12:12Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = World&lt;br /&gt;
 | Elements = Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Vinyl Goddess from Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In Vinyl Goddess From Mars you can save in both Map level and a regular level, but restoring a game saved inside a regular level makes you appear on the Map level, standing just before a marker of the level you saved in. The state of Map level (including gate keys and gates) as well as your position, score and health is saved. Six save positions are available.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The file DATA.DAT stores 6 saved games, each one is 109 bytes long, making the total file size of 654 bytes.&lt;br /&gt;
&lt;br /&gt;
This is the data structure of one saved game entry:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Meaning!!Note&lt;br /&gt;
|-&lt;br /&gt;
|0||BYTE[24]||name||Name of saved game represented by zero-terminated indexes to the game&#039;s font (not ASCII, &#039;A&#039; = 0x1A). The game lets you type at most 21 characters, only capital letters or space.&lt;br /&gt;
|-&lt;br /&gt;
|24||UINT16LE||pixelX||X-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|26||UINT16LE||pixelY||Y-coordinate of player&#039;s position on Map level in pixels (1 tile = 16 pixels)&lt;br /&gt;
|-&lt;br /&gt;
|28||INT16LE||difficulty||-1 = easy, 0 = moderate, 1 = hard&lt;br /&gt;
|-&lt;br /&gt;
|30||UINT16LE||numKeys||Number of gate keys you carry&lt;br /&gt;
|-&lt;br /&gt;
|32||UINT16LE||??||Unknown, but has a meaningful value&lt;br /&gt;
|-&lt;br /&gt;
|34||UINT16LE||episode||0 = first episode&lt;br /&gt;
|-&lt;br /&gt;
|36||UINT16LE||health||9 = full health, 0 = one hit point&lt;br /&gt;
|-&lt;br /&gt;
|38||BOOL[27]||finishedLevels||Levels you finished, levels from the second episode start at index 9 and so on&lt;br /&gt;
|-&lt;br /&gt;
|65||BYTE[37]||??||Unknown, but confirmed that the status of gate keys and gates is stored inside this field&lt;br /&gt;
|-&lt;br /&gt;
|102||BYTE[7]||scoreDigits||Player&#039;s score, each decimal digit is stored separately, $FF means no digit, least significant digit at the first index&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:Hisymak|Hisymak]]. 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;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6767</id>
		<title>Vinyl Goddess From Mars</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6767"/>
		<updated>2016-02-13T22:29:16Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added VGFM Save Format reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Tilesets&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/vinyl.htm#extractor Vgfmext]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Extract&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.shikadi.net/utils/#vinyl2cmf Vinyl2CMF]&lt;br /&gt;
| Platform = Windows CLI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[VinylEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Cheats ==&lt;br /&gt;
&lt;br /&gt;
There is a trainer at [http://artscene.textfiles.com/intros/PC/1995/ textfiles.com] that provides some cheat ability, as the game does not appear to have any cheat codes at all.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bin&amp;lt;br/&amp;gt;*.scn&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.cmp&lt;br /&gt;
 | Format = [[VGFM Sprite Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Sprite images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = config.dat&lt;br /&gt;
 | Format = [[VGFM Config Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = data.dat&lt;br /&gt;
 | Format = [[VGFM Save Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Saved games&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.lbr&lt;br /&gt;
 | Format = [[LBR Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive file storing most of the game data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gra (except unlogic1.gra and *font.gra)&lt;br /&gt;
 | Format = [[VGFM Graphics Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.m&lt;br /&gt;
 | Format = [[VGFM Level Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Game maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mus&lt;br /&gt;
 | Format = [[VGFM Music Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = 8-bit [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tileset palettes&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[VGFM Raw Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for UI elements&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.scr&lt;br /&gt;
 | Format = [[VGFM Screen Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Some full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.snd&lt;br /&gt;
 | Format = 8-bit unsigned 8kHz PCM, no header&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tim&lt;br /&gt;
 | Format = [[VGFM Instrument Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Instrument data (timbres) for the background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tls&lt;br /&gt;
 | Format = [[VGFM Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for map tiles&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = unlogic1.gra&lt;br /&gt;
 | Format = 320&amp;amp;times;200 8bpp raw VGA image&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Union Logic logo (&amp;lt;tt&amp;gt;unlogic1.pal&amp;lt;/tt&amp;gt; is palette)&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:VinylEditor2.png&amp;diff=6766</id>
		<title>File:VinylEditor2.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:VinylEditor2.png&amp;diff=6766"/>
		<updated>2016-02-13T21:43:59Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:VinylEditor.png&amp;diff=6765</id>
		<title>File:VinylEditor.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:VinylEditor.png&amp;diff=6765"/>
		<updated>2016-02-13T21:43:30Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=VinylEditor&amp;diff=6764</id>
		<title>VinylEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=VinylEditor&amp;diff=6764"/>
		<updated>2016-02-13T21:42:44Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 2016-02-12 &amp;lt;!-- earliest release date --&amp;gt;&lt;br /&gt;
 | Download = To be added&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Vinyl Goddess From Mars}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VinylEditor&#039;&#039;&#039; is a level editor for [[Vinyl Goddess From Mars]] written by [[User:Hisymak|Hisymak]]. &lt;br /&gt;
&lt;br /&gt;
The editor is currently in work-in-progress state and not all editing features are complete yet. The editor can read/view almost all level data and can be used to modify existing levels. The feature list is almost same as of [[HocusEditor]], as this editor is based on it.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:VinylEditor2.png|Editing a level&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6763</id>
		<title>Vinyl Goddess From Mars</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Vinyl_Goddess_From_Mars&amp;diff=6763"/>
		<updated>2016-02-13T21:33:58Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added VinylEditor reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = No&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = No&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = No&lt;br /&gt;
 | Text = No&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Tilesets&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://sfprod.shikadi.net/old/games/vinyl.htm#extractor Vgfmext]&lt;br /&gt;
| Platform = DOS&lt;br /&gt;
| grp = Extract&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [http://www.shikadi.net/utils/#vinyl2cmf Vinyl2CMF]&lt;br /&gt;
| Platform = Windows CLI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = Convert&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[VinylEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
== Cheats ==&lt;br /&gt;
&lt;br /&gt;
There is a trainer at [http://artscene.textfiles.com/intros/PC/1995/ textfiles.com] that provides some cheat ability, as the game does not appear to have any cheat codes at all.&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.bin&amp;lt;br/&amp;gt;*.scn&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Exit text screens&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.cmp&lt;br /&gt;
 | Format = [[VGFM Sprite Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Sprite images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = config.dat&lt;br /&gt;
 | Format = [[VGFM Config Format]]&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = Game settings&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.lbr&lt;br /&gt;
 | Format = [[LBR Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive file storing most of the game data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.gra (except unlogic1.gra and *font.gra)&lt;br /&gt;
 | Format = [[VGFM Graphics Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.m&lt;br /&gt;
 | Format = [[VGFM Level Format]]&lt;br /&gt;
 | KnownFormat = Partial&lt;br /&gt;
 | Desc = Game maps&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mus&lt;br /&gt;
 | Format = [[VGFM Music Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = 8-bit [[VGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tileset palettes&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.raw&lt;br /&gt;
 | Format = [[VGFM Raw Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for UI elements&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.scr&lt;br /&gt;
 | Format = [[VGFM Screen Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Some full-screen images&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.snd&lt;br /&gt;
 | Format = 8-bit unsigned 8kHz PCM, no header&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tim&lt;br /&gt;
 | Format = [[VGFM Instrument Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Instrument data (timbres) for the background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tls&lt;br /&gt;
 | Format = [[VGFM Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Graphics for map tiles&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = unlogic1.gra&lt;br /&gt;
 | Format = 320&amp;amp;times;200 8bpp raw VGA image&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Union Logic logo (&amp;lt;tt&amp;gt;unlogic1.pal&amp;lt;/tt&amp;gt; is palette)&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus_Map_Format&amp;diff=6735</id>
		<title>Hocus Pocus Map Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus_Map_Format&amp;diff=6735"/>
		<updated>2015-12-30T19:38:10Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Updated some information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Map Infobox&lt;br /&gt;
 | Type = 2D tile-based&lt;br /&gt;
 | Layers = 4&lt;br /&gt;
 | Tile size = 16&amp;amp;times;16&lt;br /&gt;
 | Viewport = 320&amp;amp;times;160&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hocus Pocus]] maps consist of 13 individual files which will be referred to using the extensions .000 to .012 for convenience (as neither filenames nor extensions are stored in HOCUS.DAT). Each map uses four layers: a background layer, two foreground layers and an &amp;quot;event&amp;quot; layer containing enemies, treasures and such.  The background and foreground layers are 14400 bytes long, corresponding to a level sized 240x60 tiles. Maps are stored left-to-right, top-to-bottom. The event layer is 28800 bytes long, stored in the same way but with 2 bytes per tile.&lt;br /&gt;
&lt;br /&gt;
== File Formats ==&lt;br /&gt;
&lt;br /&gt;
=== *.000 (8 bytes) ===&lt;br /&gt;
&lt;br /&gt;
   0 UINT16LE iNull&lt;br /&gt;
   2 UINT16LE iPlayerX&lt;br /&gt;
   4 UINT16LE iPlayerY&lt;br /&gt;
   6 UINT16LE iShootDelay	The lower value, the more frequently enemies shoot projectiles (45 = standard value, 0 crashes game)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.001 (724 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This stores animation setings for the tileset. The file contains this 4-byte header:&lt;br /&gt;
&lt;br /&gt;
   0 UINT8 iBackgroundTile&lt;br /&gt;
   1 UINT8 iSwitchDownTile&lt;br /&gt;
   2 UINT8 iSwitchUpTile&lt;br /&gt;
   3 UINT8 iShootableTile&lt;br /&gt;
&lt;br /&gt;
The header is followed by 240 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TAnimData (3 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT8 iFirstIndex	&lt;br /&gt;
   1 UINT8 iLastIndex&lt;br /&gt;
   2 UINT8 iAnimType	0 = no animation, 1 = permanent animation, 2 = animation starts at random&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.002 (5040 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TMessageData (504 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iPosX&lt;br /&gt;
   2 UINT16LE iPosY&lt;br /&gt;
   4 CHAR[50] cLine0&lt;br /&gt;
  54 CHAR[50] cLine1&lt;br /&gt;
 104 CHAR[50] cLine2&lt;br /&gt;
 154 CHAR[50] cLine3&lt;br /&gt;
 204 CHAR[50] cLine4&lt;br /&gt;
 254 CHAR[50] cLine5&lt;br /&gt;
 304 CHAR[50] cLine6&lt;br /&gt;
 354 CHAR[50] cLine7&lt;br /&gt;
 404 CHAR[50] cLine8&lt;br /&gt;
 454 CHAR[50] cLine9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.003 (40 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file contains data for the teleporting potions. The file stores 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TTeleportCoordinates (4 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iStartOff		index into linear map layer data&lt;br /&gt;
   2 UINT16LE iEndOff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.004 (506 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 23 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TSwitchCoordinates (22 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iSwitchType	0 = remove tiles from map layer, 1 = fill with tiles from additional map layer&lt;br /&gt;
   2 UINT16LE iSwitchOff0	offset into background layer; $FFFF if unused&lt;br /&gt;
   4 UINT16LE iSwitchOff1&lt;br /&gt;
   6 UINT16LE iSwitchOff2&lt;br /&gt;
   8 UINT16LE iSwitchOff3&lt;br /&gt;
  10 BYTE     bDesiredTile0	this data must be in the background layer at the offset given above for the switch to be activated&lt;br /&gt;
  11 BYTE     bDesiredTile1&lt;br /&gt;
  12 BYTE     bDesiredTile2&lt;br /&gt;
  13 BYTE     bDesiredTile3&lt;br /&gt;
  14 UINT16LE iUpperLeftX&lt;br /&gt;
  16 UINT16LE iUpperLeftY&lt;br /&gt;
  18 UINT16LE iLowerRightX&lt;br /&gt;
  20 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.005 (300 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 25 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TToggleCoordinates (12 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iRequiredKey	always 0 in the original files, but the game does check this value and behave accordingly&lt;br /&gt;
   2 UINT16LE iRequiredTile&lt;br /&gt;
   4 UINT16LE iUpperLeftX&lt;br /&gt;
   6 UINT16LE iUpperLeftY&lt;br /&gt;
   8 UINT16LE iLowerRightX&lt;br /&gt;
  10 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
=== *.006 (300 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stores 25 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
 TToggleCoordinates (12 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE iRequiredKey	0 = no key required, 1 = silver key, 2 = gold key&lt;br /&gt;
   2 UINT16LE iRequiredTile	tile number in backgrund layer&lt;br /&gt;
   4 UINT16LE iUpperLeftX&lt;br /&gt;
   6 UINT16LE iUpperLeftY&lt;br /&gt;
   8 UINT16LE iLowerRightX&lt;br /&gt;
  10 UINT16LE iLowerRightY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.007 (240 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This contains 10 entries of the following structure:&lt;br /&gt;
&lt;br /&gt;
  0 UINT16LE iSpriteSet	$FFFF = unused entry. Used iSpriteSet values are: 0x04-0x15, 0x17-0x1C, 0x1E-0x27.&lt;br /&gt;
  2 UINT16LE iHealth	if this value plus the current difficulty setting is 20 or higher, enables boss health bar and kill-on-touch.&lt;br /&gt;
  4 UINT16LE iProjectileHSpeed&lt;br /&gt;
  6 UINT16LE iProjectileVSpeed&lt;br /&gt;
  8 UINT16LE iProjectileXOffset	Valid for vertical projectiles&lt;br /&gt;
 10 UINT16LE iTargetPlayer	If 1, vertical projectiles will move horizontally towards the player.&lt;br /&gt;
 12 UINT16LE iUnknown2&lt;br /&gt;
 14 UINT16LE iShootProjectiles	If 1, enemy will fire projectiles.&lt;br /&gt;
 16 UINT16LE iUnknown3&lt;br /&gt;
 18 UINT16LE iWobblyProjectiles	If 1, projectiles will have a wobbly motion.&lt;br /&gt;
 20 UINT16LE iUnknown4		Always 0&lt;br /&gt;
 22 UINT16LE iBehavior&lt;br /&gt;
&lt;br /&gt;
Valid iBehavior values are:&lt;br /&gt;
*0: Walk around, stop when shooting&lt;br /&gt;
*1: Walk around, dash towards player, don&#039;t stop when shooting&lt;br /&gt;
*2: Fly, facing one direction&lt;br /&gt;
*3: Fly, facing towards player&lt;br /&gt;
*4: Stand still, animated, firing rapidly (1st episode boss)&lt;br /&gt;
*5: Stand still, animated, firing normally (flower)&lt;br /&gt;
*6: 3, but faster (ghost)&lt;br /&gt;
*7: Bugged&lt;br /&gt;
*8: Dragon (3rd episode boss)&lt;br /&gt;
*99: Trolodon (4th episode boss)&lt;br /&gt;
&lt;br /&gt;
=== *.008 (8000 bytes) ===&lt;br /&gt;
&lt;br /&gt;
This file stored data required for spawning enemies. It consists of 250 entries of the following format:&lt;br /&gt;
&lt;br /&gt;
 TEnemyEntry (32 bytes):&lt;br /&gt;
 &lt;br /&gt;
   0 UINT16LE[8] iFlags		$FFFF = never spawn/unused entry; maybe designed to support multiple difficulty levels, but not used (0 = always spawn, 1 = spawn on medium/hard, 2 = spawn on hard)&lt;br /&gt;
  16 UINT16LE[8] iOffsets	index into info layer (info layer is an array of 16 bit values!) or $FFFF for unused slots&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== *.009 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Background Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop is visible), other values are tileset indices&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== *.010 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Map Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop or background layer are visible), other values are tileset indices&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== *.011 (14400 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Additional Map Layer (array of 240*60 BYTE values)&lt;br /&gt;
&lt;br /&gt;
$FF means blank space (backdrop or background layer are visible), other values are tileset indices&lt;br /&gt;
&lt;br /&gt;
This layer is almost identical to the main map layer but it is never used directly to draw the maps in the game. It contains all the blocks that will be pasted into the main map layer when a switch (type 1) or an &amp;quot;insert wall&amp;quot; trigger is activated in the game. This layer is NOT used when a switch or a trigger makes walls disappear. In those cases, the area in the main map layer is simply filled with non-tile values ($FF).&lt;br /&gt;
&lt;br /&gt;
=== *.012 (28800 bytes) ===&lt;br /&gt;
&lt;br /&gt;
Info/Event Layer (array of 240*60 UINT16LE values)&lt;br /&gt;
&lt;br /&gt;
A value of 30000 ($7530) indicates an empty cell, other values have the following meaning:&lt;br /&gt;
&lt;br /&gt;
 0000	red gem		(100)&lt;br /&gt;
 0001	grey gem	(250)&lt;br /&gt;
 0002	goblet		(500)&lt;br /&gt;
 0003	crown		(1000)&lt;br /&gt;
 0004	green potion	(healing)&lt;br /&gt;
 0005	magic crystal&lt;br /&gt;
 0006	spikes		(hazard)&lt;br /&gt;
 0007	zapper		(increase firepower)&lt;br /&gt;
 0008	-- UNUSED --	(invisibility)&lt;br /&gt;
 0009	golden potion	(jumping power)&lt;br /&gt;
 000A	white potion	(rapid fire)&lt;br /&gt;
 000B	-- UNUSED --&lt;br /&gt;
 000C	silver key&lt;br /&gt;
 000D	gold key&lt;br /&gt;
 000E	lava		(hazard)&lt;br /&gt;
 000F	wizard		(&amp;quot;hint&amp;quot; messages)&lt;br /&gt;
 0010	grey potion	(3 fireballs)&lt;br /&gt;
 &lt;br /&gt;
 0011-0016	-- UNUSED --&lt;br /&gt;
 &lt;br /&gt;
 0017-001D	teleport tags&lt;br /&gt;
 001E-0020	-- UNUSED -- (teleport tags)&lt;br /&gt;
 &lt;br /&gt;
 0021-0031	switches&lt;br /&gt;
 0032-0037	-- UNUSED -- (switches)&lt;br /&gt;
 &lt;br /&gt;
 0038-003A	trigger: insert wall&lt;br /&gt;
 003B-0050	-- UNUSED -- (trigger: insert wall)&lt;br /&gt;
 &lt;br /&gt;
 0051-0058	trigger: remove wall&lt;br /&gt;
 0059-0069	-- UNUSED -- (trigger: remove wall)&lt;br /&gt;
 &lt;br /&gt;
 006A-006E	enemies&lt;br /&gt;
 006F-0073	-- UNUSED -- (enemies?)&lt;br /&gt;
 &lt;br /&gt;
 0074-008C	trigger: enemies&lt;br /&gt;
 008D-016D	-- UNUSED -- (trigger: enemies)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tile mapping ==&lt;br /&gt;
&lt;br /&gt;
The background and foreground layers each store one byte per tile.  This is a direct index into the tileset, with the value 0xFF being used as &#039;no tile&#039; (to see through to the layer below, or in the case of the background layer, to the backdrop image.)&lt;br /&gt;
&lt;br /&gt;
Levels 1 and 2 use the first tileset image in the DAT file, Levels 3 and 4 use the second and levels 5 and 6 use the third tileset image. The last three levels of each episode use the same tileset, which will be the fourth tileset file for Episode 1. The same pattern is repeated for episodes 2 to 4 of the registered version, using tileset images 5 to 16. The same scheme is used for the backdrop images, which are the 4 PCX files (or 16 for the registered version) located directly before the 4 (or 16) PCX files containing the tileset images.&lt;br /&gt;
&lt;br /&gt;
The mapping can be calculated using the following formula (assuming &amp;lt;tt&amp;gt;Episode&amp;lt;/tt&amp;gt; ranges from 0 to 3 and &amp;lt;tt&amp;gt;Level&amp;lt;/tt&amp;gt; ranges from 0 to 8):&lt;br /&gt;
&lt;br /&gt;
 TilesetNumber  = FirstTilesetNumber  + 4*Episode + MIN(Level/2, 3)&lt;br /&gt;
 BackdropNumber = FirstBackdropNumber + 4*Episode + MIN(Level/2, 3)&lt;br /&gt;
&lt;br /&gt;
The tilesets are in PCX format, as a 320&amp;amp;times;200 image made up of 16&amp;amp;times;16 images.  Tile 0 is at (0,0) and tile 1 is at (16,0) for example.&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6734</id>
		<title>HocusEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6734"/>
		<updated>2015-12-30T19:01:28Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Add version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 26.12.2015 (v1.0)&lt;br /&gt;
 | Download = [http://www.shikadi.net/wiki/files/moddingwiki/tools/hocus/HocusEditor_v1.0.zip Download]&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HocusEditor&#039;&#039;&#039; is a level editor for [[Hocus Pocus]] written by [[User:Hisymak|Hisymak]].&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Open/save maps directly from/to HOCUS.DAT file or an external map file&lt;br /&gt;
* Read tilesets directly from HOCUS.DAT&lt;br /&gt;
* Advanced map editing possibilities, allowing you make maps more easily and fast:&lt;br /&gt;
** Three editing modes: Basic Tile mode, Pattern mode and Block mode &lt;br /&gt;
** Predefined Pattern and Block presets for each tileset, ability to add your own presets&lt;br /&gt;
** Undo&amp;amp;Redo feature&lt;br /&gt;
** Copy&amp;amp;Paste feature (works also between different maps)&lt;br /&gt;
** Fill area feature&lt;br /&gt;
** Auto-place window edges feature&lt;br /&gt;
** Shift map feature&lt;br /&gt;
* Full support for editing all special objects and events (teleports, monsters, switches, locks...)&lt;br /&gt;
* Support for editing animation and monster data&lt;br /&gt;
* Show/hide specific map layers, show grid feature&lt;br /&gt;
* Minimap feature (providing schematic overview of all map)&lt;br /&gt;
* Save map image feature&lt;br /&gt;
* Simple statistics (number of crystals, healing potions, points etc. in a map)&lt;br /&gt;
* Test map feature (map is saved, game is launched in Dosbox, tested level is &amp;quot;saved&amp;quot; on the first savegame slot)&lt;br /&gt;
* Many keyboard shortcuts, pattern/block presets can be quickly selected with keys (1,2,3,4,5,...,Q,W,E,R,T,...)&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor2.png&amp;diff=6733</id>
		<title>File:HocusEditor2.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor2.png&amp;diff=6733"/>
		<updated>2015-12-30T18:52:37Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: HocusEditor screenshot (2)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HocusEditor screenshot (2)&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor.png&amp;diff=6732</id>
		<title>File:HocusEditor.png</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=File:HocusEditor.png&amp;diff=6732"/>
		<updated>2015-12-30T18:46:09Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: HocusEditor screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HocusEditor screenshot&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6731</id>
		<title>HocusEditor</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=HocusEditor&amp;diff=6731"/>
		<updated>2015-12-30T18:44:16Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tool Infobox&lt;br /&gt;
 | Platform = Windows&lt;br /&gt;
 | Release = 12/26/2015&lt;br /&gt;
 | Download = [http://www.shikadi.net/wiki/files/moddingwiki/tools/hocus/HocusEditor_v1.0.zip Download]&lt;br /&gt;
 | Edit1 = Map&lt;br /&gt;
 | Games = &lt;br /&gt;
   {{Game|Hocus Pocus}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HocusEditor&#039;&#039;&#039; is a level editor for [[Hocus Pocus]] written by [[User:Hisymak|Hisymak]].&lt;br /&gt;
&lt;br /&gt;
== Feature list ==&lt;br /&gt;
* Open/save maps directly from/to HOCUS.DAT file or an external map file&lt;br /&gt;
* Read tilesets directly from HOCUS.DAT&lt;br /&gt;
* Advanced map editing possibilities, allowing you make maps more easily and fast:&lt;br /&gt;
** Three editing modes: Basic Tile mode, Pattern mode and Block mode &lt;br /&gt;
** Predefined Pattern and Block presets for each tileset, ability to add your own presets&lt;br /&gt;
** Undo&amp;amp;Redo feature&lt;br /&gt;
** Copy&amp;amp;Paste feature (works also between different maps)&lt;br /&gt;
** Fill area feature&lt;br /&gt;
** Auto-place window edges feature&lt;br /&gt;
** Shift map feature&lt;br /&gt;
* Full support for editing all special objects and events (teleports, monsters, switches, locks...)&lt;br /&gt;
* Support for editing animation and monster data&lt;br /&gt;
* Show/hide specific map layers, show grid feature&lt;br /&gt;
* Minimap feature (providing schematic overview of all map)&lt;br /&gt;
* Save map image feature&lt;br /&gt;
* Simple statistics (number of crystals, healing potions, points etc. in a map)&lt;br /&gt;
* Test map feature (map is saved, game is launched in Dosbox, tested level is &amp;quot;saved&amp;quot; on the first savegame slot)&lt;br /&gt;
* Many keyboard shortcuts, pattern/block presets can be quickly selected with keys (1,2,3,4,5,...,Q,W,E,R,T,...)&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=User:Hisymak&amp;diff=6730</id>
		<title>User:Hisymak</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=User:Hisymak&amp;diff=6730"/>
		<updated>2015-12-30T18:43:31Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have created HocusEditor, a level editor for Hocus Pocus, using the information on this Wiki.&lt;br /&gt;
I want to contribute with anything I will possibly find out about this game.&lt;br /&gt;
I am looking forward to see any mods and level packs made with my editor.&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=6729</id>
		<title>Hocus Pocus</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Hocus_Pocus&amp;diff=6729"/>
		<updated>2015-12-30T18:28:01Z</updated>

		<summary type="html">&lt;p&gt;Hisymak: Added HocusEditor reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Edit&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = No&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Hocus Pocus]] is a VGA platform game.  The levels are notable for having some technical complexity, as tiles can be added and removed from maps in response to player actions.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusSharp]]&lt;br /&gt;
| Platform = Microsoft .NET Framework&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Some&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = Edit&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = Read&lt;br /&gt;
| map = No&lt;br /&gt;
| gfx = Read&lt;br /&gt;
| mus = Read&lt;br /&gt;
| sfx = Read&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[HocusEditor]]&lt;br /&gt;
| Platform = Windows GUI&lt;br /&gt;
| grp = No&lt;br /&gt;
| map = Edit&lt;br /&gt;
| gfx = No&lt;br /&gt;
| mus = No&lt;br /&gt;
| sfx = No&lt;br /&gt;
| txt = No&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
== File formats ==&lt;br /&gt;
&lt;br /&gt;
This section lists the file formats used in the game.&lt;br /&gt;
&lt;br /&gt;
=== Standalone files ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! File name !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Group file storing most of the game data in [[DAT Format (Hocus Pocus)|DAT Format]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;*.sav&amp;lt;/tt&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #CCFFCC;&amp;quot; | Saved games in [[SAV Format (Hocus Pocus)|SAV Format]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Files inside hocus.dat ===&lt;br /&gt;
&lt;br /&gt;
The files stored inside &amp;lt;tt&amp;gt;hocus.dat&amp;lt;/tt&amp;gt; have no filenames.  See the [[DAT Format (Hocus Pocus)|DAT Format]] page for a list of which files are which.  The formats used are:&lt;br /&gt;
&lt;br /&gt;
* File #0 is a 1bpp (monochrome) 8&amp;amp;times;720 image, containing 90 8&amp;amp;times;8 glyphs used as the main game font&lt;br /&gt;
* [[Hocus Pocus Map Format]] - game levels&lt;br /&gt;
* [[MID Format]] - MIDIs are used for game music&lt;br /&gt;
* [[B800 Text]] - text screen shown at exit&lt;br /&gt;
* [[PCX Format]] - used for game graphics and map tiles&lt;br /&gt;
* [[Hocus Pocus Palette Format]] - used to store game palettes&lt;br /&gt;
* [[Hocus Pocus Image Format]] - used for game graphics that are not 320 &amp;amp;times; 200&lt;br /&gt;
* [[Hocus Pocus Sprite Format]] - used for sprites&lt;br /&gt;
* [[Hocus Pocus Text Format]] - used for story texts and ordering info&lt;br /&gt;
* [[Hocus Pocus Demo Format]] - used to store demo macros&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>Hisymak</name></author>
	</entry>
</feed>