Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
MTrop

I Will Program Small Doom Utilities For You

Recommended Posts

DaniJ said:

I have to ask -- why are you doing that? As MTrop mentioned, most if not all actively maintained source ports provide options to do that "virtually" using features of their respective resource managers. Even Chocolate DOOM. Is this for use with ye olde doom.exe ?

Yes, part of it is for that flexibility, while part of it is for convenience. There's a third reason, though. I'm not sure if you've noticed, but there's been a lot of improvements made to weapon and some enemy attack/death animations and instead of including several parameters to launch a game, I'd rather just have an "enhanced" Doom/Doom 2 IWAD, if that makes sense.

Share this post


Link to post

I recently considered the idea of making a few Music Replacement wads by rearranging the order in which Doom 2's music plays for play in megawads or short episodes that don't have music lumps in them (such as Oblige or Slige wads), but I figured I'd eventually become wise to the order in which they're played, having made them in a lump editor myself.

Would you consider making a program that generates a wad of all of an IWAD's music, shuffled simply by renaming the lump names so that tracks come up in a different order each time a wad is generated?

Share this post


Link to post
Job said:

there's been a lot of improvements made to weapon and some enemy attack/death animations and instead of including several parameters to launch a game, I'd rather just have an "enhanced" Doom/Doom 2 IWAD, if that makes sense.

I'd rather use a modern port's autoload feature.

Share this post


Link to post

I've updated TEXtract to v0.9.5, which fixes an important problem:

0.9.5BETA
    Fixed a bug where it wouldn't detect namespace boundaries if they were
        the first entry in a WAD file. Whoops. Greater OR EQUAL, Matt...
Program links updated.

Share this post


Link to post

Hey, are you still taking requests? If so, I have one. How about a utility that automatically renames and compiles audio tracks into music wads for use with your favourite port. As it stand just now it's a rather tedious process of using Slade and manually renaming each track to their Doom/Doom 2 counter part. I would love to take, say, the Perfect Dark soundtrack and drop it into a utility that spews out a nice wad that I can just load up with ZDL et al.

Cheers for reading regardless. :)

Share this post


Link to post

