This version of wacker is now fully functional i.e All the texture manipulation and full dragNdrop interface is implemented including modification of existing textures as well as building new ones. --------------------------------------------------------------------- DISCLAIMER (Just for my protection) The is a BETA test version of the WACKER program. When you execute this program you do so at your own risk. I take no repsonsiblity for any damage caused and make no claims as to the functionality of the program. Please dont be frightened by the above sentence. It it just to cover me in case anything should go wrong. WACKER does crash occasionaly, but it has NEVER done any serious damage to any of the machines it has been tested on. Note: As far as I am aware WACKER is the first publicly available program that will allow you to create your own textures for DooM and then save them out with a PNAMES,TEXTURE1 and TEXTURE2. This is the last beta version, the next release (unless a major quick bugfix is required) will be version 1.0 and will be a bugfix plus addition of an external config file to allow you to place wacker where you like. Regards Keith Wilkins I can be contacted via email at the addresses below: spike@nectech-uk.com OR spike@nectech.demon.co.uk --------------------------------------------------------------------- Thanks to: Lee Witek - For pre-alpha testing an lots of handy ideas about the user interface, and the coke machine. Jean Serge Gagnon - Alpha testing and suggestions for improvement --------------------------------------------------------------------- Version Control --------------- Beta7 28/07/94 * Bug fix to fTextureDragNDrop & fPictureDragNDrop due to some mouse drivers returning a modulo 2 mouse position on the X axis after the upper limit was modified for 640 resolution. * New code for barry@infant2. Semi automated texture creation. Try the new LTB command. * Patch loading modified so that if your patches are referneced by TEXTURE1 or TEXTURE2 they need not be placed between P_START & P_END markers Beta6 26/07/94 * Modifications to dox.txt after feedback from Joe Pulic: New sections on making/modifying textures Notes on how to overcome the Deu problem Explanation of examples * New code to allow modification of textures and deletion of patches by pickup and drop. * Code added to allow patches to be pushed to the back or pulled to the front of a texture. Beta5 22/07/94 * Serious bug fixed which stoped any level data being saved * Code added to allow saving of NEW textures and creation of new textures. Beta4 15/07/94 * Button text added * DragNDrop partially implemented * Some minor bugs fixed * Finally squashed the obscure save bitmap bug that was giving real problems on bitmaps where the width wasnt a multiple of 4, bloody windows!!! Beta3 09/07/94 * Bug fix to cure save BMP error, it seems a line of code got deleted between Alpha3 & Beta1/2 that setup in internal pointer in fBMPSave(). * Fix of load object bug memory being accidently freed by the gallery display function. * Button regions added for texture & picture galleries but no internal graphics yet. Beta2 07/07/94 * Loads of new functionality. * Bug fixed in the gallery that was causing GPF under windows on some systems. * Improved documentation. Alpha3 24/06/94 * First limited alpha test of basic functionality --------------------------------------------------------------------- Known bugs ---------- Copy (replace) - Copy doesn't work if you are replacing a LEVEL in the destination. Delete then copy to ensure correct copying. There is no problem if the copy creates a new object, it is only replace that has the bug. Move - Moving a level may screw up a wad file. Dont move the level using move. You should not need to do this anyways. Slow initialisation - After doing some speedups its still slow, escpecially after adding sprite & graphics support. Pallette setting takes a rather long time and I cant figure why ?? Occasional NULL - I squash these whenever I encounter one but pointer error I'm sure there must still be some somewhere. --------------------------------------------------------------------- Future Additions/Features ------------------------- High Priority ************* WACKER.INI configuration file Free up more memory Use of extended memory to store loaded objects Low Priority ************ GIF Load/Save LIG - Load an image patch from a GIF file SIG - Save a image patch from a GIF file --------------------------------------------------------------------- Getting Started *************** Place all the files in the directory containing Doom.wad. You can place it anywhere in your path if you dont want the executable in your doom directory but the OEM08.FON file must be in with the directory you are executing from. Sorry, this will be fixed ay V1.0 by an external config file specifiying paths and files. Type WACKER to run the program. The screen goes black for about 3-5 seconds at the start before the loading meassage appears. It takes about 20-30 seconds to initilise depending on the machine (sorry, but there is a mass of data to load & check for consistency). WACKER will only run in 640x480x256 SVGA mode. If you don't have SVGA then use a VESA emulator such as UNIVESA. It has been tested without problems on the following configs: Clone 486DX2-66 16MB RAM Diamond VIPER VLB grapics card Clone 486DX40 16MB RAM GENOA VLB card with Cirrus chipset NEC Versa-50 laptop 4MB RAM WACKER works under windows (if you must). I have been told that it now works O.K under OS/2. The only problem I've come across under windows is on the Diamond VIPER machine, using crtl-esc to task switch will completely lock the machine. On the Versa the screen corrupts on return to wacker but it still functions O.K. The moral of this story is don't bother with windows. The more free memory the better. Running from a RAM disk can speed thing up quite considerably, that is if you have the odd spare meg or 12. WACKER is written in C using Microsoft Visual C (prof) and is compiled using the huge memory model, after the major work is done I plan to port it to a 32bit flat model program using DJPP. BATCH FILES *********** WACKER now supports external batch files and an argument to speedup that initialisation process. The batch files must be ordinary text files with 1 command+args per line. To run a batch file type: WACKER [filename] Its not too pretty at the moment but what the hell, it works, or at least I think it does !! To stop WACKER building the galleries then start WACKER with the -NOGALLERIES option and it will start up faster but you wont have any pretty pictures to look at. WACKER MANUAL ************* The main wacker screen will apprear after intialistation. ------------ -------------- | | | | | | | | | TEXTURE | | PICTURE | | WINDOW | | WINDOW | | | | | | | | | | | | | | | | | ------------ ------------- ------------------------------ | | | COMMAND WINDOW | | | ------------------------------ Click the mouse within a window to activate it, or use the keyboard: C = Command Window T = Texture Gallery P = Picture Gallery When you wish to exit WACKER press ALT_X or type BYE in the command window. How WADS are handled -------------------- You can load many different PWADS into WACKER, each PWAD you load must be given a HANDLE which can be up to 8 characters in length. The purpose of the HANDLE is to allow you to reference a wad file by a short name rather than a long path+file name. All PWADs are held separately and do not patch each other. The exception to this is the texture and picture resources, if a PWAD contains new pictures or textures these will replace textures in the main picture & texture galleries. A picture is defined as any object within a WAD file that is in the doom picture format. These can be PATCHES, SPRITES or GRAPHICS, where GRAPHICS refers to the DOOM help screens & player faces, status bar etc. Pictures can be detected in a PWAD but they must be in the following formats OR have a name identical to a gallery patch/sprite/graphic: PATCHES Enclosed between P_START & P_END entries SPRITES Enclosed between S_START & S_END entries GRAPHICS New objects are not allowed but any name conforming to the naming conventions of the main DOOM.WAD will be picked up and loaded as a graphic replacing the current object Any operation involving a PWAD or IWAD requires the use of the handle to identify which wad you wish to operate upon. The main DOOM IWAD file is always called "DOOM" and the handles "PATCHES", "TEXTURES", "SPRITES" and "FLOORS" are all reserved, do not attempt to load a new PWAD with these handle names otherwise you will not be able to access the loaded PWAD. EXAMPLE - Load a level, and modify a patch and save the new PWAD LDW E1M1 d:\games\doom\mylevel\e1m1.wad (Load a Wad file with handle E1M1 from file d:\games\doom...) LPB E1M1 DOOR2_9 d:\games\doom\mylevel\newdoor.bmp (Load a Picture in BMP format into wad E1M1 called DOOR2_9) (from a file called d:\games\doom\mylevel\newdoor.bmp) SDW E1M1 d:\games\doom\mylevel\newgrp.wad (Save a Wad file using the internal Wad handle E1M1 to a file) (called d:\games\doom\mylevel\newgrp.wad) After the LWB command is executed the new DOOR2_9 patch will appear in the patch window. EXAMPLE - Load a level and copy graphics & level from another PWAD LDW TESTLEV mylevel.wad (Load a Wad file with handle TEXTLEV from file d:\games\doom...) LDW DONOR donorlvl.wad (Load a Wad file with handle DONOR from file d:\games\doom...) COPY AG128_1 TESTLEV (Copy patch AG128_1 to the wad called TESTLEV. Note that we) (dont need to say where AG128_1 comes from as wacker knows) (that we must be talking about the AG128_1 in the patch gallery) COPY DONOR E1M1 TESTLEV (Copy from DONOR the E1M1 object to the wad called TESTLEV) COPY DONOR BCRATEM1 TESTLEV DOOR2_4 (Copy from DONOR the BCRATEM1 object to the wad called TESTLEV) (and rename it to DOOR2_4, this will also change the patch) (gallery entry DOOR2_4 to be the same as BCRATEM1) SDW TESTLEV newlevel.wad (Finally save out our modified wad TESTLEV to a file called) (newlevel.wad) --------------------------------------------------------------------- Picture Gallery --------------- The picture gallery holds three picture lists: PATCHES, SPRITES & GRAPHICS the same command set applies to all picture lists. i.e You can use any graphic for inclusion in a texture. The following keys will swap between lists at any time: F5 - Patch list F6 - Sprite list F7 - Graphics list Once in a particular list the following commands apply: I - Give information about the displayed picture F - Find a picture name /* Not Implemented */ HOME - Display last picture in the selected gallery END - Display first picture in the selected gallery PAGE UP - Jump down the selected picture list PAGE DOWN - Jump up the selected picture list UP/LEFT CURSOR - Move to the next picture in the selected list DOWN/RIGHT CURSOR - Move to the next picture in the selected list All of the above functions are accessable via the mouse interface, by clicking on the buttons under the mouse window. To dismiss the info window press any mouse button. You can pick up patches/sprites & graphics in this version and drop them onto the texture window. See the texture gallery description for details on how to build and maipulate textures. To pick up a picture, first position the cursor over the picture and then press and hold the left mouse button. You can then drag your picture around the screen. If you dont wish to do anything with it then release the mouse button making sure that the picture is NOT positioned over the texture, wacker will assume that if you drop a patch on any area other then a textures then you wanted to discard it. If you wish your patch to be added to the texture then position it where you want it to be placed and then release the mouse button and it will then be added to the texture. Fine positioning of the patch can be achieved using the cursor keys whilst the mouse button is kept pressed. Texture Gallery ------------- I - Give information about the displayed texture While in this mode LEFT,RIGHT ARROW move UP/DOWN the list of patch descriptors that make the texture. Pressing the return key will cause the Patch Gallery to display the patch for that descriptor. Press ESC to exit. For mouse based operation: Left button = Previous patch entry Right button = Next patch entry Centre button = Display patch in patch gallery Left+Right = Close window S - Step throught the drawing of a patch, each time you press the 's' key then next patch. F - Find a patch name /* Not implemented in this vesion */ HOME - Display last patch END - Display first patch PAGE UP - Jump down the patch list PAGE DOWN - Jump up the patch list UP/LEFT CURSOR - Move to the next patch in the alphabetical list DOWN/RIGHT CURSOR - Move to the next patch in the alphabetical list Again as with the picture gallery all the above functions are available via the button bar. Making NEW textures ------------------- Completely new textures can also be created using the CREATE command from the command window: CREATE TEXTURE for example CREATE TEXTURE STARTAN4 128 128 will make a new texture called startan4 which is 128x128. The texture gallery will then display a blank box for you to build your texture in. When textures are drawn to the screen a white box is first drawn to show the bounding area of the texture. On some textures this may still be partially visible. It is not saved as part of the texture. NOTE - Texture widths MUST be a binary power of 2 i.e 2,4,8,16,32,64,128,256. This is a limitation of the DooM engine. If you ignore this advice then your textures wont draw properly. You can then use the drag and drop method to build your textures as described in the picture gallery section. See below for details on how to change the drawing priority of a patch unsing the FRONT/BACK buttons. Modifiying existing textures ---------------------------- To move a patch within a texture you first position the cursor over the patch you wish to move and then press and hold the left mouse button to drag it around. If you wish to delete the patch then just move it out of the patch window and drop it. When you have re-positioned your patch release the mouse button to drop it. As with the patch drag and drop the cursor keys may be used adjust the position accurately. If patches are covered or it is awkward to see where one patch starts and another ends you can use the STEP button to make things easier as you can only pickup those patches that are visible. If you wish to alter the way in which a texture is drawn i.e move a patch to the back or the front then use the front/back buttons. Click on FRONT or BACK then click on the patch you wish to move. If you wish to cancel the order then click on a part of the screen outside the texture. Wacker will take the very next mouse click after selecting FRONT/BACK as being the front/back opertation. Once you have clicked on FRONT or BACK then ALL other operations are suspended until you have clicked on an area of the screen. When textures are drawn to the screen a white box is first drawn to show the bounding area of the texture. On some textures this may still be partially visible. It is not saved as part of the texture. Handy Tip: Its hard on some textures to see where one patch starts and another ends so put the STEP button to good use. You can only modify the patches that you can see in the texture window. If you have a patch stuck at the back that you want to the front you can either BACK all the other patches OR press STEP until your patch appears then click FRONT and your patch and the texture will then be re-drawn with the patch at the front. Saving out your new textures ---------------------------- Once you have modified the textures and wish to save out your new or modified textures you must make sure that the PNAMES object is present in the WAD as this will trigger WACKER to create PNAMES,TEXTURE1 and TEXTURE2 in your PWAD, you can do this with : CREATE PNAMES SDW IMPORTANT- If you have modified patches you must make sure these have been copied to the PWAD as well so all required data is saved. In later WACKER versions this will be done automagically. Ideally your patches should be contained with P_START & P_END markers but wacker beta7 and upwards will not complain if they are not. BUT BUT BUT ----------- The above is ONLY true IF the patches are used in TEXTURE1 or TEXTURE2. So if you have a group of patches that are NOT used in textures and are not bracketed by P_START & P_END then they will NOT be recognised as patches. So it is STILL ADVISABLE to enclose your patches within P_START & P_END. How to enclose with P_START & P_END ----------------------------------- For Wacker to recognise patches when loading a PWAD they must be enclosed in P_START P_END markers CREATE mygfx CREATE mygfx p_start CREATE mygfx p_end LPB myfgx coke01 front.bmp LPB mygfx coke02 back.bmp LPB mygfx coke03 side.bmp MOVE mygfx p_end coke03 The move command makes sure that the patches are within the markers as when you load a new patch it is always tagged onto the end of a WAD. IMPORTANT2 - If you wish to load your new textures into Deu as a PWAD you must do the following to overcome a feature in Deu that causes it to Barf on texture pwads. When Deu loads textures & gfx from an external PWAD it reads an entire 64K chunk rather then only the data is requires. This means it will often try to read past the end of the file and hence Barrrrf. All you need to do is make sure that there is a least 64K of data after your patches. You can do this in the following way: Load a raw object onto the end of your PWAD using the LOR command this object can be absolutly anything you like. Give it a name that doesn't occur in the doom IWAD such as CALVIN or HOBBES. Just make sure it is around the 64K mark. --------------------------------------------------------------------- Command Window -------------- This window is the command line interface to wacker, the following commands are currently supported: BATCH - Redirect command window input from batch file COPY - Copy object from pwad->pwad CREATE - Create a new WAD,ENTRY or TEXTURE DEL - Delete objects DISP - Force patch/texture window to display object FILE - Enable/Disable command line logging to a file HELP - Display command list LDW - Load a PWAD/IWAD into memory LIST - List details of pwad/patch/texture LOB - Load/patch a WAD object from windows BMP file LOR - Load/patch a WAD object from RAW format file LPB - Load a picture from a windows BMP file LPR - Load a picture from a raw binary file LTB - Load a Texture from a BMP file (creates a patch) MOVE - Move an object within a WAD MCOPY - Multiple copy from WAD to WAD or gallery SDW - Save a PWAD/IWAD to disk SOB - Save a picture format object to a windows BMP file SOR - Save an WAD object to a raw binary file SPB - Save a picture to a windows BMP file SPR - Save a picture to a raw binary file Many of the commands use an argument called PICTURE this agument can be any loaded patch,sprite or graphic object from Some commands do take a while to exectue, be patient. It does take time to copy all of the patches from the gallery to a WAD. The longest wait is if you copy then entire patch/sprite list to a WAD then delete the WAD as WACKER must rebuild the patch list from the original wad. Command Detail -------------- BATCH [STEP] Take command line input from the given filename, the file should be a text file with identical format to that of the keyboard command line. The FILE command can be used to generate batch files that may then be edited and used. If the optional STEP parameter is given then the user will be promped to run each command line and given then option of exiting batch mode. --------------------------------------------------------------------- CREATE [name] [width] [height] Create will allow blank wad objects to be created such as an empty WAD, an empty entry or a new texture. CREATE - Make a new empty WAD CREATE - Make a new wad object (i.e PNAMES) CREATE TEXTURE - Make a new texture --------------------------------------------------------------------- COPY [handle] [obj] Copy is used to copy individual objects between WAD files or within a WAD file. If the final agument is ommited then the object is copied with the same name. Additionally copy may be used to copy ANY graphic object into the picture gallery. This is done using the Pseduo handles 'PATCHES', or SPRITES for example: COPY PATCHES [object] Any picture object that is copied in the picture gallery can then be used within a texture. Yes this does mean you can put the DooM logo in a texture or a Spider demon. Copy can also be used to copy any picture object to a WAD, this can be done by omitting the handle, then 1st argument must the the name of a picture in one of the galleries. i.e COPY AG128_1 MYWAD Will copy the AG128_1 patch into a WAD called MYWAD which must already exist. The 1st argument can be PATCH|SPRITE|GRAPHIC. The pseudo handles may still be used for this type of copy to clone a patch. --------------------------------------------------------------------- DEL [object|ExMx|patch|floor|sprites|FORCE] [obj] This command can be used to delete almost any loaded object or group of objects. DEL - Delete handle & contents DEL - Deletes ExMx level from handle DEL - Delete object of level DEL - Delete object of handle DEL - Delete a patch|texture If no handle is given then the object MUST be a patch or a texture. The patch or texture will be deleted from the texture list but NOT from the PWAD it was loaded into. If you wish to delete patch AND wad entry then used DEL . When a patch is deleted WACKER will search ALL other loaded PWADS for a replacement and use that to replace the deleted patch, if no replacement is found then that patch is erased from all texture entries, if any particular texture has no patches left in its description then it will also be deleted. When only the is used then the entire PWAD is erased. The PATCHES, SPRITES, GRAPHICS and TEXTURES pseudo handles can be used in the delete, remember that deleting any picture may also delete textures by association. If you delete the entire patch list you WILL lose all of the textures. BUT if you load a PWAD with its own patches and you then delete all of the doom patches you will just be left with the textures that can be built from the new PWAD. When you attempt to delete a single object from a picture gallery WACKER will attempt to find a replacement for that picture with the same name from a different WAD that is loaded into memory. For example if you patch AG128_1 from a PWAD and then type DEL AG128_1 the original DOOM AG128_1 will be put back into the gallery, type DEL AG128_1 again and the new AG128_1 will re-appear. If you wish to delete a picture without the auto-replace feature then do DEL AG128_1 FORCE and WACKER will not attempt to find a replacement. The FORCE agrument is only valid for PICTURE deletions. An alternate way is to delete the picture from the WAD rather than the gallery as the galleries hold separate lists from the WADS. For example: DEL PATCHES - Delete ALL patches from the patch gallery. But not from wads DEL TEXUTRES - Delete ALL textures from the texture gallery. DEL WIBBLE - Deletes a loaded WAD called WIBBLE DEL WIBBLE PATCHES - Deletes all patch entries from WIBBLE that lie between P_START & P_END. DEL WIBBLE FLOORS - Deletes all floor entries from WIBBLE that lie between F_START & F_END. DEL WIBBLE SPRITES - Deletes all sprite entries from WIBBLE that lie between S_START & S_END. DEL WIBBLE E1M1 - Delete level E1M1 from wibble DEL WIBBLE ENDOOM - Delete the ENDOOM object from WIBBLE DEL AASTINKY - Delete the AASTINKY texture from the texture gallery. DEL AG128_1 [FORCE] - Delete the AG128_1 patch from the patch gallery. --------------------------------------------------------------------- DISP [picture|texture] This command will force the picture or texture galleries to display a particular image. If a partial name is given then DISP will match it against the gallery contents. The P & T operators force disp to only match P-Pictures or T-textures DISP T STAR - Would display the 1st STARTAN texture DISP A - Texture and Patch windows display 1st entry begining with 'A' DISP AG128_1 - Display the AG128_1 patch --------------------------------------------------------------------- FILE Enable/Disable command line logging to a text file. This command is handy for saving repetative functions and using the BATCH command to automate things. If a filename is given then the file is opened, if a file is already opened then the old file is closed. If you wish to stop logging then use FILE CLOSE. --------------------------------------------------------------------- HELP This will display a list of commands available within the command window. --------------------------------------------------------------------- LDW Load a WAD into memory, the WAD can be an IWAD or a PWAD. A handle name must be given. Do not choose a handle that is the same as a patch or texture name or this may cause some commands to function strangely. The following handle names are reserved, do not used them: DOOM,PATCHES,TEXTURES,SPRITES,FLOORS You have been warned, WACKER will not stop you but you may find that a lot of commands will fail to operate with these names. --------------------------------------------------------------------- LIST [start ojbect] [filename] Dump information to screen or file about an object. This command has several modes of operation. If you wish to direct the output to a file then give a filename at the end. If wacker is unsure if the agrument is a start object or a file it will ask. If a handle is given then the directory of the WAD is printed to the screen/file. If a 2nd argument is given then wacker will attempt to use this as a search key, and will start listing the WAD from the 1st match of the search key. This is handy for listing large WADs, for example: LIST DOOM P_START - List patches within doom (no Xref) It would be better to use the following to list the patches as it will also generate a cross-reference to the used textures. LIST PATCHES Similarly LIST TEXTURES will display alll loaded texures and a cross reference to the patches contained in each texture. If just the name of a picture or texture is given then information is displayed about that object. For patches the command will also display a list of textures that the picture is used in. For textures it will display the list of pictures for that texture. --------------------------------------------------------------------- LOB [object] Load an DooM picture format object from a windows BMP format file. The object name can be an existing or new object. If the object exists then it is modified otherwise it will be created. If the second object argument is given then and a new object is created then it will be placed after the object. This is handy for loading new sprites into an IWAD between the S_START/END markers. If no second argument is given the object is tagged onto the end of the WAD. You can use this to replace sprites/misc graphics/patches. (See notes about importing external bitmaps) --------------------------------------------------------------------- LOR [object] Load an DooM picture format object from a Raw binary format file. The object name can be an existing or new object. If the object exists then it is modified otherwise it will be created. If the second object argument is given then and a new object is created then it will be placed after the object. This is handy for loading new sprites into an IWAD between the S_START/END markers. If no second argument is given the object is tagged onto the end of the WAD. You can use this to replace anything. --------------------------------------------------------------------- LPB [PATCH|SPRITE] Load a new picture into a WAD file from a windows BMP format file. If the object exists then it replaces the object otherwise a NEW picture will be created. Existing pictures will be replaced in the relevant list but any new object will always be created in the patch list unless the optional PATCH|SPRITE] argument is used to explicitly specify the list to load the new object into. (See notes about importing external bitmaps) --------------------------------------------------------------------- LPR [PATCH|SPRITE] Load a new picture into a WAD file from a raw binary format file. If the object exists then it replaces the object otherwise a NEW patch will be created by default unless the optional PATCH| SPRITE] argument is used to explicitly specify the list to load the new object into. --------------------------------------------------------------------- LTB [width] [height] This command automates the process of creating textures. Given a BMP file it will load the file into memory as a patch called and will then create a NEW texture with the same name as the patch. The patch is always positioned at the top left corner of the new texture. If height and with are not given then the texture will be created the same size as the patch. Read the creating new textures section for a warning on texture sizes i.e make your bitmap a binary power of 2 in width or set the height and width manually. The handle must be a loaded WAD as the new patch must be associated with the wad. The new patch that is created is built into the PATCH list unless is is an already existing name then it will be replaced with the new bitmap for the texture. Be careful with your naming. (See notes about importing external bitmaps) --------------------------------------------------------------------- MCOPY [start_obj] [end_obj] Copy is used to copy multiple objects between WAD files or between a WAD and a gallery. If the copy is WAD->WAD then all ojbects from and including to are copied. If the destination is a gallery then only non-zero picture format objects will be copied. You can use this to copy all of the active patches to a WAD for saving, when copied in this way the patches will be placed between the relevant START/END markers, these will be created in the WAD if they dont exist. If the start and end objects are omitted then the entire WAD is copied across to the destination handle. --------------------------------------------------------------------- MOVE This will move an object within a WAD file, you can use it to reposition objects. It will move the entry to be after dest_entry in the directory list. --------------------------------------------------------------------- SDW [PWAD|IWAD] Save a memory resident WAD file to either a PWAD or an IWAD, if the IWAD/PWAD argument is missing the file is saved as a PWAD by default. DO NOT save you pwad to any file name that is already open/loaded. When WACKER loads a PWAD with LDW it leaves the file handles open to make access faster. The last time I tried it it junked loaded file. --------------------------------------------------------------------- SOB This command will attempt to save the given object as a windows BMP format file. The object name given must be a DOOM picture format object. WACKER attempts to verify the object by checking the header of the object as if it were a picture and verifying that the header parameters are within some set limits. --------------------------------------------------------------------- SOR Save an object from within a WAD to a binary file in raw binary format file. --------------------------------------------------------------------- SPB Save a entry from the picture gallery to a windows format BMP file, the handle is not needed as this is provided by the association of picture gallery. --------------------------------------------------------------------- SPR Save a entry from the picture gallery to a raw binary file, the handle is not needed as this is provided by the association of picture list. --------------------------------------------------------------------- Notes about importation of external bitmaps in GIF/BMP files: The 2nd object parameter can be used to force WACKER to store a resource at a particular point in the PWAD i.e within S_START/END. If the operation replaces an object then this parameter is ignored When WACKER imports a graphic file it will convert the palette of your file to an equivalent colour on the doom palette. It is not always possible for WACKER to exactly match the colours, it will do the best job it can and find the closest match. If you wish to have transparent colours in your patches then use the following colour value: Red=0 Green=255 Blue=255 Once imported into wacker the cyan transparent regions will vanish and be converted to transparent areas. I have found that corel draw seems to do some gamma correction on images and so everything comes out a little darker. --------------------------------------------------------------------- The END