A command-line tool for managing PAK and WAD files from QuakeI/II & Hexen II
Switch branches/tags
Nothing to show
Clone or download
Anton Leontiev
Anton Leontiev qpakman v0.67
Latest commit d8a0014 Apr 6, 2015
Permalink
Failed to load latest commit information.
CMakeLists.txt Use CMake instead of plain Makefiles Apr 8, 2015
LICENSE Move GPL.txt to LICENSE Apr 8, 2015
README Move qpakman.txt to README Apr 8, 2015
TODO Move TODO.txt to TODO Apr 8, 2015
arc_spec.cc Update to v0.66 from Bazaar repository Apr 8, 2015
arc_spec.h Update to v0.66 from Bazaar repository Apr 8, 2015
archive.cc Update to v0.66 from Bazaar repository Apr 8, 2015
archive.h Initial import of qpakman v0.62b Apr 8, 2015
headers.h Initial import of qpakman v0.62b Apr 8, 2015
im_color.cc Update to v0.66 from Bazaar repository Apr 8, 2015
im_color.h Initial import of qpakman v0.62b Apr 8, 2015
im_gen.cc Update to v0.66 from Bazaar repository Apr 8, 2015
im_gen.h Update to v0.66 from Bazaar repository Apr 8, 2015
im_image.cc Initial import of qpakman v0.62b Apr 8, 2015
im_image.h Initial import of qpakman v0.62b Apr 8, 2015
im_mip.cc Update to v0.66 from Bazaar repository Apr 8, 2015
im_mip.h Update to v0.66 from Bazaar repository Apr 8, 2015
im_png.cc Add libpng 1.6.x support Apr 8, 2015
im_png.h Initial import of qpakman v0.62b Apr 8, 2015
im_tex.cc Initial import of qpakman v0.62b Apr 8, 2015
im_tex.h Initial import of qpakman v0.62b Apr 8, 2015
main.cc qpakman v0.67 Apr 8, 2015
main.h Update to v0.66 from Bazaar repository Apr 8, 2015
pakfile.cc Initial import of qpakman v0.62b Apr 8, 2015
pakfile.h Initial import of qpakman v0.62b Apr 8, 2015
q1_structs.h Initial import of qpakman v0.62b Apr 8, 2015
u_assert.cc Initial import of qpakman v0.62b Apr 8, 2015
u_assert.h Initial import of qpakman v0.62b Apr 8, 2015
u_endian.h Initial import of qpakman v0.62b Apr 8, 2015
u_file.cc Initial import of qpakman v0.62b Apr 8, 2015
u_file.h Initial import of qpakman v0.62b Apr 8, 2015
u_macro.h Initial import of qpakman v0.62b Apr 8, 2015
u_type.h Initial import of qpakman v0.62b Apr 8, 2015
u_util.cc Fix include in u_util.h Apr 8, 2015
u_util.h Initial import of qpakman v0.62b Apr 8, 2015

README

QPakMan 0.66 README
===================

by Andrew Apted.  October 2008


INTRODUCTION
------------

QPakMan is a command-line (text only) program for managing the
PAK and WAD files used by the games Quake, Quake II and Hexen II.


COMMON TASKS
============

1. Listing the contents of PAK and WAD files:

   qpakman -list pak1.pak
   qpakman -list gfx.wad

Shows all the lumps contained in the PAK or WAD file.  The
first big number (prefixed by +) is the offset of the lump
(in hexadecimal) and the second number is the lump size.

In the WAD format there is a type letter for each lump,
shown after the size and before the name.  Here is a list
of all the types (only 'M' and 'P' are common) :

      M  :  Miptex texture
      P  :  PIC image
      x  :  unknown / invalid

      C  :  Color palette
      L  :  Label
      S  :  Sound
      T  :  QTex


2. Unpacking a PAK file:

   qpakman -extract pak0.pak

The entire contents of the PAK file are extracted into the
current folder.  If a file already exists, it will NOT be
overwritten (unless the -force option is given).

Certain files (such as Quake LMP files, Quake II WAL files)
will be converted to PNG image format during unpack.  This
can be suppressed with the -raw option.


3. Creating a PAK file:

   qpakman FILES.... -o dest.pak

