Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

code for exploring Ultima IV data files

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 ega.py
Octocat-spinner-32 png.py
Octocat-spinner-32 shapes.py
Octocat-spinner-32 town_data.py
Octocat-spinner-32 town_maps.py
Octocat-spinner-32 town_talk.py
Octocat-spinner-32 world.png
Octocat-spinner-32 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

Something went wrong with that request. Please try again.