Hi, I was trying to use texspy and textract to add textures from a texture pack to a wad (http://www.doomworld.com/vb/wads-mods/66152-one-sp-map-for-heretic-viridian-vault/) and textract keeps crashing on me. I don't know if I'm doing something wrong or if the program doesn't like the texture pack. In the end I moved the textures by hand, since there weren't that many. I'm using WinXP, Java 7 update 45 (1.7.0_45-b18).

(linebreaks inserted to not break the forum layout; will post without them if needed)

C:\Games\doom\vvault>texspy.exe vvault.wad | textract.exe  BAK_LEG.WAD 
                     -base c:\games\doom\heretic.wad -o vvtex.wad
TEXtract v0.9.5BETA by Matt Tropiano
Scanning c:\games\doom\heretic.wad...
    Scanning TEXTUREx/PNAMES...
    Scanning patch entries...
        93 patches.
    Scanning flat entries...
        66 flats.
    Scanning texture namespace entries...
        0 namespace textures.
Scanning BAK_LEG.WAD...
    Scanning patch entries...
        0 patches.
    Scanning flat entries...
        0 flats.
    Scanning texture namespace entries...
        1701 namespace textures.
Exception in thread "main" java.lang.NullPointerException
        at com.blackrook.commons.AbstractChainedHash$
           ChainedHashIterator.next(AbstractChainedHash.java:269)
        at com.blackrook.commons.AbstractChainedHashMap$
           KeyIterator.next(AbstractChainedHashMap.java:207)
        at net.mtrop.utility.doom.textract.TextureExtractor.scanWAD(Unknown Source)
        at net.mtrop.utility.doom.textract.TextureExtractor.execute(Unknown Source)
        at net.mtrop.utility.doom.textract.TextureExtractor.execute(Unknown Source)
        at net.mtrop.utility.Utility.go(Unknown Source)
        at net.mtrop.utility.doom.textract.Main.main(Unknown Source)
in case it matters, here's texspy alone:
C:\Games\doom\vvault>texspy.exe vvault.wad
Opening file vvault.wad...
    Opening map E1M1...
    Format is HEXEN...
        Reading SIDEDEFS...
        Reading SECTORS...
-TEXTURE
BANNER0
BONES01
CSTLRCK
DMNMSK4
DOORBIG2
DOOREXI5
ELECDOR4
EXITSIG2
FPLAT01
GATMETL2
GRNGREYV
LITEBIG3
METAL32
METAL64
METLSUP1
METX21
METX24
MIDBAR05
ROCK905
SAINT2
SKULLF3
SKY1
STNBAR11
STNBAR17
STNSUP12
STNSUPP1
STNSUPP2
STNTRIM6
STNTRIM7
SW1ON
SW50OFF
WEB1_B
WEB1_F
WEB3_M
WOODSL07
-FLAT
CSTLRCK
FLAT502B
FLAT502C
FLAT504B
FLAT504D
FLOOR01C
FLOOR231
FLSTON14
F_SKY1
LITEBIG3
METAL32
METAL64
METLSUP1
METX21
MGREEN1
STNFLR01
STNSUPP1
WOODSL07

Share this post


Link to post

You need to add the "-textract" switch at the end of the texspy command, like so:

texspy.exe vvault.wad -textract | textract.exe  BAK_LEG.WAD -base c:\games\doom\heretic.wad -o vvtex.wad
TEXTRACT shouldn't crash like that on a bad parse, though. I'll take a gander.

Share this post


Link to post

Oh, yeah, missed that switch completely. Thanks.

e: It's possible other people will make this error. If you update the error handling of textract, a message like "If you're piping from texspy, did you forget the -textract switch?" might be a good idea.

Share this post


Link to post

That is exactly what I was thinking. I'll probably post an update later this week.

Share this post


Link to post
MTrop said:

You need to add the "-textract" switch at the end of the texspy command, like so:

texspy.exe vvault.wad -textract | 
    textract.exe  BAK_LEG.WAD -base c:\games\doom\heretic.wad -o vvtex.wad


Actually that still didn't work, exact same crash and output as before.

Share this post


Link to post
plums said:

Actually that still didn't work, exact same crash and output as before.


Could you PM me a link with the VVAULT.WAD file so that I can take a closer look? I think that I already have BAK_LEG.WAD somewhere, so you don't need to link that one.

Thanks!

Share this post


Link to post

TEXtract has been updated! See the release post at the beginning of the thread.

0.9.6BETA
	Fixed a NullPointer which would occur if the source texture resource WAD 
		did not contain a set of TEXTUREx/PNAMES lumps. How embarassing.
	Added reminder message to error message on a bad input list parse.
	Special thanks to DoomWorld user plums!

Share this post


Link to post
Average said:

Hey, are you still taking requests?...
Cheers for reading regardless. :)


A simple yes or no would be fine. :P

Share this post


Link to post

Been busy as of late. Sporadically updating when I can.

So, no. Not until I start finishing other things, which may take a while. Sorry. :(

Share this post


Link to post

No worries. It was just a cheeky way to bump my post just in case you missed it due to the subsequent posts regarding TEXtract.

Thanks for replying. :)

Share this post


Link to post

Hi MTrop

Sounds like you are still busy, but was just wondering if you are still planning to work on the MD2 Tool GUI.

Im sure its still on your list some were and its always cheeky to follow up on somebody doing a free favour....but just wondering :p

Its just that Doom Ascension models are getting an overhaul and as a result there is loads of model conversions to do and running the Md2 Tool through BAT commands and stuff is tedious.....I so need a drop and drag GUI thingy-mo-bob lol

Share this post


Link to post

