Skip to content

tigrouind/AITD-roomviewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AITD room viewer

This is a room viewer (and 3D model viewer) for Alone in the Dark series. It has been created mostly for speedrunning.

The following games are supported :

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

Instructions

  1. You need to have the original version of the game installed somewhere on your computer (eg: from GOG)
  2. Extract AITD room viewer archive in a folder (eg : on your desktop)
  3. Create a new folder named "GAMEDATA" inside of it.
  4. Copy the following files from the game to GAMEDATA folder :
  • ETAGE00.PAK, ETAGE01.PAK, ETAGE02.PAK, ...
  • CAMSALxx.PAK (Time Gate only)

Commands

Mouse Description
Wheel zoom in / out
Left button drag map / select box
Middle button reset camera zoom and position
Right button show options menu
Key Description

change floor
change room
W reset last distance for all actors
Q reset total delay (AITD1 only)
Shift + Alpha1 Timer 1 goes back 5 seconds (AITD1 only)
Shift + Alpha2 Timer 2 goes back 5 seconds (AITD1 only)
Esc quit (only in fullscreen mode)

Shortcuts

Key Description
D display mode
F camera follow mode
R room's visibility
C camera area's visibility
T trigger's visibility
A actor's visibility
E show extra info (AITD1 only)
Page up
page down
camera rotate
Tab switch to model viewer

Put mouse on a box to highlight it.

  • Light gray boxes are colliders which player cannot passthrough
  • Blue boxes are colliders that player can interact with or used for actor instantiation
  • Teal boxes are links between rooms and is used for pathfinding
  • Red and amber boxes are triggers. It is usually used to switch from one room to another. It can also trigger other things like enemies, sounds, scripted sequences, ...

DOSBox

It's possible to view all active entities in the game, displayed and updated realtime from DOSBox.

To do this, simply play AITD at the same time room viewer is running. If everything is OK, you should view a white square with an arrow, this is player position.

Common issue: if AITD has been started with administrator rights, room viewer will not be able to see DOSBox process. To fix this, run room viewer with administrator rights (or run AITD without administrator rights).

Warp actor

When the game is linked to DOSBox, it is possible to change the position of an actor using drag and drop. Hold left mouse button while mouse is on an actor. Move cursor (keeping left mouse button pressed) and right click to warp (you can do this multiple times). Then, release left mouse button. It is also possible to manually edit position of an actor by right clicking on it or by pressing numpad keys :

Key Description
4 6 move actor left / right
8
2
move actor down / up
7 9 rotate actor left / right
0 hold it while pressing the numpad keys above to update at a higher rate

Actor slot swap

When the game is linked to DOSBox, you can swap two actors slot positions this way :

  • Highlight an actor
  • Press X
  • Type a number between 0 - 49 (with keypad or alphanumeric keys)
  • Press Enter

Multi-monitor setup

It's not possible to have the viewer running fullscreen and at same time focus to be on another window (eg: the game itself). One solution is to play the viewer in window mode (by pressing Alt + Enter)

Building it from the source

You can use any recent version of but Unity 5.5.4p3 is recommended.

Model viewer

Installation

Copy the following files to GAMEDATA folder:

  • LISTBODY.PAK, LISTANIM.PAK
  • LISTBOD2.PAK, LISTANI2.PAK (AITD1 only)
  • ITD_RESS.PAK (for palette)
  • CAMERAxx.PAK (for palette, JITD only)
  • TEXTURES.PAK (Time Gate only)

Commands

Mouse Description
Wheel zoom in / out
Left button click on model and drag to rotate it
Middle button move model
Right button show options menu
Key Description
change model

change animation
Shift hold it while pressing or to skip 10 models at once
Space change model folder (Edward or Emily)
B bounding box mode (default / cube / max)
Esc quit (only in fullscreen mode)

Shortcuts

Key Description
D details high / low
R camera auto rotate mode
E show extra information
A enable animation
X export current model to OBJ format
Shift + X export all models to OBJ format
Tab switch to room viewer

OBJ export

To view models properly you have to create custom shaders. Here is the custom materials that can be created under Blender :

shadeless (vertex colors)

flowchart LR
color("<b>Color Attribute</b>")
output("<b>Material Output</b>")

color--> |Color / Surface| output

noise

flowchart LR
color("<b>Color Attribute</b>")
image("<b>Image Texture</b><br>noise.png")
output("<b>Material Output</b>")
mix("<b>Mix</b><br>Color<br>Multiply<br>Factor 0.5")

color --> |Color / A| mix
image --> |Color / B| mix
mix --> |Result / Surface| output

You can use this white noise texture

glass (transparency)

flowchart LR
color("<b>Color Attribute</b>")
output("<b>Material Output</b>")
transparent("<b>Transparent BSDF</b>")

color --> |Color| transparent
transparent --> |BSDF / Surface| output

In Material properties (right tab), set "Blend Mode" to "Alpha Blend"

metal_vertical / metal_horizontal (gradients)

flowchart LR
tex("<b>Texture Coordinate</b>")
sep("<b>Separate XYZ</b>")
mul("<b>Math</b><br>Multiply<br>Value 5.0")
ping("<b>Math</b><br>Ping-Pong<br>Scale 1.0")
add("<b>Math</b><br>Add<br>Value 0.5")
gamma("<b>Gamma</b>")
color("<b>Color Attribute</b>")
output("<b>Material Output</b><br>Surface")

color --> |Color| gamma
tex --> |Window / Vector| sep
sep --> |X / Value<br>or<br>Y / Value| mul
mul --> |Value| ping
ping --> |Value| add
add --> |Value Gamma| gamma
gamma --> |Color / Surface| output

texture_a / texture_b (Time Gate only)

flowchart LR
image("<b>Image Texture</b>")
output("<b>Material Output</b>")

image --> |Color / Surface| output