From 52a9d45c85299a5b5619b8c49c6bfc59da234398 Mon Sep 17 00:00:00 2001 From: Alexander Pavlov Date: Sat, 2 Mar 2024 01:19:17 +0300 Subject: [PATCH] Update debian files from https://salsa.debian.org/tx00100xt/serioussam-vk --- debian/README.Debian | 141 +++----- debian/README.source | 141 +++----- debian/changelog | 6 +- debian/control | 28 +- debian/copyright | 112 ++++-- ...github.tx00100xt.serioussam-vk.appdata.xml | 68 ++++ debian/manpages | 9 +- debian/patches/0001-desktop-file.patch | 37 ++ debian/patches/0002-CMakeLists.txt.patch | 330 ++++++++++++++++++ debian/patches/0003-Engine.cpp.patch | 230 ++++++++++++ debian/patches/0004-Stream.patch | 107 ++++++ debian/patches/0005-SeriousSam.cpp.patch | 24 ++ debian/patches/0006-Adapter.cpp.patch | 26 ++ debian/patches/0007-Gfx_Vulkan.cpp.patch | 24 ++ debian/patches/series | 7 + debian/postinst | 4 - debian/postrm | 4 - debian/rules | 1 - debian/serioussam-vk-ded.6 | 30 ++ ...c-vk-docs.docs => serioussam-vk-docs.docs} | 0 debian/serioussam-vk-mkfont.6 | 33 ++ debian/serioussam-vk-texconv.6 | 24 ++ ...serioussamclassic-vk.1 => serioussam-vk.6} | 166 ++++----- debian/serioussamse-vk-ded.6 | 30 ++ debian/serioussamse-vk-mkfont.6 | 33 ++ debian/serioussamse-vk-texconv.6 | 24 ++ debian/serioussamse-vk.6 | 310 ++++++++++++++++ debian/source/include-binaries | 2 + debian/source/options | 65 ++++ debian/upstream/metadata | 5 + debian/watch | 4 + 31 files changed, 1686 insertions(+), 339 deletions(-) create mode 100644 debian/io.github.tx00100xt.serioussam-vk.appdata.xml create mode 100644 debian/patches/0001-desktop-file.patch create mode 100644 debian/patches/0002-CMakeLists.txt.patch create mode 100644 debian/patches/0003-Engine.cpp.patch create mode 100644 debian/patches/0004-Stream.patch create mode 100644 debian/patches/0005-SeriousSam.cpp.patch create mode 100644 debian/patches/0006-Adapter.cpp.patch create mode 100644 debian/patches/0007-Gfx_Vulkan.cpp.patch create mode 100644 debian/patches/series delete mode 100644 debian/postinst delete mode 100644 debian/postrm create mode 100644 debian/serioussam-vk-ded.6 rename debian/{serioussamclassic-vk-docs.docs => serioussam-vk-docs.docs} (100%) create mode 100644 debian/serioussam-vk-mkfont.6 create mode 100644 debian/serioussam-vk-texconv.6 rename debian/{serioussamclassic-vk.1 => serioussam-vk.6} (62%) create mode 100644 debian/serioussamse-vk-ded.6 create mode 100644 debian/serioussamse-vk-mkfont.6 create mode 100644 debian/serioussamse-vk-texconv.6 create mode 100644 debian/serioussamse-vk.6 create mode 100644 debian/source/include-binaries create mode 100644 debian/source/options create mode 100644 debian/upstream/metadata create mode 100644 debian/watch diff --git a/debian/README.Debian b/debian/README.Debian index 88cbdcbb..6b7776e1 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,20 +1,20 @@ -serioussamclassic-vk for Debian -------------------------------- +serioussam-vk for Debian +------------------------ Introduction ============ -This implementation of the source code provides for installation in the system, in the /usr/bin, /usr/lib, /usr/share directories. +This implementation of the source code provides for installation in the system, in the /usr/games, /usr/lib, /usr/share directories. -During the launch of the game, the engine determines the place of launch, and if the launch occurred from the /usr/bin directory, +During the launch of the game, the engine determines the place of launch, and if the launch occurred from the /usr/games directory, it switches to the libraries search mode in the system directories. Also adds searching for game data in various directories. About the search for game data will be written below. Otherwise, the engine considers that a local launch of the game has occurred and will look for game data in the root directory of the game. User data, such as game settings, log, saves, demos will be located in: -~/.local/share/Serious-Engine/serioussam/ - for TFE -~/.local/share/Serious-Engine/serioussamse/ - for TSE +~/.serioussam-vk/ - for TFE +~/.serioussamse-vk/ - for TSE If you start the game with the +portable key, then there will be a full portable mode and user data, such as game settings, log, saves, demos will also be located in the root directory of the game. @@ -28,118 +28,81 @@ These names are initially accepted in the engine and are used for example in a n Location of executables, libraries, and modification libraries ============================================================== -The executable files of the game are located in the '/usr/bin' directory. +The executable files of the game are located in the '/usr/games' directory. -/usr/bin/"internal game name" +/usr/games/"internal game name"-vk The dedicated server and the font creation utility for the game are also located in this directory. -/usr/bin/"internal game name"-ded -/usr/bin/"internal game name"-mkfont +/usr/games/"internal game name"-vk-ded +/usr/games/"internal game name"-vk-mkfont +/usr/games/"internal game name"-vk-texconv The game libraries will be searched in the following directories: -/usr/lib/"internal game name"/ -/usr/lib64/"internal game name"/ -/usr/lib/i386-linux-gnu/"internal game name"/ -/usr/lib/x86_64-linux-gnu/"internal game name"/ -/usr/lib/arm-linux-gnueabihf/"internal game name"/ -/usr/lib/aarch64-linux-gnu/"internal game name"/ -/usr/lib/riscv64-linux-gnu/"internal game name"/ -/usr/lib/s390x-linux-gnu/"internal game name"/ -/usr/lib/powerpc64-linux-gnu/"internal game name"/ +/usr/lib/games/"internal game name"-vk/ The location of the libraries of modifications is also on the same principle. - -/usr/lib/"internal game name"/Mods/"Mod name"/ -/usr/lib64/"internal game name"/Mods/"Mod name"/ -/usr/lib/i386-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/x86_64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/arm-linux-gnueabihf/"internal game name"/Mods/"Mod name"/ -/usr/lib/aarch64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/riscv64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/s390x-linux-gnu/"internal game name"//Mods/"Mod name"/ -/usr/lib/powerpc64-linux-gnu/"internal game name"//Mods/"Mod name"/ +/usr/lib/games/"internal game name"-vk/Mods/"Mod name"/ Game libraries are assigned a suffix defined in file ModEXT.txt The suffix is assigned to both game libraries and mod libraries. -The game library engine must be located in the standard library search area. In one of: -/usr/lib -/usr/lib64 -/usr/lib/i386-linux-gnu -/usr/lib/x86_64-linux-gnu -/usr/lib/arm-linux-gnueabihf -/usr/lib/aarch64-linux-gnu -/usr/lib/riscv64-linux-gnu -/usr/lib/s390x-linux-gnu -/usr/lib/powerpc64-linux-gnu - The game executable first loads the engine library, which loads the remaining libraries from the subdirectory with the game's internal name. To get output names by convention, use the cmake build key -DCMAKE_INSTALL_PREFIX:PATH=/usr -In accordance with the naming convention, we get the following location of the executable files, game libraries Serious Sam The First Encounter and Serious Sam The Second Encounter for Ubuntu/Dedian x86_64: - -/usr/bin/serioussam -/usr/bin/serioussam-ded -/usr/bin/serioussam-mkfont -/usr/lib/x86_64-linux-gnu/libEngine.so -/usr/lib/x86_64-linux-gnu/serioussam/libShaders.so -/usr/lib/x86_64-linux-gnu/serioussam/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/libEntities.so -/usr/lib/x86_64-linux-gnu/serioussam/libamp11lib.so -/usr/bin/serioussamse -/usr/bin/serioussamse-ded -/usr/bin/serioussamse-mkfont -/usr/lib/x86_64-linux-gnu/libEngineMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libShaders.so -/usr/lib/x86_64-linux-gnu/serioussamse/libGameMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libEntitiesMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libamp11lib.so +In accordance with the naming convention, we get the following location of the executable files, game libraries Serious Sam The First Encounter and Serious Sam The Second Encounter for Ubuntu/Dedian: + +/usr/games/serioussam-vk +/usr/games/serioussam-vk-ded +/usr/games/serioussam-vk-mkfont +/usr/games/serioussam-vk-texconv +/usr/lib/games/serioussam-vk/libEngine.so +/usr/lib/games/serioussam-vk/libShaders.so +/usr/lib/games/serioussam-vk/libGame.so +/usr/lib/games/serioussam-vk/libEntities.so +/usr/lib/games/serioussam-vk/libamp11lib.so +/usr/games/serioussamse-vk +/usr/games/serioussamse-vk-ded +/usr/games/serioussamse-vk-mkfont +/usr/games/serioussamse-vk-texconv +/usr/lib/games/serioussamse-vk/libEngineMP.so +/usr/lib/games/serioussamse-vk/libShaders.so +/usr/lib/games/serioussamse-vk/libGameMP.so +/usr/lib/games/serioussamse-vk/libEntitiesMP.so +/usr/lib/games/serioussamse-vk/libamp11lib.so For mod XPLUS: -/usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libEntities.so -/usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libGameMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libEntitiesMP.so +/usr/lib/games/serioussam-vk/Mods/XPLUS/libGame.so +/usr/lib/games/serioussam-vk/Mods/XPLUS/libEntities.so +/usr/lib/games/serioussamse-vk/Mods/XPLUS/libGameMP.so +/usr/lib/games/serioussamse-vk/Mods/XPLUS/libEntitiesMP.so For mod Serious Sam Alpha Remake (SSA): -/usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libEntities.so +/usr/lib/games/serioussam-vk/Mods/SSA/libGame.so +/usr/lib/games/serioussam-vk/Mods/SSA/libEntities.so Location of game data, user data, and data modifications ======================================================== -During the launch of the game, the engine determines the launch location, and if the launch occurred from the /usr/bin directory, then the game data will be searched for the recommended paths. If the game data is not found using the recommended paths, then the search will be in the home directory, and when the game files are found, the path will be written to the configuration file (not recommended). If the game files are not found, a message box will appear. - -Recommended paths for hosting game data: +During the launch of the game, the engine determines the launch location, and if the launch occurred from the /usr/games directory, then the game data will be searched for the recommended paths. If the game data is not found using the recommended paths, then the search will be in the home directory, and when the game files are found, the path will be written to the configuration file (not recommended). If the game files are not found, a message box will appear. -/usr/share/serioussam/ - for TFE -/usr/share/serioussamse/ - for TSE - -or +Paths for hosting game data: -~/.local/share/Serious-Engine/serioussam/ - for TFE -~/.local/share/Serious-Engine/serioussamse/ - for TSE +~/.serioussam-vk/ - for TFE +~/.serioussamse-vk/ - for TSE Mod Data: -/usr/share/serioussam/Mods/"Mod name" - for TFE -/usr/share/serioussamse/Mods/"Mod name" - for TSE - -or - -~/.local/share/Serious-Engine/serioussam/Mods/"Mod name" - for TFE -~/.local/share/Serious-Engine/serioussamse/Mods/"Mod name" - for TSE - -t is not allowed to arrange game data parts in different recommended paths. Also, if you chose your own path (which is not recommended), it must be the only one. +~/.serioussam-vk/Mods/"Mod name" - for TFE +~/.serioussamse-vk/Mods/"Mod name" - for TSE The file SE1_10b.gro is not included in the game data distributed on CDs or digital stores. If you chose the first recommended option, set it to: -/usr/share/serioussam/SE1_10b.gro - for TFE -/usr/share/serioussamse/SE1_10b.gro - for TSE +/usr/share/games/serioussam-vk/SE1_10b.gro - for TFE +/usr/share/games/serioussamse-vk/SE1_10b.gro - for TSE Playing the original game ========================= @@ -174,22 +137,22 @@ Physical version If you bought a physical copy of the game and you have an ISO of your disk, you can unpack the resources with the any archive manager. Game resources are located in the Install directory of the disk. Just copy all the *.gro files from there, -as well as the Levels directory to directories ~/.local/share/Serious-Engine/serioussam and ~/.local/share/Serious-Engine/serioussamse, respectively, for games Serious Sam: The First Encounter and Serious Sam: The Second Encounter. +as well as the Levels directory to directories ~/.serioussam-vk and ~/.serioussamse-vk, respectively, for games Serious Sam: The First Encounter and Serious Sam: The Second Encounter. Launching the game ================== -To start the game type in consolet: +To start the game type in console: -serioussam +serioussam-vk or -serioussamse +serioussamse-vk You can also use the launch of the game through the menu. After installing the packages and copying all the data, you can check what we got. - -- Alexander Sun, 28 May 2023 20:33:46 +0300 + -- Alexander Pavlov Wed, 28 Feb 2024 20:33:46 +0300 diff --git a/debian/README.source b/debian/README.source index 88cbdcbb..6b7776e1 100644 --- a/debian/README.source +++ b/debian/README.source @@ -1,20 +1,20 @@ -serioussamclassic-vk for Debian -------------------------------- +serioussam-vk for Debian +------------------------ Introduction ============ -This implementation of the source code provides for installation in the system, in the /usr/bin, /usr/lib, /usr/share directories. +This implementation of the source code provides for installation in the system, in the /usr/games, /usr/lib, /usr/share directories. -During the launch of the game, the engine determines the place of launch, and if the launch occurred from the /usr/bin directory, +During the launch of the game, the engine determines the place of launch, and if the launch occurred from the /usr/games directory, it switches to the libraries search mode in the system directories. Also adds searching for game data in various directories. About the search for game data will be written below. Otherwise, the engine considers that a local launch of the game has occurred and will look for game data in the root directory of the game. User data, such as game settings, log, saves, demos will be located in: -~/.local/share/Serious-Engine/serioussam/ - for TFE -~/.local/share/Serious-Engine/serioussamse/ - for TSE +~/.serioussam-vk/ - for TFE +~/.serioussamse-vk/ - for TSE If you start the game with the +portable key, then there will be a full portable mode and user data, such as game settings, log, saves, demos will also be located in the root directory of the game. @@ -28,118 +28,81 @@ These names are initially accepted in the engine and are used for example in a n Location of executables, libraries, and modification libraries ============================================================== -The executable files of the game are located in the '/usr/bin' directory. +The executable files of the game are located in the '/usr/games' directory. -/usr/bin/"internal game name" +/usr/games/"internal game name"-vk The dedicated server and the font creation utility for the game are also located in this directory. -/usr/bin/"internal game name"-ded -/usr/bin/"internal game name"-mkfont +/usr/games/"internal game name"-vk-ded +/usr/games/"internal game name"-vk-mkfont +/usr/games/"internal game name"-vk-texconv The game libraries will be searched in the following directories: -/usr/lib/"internal game name"/ -/usr/lib64/"internal game name"/ -/usr/lib/i386-linux-gnu/"internal game name"/ -/usr/lib/x86_64-linux-gnu/"internal game name"/ -/usr/lib/arm-linux-gnueabihf/"internal game name"/ -/usr/lib/aarch64-linux-gnu/"internal game name"/ -/usr/lib/riscv64-linux-gnu/"internal game name"/ -/usr/lib/s390x-linux-gnu/"internal game name"/ -/usr/lib/powerpc64-linux-gnu/"internal game name"/ +/usr/lib/games/"internal game name"-vk/ The location of the libraries of modifications is also on the same principle. - -/usr/lib/"internal game name"/Mods/"Mod name"/ -/usr/lib64/"internal game name"/Mods/"Mod name"/ -/usr/lib/i386-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/x86_64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/arm-linux-gnueabihf/"internal game name"/Mods/"Mod name"/ -/usr/lib/aarch64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/riscv64-linux-gnu/"internal game name"/Mods/"Mod name"/ -/usr/lib/s390x-linux-gnu/"internal game name"//Mods/"Mod name"/ -/usr/lib/powerpc64-linux-gnu/"internal game name"//Mods/"Mod name"/ +/usr/lib/games/"internal game name"-vk/Mods/"Mod name"/ Game libraries are assigned a suffix defined in file ModEXT.txt The suffix is assigned to both game libraries and mod libraries. -The game library engine must be located in the standard library search area. In one of: -/usr/lib -/usr/lib64 -/usr/lib/i386-linux-gnu -/usr/lib/x86_64-linux-gnu -/usr/lib/arm-linux-gnueabihf -/usr/lib/aarch64-linux-gnu -/usr/lib/riscv64-linux-gnu -/usr/lib/s390x-linux-gnu -/usr/lib/powerpc64-linux-gnu - The game executable first loads the engine library, which loads the remaining libraries from the subdirectory with the game's internal name. To get output names by convention, use the cmake build key -DCMAKE_INSTALL_PREFIX:PATH=/usr -In accordance with the naming convention, we get the following location of the executable files, game libraries Serious Sam The First Encounter and Serious Sam The Second Encounter for Ubuntu/Dedian x86_64: - -/usr/bin/serioussam -/usr/bin/serioussam-ded -/usr/bin/serioussam-mkfont -/usr/lib/x86_64-linux-gnu/libEngine.so -/usr/lib/x86_64-linux-gnu/serioussam/libShaders.so -/usr/lib/x86_64-linux-gnu/serioussam/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/libEntities.so -/usr/lib/x86_64-linux-gnu/serioussam/libamp11lib.so -/usr/bin/serioussamse -/usr/bin/serioussamse-ded -/usr/bin/serioussamse-mkfont -/usr/lib/x86_64-linux-gnu/libEngineMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libShaders.so -/usr/lib/x86_64-linux-gnu/serioussamse/libGameMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libEntitiesMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/libamp11lib.so +In accordance with the naming convention, we get the following location of the executable files, game libraries Serious Sam The First Encounter and Serious Sam The Second Encounter for Ubuntu/Dedian: + +/usr/games/serioussam-vk +/usr/games/serioussam-vk-ded +/usr/games/serioussam-vk-mkfont +/usr/games/serioussam-vk-texconv +/usr/lib/games/serioussam-vk/libEngine.so +/usr/lib/games/serioussam-vk/libShaders.so +/usr/lib/games/serioussam-vk/libGame.so +/usr/lib/games/serioussam-vk/libEntities.so +/usr/lib/games/serioussam-vk/libamp11lib.so +/usr/games/serioussamse-vk +/usr/games/serioussamse-vk-ded +/usr/games/serioussamse-vk-mkfont +/usr/games/serioussamse-vk-texconv +/usr/lib/games/serioussamse-vk/libEngineMP.so +/usr/lib/games/serioussamse-vk/libShaders.so +/usr/lib/games/serioussamse-vk/libGameMP.so +/usr/lib/games/serioussamse-vk/libEntitiesMP.so +/usr/lib/games/serioussamse-vk/libamp11lib.so For mod XPLUS: -/usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libEntities.so -/usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libGameMP.so -/usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libEntitiesMP.so +/usr/lib/games/serioussam-vk/Mods/XPLUS/libGame.so +/usr/lib/games/serioussam-vk/Mods/XPLUS/libEntities.so +/usr/lib/games/serioussamse-vk/Mods/XPLUS/libGameMP.so +/usr/lib/games/serioussamse-vk/Mods/XPLUS/libEntitiesMP.so For mod Serious Sam Alpha Remake (SSA): -/usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libGame.so -/usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libEntities.so +/usr/lib/games/serioussam-vk/Mods/SSA/libGame.so +/usr/lib/games/serioussam-vk/Mods/SSA/libEntities.so Location of game data, user data, and data modifications ======================================================== -During the launch of the game, the engine determines the launch location, and if the launch occurred from the /usr/bin directory, then the game data will be searched for the recommended paths. If the game data is not found using the recommended paths, then the search will be in the home directory, and when the game files are found, the path will be written to the configuration file (not recommended). If the game files are not found, a message box will appear. - -Recommended paths for hosting game data: +During the launch of the game, the engine determines the launch location, and if the launch occurred from the /usr/games directory, then the game data will be searched for the recommended paths. If the game data is not found using the recommended paths, then the search will be in the home directory, and when the game files are found, the path will be written to the configuration file (not recommended). If the game files are not found, a message box will appear. -/usr/share/serioussam/ - for TFE -/usr/share/serioussamse/ - for TSE - -or +Paths for hosting game data: -~/.local/share/Serious-Engine/serioussam/ - for TFE -~/.local/share/Serious-Engine/serioussamse/ - for TSE +~/.serioussam-vk/ - for TFE +~/.serioussamse-vk/ - for TSE Mod Data: -/usr/share/serioussam/Mods/"Mod name" - for TFE -/usr/share/serioussamse/Mods/"Mod name" - for TSE - -or - -~/.local/share/Serious-Engine/serioussam/Mods/"Mod name" - for TFE -~/.local/share/Serious-Engine/serioussamse/Mods/"Mod name" - for TSE - -t is not allowed to arrange game data parts in different recommended paths. Also, if you chose your own path (which is not recommended), it must be the only one. +~/.serioussam-vk/Mods/"Mod name" - for TFE +~/.serioussamse-vk/Mods/"Mod name" - for TSE The file SE1_10b.gro is not included in the game data distributed on CDs or digital stores. If you chose the first recommended option, set it to: -/usr/share/serioussam/SE1_10b.gro - for TFE -/usr/share/serioussamse/SE1_10b.gro - for TSE +/usr/share/games/serioussam-vk/SE1_10b.gro - for TFE +/usr/share/games/serioussamse-vk/SE1_10b.gro - for TSE Playing the original game ========================= @@ -174,22 +137,22 @@ Physical version If you bought a physical copy of the game and you have an ISO of your disk, you can unpack the resources with the any archive manager. Game resources are located in the Install directory of the disk. Just copy all the *.gro files from there, -as well as the Levels directory to directories ~/.local/share/Serious-Engine/serioussam and ~/.local/share/Serious-Engine/serioussamse, respectively, for games Serious Sam: The First Encounter and Serious Sam: The Second Encounter. +as well as the Levels directory to directories ~/.serioussam-vk and ~/.serioussamse-vk, respectively, for games Serious Sam: The First Encounter and Serious Sam: The Second Encounter. Launching the game ================== -To start the game type in consolet: +To start the game type in console: -serioussam +serioussam-vk or -serioussamse +serioussamse-vk You can also use the launch of the game through the menu. After installing the packages and copying all the data, you can check what we got. - -- Alexander Sun, 28 May 2023 20:33:46 +0300 + -- Alexander Pavlov Wed, 28 Feb 2024 20:33:46 +0300 diff --git a/debian/changelog b/debian/changelog index 7c157f36..d57a58ca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,5 @@ -serioussamclassic-vk (1.10.6-1) jammy; urgency=medium +serioussam-vk (1.10.6d+dfsg-1) unstable; urgency=low - * Initial release + * Initial debianization. Closes: #1065196 - -- YOUR_NAME Tue, 16 Oct 2023 23:37:15 +0300 + -- Alexander Pavlov Fri, 01 Mar 2024 20:33:46 +0300 diff --git a/debian/control b/debian/control index b69d4c51..780f2a10 100644 --- a/debian/control +++ b/debian/control @@ -1,18 +1,20 @@ -Source: serioussamclassic-vk -Section: games +Source: serioussam-vk +Section: contrib/games Priority: optional -Maintainer: YOUR_NAME -Build-Depends: debhelper-compat (= 13), cmake, flex, bison, nasm, libsdl2-dev, libvorbis-dev, zlib1g-dev, imagemagick, libvulkan-dev, vulkan-validationlayers-dev -Standards-Version: 4.6.0 -Homepage: https://github.com/tx00100xt/SeriousSamClassic-VK -Vcs-Browser: https://salsa.debian.org/debian/serioussamclassic-vk -Vcs-Git: https://salsa.debian.org/debian/serioussamclassic-vk.git +Maintainer: Alexander Pavlov +Build-Depends: debhelper-compat (= 13), cmake, flex, bison, nasm, libsdl2-dev, libvorbis-dev, zlib1g-dev, imagemagick, libvulkan-dev, vulkan-validationlayers-dev +Homepage: https://tx00100xt.github.io +Vcs-Browser: https://salsa.debian.org/tx00100xt/serioussam-vk +Vcs-Git: https://salsa.debian.org/tx00100xt/serioussam-vk.git Rules-Requires-Root: no +Standards-Version: 4.6.2 -Package: serioussamclassic-vk +Package: serioussam-vk Architecture: any -Conflicts: serioussam, serioussamse, serioussam-vk, serioussamse-vk, serioussamclassic -Depends: ${shlibs:Depends}, ${misc:Depends}, libc6 (>= 2.28), libsdl2-2.0-0 (>= 2.0.6), libstdc++6 (>= 5), zlib1g (>= 1:1.1.4), libvorbisfile3, libvulkan1 +Depends: ${shlibs:Depends}, ${misc:Depends}, libsdl2-2.0-0 (>= 2.0.6), libstdc++6 (>= 5), zlib1g (>= 1:1.1.4), libvorbisfile3, libvulkan1 Description: Linux port of Serious Sam Classic with Vulkan support - Open source game engine version developed by Croteam - for Serious Sam Classic with Vulkan support (Windows, Linux, FreeBSD, Raspberry Pi OS) + Open source game engine version developed by Croteam for Serious Sam Classic + with Vulkan support (Windows, Linux, FreeBSD, Raspberry Pi OS, macOS) + . + This package alone isn't of any use; it only contains the game engine, + you will need a copy of the original game for this package to be useful. diff --git a/debian/copyright b/debian/copyright index 09d765be..150e7ce0 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,40 +1,98 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: serioussamclassic-vk -Upstream-Contact: YOUR_NAME +Upstream-Name: serioussam-vk +Upstream-Contact: https://github.com/tx00100xt/SeriousSamClassic-VK/issues/ + Alexander Pavlov Source: https://github.com/tx00100xt/SeriousSamClassic-VK +Files-Excluded: appimage + flatpak + Images + man + templates + SamTFE/Bin + SamTFE/Controls + SamTFE/Data + SamTFE/Demos + SamTFE/Help + SamTFE/Levels + SamTFE/Players + SamTFE/Scripts + SamTFE/Sources/***/*.ini + SamTFE/Sources/Engine/zlib + SamTFE/Sources/EngineGui + SamTFE/Sources/External + SamTFE/Sources/GameGUIMP + SamTFE/Sources/LWSkaExporter + SamTFE/Sources/Modeler + SamTFE/Sources/RCon + SamTFE/Sources/SeriousSam/SeriousSam.aps + SamTFE/Sources/SeriousSam/Splash.bmp + SamTFE/Sources/SeriousSam/SplashMask.bmp + SamTFE/Sources/SeriousSkaStudio + SamTFE/Sources/WorldEditor + SamTFE/Temp + SamTFE/Tools.Win32 + SamTFE/VirtualTrees + SamTFE/Sources/libvorbis + SamTFE/Sources/libogg + SamTFE/Sources/SamTFE.sln + SamTFE/Mods/SeriousSamTbn.tex + SamTFE/Mods/XPLUSTbn.tex + SamTSE/Bin + SamTSE/Controls + SamTSE/Data + SamTSE/Demos + SamTSE/Help + SamTSE/Levels + SamTSE/Players + SamTSE/Scripts + SamTSE/Sources/***/*.ini + SamTSE/Sources/Engine/zlib + SamTSE/Sources/EngineGui + SamTSE/Sources/External + SamTSE/Sources/GameGUIMP + SamTSE/Sources/LWSkaExporter + SamTSE/Sources/Modeler + SamTSE/Sources/RCon + SamTSE/Sources/SeriousSam/SeriousSam.aps + SamTSE/Sources/SeriousSam/Splash.bmp + SamTSE/Sources/SeriousSam/SplashMask.bmp + SamTSE/Sources/SeriousSkaStudio + SamTSE/Sources/WorldEditor + SamTSE/Temp + SamTSE/Tools.Win32 + SamTSE/VirtualTrees + SamTSE/Sources/libvorbis + SamTSE/Sources/libogg + SamTSE/Sources/SamTSE.sln + SamTSE/Mods/SecondEncounterTbn.tex + SamTSE/Mods/XPLUSTbn.tex +Disclaimer: + This package is in the contrib archive area, which is not part of Debian. + The engine itself is free software, but it is only useful when combined + with proprietary game data. Files: * -Copyright: 2002-2012 Croteam Ltd. -License: GPL-2 - Serious Engine is licensed under the GNU GPL v2 (see LICENSE file). - amp11lib is licensed under the GNU GPL v2 (see amp11lib/COPYING file). +Copyright: 2002-2012 Croteam + 2012-2016 Ryan C. Gordon + 2020 Sultim Tsyrendashiev + 2021-2024 Alexander Pavlov +License: GPL-2.0 + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. . - Some of the code included with the engine sources is not licensed under the GNU GPL v2: - zlib (located in Sources/Engine/zlib) by Jean-loup Gailly and Mark Adler - LightWave SDK (located in Sources/LWSkaExporter/SDK) by NewTek Inc. - libogg/libvorbis (located in Sources/libogg and Sources/libvorbis) by Xiph.Org Foundation - . - -Files: Sources/Engine/Graphics/Vulkan/* -Copyright: 2020 Sultim Tsyrendashiev -License: GPL-2 - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License - along with this program. If not, see - . + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Files: debian/* -Copyright: 2023 YOUR_NAME -License: GPL-2+ +Copyright: 2023-2024 Alexander Pavlov +License: GPL-2.0+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -46,9 +104,7 @@ License: GPL-2+ GNU General Public License for more details. . You should have received a copy of the GNU General Public License - along with this program. If not, see + along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". - - diff --git a/debian/io.github.tx00100xt.serioussam-vk.appdata.xml b/debian/io.github.tx00100xt.serioussam-vk.appdata.xml new file mode 100644 index 00000000..196fe664 --- /dev/null +++ b/debian/io.github.tx00100xt.serioussam-vk.appdata.xml @@ -0,0 +1,68 @@ + + + + + io.github.tx00100xt.serioussam-vk + serioussam-vk + Open source first person shooter + GPL-2.0+ + GPL-2.0 + + Alexander Pavlov + t.x00100x.t@yandex.ru + + https://tx00100xt.github.io + https://github.com/tx00100xt/SeriousSamClassic-VK/wiki + https://github.com/tx00100xt/SeriousSamClassic-VK/issues + + io.github.tx00100xt.serioussam-vk.desktop + io.github.tx00100xt.serioussamse-vk.desktop + + +

