Any utility that assists in the creation of mods, assets, etc, go here. For example: Ultimate Doom Builder, Slade, WadSmoosh, Oblige, etc.
Forum rules The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.
DM2CONV v3.2 by Vincenzo Alcamo (alcamo@arci01.bo.cnr.it) VERSION 951116
Ported by Ivan Ivon (ivan.ivon@gmail.com)
Interchange maps among [ULTIMATE] DOOM, DOOM II and HERETIC.
Usage: DM2CONV <input> [output] [/symbol[=[value]]]... <@response>...
input name of wad file to convert
output name of output file (if omitted, the source is overwritten)
symbol symbol to define (/symbol=value) or undefine (/symbol=)
@response name of response file
To convert levels from game_A to game_B use the appropriate response file,
following this convention: D=DOOM, UD=ULTIMATE DOOM, D2=DOOM II, H=HERETIC.
Example for DOOM to HERETIC conversion: DM2CONV input output @:DTOH
Example for DOOM II to DOOM conversion: DM2CONV input output @:D2TOD
If you use the wads built by GFXMAKER you should define the GFX symbol.
Example for HERETIC to DOOM conversion: DM2CONV input output /GFX @:HTOD
Full instructions are contained inside DM2CONV.DOC: this file and the official
response file DEFAULT.RSP are part of the DM2CONV distribution package.
REMEMBER: DM2CONV is PUBLIC DOMAIN (or FREEWARE if you prefer).
One of those utilities that is useful to have in a Win32 environment, thanks for this. Ill make a change on the Wiki page to reflect upon this version.
EDIT: Done.
Redneckerz wrote:One of those utilities that is useful to have in a Win32 environment, thanks for this. Ill make a change on the Wiki page to reflect upon this version.
EDIT: Done.
I did build it for Linux but the help text is the only thing that works; if processing a file it segfaults somewhere in the response file parser. It will take me a while to learn my way around this app's source enough to think of fixing it but given a couple of spare hours, it might be worth it as it would be fun to try some Doom 2 levels in Doom.
MartinHowe wrote:I did build it for Linux but the help text is the only thing that works; if processing a file it segfaults somewhere in the response file parser. It will take me a while to learn my way around this app's source enough to think of fixing it but given a couple of spare hours, it might be worth it as it would be fun to try some Doom 2 levels in Doom.
Linux call conversions differ from Windows one (something like edx, rsi, rdi vs. eax, edx, ecx). I think that getting rid of asm is the right way to do porting. Is you CPU x86? I'm not sure it can be ported to ARM as is.
Last edited by i2van on Mon Nov 02, 2020 2:27 am, edited 1 time in total.
MartinHowe wrote:I did build it for Linux but the help text is the only thing that works; if processing a file it segfaults somewhere in the response file parser. It will take me a while to learn my way around this app's source enough to think of fixing it but given a couple of spare hours, it might be worth it as it would be fun to try some Doom 2 levels in Doom.
Now parameters to asm functions are passed via stack instead of registers. Please git pull and try again.
Thanks, Ill have a look tomorrow (nearly bed time in the UK). Yes, the PC is x86 based; I haven't done much with 8086 assembler for over 30 years (did a bit of 6502 back in the day) and wasn't aware the calling conventions were different, but am not surprised.
I guess the problem is indeed ASM; I can imagine why Vincenzo Alcamo used it back in the days of 486s but we don't really need it now, not for something like this; though I guess the real Linux heads would say Real Programmers would parse the tables using awk
Which reminds me, over the years I have often used the '"I'm too tired to compile all these tables..." quote - I love that quote, much more fun that saying "I can't be assed"
@i2van Thanks again, you are doing some good work here
I have looked into preserving filename case on Linux, but this would require a big architectural change, as the app uses its internal symbol mechanism for filenames as well as tables; in DOS this didn't matter but Linux, for those who don't know, has a case-sensitive file system. When I can find some time, I will put together a bash script to use as a wrapper around dm2conv on Linux that can keep the file names intact.
MartinHowe wrote:@i2van Thanks again, you are doing some good work here
I have looked into preserving filename case on Linux, but this would require a big architectural change, as the app uses its internal symbol mechanism for filenames as well as tables; in DOS this didn't matter but Linux, for those who don't know, has a case-sensitive file system. When I can find some time, I will put together a bash script to use as a wrapper around dm2conv on Linux that can keep the file names intact.
Thank you!
Actually, I've already addressed this issued - no case conversion anymore for source/destination files.