home *** CD-ROM | disk | FTP | other *** search
/ Quake 'em / QUAKEEM.BIN / quake / programs / qube / qube.doc < prev    next >
Encoding:
Text File  |  1996-03-07  |  8.2 KB  |  211 lines

  1.  
  2.  
  3.  
  4. QuBE Version 0.2
  5.  
  6. Cheap Quake Binary Editor
  7.  
  8. Copyright 1996 by Sean Werkema
  9.  
  10.  
  11.  
  12. Disclaimer & stuff -----------------------------------------------------------
  13.  
  14. I make no guarantees on the quality of this code.  You can freely use
  15. it, modify it, tweak it, whatever you want, just as long as you obey
  16. one basic command:  Whatever you create, don't call it QuBE.  QuBE is
  17. my name for this morass of code, and it stays mine.  Other than that
  18. you can do anything you damn well please.
  19.  
  20. This code is copyrighted only so that nobody else will copyright it;
  21. I wrote it, and I don't want to be restricted from my own code.
  22.  
  23. Contributors:
  24.  
  25.   Sean Werkema                          Started QuBE, wrote 99% of it so far.
  26.  
  27.   Guy(s) who wrote that .PAK patch      Wrote that .PAK patch
  28.  
  29.   Raphael Quinet, Oliver Montanuy,
  30.     Brian Martin            Authored the Unofficial Quake Specs
  31.  
  32.  
  33.  
  34. Using it ---------------------------------------------------------------------
  35.  
  36. Currently it does little more than display stuff in Quake's .BSP and .PAK
  37. files.    Generally to do it you have to be a bit of a hacker, so this doesn't
  38. include much in the way of documentation because I can assume you know what
  39. the hell you're doing.  If you don't, don't worry, because I'm trying hard to
  40. clean up the QuBE system to the point where you can edit Quake without
  41. knowing squat.
  42.  
  43. QuBE [options] filename
  44.  
  45.   -b    BSP:        Display the hull BSP tree in a .BSP file.
  46.             Example use:  qube -b test1.bsp
  47.             If you're not a hacker, this probably is useless.
  48.  
  49.   -dl    EdgeList:   Display the hull edges, unordered.
  50.             Example use:  qube -dl test1.bsp
  51.             If you're not a hacker, this probably is useless.
  52.  
  53.   -el   EntityList: Display entities as a printed list.
  54.             Example use:  qube -el test1.bsp
  55.  
  56.   -ex    EntityXtrct:Extract entities as a printed list to a file.
  57.             Example use:  qube -ex thing.txt test1.bsp
  58.  
  59.   -er    EntityRplc: Replace entities in a .BSP file with those in a text file.
  60.             Example use:  qube -er thing.txt test1.bsp
  61.             Note that the format of the text file is very loose; QuBE
  62.             will be more than happy to reformat your input to make
  63.             Quake happy.  As long as your input is relatively similar
  64.             to id's own, you're fine.
  65.             Note also that -tx and -tr can be used for the "monster
  66.             patches" that everyone is talking about.  You can add and
  67.             remove as many things as you like, anywhere.
  68.  
  69.   -f    File header:Display the file header of a .BSP file.
  70.             Example use:  qube -f test1.bsp
  71.             If you're not a hacker, this probably is useless.
  72.  
  73.   -h    Help:       Displays poorly-written help.
  74.             Example use:  qube -h
  75.  
  76.   -g    Graph:        Display the level graphically (SVGA/X-Windows only).
  77.             Example use:  qube -g test1.bsp
  78.             This currently can only display the entities and vertices
  79.             (sorry).  A better map will be added as soon as I can
  80.             figure out how the hell everything is stored.
  81.             You can use the mouse to highlight things, the arrows
  82.             to move around, and + and - to zoom in and out.  N
  83.             and P will move from one thing to the next without the
  84.             mouse.  You can hit Esc to exit.
  85.             Editing of the entities was originally planned for
  86.             this version, but I ran out of time:  What can I say?
  87.             Look for that and a better windowing system in QuBE 0.3.
  88.  
  89.   -ka    PicAdd:     Add/create/update file(s) in a .PAK file.
  90.             Not yet implemented.  Please don't complain; I can
  91.             only code so fast.
  92.  
  93.   -kl   PakList:    List the pictures in a .PAK file.
  94.             Example use:  qube -kl id1.pak
  95.  
  96.   -kx    PakXtract:  Extract file(s) from a .PAK file.
  97.             Example use:  qube -kx gfx.wad id1.pak
  98.  
  99.   -kX   PakXtract:  Extract *ALL* the files in a .PAK file.
  100.             Example use:  qube -kX id1.pak
  101.             You'll need a lot of disk space for this option.
  102.  
  103.   -ka    PakAdd:     Add a file to a .PAK file
  104.             Example use:  qube -ka quake.exe id1.pak
  105.             Yes, I realize that's a dumb example.  But it
  106.             works.
  107.  
  108.   -pl   PicList:    List the pictures in this file.
  109.             Example use:  qube -pl test1.bsp
  110.  
  111.   -px    PicXtract:  Extract picture(s) to a BMP file.
  112.             Example use:  qube -px sky4 1 test1.bsp
  113.             This example if used on TEST1.BSP will extract
  114.             the 1/1 version of DUNG0_4.
  115.             Example use:  qube -px co* 4 test1.bsp
  116.             This example if used on TEST1.BSP will extract
  117.             the 1/4 versions of cop1_7, cop1_5, cop1_6,
  118.             cop2_5, and cop3_4.
  119.             Example use:  qube -px co* * test1.bsp
  120.             This example if used on TEST1.BSP will extract
  121.             the 1/1, 1/2, 1/4, and 1/8 versions of cop1_7,
  122.             cop1_5, cop1_6, cop2_5, and cop3_4.
  123.             The extraction bug that plagued the earlier 0.2
  124.             is gone.
  125.  
  126.   -pX   PicXtract:  Extract all pictures to a BMP file.
  127.             Example use:  qube -pX test1.bsp
  128.             You'll need a lot of disk space for this option.
  129.             "-pX" is equivalent to "-px * *".
  130.  
  131.   -v    Verbose:    Be more explicit when doing stuff.
  132.             Example use:  qube -v -kd * id1.pak
  133.             This option only affects some other options, not all.
  134.             It will be more powerful as soon as I can code more power
  135.             into it.
  136.  
  137.   -xl    VertexList: Display the vertices in an unordered list.
  138.             Example use:  qube -xl test1.bsp
  139.             If you're not a hacker, this probably is useless.
  140.  
  141.   -!    XtractAll:  Rip a .BSP file into its 14 component sub-structures.
  142.             Example use:  qube -! test1.bsp
  143.             This option is definitely for hackers only, especially
  144.             since there's not yet a way to put the file back together
  145.             again.
  146.  
  147. Compiling it -----------------------------------------------------------------
  148.  
  149. To just compile everything normally, comment in the appropriate
  150. version for your system, and just type
  151.     make
  152.  
  153. Also, if you need to clean out old compilation files,
  154.     make clean
  155.  
  156. Please note that the X-Windows version isn't fully ready for
  157. use yet.
  158.  
  159. Bear in mind that you'll need a little-endian system to make
  160. this stuff work.  If you need to know what kind you have, try
  161. compiling endian.c and running it.  It should compile in any C compiler
  162. (even really old buggy ones) and when run will tell you whether you've
  163. got a big-endian system or a little-endian system.  All x86-based PCs are
  164. little-endian.    MIPS chips also seem to be little-endian.  SPARC chips and
  165. 680x0 chips are not, and the PowerPC probably isn't either.
  166.  
  167. I don't know if this will compile for you.  It compiles for me, and I'm
  168. using Turbo C++ 3.0 (but only as an ANSI C compiler; I don't really like
  169. C++) and GCC 2.5.something (on a DECStation 5000/33 running Ultrix).  I've
  170. not tested it in Linux yet (I know, I know) but it should compile without
  171. a hitch there.
  172.  
  173. Yes, I know I didn't include everything necessary for the *full* DOS
  174. compile, namely the sources to keyboard.obj, svgagrph.obj, svgamous.obj,
  175. and f08nsans.obj.  I'll include these after I clean them up a bit; I wrote
  176. them a few years ago and they feel a little dusty.  So for now, just live
  177. witht the .OBJ files.
  178.  
  179. The UNIX version uses X-Windows to do its graphics.  It's a little funky
  180. right now, because I should be using true event-driven code, but it works.
  181. I've used it in X11R6 no problem (or was that X11R5?  I dunno; there should
  182. be no problems in either version).
  183.  
  184.  
  185.  
  186.  
  187. Ramblings --------------------------------------------------------------------
  188.  
  189. Bear in mind that I have a lot of revision planned for this, so don't get
  190. too used to any given feature, because I can almost guarantee that it will
  191. change.
  192.  
  193. The X-Windows routines in this version probably won't work.  I haven't tested
  194. them, and since I've gotten so many requests to release this I don't plan to
  195. until the next version (sorry).
  196.  
  197. Why am I writing this, when I know that id will release their own tools?
  198. I dunno.  I just want to see how they laid out the files, I guess.  I
  199. don't guarantee that this stuff will work for you; I don't guarantee it'll
  200. work for me!  It was just a fun hack, and if you want to use it, then use it.
  201.  
  202. As always, I'll upgrade it as time permits.
  203.  
  204. I've now released the source, since it's now semi-presentable; it isn't great,
  205. but it does work, and I'll continue to clean it up as I can.
  206.  
  207.                         - Sean Werkema
  208.                           stw113@psu.edu
  209.                           3/7/1996
  210.  
  211.