Zerk Zone

Pages for the Creations of Ryan Armstrong

ROTT Isometric Mapper and WAD Extractor Release

Posted on October 13th, 2012 @ 10:33 am by Zerker

About and Dependencies

This is a series of Python scripts to generate Isometric views of Rise of the Triad maps, as well as extract the complete contents of DARKWAR.WAD. These scripts require the Python Imaging Library (PIL) and Python 2.x (tested with Python 2.7.3). PIL unfortunately does not yet support Python 3, which prevents these scripts from being forward-compatible at this time.

Windows users should be able to download Python and PIL from the above links. Most Linux/Unix varients should be able to install Python and PIL via your package manager of choice; Ubuntu users can install the python and python-imaging libraries. OSX users should already have Python, but you may need to compile PIL yourself via the source download at the PIL website.

The scripts also obviously require Rise of the Triad: Dark War, which can be purchased from either 3D Realms or GOG.com. For the mapping scripts, DARKWAR.WAD must be in the current directory.


There are three scripts included in the package that are intended to be executed directly. rottmapper.py is the main isometric mapper script, rottdebugmapper.py is a script to generate debug maps containing all the original wall/sprite/info values, and wad.py is a script to extract the complete contents of a ROTT wad file. In addition to the three scripts above, rtl.py can also be run directly to generate a simple black and white pixel image of a level, but this is not its primary purpose.


python rottmapper.py [RTL/RTC FILE] ([Level Num])

Generates PNG isometric map images based on the specified ROTT RTL or
RTC file. If [Level Num] is specified, this will only generate a map
for the indicated level. Otherwise, maps for every level in the RTL/RTC
will be generated.

This tool requires DARKWAR.WAD from the registered version of ROTT
to be present in the current directory. Note that on case-sensitive file
systems the file name must also be uppercase.


python rottdebugmapper.py [RTL/RTC FILE]…

Generates a debug HTML file for each level in the specified ROTT RTL or
RTC file. Each index in the map is output into a cell in an HTML table
containing the following information:


python wad.py [WAD FILE]

Extracts the complete contents of a give ROTT wad file. Currently only
supports DARKWAR.WAD. All images will be written as PNG files,
other data will remain in its original format (e.g. .mid for music,
.voc for SFX). Unidentified data will be written with no extension.


rottmapper.tar.gz (47.6 kB)
rottmapper.zip (49.7 kB)

Comments (4)

Filed under: Maps,Programs/Libraries,Python,Rise of the Triad |


  1. This is a nice utility! I loved Rise of the Triad, and it’s nice to see someone write an export tool that is capable of exporting most graphics to PNGs.

    Any chance on a way to re-import edited PNGs and VOCs and such to an IWAD? It’d be perfect as your utility is the only utility that properly recognizes masked patches with translucency.

    Comment by K. Culp — December 29, 2012 @ 12:48 am

  2. At present, I don’t have any plans for import. The export capabilities went hand-in-hand with my Isometric mapping project, but Import capabilities weren’t something I was originally planning for. That’s not to say it isn’t possible to write an import tool, but it wouldn’t be able to re-use very much from this tool, as writing a new WAD file and encoding masked sprites/walls/etc is a fair bit different from just reading.

    Comment by Zerker — December 29, 2012 @ 8:51 am

  3. I’ve been trying to use it, but perhaps I’m not doing something right as I get this:

    C:\rottmapper>python rottmapper.py DARKWAR.RTL
    File “rottmapper.py”, line 33
    print “Initializing Map {} ‘{}'”.format(level.index+1, level.name)
    SyntaxError: invalid syntax

    Am I doing something wrong? I have both darkwar.rtl and darkwar.wad from the registered game in the directory. Have tried with and without all forms of parentheses but still no luck.

    Comment by James — July 11, 2013 @ 2:48 pm

  4. If I were to guess, I’d say you are using Python 3. Please install Python 2.7 (with PIL) and try again.

    Comment by Zerker — July 14, 2013 @ 2:19 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment