My set of tools. The code is more important than the features, so feel free to reuse it. 🙂
Table of contents
Supported features
Name | Revision | Decompiler | Compiler | PS4 support |
---|---|---|---|---|
Black Ops 3 (T7) | 1B | Partial | ✅ | ❌ |
Black Ops 3 (T7) | 1C | ✅ | ✅ | ❌ |
Black Ops 4 (T8) | 36 | ✅ | ✅ | EXT |
Black Ops Cold War (T9) | 37 | DEC | ✅ | EXT |
Black Ops Cold War (T9) | 38 | DEC | ✅ | EXT |
Modern Warfare III (JUP) | 8A | EXT | EXT | ❌ |
Modern Warfare III (JUP) | 8B | DEC & EXT | EXT | ❌ |
Black Ops 6 (CER) | 06 | DEC & EXT | ✅ | ❌ |
Black Ops 6 (CER) | 07 | DEC & EXT | EXT | ❌ |
- DEC: With pre-decode
- EXT: With extensions, The extensions aren't provided publicly, at least not by me.
Commands
# Compile gsc file
acts gscc <input.gsc> -g <game>
# Example
acts gscc my_script.gsc -g cw # Compile my_script.gsc into a cold war script
# Decompile gsc file
acts gscd file.gscc -g
# Example
acts gscd compiled.gscc -g # Decompile the script compiled.gscc
Supported pools
-
Black Ops 3:
scriptbundle
,stringtable
,structuredtable
,rawfile
,scriptparsetree
. -
Black Ops 4:
weapon
,customizationtable
,rawfile
,stringtable
,structuredtable
,ddl
,scriptparsetree
,scriptparsetreeforced
,scriptbundle
,scriptbundlelist
,ttf
,bgcache
,maptable
,maptablelist
,maptableloadingimages
,maptablepreviewimages
,playerrolecategory
,playerrolecategorytable
,gametypetable
,unlockableitem
,unlockableitemtable
,playlists
,hierarchicaltasknetwork
,storagefile
,storagefilelist
,storeproduct
,storecategory
,storecategorylist
,rank
,ranktable
,prestige
,prestigetable
,labelstore
,labelstorelist
,rawstring
. -
Black Ops Cold War (Dec):
rawfile
,rawfilepreproc
,rawtextfile
,stringtable
,scriptparsetree
,scriptbundle
. -
Modern Warfare III (COR):
gscobj
,scriptbundle
,stringtable
,localize
,luafile
,ddl
. -
DEC: Requires pre-decode
-
COR: Using Cordycep.
Commands
# Command
acts dp <pool>
# Example
acts dp stringtable
Some dumpers are writing to Compiled Files (.cf), the command cfd (cf dump) can extract them.
# Command
acts cfd <files>
# Example
acts cfd output_dump
Prototype libary for random stuff, probably not linked to Call of Duty.
This tool is using and providing
- ANTLR-4 - BSD-3-Clause license.
- Detours - MIT license.
- Madler/zlib - Custom license.
- asmjit - ZLib license.
- ladislav-zezula/CascLib - MIT license.
- lz4/lz4 - Custom license.
- curl/curl - Custom license.
- vimpunk/mio - MIT license.
- JustasMasiulis/xorstr - Apache License 2.0
- ocornut/imgui - MIT license
- biocomp/hw_break - MIT license
- Tencent/rapidjson - MIT and JSON license
- glfw/glfw - zlib/libpng license
- bshoshany/thread-pool - MIT license
- nothings/stb - MIT license
You can download the latest release here:
- Latest Release
- Latest Dev Build (Might be unstable)
- ate47/t8-atian-menu : All the notes and dump generated by this tool. (All games)
- ate47/bo3-source : Black Ops 3 Dump
- ate47/bo4-source : Black Ops 4 Dump
- ate47/bocw-source : Black Ops Cold War Dump
- ate47/mwiii-source : Modern Warfare III Dump
- ate47/bo6-source : Black Ops 6 Dump
- ate47/BOHashTool : Tool to test hashes with error (en/de)coder for Black Ops games
To have a lookup over the extracted hashes, you can use a file named strings.txt
when using the process, it will be loaded automatically, one string per line.
You can also use .wni compiled files, create a directory with the name package_index
and put the .wni files in it.
- Serious's t8-compiler for some opcodes for Black Ops 4, it fasted up the process of understanding the internal game functions. Also for the childthread operator syntax.