Chasm: The Rift

From ModdingWiki
Jump to navigation Jump to search
Edge of map!
Chasm: The Rift
Chasm- The Rift.png
There is no image of a modified version of this game — upload one!
Levels?Tick.png Editable
Tiles?Tick.png Editable
Sprites?X mark.svg Not editable
Fullscreen?X mark.svg Not editable
Sound?X mark.svg Not editable
Music?X mark.svg Not editable
Text?X mark.svg Not editable
Story/cutscenes?Tick.png Editable
UI/menus?X mark.svg Not editable
Demos?Unknown

Chasm: The Rift is an FPS game from the twilight of the DOS era, developed by Action Forms Ltd. and released in 1997. The engine, contrary to popularly spread misinformation, is not based on Quake but appears to be an original, and has some interesting features but is also, for its time, somewhat limited regarding the level geometry that can be created.

A level editor is included on the game CD, and some enemy and weapon stats can be modified using a plain text configuration, but certain other aspects of modifying the game (such as the 3D models) remain poorly understood.

File formats

The following file formats are used by this game.

Filename Format Details
csm.bin BIN Format (Chasm) Main data archive
chasm2.pal VGA Palette (6-bit version) Game palette
chasm.inf CHASM.INF Configures enemy and weapon stats
*.rgb 256x255 color index array Translucency tables
*.3o 3O Format 3D models (weapons, scenery)
*.ani ANI Format (Chasm) Data to animate models
*.car CAR Format Contain data for "living" entities (player, monsters)
*.obj OBJ Format (Chasm) Sprites ! Possibly multiple frames per file
*.cel CEL Format (Chasm) Textures and raster graphics
*.wav WAV format Sounds
resource.** RESOURCE (Chasm) Level data (definitions)
process.** PROCESS (Chasm) Level data (action scripts)
floors.** FLOORS (Chasm) Floor graphics associated with level
map.** MAP (Chasm) Level data
script.** SCRIPT (Chasm) Level data (cutscene scripts, not present in every level)
*.raw Raw PCM audio, unsigned 8-bit PCM, mono, little-endian, 11025 Hz Sound effects
*.pcm Raw PCM audio, unsigned 8-bit PCM, mono, little-endian, 11025 Hz Sound effects
*.sfx Raw PCM audio, unsigned 8-bit PCM, mono, little-endian, 11025 Hz Sound effects
chasm.r?? ! Likely recorded gameplay with ?? corresponding to level number
chasm.key ! Appears to be related to keyboard layout
menu.txt Plain Text ! Appears to configure aspects of the game menu (possibly useful for translation only?)

Archive and addons

Most of the files listed above are normally stored inside CSM.BIN. However, an addon loaded with the "-addon:<addon_dir>" game parameter can read replacement files from an open directory structure, provided that they are placed in the correctly named subdirectory.

Levels, cutscenes

Levels are not stored in a single file, but several files with an extension .01, .02 etc. corresponding to the level number. The process.**, script.** and resource.** files are in plain text; process defines action scripts using a scripting language explained in the level editor documentation, script defines a cutscene for the level and resource defines level settings such as title, CD track to play for background music, 3O, CEL and WAV files used, etc. The map.** and floors.** files contain binary data; floors contains graphics for the floors (and probably ceilings) and appears to use a mipmap system.

Level 99 exists in CSM.BIN, but is not a playable level and cannot be warped to. Instead, it is a special case use of the map format whose purpose is to provide the background scenes for the mission briefing cutscenes. The "room" numbers in the script.** files correspond to the numbered player starts in level 99.

Translucency

CHASM.RGB and CHASM60.RGB are almost identical in construction to the TINTTAB format used in Heretic and Hexen except that there is no 256th row for the final color (which in Chasm is a dummy/transparent color). CHASM.RGB appears to be a 50-50 blend while CHASM60.RGB appears to have a stronger influence from one of the colors (perhaps 60-40, judging by the file name?)

Models

The .CAR format is believed to be an early iteration of the format used by the Carnivores games for Windows (however, Chasm's .CAR data might be more closely related to the Chasm .3O files). Part of the data contained are sounds for the entity that the .CAR defines.

Reimplementation

A project to reverse-engineer and re-implement the game's engine is being worked on by Artöm "Panzerschrek" Kunz and can be found here:

https://github.com/Panzerschrek/Chasm-Reverse