Quake Editing Utilities v0.2 by Raphael Quinet - 03 Mar 1996 ------------------------------------------------------------ NOTE: NO BINARIES ARE INCLUDED IN THIS PACKAGE! I don't have a PC for the moment and I do all my development on a UNIX machine. Most of you would not be able to use Solaris binaries, so this only contains the source code for the programs I'm developing. If you don't have a C compiler, this will probably be useless for you. This package contains a few tools that can help you to edit Quake files. More exactly, they will allow you to extract some resources from the PAK, WAD2 or BSP files and examine them. There is no real editor yet, because I don't have enough information about the BSP file structure. I decided to release this source code in order to share information about Quake file structures and to speed up the development of third-party utilities. Of course, I hope that you will help me writing a good editor for Quake rather than starting your own independent project. But even if you choose to do everything on your own, the information contained in these files should be useful to you. Instead of keeping all the information for me, I decided to publish my source code so that everybody can benefit from it. In counterpart, I ask you to credit me if you use any information contained in these files. I think it's fair. If you don't like this, stop reading now. The Makefile included in this package will compile several small programs. They only use a part of the routines provided in the package, because most of these routines are intended to be used in a bigger program. These sample programs are: * UNPAK -- Unpacks a Quake *.PAK file Usage: unpak -h Get some help. unpak -v id1.pak View the contents of id1.pak without extracting anything. unpak id1.pak Creates a new directory id1.dir and extracts the contents of id1.pak in this directory. unpak id1.pak gfx.wad Extract only gfx.wad from id1.wad. * REPAK -- Re-creates a Quake *.PAK file Usage: repak new.pak file1.lmp file2.lmp ... If the PACK file already exists, data is appended to it. * UNWAD2 -- Unpacks a Quake *.WAD file (WAD2) * REWAD2 -- Re-creates a Quake *.WAD file (WAD2) * UNWAD -- Unpacks a Doom/Heretic/Hexen *.WAD file (IWAD or PWAD) * REWAD -- Re-creates a Doom/Heretic/Hexen *.WAD file (IWAD or PWAD) * UNBSP -- Unpacks a Quake *.BSP file * SPRVIEW -- View the structure of a sprite. Note that UNBSP is a quick hack based on the other utilities. The BSP files contain 14 unnamed entries. For simplicity, I give them names (entry00, entry01, ... entry13) so that they can easily be saved to separate files. I will write a cleaner version of UNBSP which decodes all chunks, but I'm still trying to understand the format of some of them (the first one is easy...). Any information would be welcome... I'm also trying to understand the format of the MDL files. I have decoded some fields of the header and I can extract all bitmaps and save them to BMP files (you can do that in a few lines of code with the routines "ReadBitmap" and "SaveBMP" provided in f_bitmap.c); I also know a bit about the structure of the file (vertices + triangles), but there are still some unknown values in the header. Discussions of the Quake file formats takes place only in the newsgroup rec.games.computer.quake.editing. I read this newsgroup several times a day, so you can post your questions and suggestions there. Actually, it is better to post in the newsgroup than to e-mail me directly, since lots of people will be able to answer your questions or benefit from the information that you post there. If you really want to reach me directly, my e-mail address is: Raphael.Quinet@eed.ericsson.se. But don't expect a quick reply, because I'm supposed to work on serious projects during the day and I can only read my mail and write QEU during my spare time. Note for the curious: there are no binaries in this package because I don't have my PC with me for the moment. I'm currently on a business trip (for three weeks) and I can only write my programs in the evening (after work), on a Sun workstation. The only PC to which I have access doesn't have a compiler, so I cannot even verify if what I wrote runs on a PC or not (but I think so, since the code is based on DEU 5.3 and it is very portable). If you have a DOS compiler and you managed to compile these programs on a PC, I would be glad if you could upload them to ftp.cdrom.com (but whatever you do, don't send the binaries to me by e-mail - I want to keep my mailbox clean...). -Raphael