1
1
# Splinter Cell Chaos Theory Trainer
2
2
### Timeline
3
- - Project started: 03/12/2021
4
- - First release: 03/14/2021
5
- - Final Revision: 05/14/2021
3
+ - Project started: 08/18/2021
4
+ - Switch from C to CPP: 08/18/2021
5
+ - Project completed: 08/19/2021
6
+ - Switch from CPP to C: 08/20/2021
6
7
7
8
## Overview & Demonstration
8
9
The main purpose of this project was to get familiar with the C language while also
9
- familiarizing myself with cross platform compilation from Linux (wsl Ubuntu 20.04 LTS)
10
- to Windows* .
10
+ familiarizing myself with the Directx9c API.
11
11
12
- <img src =" ./resources/sp3_godmode .gif " width = " 680 " height = " 400 " />
13
- Godmode Enabled - The player can not receive damage of any kind (invincible) while
14
- enemies convert any and all damage taken to maximum damage. (insta-kill)
12
+ <img src =" ./resources/demo .gif " />
13
+ Demonstration of God Mode, Disable Alarms, and Disable Enemies.
14
+ Activated cheats are highlighted in the top left in green.
15
15
16
16
## Table of Contents
17
17
- [ What I Learned] ( #what-i-learned )
18
- - [ How it works ] ( #how-it-works )
18
+ - [ How It Works ] ( #how-it-works )
19
19
- [ Build Instructions] ( #build-instructions )
20
- - [ Windows] ( #windows )
21
- - [ Linux (Debian)] ( #linux-debian )
22
- - [ Known issues] ( #known-issues )
20
+ - [ Known Issues] ( #known-issues )
23
21
- [ Goals] ( #Goals )
24
22
25
23
## What I Learned
26
- <b >Visual C++ lets you get away with a lot of programming fuckery.</b >
24
+ Splinter Cell Chaos Theory has a unique Directx API structure. Text can
25
+ not be drawn, and most sprites, tools, and images can only be half drawn
26
+ and are very poorly rendered when they are drawn.
27
27
28
- Switching to converting the old Visual C/C++ code to C99 was a pain because of the amount of
29
- errors that Visual Studio handled silently on its own. It was an enlightening experience .
28
+ There are more things that can be done but I've concluded that it's not
29
+ worth the effort .
30
30
31
- While cross compiling from Linux to Windows using <code >i686-win64-mingw32-gcc</code > isn't as well
32
- documented as VisualC++ is, it is certainly doable (with serious effort). It took a bit of
33
- research just to get the compiler to compile all of the various non-standard 'MS-isms' that
34
- are included in <code >Windows.h</code > and <code >tlhelp32.h</code >.
31
+ ## How It Works
32
+ Use any DLL injector that you are comfortable with to inject the file into
33
+ the <code >splintercell3.exe</code > process.
35
34
36
- I originally planned to hook DirectX for an internally hooked GUI, but getting mingw's ld
37
- to recognize <code >detours.h</code > was more work that it was really worth so it was abandoned.
38
- It seems that C++ is much better suited for these types of tasks anyway.
39
-
40
- ## How it works
41
- Use any DLL injector that you are comfortable with to inject the file into the <code >splintercell3.exe</code > process.
42
- If you don't have a DLL injector, you can use mine <a href =" https://github.com/malikrbooker/Vipers-DLL-Injector-2/releases/latest " >here</a >.
43
-
44
- A resize-able console will pop up letting you know what hacks are available as well as their respective status.
45
- <img src =" resources/dll_console_example.png " />
35
+ Once the DLL is injected, you will have access to the following Hacks:
36
+ - Numpad 1: God Mode
37
+ - Numpad 2: Ghost Mode
38
+ - Numpad 3: Super Weapons
39
+ - Numpad 4: Disable Alarms
40
+ - Numpad 5: Disable Enemies
41
+ - Numpad 6: Unlock All Doors
46
42
47
43
## Build Instructions
48
- ### Windows
49
- - Powershell
50
- 1 . install MinGW
51
- 2 . add MinGW/bin to path
44
+ - WSL
45
+ 1 . install cmake for windows
52
46
```
53
- $ make.exe
47
+ $ ./install_script.sh
54
48
```
55
-
56
49
- CMake
57
50
1. install cmake for windows
58
51
- Visual Studio 2019
@@ -65,43 +58,8 @@ A resize-able console will pop up letting you know what hacks are available as w
65
58
$ cmake --build "build" --config "Release"
66
59
```
67
60
68
- - WSL
69
- ```
70
- $ sudo apt install mingw-w64
71
- $ make
72
- ```
73
-
74
- - Python
75
- ```
76
- python3 build.py
77
- ```
78
-
79
- ### Linux (Debian)
80
- - MinGW
81
- ```
82
- $ sudo apt install mingw-w64
83
- $ make
84
- ```
85
-
86
- ## Known issues
87
- ~~I could not find a reliable 'in game' boolean value or other explicit distinction that would
88
- prevent the user from attempting to execute the code in places that would crash the game.~~ <i>circumvented</i>
89
-
90
- These locations include:
91
- - ~~Special cases such as trying to teleport without first equipping weapon~~ <i>(patched May 05, 2021)</i>
92
- - ~~Special cases such as trying to toggle no recoil without first equipping weapon~~ <i>(patched May 05, 2021)</i>
93
-
94
- The entity list is also extremely illusive. Sometimes functions that include the EntityList Object end
95
- up returning NULL due to its random nature. The hacks that rely on the EntityList Object tend to work
96
- less reliably as multiple levels are completed.
61
+ ## Known Issues
62
+ If the user presses F3 while the menu is minimized, it will reset position.
97
63
98
64
## Goals
99
- - [x] Find reliable weapon pointer <i>(patched March 12, 2021)</i>
100
- - [x] ~~Find 'Death' __thiscall~~ <i>(removed - unnecessary)</i>
101
- - [x] Find a way to prevent PolterGheist from breaking the game <i>(patched May 5, 2021)</i>
102
- - [ ] Find reliable entity_list pointer
103
- - [ ] ~~Find reliable player_health pointer~~ <i>(removed - unnecessary)</i>
104
- - [ ] ~~Find reliable 'in game' boolean (or other explicit distinction)~~ <i>(removed - unnecessary)</i>
105
-
106
- #### References
107
- *Windows - <i>10 Pro Insider Preview Build 21318.rs_prerelease.210216-1530)</i>
65
+ - [ ] ~~Find out how to draw text~~
0 commit comments