2016-04-27 06:45:59 +02:00
# demboyz
2014-10-29 04:41:34 +01:00
we dem boyz
2015-05-16 01:29:17 +02:00
2016-04-27 06:45:59 +02:00
## Build Status
| System | Compiler | Status |
| ------ | -------- | ------ |
| Linux 64-bit | G++-4.8.4 | [![Build Status ](https://semaphoreci.com/api/v1/sizzlingcalamari/demboyz/branches/master/badge.svg )](https://semaphoreci.com/sizzlingcalamari/demboyz) |
2017-05-25 05:47:30 +02:00
| Windows | VS2017 | [![Build status ](https://ci.appveyor.com/api/projects/status/pc63pbl9b0t5tygl/branch/master?svg=true )](https://ci.appveyor.com/project/SizzlingCalamari/demboyz/branch/master) |
2017-05-28 02:05:09 +02:00
| OSX | Apple LLVM version 7.3.0 (clang-703.0.31) | [![Build Status ](https://travis-ci.org/SizzlingStats/demboyz.svg?branch=master )](https://travis-ci.org/SizzlingStats/demboyz) |
2016-04-27 06:45:59 +02:00
2015-10-14 01:56:47 +02:00
## What is it?
2015-09-06 04:26:24 +02:00
2015-09-06 04:30:45 +02:00
Demboyz is a command line tool to convert TF2 STV demos into a human readable json format. Demboyz runs on Linux, Windows, and OSX.
2015-09-06 04:26:24 +02:00
It supports the following conversions:
.dem/.json < - > .dem/.json
.dem/.json -> .con
The .dem format is the TF2 STV demo format.
The .json format is the demboyz streaming json demo format.
The .con format is a log equal to what would be produced by TF2
with netmessage/demmessage logs enabled.
2015-10-14 01:56:47 +02:00
## Potential Uses
2015-09-06 05:03:10 +02:00
* Exporting Stats: Parsing for player stats and motion throughout maps.
* Anticheat: Interpreting player net data for malicious behavior and cheating
* Anti-Anticheat: Modifying player net data to hide your malicious behaviour and cheating
* Censoring: Cover up rude communication by removing player voice and chat messages
* Social engineering: Make your friends seem rude by adding phony player voice and chat messages
* ConeBone69 revival: Change the names of all players to ConeBone69
2015-10-14 01:56:47 +02:00
## Usage
2015-09-06 04:26:24 +02:00
./demboyz mystvdemo.dem mystvdemo.json
./demboyz mystvdemo.dem mystvdemo.con
./demboyz mystvdemo.json mystvdemo.dem
./demboyz mystvdemo.json mystvdemo.con
In the first example, mystvdemo.dem will be read from the current working directory, while mystvdemo.json will be written to the current working directory.
2015-10-14 01:56:47 +02:00
## Contributing
### For Developers
If you would like to contribute to demboyz, here are a few tasks up for grabs:
#### General programming experience:
2015-10-15 06:33:21 +02:00
* Add automated tests to demboyz.
* Using the Catch C++ testing framework.
* Unit test the serialization of network messages.
* System test exact binary matches of dem -> json -> dem transformations.
2015-10-14 01:56:47 +02:00
* Document the .dem format.
* Turn the working demboyz serialization code into a reference manual for the .dem fomat.
* Any amount of work on this helps. Document one struct!
* Develop an app that uses demboyz.
* Provide feedback on the usefulness of the json demo format.
* Create new tools previously impossible to make.
#### C++ and asm experience:
* Continue reverse engineering the STV demo structs and serialization (svc_ messages).
* Many of the reversed svc_ messages still have unknown binary chunks of data.
* Reverse them for addition to the demboyz source.
* Reverse engineer the POV demo structs and serialization (clc_ messages).
* Currently, demboyz only supports STV demos due to POV demo messages being separate and unknown.
* Work on reverse engineering the clc_ messages just like the svc_ messages.
* Add a conversion to the replay demo format.
* The replay demo format would require reverse engineering just like POV and STV demos.
### For Users
* Cheer on the developers.
* Pressure the developers.
* Become a developer.
## Who Uses demboyz?
* [KZMod Demo Player [beta]](http://xtreme-jumps.eu/e107_plugins/forum/forum_viewtopic.php?359435) by kraster
2015-09-06 04:30:45 +02:00
## Compiling From Source
When following instructions below, the compiled binary will be output in the bin folder.
2015-05-16 01:29:17 +02:00
### Using Vagrant
2015-10-13 01:55:23 +02:00
# Launch VM and build
2015-05-16 01:29:17 +02:00
vagrant up
2015-10-13 01:55:23 +02:00
# Patch VM and re-build
vagrant provision
2015-05-16 01:29:17 +02:00
2015-10-13 01:55:23 +02:00
# Manual build
vagrant ssh
cd /vagrant/premake
2015-05-16 01:29:17 +02:00
./gmake.sh & & cd gmake
make
# Disconnect session and stop VM
exit
vagrant halt
2015-09-06 04:10:55 +02:00
### With Visual Studio 2013
# Generate vs 2013 project
cd premake
vs2013.bat
Open generated VS solution at premake/vs2013/demboyz.sln