<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=88.104.13.6</id>
	<title>FreeSpace Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=88.104.13.6"/>
	<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php/Special:Contributions/88.104.13.6"/>
	<updated>2026-11-15T14:06:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=*.VP&amp;diff=1684</id>
		<title>*.VP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=*.VP&amp;diff=1684"/>
		<updated>2005-11-10T23:58:32Z</updated>

		<summary type="html">&lt;p&gt;88.104.13.6: Minor spelling error,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VP files are a packaging file format, used to package multiple files into a single file, while maintaining directory structure. They do not use any sort of compression.&lt;br /&gt;
&lt;br /&gt;
== Viewers ==&lt;br /&gt;
&lt;br /&gt;
On Win32, the most popular VP viewer is VPView32. However, almost all the editors can also be used to extract files from VPs.&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
&lt;br /&gt;
As of this writing, there are a few different editors.&lt;br /&gt;
&lt;br /&gt;
=== VPCS ===&lt;br /&gt;
&lt;br /&gt;
Features an explorer-like interface, and is fairly easy to use to create or modify VPs.&lt;br /&gt;
&lt;br /&gt;
=== QuickVP ===&lt;br /&gt;
&lt;br /&gt;
Features a Winzip-like interface, is very easy to use to create, modify, and extract files and directories to/from VPs.&lt;br /&gt;
&lt;br /&gt;
=== VPMage ===&lt;br /&gt;
&lt;br /&gt;
Somewhat more difficult to use than VPCS or QuickVP, but also adds the ability to merge VP files, update files already in a VP, and edit files already in a VP.&lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
&lt;br /&gt;
VP files are made up of three main components; the header, followed by the individual files, and finally the index for the entires.&lt;br /&gt;
&lt;br /&gt;
=== The Header ===&lt;br /&gt;
&lt;br /&gt;
 char header[4]; //Always &amp;quot;VPVP&amp;quot;&lt;br /&gt;
 int version;    //As of this version, still 2.&lt;br /&gt;
 int diroffset;  //Offset to the file index&lt;br /&gt;
 int direntries; //Number of entries&lt;br /&gt;
&lt;br /&gt;
=== The files ===&lt;br /&gt;
&lt;br /&gt;
Files are simply stored in the VP, one right after the other. No spacing or null termination is necessary&lt;br /&gt;
&lt;br /&gt;
=== The index ===&lt;br /&gt;
&lt;br /&gt;
The index is a series of &amp;quot;direntries&amp;quot;; each directory has the structure, as seen below.&lt;br /&gt;
 int offset; //Offset of the file data for this entry.&lt;br /&gt;
 int size; //Size of the file data for this entry&lt;br /&gt;
 char name[32]; //Null-terminated filename, directory name, or &amp;quot;..&amp;quot; for backdir&lt;br /&gt;
 int timestamp; //Time the file was last modified, in unix time.&lt;br /&gt;
 &lt;br /&gt;
Each direntry may be a directory, a file, or a backdir. A directory entry signifies the start of a directory, and has the name entry set to the name of the directory; a backdir has the name of &amp;quot;..&amp;quot;, and represents the end of a directory.&lt;br /&gt;
&lt;br /&gt;
Because there is no type descriptor inherent to the format, directories and backdirs are identified by the &amp;quot;offset&amp;quot;, &amp;quot;size&amp;quot;, and &amp;quot;timestamp&amp;quot; entries being set to 0.&lt;br /&gt;
&lt;br /&gt;
All valid VP files should start with the &amp;quot;data&amp;quot; directory as the toplevel.&lt;br /&gt;
&lt;br /&gt;
Note that it isn&#039;t necessary at all to add backdirs at the end of a VP file.&lt;br /&gt;
&lt;br /&gt;
== Thanks ==&lt;br /&gt;
&lt;br /&gt;
To [http://www.descent-freespace.com/ddn/specs/vp/ Descent Network], for getting file structure information before anyone else.&lt;/div&gt;</summary>
		<author><name>88.104.13.6</name></author>
	</entry>
</feed>