3.1 KiB
GSC Tool
A utility to compile & decompile IW engine game scripts.
Supported Games
- IW5 (Call of Duty: Modern Warfare 3)
PC
PS3
Xbox 360
- IW6 (Call of Duty: Ghosts)
PC
PS4
Xbox One
- IW7 (Call of Duty: Infinite Warfare)
PC
PS4
Xbox One
- IW8 (Call of Duty: Modern Warfare (2019) / Warzone)
PC
PS4
PS5
Xbox One
Xbox Series X|S
- S1 (Call of Duty: Advanced Warfare)
PC
PS4
Xbox One
- S2 (Call of Duty: WWII)
PC
PS4
Xbox One
- S4 (Call of Duty: Vanguard)
PC
PS4
PS5
Xbox One
Xbox Series X|S
- H1 (Call of Duty: Modern Warfare Remastered)
PC
PS4
Xbox One
- H2 (Call of Duty: Modern Warfare 2 Campaign Remastered)
PC
PS4
PS5
Xbox One
Xbox Series X|S
- T6 (Call of Duty: Black Ops II)
PC
- T7 (Call of Duty: Black Ops III) *WIP*
- T8 (Call of Duty: Black Ops 4) *WIP*
- T9 (Call of Duty: Black Ops Cold War) *WIP*
Usage
./gsc-tool.exe <mode> <game> <path>
modes: asm
, disasm
, comp
, decomp
games: iw5c
, 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
Example: ./gsc-tool.exe comp iw5 ./data/iw5/my_fancy_script.gsc
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 |
File Format
If you need to extract scripts from fastfiles or game memory, use Zonetool or Jekyll.
-
gsc-tool
.gscbin
format is a serialized ScriptFile struct:
name: null-terminated 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
.cgsc
and decompressed stack buffer.cgsc.stack
. -
treyarch (T6) format is a single buffer with gscobj data
.gsc
or.csc
.
Credits
This project is based on RektInator's gsc-asm. Special thanks to RektInator, JTAG & Dasfonia.
Disclaimer
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.