RyanMallon / TheLostVikingsTools

Reverse Engineered Tools/Library for the DOS game The Lost Vikings
Creative Commons Zero v1.0 Universal
73 stars 13 forks source link

The Lost Vikings/Blackthorne Tools

This is a library and a set of tools based on a partial reverse engineering of the DOS games The Lost Vikings and Blackthorne. The Lost Vikings is copyright Silicon and Synapse (now Blizzard) and was published by Interplay in 1992. Blackthrone is copyright Blizzard and was published in 1994.

Both games are now freely available from Blizzard:

https://us.battle.net/account/download/?show=classic

License

These tools are public domain. The code may be freely incorporated into other projects, either source or binary.

Library

The library code is in liblv and provides APIs for handling the various data formats used by The Lost Vikings and Blackthorne. The compiler and disassembler are in the vm directory. These tools currently only support The Lost Vikings.

Tools

The tools are:

The tools have been tested with a version of The Lost Vikings with the following MD5 sums:

For Blackthorne:

Run each of the tools with --help to see the command line options. The source for the pack and sprite viewer tools also contain comments with some example usages.

When using the tools for Blackthorne the --blackthorne argument should be passed.

Level Viewer

Run the level viewer with the path to DATA.DAT and the level number (numbering starts at 1). For example to view the first level of The Lost Vikings:

./level_view /path/to/vikings/DATA.DAT 1

To view the practice stage of Blackthorne:

./level_view /path/to/blackthorne/DATA.DAT --blackthorne 2

Both games encode splash screens and cutscenes as levels. These can also be viewed with the level viewer (see liblv/lv_level.c for the level numbers).

The arrow keys move the view, and clicking a tile or object will show information about it. The following keys may also be used:

Key Effect
F Toggles drawing the foreground tiles
B Toggles drawing the background tiles
O Toggles drawing objects
G Toggles grid
R Toggles drawing object bounding boxes

Building

The level and sprite viewers require the SDL library. The tools have only been tested on Linux, but should require minimal porting effort to other operating systems. To build the library and the tools:

make

Documentation

The library is documented using Doxygen. To build and view the documentation:

make docs
google-chrome docs/html/index.html

Known Bugs/Missing Features

There are lots: