-
Content count
756 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
News
Everything posted by MTrop
-
by Matt Tropiano Official Website Official Releases Github | Issues Latest Release Screenshots: Why, hello there! This thread is the official DoomWorld thread for DoomTools. All feedback and questions should be posted to this thread, as well as some tips and tricks for other users. If you've heard of DECOHack or DoomMake or WadMerge, you'll find them in this thing. Please follow this thread (or just pay attention to it) in order to be notified of when updates get released. This will be actively read and updated. To install, unzip/untar the release to its own directory, and then add that directory to the list of directories in your PATH environment variable. OR, optionally, if you use Windows: Use one of the provided Windows Installers, which will do that stuff automatically! You can even download a version that contains a minified Java Runtime Environment so that you don't need to install Java separately. Or, if you already have DoomTools installed, you can type this at the command prompt/terminal to update (you may need to elevate privileges on some systems): doomtools --update DoomTools requires Java 1.8 or better. Packages are available for CMD (Windows) or Bash (Cygwin, macOS, Linux, WSL). Where to get Java if you aren't using an installer (and also in case you never played Minecraft) in descending order of recommendation: Azul Systems: https://azul.com/downloads/ Adoptium: https://adoptium.net/temurin/releases/ Microsoft: https://microsoft.com/openjdk Oracle: https://java.com/en/download/ What is (or are) DoomTools? DoomTools is a set of command-line utilities (with GUI implementations) for building projects or for other things related to Doom Engine games. Lots of useful stuff. You can even use DoomTools (and specifically DoomMake) to build your projects via some kind of Continuous Integration solution. Be the nerd you want to see in the world! You said these tools need Java? Yup. DoomTools requires Java, and is built on the DoomStruct library, also made by the guy who made these tools! You can run them anywhere! But I hate Java! Horsefeathers. You know you installed Minecraft at some point! That thing was practically the only reason anybody installed a JVM in the past decade or two! But I hate Oracle! Yeah, me too. Luckily, other JDKs exist, like Azul Zulu (OpenJDK) or Adoptium Temurin (also OpenJDK) or OpenJDK Builds from Microsoft! Fully compatible with DoomTools - DoomTools was built and tested in OpenJDK. Or, you can use one of the installers that embed Java into DoomTools. Easy-peasy! What sorts of utilities are included? I'm glad you asked! There's a whole bunch of them! DoomTools — A program that just displays info about the toolset that you are using (or manage other things, in the future). DecoHack — A utility that uses a DECORATE-like language scheme for creating DeHackEd patches. DImgConv — A utility that bulk converts images to Doom formats. DMXConv — A utility that converts all sorts of sounds to DMX digital sounds using either the Java SPI or FFmpeg. DoomFetch — A utility that fetches WAD files from different sources. Can serve as a dependency manager. DoomMake — A project build utility that is agnostic to all operating systems (for the most part). WadMerge — A utility that performs Script-based WAD compilation and merging. WSwAnTbl — A utility that reads DEFSWANI/SWANTBLS data files and compiles it into ANIMATED and SWITCHES lumps. Can also export a set of ANIMATED and SWITCHES lumps to a definition file. WadTex — A utility that reads a DEUTEX-style texture file and imports it into a WAD file as TEXTUREx and PNAMES lumps. Can also export TEXTUREx/PNAMES in the same way. WTexScan — A utility that scans maps in a WAD and outputs a list of found textures and flats, suitable for import into the next program... WTEXport — A utility that exports textures from one WAD into another, including associated ANIMATED and SWITCHES textures. WadScript — A scripting system for doing practically anything with Doom stuff. Also includes Rookscript, a subset script. Other DoomTools and the accompanying materials are made available under the terms of the MIT License. Older Threads With Some Other Info DoomMake Thread (Up to date) Older DoomTools Thread (DMXConv, DImgConv, DECOHack, DoomMake) First DoomTools Thread (WadTex, WSWANTBL, WTexScan, WTEXport, WadMerge, WadScript) Don't delay! Use DoomTools today!
-
I can't take all the credit - credit goes to @Napsalm for verifying that it was a bug in the first place!
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.11.08-RELEASE This release fixes some important bugs, so upgrade pronto! Also, @exl, you might want to double-check what index you are writing sounds from in WhackEd - the sound entries are supposed to start at 1, not 0 - I double-checked this with DeHackEd 3.1. Changes ------- - **2024-10-19** Added `--java` switch to DoomTools (and About Java dialog to GUI). DECOHack -------- ### Changed for 0.34.0 * `Fixed` Any clause that sets intervals (freeing things, protecting states) may create a condition that causes an endless loop. (Issue. #119) * `Fixed` Sound entries were off by 1 due to a misunderstanding of what index sound entries started at. (Issue #120)
-
So, I'm trying to solve a perplexing issue regarding Sound Indices when it comes to editing Sound info - do those entries start at 0, or do they start at 1? WhackEd starts them at 0, whereas it's 1 in function calls and everywhere else. So, is WhackEd wrong, or is it always off by 1 for the entries themselves? Issue in question: https://github.com/MTrop/DoomTools/issues/120
-
Hmmm. This is a perplexing bug, and has to do with how I'm storing which indices are protected. Created an issue: https://github.com/MTrop/DoomTools/issues/119
-
All of my maps that I've made before have been bad. But the latest ones I'm making? they're good.
-
I set the max values to what was the max in Whacked and other editors. I'll have to look at the tables to figure out what the true maximums are.
-
So I guess the question I then have is, is this an error in implementation or an error in DECOHack? If the port in question is not setting the correct value, then it's on the port to fix, rather than making the utility account for an implementation mistake. It doesn't make sense to me that setting a value in DeHackEd should set the incorrect one port-side.
-
Not a bug. Barons and Hell Knights are already part of Projectile Group 1, so it is not considered a change, and will not make it into the patch.
-
New Release: https://github.com/MTrop/DoomTools/releases/2024.10.03-RELEASE Changes ------- - **2024-10-03** Updated DoomStruct to `2.17.0`. [Changes here.](https://github.com/MTrop/DoomStruct/releases/tag/2.17.0-RELEASE) WTEXport -------- ### Changed for 1.6.0 * `Fixed` Some new textures that "existed" but had different patch ordering or no new patches were not copied over. (Issue #118)
-
I don't think it needs special treatment - whatever WAD you use as your "base" WAD file in WTEXport will not have its data copied over (it doesn't need to be a full IWAD). So, if id1-res.wad gets used as the base resource, only its texture entries (not data) get used as the base to build the new texture data, which means the player using a new PWAD that uses its resources plus others from other texture WADs will need to include id1-res.wad when they play.
-
MTrop's Doom Tools Update (DMXConv, DImgConv, DECOHack, DoomMake)
MTrop posted a topic in Doom General Discussion
HEY, EVERYBODY! Head over to the Official DoomTools Thread in Doom Editing if you want up-to-date release notes and notifications. ALL new updates will be there, so FOLLOW that thread if you want to be notified about updates! There's an INSTALLER now! No more PATH putzing! It will even embed a (smaller) JRE if you don't have Java! STILL IMPORTANT: You'll need Java 8 or higher installed to run these! NOTE: If you already have DoomTools installed (and on your PATH), you can just type doomtools --update at the command line and it will update in-place! Main Website Github Repository Latest Releases (Windows CMD and BASH) The First Thread Installation (Same as Last Time) Unzip/untar the release to its own directory, and then add that directory to the list of directories in your PATH environment variable. You again? What's this about? Hey, everybody, I'm MTrop. You may remember me from enjoyable WADs such as this 22-year-old pile of junk that people somehow still like and this short romp that's pretty okay I guess. But did you know I'm a programmer? ...you did? Well that's good, because I've got more programs for ya! As with the previous thread, this is a set of utilities written in Java and built on this fantastic library that I also wrote (DW thread here). Since I went over a bunch of the utilities in the last thread, I'm only gonna go over the new ones here, and let me tell you: you're probably gonna want to use them. DMXConv SLADE3 does an okay job at converting sounds from WAV to Doom's DMX format, but you are like me and chuck your sounds in a project tree and want to convert all of them at once for importing later, this'll do it! Works best if you have FFmpeg on your PATH or somewhere on your computer - then you can convert practically EVERY SOUND FORMAT THAT EVER EXISTED to DMX! If not, it'll still use the existing Java SPI framework for conversion, if you want. dmxconv sounds/*.wav -o ./converted/sounds Typing `--help` will give you more options and explanations. Keep in mind that this is a one-way utility - it does not convert from DMX back to other formats. DECOHack I think you're really gonna love this one. Are you ready? Because I don't think ya are! Have you ever wanted to create some kind of insane mod for Vanilla Doom (and other classic Dooms) but wished that there was a better programmatic way to write weapon, ammo, sound, string, par time, and thing definitions with a DECORATE-like language? Introducing DECOHack, the thing that does exactly that! DECOHack takes a file (or series of files) written in a DECORATE-ish language and turns it into a DEH/BEX file that can be loaded into your favorite source port, or patched into your favorite executable via DeHackEd! Supports all patch schemes up to Extended (aka DEHEXTRA). decohack code.dh --output dehacked.deh Hate backpacks? Turn them into BFGs! #include "classpath:decohack/doom19.dh" #include "classpath:decohack/constants/friendly_things.dh" // copy BFG pickup into backpack thing MTF_BACKPACK : thing MTF_BFG { //keep ednum, though ednum 8 } Make an Imp with a worse attack! #include "classpath:decohack/doom19.dh" #include "classpath:decohack/constants/friendly_things.dh" thing MTF_IMP free states thing MTF_IMP "Worse Imp" { health 200 speed 12 clear states States { Spawn: TROO AB 10 A_Look Loop See: TROO AABBCCDD 3 A_Chase Loop Melee: Missile: TROO EF 8 A_FaceTarget TROO G 6 A_BruisAttack Goto See Pain: TROO H 2 TROO H 2 A_Pain Goto See Death: TROO I 8 TROO J 8 A_Scream TROO K 6 TROO L 6 A_Fall TROO M -1 Stop XDeath: TROO N 5 TROO O 5 A_XScream TROO P 5 TROO Q 5 A_Fall TROO RST 5 TROO U -1 Stop Raise: TROO ML 8 TROO KJI 6 Goto See } } The sky's the limit (within reason, as it is still limited to Doom engine quirks and limitations)! If you're worried about how many states you have left (in total or action-pointer allocated), you can run DECOHack with the `--budget` switch. Full help available via the `--help-full` switch. You can do a lot! It's all documented, even the worst of Doom's hardcodings! DoomMake You've stuck with me long enough - I think you're finally ready for the big guns. Have you ever wanted to start a new project, but didn't want to organize everything, and still have it produce WADs that you can maintain in a code versioning system like Git, compile together in an automated fashion, or keep providing builds via an ultra-nerdy thing like Continuous Integration? Well, in case that's you, you're in luck! DoomMake is here to help you build that giant project with all sorts of bells and whistles with a single command, and produce something compiled together and playable (and with some setups, a reduced texture set)! It leverages WadScript and turns it into a do-anything-you-want build tool that isn't tied to one operating system or environment. You can even call all the rest of the tools in the DoomTools toolset! You can start a new project with maps and new textures sourced from WADs: doommake newproj --new-project maps-texturewads Or even a giant vanilla mod from scratch with all sorts of things, and make it Git-repository-ready: doommake newproj --new-project maps-assets-textures decohack run git And then when you want to build your project in it's current state, you just switch to its project directory, and... doommake It's that easy! Want to feel its power? Try cloning and building this project for starters: https://github.com/MTrop/doommake-example As always, chuck some issues my way if stuff doesn't work, or if you've got some feature requests. Follow the GitHub repository to be notified of updates and releases. Happy Dooming, y'all! Make some cool stuff! -
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.09.11-RELEASE This fixes a small, but important bug. DoomMake -------- ### Changed for 0.26.1 * `Fixed` Fixed a typo in utility-created `doommake.properties` files. WTEXport -------- ### Changed for 1.5.4 * `Fixed` Some texture sets were being erroneously classified as STRIFE-formatted texture sets due to a typo.
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.09.05-RELEASE You will probably want this release as it updates a long-standing bug in graphic conversion. Changes ------- - **2024-09-05** Updated DoomStruct to `2.16.0`. [Changes here.](https://github.com/MTrop/DoomStruct/releases/tag/2.16.0-RELEASE) DImgConv -------- ### Changed for 1.4.0 * `Fixed` Palette index 255 was considered for color matching. This is incorrect on patches/graphics (but correct on flats).
-
DoomTools: WadMerge is merging backup WAD's as a whole lump into the build WAD
MTrop replied to Wavy's question in Editing Questions
Yeah, the sprites folder by default will merge in individual files, assumed to be patch-formatted sprites. It wasn't meant for WAD files. Glad you found a solution for your use case, though! -
Just wanted to chime in to say I wholeheartedly recommend using this tool, because I've been using it a lot in the past (and soon, the future!).
-
I opined on DECOHack becoming a first-order language in the past - I wasn't exactly for it for reasons outlined in the post:
-
DOOM + DOOM II -- Launch straight into iwad?
MTrop replied to chelseathepanmess's topic in Doom General Discussion
You can also skip the intro movies/screens by adding -skipmovies, like so: doom.exe -skipmovies -iwad doom.wad -
It's okay. Anything "preprocessor" is going to be a tricky thing.
-
You can make multi-line defines by using the backslash newline escape, like so: #define A_SuperFatAttack { \ A_FatAttack1 \ A_FatAttack2 \ A_FatAttack3 \ } I forget if I mentioned that anywhere in the README, haha.
-
At the moment, no. I had answered a question like this in the other DoomTools threads,so I'll repost it here: There is currently no way to convert a DeHackEd patch to a DECOHack source file. There is critical information lost in a DeHackEd file that would enable me to create a human-readable patch of some kind that makes sense, such as how states link to Things or Weapons. It can be inferred through some references, but in order to be correct, I would need to try to group together states in a meaningful way via the "Next State" indices (which is not always helpful), and then create stubbing for each Thing or Weapon that points to those states. All of that would require a lot of work and assumptions that I can never be sure of 100%, and even then, you'd still need to break up the results into something meaningful to yourself. Maybe one day when everything else is done I'll look into seeing if it is feasible in some way, but for the moment (and the future), it can not and will not be done.
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.08.07-RELEASE DECOHack -------- ### Changed for 0.33.0 * `Added` `set next` clauses for manipulating the next sprite or sound index used in DSDHACKED patches. (Enh. #116) * `Added` `set next` clause for manipulating the next thing index used in `auto thing`.
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.07.14-RELEASE DECOHack -------- ### Changed for 0.32.2 * `Fixed` CLEAR STATES in an Each Thing clause did not clear states. (Issue #115) * `Fixed` CLEAR STATES in an Each Weapon clause did not clear states.
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.06.30-RELEASE DECOHack -------- ### Changed for 0.32.1 * `Fixed` Mass on Things can be negative, for real this time. (Issue #114)
-
New Release: https://github.com/MTrop/DoomTools/releases/tag/2024.06.13-RELEASE DECOHack -------- ### Changed for 0.32.0 * `Fixed` [GUI] Some autocomplete docs fixes/changes. * `Added` Added more valid string mnemonics to Boom patches (notably, Woof/ZDoom obituaries). DoomMake -------- ### Changed for 0.26.0 * `Added` DoomMake will check to see if it is already embedded in a project if `--embed` is used. * `Added` Code in base projects for specifying a "library" IWAD file for CI builds. * `Changed` New projects that convert assets and textures will build them into the project build directory, and merged from there. * `Changed` Fixed documentation/comments in the created build scripts. WadMerge -------- ### Changed for 1.11.0 * `Changed` MERGETEXTUREDIR now works on a "P" namespace if it exists in the target buffer.