code for exploring Ultima IV data files
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
README.md
ega.py
png.py
shapes.py
town_data.py
town_maps.py
town_talk.py
tox.ini
world.png
world_map.py

README.md

ultima4

code for exploring Ultima IV data files

The output of world_map.py is available at https://raw.github.com/jtauber/ultima4/master/world.png (also included in repo)

If you get Ultima IV for OS X from GOG.com, the relevant files are in Ultima 4.app/Contents/Resources/Ultima IV- Quest of the Avatar.boxer/C.harddisk which you can symlink ULT to for the scripts here to work.

files types

  • .CON: combat? (not supported yet)
  • .DNG: dungeons (not supported yet)
  • .EGA: graphics files, some are supported but not all yet
  • .TLK: talk data
  • .ULT: town (and castle) data including map(s) but not talk data

files in this repository

png.py

module for writing images out as PNG files

ega.py

script for outputting the RLE-encoding .EGA files as PNGs

shapes.py

module for reading SHAPES.EGA file (used by world_map.py and town_maps.py)

world_map.py

script that reads WORLD.MAP and generates a PNG world map

town_maps.py

script that extracts the maps out of the various town .ULT files and generates a PNG of each map

town_data.py (in progress)

work in progress understanding the rest of the town data (i.e. non-map) in .ULT files

town_talk.py (in progress)

work in progress understanding the .TLK files