Reverse-engineered HLDS
Go to file
2016-01-05 04:09:27 +03:00
buildSrc Implemented notify of warning about failure tests 2015-09-28 19:51:06 +06:00
dep Implemented notify of warning about failure tests 2015-09-28 19:51:06 +06:00
flightrec Various fixes in the decoder of flight record dumps 2015-12-06 19:05:56 +04:00
gradle/wrapper Link libstdc++ statically on linux 2015-06-06 23:40:49 +04:00
msvc Fixed: there was a tiny chance to assemble corrupted svc_event message in SV_EmitEvents 2015-05-17 19:15:10 +04:00
rehlds Added NET_Sleep_Timeout_New 2016-01-05 04:09:27 +03:00
.gitignore Implemented delta JIT 2015-05-19 23:20:11 +04:00
build.gradle Link libstdc++ statically on linux 2015-06-06 23:40:49 +04:00
gradle.properties Initial commit 2015-05-04 22:25:41 +04:00
gradlew Link clock_gettime from librt to avoid dependency of GLIBC_1.17 2015-06-12 17:15:23 -05:00
gradlew.bat Initial commit 2015-05-04 22:25:41 +04:00
LICENSE Initial commit 2015-05-04 22:21:48 +04:00
publish.gradle Various fixes in the decoder of flight record dumps 2015-12-06 19:05:56 +04:00
README.md Update README.md 2015-05-05 19:59:50 +04:00
settings.gradle Flightrec: WIP 2015-05-17 15:30:30 +04:00
shared_icc.gradle Link libstdc++ statically on linux 2015-06-06 23:40:49 +04:00
shared_msvc.gradle Initial commit 2015-05-04 22:25:41 +04:00
shared.gradle Initial commit 2015-05-04 22:25:41 +04:00

Rehlds

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

At this moment rehlds is not mature enough to use in production environment, however, during internal 3-day test on Windows on customized server (metamod + amxmodx + plugins) no issues were found

Goals of the project

  • Provide more stable (than official) version of Half-Life dedicated server with extended API for mods and plugins
  • Performance optimizations (use of SSE for vector math for example) is another goal for the future

How can use it?

Rehlds is fully compatible with official HLDS. All you have to do is to download rehlds binaries and replace original swds.dll/engine_i486.so

Compiled binaries are available here: http://nexus.rehlds.org/nexus/content/repositories/rehlds-releases/rehlds/rehlds/0.1/rehlds-0.1.zip

Archive's bin directory contains 2 subdirectories, 'bugfixed' and 'pure'

  • 'pure' version is designed to work exactly as official hlds engine
  • 'bugfixed' version contains some fixes and improvements

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.

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

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

Building

On Windows:

gradlew --max-workers=1 clean buildRelease

On Linux:

./gradlew --max-workers=1 clean buildRelease

Compiled binaries will be placed in the 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 :)