aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README53
1 files changed, 38 insertions, 15 deletions
diff --git a/README b/README
index 9669078..af0b2b6 100644
--- a/README
+++ b/README
@@ -10,21 +10,42 @@ Windows:
• Install the Windows 10 SDK and MSVC toolset via the Visual Studio Installer
(if you don’t care what else gets installed, installing the C++ Desktop
workload should be fine).
- • Install native Clang from https://clang.llvm.org (NOT MinGW/MSYS2 Clang!).
+ • Install native Clang from the LLVM GitHub releases page. (NOT MinGW/MSYS2
+ Clang!). C23 support is required; at the time of writing Clang 16 worked, but
+ Clang 20 is being used now. If you get syntax errors or unexpected keywords
+ or something, your compiler is probably too old.
• Run compile.bat (in lieu of a better build tool, to be added later).
Linux:
• Install Clang (and LLD) via your system package manager. Technically, GCC
should be able to compile most of this too, but we are currently relying on
- a Clang-specific extension or two, and GCC in general doesn't get tested nor
- used for binary releases, so it's probably not worth wasting time on.
+ a Clang-specific extension or two, and GCC in general doesn’t get tested nor
+ used for binary releases, so it’s probably not worth wasting time on.
• Install 32-bit glibc and libstdc++ libraries and associated C headers if
they’re not already installed.
• Run ./compile (in lieu of a better build tool, to be added later).
-NOTE: Linux code should compile now but still crashes on cvar registration and
-almost none of the features usefully work. In other words, it needs quite a lot
-more development before it's of use to anyone.
+NOTE: Linux code should maybe compile now but still crashes on cvar registration
+and almost none of the features usefully work. In other words, it needs quite a
+lot more development before it’s of use to anyone. It’s also not actively tested
+really so don’t be surprised if it doesn’t compile at all again at some point.
+
+════ Debugging ════
+
+On Windows, SST’s preferred debugger is WinDBG (specifically the new frontend),
+because it does everything we need, is free, and isn’t horribly slow usually.
+
+The script tools/windbg/windbg.bat will automatically download the latest
+version into tools/windbg/bin and run it. Alternatively, if you already have a
+copy, set the environment variable WINDBG_BIN and that copy will be used
+instead.
+
+NatVis definitions are contained in tools/windbg/natvis.xml. Currently there is
+not much in there but it can be expanded as and when useful things come up.
+
+Note that after debugging some specific games (mainly some old versions of Left
+4 Dead 2) it may be necessary to run tools/steamfix.bat to make other Steam
+games launch correctly again.
════ How and where to install ════
@@ -41,15 +62,17 @@ left4dead2/, hl2/. Left 4 Dead and later branches *ALSO* try to load from the
top-level game directory where the EXE is, if other paths don’t work.
Since this plugin is designed to be universal, a reasonable recommendation is to
-always put it in bin/ and then use the command `plugin_load ../bin/sst`. The way
-the paths work out, that always works no matter what, thus taking all the
-thought out of it. It’s also a sensible way to share the plugin between multiple
-mods in an engine installation, where relevant.
-
-It’s additionally possible to back out of the game installation with `../../`
-etcetera and load from anywhere you want, as long as it’s not on a different
-Windows drive letter. This is especially handy if you’re building from source
-and don’t want to copy it over every time.
+make a directory for SST in the top-level engine directory and do for instance
+`plugin_load ../SST/sst`. The way the paths work out, that always works no
+matter what, and also avoids cluttering up your game files.
+
+When actively developing the plugin, it’s possible to back out of the game
+installation with `../../` etcetera and load from anywhere you want, as long as
+it’s not on a different Windows drive letter. This is essentially the best way
+to work with SST built from source as it avoids the need to copy it to different
+games. The way the build scripts are written, you can rebuild the plugin
+in-place before reloading it from the game console. It can be helpful to write
+some console aliases or set up a bind to reload the plugin quickly on-the-fly.
Note: some very old (and very new) Source builds don’t have a plugin_load
command. For the time being, these versions are unsupported.