This is a simple command-line tool meant for dumping "Ultima Underworld"'s lev.ark data to a text file. Supports UW1 and UW2 files (see command line options).
Dumps following:
- Level map, in ASCII (marks openings, walls and doors only).
- Object list, printed per level tile, with nested NPC's inventories and container contents.
The original purpose of this tool is to search for objects of particular kind on the game levels. Because UW player saves also contain full copy of level data (as lev.ark file) this lets dump both startup level data and the saved state. May be useful if you've lost an important item and want to find it without searching whole game world in-game. Also may be utilized for statistics and level research.
Usage:
uwsav-dump.exe [OPTIONS] <input-lvl.ark> <output-text-file>
Options are:
-?, --help print help and stop
-uw2 assume "Ultima Underworld 2" data
-po print map's objects list
Example:
uwsav-dump.exe -uw2 -po UW2/SAVE1/lev.ark save1_levels.txt
Building:
- Windows: MSVS 2019 or higher, solution is available inside
msvc
dir. - Linux: use
make
, Makefile is available in the repo's root. - Other: potentially may build on FreeBSD and macOS using same Makefile, but did not test myself.
Used thorough format specification by vividos, found at: http://bootstrike.com/Ultima/Online/uwformat.php
Another instance of format explanation may be found in Ultima wiki: https://wiki.ultimacodex.com/wiki/Ultima_Underworld_internal_formats