Doom Mod Manager by Evil-Soft =============================== 1.0b - Last updated 12/10/2023 @ 7:33 pm EST. --------- [Read me] --------- Table of Contents : ------------------- 1. Standard Legal Boilerplate, rights, copyright, etc 2. What this is? 3. Rationale behind creation 4. Setup / How to use 5. FAQs 6. Version History 7. Other Relevant Info 8. Contact Information ======================================================== 1. Standard Legal Boilerplate, rights, copyright, etc : -------------------------------------------------------- Copyright 2022 Evil-Soft. All Rights reserved. This program grants you the user *no rights*, either implied or otherwise. 2. What this is? : ------------------ Doom Mod Manager, put as simply as possible, is a tool to facilitate playing various Doom Mod combinations. This is accomplished via Prefabs. Prefabs are just lists of files used by ZDoom; .pk3 files for mods and .wad files for PWADs and their level or other data in any combination. DMM allows you to save these combinations, add and subtract files from them, and save them as another Prefab. So, if you for example, want two different Prefabs; one for Brutal Doom with the Metal soundtrack and one without, you can easily do this by creating an initial Prefab without that file, save the Prefab, add the metal soundtrack, then save it again as another Prefab. 3. Rationale behind creation : ------------------------------ A few reasons : I had traditionally made batch files to run ZDoom mod combinations. Online I had seen other people explaining how to run Doom mods by dragging and dropping them onto the ZDoom/GZDoom executable and letting it figure out the rest. Or adding them to the ZDoom/GZDoom INI file in the autoload section or elsewhere. With respect, I think these are both bad approaches. One, they've got to be re-edited each time you want to run a different set of mods. And two, sometimes the mods require a specific load order to run the way the user expects. Three, with a batch (or script) file you can easily run any Doom mod combination without any additional work. Once it's created, all you have to do is double-click it to play that set of mods. Forever. IE - It only needs to be done ONCE and never again, eliminating repetitive and redundant actions. I had explained this approach to some seemingly otherwise computer-saavy people on various forums and I was surprised to find out people didn't even seem to know that they could do this or even what batch files were. So, I looked around at various tools to easily combine mods and there were a few, but tied to Windows primarily and didn't seem to promote good mod and PWAD organization. So, this tool is meant to address all these issues : Both good organization for mod and PWADs and to automate the process of making batch / script files, trivializing it. 4a. Setup: --------------- (* Note that DIRs = Folders *) On first run the program will create a default INI file to store its settings. This file will be automatically saved on exit or if the user initiates it through the menu. The first thing you should do as soon as this has happened is navigate to the Source Port tab and set the DIRs for all your Doom files. The program works best if there is a main DIR and all the subDIRs branch off of that. For instance, ZDoom DIR containing a subDIR for PWADS, IWADS, and Mods. The PWADs and Mods DIRs can then have subDIRs for each game's files; Doom, Doom 2, Heretic, Hexen, etc. In the DMM this main DIR is known as the Base DIR. This isn't required, but it will make use of the program a more speedy process. The various fields for DIRs can be copied and pasted into the other fields and then set to each respective appropriate DIR using the DIR navigation field to the right of them. The Prefabs and Batch Files DIRs are created if they don't exist and set as the default DIR for these files. These can of course be altered and changed if you want. The various Prefabs created are automatically saved in the Current Prefab List. This can also be changed in case you want completely seperate sets of Prefabs. The Mods and PWADs Locations allow the buttons labelled as such on the main "Mod Selection" tab to let you easily fly around to these subDIRs and add the files to the Prefab. The ZDoom DIR button location is derived from the DIR of the(G)ZDoom.exe field on the DIRs tab. There is a default IWAD, the main game file for Doom, Doom 2, Heretic, or Hexen. If you find you use more mods from one game or another, you can set this here and the new Prefabs will include it unless you alter that. After all the DIRs are set, type a name into the Source Port drop down and click save Source Port. A red asterick will show to indicate the Source Port list has been modified. If you're happy with your setup, navigate to the Source Port menu and click Save Source Port List. This will save the Source Port list as it is, add this Source Port to the list and will be automatically selected next time you load the DMM. Lastly, the Bookmarks section lets you add DIRs you commonly use and label them. To do so you enter a Bookmark Name in the Name field, pick a DIR with the DIR selection box to the right of it, and click Add. These are then accessible on the Mod Selection tab to easily jump around to the various DIRs and add the files you want to the Prefab. It's most important to set the location of the ZDoom or other Source Port itself so the main executable can be added to the batch / script files. If this isn't done, the batch / script files won't work. 4b. How to use : --------------- The general use of this program is as follows : Once setup initially and all the DIRs are established, you use the ZDoom, Mods, PWADs DIR buttons and the Bookmarks dropdown to navigate to your files, select them in the file list box on the left, and click the large checkmark button in the middle to add them to the Prefab on the right. (There are also keyboard shortcuts for just about everything described in the Changelog below or next to each menu option.) If a wrong file is added, selecting it in the Prefab and clicking the large Delete/"No" button in the middle will remove it from the Prefab. If files are added in an order that causes them not to work as expected then you can reorder them using the arrows under these two buttons. This will move the selected file in the Prefab up or down. If you need to add files from another DIR other than the main ZDoom, Mods, Prefab DIRs or your set Bookmarks, then you can use the DIR navigation above the file list on the left or add specific files via the individual file selection box below the list of files. Once you have all the files in your Prefab selected and you've selected the appropriate IWAD, you can then save your Prefab. You do this by entering a name in the "Prefab :" text field above the list of Prefab files and then clicking Save Prefab on the "Mod Selection" tab or via the menus under "Prefabs". If it already exists as a Prefab, you will be notified and asked if you want to overwrite it. If not, you will be given the option to save it as something else. If neither of these options is taken, the save operation will be cancelled and you'll have to decide what you want to do before attempting again. If you need any other unique commands added to the Prefab for ZDoom, you can enter these on the ZDoom tab and they'll be added to the batch / script files created. To add this Prefab to the Prefab list, click on the menu "Prefab List" -> "Save Prefab List". This list will be loaded on program start allowing you to easily jump back to a Prefab you want to play or alter. Once you've got everything how you want it; All the files in the Prefab, the IWAD, and have saved it and the list, you then have DMM make you a batch or script file that you can run in either the DMM itself or in the file explorer or command line for your OS. You do this by clicking "Make Batch File". It'll give you a message of the Prefab name it saved to and where and also show it in the box to the left of "Make Batch File". To run the Prefab, either click the run button with the Doom II logo or on the aforementioned file explorer or command line. If the batch or script file already exists (IE - It was already created previously), it'll be overwritten. Something to be aware of, but, in most cases, this'll be what you want anyways. That's it! Happy Dooming! 4c. How to : --------------- - Q : Play the Prefab A : Add the files to your Prefab, save it and the Prefab List, make a Batch File, and then click the Doom II button (Or hit F3 or click the menu "Doom" -> "Run Doom"). - Q : Play just a level with a Source Port A : Setup the Source Port as explained above. Then just add the PWAD (level file) to the Prefab and save it and the Prefab List. You then only have to make a Batch file to be able to play it. Any Prefab is not playable until it's saved and a Batch File is created. This is a very simple process though. - Q : Make multiple similar Prefabs A : A few ways. One is to make it (and Save it), copy the Prefab files to the Scratchpad, clear the Prefab, then paste it back to the freshly cleared Prefab. You can Copy/Paste the Prefab files via the menu "Edit" -> "Copy/Paste Prefab" or "Prefabs" -> "Copy/Paste Prefab". Another way is to create or load an already created Prefab, alter it, and then click the menu "Prefab" -> "Save Prefabs As..". - Q : Bookmark a location I use often A : Go to the "Settings / Bookmarks" tab, type the name in the Bookmark Name dropdown, then either set the Bookmarks location (or hit "Get Current DIR" to copy the one currently selected on the Mod Selection tab). Then click the Add button above the Bookmark DIR dropdown. All these actions can also be accomplished via the appropriate menus. - Q : Reorder or alter my Prefab, Bookmarks, or SourcePort lists A : Go to the Reorder tab, select the list you want to reorder to load it, and then use the various sorting options. After you've selected how you want to sort it, click the Sort button to sort it according to the options. You can then alter it by hand by selecting the entry in the list and using the Up/Down buttons (or keyboard commands) to have a custom order. You can also remove entries from the list via this tab. Note that the list is not saved until you specifically go and save it via the menus or keyboard shortcuts. So, IE - The changes won't be reflected on the Mod Selection, Source Port, or Settings / Bookmarks tab until you do. Which, upon doing, will save and repopulate the dropdowns on the other tabs. This is meant to prevent you from inadvertantly making a mistake and not being able to easily get back. If you don't like the newly sorted list, you can simply reselect the list from the dropdown and the changes will be cleared back to the last time you had saved the list. - Q : Know if what I did was successful. It didn't tell me anything. A : The results of nearly every action in the DMM are written to the Console. So, if you did something and didn't get a message of any sort, you can check the Console and see if that tells you. Most likely it will. - Q : Do something not explained here A : Get in touch with me via the post on the forum or the below points of contact and I'll do my best to help you. 5. FAQs : --------- - Q : Does this work with other Doom Engine games such as Heretic, Hexen, or Strife? A : Yes! It works with any Doom engine Source Port and any valid IWAD (main .WAD file). - Q : If I created a Prefab but forgot to save the list, can I still add it somehow? A : Yes, go to the menu "Prefab" -> "Import Prefab". Then save the Prefab List via "Prefab List" -> "Save Prefab List". - Q : Will there be a Mac or Linux version? A : Yes, eventually. I'm taking a break from the development on it outside any bugs brought to my attention but I will eventually probably take this on in early fall, most likely around late August or September. - Q : The lower fields on the Scratchpad don't get copied. Is this normal or a bug? A : I just haven't added the code to copy/paste those fields. It's not a complicated addition, but I'm not sure it's best to overwrite those fields every time someone wants to do a copy/paste of the files for the Prefab. Plus, you can do the same thing by having multiple similar Prefabs. So, unless some people tell me they want to be able to do that, they're just non-functional at the moment. - Q : I found a bug or I have a feature request. How can I let you know? A : Either of the points of contact below are the most expedient way to get in touch with me about it. I'll probably need your log file and a description of what you did to cause the bug in order to replicate it and trace the problem. Also, any of the other places where I've posted this; any of the forums I've posted to, are good places although I might not see those as quickly. 6. Version History : -------------------- - 5/31/2022 - 0.92 - Pre-Beta version sent to testers for QA . - 5/31/2022 - 0.92a - Fixed the program starting using "C:\Games\Windows\ZDoom". - 6/1/2022 - 0.93 - Improved handling of selection of the Prefab. - Added ability to specify a Config file for Doom. - Added saving of Config file settings to Prefab. - Added saving of "Extra Command Line Options" to the Prefab. - Fixed the program starting using an invalid DIR. On first run it uses the program DIR as a default. - Improved DIR button & Bookmarks speed. - Added Console functionality and messages. - 6/2/2022 - 0.94 - Fixed a bug on switching back to main form after displaying the About form. - Fixed the File parameter for the Batch file in cases where there's no files. If so, the File parameter isn't added. - Added quotes around the Doom executable name in case there's spaces in it. If there were, they wouldn't run. This should be fixed now. - Added Console logging to a file. - Added toggle to turn Console logging on and off. - Console logging toggle saved to Settings file. - Added ability to save current Console to the log file if the Console logging isn't toggled on. - Added Open Prefab file box on DIRs tab - Implemented the following menus : - File menu : Save Console - Edit menu : Add File to Prefab Delete File From Prefab Preview Batch File - DIRs : Doom .exe Location Default IWAD Base Location Mods Location PWads Location IWADs Location Batch Location Prefabs Location - Prefabs : Open Prefab Clear Prefab - Help menu : Evil-Soft website - 6/5/2022 - 0.95 - Improved how Settings, Bookmarks, and Prefab_List are handled, allowing them to be reloaded on-the-fly and enabling deletion of entries. - Added a file selection box on the DIRs tab for the Bookmarks file. - Better logging : Now tells the user the number of Prefabs and Bookmarks read. - Added button on DIRs page to remove a selected Bookmark ("Del") - Added menu : Bookmarks - Implemented the following menus : - Bookmarks menu : Add Bookmark Load Bookmark File Remove Bookmark - 6/8/2022 - 0.96 - Logging now on by default - Added preliminary fields and DIRs for Source Ports - Added ability to load Prefab Lists on DIRs tab - Implemented the following menus : - Prefab List menu : Open Prefab List Reload Prefab List - Prefabs menu : Remove Prefab Copy Prefab Paste Prefab Rename Prefab - Edit menu : Copy Prefab Paste Prefab - 6/12/2022 - 0.97 - Added quotations around each file parameter added to Batch file - Altered Bookmarks dropdown to show a label by default - Source Ports implementation : Now DIRs are stored in each source port INI. The list is saved in the Settings.ini. I don't have plans to make the Source Port list used alterable in any way other than the user going into the Settings file and hand-altering it as adding yet another file selection box is just getting sheer stupid. - Added Source Port Menu - Added the following Menus - Source Port : + Select Source Port + Open Source Port + Save Source Port + Delete Source Port + Rename Source Port + Save Source Port List + Open Source Port List - Implemented the following menus : - Prefab List menu : Save Prefab List As.. - Source Port : Delete Source Port Save Source Port List - 6/17/2022 - 0.98 - Fixed : Bug with renaming not setting the field of the name in the appropriate INI file. This affects both renaming SourcePorts and Prefabs. - Fixed : Removing and opening Prefabs messes up the reported count on the Console. - Fixed : Opening a Prefab from the menu should find the Prefab in the list if it already exists, but this was comparing the file rather than the name, which would always report the Prefab as being new. This now correctly compares the name rather than the file to what's in the list and will appropriately load the Prefab if it's already in the list and jump to it. - Improved logging layout. - Added * notification when SourcePorts or Prefabs are modified to indicate to the User that they need to save the SourcePort list or Prefab respectively. The * shows as blue if the Prefab List needs to be saved to reflect the changes and red if the Prefab itself is altered. - Implemented the following menus : - Source Port : Open Source Port Open Source Port List Select Source Port Rename Source Port Save Source Port - 6/20/2022 - 0.98a - Altered : Removing files from Prefab now gives more info. - 6/21/2022 - 0.98b - Improved Saving Source Port. Now includes option to Overwrite. - Made StartUp not do anything if the SourcePort in the list is an invalid selection. This can happen a number of ways; Deleting a SourcePort and then immediately exiting for instance. - Added & Implemented the following Menus - Prefab List : + New Prefab List - Prefab : + Import Prefab - 6/23/2022 - 0.99 - Selected page is now saved. - 7/4/2022 - 0.99a - Initial Keyboard support. Added the following : - F1 - Help file - F2 - Select SourcePort - F3 - Preview Batch File - F7-F12 - Jump to tab - Ctrl-F12 - Console - Ctrl-C - Copy Prefab - Ctrl-V - Paste Prefab - Ctrl-S - Save Prefab - Space - Transfer file to Prefab - Del - Delete file from Prefab - Current SourcePort is shown on Mod Selection, though it will overflow past other controls if it's too long. I will eventually fix that. - 7/7/2022 - 0.99b - Fixed tab order, though it appears to do nothing. - Fixed a bug where making a new Prefab List cleared the Prefab List even if cancelled. - Added keyboard shortcut key hints to all the menu options. - Completed keyboard support. The keys are the following : - F1 : Help - F2 : Select SourcePort - F3 : Run Doom - Ctrl-F3 : Make Batch File - Alt-F3 : Preview Batch File - F4 : Save Settings - F5 : Refresh - F6 : Go to Doom DIR - Ctrl-F6 : Go to Mods DIR - Alt-F6 : Go to Pwads DIR - Ctrl-Alt-F6 : Go to Current Bookmark DIR - F7-F12 : Jump to tab - Ctrl-D : Add Bookmark - Ctrl-B : Open Bookmarks File - Ctrl-N : Save Bookmarks File - Ctrl-F : Remove Bookmark - Ctrl-L : Bookmark -> Get Current DIR - Ctrl-W : Evil-Soft Website - Ctrl-E : About - Alt-Q : Exit Program - Ctrl-# : DIRs for SourcePort - Alt-C : Copy Prefab - Alt-V : Paste Prefab - Ctrl-S : Save Prefab - Ctrl-A : Save Prefab As - Ctrl-O : Open Prefab - Ctrl-I : Import Prefab - Ctrl-X : Clear Prefab - Ctrl-R : Rename Prefab - Ctrl-Del : Remove Prefab - Shift-Up : Move Prefab row up - Shift-Down : Move Prefab row down - Alt-Home : Previous Prefab - Alt-End : Next Prefab - Alt-N : New Prefab List - Alt-R : Reload Prefab List - Alt-S : Save Prefab List - Alt-A : Save Prefab List As - Alt-O : Open Prefab List + Ctrl-Alt-R : Rename SourcePort + Ctrl-Alt-S : Save SourcePort + Ctrl-Alt-X : Delete SourcePort + Ctrl-Alt-O : Open SourcePort - Ctrl-F2 : Save SourcePort List - Shift-F2 : Open SourcePort List - Shift-Space : Transfer file from Prefab - Shift-Enter : Transfer file from Prefab - Del : Delete file from Prefab - Up : Prefab row up - Down : Prefab row down - Alt-PgUp : Previous SourcePort - Alt-PgDn : Next SourcePort - Alt-Ins : Previous Bookmark - Alt-Del : Next Bookmark - Alt-# : Go to Bookmark # (1-10) - 7/8/2022 - 0.99c - Expanded DIR fields - Fixed a bug where Alt-Del, going to the next Bookmark in an empty Bookmark list would cause an out-of-bounds error. - Added button on Settings / Bookmarks tab to get the current working DIR from the Mod Selection tab for easy bookmarking. Tied to Ctrl-L. - Altered the copy and paste Prefab from Ctrl-C/V to Alt-C/V respectively to allow normal copy and pasting from text fields. - Added the following Menus - Doom : + Preview Batch File + Make Batch File + Run Doom - 7/9/2022 - 0.99d - Added Reorder tab. Note that the Reorder tab doesn't support keyboard shortcuts as I expect this to be a less frequently used part of the program and frankly there's too many already. - Added ability to reorder various lists; Prefab, SourcePort, & Bookmarks on Reorder tab - Changed Console tab shortcut to Ctrl-F12 to facilitate adding Reorder tab - Added the following Menus - Tab : + Reorder - 7/20/2022 - 0.99e - Improved Sort algorithm. Implemented QuickSort to improve sort performance. - Added checkbox on Reorder tab to allow for turning QuickSort on or off. If QuickSort isn't checked, BubbleSort is used as a fallback. - Sort type is now saved to Settings file. - Against my better judgement, I added shortcut keys to the Sorting menu. Also, there's now a Sorting Menu! - Added the following Menus - Sorting : + Move Entry Up + Move Entry Down + Remove Entry From List + Sort List + Save Selected List - 7/24/2022 - 0.99f - Added checking for duplicates on adding files to Prefab. - Checking for duplicates setting saved to Settings file. - Added prompt for removing files from the Prefab. - Removing files from the Prefab setting saved to Settings file. - Added a checkbox on Settings / Bookmarks tab to Autoload the last selected Prefab on startup. - Autoload Prefab and last Prefab selected settings saved to Settings file. - Removing files from the Prefab setting saved to Settings file. - Shifted around some of the checkboxes on the Settings / Bookmarks tab for better organization. - Fixed a bug where loading the Prefab selected would happen even if it was set to the default text of "(Prefab Name)". It couldn't load that, so it did nothing, which made it ultimately harmless. Now it won't even try which is even better. - Fixed a bug where the program would prompt you to delete a file after hitting remove file from Prefab even if the current Prefab was empty. - Added the following Menus - Prefabs : + Import ZDL - Added ability to import .ZDL files. This will also allow the user to import the ZDL config data for the IWAD and SourcePort associated with the ZDL file. It will prompt this immediately after loading the ZDL file. If the name of the SourcePort in DMM is named the same as in ZDL, then it'll automatically switch to that SourcePort. Loading the ZDL config is an *optional* second step and can be cancelled without messing up the ZDL file having loaded. After Importing the ZDL the Prefab and Prefab list must be saved to be reflected in the list. - Last DIR selected on Mod Selection now saved to Settings file and loaded on startup. If blank, defaults to program DIR. - Fixed a bug where selecting Bookmark 1 from the menu "Bookmarks" -> "Go to Bookmark #1" would cause an out-of-bounds error. - Fixed a bug where renaming either SourcePorts or Prefabs would report the wrong number if it was found in the list. - Added Bookmark names to each Bookmark number in the "Bookmarks" menu. - Added the Bookmark number you're adding to Add Bookmarks in the menu. - Added ability to rename Bookmarks. - Added the following Menus - Bookmarks : + Rename Bookmark - Added the SourcePort number and name to the "Source Ports" -> "Rename Source Port" menu prompt. - Added the Prefab number and name to the "Prefabs" -> "Rename Prefab" menu prompt. - Made file list to add on Mod files from sortable. Had to reprogram the default comparison for the control as the provided comparison is, well, crap, and doesn't sort by the different fields correctly. So, now, with how I reprogrammed it, they do. Note that the comparison is case-insensitive. - Fixed minor bug where removing a Bookmark was not reflected in the Bookmarks menu. - Added the following Menus - DIRs : + Mod Selection DIR + Select Mod File - Changed keyboard shortcuts for the DIRs menu to allow for addition of the above menu options. - Added Description for Prefab on Doom Settings tab. - 7/29/2022 - 0.99g (Last pre-1.0 release. This release brought to you by the band Municipal Waste and the letter U. - https://youtu.be/oMchF3XeRD4) - Added Prefab altered notification for the fields on the Doom Settings tab - Added Doom Command dropdown to more quickly add additional command line parameters for convenience. - Altered how Clear Prefab works to be more thorough. Now clears all the Doom Settings tab also. - On loading of Prefab, now loads the Batch file command for it if the file exists (Batch file has been created). If it doesn't, it just displays the current SourcePort command. - 8/4/2022 - 1.0 - Delete file from Prefab shortcut changed from Del to Shift-Del. - Clear Prefab changed from Ctrl-X to Ctrl-Space. - Doom Commands added starting with a '+' (IE - Console commands for the SourcePort) no longer add a '-' before them. - Added Doom Commands "Episode" and "Class". You'll have to close the program, delete the file Doom_Commands.ini, and let it be recreated the next time it starts up to see this change. Refer to the Doom Command line option list for more info : + https://www.doomworld.com/pageofdoom/parameter.html + https://zdoom.org/wiki/Command_line_parameters + https://doomwiki.org/wiki/Parameter - Added Auto Prefab loading to Refresh. - Fixed a bug where loading a new SourcePort wouldn't update the hover-over hints for the DIRs of the shortcut buttons (Doom, Mods, Pwads). - Added the following Menus - Source Port : + Copy Source Port + Paste Source Port - 8/27/2022 - 1.0 - Loading Prefab now tells the name of the Prefab in addition to the number in the list. - - 3/18/2023 - 1.0a - Slight interface improvement. - Initial Unix/OSx shell implementation. - Now Saves & loads the current Window Position - - 12/1/2023 - 1.0b - Now when Batch files are loaded the Batch Command area shows as whatever RGB color is set in Settings.ini. Controlled via button on "Settings / Bookmarks" tab in "Other Settings" section, "Batch File Found" color dialog. - Added checkbox to turn the IWad On/Off in Batch file creation. - IWad On/Off now saved with the Prefab - Added textbox for the File parameter ("-file" in Doom) to be able to use the DMM with other programs, Source Ports, or Editors. - File parameter now saved with the SourcePort. * Space after the file command now needs to be *explicitly declared* (via CheckBox after) as this allows source ports with no space between the command and the file (EG - Eduke32) to work. Default file command if none is read from the SourcePort file is '-file ' (Doom format). - Modifying any SourcePort field now shows as a change, denoted by the red '*' next to the SourcePort name. - Added the following Menus - Source Port : + New Source Port 7. Other Relevant Info : ------------------------ This program can alway be downloaded at the following links : - http://www.evil-soft.com/games.html - http://www.evil-soft.com 8. Contact Information : ----------------------- Email : DoomModManager@Evil-Soft.com Twitter : @EvilSoftGames Please report any bugs or usability issues to either of the above points of contact. Any constructive feedback, improvements, things you like or don't like, or ideas are welcome.