tools/gdc-psyfork/DOCS
author Nicholas Hastings <skamonkey@gmail.com>
Sun May 27 11:39:50 2012 -0400 (2012-05-27)
changeset 3514 377c7da70d7c
parent 3513 50b5b98b3400
child 3575 664499cf4a2f
permissions -rw-r--r--
Added example scripts missing from last commit (NPOTB).
skamonkey@3513
     1
Based on Fyren's original "gdc" in ../gdc.
skamonkey@3513
     2
skamonkey@3513
     3
This program checks SM gamedata in the given gameconf against the given server (not engine) binary.  It only checks vtable offsets and signatures.  It also only checks one gameconf per invocation.
skamonkey@3513
     4
skamonkey@3513
     5
Example usage:
skamonkey@3513
     6
skamonkey@3513
     7
  LD_LIBRARY_PATH=~/steam/left4dead2/bin/ gdc -g left4dead2 -e l4d2 -f ~/sourcemod-central/gamedata/sdktools.games/engine.l4d2.txt -b ~/steam/left4dead2/left4dead2/bin/server.so -x ~/steam/left4dead2/bin/engine.so -w ~/steam/left4dead2/left4dead2/bin/server.dll -y ~/steam/left4dead2/bin/engine.dll
skamonkey@3513
     8
skamonkey@3513
     9
This will verify the gamedata in engine.l4d2.txt against the L4D2 server and engine binaries.
skamonkey@3513
    10
skamonkey@3513
    11
The command line can get a bit long, but it is meant to be scripted.
skamonkey@3513
    12
skamonkey@3513
    13
The parameters taken (in any order) are:
skamonkey@3513
    14
  -g <game name> 
skamonkey@3513
    15
  -e <engine name> 
skamonkey@3513
    16
  -f <gameconf file> 
skamonkey@3513
    17
  -b <linux game binary path>
skamonkey@3513
    18
  -x <engine binary path>
skamonkey@3513
    19
  -w <windows game binary path>
skamonkey@3513
    20
  -y <windows engine binary path>
skamonkey@3513
    21
skamonkey@3513
    22
The file symbols.txt defines the extra information necessary to link up gamedata key names (like "CommitSuicide") with symbols (like "_ZN11CBasePlayer13CommitSuicideEv").  It also needs a "vtsym" key that contains the symbol name of the default class' vtable.  Vtable to use for an individual conf key can be overridden by adding a key with name "<keyname>_vt", using the vtable symbol for its class as the value. The symbols.txt itself is a gameconf file.