Gsc Tool Save

A utility to compile & decompile IW engine game scripts.

Project README

sonar build issues license releases paypal

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 PS3 PS4 Xbox 360 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
  • IW9 (Call of Duty: Modern Warfare II (2022) / Warzone 2) PC PS4 PS5 Xbox One Xbox Series X|S
  • S1 (Call of Duty: Advanced Warfare) PC PS3 PS4 Xbox 360 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 PS3 Xbox 360 Wii U
  • T7 (Call of Duty: Black Ops III) PC (Decompiler)
  • T8 (Call of Duty: Black Ops 4) *WIP*
  • T9 (Call of Duty: Black Ops Cold War) *WIP*
  • JUP (Call of Duty: Modern Warfare III (2023) *WIP*

Usage

gsc-tool [OPTIONS..] <path>

  • path: file or directory to process

  • options:

    -m, --mode <mode> [REQUIRED] one of: asm, disasm, comp, decomp, parse

    -g, --game <game> [REQUIRED] one of: iw5, iw6, iw7, iw8, iw9, s1, s2, s4, h1, h2, t6 t7 t8 t9 jup

    -s, --system <system> [REQUIRED] one of: pc, ps3, ps4, ps5, xb2 (360), xb3 (One), xb4 (Series X|S), wiiu

    -d, --dev Enable developer mode (dev blocks & generate bytecode map).

    -z, --zonetool Enable zonetool mode (use .cgsc files).

    -h, --help Display help.

    -v, --version Display version.

Example: gsc-tool -m comp -g iw5 -s pc ./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
parse parse a file.gsc file.gsc

File Format

If you need to extract scripts from fastfiles or game memory, use Zonetool or Jekyll.

  • gsc-tool .gscbin binary format is a serialized ScriptFile struct:

    • magic: "GSC\0" 4 byte
    • compressedLen: 4 byte usigned integer
    • len: 4 byte usigned integer
    • bytecodeLen: 4 byte usigned integer
    • buffer: byte array[compressedLen]
    • bytecode: byte array[bytecodeLen]

note: for PS3 & Xbox 360 .gscbin files (compressedLen, len, bytecodeLen) are saved as little-endian!!

  • 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.

Build

  • install premake5 on your system PATH
  • clone this repository
  • update the submodules git submodule update --init --recursive
  • run prebuild script premake5 vs2022 (windows) or premake5 gmake2 (linux/macos)

Contribute

If you like my work, consider sponsoring/donating! Would allow me to spend more time adding new features & fixing bugs.

BTC: bc1qky7x9kpjlt6nsvt7pckc3wwzk8rk9pgtnmw98u
ETH: 0x6261BBE1a33F6Fec4b722DbCe2c28B4CC02c9C7B
pypl kofi

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.

Open Source Agenda is not affiliated with "Gsc Tool" Project. README Source: xensik/gsc-tool

Open Source Agenda Badge

Open Source Agenda Rating