diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 53 |
1 files changed, 38 insertions, 15 deletions
@@ -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. |