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)
- Host: GitHub
- URL: https://github.com/tigrouind/aitd-tools
- Owner: tigrouind
- License: mit
- Created: 2016-11-30T20:59:58.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2026-04-11T20:01:39.000Z (about 2 months ago)
- Last Synced: 2026-04-11T22:24:50.742Z (about 2 months ago)
- Topics: alone-in-the-dark, command-line, disassembler, dos, dosbox, quickbms, script
- Language: C#
- Homepage:
- Size: 1.89 MB
- Stars: 15
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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