An open API service indexing awesome lists of open source software.

https://github.com/tigrouind/aitd-tools

Several tools for Alone In The Dark (1992)
https://github.com/tigrouind/aitd-tools

alone-in-the-dark command-line disassembler dos dosbox quickbms script

Last synced: about 2 months ago
JSON representation

Several tools for Alone In The Dark (1992)

Awesome Lists containing this project

README

          

> [!CAUTION]
> Some files in the release archive might be detected as malware by some A/V (eg: Windows Defender). The exact reason is unclear but this is probably because it use Win32 API calls such as `ReadProcessMemory` and `WriteProcessMemory`. If you know how to fix this, please let me know.

# Requirements

You need to install [.NET Desktop Runtime 9.0](https://dotnet.microsoft.com/en-us/download/dotnet/9.0) (requires Windows 10 or newer) to run the tools. Unless you are a developer, you don't need the SDK, the runtime Windows x64 version is enough.

# LifeDISA

This is a disassembler for LIFE scripts in Alone in the Dark series.

## Supported
* Alone in the Dark 1 / 2 / 3 (CD-ROM, floppy, demo)
* Jack in the Dark
* Time Gate: Knight's Chase (CD-ROM, demo)

## Command-line arguments
```
LifeDISA -version {AITD1|AITD1_FLOPPY|AITD1_DEMO|AITD2|AITD2_DEMO|AITD3|JACK|TIMEGATE|TIMEGATE_DEMO}
[-raw]
[-verbose]
[-output FILENAME]
```

## Instructions

1. Create a new folder named "GAMEDATA" (located in same folder as the LifeDISA executable).
2. Copy the following files from game to GAMEDATA :
- `LISTLIFE.PAK`
- `ENGLISH.PAK` (or `FRANCAIS.PAK`)
3. Copy the file `OBJETS.ITD` (from AITD folder) into GAMEDATA folder.
4. Start LifeDISA executable with appropriate arguments. A file named `output.txt` will be created.

# TrackDISA

This is a disassembler for TRACK scripts in Alone in the Dark series.

## Supported
Same as [LifeDISA](#LifeDISA)

## Command-line arguments
```
TrackDISA -version {AITD1|AITD1_FLOPPY|AITD1_DEMO|AITD2|AITD2_DEMO|AITD3|JACK|TIMEGATE|TIMEGATE_DEMO}
[-verbose]
[-output FILENAME]
```

## Instructions

Copy file `LISTTRAK.PAK` into a folder named GAMEDATA, then run TrackDISA executable.

# MemoryViewer

Allow to view DOS memory in realtime. Each pixel is a byte.
Current VGA palette is automatically loaded.

Supported :
* Most DOS games (even non AITD related)

## Command-line arguments
```
MemoryViewer [-width WIDTH]
[-height HEIGHT]
[-zoom ZOOM]
```

## Commands
| Key | Description |
| :-: | - |
| ctrl + mouse wheel
ctrl + + or -| increase / decrease zoom
| ctrl + 0 | reset zoom
| page up / page down / mouse wheel | increase / decrease memory offset by 640KB
| space | display DOS memory control blocks (MCBs)
green = free
blue = used
red = current executable
yellow = not current executable
| p | show palette

# VarsViewer

Allow to view/edit game internals variables (named `VARS` and `CVARS` in scripts), view/clear internal cache, inspect actors/objects, in realtime.

## Supported
* Alone in the Dark 1 (CD-ROM, floppy, demo)

## Command-line arguments
```
VarsViewer [-view {vars|cache|actor|object}]
[-width WIDTH]
[-height HEIGHT]
```

## Commands

| Key | Description |
| :-: | - |
| F1 / F2 / F3 / F4 | vars / cache / actor / object view
| control + mouse wheel | zoom in/out
| f | freeze capture

### Vars
| Key | Description |
| :-: | - |
| s | save state
| c | compare current state with saved state

### Cache
| Key | Description |
| :-: | - |
| s | change sort mode (default, memory, lru)
| space | display cache entries timestamp / name
| F5 | clear all cache entries

### Actors / objects
| Key | Description |
| :-: | - |
| space | show/hide inactive actors/objects
| tab | compact/full view
| page up / page down / mouse wheel | scroll
| mouse click on column header | hide column
| r | reset columns visible state

# PAKExtract

Extracts files from PAK files.

## Supported
Same as [LifeDISA](#LifeDISA)

## Instructions
- Copy some PAK files to GAMEDATA folder
- Run PAKExtract : all PAK files in GAMEDATA folder are extracted to new folders (eg: LISTLIFE)

You can also drop files (or folders) to be extracted into PAKExtract executable.

## Command-line arguments
```
PAKExtract []
[info []]
[background]
[mask {AITD1|AITD1_FLOPPY|AITD1_DEMO|AITD2|AITD2_DEMO|AITD3|JACK|TIMEGATE|TIMEGATE_DEMO}]
[svg [-rotate {0|90|180|270}] [-zoom] [-room ] [-trigger] [-camera]]
[archive [-timegate] []]
```

### Extracting files or folders with command line
```
PAKExtract LISTLIFE.PAK LISTTRACK.PAK
PAKExtract FOLDER1 FOLDER2
```

You can also drag and drop files or folder into executables as mentionned earlier.

### Displaying archive information only (eg: compressed size, flags, ...)
```
PAKExtract info LISTBODY.PAK
```

### Converting backgrounds or textures to PNG files
Extract necessary PAK files (`CAMERAxx.PAK`, `ITD_RESS.PAK`, `TEXTURES.PAK`) into their respective folders, then run PAKExtract again :
```
PAKExtract background
```
Files will be exported to `BACKGROUND` folder.

### Rendering backgrounds masks as PNG files
Extract backgrounds, then necessary PAK files (`ETAGExx.PAK` for AITD, `MASKxx.PAK`, `NASKxx.PAK` for JACK/AITD2/AITD3, `MKxxxxxx.PAK`, `NKxxxxxx.PAK` for TIMEGATE) into their respective folders, then run PAKExtract again :
```
PAKExtract mask AITD1
```
Files will be exported to `BACKGROUND_MASK` folder.

### Rendering floors as SVG files
Extract necessary PAK files (`ETAGExx.PAK`) into their respective folders, then run PAKExtract again :
```
PAKExtract svg -rotate 90 -room 1 4 5
```
Files will be exported to `SVG` folder.

### Creating a new PAK archive (or editing some entries)
Extract some PAK archives, edit them in their respective folders (eg: LISTLIFE), then run PAKExtract again :
```
PAKExtract archive LISTLIFE
```
> [!NOTE]
> When creating a new archive, entries are not recompressed (which might result in an archive being bigger than expected). AFAIK, there is currently no C source code available for the implode compression algorithm used by AITD. It seems to original game files have been compressed with PKZIP v1.1.
>
> If PKZIP and DOSBox are available, PAKExtract will use them for compressing back the files. `PKZIP.EXE` should be in main folder (same as PAKExtract), and DOSBox should be located in `C:\Program Files\`, `C:\Program Files (x86)\` or main folder.
>
> Some distributions of PKZIP are a self-extracting executable, so it might be needed to run that executable once (under DOSBox) to extract `PKZIP.EXE` out of it. You can simply drag and drop the PKZIP self-extracting executable on DOSBox. `PKZIP.EXE` should be around 40KB.

# MoviePlayer

This allow to record a game session and then play it back for study.
All tools from here are compatible as the player imitates DOSBox during playback.

## Instructions
- Copy the file `movie.dat` to same place as executable (which should be named `DOSBox.exe`). By default, it will always load the latest file written with a `.dat` extension.

You can also drop a specific movie on the executable.

## Commands
| Key | Description |
| :-: | - |
| F5 | Play / pause
| Shift + F5 | Record (any movie being played has to be stopped before)
| F6 | Single frame advance
| F7 | Fast forward (should be held down)
| F8 | Stop
| Shift + 1 ... 9 | Save state 1-9
| 1 ... 9 | Restore state 1-9