What is it
----------

This is version 0.4.1 of XmPak, a Motif-based Quake PAK file browser.
It reads a Quake .pak file and displays a tree of the various
objects in the .pak. You can do interesting things with some of
the objects, like play the sounds and view the models.

Author
------

Written by Greg Banks (gnb@preston.net) in his very sparse spare time.

Acknowledgements
----------------

Thanks to ID Software for writing such a great game, and
even more for making it so open. Thanks to Krist Paquay
for knowing so much about X and creating Xit. Thanks to
Mitch Davis for showing me how wonderful Linux is. Thanks
to Glenn Trigg and Shane Arnott for beta testing XmPak.

System Requirements
-------------------

An ELF Linux with X-Windows. I use Linux 1.2.11 from a Slackware
distribution, with XFree386 3.12d. You don't need Motif dynamic
libraries, XmPak is statically linked against Motif.

If you don't know what Linux is, please don't waste my time
e-mailing me to ask. There are plenty of newsgroups, books, 
websites etc to teach you all about it. XMPAK DOES NOT RUN
UNDER MICROSOFT WINDOWS (TM).

If you want to play sound files, you also need to have an
executable in your $PATH called `play' which takes on the
commandline a filename of a .wav file to play. I use the
Lsox package for this (see your favourite Linux repository).
See below for how to a different program.

To install
----------

 1. Copy the executables into your binary directory.

 Or just run the lot from the current directory.

If you had XmPak 0.3.1 or earlier
---------------------------------

  The older versions of XmPak required the presence of XmPak.ad,
50_foreground and *.xpm. These are now compiled into the executable
and do *not* need to be installed at runtime. If you don't plan to
use the older XmPak (and why would you?) you may delete those files 
from their installation directories.

Usage
-----

  xmpak [--owncmap] [--gamma n] [pakfile...]

XmPak reads one or more pakfiles and displays the objects
within them in a tree, whose "directories" can be expanded
and collapsed.  Individual objects can be extracted to files,
which is placed in the directory `out'. Objects can also
be opened, which has the following meanings:

  - .wav (Sound files)
    are played. The program used to play these files can be
    controlled with the X resource "?.openCommand_WAV". In
    the value of this resource, the substring `%s' is replaced
    with a filename. The default play command is "play %s".

  - .qc (Quake-C source)
  - .rc (Resources file)
  - .cfg (Config file)
    are displayed in a text window.

  - .mdl (Alias Model)
    are displayed in a separate display window. The models can
    be displayed wireframe or textured, and rotated panned and
    zoomed in 3D. You can display any frame or skin in the .mdl.
    You can export the current frame as a .raw triangle file, and
    the current skin as a .ppm file. Both v3 (qtest1) and v6
    (shareware) .mdl formats are understood.

  - .md2 (Quake2 Model)
    are displayed in a separate display window like .mdl's.

  - .lmp (Lump Graphics)
    Flat graphics lumps (lumps can also be colour palettes and
    suchlike) are displayed in a separate display window. You
    can export them as a .ppm file.

  - .pcx (PCX image)
    are displayed in a separate display window like .lmp's.

  - .spr (Sprite)
    are displayed in a separate display window. You can export
    the current frame as a .ppm file.

  - .bsp (Level map)
    are displayed in a separate display window as wireframe outlines.
    The textures and entities in the map can be accessed through
    separate windows.

  - .wad (WAD)
    have their contents (mainly .lmp files) expanded in the tree so
    you can click on them.

  - directories
    are expanded if currently collapsed and vice versa.

  - all others are ignored.

The options are:

  --owncmap
    use a private colourmap. This improves the display of
    model files if you don't have many colourmap cells left.
    XmPak won't start unless it found at least 25 colours.

  --gamma n
    Set the gamma correction factor to a number between 0.1
    and 2.3. I use 1.7 for viewing models.

The default pakfile name is id1/pak0.pak, so you can easily
run XmPak from your Quake directory.

  unpak [pakfile [basedir]]

Unpak extracts all the files in the pakfile into a directory
tree rooted at basedir. For instance, if basedir is /my/dir
the object progs/player.mdl will be exported as the file
/my/dir/progs/player.mdl. The default pakfile is `id1/pak0.pak'
and the default basedir is `out'.

  pakls [pakfile]

Pakls lists the names, sizes, and offsets of all the objects
in the pakfile. The default pakfile is `id1/pak0.pak'.

Changes since 0.4
-----------------

(version 0.4 was never released. I was going to get around
to it...really).

x  Reads and displays .PCX files.

x  Displays .MD2 files texture mapped.

Changes since 0.3.2
-------------------

(version 0.3.2 was never released. I was going to get around
to it...really).

x  Reads and displays .WAD files by making their contents
   appear as separate entries in the tree window.

x  Reads any of directories, WAD files or PAK files at the
   top level of the tree window.

x  Reads and displays Quake 2 .MD2 files (geometry only).

x  Ported to Sun and SGI.  Maybe one day I'll build distributions
   for those platforms.  Also ported to OpenGL; I may release
   an OpenGL version if someone with hardware acceleration (e.g.
   a Voodoo-based card) wants it.


Changes since 0.3.1
-------------------

x  Reads and displays .BSP level maps. Geometry is displayed as
   wireframe in orthogonal projection. List of all textures in
   separate window. List of all entities in separate window.

x  Main tree view has better use of pixmaps.

x  Main tree view now provides details about each PAK entry.

x  Pixmaps and app-default file are now compiled into the executable.

x  The bug which required the 50_foreground file to be present has
   been fixed.

x  Graphics speed for display of .MDLs has been improved. XmPak now
   uses the X Shared Memory extension if present in the server and
   the server is local.

x  XmPak should now support any visual, not just 8 bit PseudoColor.
   There is optimised special code for 8 bit PseudoColor and 16 bit
   TrueColor, and a generic case which handles everything else.

x  Various other minor bug fixes and internal improvements.

Bugs
----

x  There is no "busy" indication, which can make a difference
   when reading some of the very large .mdl files.

x  There are some bugs with keyboard traversal of menus in the
   .mdl display window.

Future work
-----------

x  Being able to choose a new .PAK file without restarting

x  Confirmation on Extract command

x  Help

x  A manpage

x  Handling frame groups and skin groups in .mdl files.

x  Being able to `open' more types of files.

x  Improving the colour allocation algorithm to give
   better results when colours are running low. Currently
   you need a *lot* (like 200) of colours free to see e.g.
   the green armour in its correct colours.

Legal Guff
----------

No restrictions are placed on use of this program. The source
remains copyright (c) 1996-1997 Greg Banks except for some
proprietary libraries. This program 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.

Greg.
Thu Nov 20 01:27:07 GMT 1997