All the specified files are stored in a newly created PAK file.
Folders can be given and their contents are recursively added
to the PAK.

Certain files will be converted from PNG format to a custom
format during the packing process.  In particular, files in
the "gfx/" folder are converted to LMP (Quake and Hexen II
only), and files in the "textures/" folder are converted to
WAL format (Quake II only).  The -raw option prevents this.

[[TODO: palette.lmp & fontsize.lmp]]


4. Unpacking a WAD file:

   qpakman -extract textures.wad

The whole contents of the WAD file are extracted as PNG images
into the current folder.  If a file already exists, it will NOT
be overwritten (unless the -force option is present).

Certain Quake texture names begin with a symbol which is not
suitable in filenames, e.g. "*lava" or "+2shoot".  Therefore
QPakMan will convert them to a prefix (four letters and '_')
while unpacking, and reconvert to a symbol while packing, as
per the following table:

      *   star_
      +   plus_
      -   minu_
      /   divd_

There are also textures which contain "full bright" pixels,
palette colors in the range 224-255 which are never drawn
darker (e.g. in shadows).  To support this feature, QPakMan
saves textures containing full bright pixels with a "_fbr"
suffix (for example "tlight03_fbr.png"), and will only use
full bright pixels while packing if that suffix is present.


5. Creating a textures WAD:

   qpakman IMAGES... -o textures.wad

All the specified images are converted to MIPTEX (Quake's
texture format) and stored in a newly created WAD file.
Currently the input images must be in PNG format.

See the notes above about filename conventions.


6. Creating the GFX.WAD file:

   qpakman IMAGES... -o GFX.WAD

This stores the images as PIC format in a newly created
file called "GFX.WAD" (upper or lower case does not matter).
If you want to use a different output name, the -pic option
must also be given to enable conversion to PIC format.

Conversion to PIC format uses all colors in the palette
(no special treatment of full bright pixels).


7. Making a texture wad for editing:

   qpakman -maketex *.pak -o textures.wad

This creates a texture WAD which a quake editor (like Quark
or GTKradiant) needs to work properly.  You need to specify
the PAK files for the full game (Quake I or Hexen II).  It
can also process individual BSP files.


COMMON OPTIONS
==============

Options have a short form (like -g) and a long form (-game),
it doesn't matter which one you use.  Some options take a
value or keyword after them, which must be separated from the
option by a space (like: -game hexen2).


-g -game  XXX    This specifies which game the PAK or WAD
                 is for.  It sets the default palette and
                 might affect how lumps are converted.

                 Usable keywords are:
                    q1   quake1   h2   hexen2
                    q2   quake2   hak  haktoria

-c -colors  XXX  Lets you load a different palette than
                 the default one (even when -game is used).

                 Must be followed by a filename for the
                 palette.  It can be either raw format
                 (768 bytes) or text format (768 numbers).

-f -force        Forces extracted files to overwrite any
                 existing file with the same name.  Normally
                 QPakMan will not overwrite existing files
                 when extracting from a PAK or WAD.

-r -raw          Prevents conversion of lumps (especially
                 from/to PNG images) while packing or
                 unpacking a PAK file.

-p -pic          When creating a WAD, stores the images in
                 Quake PIC format instead of MIPTEX format.

                 NOTE: this option is automatically enabled
                 when the output file is called "gfx.wad"
                 (or "GFX.WAD", case is not significant).

                 NOTE 2: the CONCHARS and TINYFONT lumps
                 are special, and are always created as a
                 raw blocks of pixels.


LESS COMMON TASKS
=================

1. Creating an inverse palette lump for Hexen II:

   qpakman -game h2 -o invpal.lmp


2. Creating an inverse palette lump for Quake II:

   qpakman -game q2 -o 16to8.dat


3. Making the tint tables for Hexen II:

   qpakman -game h2 -o tinttab.lmp
   qpakman -game h2 -o tinttab2.lmp


COPYRIGHT and LICENSE
---------------------

Copyright (C) 2008  Andrew Apted

QPakMan is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.

QPakMan is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.


CONTACT DETAILS
---------------

Email: <ajapted@gmail.com>

Forum: http://openarena.ws/board/index.php?topic=1710.0