Library and command line utilities for examining and editing archive/group files used by DOS games
C++ M4 Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
examples
include
m4
src
tests
win32
.gitignore
.travis.yml
BUGS
COPYING
Makefile.am
README.md
appveyor.yml
autogen.sh
configure.ac
libgamearchive.pc.in

README.md

Camoto: Classic-game Modding Tools

Copyright 2010-2016 Adam Nielsen <malvineous@shikadi.net>
http://www.shikadi.net/camoto/
Linux/OSX: Build Status

Camoto is a collection of utilities for editing (modding) "classic" PC games - those running under MS-DOS from the 1980s and 1990s.

This is libgamearchive, one component of the Camoto suite. libgamearchive is a library that provides access to different "archive" files used by games to store all their data files. Just like a .zip file, many games squash all their data into one big file, and this library provides access to it. It currently supports full editing, so files can be extracted, replaced, added and removed from supported archive formats.

File formats from the following games have been implemented:

  • Alien Breed Tower Assault (.epf)
  • Arcade Pool (.epf)
  • Asterix & Obelix (.epf)
  • BlackThorne (.dat)
  • Blood (.rff)
  • Cosmo's Cosmic Adventures (.vol, .stn)
  • Crystal Caves (.exe)
  • Dangerous Dave (.exe)
  • Dark Ages (file05.da[123])
  • Death Rally (.bpa)
  • Descent (.hog)
  • Doofus (.g-d)
  • Doom (.wad)
  • Duke Nukem II (.cmp)
  • Duke Nukem 3D (.grp, .rts)
  • Galactix (.glb)
  • Gateworld (*data.gw[123])
  • God of Thunder (.dat) [no decompression yet]
  • Halloween Harry (.bnk, harry.-0)
  • Highway Hunter (.dat)
  • Heretic (.wad)
  • Hexen (.wad)
  • Hocus Pocus (.dat)
  • Hugo II: Whodunit? and Hugo III: Jungle of Doom! (.dat)
  • Incredible Machine, The (resource.*)
  • In Search of Dr. Riptide (.dat)
  • Jungle Book, The (.epf)
  • Lion King, The (.epf)
  • Lost Vikings (.dat)
  • Major Stryker (.ms[123])
  • Monster Bash (.dat)
  • Mystic Towers (.dat)
  • Overdrive (.epf)
  • Prehistorik (.cur, .vga)
  • Project X (.epf)
  • Raptor (.glb)
  • Rise of the Triad (.wad, .rts)
  • Redneck Rampage (.grp, .rts)
  • Sango Fighter (.dat, .pcm, and many others)
  • Sensible Golf (.epf)
  • Sherlock Holmes, The Lost Files of (.lib)
  • SkyRoads (.lzs)
  • Shadow Warrior (.grp, .rts)
  • Spirou (.epf)
  • Stargunner (.dlt)
  • Stellar 7 (.res)
  • Terminal Velocity (.pod)
  • Tin Tin in Tibet (.epf)
  • Universe (.epf)
  • Vinyl Goddess From Mars (.lbr)
  • Wacky Wheels (.dat)
  • WarCraft: Orcs & Humans (.dat)
  • Word Rescue (.1)
  • Zool (.dat) [no decompression yet]

Many more formats are planned. The library also implements the following compression/encryption algorithms used by these games:

  • Alien Breed Tower Assault (decompress only)
  • Arcade Pool (decompress only)
  • Blood
  • Dangerous Dave
  • God of Thunder
  • Lion King, The (decompress only)
  • Monster Bash (decompress only)
  • Overdrive (decompress only)
  • Prehistorik
  • Project X (decompress only)
  • Raptor
  • Secret Agent
  • Sensible Golf (decompress only)
  • SkyRoads
  • Smurfs, The (decompress only)
  • Spirou (decompress only)
  • Stargunner (decompress only, game works with uncompressed files)
  • Stellar 7 (decompress only)
  • Tin Tin in Tibet (decompress only)
  • Universe (decompress only)
  • Zone 66

The library is compiled and installed in the usual way:

./autogen.sh          # Only if compiling from git
./configure && make
make check            # Optional, compile and run tests
sudo make install
sudo ldconfig

You will need the following prerequisites already installed:

  • libgamecommon >= 2.0
  • Boost >= 1.59 (Boost >= 1.46 will work if not using make check)
  • xmlto (optional for tarball releases, required for git version and if manpages are to be changed)

This distribution includes an example program gamearch which serves as both a command-line interface to the library as well as an example of how to use the library. This program is installed as part of the make install process. See man gamearch for full details.

A second example gamecomp is also included which provides command line access to the compression algorithms implemented in the library. Although gamearch will automatically decompress files on extraction, gamecomp can be used to decompress files that are not contained within an archive (such as the Zone 66 data files.)

All supported file formats are fully documented on the ModdingWiki.

If you'd like to contribute (please do!) there is a tutorial about how to add a new file format to the library.

This library is released under the GPLv3 license.