Welcome to DEVIL, the Descent Editor for Vertices, Items and Levels at all. ____________________________________ _________________________ / / / /\ /\ \ \ \ /________________/____________/_____/ \ / \_____\____________\_____\ \ \ \ \ \ / / / / / \____ ___ \ _______\ \ \ / / /___ ___/ / \ \ \ \ \/______\ \ \/ / / / / / / \ \ \ \ \ \ || / / / / / /____ / \ \ \ \ _______\ \ || / /\ / /\ / / \ /___\ \/_\ \ \/______\ \__/ /__\/ /__\/ /_______\ \ \ \ / / / \_________________\____________\__________/____________/______________/ (thanks to Catalin-Andrei Stefanescu for the new ASCII art) This is the README.TXT for version V2.00c Mail address: ubdb@rz.uni-karlsruhe.de Home page: http://wwwrzstud.rz.uni-karlsruhe.de/~ubdb/index.html DEVIL is free software, and you are welcome to redistribute it under certain conditions, therefore DEVIL comes with ABSOLUTELY NO WARRANTY; for details see the file 'COPYING'. go32.exe is copyright by DJ Delorie; for copying this see 'COPYING.DJ'. The graphics library is copyright by Csaba Biegel; see 'COPYING.CB'. You get GNU-C with source-code on nearly every ftp-site (for example ftp.uni-stuttgart.de). If you want to sell Devil on a Shareware-CD or something like that, remember that this program is Freeware, therefore I won't get a cent from the people using this program. So if you make money with Devil think about spending some bucks to the author. Devil is sponsored by the german magazine "PC PLAYER". They are paying me some money to encourage further development of Devil :-)). In return they asked me to be allowed to show up in the new title screen. There is no other obligation. DEVIL IS STILL FREEWARE! PC PLAYER can be reached by E-Mail at devil@pcplayer.mhs.compuserve.com ATTENTION: There is a special driver for S3 cards which uses the accelerator functions of the card. If you want something like this for your (not S3) card, too, please mail me a specification and I will see what I can do. There is a new Devil Mailing list, to subscribe send a mail with the subject DEVIL-FULL-SUB to DevilML@aol.com. I'm subscribed in this list, too, so please mail any questions about how to use Devil to this list and not directly to me. If you only want to get mails if a new version of Devil is released, send a mail with the subject DEVIL-ANNOUNCE-SUB to DevilML@aol.com. CONTENTS: [0] THE VERSION NUMBERS. [1] INSTALLING DEVIL [1a] What do I need to run DEVIL ? [1b] How to install this thing ? [1c] DEVIL crashes before the titlescreen appears. [1d] DEVIL crashes after the titlescreen has appeared. [2] BUILDING LEVELS [2a] Building a level. [2b] Including the level in descent (easy way). [2c] Including the level in descent/Compiling your own HOG-files. [2d] Extracting the original levels. [2e] Extracting other files. [2f] Restoring the original descent. [2g] Copying macros. [3] BUGS AND OTHER WELL KNOWN FEATURES [3a] How many bugs I've to expect ? [3b] Bugtypes. [3c] Report a bug. [4] FURTHER PLANS [4a] Next weeks. [4b] Next months. [4c] Never. [5] ONE OR TWO WORDS TO THE SOURCECODE [5a] Why is DEVIL.INI so long? [5b] Sourcecode itself. [5c] Extending DEVIL. [5d] Recompiling DEVIL. [A] UPDATES [B] Things I've tried without success. [0] THE VERSION NUMBERS. Since version V1.0a DEVIL is numbered in the following way: The full working, official release is called V1.0, V1.1 and so on. The beta-testing versions are called V1.0a, V1.0b, V1.0c and so on. Please spread this thing as wide as you can. Minor updates and bugfixes will be called V1.01, V1.02... [1] INSTALLING DEVIL [1a] What do I need to run DEVIL ? To run DEVIL you need the following things: 1. DESCENT 1 registered version (I won't release a editor for the shareware version because the guys from Parallax don't want this). 2. A fast computer with coprocessor (the program isn't optimized in any way yet, especially I do all the calculations needed for plotting with floating point, so without a copro it's very very very very slow, but you can try it with emu387 (is not included). On a 486/66 it should be quite good). 3. A VESA-compatible graphics card. [1b] How to install this thing ? If you have the devilXXX.zip file just pkunzip it with '-d' (IMPORTANT!!) in the descent directory. In your DESCENT directory is now a directory called DEVIL with the two subdirectories LEVELS and MACROS. The resolution which is used by Devil you can set in the devil.ini file. [1c] DEVIL crashes before the titlescreen appears. Help? If DEVIL crashes with a message like General Protection Fault or something like this, try a clean configuration only with HIMEM.SYS from MSDOS. This should work. I don't know how to use Win95/Windows 3.1 and Devil but I know that there are some guys who have managed to do this. Try a short notice in the mailing list for help. If you get no message and Devil just quits after you started it, it is possible that Devil couldn't initialize the graphics mode. Then have a look at the DEVIL.BAT file. There are some drivers mentioned. Perhaps you can find one with a name which is similar to your card. Then change the line set grx20drv=vesa into set grx20drv= Of course you must replace with the name of the driver (i.e. cl5426) You can try to load a resident VESA-bios, too. It is also possible that your graphics card cannot handle the resolution which is currently set in the devil.ini file. [1d] DEVIL crashes after the screen has appeared. Perhaps your level-file is corrupted. Try starting devil with devil /nocfg [2] BUILDING LEVELS [2a] Building a level. Start devil.bat. If it does some output and then returns to the DOS-prompt see the previous sections. If DEVIL has started, build an level. This is not an easy task, but I'm sure you will see how it works. See the doc-files for documentation. You can find them in the Docs directory. The saved levels will be in the levels-directory (that's not very surprising, I suppose). [2b] Including the level in DESCENT (easy way). Just copy your levelfile in the DESCENT directory and name it LEVEL01.RDL (the 01 can be replaced by 01-27,S1-S3). DESCENT will load this level automatically and replace the original level. [2c] Including the level in descent/Compiling your own HOG-files. If you want to produce your own missions you can compile your own HOG-files with hogfile.exe. It will ask you all necessary data and produce the specified HOG-file. If this HOG-file and the corresponding MSN-file is in the DESCENT-directory, DESCENT will recognize this and ask you which mission you want to play. You can also use rdl2hog and makemsn available at the Interplay site which are much more comfortable than little hogfile.exe. [2d] Extracting the original levels. This is done with extract.exe. Assuming that you will extract the level 01, type in the levels-directory (!): C:\DESCENT\DEVIL\LEVELS> ..\extract.exe level01.rdl ..\..\descent.hog Instead of 01 you can write 01-27, S1-S3 (S must be uppercase). The last parameter is the hog-file from which you want to extract, if it's '..\..\descent.hog' you can omit it. The HOG-file is not changed. Try '$' instead of a 'level01.rdl' for the contents of the HOG-file. Extract works also with other non-original HOG-files. [2e] Extracting other files. The same thing as extracting the levels. [2f] Copying macros. If your friend has build some macros you want to include, just copy them in your macros directory and start DEVIL. [3] BUGS AND OTHER WELL KNOWN FEATURES [3a] How many bugs I've to expect ? Tip: Save early and save often (as you know it from several games) and sometimes with different filenames. I hope there are not so many bugs that are destroying your savefile or make DEVIL not to read saved files, but I guarantee for nothing. If you've a really, really great level that you've build for hours and hours and DEVIL won't load him anymore, send me an EMail with a short message what you've done last and what's in the file devil.err. It's always a good idea to look in the file devil.err, perhaps you can do some repair for yourself. [3b] Bugtypes. I distinguish the following bugtypes: A. Real, heavy bug: DEVIL crashes down with a message like General Protection Fault and a lot of registers and numbers and so on. If you've discoverd such a bug I hope you've saved your work so far. Please send me the clear readable message and the last few steps you've made before the crash, so I can see what to do. B. Middle bug: DEVIL crashes not really down, but goes to the DOS-prompt. In this case it's a good idea to look in the file DEVIL.ERR. Please send me the text written in there and the description of your last few actions. C. Weird bug: DESCENT won't load the level or crashes loading the level. Also report to me (but first look at the documentation for possible reasons). D. No bug: Suggestions to improve DEVIL. Also report to me. [3c] Report a bug. Report a bug to: ubdb@rz.uni-karlsruhe.de Please, please make a description what you have done when Devil has crashed and mail the level you are working on with your bug report. [4] Further plans [4a] Next weeks A cube move mode. Making seven cubes out of one. Some corridor generators. Illuminating the mine automatically. [4b] Next months Save/read hogfiles directly and special Devil file format. An Undo feature (perhaps this goes together with some sort of programming language) A setup program for DEVIL.INI, so you can change keys and menus and so on. Tune the plot-routine especially avoid the copro. If I get an idea how to do it, texture-mapping on one cube, so you can see it from the inside. [4c] Never A bitmap editor. An editor for sounds or decoding the soundfile (because of lack of knowledge). [5] ONE OR TWO WORDS TO THE SOURCECODE [5a] Why is DEVIL.INI so long? I've tried to keep as much data as possible out of the real sourcecode, especially the data which refers to the keys, the menustructure and the DESCENT data, so you can edit or complete it without compiling DEVIL once again. I will release a setup program for adding something to DEVIL.INI but if you're a tough guy, you can try to understand and modify it with a normal editor (there are some comments in it). [5b] Sourcecode itself. If you're trying to understand the sourcecode I must give you one hint: The WALLS are named DOORS in the sourcecode and the SIDES are called WALLS. It's bit confusing, but has historical reasons (I first thought the WALLS are only DOORS). I suppose you'll be astonished at the do_event.c file especially the function array do_event. I've done it this way and not with a switch() because I think in this way it's easier to extend. Just put your procedure name at the end of this array, an corresponding entry in the enum evcodes in do_event.h, and the number of this evcode as an entry in DEVIL.INI/MENU.INI. [5c] Extending DEVIL. In my opinion, the best way to extend DEVIL is to send me your sourcecode (of course). I will put a node in the credits and make an event in DEVIL for it. [5d] Recompiling DEVIL. If you want to recompile DEVIL on another compiler, just have a look at the w_system.c/w_system.h files. They contain all non-ANSI-C-routines DEVIL needs. The rest of DEVIL is strict ANSI-C. The only non-ANSI-C convention is that an 'int' is 4 bytes long. Please send me an E-Mail if you recompile DEVIL on another compiler so I can always give you the newest source-code. [A] UPDATES The latest release is always available at http://www.uni-karlsruhe.de/~ubdb/index.html (my site) http://www.interplay.com/website/devil.html (official US site) US: The Integrated Connection BBS: 317-921-8619 UK: The Shed BBS: Australia: Southern Acces BBS: 61-53-428357 0.95b - first release, a bit chaotic, COPYING files missing (in some cases), wrong DOC file. 0.96b - Changed tiny bug with alternate exit, switch for doors in devil.ini renamed, correct DOC file, complete README.TXT. 0.96b2 Fixed a lot of bugs: - Connecting cube with itself is no longer possible. - Killing the status line sometimes. - Choosing does not implement beaming anymore. - Default filename (also change in devil.ini) - Deleting is now possible with the current object if it's tagged. The current object is just set to the previous (or next) object. - Saving is no longer aborted, if a thing is out of bounds, but a warning is printed if you want to ignore this. Also the exit side. - If you enter something via keybord you can't delete too much anymore. - Fixed bug entering strings: now it's possible to use spaces. - Status line strings are now shortened if too long. - No "General Protection Fault" if you tag a non existing wall. - tuned bitmap routine (wasn't that difficult) introduced: g, G for fitting to bitmap/side - Numlock is now turned on at start. - Normal quit made. - Fixed bug in initio with doortextures - Tried to fixed bug with macro saving but..- KNOWN BUGS: - Numlock on/off with keyboard LED does not work (look at the screen) - Saving the same macro under several filenames will rename the first saved macro (but on the disk there are two files, I hope). Try exiting and loading devil again. 0.97 - Fixed the damned bug with the macros. - In wallmode now the texture for the wall side is shown. - Fixed the "General Protection Fault" bug with producers that produce nothing. - Fixed another "GPF" when you run at the beginning of the doortypes. - Introduced texture1&texture2 in wall menu. - A normal texture2 is now also a wall texture 1. KNOWN BUGS: - Numlock on/off with keyboard LED still does not work (look at the screen) - Changing textures with tagged walls in wall mode doesn't work. 0.99 - Made the SOURCE-code portable (with system.c/system.h) - VGA-version is now built-in. - fixed a bug in door textures. - corrected the calculation of the texture coords (works now even with very weird wall). - fixed bug in the convex/weird-routine. - added align to axis. - you can't set the exit on a wall anymore. - improved the helptxt. - changed violet lines in texture/plot window. - added "make room"-feature. - fixed bug with left upper movebutton. - fixed bug moving tagged cubes: they're now first all moved and then checked, not moved and checked one by one. - added "special tag" for points. - made hogfile-sampler. - changed drawing of tagged lines to one-point-thick lines because of system.c/system.h. - introduced changing rotating angle for fitbitmap. - fixed bug that produced a 0-Byte file if you aborted saving macros. - added the "align bitmaps"-feature. - added an other rotating mode for cubes (with 4 & 6) where the current cube is not rotated. - changed the displaying of light&coords. - Internal menu is now working completely. - added scaling of macros&textures. - introduced seperate rotation angle for things. - you can insert now a macro on the exit. - current position&direction is shown permanently. - added growing&shrinking cubes and walls. KNOWN BUGS: more I can describe. 1.0a - added button for calculating textures. - fixed the crash if you try to move a wall. - now showing hotkeys in menus. - connections for macros are now aligned vice versa (the macro is aligned to the current side). - fixed the bug with the orientation of the second texture. - crash if changing in wall mode. - movebuttons won't work with mouse - thing texture - door texture - killing of texture - moving down in menu - growing&shrinking now calculating textures and door grfx - Clicking on scrolled data field is possible now. - The doors are now correct changed if you change the animation. - Setting door open - switch is now working without an error message. - The items/hostages are now shown yellow not blue like the tagged objects. - A blowdoor is now initialized with correct values&texture. - You can now stretch the bitmap in 'fit bitmap' in x/y direction (try switching numlock on/off). - A thing is now inserted with the top to the current wall. - Connections are now done with the variable UConn. in Internal menue. - Hostages work now. - Cubesize is now restricted (cause of the textures). - Textures can now be selected with the mouse. - Level reading tolerates now minor bugs. - I hope the open-at-end bug is fixed. - GPF if changing cube from producer to normal type is fixed. - Arrange bitmaps works now. - Source code is now strict ANSI-C. - Fixed bug with Ins in side mode if a cube is surrounded by other cubes. - Changed the read level routine a bit (can now read level26). - Better map (try it, with lines of in Drawing Menu). - Font is changed (hope that fixes the problems with several grfx cards). - Added shift+left mousebutton for tagging several objects. - Added tag box for tagging several objects - Saving now checks for duplicate reactors and keys and starts with illegal numbers. Also for reactors in no 'reactor'-cubes. - You can change the level-name shown in DESCENT. - Light shading feature added. - Insert points. - Insert&Delete sides with tagged walls. - Shrink&grow now work with grid. - You can lock side, so their texture is not calculated if you move their points. - Fit bitmap is now with&without tagged sides. - Size of things is now correct (you won't see a difference). - You can use the cube/side tags in side/point mode. - If you leave DEVIL it starts with the same level on the same position. - You're asked is you want to leave DEVIL without saving changed you've made. - The play level feature is added. 1.0b - Fixed little bug with text in the left upper corner by fit bitmap. - Changed exit codes for handling GPFs. - Changed name of the exe-file. - works only with V1.4 1.0c - works now with V1.0 and V1.4 - if macro saving is aborted, no file is created anymore. - in macro choosing text is now correct even if you've overwritten a macro. - 'side lock' is now copied in macros & saved with levels. - fixed a bug in savecube with the producers. - size of things in old levels is now set & plot correctly. 1.0 - fixed the bugs with tagging. - you can switch now between x-tagged display mode and normal tagged display mode. - introduced the number of tagged objects in the upper right corner. - fixed the bug with updating the texture window. - fixed the mouse bug if you click buttons rapidly. - Devil now changes to cube mode after making a macro. - Devil works with DPMI - S3 cards can use the accelerated line function of the card (have a look in the devil.bat file) - Fit bitmap in VGA mode won't work. 1.01 - fixed some more bugs with tagging (when connecting cubes, light shading and align bitmaps). - changed the shape of the hostages. - S3 cards can now use the accelerated rectangle fill function also. - fixed the bug with the producers who forget their data. - you can now make a macro with a connected side as reference. - the old connect cubes feature is now available with Shift+Del. The delete all feature is only available over the menu. - Fixed the bug with 'Bitmaptype 13 not implemented'. - The whole file is now a bit more strict ANSI: is included. Constant strings are no longer changed. connect() is now called connectsides() because it collides with a Linux function. - The z-key in Modify-Mode now works. - A simple statistic is included. 1.02 - fixed the GPF with the animation of the doors. - the new connect cubes feature is now working (with Del). - a little coordinate system is shown. - fixed the GPF when changing 'no switch' to 'no switch'. - walls with 'nothing but switch' have a texture 'Nothing' now. - fixed the problem with the tagging with the mouse with the box and the white lines. - now Devil know the Descent limits and gives warnings. - hope I fixed the bug with the play-level feature. 2.00 (not yet completed) - new graphics interface - macro viewer & changer - loading&handling several levels Have a good time, build many levels, bomb all enemies and send me an email Achim (ubdb@rz.uni-karlsruhe.de) The Tao of programming ---------------------- Master : The Tao of programming is in every program, no matter of how insignificant it is. Student: Really in every program? Master : Yes, in every program. Student: Is the Tao of programming in a handheld-calculator? Master : It is in a handheld-calculator. Student: Is the Tao even in a digital wrist watch? Master : It is even in a digital wrist watch. Student: And is the Tao of programming in a DOS for a PC? The master coughed, shifted his position slightly and said: 'The lesson is over for today.'