SeriousSamClassic-VK is open source game engine version developed by Croteam for Serious Sam Classic, but it should work on (or be easily portable to) any system that supports OpenGL 1.3 or Vulkan and SDL2. +

+

Note that while the Serious-Engine source code has been released under GPL, you still need to legally own the game and provide Serious Sam Classic The First Encounter and Serious Sam Classic The Second Encounter the game data to play. See the How to Install section for more information. +

+
+ + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_1.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. Metropolis. + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_2.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. Alley Of Sphinxes. + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_3.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. Alley Of Sphinxes. + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_4.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. Sierra de chiapas. + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_5.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. Land of the Damned. + + + https://github.com/tx00100xt/SeriousSamClassic-VK/raw/main/Images/samvulkan_6.png + SeriousSamClassic-VK running on Linux with XPLUS Mod. The Grand Cathedral. + + + + + moderate + none + mild + mild + intense + + + + + + +
+ diff --git a/debian/manpages b/debian/manpages index 96eeb9e6..b3d03ef7 100644 --- a/debian/manpages +++ b/debian/manpages @@ -1 +1,8 @@ -debian/serioussamclassic-vk.1 +debian/serioussam-vk.6 +debian/serioussamse-vk.6 +debian/serioussam-vk-ded.6 +debian/serioussamse-vk-ded.6 +debian/serioussam-vk-mkfont.6 +debian/serioussamse-vk-mkfont.6 +debian/serioussam-vk-texconv.6 +debian/serioussamse-vk-texconv.6 diff --git a/debian/patches/0001-desktop-file.patch b/debian/patches/0001-desktop-file.patch new file mode 100644 index 00000000..d3e37ef7 --- /dev/null +++ b/debian/patches/0001-desktop-file.patch @@ -0,0 +1,37 @@ +Description: Set appsteam specific rDNS: https://www.freedesktop.org/software/appstream/docs/sect-Metadata-Application.html +Forwarded: not-needed +--- a/SamTFE/serioussam.desktop 2024-01-25 13:57:23.483929853 +0300 ++++ b/SamTFE/serioussam.desktop 2024-01-25 14:00:54.558511402 +0300 +@@ -1,9 +1,9 @@ +- + [Desktop Entry] + Name=Serious Sam The First Encounter + Type=Application +-Comment=Linux port of Serious Sam Classic The First Encounter +-Exec=serioussam +-TryExec=serioussam +-Icon=serioussam +-Categories=Application;Game; ++Comment=Linux port of Serious Sam Classic with Vulkan support ++Exec=serioussam-vk ++TryExec=serioussam-vk ++Icon=io.github.tx00100xt.serioussam-vk ++Categories=Game;ActionGame;Shooter; ++Keywords=serious;sam;first;person;shooter;singleplayer;multiplayer; +--- a/SamTSE/serioussamse.desktop 2024-01-25 13:57:23.483929853 +0300 ++++ b/SamTSE/serioussamse.desktop 2024-01-25 14:00:54.558511402 +0300 +@@ -1,8 +1,9 @@ + [Desktop Entry] + Name=Serious Sam The Second Encounter + Type=Application +-Comment=Linux port of Serious Sam Classic The Second Encounter +-Exec=serioussamse +-TryExec=serioussamse +-Icon=serioussam +-Categories=Application;Game; ++Comment=Linux port of Serious Sam Classic with Vulkan support ++Exec=serioussamse-vk ++TryExec=serioussamse-vk ++Icon=io.github.tx00100xt.serioussam-vk ++Categories=Game;ActionGame;Shooter; ++Keywords=serious;sam;first;person;shooter;singleplayer;multiplayer; diff --git a/debian/patches/0002-CMakeLists.txt.patch b/debian/patches/0002-CMakeLists.txt.patch new file mode 100644 index 00000000..013721ff --- /dev/null +++ b/debian/patches/0002-CMakeLists.txt.patch @@ -0,0 +1,330 @@ +Description: Set Debian specific paths: https://wiki.debian.org/Games/Checklist +Forwarded: not-needed +--- a/SamTFE/Sources/CMakeLists.txt 2024-01-16 19:22:10.000000000 +0300 ++++ b/SamTFE/Sources/CMakeLists.txt 2024-02-28 20:02:20.589328477 +0300 +@@ -156,7 +156,8 @@ + set(RPATH_SETTINGS "-rpath=/var/tmp/portage") + message(STATUS "Build for Gentoo with '-rpath=/var/tmp/portage'") + else() +- set(RPATH_SETTINGS "-rpath,$ORIGIN") ++ set(RPATH_SETTINGS "-rpath=/usr/lib/games/${INTERNAL_NAME}-vk") ++ message(STATUS "Build for Debian with '-rpath=/usr/lib/games/${INTERNAL_NAME}-vk'") + endif() + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD") +@@ -327,10 +328,9 @@ + message(STATUS "Operating system name: ${CMAKE_OS_NAME}") + + set(CMAKE_ARCH_BITS 32) +-set(CMAKE_INSTALL_LIBDIR "/usr/lib") ++set(CMAKE_INSTALL_LIBDIR "/usr/lib/games") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CMAKE_ARCH_BITS 64) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib64") + endif() + + if(FREEBSD) +@@ -342,33 +342,6 @@ + endif() + + message(STATUS "Arch bits: ${CMAKE_ARCH_BITS}") +- +-if(DEBIAN_FOUND OR UBUNTU_FOUND) +- #set libdir for debian based OS +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/riscv64-linux-gnu") +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)") # 32bit) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/arm-linux-gnueabihf") +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/aarch64-linux-gnu") +- if(NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8") +- message(FATAL_ERROR "invalid pointer size") +- endif() +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/powerpc64-linux-gnu") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL s390x) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/s390x-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|x86|amd64|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 4)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/i386-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 8)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/x86_64-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (CMAKE_SIZEOF_VOID_P EQUAL 8) AND (APPLE)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/i386-linux-gnu") +- else() +- message(FATAL_ERROR "Unknown architecture") +- endif() +-endif() +- + message(STATUS "Installed libraries dir: ${CMAKE_INSTALL_LIBDIR}") + + ## ** RAKE! start compiler specific flags section ** +@@ -393,9 +366,9 @@ + add_compile_options(-mpowerpc64) + else() + if(LOCAL_INSTALL) +- add_compile_options(-march=native) ++ add_compile_options(-mtune=generic) + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i586|i686|x86|amd64|AMD64|x86_64") +- add_compile_options(-march=native) # set mtune=generic if nedded ++ add_compile_options(-mtune=generic) # set mtune=generic if nedded + endif() + endif() + endif() +@@ -1677,10 +1650,10 @@ + set_target_properties(amp11lib${MP} PROPERTIES OUTPUT_NAME "amp11lib${DEBUGSUFFIX}") + set_target_properties(${SHADERSLIBSE} PROPERTIES OUTPUT_NAME "Shaders${DEBUGSUFFIX}") + else() +- set_target_properties(SeriousSam${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}") +- set_target_properties(DedicatedServer${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-ded") +- set_target_properties(MakeFONT${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-mkfont") +- set_target_properties(TEXConv${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-texconv") ++ set_target_properties(SeriousSam${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk") ++ set_target_properties(DedicatedServer${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-ded") ++ set_target_properties(MakeFONT${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-mkfont") ++ set_target_properties(TEXConv${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-texconv") + set_target_properties(amp11lib${MP} PROPERTIES OUTPUT_NAME "amp11lib") + set_target_properties(${SHADERSLIB} PROPERTIES OUTPUT_NAME "Shaders") + endif() +@@ -1775,36 +1748,36 @@ + endif() + else() + install(TARGETS SeriousSam${MP} ${SHADERSLIB} ${GAMEMPLIB} ${ENTITIESMPLIB} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}-vk" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + install(TARGETS ${ENGINELIB} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}-vk" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + if(BUILD_DEDICATED_SERVER) + install(TARGETS DedicatedServer${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_MAKEFONT) + install(TARGETS MakeFONT${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_TEXConv) + install(TARGETS TEXConv${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_AMP11LIB) + install(TARGETS amp11lib${MP} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}-vk" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + endif() + elseif(NOT LOCAL_INSTALL AND XPLUS) + install(TARGETS ${GAMEMPLIB} ${ENTITIESMPLIB} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}/Mods/XPLUS" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}-vk/Mods/XPLUS" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + +@@ -1812,10 +1785,14 @@ + # and SE1_10.gro needs to be installed to Games root dir. + if(NOT LOCAL_INSTALL AND NOT XPLUS) + install(FILES ${CMAKE_ADD_TARGET_DIR}/../SE1_10b.gro +- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/${INTERNAL_NAME}" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/games/${INTERNAL_NAME}-vk" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) +- install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" +- DESTINATION "${CMAKE_INSTALL_PREFIX}//share/applications" ++ if(INTERNAL_NAME STREQUAL "serioussam") ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" RENAME "io.github.tx00100xt.serioussam-vk.desktop" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications" ++ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../../debian/io.github.tx00100xt.serioussam-vk.appdata.xml" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/metainfo" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + set(A 16) + set(B 32) +@@ -1829,9 +1806,14 @@ + OUTPUT_VARIABLE outVar + ) + install(FILES ${CMAKE_ADD_TARGET_DIR}/../${X}.png +- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/${X}x${X}/apps" RENAME "${INTERNAL_NAME}.png" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/${X}x${X}/apps" RENAME "io.github.tx00100xt.${INTERNAL_NAME}-vk.png" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + endforeach() ++ else() ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" RENAME "io.github.tx00100xt.serioussamse-vk.desktop" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications" ++ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ++ endif() + endif() + + # end of CMakeLists.txt ... +--- a/SamTSE/Sources/CMakeLists.txt 2024-01-16 19:22:10.000000000 +0300 ++++ b/SamTSE/Sources/CMakeLists.txt 2024-02-28 20:03:48.398429633 +0300 +@@ -156,7 +156,8 @@ + set(RPATH_SETTINGS "-rpath=/var/tmp/portage") + message(STATUS "Build for Gentoo with '-rpath=/var/tmp/portage'") + else() +- set(RPATH_SETTINGS "-rpath,$ORIGIN") ++ set(RPATH_SETTINGS "-rpath=/usr/lib/games/serioussam-vk-se") ++ message(STATUS "Build for Debian with '-rpath=/usr/lib/games/serioussam-vk-se'") + endif() + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR CMAKE_SYSTEM_NAME STREQUAL "NetBSD") +@@ -327,10 +328,9 @@ + message(STATUS "Operating system name: ${CMAKE_OS_NAME}") + + set(CMAKE_ARCH_BITS 32) +-set(CMAKE_INSTALL_LIBDIR "/usr/lib") ++set(CMAKE_INSTALL_LIBDIR "/usr/lib/games") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CMAKE_ARCH_BITS 64) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib64") + endif() + + if(FREEBSD) +@@ -342,33 +342,6 @@ + endif() + + message(STATUS "Arch bits: ${CMAKE_ARCH_BITS}") +- +-if(DEBIAN_FOUND OR UBUNTU_FOUND) +- #set libdir for debian based OS +- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/riscv64-linux-gnu") +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)") # 32bit) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/arm-linux-gnueabihf") +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/aarch64-linux-gnu") +- if(NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8") +- message(FATAL_ERROR "invalid pointer size") +- endif() +- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64") +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/powerpc64-linux-gnu") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL s390x) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/s390x-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|x86|amd64|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 4)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/i386-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 8)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/x86_64-linux-gnu") +- elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (CMAKE_SIZEOF_VOID_P EQUAL 8) AND (APPLE)) +- set(CMAKE_INSTALL_LIBDIR "/usr/lib/i386-linux-gnu") +- else() +- message(FATAL_ERROR "Unknown architecture") +- endif() +-endif() +- + message(STATUS "Installed libraries dir: ${CMAKE_INSTALL_LIBDIR}") + + ## ** RAKE! start compiler specific flags section ** +@@ -393,9 +366,9 @@ + add_compile_options(-mpowerpc64) + else() + if(LOCAL_INSTALL) +- add_compile_options(-march=native) ++ add_compile_options(-mtune=generic) + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i586|i686|x86|amd64|AMD64|x86_64") +- add_compile_options(-march=native) # set mtune=generic if nedded ++ add_compile_options(-mtune=generic) # set mtune=generic if nedded + endif() + endif() + endif() +@@ -1677,10 +1650,10 @@ + set_target_properties(amp11lib${MP} PROPERTIES OUTPUT_NAME "amp11lib${DEBUGSUFFIX}") + set_target_properties(${SHADERSLIBSE} PROPERTIES OUTPUT_NAME "Shaders${DEBUGSUFFIX}") + else() +- set_target_properties(SeriousSam${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}") +- set_target_properties(DedicatedServer${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-ded") +- set_target_properties(MakeFONT${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-mkfont") +- set_target_properties(TEXConv${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-texconv") ++ set_target_properties(SeriousSam${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk") ++ set_target_properties(DedicatedServer${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-ded") ++ set_target_properties(MakeFONT${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-mkfont") ++ set_target_properties(TEXConv${MP} PROPERTIES OUTPUT_NAME "${INTERNAL_NAME}-vk-texconv") + set_target_properties(amp11lib${MP} PROPERTIES OUTPUT_NAME "amp11lib") + set_target_properties(${SHADERSLIB} PROPERTIES OUTPUT_NAME "Shaders") + endif() +@@ -1775,36 +1748,36 @@ + endif() + else() + install(TARGETS SeriousSam${MP} ${SHADERSLIB} ${GAMEMPLIB} ${ENTITIESMPLIB} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/serioussam-vk-se" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + install(TARGETS ${ENGINELIB} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/serioussam-vk-se" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + if(BUILD_DEDICATED_SERVER) + install(TARGETS DedicatedServer${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_MAKEFONT) + install(TARGETS MakeFONT${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_TEXConv) + install(TARGETS TEXConv${MP} +- RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" ++ RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/games" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + if(BUILD_AMP11LIB) + install(TARGETS amp11lib${MP} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/serioussam-vk-se" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + endif() + elseif(NOT LOCAL_INSTALL AND XPLUS) + install(TARGETS ${GAMEMPLIB} ${ENTITIESMPLIB} +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${INTERNAL_NAME}/Mods/XPLUS" ++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/serioussam-vk-se/Mods/XPLUS" + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + endif() + +@@ -1812,10 +1785,14 @@ + # and SE1_10.gro needs to be installed to Games root dir. + if(NOT LOCAL_INSTALL AND NOT XPLUS) + install(FILES ${CMAKE_ADD_TARGET_DIR}/../SE1_10b.gro +- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/${INTERNAL_NAME}" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/games/${INTERNAL_NAME}-vk" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) +- install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" +- DESTINATION "${CMAKE_INSTALL_PREFIX}//share/applications" ++ if(INTERNAL_NAME STREQUAL "serioussam") ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" RENAME "io.github.tx00100xt.serioussam-vk.desktop" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications" ++ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../../debian/io.github.tx00100xt.serioussam-vk.appdata.xml" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/metainfo" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + set(A 16) + set(B 32) +@@ -1829,9 +1806,14 @@ + OUTPUT_VARIABLE outVar + ) + install(FILES ${CMAKE_ADD_TARGET_DIR}/../${X}.png +- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/${X}x${X}/apps" RENAME "${INTERNAL_NAME}.png" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/${X}x${X}/apps" RENAME "io.github.tx00100xt.${INTERNAL_NAME}-vk.png" + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + endforeach() ++ else() ++ install(FILES "${CMAKE_ADD_TARGET_DIR}/../${INTERNAL_NAME}.desktop" RENAME "io.github.tx00100xt.serioussamse-vk.desktop" ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications" ++ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) ++ endif() + endif() + + # end of CMakeLists.txt ... diff --git a/debian/patches/0003-Engine.cpp.patch b/debian/patches/0003-Engine.cpp.patch new file mode 100644 index 00000000..e1fa34be --- /dev/null +++ b/debian/patches/0003-Engine.cpp.patch @@ -0,0 +1,230 @@ +Description: Set Debian specific paths: https://wiki.debian.org/Games/Checklist +Forwarded: not-needed +--- a/SamTFE/Sources/Engine/Engine.cpp 2023-11-28 16:51:55.989955484 +0300 ++++ b/SamTFE/Sources/Engine/Engine.cpp 2024-01-25 12:59:40.376276525 +0300 +@@ -676,10 +676,19 @@ + _fnmApplicationPath = CTString(strDirPath); + _fnmApplicationExe = CTString(strExePath); + #ifdef PLATFORM_UNIX +- // rcg01012002 calculate user dir. ++ _fnmAdditionalDirPath = "/usr/share/games/" + strGameID + "-vk/"; ++ // rcg01012002 calculate user dir. + char buf[MAX_PATH]; +- _pFileSystem->GetUserDirectory(buf, sizeof (buf)); +- _fnmUserDir = CTString(buf); ++ //_pFileSystem->GetUserDirectory(buf, sizeof (buf)); ++ struct passwd *pw = getpwuid(getuid()); ++ struct stat st = {0}; ++ const char *_homedir = pw->pw_dir; ++ strcpy(buf, _homedir); ++ buf[strlen(_homedir)] = 0x00; ++ _fnmUserDir = CTString(buf) + "/." + strGameID + "-vk/"; ++ if (stat((const char *) _fnmUserDir, &st) == -1) { ++ mkdir((const char *) _fnmUserDir, 0755); ++ } + #endif + try { + _fnmApplicationExe.RemoveApplicationPath_t(); +@@ -747,13 +748,10 @@ + #elif defined(__NetBSD__) + int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/pkg/bin/", (size_t) 13 ); + #else +- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/bin/", (size_t) 9 ); ++ int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/games/", (size_t) 11 ); + #endif +- if( _isystempath == 0 ) { +- sys_iSysPath = 1; // using system path +- } else { +- sys_iSysPath = 0; // using standarted path +- } ++ ++ sys_iSysPath = 1; // using system path + + // get library path for mods + _fnmModLibPath = ""; +@@ -764,24 +762,7 @@ + if( sys_iSysPath == 1 ) { + _fnmModLibPath = "/usr/pkg/lib/" + strGameID + "/"; + #else +- if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/aarch64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/arm-linux-gnueabihf/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/arm-linux-gnueabihf/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/riscv64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/riscv64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/s390x-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/s390x-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/powerpc64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/powerpc64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/x86_64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/x86_64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/i386-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/i386-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib64/" + strGameID)) { +- _fnmModLibPath = "/usr/lib64/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib//" + strGameID)) { +- _fnmModLibPath = "/usr/lib/" + strGameID + "/"; ++ if( sys_iSysPath == 1 ) { _fnmModLibPath = "/usr/lib/games/" + strGameID + "-vk/"; + #endif + } else if( sys_iSysPath == 0 ) { + _fnmModLibPath = _fnmApplicationPath; +@@ -806,7 +806,7 @@ + #elif defined(__NetBSD__) + _fnm_usr_TestFile = "/usr/pkg/share/" + strGameID + "/" + _fnm_TestFile; // data in usr + #else +- _fnm_usr_TestFile = "/usr/share/" + strGameID + "/" + _fnm_TestFile; // data in usr ++ _fnm_usr_TestFile = "/usr/share/games/" + strGameID + "-vk/" + _fnm_TestFile; // data in usr + #endif + _fnm_local_TestFile = _fnmUserDir + _fnm_TestFile; // data in home .local + _fnm_home_TestFile = (const char *)_fnmUserDataPath + _fnm_TestFile; +@@ -831,7 +812,7 @@ + #elif defined(__NetBSD__) + _fnmApplicationPath = "/usr/pkg/share/" + strGameID + "/"; // all game data + #else +- _fnmApplicationPath = "/usr/share/" + strGameID + "/"; // all game data ++ _fnmApplicationPath = "/usr/share/games/" + strGameID + "-vk/"; // all game data + #endif + CPrintF(TRANSV("Found usr path: %s\n"), (const char *) _fnmUserDataPath); + } else if( access((const char *) _fnm_local_TestFile, F_OK) == 0 ) { +@@ -845,7 +826,7 @@ + #elif defined(__NetBSD__) + InfoMessage(TRANS("No game files were found in /usr/pkg/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); + #else +- InfoMessage(TRANS("No game files were found in /usr/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); ++ InfoMessage(TRANS("No game files were found in /usr/share/games/%s-vk/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); + #endif + struct passwd *pw = getpwuid(getuid()); + const char *_homedir = pw->pw_dir; +@@ -869,7 +850,7 @@ + #elif defined(__NetBSD__) + FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/pkg/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); + #else +- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); ++ FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/games/%s-vk/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.%s-vk/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); + #endif + } + } +@@ -883,6 +864,7 @@ + CPrintF(TRANSV("Executable: %s\n"), (const char *) strExePath); + CPrintF(TRANSV("Assumed engine data directory: %s\n"), (const char *) _fnmApplicationPath); + CPrintF(TRANSV("Assumed mods library directory: %s\n"), (const char *) _fnmModLibPath); ++ CPrintF(TRANSV("Assumed additional data directory: %s\n"), (const char *) _fnmAdditionalDirPath); + #endif + + CPrintF("\n"); +--- a/SamTSE/Sources/Engine/Engine.cpp 2023-11-28 16:51:55.989955484 +0300 ++++ b/SamTSE/Sources/Engine/Engine.cpp 2024-01-25 12:59:40.376276525 +0300 +@@ -676,10 +676,19 @@ + _fnmApplicationPath = CTString(strDirPath); + _fnmApplicationExe = CTString(strExePath); + #ifdef PLATFORM_UNIX +- // rcg01012002 calculate user dir. ++ _fnmAdditionalDirPath = "/usr/share/games/" + strGameID + "-vk/"; ++ // rcg01012002 calculate user dir. + char buf[MAX_PATH]; +- _pFileSystem->GetUserDirectory(buf, sizeof (buf)); +- _fnmUserDir = CTString(buf); ++ //_pFileSystem->GetUserDirectory(buf, sizeof (buf)); ++ struct passwd *pw = getpwuid(getuid()); ++ struct stat st = {0}; ++ const char *_homedir = pw->pw_dir; ++ strcpy(buf, _homedir); ++ buf[strlen(_homedir)] = 0x00; ++ _fnmUserDir = CTString(buf) + "/." + strGameID + "-vk/"; ++ if (stat((const char *) _fnmUserDir, &st) == -1) { ++ mkdir((const char *) _fnmUserDir, 0755); ++ } + #endif + try { + _fnmApplicationExe.RemoveApplicationPath_t(); +@@ -747,16 +756,13 @@ + #elif defined(__NetBSD__) + int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/pkg/bin/", (size_t) 13 ); + #else +- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/bin/", (size_t) 9 ); ++ int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/games/", (size_t) 11 ); + #endif +- if( _isystempath == 0 ) { +- sys_iSysPath = 1; // using system path +- } else { +- sys_iSysPath = 0; // using standarted path +- } ++ ++ sys_iSysPath = 1; // using system path + + // get library path for mods +- _fnmModLibPath = ""; ++ _fnmModLibPath = "/usr/lib/games/serioussam-vk/"; + #if defined(__OpenBSD__) || defined(__FreeBSD__) + if( sys_iSysPath == 1 ) { + _fnmModLibPath = "/usr/local/lib/" + strGameID + "/"; +@@ -764,24 +770,7 @@ + if( sys_iSysPath == 1 ) { + _fnmModLibPath = "/usr/pkg/lib/" + strGameID + "/"; + #else +- if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/aarch64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/arm-linux-gnueabihf/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/arm-linux-gnueabihf/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/riscv64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/riscv64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/s390x-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/s390x-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/powerpc64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/powerpc64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/x86_64-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/x86_64-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/i386-linux-gnu/" + strGameID)) { +- _fnmModLibPath = "/usr/lib/i386-linux-gnu/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib64/" + strGameID)) { +- _fnmModLibPath = "/usr/lib64/" + strGameID + "/"; +- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib//" + strGameID)) { +- _fnmModLibPath = "/usr/lib/" + strGameID + "/"; ++ if( strGameID == "serioussamse" ) { _fnmModLibPath = "/usr/lib/games/serioussam-vk-se/"; + #endif + } else if( sys_iSysPath == 0 ) { + _fnmModLibPath = _fnmApplicationPath; +@@ -806,7 +806,7 @@ + #elif defined(__NetBSD__) + _fnm_usr_TestFile = "/usr/pkg/share/" + strGameID + "/" + _fnm_TestFile; // data in usr + #else +- _fnm_usr_TestFile = "/usr/share/" + strGameID + "/" + _fnm_TestFile; // data in usr ++ _fnm_usr_TestFile = "/usr/share/games/" + strGameID + "-vk" + _fnm_TestFile; // data in usr + #endif + _fnm_local_TestFile = _fnmUserDir + _fnm_TestFile; // data in home .local + _fnm_home_TestFile = (const char *)_fnmUserDataPath + _fnm_TestFile; +@@ -831,7 +812,7 @@ + #elif defined(__NetBSD__) + _fnmApplicationPath = "/usr/pkg/share/" + strGameID + "/"; // all game data + #else +- _fnmApplicationPath = "/usr/share/" + strGameID + "/"; // all game data ++ _fnmApplicationPath = "/usr/share/games/" + strGameID + "-vk/"; // all game data + #endif + CPrintF(TRANSV("Found usr path: %s\n"), (const char *) _fnmUserDataPath); + } else if( access((const char *) _fnm_local_TestFile, F_OK) == 0 ) { +@@ -845,7 +826,7 @@ + #elif defined(__NetBSD__) + InfoMessage(TRANS("No game files were found in /usr/pkg/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); + #else +- InfoMessage(TRANS("No game files were found in /usr/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); ++ InfoMessage(TRANS("No game files were found in /usr/share/games/%s-vk/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir); + #endif + struct passwd *pw = getpwuid(getuid()); + const char *_homedir = pw->pw_dir; +@@ -869,7 +850,7 @@ + #elif defined(__NetBSD__) + FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/pkg/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); + #else +- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); ++ FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/games/%s-vk/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.%s-vk/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID); + #endif + } + } +@@ -883,6 +864,7 @@ + CPrintF(TRANSV("Executable: %s\n"), (const char *) strExePath); + CPrintF(TRANSV("Assumed engine data directory: %s\n"), (const char *) _fnmApplicationPath); + CPrintF(TRANSV("Assumed mods library directory: %s\n"), (const char *) _fnmModLibPath); ++ CPrintF(TRANSV("Assumed additional data directory: %s\n"), (const char *) _fnmAdditionalDirPath); + #endif + + CPrintF("\n"); diff --git a/debian/patches/0004-Stream.patch b/debian/patches/0004-Stream.patch new file mode 100644 index 00000000..d7ff1112 --- /dev/null +++ b/debian/patches/0004-Stream.patch @@ -0,0 +1,107 @@ +Description: Add additional data path /usr/share/games/-vk +Forwarded: not-needed +--- a/SamTFE/Sources/Engine/Base/Stream.h 2024-02-15 12:44:53.057345383 +0300 ++++ b/SamTFE/Sources/Engine/Base/Stream.h 2024-02-15 13:17:01.634702073 +0300 +@@ -391,6 +391,10 @@ + + // global string with application path + ENGINE_API extern CTFileName _fnmApplicationPath; ++#ifdef PLATFORM_UNIX ++// global string with additional search path ++ENGINE_API extern CTFileName _fnmAdditionalDirPath; ++#endif + // global string with user-specific writable directory. + ENGINE_API extern CTFileName _fnmUserDir; + // global string with current MOD path +--- a/SamTFE/Sources/Engine/Base/Stream.cpp 2024-02-15 12:44:53.057345383 +0300 ++++ b/SamTFE/Sources/Engine/Base/Stream.cpp 2024-02-15 13:17:01.634702073 +0300 +@@ -78,7 +78,9 @@ + // global string with application path (utf-8) + CTFileName _fnmApplicationPath; + CTFileName _fnmApplicationPathTMP; // home dir or application path +- ++#ifdef PLATFORM_UNIX ++CTFileName _fnmAdditionalDirPath; // additional search path ++#endif + // global string with filename of the started application + CTFileName _fnmApplicationExe; + // global string with user-specific writable directory. +@@ -220,6 +222,16 @@ + } + delete files; + ++#ifdef PLATFORM_UNIX ++ // additional search path ++ files = _pFileSystem->FindFiles(_fnmAdditionalDirPath, "*.gro"); ++ max = files->Count(); ++ for (i = 0; i < max; i++) { ++ UNZIPAddArchive( _fnmAdditionalDirPath + ((*files)[i]) ); ++ } ++ delete files; ++#endif ++ + // if there is a mod active + if (_fnmMod!="") { + // for each group file in mod directory +--- a/SamTSE/Sources/Engine/Base/Stream.h 2024-02-15 12:44:53.057345383 +0300 ++++ b/SamTSE/Sources/Engine/Base/Stream.h 2024-02-15 13:17:01.634702073 +0300 +@@ -391,6 +391,10 @@ + + // global string with application path + ENGINE_API extern CTFileName _fnmApplicationPath; ++#ifdef PLATFORM_UNIX ++// global string with additional search path ++ENGINE_API extern CTFileName _fnmAdditionalDirPath; ++#endif + // global string with user-specific writable directory. + ENGINE_API extern CTFileName _fnmUserDir; + // global string with current MOD path +--- a/SamTSE/Sources/Engine/Base/Stream.cpp 2024-02-15 12:44:53.057345383 +0300 ++++ b/SamTSE/Sources/Engine/Base/Stream.cpp 2024-02-15 13:17:01.634702073 +0300 +@@ -78,7 +78,9 @@ + // global string with application path (utf-8) + CTFileName _fnmApplicationPath; + CTFileName _fnmApplicationPathTMP; // home dir or application path +- ++#ifdef PLATFORM_UNIX ++CTFileName _fnmAdditionalDirPath; // additional search path ++#endif + // global string with filename of the started application + CTFileName _fnmApplicationExe; + // global string with user-specific writable directory. +@@ -194,15 +194,16 @@ + } + } + // find eventual extension for the mod's dlls +- _strModExt = ""; ++ _strModExt = "MP"; + // DG: apparently both ModEXT.txt and ModExt.txt exist in the wild. ++/* + CTFileName tmp; + if(ExpandFilePath(EFP_READ, CTString("ModEXT.txt"), tmp) != EFP_NONE) { + LoadStringVar(CTString("ModEXT.txt"), _strModExt); + } else { + LoadStringVar(CTString("ModExt.txt"), _strModExt); + } +- ++*/ + + CPrintF(TRANSV("Loading group files...\n")); + +@@ -220,6 +222,16 @@ + } + delete files; + ++#ifdef PLATFORM_UNIX ++ // additional search path ++ files = _pFileSystem->FindFiles(_fnmAdditionalDirPath, "*.gro"); ++ max = files->Count(); ++ for (i = 0; i < max; i++) { ++ UNZIPAddArchive( _fnmAdditionalDirPath + ((*files)[i]) ); ++ } ++ delete files; ++#endif ++ + // if there is a mod active + if (_fnmMod!="") { + // for each group file in mod directory diff --git a/debian/patches/0005-SeriousSam.cpp.patch b/debian/patches/0005-SeriousSam.cpp.patch new file mode 100644 index 00000000..e374efe2 --- /dev/null +++ b/debian/patches/0005-SeriousSam.cpp.patch @@ -0,0 +1,24 @@ +Description: Set OpenGL render to default +Forwarded: not-needed +--- a/SamTFE/Sources/SeriousSam/SeriousSam.cpp 2024-02-14 22:53:00.349090113 +0300 ++++ b/SamTFE/Sources/SeriousSam/SeriousSam.cpp 2024-02-14 23:08:49.377669933 +0300 +@@ -110,7 +110,7 @@ + __extern INDEX sam_iDisplayDepth = 0; // 0==default, 1==16bit, 2==32bit + __extern INDEX sam_iDisplayAdapter = 0; + #ifdef SE1_VULKAN +-__extern INDEX sam_iGfxAPI = 1; // default opengl //1; // 1==Vulkan ++__extern INDEX sam_iGfxAPI = 0; // default opengl //1; // 1==Vulkan + #else + __extern INDEX sam_iGfxAPI = 0; // 0==OpenGL + #endif // SE1_VULKAN +--- a/SamTSE/Sources/SeriousSam/SeriousSam.cpp 2024-02-14 22:53:00.349090113 +0300 ++++ b/SamTSE/Sources/SeriousSam/SeriousSam.cpp 2024-02-14 23:08:49.377669933 +0300 +@@ -110,7 +110,7 @@ + __extern INDEX sam_iDisplayDepth = 0; // 0==default, 1==16bit, 2==32bit + __extern INDEX sam_iDisplayAdapter = 0; + #ifdef SE1_VULKAN +-__extern INDEX sam_iGfxAPI = 1; // default opengl //1; // 1==Vulkan ++__extern INDEX sam_iGfxAPI = 0; // default opengl //1; // 1==Vulkan + #else + __extern INDEX sam_iGfxAPI = 0; // 0==OpenGL + #endif // SE1_VULKAN diff --git a/debian/patches/0006-Adapter.cpp.patch b/debian/patches/0006-Adapter.cpp.patch new file mode 100644 index 00000000..20dd72ae --- /dev/null +++ b/debian/patches/0006-Adapter.cpp.patch @@ -0,0 +1,26 @@ +Description: Return if cannot create Vulkan instance +Forwarded: not-needed +--- a/SamTFE/Sources/Engine/Graphics/Adapter.cpp 2024-02-17 16:25:45.236555000 +0300 ++++ b/SamTFE/Sources/Engine/Graphics/Adapter.cpp 2024-02-17 18:49:49.526304125 +0300 +@@ -414,7 +414,8 @@ + VkResult r = vkCreateInstance(&instanceInfo, nullptr, &tempVkInstance); + if (r != VK_SUCCESS) + { +- ASSERT(FALSE); ++ CPrintF("Cannot create Vulkan instance.\n"); ++ return;; + } + + // get all physical devices +--- a/SamTSE/Sources/Engine/Graphics/Adapter.cpp 2024-02-17 16:25:45.236555000 +0300 ++++ b/SamTSE/Sources/Engine/Graphics/Adapter.cpp 2024-02-17 18:49:49.526304125 +0300 +@@ -414,7 +414,8 @@ + VkResult r = vkCreateInstance(&instanceInfo, nullptr, &tempVkInstance); + if (r != VK_SUCCESS) + { +- ASSERT(FALSE); ++ CPrintF("Cannot create Vulkan instance.\n"); ++ return;; + } + + // get all physical devices diff --git a/debian/patches/0007-Gfx_Vulkan.cpp.patch b/debian/patches/0007-Gfx_Vulkan.cpp.patch new file mode 100644 index 00000000..7d7ab456 --- /dev/null +++ b/debian/patches/0007-Gfx_Vulkan.cpp.patch @@ -0,0 +1,24 @@ +Description: Change VK_API_VERSION_1_2 to VK_API_VERSION_1_0 +Forwarded: not-needed +--- a/SamTFE/Sources/Engine/Graphics/Gfx_Vulkan.cpp 2024-02-14 23:09:04.922212716 +0300 ++++ b/SamTFE/Sources/Engine/Graphics/Gfx_Vulkan.cpp 2024-02-14 23:09:16.938635079 +0300 +@@ -169,7 +169,7 @@ + appInfo.applicationVersion = VK_MAKE_VERSION(1, 10, 6); + appInfo.pEngineName = "Serious Engine 1"; + appInfo.engineVersion = VK_MAKE_VERSION(1, 10, 6); +- appInfo.apiVersion = VK_API_VERSION_1_2; ++ appInfo.apiVersion = VK_API_VERSION_1_0; + + + VkInstanceCreateInfo instanceInfo = {}; +--- a/SamTSE/Sources/Engine/Graphics/Gfx_Vulkan.cpp 2024-02-14 23:09:04.922212716 +0300 ++++ b/SamTSE/Sources/Engine/Graphics/Gfx_Vulkan.cpp 2024-02-14 23:09:16.938635079 +0300 +@@ -169,7 +169,7 @@ + appInfo.applicationVersion = VK_MAKE_VERSION(1, 10, 6); + appInfo.pEngineName = "Serious Engine 1"; + appInfo.engineVersion = VK_MAKE_VERSION(1, 10, 6); +- appInfo.apiVersion = VK_API_VERSION_1_2; ++ appInfo.apiVersion = VK_API_VERSION_1_0; + + + VkInstanceCreateInfo instanceInfo = {}; diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..d324e16a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,7 @@ +0001-desktop-file.patch +0002-CMakeLists.txt.patch +0003-Engine.cpp.patch +0004-Stream.patch +0005-SeriousSam.cpp.patch +0006-Adapter.cpp.patch +0007-Gfx_Vulkan.cpp.patch diff --git a/debian/postinst b/debian/postinst deleted file mode 100644 index 69654e31..00000000 --- a/debian/postinst +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -e -if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ] ; then update-menus ; fi -if [ "$1" = "configure" ] && [ -x "`which update-desktop-database 2>/dev/null`" ] ; then update-desktop-database ; fi diff --git a/debian/postrm b/debian/postrm deleted file mode 100644 index 09ba0fed..00000000 --- a/debian/postrm +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -e -if [ -x "`which update-menus 2>/dev/null`" ] ; then update-menus ; fi -if [ -x "`which update-desktop-database 2>/dev/null`" ] ; then update-desktop-database ; fi diff --git a/debian/rules b/debian/rules index 2d39e770..7f113898 100755 --- a/debian/rules +++ b/debian/rules @@ -17,7 +17,6 @@ endif dh $@ override_dh_auto_configure: - find . -name "CMakeLists.txt" -exec sed -i 's/-march=native) # set mtune=generic/-mtune=generic) # set mtune=generic/g' {} + dh_auto_configure -- -G "Unix Makefiles" \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) \ $(CMAKE_ADDITIONAL_FLAGS) diff --git a/debian/serioussam-vk-ded.6 b/debian/serioussam-vk-ded.6 new file mode 100644 index 00000000..600b1502 --- /dev/null +++ b/debian/serioussam-vk-ded.6 @@ -0,0 +1,30 @@ +.\" Manpage for serioussam-vk-ded +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussam-vk-ded man page" +.SH NAME +serioussam-vk-ded \- Dedicated server for Serious Sam Classic TFE +.PP +.SH DESCRIPTION +.PP +.BR serioussam-vk-ded +is dedicated server for the game Serious Sam Classic TFE. The server starts with settings from the +Scripts/Dedicated/ directory. Where is a directory containing scripts with server settings. +Learn more about server variable settings in Help/ShellSymbols.txt +.PP +.SH SYNOPSIS +Open terminal and put command: +.TP +\fBserioussam-vk-ded DefaultCoop\fR +\-\ For start Serious Sam Classic The First Encounter coop dedicated server. +.TP +\fBserioussamse-vk-ded DefaultCoop\fR +\-\ For start Serious Sam Classic The Second Encounter coop dedicated server. +.TP +.SS COMMAND LINE OPTIONS +.nf +\fBserioussam(se)-vk-ded\fR [+game modname] +.fi +.SH BUGS +There is no multiplayer compatibility between Windows and *nix systems. +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussamclassic-vk-docs.docs b/debian/serioussam-vk-docs.docs similarity index 100% rename from debian/serioussamclassic-vk-docs.docs rename to debian/serioussam-vk-docs.docs diff --git a/debian/serioussam-vk-mkfont.6 b/debian/serioussam-vk-mkfont.6 new file mode 100644 index 00000000..5fff7c62 --- /dev/null +++ b/debian/serioussam-vk-mkfont.6 @@ -0,0 +1,33 @@ +.\" Manpage for serioussam-vk-mkfont +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussam-vk-mkfont man page" +.SH NAME +serioussam-vk-mkfont \- Font tables maker for the game Serious Sam Classic TFE +.PP +.SH DESCRIPTION +.PP +.BR serioussam-vk-mkfont +is utility for creating fonts for the game Serious Sam Classic TFE. With this utility you can create your own +fonts for the game. For example, this is how localization fonts were created for different languages. +The placement of the input files must be in the game data directory. +.PP +.SH SYNOPSIS +USAGE: serioussam-vk-mkfont [-A] +.PP +texture_file: FULL PATH to texture file that represents font +.PP +char_width: maximum width (in pixels) of single character +.PP +char_height: maximum height (in pixels) of single character +.PP +char_order_file: full path to ASCII file that shows + graphical order of character in font texture +.PP +-A: do not include alpha channel when determining character width +.PP +NOTES: - out file will have the name as texture file, but ".fnt" extension + - texture file must begin with character that will be a replacement for + each character that hasn't got definition in this texture file +.PP +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussam-vk-texconv.6 b/debian/serioussam-vk-texconv.6 new file mode 100644 index 00000000..7b428632 --- /dev/null +++ b/debian/serioussam-vk-texconv.6 @@ -0,0 +1,24 @@ +.\" Manpage for serioussam-vk-texconv +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussam-vk-texconv man page" +.SH NAME +serioussam-vk-texconv \- Texture converter for the game Serious Sam Classic TFE +.PP +.SH DESCRIPTION +.PP +.BR serioussam-vk-texconv +is utility for converting textures for the game Serious Sam Classic TFE. With this utility you can convert +game textures to TGA format. The placement of the input files must be in the game data directory. +.PP +.SH SYNOPSIS +USAGE: serioussam-vk-texconv [] +.PP +texture_file: path to texture file +.PP +tga_output_file: path to create tga file +.PP +NOTES: - out file will have the name as texture file, but ".tga" extension +The texture file must be in the game directory. In the root or any subdirectory +.PP +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussamclassic-vk.1 b/debian/serioussam-vk.6 similarity index 62% rename from debian/serioussamclassic-vk.1 rename to debian/serioussam-vk.6 index baafbd94..16c4da5e 100644 --- a/debian/serioussamclassic-vk.1 +++ b/debian/serioussam-vk.6 @@ -1,25 +1,26 @@ -.\" Manpage for serioussamclassic-vk +.\" Manpage for serioussam-vk .\" Contact -- Alexander Pavlov to correct errors or typos. -.TH man 1 "11 2023" "1.0" "serioussamclassic-vk man page" +.TH man 6 "02 2024" "1.0" "serioussam-vk man page" .SH NAME +serioussam-vk \- Serious Sam Classic Vulkan .PP -.BR serioussamclassic-vk +.BR serioussam-vk is open source game engine version developed by Croteam for Serious Sam Classic with Vulkan support -(Windows, Linux, FreeBSD, OpenBSD, Raspberry Pi OS, macOS). -Based on https://github.com/sultim-t/Serious-Engine-Vk and linux port https://github.com/icculus/Serious-Engine +(Windows, Linux, FreeBSD, Raspberry Pi OS, macOS).Based on https://github.com/sultim-t/Serious-Engine-Vk +and linux port https://github.com/icculus/Serious-Engine .PP .SH SYNOPSIS Open terminal and put command: .TP -\fBserioussam\fR +\fBserioussam-vk\fR \-\ For start Serious Sam Classic The First Encounter. .TP -\fBserioussamse\fR +\fBserioussamse-vk\fR \-\ For start Serious Sam Classic The Second Encounter. .TP .SS COMMAND LINE OPTIONS .nf -\fBserioussam(se)\fR [+level levelname] [+game modname] [+portable] +\fBserioussam(se)-vk\fR [+level levelname] [+game modname] [+portable] [+connect ip:port] [+script scriptname] [+logfile filename] .fi .SH DESCRIPTION @@ -53,7 +54,7 @@ forces and find a new way to reach the notorious Mental himself. .RS Starts the specified game level. .EX -Example: \fBserioussam +level "Levels//01_Hatshepsut.wld"\fR +Example: \fBserioussam-vk +level "Levels//01_Hatshepsut.wld"\fR .EE .RE .TP @@ -67,7 +68,7 @@ settings files will be saved in the root directory of the game. .RS Connects to the server using the specified ip and port. .EX -Example: \fBserioussam +connect 192.168.0.100:25600\fR +Example: \fBserioussam-vk +connect 192.168.0.100:25600\fR .EE .RE .TP @@ -75,7 +76,7 @@ Example: \fBserioussam +connect 192.168.0.100:25600\fR .RS At startup, it launches a custom script for execution. .EX -Example: \fBserioussam +script "Scripts//Myset.ini"\fR +Example: \fBserioussam-vk +script "Scripts//Myset.ini"\fR .EE .RE .TP @@ -83,7 +84,7 @@ Example: \fBserioussam +script "Scripts//Myset.ini"\fR .RS Runs the specified modification. .EX -Example: \fBserioussam +game XPLUS\fR +Example: \fBserioussam-vk +game XPLUS\fR .EE .RE .TP @@ -91,7 +92,7 @@ Example: \fBserioussam +game XPLUS\fR .RS Specifies an alternative file for logging. .EX -Example: \fBserioussam +logfile "Mylog.log"\fR +Example: \fBserioussam-vk +logfile "Mylog.log"\fR .EE .RE .SH CONSOLE COMMANDS @@ -143,23 +144,13 @@ Variable;Icon size 1;big weapon icons (set by default) .TE .RE -.TP -\fBgfx_vk_iPresentMode\fR -.RS -\-\ What present mode to use: 0=FIFO, 1=Mailbox, 2=Immediate -.RE -.TP -\fBgfx_vk_iMSAA\fR -.RS -\-\ MSAA: 0=1x, 1=2x, 2=4x, 3=8x -.RE .SH INTRIDUCTION .PP This implementation of the source code provides for installation in the -system, in the /usr/bin, /usr/lib, /usr/share directories. +system, in the /usr/games, /usr/lib/games, /usr/share/games directories. .PP During the launch of the game, the engine determines the place of launch, -and if the launch occurred from the /usr/bin directory, it switches +and if the launch occurred from the /usr/games directory, it switches to the libraries search mode in the system directories. Also adds searching for game data in various directories. About the search for game data will be written below. @@ -168,8 +159,8 @@ Otherwise, the engine considers that a local launch of the game has occurred and will look for game data in the root directory of the game. User data, such as game settings, log, saves, demos will be located in: .PP -\fB ~/.local/share/Serious-Engine/serioussam/ - for TFE\fR -\fB ~/.local/share/Serious-Engine/serioussamse/ - for TSE\fR +\fB ~/.serioussam-vk/ - for TFE\fR +\fB ~/.serioussamse-vk/ - for TSE\fR .PP If you start the game with the \fB+portable\fR key, then there will be a full portable mode and user data, such as game settings, @@ -184,54 +175,27 @@ game and a master server. .PP .SS Location of executables, libraries, and modification libraries .PP -The executable files of the game are located in the \fI'/usr/bin'\fR directory. +The executable files of the game are located in the \fI'/usr/games'\fR directory. .PP -\fB /usr/bin/"internal game name"\fR +\fB /usr/games/"internal game name"-vk\fR .PP The dedicated server and the font creation utility for the game are also located in this directory. .PP -\fB /usr/bin/"internal game name"\fB-ded\fR -\fB /usr/bin/"internal game name"\fB-mkfont\fR +\fB /usr/games/"internal game name"\fB-vk-ded\fR +\fB /usr/games/"internal game name"\fB-vk-mkfont\fR +\fB /usr/games/"internal game name"\fB-vk-texconv\fR .PP The game libraries will be searched in the following directories: .PP -\fB /usr/lib/"internal-game-name"/\fR -\fB /usr/lib64/"internal game name"/\fR -\fB /usr/lib/i386-linux-gnu/"internal game name"/\fR -\fB /usr/lib/x86_64-linux-gnu/"internal game name"/\fR -\fB /usr/lib/arm-linux-gnueabihf/"internal game name"/\fR -\fB /usr/lib/aarch64-linux-gnu/"internal game name"/\fR -\fB /usr/lib/riscv64-linux-gnu/"internal game name"/\fR -\fB /usr/lib/s390x-linux-gnu/"internal game name"/\fR -\fB /usr/lib/powerpc64-linux-gnu/"internal game name"/\fR +\fB /usr/lib/games/"internal-game-name"-vk/\fR .PP The location of the libraries of modifications is also on the same principle. .PP -\fB /usr/lib/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib64/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/i386-linux-gnu/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/x86_64-linux-gnu/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/arm-linux-gnueabihf/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/aarch64-linux-gnu/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/riscv64-linux-gnu/"internal game name"/Mods/"Mod name"/\fR -\fB /usr/lib/s390x-linux-gnu/"internal game name"//Mods/"Mod name"/\fR -\fB /usr/lib/powerpc64-linux-gnu/"internal game name"//Mods/"Mod name"/\fR +\fB /usr/lib/games/"internal game name"-vk/Mods/"Mod name"/\fR .PP Game libraries are assigned a suffix defined in file \fIModEXT.txt\fR The suffix is assigned to both game libraries and mod libraries. -The game library engine must be located in the standard library search area. In one of: -.PP -\fB /usr/lib\fR -\fB /usr/lib64\fR -\fB /usr/lib/i386-linux-gnu\fR -\fB /usr/lib/x86_64-linux-gnu\fR -\fB /usr/lib/arm-linux-gnueabihf\fR -\fB /usr/lib/aarch64-linux-gnu\fR -\fB /usr/lib/riscv64-linux-gnu\fR -\fB /usr/lib/s390x-linux-gnu\fR -\fB /usr/lib/powerpc64-linux-gnu\fR -.PP The game executable first loads the engine library, which loads the remaining libraries from the subdirectory with the game's internal name. To get output names by convention, use the cmake build @@ -241,32 +205,34 @@ In accordance with the naming convention, we get the following location of the executable files, game libraries Serious Sam The First Encounter and Serious Sam The Second Encounter for Debian/Ubuntu: .PP -\fB /usr/bin/serioussam\fR -\fB /usr/bin/serioussam-ded\fR -\fB /usr/bin/serioussam-mkfont\fR -\fB /usr/lib/x86_64-linux-gnu/libEngine.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/libShaders.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/libGame.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/libEntities.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/libamp11lib.so\fR -\fB /usr/bin/serioussamse\fR -\fB /usr/bin/serioussamse-ded\fR -\fB /usr/bin/serioussamse-mkfont\fR -\fB /usr/lib/x86_64-linux-gnu/libEngineMP.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/libShaders.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/libGameMP.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/libEntitiesMP.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/libamp11lib.so\fR +\fB /usr/games/serioussam-vk\fR +\fB /usr/games/serioussam-vk-ded\fR +\fB /usr/games/serioussam-vk-mkfont\fR +\fB /usr/games/serioussam-vk-texconv\fR +\fB /usr/lib/games/serioussam-vk/libEngine.so\fR +\fB /usr/lib/games/serioussam-vk/libShaders.so\fR +\fB /usr/lib/games/serioussam-vk/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/libEntities.so\fR +\fB /usr/lib/games/serioussam-vk/libamp11lib.so\fR +\fB /usr/games/serioussamse-vk\fR +\fB /usr/games/serioussamse-vk-ded\fR +\fB /usr/games/serioussamse-vk-mkfont\fR +\fB /usr/games/serioussamse-vk-texconv\fR +\fB /usr/lib/games/serioussamse-vk/libEngineMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libShaders.so\fR +\fB /usr/lib/games/serioussamse-vk/libGameMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libEntitiesMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libamp11lib.so\fR .PP For mod XPLUS: -\fB /usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libGame.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/Mods/XPLUS/libEntities.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libGameMP.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussamse/Mods/XPLUS/libEntitiesMP.so\fR +\fB /usr/lib/games/serioussam-vk/Mods/XPLUS/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/Mods/XPLUS/libEntities.so\fR +\fB /usr/lib/games/serioussamse-vk/Mods/XPLUS/libGameMP.so\fR +\fB /usr/lib/games/serioussamse-vk/Mods/XPLUS/libEntitiesMP.so\fR .PP For mod Serious Sam Alpha Remake (SSA): -\fB /usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libGame.so\fR -\fB /usr/lib/x86_64-linux-gnu/serioussam/Mods/SSA/libEntities.so\fRq +\fB /usr/lib/games/serioussam-vk/Mods/SSA/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/Mods/SSA/libEntities.so\fRq .PP .SS Location of game data, user data, and data modifications .PP @@ -278,36 +244,22 @@ the game files are found, the path will be written to the configuration file (not recommended). If the game files are not found, a message box will appear. .PP -Recommended paths for hosting game data: -.PP -\fB /usr/share/serioussam/\fR \-\ for TFE -\fB /usr/share/serioussamse/\fR \-\ for TSE -.PP -or +Paths for hosting game data: .PP -\fB ~/.local/share/Serious-Engine/serioussam/\fR \-\ for TFE -\fB ~/.local/share/Serious-Engine/serioussamse/\fR \-\ for TSE +\fB ~/.serioussam-vk/\fR \-\ for TFE +\fB ~/.serioussamse-vk/\fR \-\ for TSE .PP Mod Data: .PP -\fB /usr/share/serioussam/Mods/"Mod name"\fR \-\ for TFE -\fB /usr/share/serioussamse/Mods/"Mod name"\fR \-\ for TSE -.PP -or -.PP -\fB ~/.local/share/Serious-Engine/serioussam/Mods/"Mod name"\fR \-\ for TFE -\fB ~/.local/share/Serious-Engine/serioussamse/Mods/"Mod name"\fR \-\ for TSE -.PP -It is not allowed to arrange game data parts in different recommended paths. -Also, if you chose your own path (which is not recommended), it must be -the only one. +\fB ~/.serioussam-vk/Mods/"Mod name"\fR \-\ for TFE +\fB ~/.serioussamse-vk/Mods/"Mod name"\fR \-\ for TSE .PP The file SE1_10b.gro is not included in the game data distributed on CDs or digital stores. If you chose the first recommended option, set it to: .PP -\fB /usr/share/serioussam/SE1_10b.gro\fR \-\ for TFE -\fB /usr/share/serioussamse/SE1_10b.gro\fR \-\ for TSE +\fB /usr/share/games/serioussam-vk/SE1_10b.gro\fR \-\ for TFE +\fB /usr/share/games/serioussamse-vk/SE1_10b.gro\fR \-\ for TSE .PP .SH PLAYING .PP @@ -345,12 +297,12 @@ If you bought a physical copy of the game and you have an ISO of your disk, you can unpack the resources with the any archive manager. Game resources are located in the Install directory of the disk. Just copy all the *.gro files from there, as well as the Levels directory to directories -\fB ~/.local/share/Serious-Engine/serioussam\fR and -\fB ~/.local/share/Serious-Engine/serioussamse\fR, respectively, for games +\fB ~/.serioussam-vk\fR and +\fB ~/.serioussamse-vk\fR, respectively, for games Serious Sam: The First Encounter and Serious Sam: The Second Encounter. .PP .SS Launching the game -To start the game type in console: \fB serioussam\fR or \fB serioussamse\fR. You can also use the launch of the game through the menu. +To start the game type in console: \fB serioussam-vk\fR or \fB serioussamse-vk\fR. You can also use the launch of the game through the menu. After installing the packages and copying all the data, you can check what we got. .SH BUGS There is no multiplayer compatibility between Windows and *nix systems. diff --git a/debian/serioussamse-vk-ded.6 b/debian/serioussamse-vk-ded.6 new file mode 100644 index 00000000..2ac89d53 --- /dev/null +++ b/debian/serioussamse-vk-ded.6 @@ -0,0 +1,30 @@ +.\" Manpage for serioussamse-vk-ded +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussamse-vk-ded man page" +.SH NAME +serioussamse-vk-ded \- Dedicated server for Serious Sam Classic TSE +.PP +.SH DESCRIPTION +.PP +.BR serioussamse-vk-ded +is dedicated server for the game Serious Sam Classic TSE. The server starts with settings from the +Scripts/Dedicated/ directory. Where is a directory containing scripts with server settings. +Learn more about server variable settings in Help/ShellSymbols.txt +.PP +.SH SYNOPSIS +Open terminal and put command: +.TP +\fBserioussam-vk-ded DefaultCoop\fR +\-\ For start Serious Sam Classic The First Encounter coop dedicated server. +.TP +\fBserioussamse-vk-ded DefaultCoop\fR +\-\ For start Serious Sam Classic The Second Encounter coop dedicated server. +.TP +.SS COMMAND LINE OPTIONS +.nf +\fBserioussam(se)-vk-ded\fR [+game modname] +.fi +.SH BUGS +There is no multiplayer compatibility between Windows and *nix systems. +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussamse-vk-mkfont.6 b/debian/serioussamse-vk-mkfont.6 new file mode 100644 index 00000000..152945d0 --- /dev/null +++ b/debian/serioussamse-vk-mkfont.6 @@ -0,0 +1,33 @@ +.\" Manpage for serioussamse-vk-mkfont +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussamse-vk-mkfont man page" +.SH NAME +serioussamse-vk-mkfont \- Font tables maker for the game Serious Sam Classic TSE +.PP +.SH DESCRIPTION +.PP +.BR serioussam-vk-mkfont +is utility for creating fonts for the game Serious Sam Classic TSE. With this utility you can create your own +fonts for the game. For example, this is how localization fonts were created for different languages. +The placement of the input files must be in the game data directory. +.PP +.SH SYNOPSIS +USAGE: serioussamse-vk-mkfont [-A] +.PP +texture_file: FULL PATH to texture file that represents font +.PP +char_width: maximum width (in pixels) of single character +.PP +char_height: maximum height (in pixels) of single character +.PP +char_order_file: full path to ASCII file that shows + graphical order of character in font texture +.PP +-A: do not include alpha channel when determining character width +.PP +NOTES: - out file will have the name as texture file, but ".fnt" extension + - texture file must begin with character that will be a replacement for + each character that hasn't got definition in this texture file +.PP +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussamse-vk-texconv.6 b/debian/serioussamse-vk-texconv.6 new file mode 100644 index 00000000..fed478c3 --- /dev/null +++ b/debian/serioussamse-vk-texconv.6 @@ -0,0 +1,24 @@ +.\" Manpage for serioussamse-vk-texconv +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussamse-vk-texconv man page" +.SH NAME +serioussamse-vk-texconv \- Texture converter for the game Serious Sam Classic TSE +.PP +.SH DESCRIPTION +.PP +.BR serioussamse-vk-texconv +is utility for converting textures for the game Serious Sam Classic TSE. With this utility you can convert +game textures to TGA format. The placement of the input files must be in the game data directory. +.PP +.SH SYNOPSIS +USAGE: serioussamse-vk-texconv [] +.PP +texture_file: path to texture file +.PP +tga_output_file: path to create tga file +.PP +NOTES: - out file will have the name as texture file, but ".tga" extension +The texture file must be in the game directory. In the root or any subdirectory +.PP +.SH AUTHOR + Alexander Pavlov diff --git a/debian/serioussamse-vk.6 b/debian/serioussamse-vk.6 new file mode 100644 index 00000000..e1bbf7b8 --- /dev/null +++ b/debian/serioussamse-vk.6 @@ -0,0 +1,310 @@ +.\" Manpage for serioussamse-vk +.\" Contact -- Alexander Pavlov to correct errors or typos. +.TH man 6 "02 2024" "1.0" "serioussamse-vk man page" +.SH NAME +serioussamse-vk \- Serious Sam Classic Vulkan +.PP +.BR serioussamse-vk +is open source game engine version developed by Croteam for Serious Sam Classic with Vulkan support +(Windows, Linux, FreeBSD, Raspberry Pi OS, macOS).Based on https://github.com/sultim-t/Serious-Engine-Vk +and linux port https://github.com/icculus/Serious-Engine +.PP +.SH SYNOPSIS +Open terminal and put command: +.TP +\fBserioussam-vk\fR +\-\ For start Serious Sam Classic The First Encounter. +.TP +\fBserioussamse-vk\fR +\-\ For start Serious Sam Classic The Second Encounter. +.TP +.SS COMMAND LINE OPTIONS +.nf +\fBserioussam(se)-vk\fR [+level levelname] [+game modname] [+portable] + [+connect ip:port] [+script scriptname] [+logfile filename] +.fi +.SH DESCRIPTION +.PP +Serious Sam: First Encounter is a high-adrenaline action-arcade shooter heavily +focused on frantic arcade-style single player action. In a world where cyberpunk +meets fantasy-fiction and advanced technology is mixed with black magic +and psycho-powers, Sam travels through the beautiful world of ancient Egypt +and several diverse planets, confronting countless Mental's minions on his way +to the Mental's base. +.PP +Serious Sam: Second Encounter introduces three worlds where cyberpunk +once again meets fantasy fiction, and features frantic action in +12 massive single player levels. The Second Encounter includes three +new episodes based in beautifully detailed ancient civilizations: South America, +Babylon, and The Medieval Age. With fourteen total weapons at his disposal, +three brand new, Sam is more serious than ever. He battles against hordes of +old enemies and seven adversarial species in an effort to reach the Mental +once and for all. +.PP +Having successfully defeated the Mental forces in ancient Egypt, +Sam "Serious" Stone seizes an abandoned spacecraft. On course in his crusade +to finally assassinate the great evil Mental, our hero's spaceship suddenly +tumbles into the South American Mountains \-\ Sam seems destined to stay on Earth. +He must fight the tougher, now more experienced members of Mental's destructive +forces and find a new way to reach the notorious Mental himself. +.PP +.SH COMMAND LINE OPTIONS +.PP +\fB+level\fR +.RS +Starts the specified game level. +.EX +Example: \fBserioussamse-vk +level "Levels//01_Hatshepsut.wld"\fR +.EE +.RE +.TP +\fB+portable\fR +.RS +Enables full portable mode for Linux. All saves, recorded demo files, +settings files will be saved in the root directory of the game. +.RE +.TP +\fB+connect\fR +.RS +Connects to the server using the specified ip and port. +.EX +Example: \fBserioussamse-vk +connect 192.168.0.100:25600\fR +.EE +.RE +.TP +\fB+script\fR +.RS +At startup, it launches a custom script for execution. +.EX +Example: \fBserioussamse-vk +script "Scripts//Myset.ini"\fR +.EE +.RE +.TP +\fB+game\fR +.RS +Runs the specified modification. +.EX +Example: \fBserioussamse-vk +game XPLUS\fR +.EE +.RE +.TP +\fB+logfile\fR +.RS +Specifies an alternative file for logging. +.EX +Example: \fBserioussamse-vk +logfile "Mylog.log"\fR +.EE +.RE +.SH CONSOLE COMMANDS +.PP +Note: the man contains only new commands. You can look at the remaining commands +in file \fIShellSymbols.txt\fR in \fIHELP\fR of the game directory. +.PP +\fBhud_bShowKills\fR +.RS +\-\ Shows the number of killed and remaining monsters on the map. Disabled by default. +.RE +.TP +\fBhud_bShowPing\fR +.RS +\-\ Shows ping in a multiplayer game. Enabled by default. +.RE +.TP +\fBhud_bShowScore\fR +.RS +\-\ Allows you to remove the top line in the HUD with the number of score. Disabled by default. +.RE +.TP +\fBgam_bFixIlluminationsMethod\fR +.RS +\-\ Fix a bug with texture highlighting in the First Encounter. +.TS +tab(;) allbox; +c c +c c +c c +c c. +Variable;Method used +0;none +1;fix textrure settings +2;create additional lighting (better). Setting by default +.TE +.RE +.TP +\fBhud_bWeaponsIconScale +.RS +\-\ Sets the size for displaying the size of weapon icons in HUD. +.TS +tab(;) allbox; +c c +c c +c c. +Variable;Icon size +0;small weapon icons +1;big weapon icons (set by default) +.TE +.RE +.SH INTRIDUCTION +.PP +This implementation of the source code provides for installation in the +system, in the /usr/games, /usr/lib/games, /usr/share/games directories. +.PP +During the launch of the game, the engine determines the place of launch, +and if the launch occurred from the /usr/games directory, it switches +to the libraries search mode in the system directories. Also adds searching +for game data in various directories. About the search for game data will +be written below. +.PP +Otherwise, the engine considers that a local launch of the game has occurred +and will look for game data in the root directory of the game. +User data, such as game settings, log, saves, demos will be located in: +.PP +\fB ~/.serioussam-vk/ - for TFE\fR +\fB ~/.serioussamse-vk/ - for TSE\fR +.PP +If you start the game with the \fB+portable\fR key, then there will be a full +portable mode and user data, such as game settings, +log, saves, demos will also be located in the root directory of the game. +.PP +.SS Naming conventions for executable files and libraries +.PP +Internal game name for Serious Sam The First Encounter is \fIserioussam\fR, +for Serious Sam The Second Encounter is \fIserioussamse\fR. These names are +initially accepted in the engine and are used for example in a network +game and a master server. +.PP +.SS Location of executables, libraries, and modification libraries +.PP +The executable files of the game are located in the \fI'/usr/games'\fR directory. +.PP +\fB /usr/games/"internal game name"-vk\fR +.PP +The dedicated server and the font creation utility for the game are also +located in this directory. +.PP +\fB /usr/games/"internal game name"\fB-vk-ded\fR +\fB /usr/games/"internal game name"\fB-vk-mkfont\fR +\fB /usr/games/"internal game name"\fB-vk-texconv\fR +.PP +The game libraries will be searched in the following directories: +.PP +\fB /usr/lib/games/"internal-game-name"-vk/\fR +.PP +The location of the libraries of modifications is also on the same principle. +.PP +\fB /usr/lib/games/"internal game name"-vk/Mods/"Mod name"/\fR +.PP +Game libraries are assigned a suffix defined in file \fIModEXT.txt\fR +The suffix is assigned to both game libraries and mod libraries. +The game executable first loads the engine library, which loads the remaining +libraries from the subdirectory with the game's internal name. +To get output names by convention, use the cmake build +key \fB-DUSE_SYSTEM_INSTALL\fP=On or \fB-DCMAKE_INSTALL_PREFIX:PATH\fP=/usr +.PP +In accordance with the naming convention, we get the following location of the +executable files, game libraries Serious Sam The First Encounter +and Serious Sam The Second Encounter for Debian/Ubuntu: +.PP +\fB /usr/games/serioussam-vk\fR +\fB /usr/games/serioussam-vk-ded\fR +\fB /usr/games/serioussam-vk-mkfont\fR +\fB /usr/games/serioussam-vk-texconv\fR +\fB /usr/lib/games/serioussam-vk/libEngine.so\fR +\fB /usr/lib/games/serioussam-vk/libShaders.so\fR +\fB /usr/lib/games/serioussam-vk/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/libEntities.so\fR +\fB /usr/lib/games/serioussam-vk/libamp11lib.so\fR +\fB /usr/games/serioussamse-vk\fR +\fB /usr/games/serioussamse-vk-ded\fR +\fB /usr/games/serioussamse-vk-mkfont\fR +\fB /usr/games/serioussamse-vk-texconv\fR +\fB /usr/lib/games/serioussamse-vk/libEngineMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libShaders.so\fR +\fB /usr/lib/games/serioussamse-vk/libGameMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libEntitiesMP.so\fR +\fB /usr/lib/games/serioussamse-vk/libamp11lib.so\fR +.PP +For mod XPLUS: +\fB /usr/lib/games/serioussam-vk/Mods/XPLUS/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/Mods/XPLUS/libEntities.so\fR +\fB /usr/lib/games/serioussamse-vk/Mods/XPLUS/libGameMP.so\fR +\fB /usr/lib/games/serioussamse-vk/Mods/XPLUS/libEntitiesMP.so\fR +.PP +For mod Serious Sam Alpha Remake (SSA): +\fB /usr/lib/games/serioussam-vk/Mods/SSA/libGame.so\fR +\fB /usr/lib/games/serioussam-vk/Mods/SSA/libEntities.so\fRq +.PP +.SS Location of game data, user data, and data modifications +.PP +During the launch of the game, the engine determines the launch location, and +if the launch occurred from the /usr/bin directory, then the game data +will be searched for the recommended paths. If the game data is not found using +the recommended paths, then the search will be in the home directory, and when +the game files are found, the path will be written to the configuration +file (not recommended). If the game files are not found, +a message box will appear. +.PP +Paths for hosting game data: +.PP +\fB ~/.serioussam-vk/\fR \-\ for TFE +\fB ~/.serioussamse-vk/\fR \-\ for TSE +.PP +Mod Data: +.PP +\fB ~/.serioussam-vk/Mods/"Mod name"\fR \-\ for TFE +\fB ~/.serioussamse-vk/Mods/"Mod name"\fR \-\ for TSE +.PP +The file SE1_10b.gro is not included in the game data distributed on +CDs or digital stores. If you chose the first recommended option, +set it to: +.PP +\fB /usr/share/games/serioussam-vk/SE1_10b.gro\fR \-\ for TFE +\fB /usr/share/games/serioussamse-vk/SE1_10b.gro\fR \-\ for TSE +.PP +.SH PLAYING +.PP +This source release does not contain any game data, the game data is still +covered by the original EULA and must be obeyed as usual. +.PP +To start the game, you'll need the original resurces of a licensed copy +of Serious Sam: The First Encounter and Serious Sam: The Second Encounter. +.PP +.SS Steam version +.PP +If you have a digital copy of the game on Steam then the +resources can be found in: +\fB ~/.local/share/Steam/SteamApps/common/Serious Sam Classic The First Encounter\fR and +\fB ~/.local/share/Steam/SteamApps/common/Serious Sam Classic The Second Encounter\fR +(the default Steam game installation directory on Linux). +.PP +.SS GOG version +.PP +If you bought a digital on GOG, you can unpack the resources with the +innoextract CLI tool. To install innoextract via your package manager, run: +.PP +\fB sudo apt-get install innoextract\fR +.PP +Copy files \fI"setup_serious_sam_the_first_encounter_2.0.0.10.exe"\fR and \fI"setup_serious_sam_the_second_encounter_2.1.0.8.exe"\fR +to a home directory and run the following commands: +.PP +\fB innoextract --gog setup_serious_sam_the_first_encounter_2.0.0.10.exe\fR +.PP +\fB innoextract --gog setup_serious_sam_the_second_encounter_2.1.0.8.exe\fR +.PP +.SS Physical version +.PP +If you bought a physical copy of the game and you have an ISO of your disk, +you can unpack the resources with the any archive manager. Game resources are +located in the Install directory of the disk. Just copy all the *.gro files +from there, as well as the Levels directory to directories +\fB ~/.serioussam-vk\fR and +\fB ~/.serioussamse-vk\fR, respectively, for games +Serious Sam: The First Encounter and Serious Sam: The Second Encounter. +.PP +.SS Launching the game +To start the game type in console: \fB serioussam-vk\fR or \fB serioussamse-vk\fR. You can also use the launch of the game through the menu. +After installing the packages and copying all the data, you can check what we got. +.SH BUGS +There is no multiplayer compatibility between Windows and *nix systems. +.SH AUTHOR + Alexander Pavlov diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 00000000..bf7d0f9c --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1,2 @@ +SamTFE/SE1_10b.gro +SamTSE/SE1_10b.gro diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 00000000..a66a33e5 --- /dev/null +++ b/debian/source/options @@ -0,0 +1,65 @@ +tar-ignore ".git" +tar-ignore ".github" +tar-ignore "appimage" +tar-ignore "flatpak" +tar-ignore "Images" +tar-ignore "man" +tar-ignore "templates" +tar-ignore "SamTFE/Bin" +tar-ignore "SamTFE/Controls" +tar-ignore "SamTFE/Data" +tar-ignore "SamTFE/Demos" +tar-ignore "SamTFE/Help" +tar-ignore "SamTFE/Levels" +tar-ignore "SamTFE/Players" +tar-ignore "SamTFE/Scripts" +tar-ignore "SamTFE/Sources/***/*.ini" +tar-ignore "SamTFE/Sources/Engine/zlib" +tar-ignore "SamTFE/Sources/EngineGui" +tar-ignore "SamTFE/Sources/External" +tar-ignore "SamTFE/Sources/GameGUIMP" +tar-ignore "SamTFE/Sources/LWSkaExporter" +tar-ignore "SamTFE/Sources/Modeler" +tar-ignore "SamTFE/Sources/RCon" +tar-ignore "SamTFE/Sources/SeriousSam/SeriousSam.aps" +tar-ignore "SamTFE/Sources/SeriousSam/Splash.bmp" +tar-ignore "SamTFE/Sources/SeriousSam/SplashMask.bmp" +tar-ignore "SamTFE/Sources/SeriousSkaStudio" +tar-ignore "SamTFE/Sources/WorldEditor" +tar-ignore "SamTFE/Temp" +tar-ignore "SamTFE/Tools.Win32" +tar-ignore "SamTFE/VirtualTrees" +tar-ignore "SamTFE/Sources/libvorbis" +tar-ignore "SamTFE/Sources/libogg" +tar-ignore "SamTFE/Sources/SamTFE.sln" +tar-ignore "SamTFE/Mods/SeriousSamTbn.tex" +tar-ignore "SamTFE/Mods/XPLUSTbn.tex" +tar-ignore "SamTSE/Bin" +tar-ignore "SamTSE/Controls" +tar-ignore "SamTSE/Data" +tar-ignore "SamTSE/Demos" +tar-ignore "SamTSE/Help" +tar-ignore "SamTSE/Levels" +tar-ignore "SamTSE/Players" +tar-ignore "SamTSE/Scripts" +tar-ignore "SamTSE/Sources/***/*.ini" +tar-ignore "SamTSE/Sources/Engine/zlib" +tar-ignore "SamTSE/Sources/EngineGui" +tar-ignore "SamTSE/Sources/External" +tar-ignore "SamTSE/Sources/GameGUIMP" +tar-ignore "SamTSE/Sources/LWSkaExporter" +tar-ignore "SamTSE/Sources/Modeler" +tar-ignore "SamTSE/Sources/RCon" +tar-ignore "SamTSE/Sources/SeriousSam/SeriousSam.aps" +tar-ignore "SamTSE/Sources/SeriousSam/Splash.bmp" +tar-ignore "SamTSE/Sources/SeriousSam/SplashMask.bmp" +tar-ignore "SamTSE/Sources/SeriousSkaStudio" +tar-ignore "SamTSE/Sources/WorldEditor" +tar-ignore "SamTSE/Temp" +tar-ignore "SamTSE/Tools.Win32" +tar-ignore "SamTSE/VirtualTrees" +tar-ignore "SamTSE/Sources/libvorbis" +tar-ignore "SamTSE/Sources/libogg" +tar-ignore "SamTSE/Sources/SamTSE.sln" +tar-ignore "SamTSE/Mods/SecondEncounterTbn.tex" +tar-ignore "SamTSE/Mods/XPLUSTbn.tex" diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 00000000..3d97b424 --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,5 @@ +Bug-Database: https://github.com/tx00100xt/SeriousSamClassic-VK/issues +Bug-Submit: https://github.com/tx00100xt/SeriousSamClassic-VK/issues/new +Changelog: https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/CHANGELOG.md +Repository-Browse: https://github.com/tx00100xt/SeriousSamClassic-VK +Repository: https://github.com/tx00100xt/SeriousSamClassic-VK.git diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..88932cde --- /dev/null +++ b/debian/watch @@ -0,0 +1,4 @@ +version=4 + +opts=dversionmangle=s/\.dfsg// \ +https://salsa.debian.org/tx00100xt/serioussam-vk/tags?sort=updated_desc (?:.*/)@PACKAGE@@ANY_VERSION@\.tar\.gz