# Rehlds [![Build Status](http://teamcity.rehlds.org/app/rest/builds/buildType:(id:Rehlds_Publish)/statusIcon)](http://teamcity.rehlds.org/viewType.html?buildTypeId=Rehlds_Publish&guest=1) [![Download](https://camo.githubusercontent.com/65c70643ec7b40eea50971003624c2fb04d8d375/687474703a2f2f7265686c64732e6f72672f76657273696f6e2f7265686c64732e737667)](http://teamcity.rehlds.org/guestAuth/downloadArtifacts.html?buildTypeId=Rehlds_Publish&buildId=lastSuccessful) Reverse-engineered (and bugfixed) HLDS ## What is this? ReHLDS is a result of reverse engineering of original HLDS (build 6152/6153) using DWARF debug info embedded into linux version of HLDS, engine_i486.so Along with reverse engineering, a lot of defects and (potential) bugs were found and fixed You can try play on one of the servers that using rehlds: http://www.gametracker.com/search/?search_by=server_variable&search_by2=sv_version ## Goals of the project ## How can use it? Rehlds is fully compatible with latest official HLDS downloaded by steamcmd. All you have to do is to download rehlds binaries and replace original swds.dll/engine_i486.so. For windows you can also copy a swds.pdb file with a debug information.
Warning! Rehlds is not compatible with an old 5xxx or below platforms downloaded by hldsupdatetool. Compiled binaries are available here: http://nexus.rehlds.org/nexus/content/repositories/rehlds-dev/rehlds/rehlds/ Rehlds binaries require SSE, SSE2 and SSE3 instruction sets to run and can benefit from SSE4.1 and SSE4.2. Archive's bin directory contains 2 subdirectories, 'bugfixed' and 'pure' Warning! Rehlds is not binary compatible with original hlds since it's compiled with compilers other than ones used for original hlds. This means that plugins that do binary code analysis (Orpheu for example) probably will not work with rehlds. ## Configuring Bugfixed version of rehlds contains an additional cvars: ## Commands Bugfixed version of rehlds contains an additional commands: ## Build instructions There are several software requirements for building rehlds:
  1. Java Development Kit (JDK) 7+ (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
  2. For Windows: Visual Studio 2013 and later
  3. For Linux: Intel C++ Compiler 13 and later or GCC 4.9.2 or later (some earlier versions might work too)
### Checking requirements #### JDK version Windows
> %JAVA_HOME%\bin\javac -version
javac 1.8.0_25
Linux
$ javac -version
javac 1.7.0_65
#### Visual Studio Help -> About #### ICC
$ icc --version
icc (ICC) 15.0.1 20141023
#### GCC
$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2
### Building On Windows:
gradlew --max-workers=1 clean buildRelease
* For faster building without unit tests use this:exclamation:
gradlew --max-workers=1 clean buildFixes
NOTE: You can also use `Visual Studio` to build, just select from the solution configurations list `Release Swds` or `Debug Swds`
On Linux (ICC):
./gradlew --max-workers=1 clean buildRelease
* For faster building without unit tests use this:exclamation:
./gradlew --max-workers=1 clean buildFixes
On Linux (GCC):
./gradlew --max-workers=1 -PuseGcc clean buildRelease
* For faster building without unit tests use this:exclamation:
./gradlew --max-workers=1 -PuseGcc clean buildFixes
Also there is a task `buildEngine`, it builds only engine, without other parts of the project.
Compiled binaries will be placed in the rehlds/build/binaries/ directory ## How can I help the project? Just install it on your game server and report problems you faced. Merge requests are also welcome :)