Skip to content

tx00100xt/LCSources-DXVK9

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Last Chaos Client

Last Chaos 64-bit client based on the 2015/2018 code base and
patched to build on the latest versions of Visual Studio with modern Windows 10 SDK.

You can view the original server source code here:
openlastchaos -> lastchaos-source-client

Whats New

  • The old (2000) proprietary library ijl15 from Intel has been removed from dependencies.
    She was only responsible for creating screenshots of the screen in jpeg format. Now
    screenshots are created in TGA format.

  • Xtrap and Kalydo have been disabled, their libraries have been removed from the client's
    build because these are proprietary technologies that interfere with the development
    of the game client.

  • Removed all garbage libraries not involved in the client build.

  • Now all the libraries needed for the client are building from the source code
    (except for boost libraries).

  • Library boost has been upgraded to version 1.78 (1.82.0 tested too)
    You can download the boost library here:
    https://sourceforge.net/projects/boost/files/boost-binaries/1.78.0/

  • Game logging has been restored. This improves the debugging of the client
    and allowed us to immediately find a number of errors.

  • After restoring the log, errors were found in the Entities.In CharacterBase.es,
    EnemyBase.es, PetBase.es, SlaveBase.es the destructor is deleted, since it is not
    needed here in the first place. Secondly, he broke the pre-caching of resources.
    It was visible in the game log. There were also some client resource errors visible
    in the log. Temporarily disabled these messages in Entities itemObjects.es and ModelHolder3.es.

  • The client has been updated to new versions of Visual Studio.
    You can choose from your choice of versions 2013, 2017, 2019, 2022. (With native Win10 SDK)

  • All absolute paths have been removed from client projects.
    Good practice: Do not use absolute paths in projects. Use macros to set paths.
    https://learn.microsoft.com/EN-uS/cpp/build/reference/common-macros-for-build-commands-and-properties?view=msvc-170

  • The client has been updated from DirectX 8 to DirectX 9.
    The version with DirectX 8 is also left for convenient comparison in
    meld(recommended) or winmerge.

Support 64-bit

  • Updated from SeriousSamClassic:

    Engine/Base
    Engine/Lights
    Engine/Math
    Engine/Templates

    and some more.

  • Texture objects are expanded to 64 bits.
    This was necessary for the 64 bit version to work.

  • Flag D3DXSHADER_SKIPVALIDATION has been added to the shader compilation function.
    (D3DXAssembleShader). Without this flag, only pixel shaders were compiled.
    Compiling vertex shaders caused an error.

  • All assembly code has been translated into C/C++
    In files:

    Engine.cpp
    Models/RenderModel_View.cpp
    Network/CNetwork.cpp
    Network/NetworkMessage.cpp
    Network/CPacket.cpp
    Terrain/TRGenerate.cpp
    Rendering/RendMisc.cpp
    LocalDefine.h
    Sound/SoundMixer.cpp
    Ska/RMRender.cpp
    Base/Timer.cpp
    Base/CTString.cpp
    Base/Profiling.cpp
    Base/ErrorReporting.cpp
    Base/Assert.h
    Base/MemoryTracking.cpp // not used
    Base/StackDump.cpp // not used
    Base/Memory.h
    Math/Functions.h
    Math/Clipping.inl
    Math/Matrix12.h
    Light/LayerMixer.cpp
    Graphics/Gfx_Direct3D.cpp
    Graphics/TextureEffects.cpp
    Graphics/Color.cpp
    Graphics/OpenGL.h
    Graphics/Shader.cpp
    Graphics/Color.h
    Graphics/Gfx_Direct3D_Colors.cpp
    Graphics/Vertex.h
    Graphics/Graphics.cpp
    Graphics/Fog.cpp
    Graphics/DrawPort_RenderScene.cpp
    Gfx_OpenGL_Textures.cpp
    Gfx_Direct3D_Textures.cpp

  • To work with a 64-bit client, a 64-bit server has compiled. (Windows/Linux)

  • A universal 64-bit Linux server for a 32/64-bit client has been created.
    The server source code and server libraries have been patched to support the
    latest versions of GCC and Clang. The server can be compiled on the latest
    versions of any Linux. Tested on Debian 12.5 amd64 and Gentoo amd64 [portage, January 2024].
    Since there is Clang support, you can compile the server under FreeBSD/OpenBSD/NetBSD/macOS.

  • Fixed many pointers cut to 32-bit
    (without correction, segfault occurs)

