Skip to content

Extracting terrain data from the original slv files #1

@bertyhell

Description

@bertyhell

I'm trying to recreate an old game from when I was young, since it doesn't run anymore on modern machines. And the emulator I've setup runs it at about 13 fps.

Here is a gameplay clip: https://www.youtube.com/watch?v=uH99WZHe3rk

I've recreated the first level of the game using minimap screenshotting and stitching, but this is a very laborious process and not very accurate. You essentially fly around with the chopper and record the screen. Then extract all the screenshots. Crop to the minimap area and stitch those minimaps back together to get a full top side view of the map.
minimap00300

frames:
image

stich attempt 1:
image

final texture
color-3

heightmap:
heightmap-3

This works fine as an initial version of the map:
image

But extracting the other 36 levels this way makes me want to pull my hair out.

The original game files have files that are clearly named after the levels:


https://github.com/bertyhell/swiv3d/tree/feature/extract-terrain/extract-terrain


image

These files must contain the heightmap and maybe also the texture map.
They are all very similar in size so I assume all level dimensions are the same. The small changes between the files are probably due to different textures/more/less mountains.

I've tried extracting the data using IDA Pro. But it all seems to be gibberish.
image
image

The exe file can be followed a little bit. eg: I find some references to DEMO.SLV and %.SLV where the levels are presumably loaded. But nothing indicating how the data is structured in those SLV files.
image

I'm not sure how to proceed with extracting the terrain data. Hopefully they haven't saved the terrain as a valley of points in between which a curved surface is calculated.

Any hints on how to proceed would be greatly appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions