The Lost Vikings

From ModdingWiki
Jump to navigation Jump to search
Edge of map!
The Lost Vikings
The Lost Vikings.png
There is no image of a modified version of this game — upload one!
Levels?X mark.svg Not editable
Tiles?X mark.svg Not editable
Sprites?X mark.svg Not editable
Fullscreen?X mark.svg Not editable
Sound?X mark.svg Not editable
Music?X mark.svg Not editable
Text?X mark.svg Not editable
Story/cutscenes?X mark.svg Not editable
UI/menus?X mark.svg Not editable
Demos?Unknown

The Lost Vikings is a platformer with three characters to control, all in the same level at the same time. The player must switch between all three and get them all to the exit in order to finish each level. Each character has a special skill and most levels require combining the skills in order to reach the exit.

Tools

The following tools are able to work with this game.

Name PlatformGroup/archives Levels Graphics Music Sounds Text Saves .exe patch Notes
Blizzard DATA unpacker WindowsExtractNoNoNoNoNoNoNo partial support
Camoto Linux/WindowsEditNoNoNoNoNoNoNo No decompression support
Camoto/gamearchive.js AnyEditNoNoNoNoNoNoNo
Lost Vikings data extractor WindowsExtractNoNoNoNoNoNoNo

File formats

The following file formats are used by this game.

Filename Format Details
*.dat DAT Format (The Lost Vikings) Main game data archive holding the rest of the files in this list
*.xmi XMI Format Background music

Other file formats

This section needs to be tidied up. It contains notes about the format of various files inside the main archive.

The game also operates with distinct "game screens", each with an index.

Game screens:

0: First level
1: Second level
...
36: Last level
37: Death screen
38: Menu, screen 3
39: Menu, screen 1
40: Menu, screen 2
41: Galaxy fall (between levels)
43: Intro level (demo)
44: Intro level part 2
45: Game complete
46: Game complete 2
47: Credits screen

Each screen have a screendata chunk, which is mapped as following (2 byte (LSB) index for each):

19F0:940C     C6 00 C8 00 CA 00 CC 00 28 00 2A 00 2C 00 2E 00  ........(.*.,...
19F0:941C     30 00 32 00 34 00 4B 00 4D 00 4F 00 51 00 53 00  0.2.4.K.M.O.Q.S.
19F0:942C     55 00 72 00 74 00 76 00 78 00 7A 00 7C 00 7E 00  U.r.t.v.x.z.|.~.
19F0:943C     80 00 9C 00 9E 00 A0 00 A2 00 A4 00 A6 00 A8 00  ................
19F0:944C     AA 00 CE 00 D0 00 D2 00 D4 00 71 01 7D 01 86 01  ..........q.}...
19F0:945C     8C 01 92 01 7E 01 AF 01 B0 01 B1 01 B2 01 DA 00  ....~...........

Screendata contents:

22: Index of next gamescreen
28: Type? (1: level)
41: Tilemap width
46..47: Chunk ID with tilemap
48..49: Chunk ID with tile definitions (pixels)
50..51: Chunk ID with metatile definitions (4 tiles)
67: N chunks of unknown type, length 14, terminated by FF FF
67+N*14+2: N chunks of palette data, length 3, terminated by FF FF

Offset 67 (unknown data):

0..1: Chunk ID? (list terminates if this is FFFF)
2..13: Unknown data

Offset 67+N*14+2 (palette):

0..1: Chunk ID (list terminates if this is FFFF)
2: First color index (multiply this with 3 and copy data to that destination, palette is 256*3 bytes

Palette setup:

1: Prepare array with 3x256 bytes
2: Load each chunk to its location (several chunks with different sizes may be written to the same index)
3: Set color 16, 32, 48, 64, ..., 240 to [0,0,0] (black)
4: Color 4 is special (transparent/background/...?)

Tile format

Each tile is 8 x 8 pixels, with 256 colors (using a palette).

Pixels are organised as following:

0: Pos 0/0
1: Pos 4/0
2: Pos 0/1
3: Pos 4/1
4: Pos 0/2
...
14: Pos 0/7
15: Pos 4/7
16: Pos 1/0
17: Pos 5/0
...
62: Pos 3/7
63: Pos 7/7

Metatile format

Each metatile consist of 2 x 2 tiles (16 x 16 pixels).

Metatiles:

0..1: Upper left tile
2..3: Upper right tile
4..5: Lower left tile
6..7: Lower right tile

Each tile in this list is 16 bit LSB.

Bit 4: Horizontal flip
Bit 5: Vertical flip
Bit 6..15: Tile index

Tilemap format

Tilemap have 2 bytes (LSB) for each metatile.

Bit 0..8: Metatile index