Additional

  • OpenGL render is unlocked.
    Some textures rendering are not corrected.
    Need to add some code:
    Engine/Terrain/TRRender.cpp
    Engine/Graphics/Shader.cpp
    Engine/Graphics/TextureRender.cpp
    and in some other places.

  • The CWebPage library has been added to the project.

  • The PersistentSymbolTool utility has been added to the project.

  • Some fixes bugs.

Last Chaos Server

Last Chaos Server based on the 2015/2018 code base and
patched to build and run on the latest versions of Linux.

This source code does not require manual compilation of libraries
and uses native libraries of modern distributions. You just need to
install the dependeces libraries and headers in your distribution.

Compilation and run of the server were tested on Debian 12.5 amd64
and Gentoo (Protage 2024) distributions using the GCC-12 and Clang-16
compilers.

You can view the original server source code here:
openlastchaos -> lastchaos-source-server

Prerequisites:

  • apr
  • apr-util
  • log4cxx
  • sqlite3
  • curl
  • jsoncpp
  • botan-2
  • boost
  • mysql or mariadb
  • subversion

To install these packages in Debian/Ubuntu use the script install-deps.sh
Additionally, the script will install the i386 environment necessary
to run CashServer.In Gentoo, simply use the emerge command to install
these packages.

Compile Source

To compile, go to the LCS2015/Server.Sources or LCS2018/Server.Sources directory,
open a terminal and enter:

make usa && make clean

Once compilation is complete, go to the LCS2015(LCS2018) directory,
open a terminal and type:

./install-server.sh

After installing the server, you need to set your IP for the server and password
for the MySQL databases. To do this, open a terminal and enter:

./set-ip.sh YOUR-IP
./set-pass.sh YOUR-PASSWORD

Next, you need to create and set the date base. (archive directory)
For a server based on codebase 2015, run in the terminal:

mysql -u root -p

mysql​> CREATE DATABASE ep4_data;
mysql​> CREATE DATABASE ep4_db;
mysql​> CREATE DATABASE ep4_db_auth;
mysql​> CREATE DATABASE ep4_post;
mysql​> quit;

mysql -u root -p ep4_data < ep4_data.sql
mysql -u root -p ep4_db < ep4_db.sql
mysql -u root -p ep4_db_auth < ep4_db_auth.sql
mysql -u root -p ep4_post < ep4_post.sql

For a server based on codebase 2015, run in the terminal:

mysql -u root -p

mysql​> CREATE DATABASE 2018_nov_data;
mysql​> CREATE DATABASE 2018_nov_db;
mysql​> CREATE DATABASE 2018_nov_db_auth;
mysql​> CREATE DATABASE 2018_nov_post;
mysql​> quit;

mysql -u root -p 2018_nov_data < 2018_nov_data.sql
mysql -u root -p 2018_nov_db < 2018_nov_db.sql
mysql -u root -p 2018_nov_db_auth < 2018_nov_db_auth.sql
mysql -u root -p 2018_nov_post < 2018_nov_post.sql

At this stage, the installation of the server and databases is complete.

Run Server

To start the server, go to the LCS2015(LCS2018) directory and run
one of three commands in the terminal:

./run-server.sh null

For run server without windows.

./run-server.sh xterm

For run server with xterm windows.

./run-server.sh mate

For run server without windows.

Install to System

After you have installed and configured the server locally, run the
install-to-system.sh script with administrator rights to install
the server on the system.

The server will be installed in the /opt/LCS2015(2018) directory and
started using systemd at system startup.

Server Log files (log4j)

By default, rolling is set to 1 hour. To change for 1 day
or your value, edit the log.xml files.

The work was done by

tx00100xt
https://github.com/tx00100xt
Alexander Pavlov.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published