2020-05-21 13:32:38 +02:00
[](https://ci.appveyor.com/project/xensik/gsc-tool)

[](https://github.com/xensik/gsc-tool/issues)
[](https://github.com/xensik/gsc-tool/releases)
# GSC Tool
A utility to compile & decompile IW engine game scripts.
2022-01-19 20:01:12 +01:00
## Supported Games
2020-05-21 13:32:38 +02:00
- **IW5** *(Call of Duty: Modern Warfare 3)*
- **IW6** *(Call of Duty: Ghosts)*
- **IW7** *(Call of Duty: Infinite Warfare)*
2021-05-08 19:18:20 +02:00
- **IW8** *(Call of Duty: Modern Warfare (2019))*
2020-05-21 13:32:38 +02:00
- **S1** *(Call of Duty: Advanced Warfare)*
- **S2** *(Call of Duty: WWII)*
2021-09-13 17:50:36 +02:00
- **S4** *(Call of Duty: Vanguard)*
2020-05-21 13:32:38 +02:00
- **H1** *(Call of Duty: Modern Warfare Remastered)*
- **H2** *(Call of Duty: Modern Warfare 2 Campaign Remastered)*
2021-12-26 16:19:49 +01:00
- **T4** *(Call of Duty: World at War)* ** *\*WIP\****
- **T5** *(Call of Duty: Black Ops)* ** *\*WIP\****
2022-02-18 19:07:37 +01:00
- **T6** *(Call of Duty: Black Ops II)*
2020-05-21 13:32:38 +02:00
## Usage
2021-11-15 17:35:00 +01:00
``./gsc-tool.exe <mode> <game> <path>` `
2022-01-19 20:01:12 +01:00
**modes**: `asm` , `disasm` , `comp` , `decomp`
2021-11-15 17:35:00 +01:00
2022-02-18 19:07:37 +01:00
**games**: `iw5` , `iw6` , `iw7` , `iw8` , `s1` , `s2` , `s4` , `h1` , `h2` , `t6`
2021-11-15 17:35:00 +01:00
2022-02-19 16:22:11 +01:00
**paths**: `file` , `directory` (recursive process all files inside dir)
2021-11-15 17:35:00 +01:00
2022-02-19 16:22:11 +01:00
for zonetool files (*.cgsc*, *.cgsc.stack* ) use: `zasm` , `zdisasm` , `zcomp` , `zdecomp` modes
2020-05-21 13:32:38 +02:00
| Mode |Description | Output |
|:---------|:--------------------------|:------------|
2021-11-15 17:35:00 +01:00
|`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` |
2020-05-21 13:32:38 +02:00
2022-02-19 16:22:11 +01:00
## File Format
2020-05-21 13:32:38 +02:00
- gsc-tool ``.gscbin` ` format 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].
2022-02-19 16:22:11 +01:00
- 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` `.
2020-05-21 13:32:38 +02:00
## Credits
This project is based on [*RektInator's* gsc-asm ](https://github.com/ZoneTool/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.