igipy
is an python console application for extracting and converting
Project I.G.I. and
I.G.I-2: Covert Strike resources.
-
Install Python version 3.8 or higher
-
Clone this repository:
git clone <paste-here-repository-link>
- Install requirements:
python -m pip install -r requirements.txt
- Run application:
python -m igipy --help
- Also you can run sub applications separately:
python -m igipy.qvm --help
master
- Actual version.backup
- First version (doesn't work but has many igi related resources)
In folder third party tools
can be found tools from other developers.
-
gconv
- original game converter distributed by I.G.I 2 developers. Command line tool that run.qsc
scripts. -
wav2wav
- InnerLoop to Waveform converter developed by `[email protected]. This tool also can decode sound files encoded using ADPCM.
# Counts - scan directory and count extensions
python -m igipy abc counts D:\Games\IGI\
# Search - scan directory and list files that match pattern
python -m igipy abc search D:\Games\IGI\ *.wav
# WAV serialize - check if file match the format
python -m igipy wav serialize D:\Games\IGI\game_sound.wav
# WAV export - export WAV file as Waveform
python -m igipy wav export D:\Games\IGI\game_sound.wav D:\Files\IGI\game_sound.wav
# WAV export-dir - autoscan directory for WAV files and export them
python -m igipy wav export-dir D:\Games\IGI\ D:\Files\IGI\
igipy bit ...
igipy cmd ...
igipy ctr ...
igipy fnt ...
igipy hmp ...
igipy lmp ...
igipy mef ...
igipy pic ...
igipy qvm ...
igipy spr ...
igipy tex ...
Files with extension *.qvm
contains compiled in-game scripts.
They are compiled into bytecode for game engine virtual machine (like Java JVM).
Exists two known version:
- Version 5 - in first game Project I.G.I.
- Version 7 - in second game I.G.I.-2: Covert Strike
Source code of both version are identical but in compiled form are incompatible. Scripts from first game can't be used in second game (without conversion) and vice versa.
Related file formats:
qsc
files (Q Source Code
) - source code of in-game scripts.qas
files (Q Assembler
) - intermediary file betweenqsc
andqvm
.qvm
files (Q Virtual Machine
) - compiled in-game scripts.
Files with extension *.wav
(as expected) contains in-game sounds.
But do not confuse them with commonly used sound format Waveform.
Has signature (first 4 bytes of file) ILSF witch means InnerLoopSoundFile.
Have four different sound pack methods.
RAW
- not packed.RAW_RESIDENT
- looks like not packed.ADPCM
- packed.ADPCM_RESIDENT
- packed.
ADPCM and ADPCM_RESIDENT appears only first game and at moment I don't know how to decode them.