Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

iiLunarTides

iiLunarTides is a C# library supporting the modification of files relating to Solar Winds, the 1993 space RPG game developed by James Schmalz.

Name Read Write Comment
bh_char 〰️ RLE sprite sheet (partial)
bh_conv
bh_epal ✔ VGA palette (Epic logo)
bh_epic ✔ Fullscreen RLE (count−1), 320×200
bh_expl ✔ Uncompressed / RLE sprites
bh_hype ✔ RLE sprites
bh_imp ✗
bh_iord ✗
bh_mis ✔ Uncompressed / RLE sprites
bh_mp1 ✔ VGA palette
bh_mp2 ✔ VGA palette
bh_mp3 ✔ VGA palette
bh_ms ✗
bh_mu1 Music - Creative Media File
bh_mu2 Music - Creative Media File
bh_mu3 Music - Creative Media File
bh_mu4 Music - Creative Media File
bh_mu5 Music - Creative Media File
bh_mu6 Music - Creative Media File
bh_mu7 Music - Creative Media File
bh_mu8 Music - Creative Media File
bh_mu9 Music - Creative Media File
bh_mu10 Music - Creative Media File
bh_mu11 Music - Creative Media File
bh_mu12 Music - Creative Media File
bh_mu13 Music - Creative Media File
bh_mw1a ✔ Fullscreen RLE (count−1), 320×200
bh_mw1b ✔ Fullscreen RLE (count−1), 320×200
bh_mw2a ✔ Fullscreen RLE (count−1), 320×200
bh_mw2b ✔ Fullscreen RLE (count−1), 320×200
bh_mw2p ✔ Fullscreen RLE (count−1), 320×200
bh_mw3a ✔ RLE sprites
bh_mw3b ✔ RLE sprites
bh_obj ✗
bh_ord ✔ Fullscreen RLE (count−1), 320×200
bh_pal ✔ VGA palette (8-bit/channel)
bh_pan ✗
bh_peop 〰️ RLE portraits
bh_pic ✔ 320×80 title banner
bh_plan ✔ RLE sprites
bh_scrn ✔ B800 Text
bh_seq ✔ Fullscreen RLE (count−1), 320×200
bh_seq2 ✔ RLE sprites
bh_shd ✔ Shield overlays
bh_ship ✗
bh_sml ✔ Uncompressed / RLE sprites
bh_start ✔ Ship scanner text (initial game state)
bh_title ✔ Fullscreen RLE (count−1), 320×200
bh_vfd ✔ Creative VOC → mono 8-bit WAV
bh_wr ✔ Fullscreen RLE (count−1), 320×200
config ✗
page ✗
HSAV## ✔ Save game
SAVLST ✔ Save slot index (10 labels)

Usage

Instantiate Processor and call Read with the file path and an optional palette. The decoder is chosen from the filename automatically:

var gameDirectory = @"D:\Games\SolarWinds\ep1-the-escape\";

var processor = new Processor();
foreach (var d in Directory.GetFiles(gameDirectory, "*.dat"))
{
    var filename = Path.GetFileName(d);
    var palette = processor.GetAssociatedPaletteFilename(d);
    var result= palette != null ? processor.Read(d, Path.Combine(gameDirectory, palette)) : processor.Read(d);
    if (result.Images != null)
    {
        for (var i = 0; i < result.Images.Count; i++)
        {
            result.Images[i].SaveAsJpeg($@"D:\data\solarwinds\{filename}-{i}.jpg");
        }
    }
    if (result.WavSamples != null)
    {
        for (var i = 0; i < result.WavSamples.Count; i++)
        {
            File.WriteAllBytes($@"D:\data\solarwinds\{filename}-{i}.wav", result.WavSamples[i].Wav);
        }
    }
}

Compiling

To clone and run this application, you'll need Git and .NET installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/btigi/iiLunarTides

# Go into the repository
$ cd src

# Build  the app
$ dotnet build

Licencing

iiLunarTides is licenced under the MIT License. Full licence details are available in licence.md

About

iiLunarTides is a C# library supporting the modification of files relating to Solar Winds, the 1993 space RPG game developed by James Schmalz.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages