summaryrefslogtreecommitdiff
path: root/README.md
blob: 8a07a2c88aee9c43f293b9242b8994339a1d6c25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# gsctool

Simple `GSC` loader and dumper for `Call Of Duty: Black Ops 1 (T5) (Microsoft Windows)`.

[`https://journal.lunar.sh/2023/gsctool.html`](https://journal.lunar.sh/2023/gsctool.html)

To load the demo `GSC` plugin copy `gsctool` to the games root directory.

This demo will give you a raygun on spawn in zombie mode (solo). 

* `GSC` dumps are written to `gsctool/cache`

> Note: This project is intended to be a starting point for more advanced `GSC` modding.

# Instructions

Run: `git submodule update --init --recursive` to clone submodules.

Then build project using the provided makefile in Windows Subsystem for Linux
and inject resulting `DLL`.

The compiler used for this project is [`tcc`](https://github.com/lunarjournal/tcc) (`Tiny C Compiler`).

> Note: You can modify and reload `GSC` scripts while Black Ops is running by quiting
the level and starting it again.

![Demo](https://raw.githubusercontent.com/lunarjournal/gsctool/main/images/demo.png)

Files:
<br/>
* `gsctool.h` - `GSC loader definitions`.
* `gsctool.c` - `core implementation`.
* `offsets.h` - `T5 function offsets`.

# Dependencies

* [`cdl86`](https://github.com/lunarjournal/cdl86) - `x86 detours library`.
* [`miniz`](https://github.com/lunarjournal/miniz) - `zlib library`.