A utility to compile & decompile IW engine game scripts.
- IW5 (Call of Duty: Modern Warfare 3)
- IW6 (Call of Duty: Ghosts)
- IW7 (Call of Duty: Infinite Warfare)
- IW8 (Call of Duty: Modern Warfare (2019))
- S1 (Call of Duty: Advanced Warfare)
- S2 (Call of Duty: WWII)
- S4 (Call of Duty: Vanguard)
- H1 (Call of Duty: Modern Warfare Remastered)
- H2 (Call of Duty: Modern Warfare 2 Campaign Remastered)
- T4 (Call of Duty: World at War) *WIP*
- T5 (Call of Duty: Black Ops) *WIP*
- T6 (Call of Duty: Black Ops II)
- T7 (Call of Duty: Black Ops III) *WIP*
./gsc-tool.exe <mode> <game> <path>
modes: asm, disasm, comp, decomp
games: iw5, iw6, iw7, iw8, s1, s2, s4, h1, h2, t6
paths: file, directory (recursive process all files inside dir)
for zonetool files (.cgsc, .cgsc.stack) use: zasm, zdisasm, zcomp, zdecomp modes
| Mode | Description | Output |
|---|---|---|
asm |
assemble a file.gscasm |
file.gscbin |
disasm |
dissasemble a file.gscbin |
file.gscasm |
comp |
compile a file.gsc |
file.gscbin |
decomp |
decompile a file.gscbin |
file.gsc |
If you need to extract scripts from fastfiles or game memory, use Zonetool or Jekyll.
-
gsc-tool
.gscbinformat is a serialized ScriptFile struct: name: null-term string, compressedLen: 4 byte uint, len: 4 byte uint, bytecodeLen: 4 byte uint, buffer: byte array[compressedLen], bytecode: byte array[bytecodeLen]. -
zonetool (IW5) format made of bytecode file
.cgscand decompressed stack buffer.cgsc.stack. -
treyarch (T6) format is a single buffer with gscobj data
.gscor.csc.
This project is based on RektInator's gsc-asm. Special thanks to RektInator, JTAG & Dasfonia.
This software has been created purely for the purposes of academic research. Project maintainers are not responsible or liable for misuse of the software. Use responsibly.