Yeah, sorry. :(

I'll see if I can devote some time to it. The main thing would be a batching process of some sort, correct? Like a do-this-thing-to-multiple-things type of process?

Share this post


Link to post
MTrop said:

Yeah, sorry. :(

I'll see if I can devote some time to it. The main thing would be a batching process of some sort, correct? Like a do-this-thing-to-multiple-things type of process?


Not really needing a batch command, can do that with a BAT file if needs be. Often I have many MD2 models that I need to assign a texture to and then move onto the next one. While assigning this texture I would also like to build the gl nodes and ideally assign a skin texture size, though technically thats not too important as I think its ignored anyway.
So for example I may have a MD2 model called 'test.md2' and a texture called 'testtex.png'
My BAT file would look like this

md2tool test.md2 -skin 0 testtex.png
md2tool -gl test.md2

So what im after is a window with a few options, im thinking a field were I can simply drag the MD2 file to so the utility knows were the file is located and its name, and another field I can drag the texture name into, this field would only need to know the name, not the location. Then I can press 'OK' and walla done, its runs the commands above using the names in the fields and updates the MD2 file.

As extras, if not too hard I would also like to be able to assign a skin size from maybe a selection of skin choices 32 x 32 up to 1024 x 1024. The command for that would be

md2tool test.md2 -skinsize 128 128

Having an option to also convert an MD2 model to DMD and reverse may be cool too.

Hope that made some sense and not asking too much.

Share this post


Link to post

Hi, I was just using texspy and textract again and came across a small nitpicky bug: if there's an FF_START marker, textract expects an FF_END marker as well. Lots of texture packs use FF_START but only single-f F_END, so that vanilla doom can still load those textures without any extra tools. It would make sense for textract to look for F_END if it can't find FF_END I think.

Share this post


Link to post
plums said:

Hi, I was just using texspy and textract again and came across a small nitpicky bug: if there's an FF_START marker, textract expects an FF_END marker as well. Lots of texture packs use FF_START but only single-f F_END, so that vanilla doom can still load those textures without any extra tools. It would make sense for textract to look for F_END if it can't find FF_END I think.


Yeah, I found that as well. That should be a pretty quick fix.

I'll stick that in the Github issues page.

Oh yeah. I forgot to mention that the source code for this stuff is on Github now. I'll amend the first post.

Share this post


Link to post

Thanks! I'll use the GitHub issue tracker if I come across any other problems.

Share this post


Link to post

TEXtract has been updated!

This doesn't mean that I'm back on this, though. Still very busy, and I had a free moment.

Please note that anything new will require Java 7 or later (aka 1.7). One day this'll probably be 8. Stay up to date!

0.9.7BETA
	Asymmetrical lump markers used to denote flats and patches are now 
		detectable.
	Known "Null" textures will always sort first in TEXTURE1, unless the
		-nulltex switch is specified with a specific name. 
See the main post.

Share this post


Link to post

how about a utility that takes multiple maps and converts them into one map? so instead of exiting it could teleport you to the next area.

memorial comes into mind here.

Share this post


Link to post
Pure Hellspawn said:

how about a utility that takes multiple maps and converts them into one map? so instead of exiting it could teleport you to the next area.

memorial comes into mind here.


While interesting from a purely academic standpoint, I don't see very much practical use for something like this. In ZDoom, if you treat an episode as a single-cluster hub and give them all the same music, you get the same effect.

Share this post


Link to post

Could you program something in DOS? If so, could you make something that allows you to type doom level names in Doom's style\font? (I mean when it shows the "Finished: <level name>") or does this not count as small?

Share this post


Link to post
Fellowzdoomer said:

Could you program something in DOS? If so, could you make something that allows you to type doom level names in Doom's style\font? (I mean when it shows the "Finished: <level name>") or does this not count as small?


I think this might have been suggested before.

Pretty doable if it relies on the letter lumps in the IWADs (I haven't added FON2 support to the library yet).

Not adding to the list yet until I get more time to actually make an effort for getting back to this. :/

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×