games/play-abandon-ship.sh0000755000000000000000000000543214471751340014527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Abandon Ship # send your bug reports to bugs@dotslashplay.it ### script_version=20250512.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='abandon-ship' GAME_NAME='Abandon Ship' ARCHIVE_BASE_0_NAME='abandon_ship_1_3_14934_41922.sh' ARCHIVE_BASE_0_MD5='484e670989853f9c7460d0dd08b3ffba' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3.14934-gog41922' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abandon_ship' UNITY3D_NAME='AbandonShip' UNITY3D_PLUGINS=' libAkHarmonizer.so libAkSoundEngine.so libSynthOne.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/AssetBundles" CONTENT_DOC_DATA_FILES=' Licenses' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETS' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link some Unity3D plugins in the game data path as the game engine fails to find them otherwise. libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64" mkdir --parents "$libraries_destination" ln --symbolic --target-directory="$libraries_destination" \ "${libraries_source}/libAkSoundEngine.so" \ "${libraries_source}/libAkHarmonizer.so" \ "${libraries_source}/libSynthOne.so" \ "${libraries_source}/ScreenSelector.so" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-afterlife.sh0000755000000000000000000000664114471751340014130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Afterlife # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='afterlife' GAME_NAME='Afterlife' ARCHIVE_BASE_EN_0_NAME='gog_afterlife_2.2.0.8.sh' ARCHIVE_BASE_EN_0_MD5='3aca0fac1b93adec5aff39d395d995ab' ARCHIVE_BASE_EN_0_SIZE='260000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_FR_0_NAME='gog_afterlife_french_2.2.0.8.sh' ARCHIVE_BASE_FR_0_MD5='56b3efee60bc490c68f8040587fc1878' ARCHIVE_BASE_FR_0_SIZE='250000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_DE_0_NAME='gog_afterlife_german_2.2.0.8.sh' ARCHIVE_BASE_DE_0_MD5='441b57901235584ff851da8fe316f0b3' ARCHIVE_BASE_DE_0_SIZE='310000' ARCHIVE_BASE_DE_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_ES_0_NAME='gog_afterlife_spanish_2.2.0.8.sh' ARCHIVE_BASE_ES_0_MD5='43deb4aeeaa3b9ede542f1a0718b15ee' ARCHIVE_BASE_ES_0_SIZE='250000' ARCHIVE_BASE_ES_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/afterlife' ARCHIVE_BASE_IT_0_NAME='gog_afterlife_italian_2.2.0.8.sh' ARCHIVE_BASE_IT_0_MD5='cb60193a32d29babfc203412df00b21e' ARCHIVE_BASE_IT_0_SIZE='250000' ARCHIVE_BASE_IT_0_VERSION='1.1-gog2.2.0.8' ARCHIVE_BASE_IT_0_URL='https://www.gog.com/game/afterlife' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' alife.* alife *.asc *.exe *.ini' CONTENT_DOC_MAIN_FILES=' readme.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' afterlife - reference guide.pdf' USER_PERSISTENT_FILES=' *.ini' USER_PERSISTENT_DIRECTORIES=' save' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='alife/afterdos.bat' APP_MAIN_ICON='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_ID_DE="${PKG_MAIN_ID}-de" PKG_MAIN_ID_ES="${PKG_MAIN_ID}-es" PKG_MAIN_ID_IT="${PKG_MAIN_ID}-it" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. ## Run the game binary from its parent directory. game_exec_line() { cat <<- 'EOF' cd alife afterdos.bat $@ EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-age-of-wonders-1.sh0000755000000000000000000000524514471751340015141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # Age of Wonders # send your bug reports to bugs@dotslashplay.it ### script_version=20251019.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='age-of-wonders-1' GAME_NAME='Age of Wonders' ARCHIVE_BASE_1_NAME='setup_age_of_wonders_1.36.0053_(22161).exe' ARCHIVE_BASE_1_MD5='e9c045b1a915d0af6f838ec0ad27d910' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='320000' ARCHIVE_BASE_1_VERSION='1.36.0053-gog22161' ARCHIVE_BASE_1_URL='https://www.gog.com/game/age_of_wonders' ARCHIVE_BASE_0_NAME='setup_age_of_wonders_2.0.0.13.exe' ARCHIVE_BASE_0_MD5='9ee2ccc5223c41306cf6695fc09a5634' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.36.0053-gog2.0.0.13' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' aow.exe aowed.exe' CONTENT_GAME_DATA_FILES=' int dict edimages images release scenario sfx songs tcmaps *.dpl *.wav' CONTENT_DOC_DATA_FILES=' quickstart.pdf readme.txt' USER_PERSISTENT_DIRECTORIES=' emailin emailout save user' ## "icodecs" winetricks verb is required for correct intro movie playback. ## Installing all GStreamer decoders does not help, ## it actually causes the game to crash instead of playing only the audio track. ## cf. https://bugs.winehq.org/show_bug.cgi?id=27244 ## (WINE 10.0) WINE_WINETRICKS_VERBS='icodecs' APP_MAIN_EXE='aow.exe' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_EXE='aowed.exe' APP_EDITOR_NAME="$GAME_NAME - Editor" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-age-of-wonders-planetfall.sh0000755000000000000000000000702014471751340017114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Age of Wonders: Planetfall # send your bug reports to bugs@dotslashplay.it ### script_version=20251019.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='age-of-wonders-planetfall' GAME_NAME='Age of Wonders: Planetfall' ARCHIVE_BASE_0_NAME='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648).exe' ARCHIVE_BASE_0_MD5='a92c35dc7da9d98ec81124fe8d9e4d7d' ## Do not use innoextract --lowercase option, ## as it leads to voice overs not playing. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648)-1.bin' ARCHIVE_BASE_0_PART1_MD5='cca141657c572c23851bf614988106c8' ARCHIVE_BASE_0_PART2_NAME='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648)-2.bin' ARCHIVE_BASE_0_PART2_MD5='acf2bd9ce2f2e776f60b163e95628795' ARCHIVE_BASE_0_SIZE='17000000' ARCHIVE_BASE_0_VERSION='1.404.43827-gog47648' ARCHIVE_BASE_0_URL='https://www.gog.com/game/age_of_wonders_planetfall' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Bin fmod64.dll fmodstudio64.dll Galaxy64.dll iggy_w64.dll libeay32.dll pops_api.dll ssleay32.dll zip.dll AowPF.exe' ## Galaxy64.dll is require by AowPF.exe. CONTENT_GAME0_BIN_FILES=' Galaxy64.dll' CONTENT_GAME_DATA_LIBRARIES_1_FILES=' Content/*/Libraries/Strategic Content/*/Libraries/Tactical' CONTENT_GAME_DATA_LIBRARIES_2_FILES=' Content/*/Libraries' CONTENT_GAME_DATA_FILES=' Content Development Language Debug.ttf' CONTENT_DOC_DATA_FILES=' OpenSource Readme.txt ThirdPartyLicenses.txt' ## With the default wined3d renderer, some elements of the screen are rendered plain black. ## It can be noticed early as it is triggered by all buttons hover effect. ## Native d3dcompiler_* libraries do not help. ## (WINE 10.0) WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Paradox Interactive/Age of Wonders Planetfall' APP_MAIN_EXE='AowPF.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_LIBRARIES_1 PKG_DATA_LIBRARIES_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_LIBRARIES_1 PKG_DATA_LIBRARIES_2' PKG_DATA_LIBRARIES_ID="${PKG_DATA_ID}-libraries" PKG_DATA_LIBRARIES_1_ID="${PKG_DATA_LIBRARIES_ID}-1" PKG_DATA_LIBRARIES_2_ID="${PKG_DATA_LIBRARIES_ID}-2" PKG_DATA_LIBRARIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - libraries" PKG_DATA_LIBRARIES_1_DESCRIPTION="$PKG_LIBRARIES_DESCRIPTION - 1" PKG_DATA_LIBRARIES_2_DESCRIPTION="$PKG_LIBRARIES_DESCRIPTION - 2" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build package. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-ai-war-2.sh0000755000000000000000000000564714471751340013513 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # AI War 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250123.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ai-war-2' GAME_NAME='AI War 2' ARCHIVE_BASE_2_NAME='ai_war_2_5_615_78653.sh' ARCHIVE_BASE_2_MD5='191ed22d5487288ec8adcb9e5e682307' ARCHIVE_BASE_2_SIZE='3462750' ARCHIVE_BASE_2_VERSION='5.615-gog78653' ARCHIVE_BASE_2_URL='https://www.gog.com/game/ai_war_2' ARCHIVE_BASE_1_NAME='ai_war_2_5_607_75309.sh' ARCHIVE_BASE_1_MD5='cace7c4dc863f420da52b6d6a1818c2f' ARCHIVE_BASE_1_SIZE='3461745' ARCHIVE_BASE_1_VERSION='5.607-gog75309' ARCHIVE_BASE_0_NAME='ai_war_2_4_006_54416.sh' ARCHIVE_BASE_0_MD5='3bbcfa00ea5014d5d6f1258d780c97b0' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='4.006-gog54416' UNITY3D_NAME='AIWar2Linux' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=' ArcenNetworkLib CodeExternal PlayerData ReliableDLLStorage' ## This game seems to use a strange plugins system, so we include its directory as-is. CONTENT_GAME1_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_DATA_FILES=' AIW2ModdingAndGUI AssetBundles_Linux GameData GlobalBundles TotalConversions XMLMods' USER_PERSISTENT_DIRECTORIES=' PlayerData' ## Force the use of the OpenGL renderer, ## as the Vulkan one fails to display anything APP_MAIN_OPTIONS='-force-glcore' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop data files specific to Windows and Mac OS rm --force --recursive \ 'TotalConversions/ExampleTC/AssetBundles_OSX' \ 'TotalConversions/ExampleTC/AssetBundles_Win' \ 'XMLMods/Bonus_Assets/AssetBundles_OSX' \ 'XMLMods/Bonus_Assets/AssetBundles_Win' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-airline-tycoon-deluxe.sh0000755000000000000000000000461714471751340016410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Airline Tycoon Deluxe # send your bug reports to bugs@dotslashplay.it ### script_version=20250123.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='airline-tycoon-deluxe' GAME_NAME='Airline Tycoon Deluxe' ARCHIVE_BASE_0_NAME='gog_airline_tycoon_deluxe_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='dc8b78da150bd3b2089120cc2d24353c' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.08-gog2.0.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/airline_tycoon_deluxe' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib32' ## TODO: Replace this glob by an explicit list of libraries CONTENT_LIBS_BIN_FILES=' *' CONTENT_GAME_BIN_FILES=' ATDeluxe' CONTENT_GAME_L10N_FILES=' de en fr' CONTENT_GAME_DATA_FILES=' gli intro misc room sound video *.bmp' CONTENT_DOC_DATA_FILES=' LICENSE README CHANGELOG' FAKE_HOME_PERSISTENT_DIRECTORIES=' .AirlineTycoonDeluxe' APP_MAIN_EXE='ATDeluxe' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libSDL2-2.0.so.0 libGL.so.1' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-anno-1404.sh0000755000000000000000000002370514471751340013510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Phil Morrell # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Anno 1404 # send your bug reports to bugs@dotslashplay.it ### script_version=20250209.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='anno-1404' GAME_NAME='Anno 1404' GAME_ID_VENICE="${GAME_ID}-venice" GAME_NAME_VENICE="$GAME_NAME - Venice" # Archives ## Single language archives ARCHIVE_BASE_DE_1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(german)_(76234).exe' ARCHIVE_BASE_DE_1_MD5='2fb420a6ff653cfa5c99e69f4b18c917' ARCHIVE_BASE_DE_1_TYPE='innosetup' ARCHIVE_BASE_DE_1_PART1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(german)_(76234)-1.bin' ARCHIVE_BASE_DE_1_PART1_MD5='edaced2fd4e8e61891afe297585c8c79' ARCHIVE_BASE_DE_1_SIZE='4065552' ARCHIVE_BASE_DE_1_VERSION='2.01.5010-gog76234' ARCHIVE_BASE_DE_1_URL='https://www.gog.com/game/anno_1404_gold_edition' ARCHIVE_BASE_EN_1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(76234).exe' ARCHIVE_BASE_EN_1_MD5='d307aae42bcc14f3358732e374f37b85' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(76234)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='7867cd6e09aec40e5f36637884249b0b' ARCHIVE_BASE_EN_1_SIZE='4015390' ARCHIVE_BASE_EN_1_VERSION='2.01.5010-gog76234' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/anno_1404_gold_edition' ARCHIVE_BASE_FR_1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(french)_(76234).exe' ARCHIVE_BASE_FR_1_MD5='45fa9dd36cfb3fc4fc90de9758c16022' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_anno_1404_2.01_v2_gog_0.1_(french)_(76234)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='d632639d4847f91a37f5d37627c23d3e' ARCHIVE_BASE_FR_1_SIZE='3987056' ARCHIVE_BASE_FR_1_VERSION='2.01.5010-gog76234' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/anno_1404_gold_edition' ARCHIVE_BASE_EN_0_NAME='setup_anno_1404_2.01_v2_(30326).exe' ARCHIVE_BASE_EN_0_MD5='5b92b95ddd3a60bff25afaca6531dab3' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_anno_1404_2.01_v2_(30326)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='3bf8dd4469d43392617df7737cebad04' ARCHIVE_BASE_EN_0_SIZE='4100000' ARCHIVE_BASE_EN_0_VERSION='2.01.5010-gog30326' ARCHIVE_BASE_FR_0_NAME='setup_anno_1404_2.01_v2_(french)_(30326).exe' ARCHIVE_BASE_FR_0_MD5='24be40c2f1ce714dcc9c505ed62fcdb2' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_anno_1404_2.01_v2_(french)_(30326)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='d2bbff77601562218b62b53901edd5e7' ARCHIVE_BASE_FR_0_SIZE='4000000' ARCHIVE_BASE_FR_0_VERSION='2.01.5010-gog30326' ## Multi-languages archives ARCHIVE_BASE_MULTILANG_0_NAME='setup_anno_1404_gold_edition_2.01.5010_(13111).exe' ARCHIVE_BASE_MULTILANG_0_MD5='b19333f57c1c15b788e29ff6751dac20' ARCHIVE_BASE_MULTILANG_0_TYPE='innosetup' ARCHIVE_BASE_MULTILANG_0_PART1_NAME='setup_anno_1404_gold_edition_2.01.5010_(13111)-1.bin' ARCHIVE_BASE_MULTILANG_0_PART1_MD5='17933b44bdb2a26d8d82ffbfdc494210' ARCHIVE_BASE_MULTILANG_0_PART2_NAME='setup_anno_1404_gold_edition_2.01.5010_(13111)-2.bin' ARCHIVE_BASE_MULTILANG_0_PART2_MD5='2f71f5378b5f27a84a41cc481a482bd6' ARCHIVE_BASE_MULTILANG_0_SIZE='6200000' ARCHIVE_BASE_MULTILANG_0_VERSION='2.01.5010-gog13111' # Archive contents CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_MULTILANG='app' ## Anno 1404 (base game) CONTENT_GAME_BIN_FILES=' bin tools anno4.exe' ## This file is not fetched from the archive, ## but created later in this script. CONTENT_GAME0_BIN_FILES=' engine.ini' CONTENT_GAME_L10N_DE_FILES=' maindata/ger0.rda' CONTENT_GAME_L10N_EN_FILES=' maindata/eng0.rda' CONTENT_GAME_L10N_FR_FILES=' maindata/fra0.rda' CONTENT_GAME_DATA_FILES=' data maindata resources' CONTENT_DOC_DATA_FILES=' manual.pdf' ## Venice expansion CONTENT_GAME_BIN_VENICE_FILES=' addon.exe' CONTENT_GAME_L10N_DE_VENICE_FILES=' addon/ger0.rda' CONTENT_GAME_L10N_EN_VENICE_FILES=' addon/eng0.rda' CONTENT_GAME_L10N_FR_VENICE_FILES=' addon/fra0.rda' CONTENT_GAME_DATA_VENICE_FILES=' addon' CONTENT_DOC_DATA_FILES=' manual addon.pdf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Ubisoft/Anno1404 users/${USER}/AppData/Roaming/Ubisoft/Anno1404Addon users/${USER}/Documents/Anno 1404' ## Install native Direct3D 9 libraries, ## to prevent the engine from rendering only a black screen ## (WINE 10.0-rc2) WINE_WINETRICKS_VERBS='d3dx9' APP_MAIN_EXE='anno4.exe' APP_VENICE_ID="$GAME_ID_VENICE" APP_VENICE_NAME="$GAME_NAME_VENICE" APP_VENICE_EXE='addon.exe' # Packages ## Anno 1404 (base game) PACKAGES_LIST_DE=' PKG_BIN PKG_L10N_DE PKG_DATA' PACKAGES_LIST_EN=' PKG_BIN PKG_L10N_EN PKG_DATA' PACKAGES_LIST_FR=' PKG_BIN PKG_L10N_FR PKG_DATA' PACKAGES_LIST_MULTILANG=' PKG_BIN PKG_L10N_DE PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_BASE_ID}-de" PKG_L10N_EN_ID="${PKG_L10N_BASE_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DE_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_DE_DESCRIPTION="${PKG_L10N_DESCRIPTION} - German" PKG_L10N_EN_DESCRIPTION="${PKG_L10N_DESCRIPTION} - English" PKG_L10N_FR_DESCRIPTION="${PKG_L10N_DESCRIPTION} - French" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Venice expansion PACKAGES_LIST_DE="$PACKAGES_LIST_DE PKG_BIN_VENICE PKG_L10N_DE_VENICE PKG_DATA_VENICE" PACKAGES_LIST_EN="$PACKAGES_LIST_EN PKG_BIN_VENICE PKG_L10N_EN_VENICE PKG_DATA_VENICE" PACKAGES_LIST_FR="$PACKAGES_LIST_FR PKG_BIN_VENICE PKG_L10N_FR_VENICE PKG_DATA_VENICE" PACKAGES_LIST_MULTILANG="$PACKAGES_LIST_MULTILANG PKG_BIN_VENICE PKG_L10N_DE_VENICE PKG_L10N_EN_VENICE PKG_L10N_FR_VENICE PKG_DATA_VENICE" PKG_BIN_VENICE_ID="$GAME_ID_VENICE" PKG_BIN_VENICE_ARCH='32' PKG_BIN_VENICE_DESCRIPTION="$GAME_NAME_VENICE" PKG_BIN_VENICE_DEPENDENCIES_SIBLINGS=' PKG_BIN PKG_L10N_VENICE_BASE PKG_DATA_VENICE' PKG_L10N_VENICE_BASE_ID="${GAME_ID_VENICE}-l10n" PKG_L10N_DE_VENICE_ID="${PKG_L10N_VENICE_BASE_ID}-de" PKG_L10N_EN_VENICE_ID="${PKG_L10N_VENICE_BASE_ID}-en" PKG_L10N_FR_VENICE_ID="${PKG_L10N_VENICE_BASE_ID}-fr" PKG_L10N_VENICE_PROVIDES=" $PKG_L10N_VENICE_BASE_ID" PKG_L10N_DE_VENICE_PROVIDES="$PKG_L10N_VENICE_PROVIDES" PKG_L10N_EN_VENICE_PROVIDES="$PKG_L10N_VENICE_PROVIDES" PKG_L10N_FR_VENICE_PROVIDES="$PKG_L10N_VENICE_PROVIDES" PKG_L10N_VENICE_DESCRIPTION="$GAME_NAME_VENICE - localization" PKG_L10N_DE_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - German" PKG_L10N_EN_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - English" PKG_L10N_FR_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - French" PKG_DATA_VENICE_ID="${GAME_ID_VENICE}-data" PKG_DATA_VENICE_DESCRIPTION="$GAME_NAME_VENICE - data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set the rendering engine to Direct3D 9 # cf. https://bugs.winehq.org/show_bug.cgi?id=45624 cat > 'engine.ini' <<- EOF 9 EOF ) # Include game data content_inclusion_icons 'PKG_DATA' 'APP_MAIN' content_inclusion_icons 'PKG_DATA_VENICE' 'APP_VENICE' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' 'APP_MAIN' launchers_generation 'PKG_BIN_VENICE' 'APP_VENICE' # Build packages packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_DE_'*) print_instructions 'PKG_BIN' 'PKG_L10N_DE' 'PKG_DATA' ;; ('ARCHIVE_BASE_EN_'*) print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' ;; ('ARCHIVE_BASE_FR_'*) print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' ;; ('ARCHIVE_BASE_MULTILANG_'*) case "$(messages_language)" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_L10N_DE' 'PKG_DATA' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' ;; esac ( GAME_NAME="$GAME_NAME_VENICE" case "$(current_archive)" in ('ARCHIVE_BASE_DE_'*) print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_DE_VENICE' 'PKG_DATA_VENICE' ;; ('ARCHIVE_BASE_EN_'*) print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_EN_VENICE' 'PKG_DATA_VENICE' ;; ('ARCHIVE_BASE_FR_'*) print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_FR_VENICE' 'PKG_DATA_VENICE' ;; ('ARCHIVE_BASE_MULTILANG_'*) case "$(messages_language)" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_DE_VENICE' 'PKG_DATA_VENICE' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_EN_VENICE' 'PKG_DATA_VENICE' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_FR_VENICE' 'PKG_DATA_VENICE' ;; esac ) # Clean up working_directory_cleanup exit 0 games/play-anno-1503.sh0000755000000000000000000000610214471751340013500 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Anno 1503 # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.5 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='anno-1503' GAME_NAME='Anno 1503' ARCHIVE_BASE_EN_0_NAME='setup_anno_1503_2.0.0.5.exe' ARCHIVE_BASE_EN_0_MD5='a7b6aeb2c5f96e2fab12d1ef12f3b4af' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1600000' ARCHIVE_BASE_EN_0_VERSION='3.0.43-gog2.0.0.5' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/anno_1503_ad' ARCHIVE_BASE_FR_0_NAME='setup_anno_1503_french_2.0.0.5.exe' ARCHIVE_BASE_FR_0_MD5='b2ebc98d0dc97350ede75098633bfbd8' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1500000' ARCHIVE_BASE_FR_0_VERSION='3.0.43-gog2.0.0.5' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/anno_1503_ad' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_L10N_FILES=' texte.dat toolgfx/bodenschtze.inc toolgfx/bodenschtze.tex toolgfx/mainmedium8.zei toolgfx/mainmedium.zei.old toolgfx/mainsmall8.zei toolgfx/pk_*.tex toolgfx/startup.tex videos/1001.bik videos/1002.bik videos/1004.bik videos/1005.bik videos/1006.bik videos/1007.bik videos/1009.bik help samples scenes speech' CONTENT_GAME_DATA_FILES=' anlagen.dat figuren*.dat instanthelplinks.txt videos/1000.bik videos/1003.bik videos/1008.bik data music profiles textures toolgfx' CONTENT_DOC_L10N_FILES=' manual.pdf' USER_PERSISTENT_DIRECTORIES=' SaveGame' ## Work around missing background music ## cf. https://bugs.winehq.org/show_bug.cgi?id=16096 ## (WINE 10.0) WINE_WINETRICKS_VERBS='dmime dmsynth dmusic dsound dswave' APP_MAIN_EXE='1503startup.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-anomaly-2.sh0000755000000000000000000001477414471751340013774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Anomaly 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250823.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='anomaly-2' GAME_NAME='Anomaly 2' ARCHIVE_BASE_LINUX_0_NAME='Anomaly2_Linux_1387299615.zip' ARCHIVE_BASE_LINUX_0_MD5='46f0ecd5363106e9eae8642836c29dfc' ARCHIVE_BASE_LINUX_0_SIZE='2500000' ARCHIVE_BASE_LINUX_0_VERSION='1.0-humble1' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/anomaly-2' ARCHIVE_BASE_WINDOWS_0_NAME='Anomaly2_Windows_1387299615.zip' ARCHIVE_BASE_WINDOWS_0_MD5='2b5ccffcbaee8cfebfd4bb74cacb9fbc' ARCHIVE_BASE_WINDOWS_0_SIZE='2500000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-humble1' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/anomaly-2' ARCHIVE_OPTIONAL_ICONS_NAME='anomaly-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='73ddbd1651e08d6c8bb4735e5e0a4a81' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/anomaly-2/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 32x32 48x48 64x64 256x256' CONTENT_PATH_DEFAULT_LINUX='Anomaly 2 Linux DRM-free' CONTENT_PATH_DEFAULT_WINDOWS='Anomaly 2 Windows DRM-free/2013-12-17 03-20' CONTENT_LIBS_BIN_FILES_LINUX=' libopenal.so.1' CONTENT_GAME_BIN_FILES_LINUX=' *.txt Anomaly2' CONTENT_GAME_BIN_FILES_WINDOWS=' *.exe *.dll *.txt' CONTENT_GAME_DATA_FILES=' *.dat *.idx *.str' ## LD_PRELOAD shim working around infinite loading times LD_PRELOAD_SOURCE_LINUX=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Application Data/11bitstudios/Anomaly 2' ## The Linux build triggers a segmentation fault on Mesa ≥ 23.0.0 right after the introduction video: ## ## #0 0x0809744f in ?? () ## #1 0x080938dd in ?? () ## #2 0x080aefee in ?? () ## #3 0x0811fdea in ?? () ## #4 0x0805c9fc in ?? () ## #5 0x08056dc9 in ?? () ## #6 0xf777e8da in __run_exit_handlers (status=, listp=, run_list_atexit=, run_dtors=) at ./stdlib/exit.c:118 ## #7 0xf777eaf1 in __GI_exit (status=1) at ./stdlib/exit.c:148 ## #8 0xf7dee930 in _XDefaultError (event=0xe29fe02c, dpy=0x8502b20) at ../../src/XlibInt.c:1440 ## #9 _XDefaultError (dpy=0x8502b20, event=0xe29fe02c) at ../../src/XlibInt.c:1425 ## #10 0xf7deea58 in _XError (dpy=0x8502b20, rep=0xe29fe0dc) at ../../src/XlibInt.c:1494 ## #11 0xf67c643f in __glXSendError (dpy=0x8502b20, errorCode=10 '\n', resourceID=0, minorCode=5, coreX11error=true) at ../src/glx/glx_error.c:62 ## #12 0xf67c6294 in MakeContextCurrent (dpy=, draw=10485767, read=10485767, gc_user=, opcode=) at ../src/glx/glxcurrent.c:147 ## #13 0xf764b8c6 in InternalMakeCurrentVendor (dpy=dpy@entry=0x8502b20, draw=draw@entry=10485767, read=read@entry=10485767, ctxInfo=0xe33b0380, callerOpcode=5 '\005', threadState=, vendor=0x84dc350) at ../src/GLX/libglx.c:871 ## #14 0xf764c210 in InternalMakeCurrentDispatch (dpy=dpy@entry=0x8502b20, draw=draw@entry=10485767, read=read@entry=10485767, ctxInfo=0xe33b0380, callerOpcode=5 '\005', vendor=0x84dc350) at ../src/GLX/libglx.c:926 ## #15 0xf764d434 in CommonMakeCurrent (dpy=0x8502b20, draw=10485767, read=10485767, context=0xe33006e0, callerOpcode=5 '\005') at ../src/GLX/libglx.c:1070 ## #16 0x080907da in ?? () ## #17 0x0809150f in ?? () ## #18 0x08105d2f in ?? () ## #19 0x08083af4 in ?? () ## #20 0x080834f8 in ?? () ## #21 0xf77d0781 in start_thread (arg=) at ./nptl/pthread_create.c:448 ## #22 0xf7866e38 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111 ## ## This has been reported to Mesa developers, but they decided that they will not provide a fix: ## https://gitlab.freedesktop.org/mesa/mesa/-/issues/12246 ## Their suggestion is to buy the game on Steam (!!) and play it through Proton (!!!). ## ## The following patch, not included in upstream Mesa, might prevent that crash: ## --- a/src/glx/glxcurrent.c ## +++ b/src/glx/glxcurrent.c ## @@ -138,6 +138,11 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, ## __glXSetCurrentContextNull(); ## ## if (gc) { ## + if (gc->currentDpy && gc->currentDpy == dpy) { ## + gc->vtable->unbind(gc); ## + gc->currentDpy = NULL; ## + } ## + ## /* GLX spec 3.3: If ctx is current to some other thread, then ## * glXMakeContextCurrent will generate a BadAccess error ## */ ## ## Support for the Windows build is included as a workaround. APP_MAIN_EXE_LINUX='Anomaly2' APP_MAIN_EXE_WINDOWS='Anomaly 2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-anomaly-defenders.sh0000755000000000000000000001614014471751340015557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Anomaly Defenders # send your bug reports to bugs@dotslashplay.it ### script_version=20250823.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='anomaly-defenders' GAME_NAME='Anomaly Defenders' ARCHIVE_BASE_LINUX_ZIP_0_NAME='AnomalyDefenders_Linux_1402514865.zip' ARCHIVE_BASE_LINUX_ZIP_0_MD5='430367c8228077e4c8af2f5e7f164f4e' ARCHIVE_BASE_LINUX_ZIP_0_SIZE='640000' ARCHIVE_BASE_LINUX_ZIP_0_VERSION='1.0-humble' ARCHIVE_BASE_LINUX_ZIP_0_URL='https://www.humblebundle.com/store/anomaly-defenders' ARCHIVE_BASE_LINUX_TARGZ_0_NAME='AnomalyDefenders_Linux_1402512837.tar.gz' ARCHIVE_BASE_LINUX_TARGZ_0_MD5='35ccd57e8650dd53a09b1f1e088307cc' ARCHIVE_BASE_LINUX_TARGZ_0_SIZE='640000' ARCHIVE_BASE_LINUX_TARGZ_0_VERSION='1.0-humble' ARCHIVE_BASE_LINUX_TARGZ_0_URL='https://www.humblebundle.com/store/anomaly-defenders' ARCHIVE_BASE_WINDOWS_0_NAME='AnomalyDefenders_Windows_Setup_1402514865.exe' ARCHIVE_BASE_WINDOWS_0_MD5='23ebfeaf0c8b9fda0d5ce73f3a33bdae' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='645916' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-humble' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/anomaly-defenders' CONTENT_PATH_DEFAULT_LINUX='AnomalyDefenders' CONTENT_PATH_DEFAULT_WINDOWS='app' CONTENT_LIBS_BIN_FILES_LINUX=' libOpenAL.so' CONTENT_GAME_BIN_FILES_LINUX=' AnomalyDefenders' CONTENT_GAME_BIN_FILES_WINDOWS=' libcurl.dll pctouchhelper.dll anomalydefenders.exe' ## icon.png is only provided by the Linux build. CONTENT_GAME_DATA_FILES=' icon.png *.dat *.idx' ## These documentation files are only provided by the Linux build. CONTENT_DOC_DATA_FILES=' README Copyright license*' ## LD_PRELOAD shim working around infinite loading times LD_PRELOAD_SOURCE_LINUX=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/11bitstudios/Anomaly Defenders' ## The Linux build triggers a segmentation fault on Mesa ≥ 23.0.0 right after the introduction video: ## ## #0 0x0829e6d8 in NameStringManager::ReleaseString(char const*) [clone .constprop.21] () ## #1 0x08193d73 in SoundEntriesContainer::~SoundEntriesContainer() () ## #2 0xf77a78da in __run_exit_handlers (status=, listp=, run_list_atexit=, run_dtors=) at ./stdlib/exit.c:118 ## #3 0xf77a7af1 in __GI_exit (status=1) at ./stdlib/exit.c:148 ## #4 0xf7db7930 in _XDefaultError (event=0xe3eff04c, dpy=0x855fe00) at ../../src/XlibInt.c:1440 ## #5 _XDefaultError (dpy=0x855fe00, event=0xe3eff04c) at ../../src/XlibInt.c:1425 ## #6 0xf7db7a58 in _XError (dpy=0x855fe00, rep=0xe3eff0fc) at ../../src/XlibInt.c:1494 ## #7 0xf753243f in __glXSendError (dpy=0x855fe00, errorCode=10 '\n', resourceID=0, minorCode=5, coreX11error=true) at ../src/glx/glx_error.c:62 ## #8 0xf7532294 in MakeContextCurrent (dpy=, draw=10485767, read=10485767, gc_user=, opcode=) at ../src/glx/glxcurrent.c:147 ## #9 0xf76b38c6 in InternalMakeCurrentVendor (dpy=dpy@entry=0x855fe00, draw=draw@entry=10485767, read=read@entry=10485767, ctxInfo=0xe3fb03c0, callerOpcode=5 '\005', threadState=, vendor=0x84ef030) at ../src/GLX/libglx.c:871 ## #10 0xf76b4210 in InternalMakeCurrentDispatch (dpy=dpy@entry=0x855fe00, draw=draw@entry=10485767, read=read@entry=10485767, ctxInfo=0xe3fb03c0, callerOpcode=5 '\005', vendor=0x84ef030) at ../src/GLX/libglx.c:926 ## #11 0xf76b5434 in CommonMakeCurrent (dpy=0x855fe00, draw=10485767, read=10485767, context=0xe3f00720, callerOpcode=5 '\005') at ../src/GLX/libglx.c:1070 ## #12 0x0805c1c5 in LinuxStandaloneGame::_SetGLContext(LinuxStandaloneGame::LxThread) () ## #13 0x0805d257 in SetGLContextPresenterThread() () ## #14 0x080e5a87 in LiquidRendererPresenterThread::_OnProcessMessage(MessageHeader*) () ## #15 0x082a91f4 in BaseThread::_ProcessMessageQueue() () ## #16 0x082a8bcc in BaseThread::ThreadCodeDispatch(void*) () ## #17 0xf77f9781 in start_thread (arg=) at ./nptl/pthread_create.c:448 ## #18 0xf788fe38 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111 ## ## This has been reported to Mesa developers, but they decided that they will not provide a fix: ## https://gitlab.freedesktop.org/mesa/mesa/-/issues/12246 ## Their suggestion is to buy the game on Steam (!!) and play it through Proton (!!!). ## ## The following patch, not included in upstream Mesa, might prevent that crash: ## --- a/src/glx/glxcurrent.c ## +++ b/src/glx/glxcurrent.c ## @@ -138,6 +138,11 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw, ## __glXSetCurrentContextNull(); ## ## if (gc) { ## + if (gc->currentDpy && gc->currentDpy == dpy) { ## + gc->vtable->unbind(gc); ## + gc->currentDpy = NULL; ## + } ## + ## /* GLX spec 3.3: If ctx is current to some other thread, then ## * glXMakeContextCurrent will generate a BadAccess error ## */ ## ## Support for the Windows build is included as a workaround. APP_MAIN_EXE_LINUX='AnomalyDefenders' APP_MAIN_EXE_WINDOWS='anomalydefenders.exe' APP_MAIN_ICON_LINUX='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' ## Ensure easy upgrades from packages generated with pre-20250123.1 game scripts PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} anomaly-defenders" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-anomaly-warzone-earth.sh0000755000000000000000000000703314471751340016407 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Anomaly: Warzone Earth # send your bug reports to bugs@dotslashplay.it ### script_version=20250823.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='anomaly-warzone-earth' GAME_NAME='Anomaly: Warzone Earth' ARCHIVE_BASE_GOG_0_NAME='gog_anomaly_warzone_earth_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='37b96b44b2dafde64ab364a11dcf9ad8' ARCHIVE_BASE_GOG_0_SIZE='440000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/anomaly_warzone_earth' ARCHIVE_BASE_HUMBLE_1_NAME='AnomalyWarzoneEarth-Installer_Humble_Linux_1364850491.zip' ARCHIVE_BASE_HUMBLE_1_MD5='acf5147293b42c7625aea6ad0e56afc4' ARCHIVE_BASE_HUMBLE_1_SIZE='870000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.0-humble2' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/anomaly-warzone-earth' ARCHIVE_BASE_HUMBLE_0_NAME='AnomalyWarzoneEarth-Installer' ARCHIVE_BASE_HUMBLE_0_MD5='36d3fb101ab7c674d475b8f0b59d5e68' ARCHIVE_BASE_HUMBLE_0_SIZE='440000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN_FILES=' AnomalyWarzoneEarth' CONTENT_GAME_DATA_FILES=' icon.png *.idx *.dat' CONTENT_DOC_DATA_FILES=' README Copyright*' ## LD_PRELOAD shim working around infinite loading times LD_PRELOAD_SOURCE=' #define _GNU_SOURCE #include #include #include #include #include static int (*_realSemTimedWait)(sem_t *, const struct timespec *) = NULL; int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout) { if (abs_timeout->tv_nsec >= 1000000000) { ((struct timespec *)abs_timeout)->tv_nsec -= 1000000000; ((struct timespec *)abs_timeout)->tv_sec++; } return _realSemTimedWait(sem, abs_timeout); } __attribute__((constructor)) void init(void) { _realSemTimedWait = dlsym(RTLD_NEXT, "sem_timedwait"); } ' APP_MAIN_EXE='AnomalyWarzoneEarth' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_1') ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/AnomalyWarzoneEarth-Installer" ## This MojoSetup installer is not using a Makeself wrapper. ARCHIVE_INNER_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER' rm "$(archive_path 'ARCHIVE_INNER')" ;; esac # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-aquamarine.sh0000755000000000000000000000604014471751340014303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Aquamarine # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='aquamarine' GAME_NAME='Aquamarine' ARCHIVE_BASE_7_NAME='aquamarine_2_1_1_71763.sh' ARCHIVE_BASE_7_MD5='c875b669a6fafab88361e34cf9e28ec9' ARCHIVE_BASE_7_SIZE='1152842' ARCHIVE_BASE_7_VERSION='2.1.1-gog71763' ARCHIVE_BASE_7_URL='https://www.gog.com/game/aquamarine' ARCHIVE_BASE_6_NAME='aquamarine_1_0_8_5_54515.sh' ARCHIVE_BASE_6_MD5='7978066a0495d061245c4ae23c968874' ARCHIVE_BASE_6_SIZE='726340' ARCHIVE_BASE_6_VERSION='1.0.8.5-gog54515' ARCHIVE_BASE_5_NAME='aquamarine_1_0_8_4_54429.sh' ARCHIVE_BASE_5_MD5='bdec12ffb5efb87a4cf6187ae204c9a2' ARCHIVE_BASE_5_SIZE='730000' ARCHIVE_BASE_5_VERSION='1.0.8.4-gog54429' ARCHIVE_BASE_4_NAME='aquamarine_1_0_8_3_54388.sh' ARCHIVE_BASE_4_MD5='58a324f7ee185f7ee2d73724d1aa8806' ARCHIVE_BASE_4_SIZE='730000' ARCHIVE_BASE_4_VERSION='1.0.8.3-gog54388' ARCHIVE_BASE_3_NAME='aquamarine_1_0_7_4_54070.sh' ARCHIVE_BASE_3_MD5='00a23ecfa6d19d1c7d27b4baf06ebfe1' ARCHIVE_BASE_3_SIZE='650000' ARCHIVE_BASE_3_VERSION='1.0.7.4-gog54070' ARCHIVE_BASE_2_NAME='aquamarine_1_0_6_53400.sh' ARCHIVE_BASE_2_MD5='2182230847d3d09a813ae7bdbc7b3b25' ARCHIVE_BASE_2_SIZE='810000' ARCHIVE_BASE_2_VERSION='1.0.6-gog53400' ARCHIVE_BASE_1_NAME='aquamarine_1_0_2_53166.sh' ARCHIVE_BASE_1_MD5='f9698d39f38b31ed45fbacb807522c1e' ARCHIVE_BASE_1_SIZE='810000' ARCHIVE_BASE_1_VERSION='1.0.2-gog53166' ARCHIVE_BASE_0_NAME='aquamarine_1_0_0_53074.sh' ARCHIVE_BASE_0_MD5='c4ca19389d9fe833a009f457684671d1' ARCHIVE_BASE_0_SIZE='810000' ARCHIVE_BASE_0_VERSION='1.0.0-gog53074' UNITY3D_NAME='Aquamarine' UNITY3D_PLUGINS=' libfmodstudio.so libresonanceaudio.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-as-far-as-the-eye.sh0000755000000000000000000000365214471751340015276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # As Far As The Eye # send your bug reports to bugs@dotslashplay.it ### script_version=20250123.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='as-far-as-the-eye' GAME_NAME='As Far As The Eye' ARCHIVE_BASE_0_NAME='as_far_as_the_eye_1_1_1_44514.sh' ARCHIVE_BASE_0_MD5='577c7175488d34cbcf374bbbce720921' ARCHIVE_BASE_0_SIZE='890000' ARCHIVE_BASE_0_VERSION='1.1.1-gog44514' ARCHIVE_BASE_0_URL='https://www.gog.com/game/as_far_as_the_eye' UNITY3D_NAME='AFATE' ## No shipped plugin should be included. UNITY3D_PLUGINS=' ' CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/A FATE' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ash-of-gods.sh0000755000000000000000000000412614471751340014272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Ash of Gods # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='ash-of-gods' GAME_NAME='Ash of Gods: Redemption' ARCHIVE_BASE_0_NAME='ash_of_gods_1_4_39_25313.sh' ARCHIVE_BASE_0_MD5='a2e609b21ac81df1ecb9c74df5806087' ARCHIVE_BASE_0_SIZE='3513836' ARCHIVE_BASE_0_VERSION='1.4.39-gog25313' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ash_of_gods' UNITY3D_NAME='terminus' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-aven-colony.sh0000755000000000000000000000603114471751340014412 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Aven Colony # send your bug reports to bugs@dotslashplay.it ### script_version=20250123.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='aven-colony' GAME_NAME='Aven Colony' ARCHIVE_BASE_0_NAME='setup_aven_colony_1.0.1_(64bit)_(25959).exe' ARCHIVE_BASE_0_MD5='959a44c1bb18e8c3342b10d396ae8a53' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_aven_colony_1.0.1_(64bit)_(25959)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f24fb8c38d99916a623c46aafc4eeeb' ARCHIVE_BASE_0_PART2_NAME='setup_aven_colony_1.0.1_(64bit)_(25959)-2.bin' ARCHIVE_BASE_0_PART2_MD5='db96cef3e5ce8e2f160b703d6d81777b' ARCHIVE_BASE_0_PART3_NAME='setup_aven_colony_1.0.1_(64bit)_(25959)-3.bin' ARCHIVE_BASE_0_PART3_MD5='0ab31c5b95332e6ab160f55c5fbe0db3' ARCHIVE_BASE_0_PART4_NAME='setup_aven_colony_1.0.1_(64bit)_(25959)-4.bin' ARCHIVE_BASE_0_PART4_MD5='2537b2db5c65a3b1ded96e938a864c52' ARCHIVE_BASE_0_SIZE='15000000' ARCHIVE_BASE_0_VERSION='1.0.25697-gog25959' ARCHIVE_BASE_0_URL='https://www.gog.com/game/aven_colony' UNREALENGINE4_NAME='avencolony' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_TILESETS_1_FILES=" ${UNREALENGINE4_NAME}/content/granitesdk/importedtilesets/city-*" CONTENT_GAME_DATA_TILESETS_2_FILES=" ${UNREALENGINE4_NAME}/content/granitesdk/importedtilesets" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA_TILESETS_1 PKG_DATA_TILESETS_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_TILESETS_1 PKG_DATA_TILESETS_2' PKG_DATA_TILESETS_ID="${PKG_DATA_ID}-tilesets" PKG_DATA_TILESETS_1_ID="${PKG_DATA_TILESETS_ID}-1" PKG_DATA_TILESETS_2_ID="${PKG_DATA_TILESETS_ID}-2" PKG_DATA_TILESETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - tilesets" PKG_DATA_TILESETS_1_DESCRIPTION="$PKG_TILESETS_DESCRIPTION - 1" PKG_DATA_TILESETS_2_DESCRIPTION="$PKG_TILESETS_DESCRIPTION - 2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Installing Visual C++ 2019 libraries can cause problems with this game wine_winetricks_verbs() { true ; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-banished.sh0000755000000000000000000000462114471751340013740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Banished # send your bug reports to bugs@dotslashplay.it ### script_version=20251020.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='banished' GAME_NAME='Banished' ARCHIVE_BASE_64BIT_0_NAME='setup_banished_64_1.0.7_(14938).exe' ARCHIVE_BASE_64BIT_0_MD5='463b2720c5c88c28f24de9176b8b1ec4' ARCHIVE_BASE_64BIT_0_TYPE='innosetup' ARCHIVE_BASE_64BIT_0_SIZE='190000' ARCHIVE_BASE_64BIT_0_VERSION='1.0.7-gog14938' ARCHIVE_BASE_64BIT_0_URL='https://www.gog.com/game/banished' ARCHIVE_BASE_32BIT_0_NAME='setup_banished_32_1.0.7_(14938).exe' ARCHIVE_BASE_32BIT_0_MD5='43042701a692f186d467b97e966fb846' ARCHIVE_BASE_32BIT_0_TYPE='innosetup' ARCHIVE_BASE_32BIT_0_SIZE='190000' ARCHIVE_BASE_32BIT_0_VERSION='1.0.7-gog14938' ARCHIVE_BASE_32BIT_0_URL='https://www.gog.com/game/banished' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES_64BIT=' runtime-x64.dll videodx9-x64.dll videodx11-x64.dll application-x64.exe' CONTENT_GAME_BIN_FILES_32BIT=' runtime-x32.dll videodx9-x32.dll videodx11-x32.dll application-x32.exe' CONTENT_GAME_DATA_FILES=' windata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Banished' APP_MAIN_EXE_64BIT='application-x64.exe' APP_MAIN_EXE_32BIT='application-x32.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-battle-worlds-kronos.sh0000755000000000000000000000465514471751340016266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Battle Worlds: Kronos # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='battle-worlds-kronos' GAME_NAME='Battle Worlds: Kronos' ARCHIVE_BASE_0_NAME='gog_battle_worlds_kronos_2.1.0.6.sh' ARCHIVE_BASE_0_MD5='4d7f9e05524ff6b85139df903dbcb74b' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.4.3-gog2.1.0.6' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battle_worlds_kronos' UNITY3D_NAME='BattleWorldsKronos' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' version' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-battlefleet-gothic-armada-1.sh0000755000000000000000000000432114471751340017307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Battlefleet Gothic: Armada # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='battlefleet-gothic-armada-1' GAME_NAME='Battlefleet Gothic: Armada' ARCHIVE_BASE_0_NAME='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732).exe' ARCHIVE_BASE_0_MD5='74271753f6cba4385e50c3f8c05b32da' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732)-1.bin' ARCHIVE_BASE_0_PART1_MD5='bea83722e900a3253ca68600723e5853' ARCHIVE_BASE_0_PART2_NAME='setup_battlefleet_gothic_armada_1.0.12_(64bit)_(41732)-2.bin' ARCHIVE_BASE_0_PART2_MD5='246e012f15d4bcbbac9a024f1b6816a6' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.0.12-gog41732' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battlefleet_gothic_armada_1' UNREALENGINE4_NAME='battlefleetgothic' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_BIN_FILES=" ${UNREALENGINE4_NAME}/version.bfgver" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bear-and-breakfast.sh0000755000000000000000000000414214471751340015572 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Bear and Breakfast # send your bug reports to bugs@dotslashplay.it ### script_version=20250114.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='bear-and-breakfast' GAME_NAME='Bear and Breakfast' ARCHIVE_BASE_1_NAME='setup_bear_and_breakfast_1.8.29_(64bit)_(78616).exe' ARCHIVE_BASE_1_MD5='79ff1d75fbba105e26596e2f95e3b4ea' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1339579' ARCHIVE_BASE_1_VERSION='1.8.29-gog78616' ARCHIVE_BASE_1_URL='https://www.gog.com/en/game/bear_and_breakfast' ARCHIVE_BASE_0_NAME='setup_bear_and_breakfast_1.7.3_(64bit)_(63113).exe' ARCHIVE_BASE_0_MD5='fe6328ca58e77fde90a595d81ae56954' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.7.3-gog63113' UNITY3D_NAME='bearandbreakfast' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GummyCat/BearAndBreakfast' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-beholder-series.sh0000755000000000000000000000663514471751340015246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Beholder series: # - Beholder # - Beholder 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_BEHOLDER1='beholder-1' GAME_NAME_BEHOLDER1='Beholder' GAME_ID_BEHOLDER2='beholder-2' GAME_NAME_BEHOLDER2='Beholder 2' ## This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_BEHOLDER1_0_NAME='BeholderLinux_v1.3.0.9120.zip' ARCHIVE_BASE_BEHOLDER1_0_MD5='580a52329b99c701acf3b3665068c6c6' ARCHIVE_BASE_BEHOLDER1_0_SIZE='1781531' ARCHIVE_BASE_BEHOLDER1_0_VERSION='1.3.0.9120-humble1' ARCHIVE_BASE_BEHOLDER2_0_NAME='beholder_2_1_1_13306_25983.sh' ARCHIVE_BASE_BEHOLDER2_0_MD5='af3cb735132ee4fbc17079b932d72dd6' ARCHIVE_BASE_BEHOLDER2_0_SIZE='3700000' ARCHIVE_BASE_BEHOLDER2_0_VERSION='1.1.13306-gog25983' ARCHIVE_BASE_BEHOLDER2_0_URL='https://www.gog.com/game/beholder_2' UNITY3D_NAME_BEHOLDER1='Beholder' UNITY3D_NAME_BEHOLDER2='Beholder2' UNITY3D_PLUGINS_BEHOLDER1=' ScreenSelector.so' CONTENT_PATH_DEFAULT_BEHOLDER1='BeholderLinux_v1.3.0.9120' ## FIXME: The list of Unity3D plugins to include should be set with UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES_BEHOLDER2=" ${UNITY3D_NAME_BEHOLDER2}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES_BEHOLDER2=" ${UNITY3D_NAME_BEHOLDER2}_Data/Plugins/x86" CONTENT_GAME0_DATA_FILES_BEHOLDER2=' hashes.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER1=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' ## TODO: This list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER2=' libc.so.6 libstdc++.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libz.so.1' ## Easier upgrades from packages pre-20241111.1 packages PKG_BIN_PROVIDES_BEHOLDER1=' beholder' PKG_DATA_ID_BEHOLDER1="${GAME_ID_BEHOLDER1}-data" PKG_DATA_ID_BEHOLDER2="${GAME_ID_BEHOLDER2}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from packages pre-20241111.1 packages PKG_DATA_PROVIDES_BEHOLDER1=' beholder-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-book-of-hours-expansions.sh0000755000000000000000000001215514471751340017043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Book of Hours expansions: # - Perpetual Edition # - House of Light # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='book-of-hours' GAME_NAME='Book of Hours' EXPANSION_ID_PERPETUAL='perpetual-edition' EXPANSION_NAME_PERPETUAL='Perpetual Edition' EXPANSION_ID_LIGHT='house-of-light' EXPANSION_NAME_LIGHT='House of Light' # Archives ## Perpetual Edition ARCHIVE_BASE_PERPETUAL_14_NAME='book_of_hours_perpetual_edition_dlc_2024_12_m_5_78248.sh' ARCHIVE_BASE_PERPETUAL_14_MD5='9e6f91b10fed81668deea7c04c0739e7' ARCHIVE_BASE_PERPETUAL_14_SIZE='923' ARCHIVE_BASE_PERPETUAL_14_VERSION='2024.12.m.5-gog78248' ARCHIVE_BASE_PERPETUAL_13_NAME='book_of_hours_perpetual_edition_dlc_2024_11_k_1_77536.sh' ARCHIVE_BASE_PERPETUAL_13_MD5='73102bfa896fcb1f73db07aa202feed3' ARCHIVE_BASE_PERPETUAL_13_SIZE='923' ARCHIVE_BASE_PERPETUAL_13_VERSION='2024.11.k.1-gog77536' ARCHIVE_BASE_PERPETUAL_12_NAME='book_of_hours_perpetual_edition_dlc_2024_10_j_14_77218.sh' ARCHIVE_BASE_PERPETUAL_12_MD5='00a3bc29ebc84b5a77aadd53e1c549f5' ARCHIVE_BASE_PERPETUAL_12_SIZE='923' ARCHIVE_BASE_PERPETUAL_12_VERSION='2024.10.j.14-gog77218' ARCHIVE_BASE_PERPETUAL_10_NAME='book_of_hours_perpetual_edition_dlc_2024_9_i_8_76549.sh' ARCHIVE_BASE_PERPETUAL_10_MD5='169aa03df406345a720776756cd9e931' ARCHIVE_BASE_PERPETUAL_10_SIZE='923' ARCHIVE_BASE_PERPETUAL_10_VERSION='2024.09.i.8-gog76549' ARCHIVE_BASE_PERPETUAL_8_NAME='book_of_hours_perpetual_edition_content_2024_3_e_15_72083.sh' ARCHIVE_BASE_PERPETUAL_8_MD5='2b21b55d6889a4c18ae57cbb1b22cb04' ARCHIVE_BASE_PERPETUAL_8_SIZE='75087' ARCHIVE_BASE_PERPETUAL_8_VERSION='2024.03.e.15-gog72083' ARCHIVE_BASE_PERPETUAL_7_NAME='book_of_hours_perpetual_edition_content_2024_2_e_11_71531.sh' ARCHIVE_BASE_PERPETUAL_7_MD5='a120f5371c1297a8ae13095b7ee3ccdb' ARCHIVE_BASE_PERPETUAL_7_SIZE='75087' ARCHIVE_BASE_PERPETUAL_7_VERSION='2024.02.e.11-gog71531' ARCHIVE_BASE_PERPETUAL_6_NAME='book_of_hours_perpetual_edition_content_2023_12_d_12_69519.sh' ARCHIVE_BASE_PERPETUAL_6_MD5='77796819b6f4a466fed0638fcb685412' ARCHIVE_BASE_PERPETUAL_6_SIZE='75408' ARCHIVE_BASE_PERPETUAL_6_VERSION='2023.12.d.12-gog69519' ARCHIVE_BASE_PERPETUAL_3_NAME='book_of_hours_perpetual_edition_content_2023_11_d_4_69228.sh' ARCHIVE_BASE_PERPETUAL_3_MD5='d5bb3e49df9b8c142ac25aed53c78d01' ARCHIVE_BASE_PERPETUAL_3_SIZE='75404' ARCHIVE_BASE_PERPETUAL_3_VERSION='2023.11.d.4-gog69228' ARCHIVE_BASE_PERPETUAL_2_NAME='book_of_hours_perpetual_edition_content_2023_10_c_11_68174.sh' ARCHIVE_BASE_PERPETUAL_2_MD5='0be5366899fdd4f209153a2671ca87ba' ARCHIVE_BASE_PERPETUAL_2_SIZE='75404' ARCHIVE_BASE_PERPETUAL_2_VERSION='2023.10.c.11-gog68174' ARCHIVE_BASE_PERPETUAL_1_NAME='book_of_hours_perpetual_edition_content_2023_9_b_12_67790.sh' ARCHIVE_BASE_PERPETUAL_1_MD5='a0eafa7c516ad47b0c58e9af037b99b1' ARCHIVE_BASE_PERPETUAL_1_SIZE='75408' ARCHIVE_BASE_PERPETUAL_1_VERSION='2023.09.b.12-gog67790' ARCHIVE_BASE_PERPETUAL_0_NAME='book_of_hours_perpetual_edition_content_2023_8_g_2_67165.sh' ARCHIVE_BASE_PERPETUAL_0_MD5='c426a4968539633c0d0959744ea3d671' ARCHIVE_BASE_PERPETUAL_0_SIZE='75408' ARCHIVE_BASE_PERPETUAL_0_VERSION='2023.08.g.2-gog67165' ## House of Light ARCHIVE_BASE_LIGHT_14_NAME='book_of_hours_house_of_light_2024_12_m_5_78248.sh' ARCHIVE_BASE_LIGHT_14_MD5='53d1d93cf7b27ae023ecb18038c182bf' ARCHIVE_BASE_LIGHT_14_SIZE='5200' ARCHIVE_BASE_LIGHT_14_VERSION='2024.12.m.5-gog78248' ARCHIVE_BASE_LIGHT_14_URL='https://www.gog.com/game/book_of_hours_house_of_light' ARCHIVE_BASE_LIGHT_13_NAME='book_of_hours_house_of_light_2024_11_k_1_77536.sh' ARCHIVE_BASE_LIGHT_13_MD5='ce5306c17782fe048218bdafd4543d6e' ARCHIVE_BASE_LIGHT_13_SIZE='3330' ARCHIVE_BASE_LIGHT_13_VERSION='2024.11.k.1-gog77536' ARCHIVE_BASE_LIGHT_12_NAME='book_of_hours_house_of_light_2024_10_j_14_77218.sh' ARCHIVE_BASE_LIGHT_12_MD5='d87df808a25ca1bb01e1f2e7f2c30622' ARCHIVE_BASE_LIGHT_12_SIZE='3320' ARCHIVE_BASE_LIGHT_12_VERSION='2024.10.j.14-gog77218' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES_PERPETUAL=' bh_Data/StreamingAssets/edition/semper.txt' CONTENT_GAME_MAIN_FILES_LIGHT=' bh_Data/*/DLC_HOL_*' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-book-of-hours.sh0000755000000000000000000001000514471751340014646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Book of Hours # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='book-of-hours' GAME_NAME='Book of Hours' ARCHIVE_BASE_17_NAME='book_of_hours_2024_12_m_5_78248.sh' ARCHIVE_BASE_17_MD5='e11bf31073b691d65e64f68b8dc30ee2' ARCHIVE_BASE_17_SIZE='2495307' ARCHIVE_BASE_17_VERSION='2024.12.m.5-gog78248' ARCHIVE_BASE_17_URL='https://www.gog.com/game/book_of_hours' ARCHIVE_BASE_16_NAME='book_of_hours_2024_11_k_1_77536.sh' ARCHIVE_BASE_16_MD5='2eb3f24916e026060340266ffdab10a8' ARCHIVE_BASE_16_SIZE='2495679' ARCHIVE_BASE_16_VERSION='2024.11.k.1-gog77536' ARCHIVE_BASE_15_NAME='book_of_hours_2024_10_j_14_77218.sh' ARCHIVE_BASE_15_MD5='ede5fbd4a0fab2ed561170ef60019664' ARCHIVE_BASE_15_SIZE='2495637' ARCHIVE_BASE_15_VERSION='2024.10.j.14-gog77218' ARCHIVE_BASE_13_NAME='book_of_hours_2024_9_i_8_76549.sh' ARCHIVE_BASE_13_MD5='868e191034df3652eef1cbe096a2a9ba' ARCHIVE_BASE_13_SIZE='2465383' ARCHIVE_BASE_13_VERSION='2024.09.i.8-gog76549' ARCHIVE_BASE_11_NAME='book_of_hours_2024_7_f_15_74868.sh' ARCHIVE_BASE_11_MD5='48d1d37e95221d38f45bb5fdfe05a296' ARCHIVE_BASE_11_SIZE='2486574' ARCHIVE_BASE_11_VERSION='2024.07.f.15-gog74868' ARCHIVE_BASE_10_NAME='book_of_hours_2024_3_e_17_72226.sh' ARCHIVE_BASE_10_MD5='c4185397829ad4d98a7fa25eddd24235' ARCHIVE_BASE_10_SIZE='2028310' ARCHIVE_BASE_10_VERSION='2024.03.e.17-gog72226' ARCHIVE_BASE_8_NAME='book_of_hours_2024_2_e_11_71531.sh' ARCHIVE_BASE_8_MD5='253b536e020ae39d617cc0746be3d5ee' ARCHIVE_BASE_8_SIZE='1998185' ARCHIVE_BASE_8_VERSION='2024.02.e.11-gog71531' ARCHIVE_BASE_7_NAME='book_of_hours_2023_12_d_12_69519.sh' ARCHIVE_BASE_7_MD5='f99ac227e448683eb9cb9586e0d43cc8' ARCHIVE_BASE_7_SIZE='1938644' ARCHIVE_BASE_7_VERSION='2023.12.d.12-gog69519' ARCHIVE_BASE_4_NAME='book_of_hours_2023_11_d_4_69228.sh' ARCHIVE_BASE_4_MD5='f0dfed821caeb83d795a176dd9571281' ARCHIVE_BASE_4_SIZE='1934820' ARCHIVE_BASE_4_VERSION='2023.11.d.4-gog69228' ARCHIVE_BASE_3_NAME='book_of_hours_2023_10_c_11_68174.sh' ARCHIVE_BASE_3_MD5='958bd653dd8a2453c9920ab60fc96e29' ARCHIVE_BASE_3_SIZE='1932668' ARCHIVE_BASE_3_VERSION='2023.10.c.11-gog68174' ARCHIVE_BASE_2_NAME='book_of_hours_2023_9_b_12_67790.sh' ARCHIVE_BASE_2_MD5='2875c037ee2ff44b41191471449248a1' ARCHIVE_BASE_2_SIZE='1930344' ARCHIVE_BASE_2_VERSION='2023.09.b.12-gog67790' ARCHIVE_BASE_1_NAME='book_of_hours_2023_8_g_2_67165.sh' ARCHIVE_BASE_1_MD5='4d6c689f68c4debb4ad68a3dc1c018b5' ARCHIVE_BASE_1_SIZE='1927812' ARCHIVE_BASE_1_VERSION='2023.08.g.2-gog67165' UNITY3D_NAME='bh' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Prevent the inclusion of Steam libraries rm --force --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-braveland-series.sh0000755000000000000000000001075414471751340015415 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Braveland games: # - Braveland # - Braveland Wizard # - Braveland Pirate # send your bug reports to bugs@dotslashplay.it ### script_version=20250125.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_BRAVELAND='braveland' GAME_NAME_BRAVELAND='Braveland' GAME_ID_WIZARD='braveland-wizard' GAME_NAME_WIZARD='Braveland Wizard' GAME_ID_PIRATE='braveland-pirate' GAME_NAME_PIRATE='Braveland Pirate' # Archives ## Braveland (original game) ARCHIVE_BASE_BRAVELAND_1_NAME='braveland_en_1_4_0_19_18418.sh' ARCHIVE_BASE_BRAVELAND_1_MD5='7ceac41f0486310c04ec60fcdf7e2b46' ARCHIVE_BASE_BRAVELAND_1_SIZE='320000' ARCHIVE_BASE_BRAVELAND_1_VERSION='1.4.0.19-gog18418' ARCHIVE_BASE_BRAVELAND_1_URL='https://www.gog.com/game/braveland' ARCHIVE_BASE_BRAVELAND_0_NAME='gog_braveland_2.1.0.8.sh' ARCHIVE_BASE_BRAVELAND_0_MD5='c60ac5170e53a7ed22fda6a3e6ce690e' ARCHIVE_BASE_BRAVELAND_0_SIZE='320000' ARCHIVE_BASE_BRAVELAND_0_VERSION='1.3.2.18-gog2.1.0.8' ## Braveland Wizard ARCHIVE_BASE_WIZARD_2_NAME='braveland_wizard_en_1_1_4_14_19675.sh' ARCHIVE_BASE_WIZARD_2_MD5='79fa2c8280b8b3370d85fc32907e2b51' ARCHIVE_BASE_WIZARD_2_SIZE='450000' ARCHIVE_BASE_WIZARD_2_VERSION='1.1.4.14-gog19675' ARCHIVE_BASE_WIZARD_2_URL='https://www.gog.com/game/braveland_wizard' ARCHIVE_BASE_WIZARD_1_NAME='braveland_wizard_en_1_1_3_13_18418.sh' ARCHIVE_BASE_WIZARD_1_MD5='7153da6ceb0deda556ebdb7cfa4b9203' ARCHIVE_BASE_WIZARD_1_SIZE='450000' ARCHIVE_BASE_WIZARD_1_VERSION='1.1.3.13-gog18418' ARCHIVE_BASE_WIZARD_0_NAME='gog_braveland_wizard_2.1.0.4.sh' ARCHIVE_BASE_WIZARD_0_MD5='14346dc8d6e7ad410dd1b179763aa94e' ARCHIVE_BASE_WIZARD_0_SIZE='450000' ARCHIVE_BASE_WIZARD_0_VERSION='1.1.1.11-gog2.1.0.4' ## Braveland Pirate ARCHIVE_BASE_PIRATE_2_NAME='braveland_pirate_en_1_1_1_10_19675.sh' ARCHIVE_BASE_PIRATE_2_MD5='660ad8cd6eef0f7bd1eadcacf1c611c0' ARCHIVE_BASE_PIRATE_2_SIZE='610000' ARCHIVE_BASE_PIRATE_2_VERSION='1.1.1.10-gog19675' ARCHIVE_BASE_PIRATE_2_URL='https://www.gog.com/game/braveland_pirate' ARCHIVE_BASE_PIRATE_1_NAME='braveland_pirate_en_1_1_0_9_18418.sh' ARCHIVE_BASE_PIRATE_1_MD5='445b705cc11b58fd289064aa78ef9210' ARCHIVE_BASE_PIRATE_1_SIZE='610000' ARCHIVE_BASE_PIRATE_1_VERSION='1.1.0.9-gog18418' ARCHIVE_BASE_PIRATE_0_NAME='gog_braveland_pirate_2.1.0.3.sh' ARCHIVE_BASE_PIRATE_0_MD5='982331936f2767daf1974c1686ec0bd3' ARCHIVE_BASE_PIRATE_0_SIZE='610000' ARCHIVE_BASE_PIRATE_0_VERSION='1.0.2.7-gog2.1.0.4' # Archives content CONTENT_PATH_DEFAULT='data/noarch/game' UNITY3D_NAME_BRAVELAND='Braveland' UNITY3D_NAME_WIZARD='Braveland Wizard' UNITY3D_NAME_PIRATE='Braveland Pirate' UNITY3D_PLUGINS=' ScreenSelector.so' # Packages PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID_BRAVELAND="${GAME_ID_BRAVELAND}-data" PKG_DATA_ID_WIZARD="${GAME_ID_WIZARD}-data" PKG_DATA_ID_PIRATE="${GAME_ID_PIRATE}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-breach-and-clear-series.sh0000755000000000000000000000721614471751340016526 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 HS-157 set -o errexit ### # Breach & Clear series: # - Breach & Clear # - Breach & Clear: Deadline # send your bug reports to bugs@dotslashplay.it ### script_version=20251019.1 PLAYIT_COMPATIILITY_LEVEL='2.33' GAME_ID_ORIGINAL='breach-and-clear-1' GAME_NAME_ORIGINAL='Breach & Clear' GAME_ID_DEADLINE='breach-and-clear-2' GAME_NAME_DEADLINE='Breach & Clear: Deadline' ## Breach & Clear ARCHIVE_BASE_ORIGINAL_HUMBLE_0_NAME='BncNix_12_4_15_NODRM.rar' ARCHIVE_BASE_ORIGINAL_HUMBLE_0_MD5='a2eff200bdce1b96852d2b709614d17a' ARCHIVE_BASE_ORIGINAL_HUMBLE_0_SIZE='2500000' ARCHIVE_BASE_ORIGINAL_HUMBLE_0_VERSION='2.1.1-humble1' ARCHIVE_BASE_ORIGINAL_HUMBLE_0_URL='https://www.humblebundle.com/store/breach-clear' ## This archive is no longer available for sale from gog.com, starting on 2024-09-13 ## cf. https://www.gog.com/forum/general/delisting_breach_clear_will_be_removed_from_the_store_on_september_13th/post1 ARCHIVE_BASE_ORIGINAL_GOG_0_NAME='gog_breach_clear_2.0.0.3.sh' ARCHIVE_BASE_ORIGINAL_GOG_0_MD5='e7f6b59d8ce97c9ab850b47608941b7d' ARCHIVE_BASE_ORIGINAL_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_ORIGINAL_GOG_0_SIZE='2500000' ARCHIVE_BASE_ORIGINAL_GOG_0_VERSION='2.1.1-gog2.0.0.3' ## Breach & Clear: Deadline ARCHIVE_BASE_DEADLINE_0_NAME='gog_breach_and_clear_deadline_2.3.0.8.sh' ARCHIVE_BASE_DEADLINE_0_MD5='fcf5e77ea47ec4446bd67168372f6e34' ARCHIVE_BASE_DEADLINE_0_TYPE='mojosetup' ARCHIVE_BASE_DEADLINE_0_SIZE='3300000' ARCHIVE_BASE_DEADLINE_0_VERSION='1.05-gog2.3.0.8' ARCHIVE_BASE_DEADLINE_0_URL='https://www.gog.com/game/breach_clear_deadline' UNITY3D_NAME_ORIGINAL_HUMBLE='Bnc' UNITY3D_NAME_ORIGINAL_GOG='Bnc_Nix' UNITY3D_NAME_DEADLINE='DEADline' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_ORIGINAL_HUMBLE='BncHumboNix' CONTENT_PATH_DEFAULT_ORIGINAL_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DEADLINE='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' ## Easier upgrades from pre-20251019.1 packages PKG_BIN_PROVIDES_ORIGINAL=' breach-and-clear' PKG_BIN_PROVIDES_DEADLINE=' breach-and-clear-deadline' PKG_DATA_ID_ORIGINAL="${GAME_ID_ORIGINAL}-data" PKG_DATA_ID_DEADLINE="${GAME_ID_DEADLINE}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20251019.1 packages PKG_DATA_PROVIDES_ORIGINAL=' breach-and-clear-data' PKG_DATA_PROVIDES_DEADLINE=' breach-and-clear-deadline-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-caravan.sh0000755000000000000000000000565714471751340013610 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 BetaRays set -o errexit ### # Caravan # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='caravan' GAME_NAME='Caravan' ARCHIVE_BASE_HUMBLE_0_NAME='caravan_linux_v1.1.17513.zip' ARCHIVE_BASE_HUMBLE_0_MD5='286f762190d74e27c353b5616b9e6dee' ARCHIVE_BASE_HUMBLE_0_SIZE='600000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.17513-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/caravan' ARCHIVE_BASE_GOG_0_NAME='caravan_en_v1_1_19786_19905.sh' ARCHIVE_BASE_GOG_0_MD5='e6806e10c86267b38a2a2a85bb278dae' ARCHIVE_BASE_GOG_0_SIZE='430000' ARCHIVE_BASE_GOG_0_VERSION='1.1.19786-gog19905' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/caravan' UNITY3D_NAME='Caravan' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='Caravan' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) ## Errors during the game data extraction are expected, they should be ignored. archive_extraction_default 2>/dev/null || true ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Caravan_1.1.17513_Full_DEB_Multi_Daedalic_ESD.tar.gz" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; (*) archive_extraction_default ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cat-cafe-manager.sh0000755000000000000000000000526514471751340015243 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Cat Cafe Manager # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='cat-cafe-manager' GAME_NAME='Cat Cafe Manager' ARCHIVE_BASE_0_NAME='setup_cat_cafe_manager_1.2.490-windows_(64bit)_(64857).exe' ARCHIVE_BASE_0_MD5='02c9bb4a7d0bb9e0827a72693655fa8b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.2.490-gog64857' ARCHIVE_BASE_0_SIZE='609119' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cat_cafe_manager' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' catcafe.exe' CONTENT_GAME_DATA_FILES=' catcafe.pck' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Cat Cafe Manager' APP_MAIN_EXE='catcafe.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Convert the shipped icon to standard sizes REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Convert the shipped icon to standard sizes icons_temporary_directory="${PLAYIT_WORKDIR}/icons" mkdir --parents "$icons_temporary_directory" icon_extract_png_from_file 'APP_MAIN_ICON' "$icons_temporary_directory" icon_source="${PLAYIT_WORKDIR}/icons/catcafe.exe_14_GODOT_ICON-0.png" icon_destination_128="${PLAYIT_WORKDIR}/icons/icon_128.png" icon_destination_256="${PLAYIT_WORKDIR}/icons/icon_256.png" convert "$icon_source" -resize 128x128 "$icon_destination_128" convert "$icon_source" -resize 256x256 "$icon_destination_256" rm "${PLAYIT_WORKDIR}/icons"/catcafe.exe_14_GODOT_ICON-?.png icons_include_from_directory 'PKG_DATA' 'APP_MAIN' "$icons_temporary_directory" rmdir "$icons_temporary_directory" content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-chaos-reborn.sh0000755000000000000000000000664014471751340014550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Chaos Reborn # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='chaos-reborn' GAME_NAME='Chaos Reborn' ARCHIVE_BASE_4_NAME='chaos_reborn_en_1_13_3_23004.sh' ARCHIVE_BASE_4_MD5='283d60b5adf91640679d2fe1c7962300' ARCHIVE_BASE_4_SIZE='1700000' ARCHIVE_BASE_4_VERSION='1.13.3-gog23004' ARCHIVE_BASE_4_URL='https://www.gog.com/game/chaos_reborn' ARCHIVE_BASE_3_NAME='chaos_reborn_en_1_13_2_17223.sh' ARCHIVE_BASE_3_MD5='edb60d98710c87c0adea06f55be99567' ARCHIVE_BASE_3_SIZE='1700000' ARCHIVE_BASE_3_VERSION='1.13.2-gog17223' ARCHIVE_BASE_2_NAME='chaos_reborn_en_1_131_14290.sh' ARCHIVE_BASE_2_MD5='fcfea11ad6a6cbdda2290c4f29bbeb2b' ARCHIVE_BASE_2_SIZE='1700000' ARCHIVE_BASE_2_VERSION='1.13.1-gog14290' ARCHIVE_BASE_1_NAME='gog_chaos_reborn_2.14.0.16.sh' ARCHIVE_BASE_1_MD5='97dbfc0a679a7fd104c744b6aa46db36' ARCHIVE_BASE_1_SIZE='1700000' ARCHIVE_BASE_1_VERSION='1.13-gog2.14.0.16' ARCHIVE_BASE_0_NAME='gog_chaos_reborn_2.13.0.15.sh' ARCHIVE_BASE_0_MD5='a2abf12572eea8b43059a9bb8d5d3171' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.12.2-gog2.13.0.15' UNITY3D_NAME='ChaosRebornLinux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Force windowed mode on first launch APP_MAIN_PRERUN=' # Force windowed mode on first launch config_file="$HOME/.config/unity3d/Snapshot Games Inc_/Chaos Reborn/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 EOF fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-charterstone.sh0000755000000000000000000000372214471751340014665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Charterstone # send your bug reports to bugs@dotslashplay.it ### script_version=20251020.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='charterstone' GAME_NAME='Charterstone' ARCHIVE_BASE_0_NAME='charterstone_digital_edition_1_2_9_60090.sh' ARCHIVE_BASE_0_MD5='2ae5e0a2a81433b3ae54e8ff80af9274' ARCHIVE_BASE_0_SIZE='616080' ARCHIVE_BASE_0_VERSION='1.2.9-gog60090' ARCHIVE_BASE_0_URL='https://www.gog.com/game/charterstone_digital_edition' UNITY3D_NAME='Charterstone' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of unwanted Unity3D plugins. rm --recursive "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-chroma-squad.sh0000755000000000000000000000456014471751340014551 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chroma Squad # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='chroma-squad' GAME_NAME='Chroma Squad' ARCHIVE_BASE_0_NAME='chroma_squad_en_1_12b_15401.sh' ARCHIVE_BASE_0_MD5='5f76d2b8942261ff837398c3a674db91' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.12b-gog15401' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chroma_squad' UNITY3D_NAME='Chroma Squad' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/savedGames" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-civilization-4.sh0000755000000000000000000001322614471751340015031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Civilization 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20250125.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='civilization-4' GAME_NAME='Civilization Ⅳ' ARCHIVE_BASE_0_NAME='setup_civilization4_complete_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='8ddc5e0129d216cb397e8da5f95a8c92' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_civilization4_complete_2.0.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='dbf971c1acbad3648697c7c343f14aad' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.7.4.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sid_meiers_civilization_iv_the_complete_edition' CONTENT_PATH_DEFAULT='game/Civ4' CONTENT_GAME_BIN_WARLORDS_FILES=' Warlords/Assets/Python/System Warlords/CvGameCoreDLL Warlords/*.dll Warlords/*.exe' CONTENT_GAME_BIN_SWORD_FILES=' Beyond the Sword/CvGameCoreDLL Beyond the Sword/*.dll Beyond the Sword/*.exe' CONTENT_GAME_BIN_FILES=' Assets/Python/System CvGameCoreDLL Miles *.dll *.exe' CONTENT_GAME_DATA_WARLORDS_FILES=' Warlords/Assets Warlords/Mods Warlords/PublicMaps Warlords/Resource Warlords/Shaders' CONTENT_GAME_DATA_SWORD_FILES=' Beyond the Sword/Assets Beyond the Sword/Mods Beyond the Sword/PublicMaps Beyond the Sword/Resource Beyond the Sword/Shaders' CONTENT_GAME_DATA_FILES=' Assets Mods PublicMaps Resource Shaders' CONTENT_DOC_DATA_WARLORDS_PATH='game' CONTENT_DOC_DATA_WARLORDS_FILES=" Sid Meier's Civilization 4 - Warlords.pdf Sid Meier's Civilization 4 - Warlords (FR).pdf" CONTENT_DOC_DATA_SWORD_PATH='game' CONTENT_DOC_DATA_SWORD_FILES=" Sid Meier's Civilization 4 - Beyond the Sword.pdf Sid Meier's Civilization 4 - Beyond the Sword (FR).pdf" CONTENT_DOC_DATA_PATH='game' CONTENT_DOC_DATA_FILES=" Sid Meier's Civilization 4.pdf Sid Meier's Civilization 4 (FR).pdf" CONTENT_DOC0_DATA_PATH='game/Readme' CONTENT_DOC0_DATA_FILES=' */Readme.htm' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/My Games/civilization-4 users/${USER}/Documents/My Games/civilization-4 users/${USER}/AppData/Local/My Games/Warlords users/${USER}/Documents/My Games/Warlords users/${USER}/AppData/Local/My Games/Beyond the Sword users/${USER}/Documents/My Games/Beyond the Sword' APP_MAIN_EXE='Civilization4.exe' APP_MAIN_ICON='Assets/res/Civ4Game.ico' APP_WARLORDS_ID="${GAME_ID}-warlords" APP_WARLORDS_NAME="$GAME_NAME - Warlords" APP_WARLORDS_EXE='Warlords/Civ4Warlords.exe' APP_WARLORDS_ICONS_LIST='APP_WARLORDS_ICON16 APP_WARLORDS_ICON32 APP_WARLORDS_ICON64' APP_WARLORDS_ICON16='Warlords/Assets/res/CIV_Warlords_16.ico' APP_WARLORDS_ICON32='Warlords/Assets/res/CIV_Warlords_32.ico' APP_WARLORDS_ICON64='Warlords/Assets/res/CIV_Warlords_64.ico' APP_SWORD_ID="${GAME_ID}-beyond-the-sword" APP_SWORD_NAME="$GAME_NAME - Beyond the Sword" APP_SWORD_EXE='Beyond the Sword/Civ4BeyondSword.exe' APP_SWORD_ICON='Beyond the Sword/Assets/res/Civ4BtS.ico' PACKAGES_LIST=' PKG_BIN_WARLORDS PKG_BIN_SWORD PKG_BIN PKG_DATA_WARLORDS PKG_DATA_SWORD PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_WARLORDS_ID="${GAME_ID}-warlords" PKG_BIN_WARLORDS_DESCRIPTION='Warlords' PKG_BIN_WARLORDS_ARCH='32' PKG_BIN_WARLORDS_DEPENDENCIES_SIBLINGS=' PKG_DATA_WARLORDS' PKG_BIN_SWORD_ID="${GAME_ID}-beyond-the-sword" PKG_BIN_SWORD_DESCRIPTION='Beyond the Sword' PKG_BIN_SWORD_ARCH='32' PKG_BIN_SWORD_DEPENDENCIES_SIBLINGS=' PKG_DATA_SWORD' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_WARLORDS_ID="${GAME_ID}-warlords-data" PKG_DATA_WARLORDS_DESCRIPTION='Warlords - data' PKG_DATA_WARLORDS_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_SWORD_ID="${GAME_ID}-beyond-the-sword-data" PKG_DATA_SWORD_DESCRIPTION='Beyond the Sword - data' PKG_DATA_SWORD_DEPENDENCIES_SIBLINGS=' PKG_DATA' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' 'APP_MAIN' content_inclusion_icons 'PKG_DATA_WARLORDS' 'APP_WARLORDS' content_inclusion_icons 'PKG_DATA_SWORD' 'APP_SWORD' content_inclusion_default ## Ensure fonts expected by the game are available fonts_path_system="$(package_path 'PKG_DATA')$(path_fonts_ttf)" fonts_path_game="$(package_path 'PKG_DATA')$(path_game_data)" mkdir --parents "$fonts_path_system" for font_path in \ 'Assets/res/Fonts/sylfaen.ttf' \ 'Resource/Civ4/sylfaenbi.ttf' \ 'Resource/Civ4/sylfaenb.ttf' \ 'Resource/Civ4/sylfaeni.ttf' \ 'Resource/Civ4/sylfaen.ttf' \ 'Resource/Fonts/arial.ttf' \ 'Resource/Fonts/sylfaen.ttf' do font_file=$(basename "$font_path") mv --force "${fonts_path_game}/${font_path}" "${fonts_path_system}/${font_file}" ln --symbolic "$(path_fonts_ttf)/${font_file}" "${fonts_path_game}/${font_path}" done # Write launchers launchers_generation 'PKG_BIN' 'APP_MAIN' launchers_generation 'PKG_BIN_WARLORDS' 'APP_WARLORDS' launchers_generation 'PKG_BIN_SWORD' 'APP_SWORD' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-coffee-noir-business-detective-game.sh0000755000000000000000000000461414471751340021073 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Coffee Noir - Business Detective Game # send your bug reports to bugs@dotslashplay.it ### script_version=20250126.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='coffee-noir-business-detective-game' GAME_NAME='Coffee Noir - Business Detective Game' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='coffee_noir_business_detective_game_1_0_1_50385.sh' ARCHIVE_BASE_0_MD5='dc158baf4bf3d80524603582ee3be780' ARCHIVE_BASE_0_SIZE='1459648' ARCHIVE_BASE_0_VERSION='1.0.1-gog50385' ARCHIVE_BASE_0_URL='https://www.gog.com/game/coffee_noir_business_detective_game' ARCHIVE_BASE_DEMO_0_NAME='coffee_noir_business_detective_game_demo_2_0_0_50174.sh' ARCHIVE_BASE_DEMO_0_MD5='7e3ffe0fbc1b0992a5e241432c85da29' ARCHIVE_BASE_DEMO_0_SIZE='591420' ARCHIVE_BASE_DEMO_0_VERSION='2.0.0-gog50174' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/coffee_noir_business_detective_game_demo' UNITY3D_NAME='CoffeeNoir' UNITY3D_NAME_DEMO='CoffeeNoirDemo' UNITY3D_PLUGINS=' libSQLite-Interop.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-commandos-3.sh0000755000000000000000000000413114471751340014277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Commandos 3: Destination Berlin # send your bug reports to bugs@dotslashplay.it ### script_version=20250126.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='commandos-3' GAME_NAME='Commandos 3: Destination Berlin' ARCHIVE_BASE_0_NAME='setup_commandos_3_-_destination_berlin_1.42_hotfix2_(25143).exe' ARCHIVE_BASE_0_MD5='2fa1ad6e7c7e918bdaa1adee5bb3a0ec' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.42-gog25143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/commandos_2_3' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binkw32.dll d3d8.dll ogg.dll vorbis.dll commandos3.exe' CONTENT_GAME_DATA_FILES=' data output directplay.cmd *.pck' CONTENT_DOC_DATA_FILES=' readme.rtf eula.txt support.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' output' WINE_VIRTUAL_DESKTOP='800x600' APP_MAIN_EXE='commandos3.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cultist-simulator-expansions.sh0000755000000000000000000003267314471751340020064 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cultist Simulator expansions: # - Perpetual Edition # - The Dancer # - The Ghoul # - The Priest # - The Exile # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='cultist-simulator' GAME_NAME='Cultist Simulator' EXPANSION_ID_PERPETUAL='perpetual-edition' EXPANSION_NAME_PERPETUAL='Perpetual Edition' EXPANSION_ID_DANCER='the-dancer' EXPANSION_NAME_DANCER='The Dancer' EXPANSION_ID_GHOUL='the-ghoul' EXPANSION_NAME_GHOUL='The Ghoul' EXPANSION_ID_PRIEST='the-priest' EXPANSION_NAME_PRIEST='The Priest' EXPANSION_ID_EXILE='the-exile' EXPANSION_NAME_EXILE='The Exile' # Archives ## Perpetual Edition ARCHIVE_BASE_PERPETUAL_9_NAME='cultist_simulator_perpetual_edition_content_2024_7_b_3_77913.sh' ARCHIVE_BASE_PERPETUAL_9_MD5='653f6b60b6587db9b24e850daf25e045' ARCHIVE_BASE_PERPETUAL_9_SIZE='897' ARCHIVE_BASE_PERPETUAL_9_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_PERPETUAL_8_NAME='cultist_simulator_perpetual_edition_content_2024_5_a_3_74582.sh' ARCHIVE_BASE_PERPETUAL_8_MD5='0150fa2617c138697f8b05b9c659e76e' ARCHIVE_BASE_PERPETUAL_8_SIZE='897' ARCHIVE_BASE_PERPETUAL_8_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_PERPETUAL_7_NAME='cultist_simulator_perpetual_edition_content_2023_12_s_5_71509.sh' ARCHIVE_BASE_PERPETUAL_7_MD5='ba64a839ed79df208e346e45705028c7' ARCHIVE_BASE_PERPETUAL_7_SIZE='897' ARCHIVE_BASE_PERPETUAL_7_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_PERPETUAL_6_NAME='cultist_simulator_perpetual_edition_content_2023_12_s_4_71175.sh' ARCHIVE_BASE_PERPETUAL_6_MD5='b06fb18d1183088111c459e4369823b0' ARCHIVE_BASE_PERPETUAL_6_SIZE='897' ARCHIVE_BASE_PERPETUAL_6_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_PERPETUAL_5_NAME='cultist_simulator_perpetual_edition_content_2023_10_r_10_68985.sh' ARCHIVE_BASE_PERPETUAL_5_MD5='d4b6b6332df5a68e0e819ecfde900ca8' ARCHIVE_BASE_PERPETUAL_5_SIZE='1212' ARCHIVE_BASE_PERPETUAL_5_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_PERPETUAL_4_NAME='cultist_simulator_perpetual_edition_content_2023_5_p_12_67501.sh' ARCHIVE_BASE_PERPETUAL_4_MD5='2a725b7b09eb2990bf5452b904575e0f' ARCHIVE_BASE_PERPETUAL_4_SIZE='1212' ARCHIVE_BASE_PERPETUAL_4_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_PERPETUAL_3_NAME='cultist_simulator_perpetual_edition_content_2023_4_o_4_64959.sh' ARCHIVE_BASE_PERPETUAL_3_MD5='4e753614162be0092276c2f79c6fa536' ARCHIVE_BASE_PERPETUAL_3_SIZE='1300' ARCHIVE_BASE_PERPETUAL_3_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_PERPETUAL_2_NAME='cultist_simulator_perpetual_edition_content_2022_12_n_2_61763.sh' ARCHIVE_BASE_PERPETUAL_2_MD5='d075fca6120b358a13349e0df210c80c' ARCHIVE_BASE_PERPETUAL_2_SIZE='1300' ARCHIVE_BASE_PERPETUAL_2_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_PERPETUAL_1_NAME='cultist_simulator_perpetual_edition_content_2022_3_p_1_54545.sh' ARCHIVE_BASE_PERPETUAL_1_MD5='b6523031eb075dab51ab73aaeefd8b8a' ARCHIVE_BASE_PERPETUAL_1_SIZE='1300' ARCHIVE_BASE_PERPETUAL_1_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_PERPETUAL_0_NAME='cultist_simulator_perpetual_edition_content_2022_3_n_1_54418.sh' ARCHIVE_BASE_PERPETUAL_0_MD5='76dd2895edb86c9e5086ff073b86bd41' ARCHIVE_BASE_PERPETUAL_0_SIZE='1300' ARCHIVE_BASE_PERPETUAL_0_VERSION='2022.03.n.1-gog54418' ## The Dancer ARCHIVE_BASE_DANCER_9_NAME='cultist_simulator_the_dancer_2024_7_b_3_77913.sh' ARCHIVE_BASE_DANCER_9_MD5='f9304991269fb79b8fa80a0d8ca55baa' ARCHIVE_BASE_DANCER_9_SIZE='1178' ARCHIVE_BASE_DANCER_9_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_DANCER_9_URL='https://www.gog.com/game/cultist_simulator_the_dancer' ARCHIVE_BASE_DANCER_8_NAME='cultist_simulator_the_dancer_2024_5_a_3_74582.sh' ARCHIVE_BASE_DANCER_8_MD5='033bb0945379a41d711ab7d8b23c9230' ARCHIVE_BASE_DANCER_8_SIZE='1178' ARCHIVE_BASE_DANCER_8_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_DANCER_7_NAME='cultist_simulator_the_dancer_2023_12_s_5_71509.sh' ARCHIVE_BASE_DANCER_7_MD5='7411914a034e8f059f2f78b1476101d2' ARCHIVE_BASE_DANCER_7_SIZE='1178' ARCHIVE_BASE_DANCER_7_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_DANCER_6_NAME='cultist_simulator_the_dancer_2023_12_s_4_71175.sh' ARCHIVE_BASE_DANCER_6_MD5='5a33ee82ccc822bc5a249288093e315a' ARCHIVE_BASE_DANCER_6_SIZE='1178' ARCHIVE_BASE_DANCER_6_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_DANCER_5_NAME='cultist_simulator_the_dancer_2023_10_r_10_68985.sh' ARCHIVE_BASE_DANCER_5_MD5='3202862234290566863abf42afe2e0eb' ARCHIVE_BASE_DANCER_5_SIZE='1580' ARCHIVE_BASE_DANCER_5_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_DANCER_4_NAME='cultist_simulator_the_dancer_2023_5_p_12_67501.sh' ARCHIVE_BASE_DANCER_4_MD5='1735b3ba59f8d72f04fac14fc0c7c58b' ARCHIVE_BASE_DANCER_4_SIZE='1580' ARCHIVE_BASE_DANCER_4_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_DANCER_3_NAME='cultist_simulator_the_dancer_2023_4_o_4_64959.sh' ARCHIVE_BASE_DANCER_3_MD5='3174e4feddd8c11acc39aa0cac8696de' ARCHIVE_BASE_DANCER_3_SIZE='1600' ARCHIVE_BASE_DANCER_3_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_DANCER_2_NAME='cultist_simulator_the_dancer_2022_12_n_2_61763.sh' ARCHIVE_BASE_DANCER_2_MD5='36fbfe3d25d28f0a465a72dc394eb6b7' ARCHIVE_BASE_DANCER_2_SIZE='1600' ARCHIVE_BASE_DANCER_2_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_DANCER_1_NAME='cultist_simulator_the_dancer_2022_3_p_1_54545.sh' ARCHIVE_BASE_DANCER_1_MD5='e8b5d104fd30e6e7566bc24fbca5d718' ARCHIVE_BASE_DANCER_1_SIZE='1600' ARCHIVE_BASE_DANCER_1_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_DANCER_0_NAME='cultist_simulator_the_dancer_2022_3_n_1_54418.sh' ARCHIVE_BASE_DANCER_0_MD5='8dbbb7e6121b9d62661837191f053405' ARCHIVE_BASE_DANCER_0_SIZE='1600' ARCHIVE_BASE_DANCER_0_VERSION='2022.03.n.1-gog54418' ## The Ghoul ARCHIVE_BASE_GHOUL_9_NAME='cultist_simulator_the_ghoul_2024_7_b_3_77913.sh' ARCHIVE_BASE_GHOUL_9_MD5='51397b535a1a70d49eb63019d7a385ff' ARCHIVE_BASE_GHOUL_9_SIZE='1163' ARCHIVE_BASE_GHOUL_9_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_GHOUL_9_URL='https://www.gog.com/game/cultist_simulator_the_ghoul' ARCHIVE_BASE_GHOUL_8_NAME='cultist_simulator_the_ghoul_2024_5_a_3_74582.sh' ARCHIVE_BASE_GHOUL_8_MD5='c142d2c03bba7cfb84dd54742a1c02ee' ARCHIVE_BASE_GHOUL_8_SIZE='1163' ARCHIVE_BASE_GHOUL_8_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_GHOUL_7_NAME='cultist_simulator_the_ghoul_2023_12_s_5_71509.sh' ARCHIVE_BASE_GHOUL_7_MD5='8185ddbb6681d90a233078d959188c2e' ARCHIVE_BASE_GHOUL_7_SIZE='1163' ARCHIVE_BASE_GHOUL_7_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_GHOUL_6_NAME='cultist_simulator_the_ghoul_2023_12_s_4_71175.sh' ARCHIVE_BASE_GHOUL_6_MD5='ff6fdc10d98aea9e260522521112d176' ARCHIVE_BASE_GHOUL_6_SIZE='1163' ARCHIVE_BASE_GHOUL_6_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_GHOUL_5_NAME='cultist_simulator_the_ghoul_2023_10_r_10_68985.sh' ARCHIVE_BASE_GHOUL_5_MD5='7ee4993ad1e507cd48c705a6cbc0fe90' ARCHIVE_BASE_GHOUL_5_SIZE='1592' ARCHIVE_BASE_GHOUL_5_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_GHOUL_4_NAME='cultist_simulator_the_ghoul_2023_5_p_12_67501.sh' ARCHIVE_BASE_GHOUL_4_MD5='06c81c342ee8bcc81e298d5dd519d2e7' ARCHIVE_BASE_GHOUL_4_SIZE='1592' ARCHIVE_BASE_GHOUL_4_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_GHOUL_3_NAME='cultist_simulator_the_ghoul_2023_4_o_4_64959.sh' ARCHIVE_BASE_GHOUL_3_MD5='246f3518914281bca5d0647170e1c12f' ARCHIVE_BASE_GHOUL_3_SIZE='1600' ARCHIVE_BASE_GHOUL_3_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_GHOUL_2_NAME='cultist_simulator_the_ghoul_2022_12_n_2_61763.sh' ARCHIVE_BASE_GHOUL_2_MD5='53674742e8cb5a7570a6f5318a998261' ARCHIVE_BASE_GHOUL_2_SIZE='1600' ARCHIVE_BASE_GHOUL_2_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_GHOUL_1_NAME='cultist_simulator_the_ghoul_2022_3_p_1_54545.sh' ARCHIVE_BASE_GHOUL_1_MD5='c04cd53c229a5cb2d243a6c00e4e6847' ARCHIVE_BASE_GHOUL_1_SIZE='1600' ARCHIVE_BASE_GHOUL_1_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_GHOUL_0_NAME='cultist_simulator_the_ghoul_2022_3_n_1_54418.sh' ARCHIVE_BASE_GHOUL_0_MD5='d1b72e87563e87df340570dd91ec44a2' ARCHIVE_BASE_GHOUL_0_SIZE='1600' ARCHIVE_BASE_GHOUL_0_VERSION='2022.03.n.1-gog54418' ## The Priest ARCHIVE_BASE_PRIEST_9_NAME='cultist_simulator_the_priest_2024_7_b_3_77913.sh' ARCHIVE_BASE_PRIEST_9_MD5='4e5b1868e6f14fbb31ccfda6c3e14667' ARCHIVE_BASE_PRIEST_9_SIZE='1238' ARCHIVE_BASE_PRIEST_9_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_PRIEST_9_URL='https://www.gog.com/game/cultist_simulator_the_priest' ARCHIVE_BASE_PRIEST_8_NAME='cultist_simulator_the_priest_2024_5_a_3_74582.sh' ARCHIVE_BASE_PRIEST_8_MD5='efa3f7d478e0083e51f83db79c787efa' ARCHIVE_BASE_PRIEST_8_SIZE='1238' ARCHIVE_BASE_PRIEST_8_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_PRIEST_7_NAME='cultist_simulator_the_priest_2023_12_s_5_71509.sh' ARCHIVE_BASE_PRIEST_7_MD5='0b5d5436b8853cfc3a100404070779c8' ARCHIVE_BASE_PRIEST_7_SIZE='1238' ARCHIVE_BASE_PRIEST_7_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_PRIEST_6_NAME='cultist_simulator_the_priest_2023_12_s_4_71175.sh' ARCHIVE_BASE_PRIEST_6_MD5='84f26baca8a0219e3b11f6f91fca3bb9' ARCHIVE_BASE_PRIEST_6_SIZE='1238' ARCHIVE_BASE_PRIEST_6_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_PRIEST_5_NAME='cultist_simulator_the_priest_2023_10_r_10_68985.sh' ARCHIVE_BASE_PRIEST_5_MD5='98051cfd374e9165e59377fbac3a3c35' ARCHIVE_BASE_PRIEST_5_SIZE='1668' ARCHIVE_BASE_PRIEST_5_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_PRIEST_4_NAME='cultist_simulator_the_priest_2023_5_p_12_67501.sh' ARCHIVE_BASE_PRIEST_4_MD5='c6e17f6d95cf866bcd91fff881216ca8' ARCHIVE_BASE_PRIEST_4_SIZE='1668' ARCHIVE_BASE_PRIEST_4_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_PRIEST_3_NAME='cultist_simulator_the_priest_2023_4_o_4_64959.sh' ARCHIVE_BASE_PRIEST_3_MD5='fd1b784c35b7d1acadeebb5f6da8ea68' ARCHIVE_BASE_PRIEST_3_SIZE='1700' ARCHIVE_BASE_PRIEST_3_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_PRIEST_2_NAME='cultist_simulator_the_priest_2022_12_n_2_61763.sh' ARCHIVE_BASE_PRIEST_2_MD5='1f12513a9b61863ced08ebe7ff3f2001' ARCHIVE_BASE_PRIEST_2_SIZE='1700' ARCHIVE_BASE_PRIEST_2_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_PRIEST_1_NAME='cultist_simulator_the_priest_2022_3_p_1_54545.sh' ARCHIVE_BASE_PRIEST_1_MD5='e56271d1fd1e2eca197d4bef956965c9' ARCHIVE_BASE_PRIEST_1_SIZE='1700' ARCHIVE_BASE_PRIEST_1_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_PRIEST_0_NAME='cultist_simulator_the_priest_2022_3_n_1_54418.sh' ARCHIVE_BASE_PRIEST_0_MD5='26516af73ab47d8aa161a6e2ad99eb5f' ARCHIVE_BASE_PRIEST_0_SIZE='1700' ARCHIVE_BASE_PRIEST_0_VERSION='2022.03.n.1-gog54418' ## The Exile ARCHIVE_BASE_EXILE_9_NAME='cultist_simulator_the_exile_2024_7_b_3_77913.sh' ARCHIVE_BASE_EXILE_9_MD5='dda93215acba7d7aeeedb9f356830ffb' ARCHIVE_BASE_EXILE_9_SIZE='5482' ARCHIVE_BASE_EXILE_9_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_EXILE_9_URL='https://www.gog.com/game/cultist_simulator_the_exile' ARCHIVE_BASE_EXILE_8_NAME='cultist_simulator_the_exile_2024_5_a_3_74582.sh' ARCHIVE_BASE_EXILE_8_MD5='0617fc6bb9dc85982e33ef203bce039a' ARCHIVE_BASE_EXILE_8_SIZE='5482' ARCHIVE_BASE_EXILE_8_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_EXILE_7_NAME='cultist_simulator_the_exile_2023_12_s_5_71509.sh' ARCHIVE_BASE_EXILE_7_MD5='b8ec4b2021be5b82b4d1bea8f85e2275' ARCHIVE_BASE_EXILE_7_SIZE='5482' ARCHIVE_BASE_EXILE_7_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_EXILE_6_NAME='cultist_simulator_the_exile_2023_12_s_4_71175.sh' ARCHIVE_BASE_EXILE_6_MD5='4848d25ba494b3ce05199c14b3fb7cdb' ARCHIVE_BASE_EXILE_6_SIZE='5482' ARCHIVE_BASE_EXILE_6_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_EXILE_5_NAME='cultist_simulator_the_exile_2023_10_r_10_68985.sh' ARCHIVE_BASE_EXILE_5_MD5='127f09acc54cce367ce7e167468ed229' ARCHIVE_BASE_EXILE_5_SIZE='6088' ARCHIVE_BASE_EXILE_5_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_EXILE_4_NAME='cultist_simulator_the_exile_2023_5_p_12_67501.sh' ARCHIVE_BASE_EXILE_4_MD5='0ed4869ccb55e3e7b5afa9ade6a654a9' ARCHIVE_BASE_EXILE_4_SIZE='6088' ARCHIVE_BASE_EXILE_4_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_EXILE_3_NAME='cultist_simulator_the_exile_2023_4_o_4_64959.sh' ARCHIVE_BASE_EXILE_3_MD5='c25a0b322398181606826e8e91946ed8' ARCHIVE_BASE_EXILE_3_SIZE='6100' ARCHIVE_BASE_EXILE_3_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_EXILE_2_NAME='cultist_simulator_the_exile_2022_12_n_2_61763.sh' ARCHIVE_BASE_EXILE_2_MD5='97f7192f414ebc9c456f14485bcfdc9c' ARCHIVE_BASE_EXILE_2_SIZE='6100' ARCHIVE_BASE_EXILE_2_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_EXILE_1_NAME='cultist_simulator_the_exile_2022_3_p_1_54545.sh' ARCHIVE_BASE_EXILE_1_MD5='ad7232336e7aefd959a57fd2c3c7243b' ARCHIVE_BASE_EXILE_1_SIZE='6100' ARCHIVE_BASE_EXILE_1_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_EXILE_0_NAME='cultist_simulator_the_exile_2022_3_n_1_54418.sh' ARCHIVE_BASE_EXILE_0_MD5='3bf084c13791a61820aaf49650dd2a32' ARCHIVE_BASE_EXILE_0_SIZE='6100' ARCHIVE_BASE_EXILE_0_VERSION='2022.03.n.1-gog54418' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' CS_Data' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cultist-simulator.sh0000755000000000000000000001314714471751340015672 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Cultist Simulator # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='cultist-simulator' GAME_NAME='Cultist Simulator' ARCHIVE_BASE_19_NAME='cultist_simulator_2024_7_b_3_77913.sh' ARCHIVE_BASE_19_MD5='7dec8c03b9f2ec9136ead667cfd4fb73' ARCHIVE_BASE_19_SIZE='707969' ARCHIVE_BASE_19_VERSION='2024.07.b.3-gog77913' ARCHIVE_BASE_19_URL='https://www.gog.com/game/cultist_simulator' ARCHIVE_BASE_18_NAME='cultist_simulator_2024_5_a_3_74582.sh' ARCHIVE_BASE_18_MD5='4a6d4118f5545f95119a0f6fedcf1e16' ARCHIVE_BASE_18_SIZE='707816' ARCHIVE_BASE_18_VERSION='2024.05.a.3-gog74582' ARCHIVE_BASE_17_NAME='cultist_simulator_2023_12_s_5_71509.sh' ARCHIVE_BASE_17_MD5='7e5fd05666c22c1b44401525e2fd24f1' ARCHIVE_BASE_17_SIZE='707815' ARCHIVE_BASE_17_VERSION='2023.12.s.5-gog71509' ARCHIVE_BASE_16_NAME='cultist_simulator_2023_12_s_4_71175.sh' ARCHIVE_BASE_16_MD5='b34cef2cea237aff1b4ff33fe6acdece' ARCHIVE_BASE_16_SIZE='707816' ARCHIVE_BASE_16_VERSION='2023.12.s.4-gog71175' ARCHIVE_BASE_15_NAME='cultist_simulator_2023_10_r_10_68985.sh' ARCHIVE_BASE_15_MD5='4c9a58da5701edb9af42b44dedff55d6' ARCHIVE_BASE_15_SIZE='711252' ARCHIVE_BASE_15_VERSION='2023.10.r.10-gog68985' ARCHIVE_BASE_14_NAME='cultist_simulator_2023_5_p_12_67501.sh' ARCHIVE_BASE_14_MD5='9b849e52ae2c13a0911f2ff78b474264' ARCHIVE_BASE_14_SIZE='709880' ARCHIVE_BASE_14_VERSION='2023.05.p.12-gog67501' ARCHIVE_BASE_13_NAME='cultist_simulator_2023_4_o_4_64959.sh' ARCHIVE_BASE_13_MD5='4f3a1b1fa787e3b72fd22538051bc064' ARCHIVE_BASE_13_SIZE='710000' ARCHIVE_BASE_13_VERSION='2023.04.o.4-gog64959' ARCHIVE_BASE_12_NAME='cultist_simulator_2022_12_n_2_61763.sh' ARCHIVE_BASE_12_MD5='852b96c2da6b07d15fa533b3dbb0f316' ARCHIVE_BASE_12_SIZE='780000' ARCHIVE_BASE_12_VERSION='2022.12.n.2-gog61763' ARCHIVE_BASE_11_NAME='cultist_simulator_2022_3_p_1_54545.sh' ARCHIVE_BASE_11_MD5='6009cfa53c5be9da1e02380d5bcaf712' ARCHIVE_BASE_11_SIZE='750000' ARCHIVE_BASE_11_VERSION='2022.03.p.1-gog54545' ARCHIVE_BASE_10_NAME='cultist_simulator_2022_3_n_1_54418.sh' ARCHIVE_BASE_10_MD5='0c8e9dedb7b2e5112f7172c9a9095c18' ARCHIVE_BASE_10_SIZE='750000' ARCHIVE_BASE_10_VERSION='2022.03.n.1-gog54418' ARCHIVE_BASE_9_NAME='cultist_simulator_2021_1_b_2_44604.sh' ARCHIVE_BASE_9_MD5='cbe92b1dee271416ffa4ad29ef4b9123' ARCHIVE_BASE_9_SIZE='540000' ARCHIVE_BASE_9_VERSION='2021.01.b.2-gog44604' ARCHIVE_BASE_8_NAME='cultist_simulator_2020_11_a_1_42424.sh' ARCHIVE_BASE_8_MD5='76781c87835954da4a97ec7e0efccfe2' ARCHIVE_BASE_8_SIZE='540000' ARCHIVE_BASE_8_VERSION='2020.11.a.1-gog42424' ARCHIVE_BASE_7_NAME='cultist_simulator_2020_10_e_2_42258.sh' ARCHIVE_BASE_7_MD5='a2a2de8222b9993fc0ae5ef0eaed2b66' ARCHIVE_BASE_7_SIZE='540000' ARCHIVE_BASE_7_VERSION='2020.10.e.2-gog42258' ARCHIVE_BASE_6_NAME='cultist_simulator_2020_10_e_1_42177.sh' ARCHIVE_BASE_6_MD5='1a16264b6ce868c0f741b6614d84d684' ARCHIVE_BASE_6_SIZE='540000' ARCHIVE_BASE_6_VERSION='2020.10.e.1-gog42177' ARCHIVE_BASE_5_NAME='cultist_simulator_2020_10_b_1_42011.sh' ARCHIVE_BASE_5_MD5='672409328bd154b4430826c09b58dd74' ARCHIVE_BASE_5_SIZE='530000' ARCHIVE_BASE_5_VERSION='2020.10.b.1-gog42011' ARCHIVE_BASE_4_NAME='cultist_simulator_2020_9_p_1_bis_41797.sh' ARCHIVE_BASE_4_MD5='9683f0726cba2b116db4134aec863382' ARCHIVE_BASE_4_SIZE='520000' ARCHIVE_BASE_4_VERSION='2020.09.p.1-gog41797' ARCHIVE_BASE_3_NAME='cultist_simulator_2020_9_n_5_41650.sh' ARCHIVE_BASE_3_MD5='251b5e2d58faaea7132b57ad97495057' ARCHIVE_BASE_3_SIZE='510000' ARCHIVE_BASE_3_VERSION='2020.09.n.5-gog41650' ARCHIVE_BASE_2_NAME='cultist_simulator_2020_6_b_1_38747.sh' ARCHIVE_BASE_2_MD5='22980acaa3f825d0712621624277d4ed' ARCHIVE_BASE_2_SIZE='500000' ARCHIVE_BASE_2_VERSION='2020.06.b.1-gog38747' ARCHIVE_BASE_1_NAME='cultist_simulator_2020_6_a_1_38655.sh' ARCHIVE_BASE_1_MD5='099e8a6ed1ae7a9bd654ba63ab89c4a7' ARCHIVE_BASE_1_SIZE='500000' ARCHIVE_BASE_1_VERSION='2020.06.a.1-gog38655' ARCHIVE_BASE_0_NAME='cultist_simulator_2020_3_b_1_37119.sh' ARCHIVE_BASE_0_MD5='4390c258dcce415d61f96eac66a728ca' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='2020.03.b.1-gog37119' UNITY3D_NAME='CS' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' version.txt' CONTENT_DOC_DATA_FILES=' README' ## Write access to some game files is required. USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/StreamingAssets/content/core/cultures" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-darwinia.sh0000755000000000000000000001120614471751340013756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Darwinia # send your bug reports to bugs@dotslashplay.it ### script_version=20251020.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='darwinia' GAME_NAME='Darwinia' ARCHIVE_BASE_0_NAME='darwinia_2_3_3_45_ged1ca4106_gnu_linux_full_72588.sh' ARCHIVE_BASE_0_MD5='20d80521ad8ef6a3c160ee9417daa678' ARCHIVE_BASE_0_SIZE='66408' ARCHIVE_BASE_0_VERSION='2.3.3.45-gog72588' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darwinia' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_darwinia_2.0.0.5.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='ef55064ab82a64324e295f2ea96239d6' ARCHIVE_BASE_MULTIARCH_0_SIZE='45000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.4.2-gog2.0.0.5' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libsentry.so' ## Include the shipped EGL and GLESv2 libraries, ## to prevent rendering failures and performance problems. CONTENT_LIBS0_BIN_FILES=' libEGL.so.1 libEGL.so libGLESv2.so.2 libGLESv2.so' CONTENT_GAME_BIN_FILES=' crashpad_handler darwinia' CONTENT_GAME_BIN64_FILES=' darwinia.bin.x86_64' CONTENT_GAME_BIN32_FILES=' darwinia.bin.x86' CONTENT_GAME_DATA_FILES=' darwinian.png *.dat' CONTENT_DOC_DATA_FILES=' *.txt' FAKE_HOME_PERSISTENT_DIRECTORIES=' .darwinia' APP_MAIN_EXE_BIN='darwinia' APP_MAIN_EXE_BIN64='darwinia.bin.x86_64' APP_MAIN_EXE_BIN32='darwinia.bin.x86' APP_MAIN_ICON_MULTIARCH='darwinian.png' ## Convert the shipped icon to a standard size. REQUIREMENTS_LIST_MULTIARCH=' convert' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libcrypto.so.3 libc.so.6 libcurl.so.4 libdl.so.2 libdrm.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libssl.so.3 libstdc++.so.6 libvulkan.so.1 libX11.so.6 libxcb.so.1 libXext.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libc.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data ## TODO: An optional icons archive should be provided for game builds not including one already. case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) ## Convert the shipped icon to a standard size. icon_original="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/${APP_MAIN_ICON_MULTIARCH}" icon_resized="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/${APP_MAIN_ICON_MULTIARCH}_resized.png" convert \ -background none -gravity center "$icon_original" \ -resize 128x128 -extent 128x128 "$icon_resized" mv "$icon_resized" "$icon_original" content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # libsentry.so is linked against an unversioned libcurl.so. case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) ## The old multiarch builds did not include libsentry.so. ;; (*) ln --symbolic \ "$(path_libraries_system)/libcurl.so.4" \ "$(package_path 'PKG_BIN')$(path_libraries)/libcurl.so" ;; esac # Write launchers. case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES libSDL2-2.0.so.0" ## The game crashes on launch when using the wayland backend of SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # The game crashes on launch when using the wayland backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' launchers_generation ;; esac # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-dawnmaker.sh0000755000000000000000000000661414471751340014140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dawnmaker # send your bug reports to bugs@dotslashplay.it ### script_version=20250126.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dawnmaker' GAME_NAME='Dawnmaker' ARCHIVE_BASE_3_NAME='Dawnmaker-linux-x64-1.2.0.zip' ARCHIVE_BASE_3_MD5='23b01fda61bae2c0606e89350eb3f5c1' ARCHIVE_BASE_3_SIZE='514262' ARCHIVE_BASE_3_VERSION='1.2.0-itch.2024.10.10' ARCHIVE_BASE_3_URL='https://arpentor.itch.io/dawnmaker' ARCHIVE_BASE_2_NAME='Dawnmaker-linux-x64-1.2.0.zip' ARCHIVE_BASE_2_MD5='9cdf881907da6b58e77a5e41e7e557f1' ARCHIVE_BASE_2_SIZE='514261' ARCHIVE_BASE_2_VERSION='1.2.0-itch.2024.10.07' ARCHIVE_BASE_1_NAME='Dawnmaker-linux-x64-1.1.0.zip' ARCHIVE_BASE_1_MD5='2c0aa2792cd83b61ae1316cb00fc9304' ARCHIVE_BASE_1_SIZE='506494' ARCHIVE_BASE_1_VERSION='1.1.0-itch.2024.08.12' ARCHIVE_BASE_0_NAME='Dawnmaker-linux-x64-1.0.0.zip' ARCHIVE_BASE_0_MD5='8b2e787dafb8e92fb5714e907108f509' ARCHIVE_BASE_0_SIZE='505449' ARCHIVE_BASE_0_VERSION='1.0.0-itch.2024.07.31' CONTENT_PATH_DEFAULT='Dawnmaker-linux-x64' CONTENT_LIBS_BIN_FILES=' libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so' CONTENT_GAME_BIN_FILES=' chrome_crashpad_handler chrome-sandbox Dawnmaker' CONTENT_GAME_DATA_FILES=' locales resources snapshot_blob.bin v8_context_snapshot.bin icudtl.dat vk_swiftshader_icd.json chrome_100_percent.pak chrome_200_percent.pak resources.pak version' CONTENT_DOC_DATA_FILES=' LICENSE LICENSES.chromium.html' APP_MAIN_EXE='Dawnmaker' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libatk-bridge-2.0.so.0 libatspi.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libdrm.so.2 libexpat.so.1 libgbm.so.1 libgcc_s.so.1 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpthread.so.0 libsmime3.so libvulkan.so.1 libX11.so.6 libxcb.so.1 libXcomposite.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libxkbcommon.so.0 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default ## Link some libraries in the game data path, ## as the engine fails to find them even when they are in LD_LIBRARY_PATH path_libraries=$(path_libraries) path_data="$(package_path 'PKG_BIN')$(path_game_data)" for library in \ 'libGLESv2.so' \ 'libEGL.so' do ln --symbolic "${path_libraries}/${library}" "$path_data" done # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-defenders-quest.sh0000755000000000000000000000440714471751340015263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Defender's Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20251020.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='defenders-quest' GAME_NAME='Defenderʼs Quest: Valley of the Forgotten' ARCHIVE_BASE_0_NAME='defender_s_quest_en_dx_2_2_6_21273.sh' ARCHIVE_BASE_0_MD5='32b2dbbdcd8cfd697e15002ad9f62710' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='2.2.6-gog21273' ARCHIVE_BASE_0_URL='https://www.gog.com/game/defenders_quest' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' zlib.dso regexp.dso std.dso lime.ndll' CONTENT_GAME_BIN_FILES=' crashdumper flixel manifest DefendersQuest LevelEditor' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='DefendersQuest' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES libSDL2-2.0.so.0" launchers_generation 'PKG_BIN' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-democratic-socialism-simulator.sh0000755000000000000000000000361014471751340020270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Democratic Socialism Simulator # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='democratic-socialism-simulator' GAME_NAME='Democratic Socialism Simulator' ARCHIVE_BASE_0_NAME='DemSocSim - Linux.zip' ARCHIVE_BASE_0_MD5='0650cf369b46ac0315b5fc6331b606d1' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.0-itch.2020.02.21' ARCHIVE_BASE_0_URL='https://molleindustria.itch.io/democratic-socialism-simulator' UNITY3D_NAME='DemSocSim' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-door-kickers.sh0000755000000000000000000000524114471751340014556 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 mortalius set -o errexit ### # Door Kickers # send your bug reports to bugs@dotslashplay.it ### script_version=20250126.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='door-kickers' GAME_NAME='Door Kickers' ARCHIVE_BASE_GOG_0_NAME='gog_door_kickers_2.7.0.11.sh' ARCHIVE_BASE_GOG_0_MD5='29efa58e4a61060b0b1211dddd2476a1' ARCHIVE_BASE_GOG_0_SIZE='1400000' ARCHIVE_BASE_GOG_0_VERSION='1.0.9-gog2.7.0.11' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/door_kickers' ARCHIVE_BASE_HUMBLE_0_NAME='DoorKickers1448920440.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='0126db31867ae0e7a7eceee54de4a177' ARCHIVE_BASE_HUMBLE_0_SIZE='1400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.9-humble151130' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/door-kickers' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='DoorKickers' CONTENT_LIBS_BIN_RELATIVE_PATH='linux_libs' ## Shipped libavdevice.so.55 is not actually used CONTENT_LIBS_BIN_FILES=' libavcodec.so.55 libavformat.so.55 libavutil.so.52 libswscale.so.2' CONTENT_GAME_BIN_FILES=' DoorKickers' CONTENT_GAME_DATA_FILES=' data mods' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='DoorKickers' APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libtheoradec.so.1 libtheoraenc.so.1 libX11.so.6 libXxf86vm.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dorfromantik.sh0000755000000000000000000000440314471751340014660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dorfromantik # send your bug reports to bugs@dotslashplay.it ### script_version=20240603.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dorfromantik' GAME_NAME='Dorfromantik' ARCHIVE_BASE_1_NAME='setup_dorfromantik_1.1.5.1_(64bit)_(63493).exe' ARCHIVE_BASE_1_MD5='bb9e95a19d859e32c1d65164601522ce' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_dorfromantik_1.1.5.1_(64bit)_(63493)-1.bin' ARCHIVE_BASE_1_PART1_MD5='97fe88ae0f76a094a8db809364a204f0' ARCHIVE_BASE_1_SIZE='592862' ARCHIVE_BASE_1_VERSION='1.1.5.1-gog63493' ARCHIVE_BASE_1_URL='https://www.gog.com/en/game/dorfromantik' ARCHIVE_BASE_0_NAME='setup_dorfromantik_1.0.5_(64bit)_(55407).exe' ARCHIVE_BASE_0_MD5='2d22a2a6d6d0e7b0527f48ae055ba138' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_dorfromantik_1.0.5_(64bit)_(55407)-1.bin' ARCHIVE_BASE_0_PART1_MD5='debd7fbad4a3a1aaed0f143ec7c2327c' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.0.5-gog55407' UNITY3D_NAME='dorfromantik' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Toukana Interactive/Dorfromantik' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dungeons-2-expansions.sh0000755000000000000000000000411514471751340016327 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dungeons 2 expansions: # - A Chance of Dragons # - A Song of Sand and Fire # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dungeons-2' GAME_NAME='Dungeons 2' EXPANSION_ID_DRAGONS='a-chance-of-dragons' EXPANSION_NAME_DRAGONS='A Chance of Dragons' EXPANSION_ID_SONG='a-song-of-sand-of-fire' EXPANSION_NAME_SONG='A Song of Sand and Fire' ARCHIVE_BASE_DRAGONS_0_NAME='gog_dungeons_2_a_chance_of_dragons_2.0.0.1.sh' ARCHIVE_BASE_DRAGONS_0_MD5='d6fcaa7bc9051c8c67301a4af58a7632' ARCHIVE_BASE_DRAGONS_0_SIZE='10000' ARCHIVE_BASE_DRAGONS_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_BASE_DRAGONS_0_URL='https://www.gog.com/game/dungeons_2_a_chance_of_dragons' ARCHIVE_BASE_SONG_0_NAME='gog_dungeons_2_a_song_of_sand_and_fire_2.0.0.1.sh' ARCHIVE_BASE_SONG_0_MD5='70e6beffef5e2197280fe7c9d8052ea5' ARCHIVE_BASE_SONG_0_SIZE='10000' ARCHIVE_BASE_SONG_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_BASE_SONG_0_URL='https://www.gog.com/game/dungeons_2_a_song_of_sand_and_fire' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Dungeons2_Data' PKG_MAIN_DEPS="$GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dungeons-2.sh0000755000000000000000000000502314471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dungeons 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20251016.5 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='dungeons-2' GAME_NAME='Dungeons 2' ARCHIVE_BASE_0_NAME='gog_dungeons_2_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='990a4ded53d43f28e4e16c0885f515cd' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.6.1.29-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dungeons_2' UNITY3D_NAME='Dungeons2' UNITY3D_PLUGINS=' libRakNet.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=' server' CONTENT_GAME0_DATA_FILES=' AssetBundles mapexports *.block *.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN_DEPENDENCIES_COMMANDS=' mono' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of parts of shipped Mono build, ## because of Unity3D default files list including all *.so files. rm --recursive "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/mono" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Integrate with system-provided Mono. mono_bin_directory="$(package_path 'PKG_BIN')$(path_game_data)/mono/bin" mkdir --parents "$mono_bin_directory" ln --symbolic '/usr/bin/mono' "$mono_bin_directory" # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-empire-earth-1.sh0000755000000000000000000001330714471751340014704 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Empire Earth # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='empire-earth-1' GAME_NAME='Empire Earth' GAME_ID_CONQUEST='the-art-of-conquest' GAME_NAME_CONQUEST='The Art of Conquest' ARCHIVE_BASE_1_NAME='setup_empire_earth_gold_2.0.0.2974_gog_v3_(78415).exe' ARCHIVE_BASE_1_MD5='fcad43c5606236f5fe5023a40f6b539e' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='703925' ARCHIVE_BASE_1_VERSION='2.0.0.2974-gog78415' ARCHIVE_BASE_1_URL='https://www.gog.com/game/empire_earth_gold_edition' ARCHIVE_BASE_0_NAME='setup_empire_earth_gold_2.0.0.2974_(25522).exe' ARCHIVE_BASE_0_MD5='e8b22cdc9520aefab49e21349b20b731' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='710000' ARCHIVE_BASE_0_VERSION='2.0.0.2974-gog25522' # Archive content CONTENT_PATH_DEFAULT='.' ## Empire Earth - base game CONTENT_GAME_BIN_RELATIVE_PATH='empire earth' CONTENT_GAME_BIN_FILES=' redist *.cfg *.dll *.exe *.inf' CONTENT_GAME_DATA_RELATIVE_PATH='empire earth' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' manual.pdf scenario_editor_manual.pdf technology_tree.pdf' ## The Art of Conquest expansion CONTENT_GAME_BIN_CONQUEST_RELATIVE_PATH='empire earth - the art of conquest' CONTENT_GAME_BIN_CONQUEST_FILES=' redist *.cfg *.dll *.exe *.inf' CONTENT_GAME_DATA_CONQUEST_RELATIVE_PATH='empire earth - the art of conquest' CONTENT_GAME_DATA_CONQUEST_FILES=' data' CONTENT_DOC_DATA_CONQUEST_FILES=' technology_tree_aoc.pdf manual_aoc.pdf' # Applications ## Allow running the expansion without having to start the base game first. WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\SSSI\Empire Earth] "Installed From Directory"="'"\\\\${GAME_ID}\\\\${GAME_ID}\\\\"'" "Installed From Volume"="C:"' ## Ensure that background music is played during gameplay (WINE 9.0) ## Without these verbs, music is only played in the game menus. ## TODO: Check if all of these verbs are required WINE_WINETRICKS_VERBS='dmusic dmloader dmsynth dmime dmband dmcompos dmstyle' ## Empire Earth - base game APP_MAIN_EXE='empire earth.exe' APP_MAIN_ICON='empire earth/empire earth.exe' USER_PERSISTENT_DIRECTORIES=" ${GAME_ID}/data/Scenarios ${GAME_ID}/data/Saved Games ${GAME_ID}/Users" ## The Art of Conquest expansion APP_CONQUEST_ID="${GAME_ID}-${GAME_ID_CONQUEST}" APP_CONQUEST_NAME="$GAME_NAME - $GAME_NAME_CONQUEST" APP_CONQUEST_EXE='ee-aoc.exe' APP_CONQUEST_ICON='empire earth - the art of conquest/ee-aoc.exe' USER_PERSISTENT_DIRECTORIES="$USER_PERSISTENT_DIRECTORIES ${GAME_ID_CONQUEST}/data/Scenarios ${GAME_ID_CONQUEST}/data/Saved Games ${GAME_ID_CONQUEST}/Users" # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA PKG_BIN_CONQUEST PKG_DATA_CONQUEST' ## Empire Earth - base game PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## The Art of Conquest expansion PKG_BIN_CONQUEST_ID="${GAME_ID}-${GAME_ID_CONQUEST}" PKG_BIN_CONQUEST_ARCH='32' PKG_BIN_CONQUEST_DESCRIPTION="$GAME_NAME_CONQUEST" PKG_BIN_CONQUEST_DEPENDENCIES_SIBLINGS=' PKG_BIN PKG_DATA_CONQUEST' PKG_DATA_CONQUEST_ID="${GAME_ID}-${GAME_ID_CONQUEST}-data" PKG_DATA_CONQUEST_DESCRIPTION="$GAME_NAME_CONQUEST - data" PKG_DATA_CONQUEST_DEPENDENCIES_SIBLINGS=' PKG_DATA' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' 'APP_MAIN' content_inclusion_icons 'PKG_DATA_CONQUEST' 'APP_CONQUEST' content_inclusion 'GAME_BIN' 'PKG_BIN' "$(path_game_data)/$(game_id)" content_inclusion 'GAME_DATA' 'PKG_DATA' "$(path_game_data)/$(game_id)" content_inclusion 'DOC_DATA' 'PKG_DATA' "$(path_documentation)/$(game_id)" content_inclusion 'GAME_BIN_CONQUEST' 'PKG_BIN_CONQUEST' "$(path_game_data)/${GAME_ID_CONQUEST}" content_inclusion 'GAME_DATA_CONQUEST' 'PKG_DATA_CONQUEST' "$(path_game_data)/${GAME_ID_CONQUEST}" content_inclusion 'DOC_DATA_CONQUEST' 'PKG_DATA_CONQUEST' "$(path_documentation)/${GAME_ID_CONQUEST}" rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers APP_MAIN_EXE="$(game_id)/$(application_exe 'APP_MAIN')" ## Run the game binary from its parent directory game_exec_line() { cat <<- EOF cd "$(dirname "$APP_MAIN_EXE")" \$(wine_command) "$(basename "$APP_MAIN_EXE")" "\$@" EOF } launchers_generation 'PKG_BIN' 'APP_MAIN' APP_CONQUEST_EXE="${GAME_ID_CONQUEST}/$(application_exe 'APP_CONQUEST')" ## Run the game binary from its parent directory game_exec_line() { cat <<- EOF cd "$(dirname "$APP_CONQUEST_EXE")" \$(wine_command) "$(basename "$APP_CONQUEST_EXE")" "\$@" EOF } ## Prevent a file path conflict if the registry script ## is created both for the base game and the expansion. wine_registry_script_write() { return 0; } launchers_generation 'PKG_BIN_CONQUEST' 'APP_CONQUEST' # Build package packages_generation print_instructions 'PKG_BIN' 'PKG_DATA' ( GAME_NAME="$GAME_NAME - $GAME_NAME_CONQUEST" print_instructions 'PKG_BIN_CONQUEST' 'PKG_DATA_CONQUEST' ) # Clean up working_directory_cleanup exit 0 games/play-endless-space-1.sh0000755000000000000000000000503414471751340015046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Endless Space # send your bug reports to bugs@dotslashplay.it ### script_version=20250127.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='endless-space-1' GAME_NAME='Endless Space' ARCHIVE_BASE_0_NAME='setup_endlesstm_space_-_definitive_edition_1.0.0._(64185).exe' ARCHIVE_BASE_0_MD5='84ccf58a734694a63db59e599344a254' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_endlesstm_space_-_definitive_edition_1.0.0._(64185)-1.bin' ARCHIVE_BASE_0_PART1_MD5='65a88affbdbff4aa78808b941184051b' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.1.59-gog64185' ARCHIVE_BASE_0_URL='https://www.gog.com/game/endless_space_definitive_edition' UNITY3D_NAME='endless space' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_BIN_FILES=' avprowindowsmedia.dll fmod_event.dll fmod_event_net.dll fmodex.dll stlport_vc10.5.2.dll' ## The game fails to start if the Galaxy libraries are not available. CONTENT_GAME1_BIN_FILES=' galaxy.dll galaxycsharp.dll galaxycsharpglue.dll' CONTENT_GAME0_DATA_FILES=' public public_xp1' ## The game engine expects write access to XML files. USER_PERSISTENT_FILES=' *.xml' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Endless Space' ## Skip playing the logo movie on launch, ## as it prevents reaching the game menu APP_MAIN_OPTIONS='-nologo' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-endzone-1-expansions.sh0000755000000000000000000000427014471751340016150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Endzone: A World Apart expansions: # - Halloween # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='endzone-1' GAME_NAME='Endzone: A World Apart' EXPANSION_ID_HALLOWEEN='halloween' EXPANSION_NAME_HALLOWEEN='Halloween' # Archives ## Halloween ARCHIVE_BASE_HALLOWEEN_EN_0_NAME='setup_endzone_-_a_world_apart_happy_halloween_1.2.8630.30586_(64bit)_(66949).exe' ARCHIVE_BASE_HALLOWEEN_EN_0_MD5='377587121fed6ba7f8a2d914cdbfdbf7' ARCHIVE_BASE_HALLOWEEN_EN_0_TYPE='innosetup' ARCHIVE_BASE_HALLOWEEN_EN_0_SIZE='26268' ARCHIVE_BASE_HALLOWEEN_EN_0_VERSION='1.2.8630.30586-gog66949' ARCHIVE_BASE_HALLOWEEN_EN_0_URL='https://www.gog.com/game/endzone_a_world_apart_halloween' ARCHIVE_BASE_HALLOWEEN_FR_0_NAME='setup_endzone_-_a_world_apart_happy_halloween_1.2.8630.30586_(french_64bit)_(66949).exe' ARCHIVE_BASE_HALLOWEEN_FR_0_MD5='f50c8540bc740a57d4b430c92d608160' ARCHIVE_BASE_HALLOWEEN_FR_0_TYPE='innosetup' ARCHIVE_BASE_HALLOWEEN_FR_0_SIZE='26268' ARCHIVE_BASE_HALLOWEEN_FR_0_VERSION='1.2.8630.30586-gog66949' ARCHIVE_BASE_HALLOWEEN_FR_0_URL='https://www.gog.com/game/endzone_a_world_apart_halloween' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' mods' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-endzone-1.sh0000755000000000000000000000545314471751340013767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Endzone: A World Apart # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='endzone-1' GAME_NAME='Endzone: A World Apart' ARCHIVE_BASE_EN_0_NAME='setup_endzone_-_a_world_apart_1.2.8630.30586_(64bit)_(66949).exe' ARCHIVE_BASE_EN_0_MD5='01a625f5c0e07d324fb07d8ac43fdd14' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_endzone_-_a_world_apart_1.2.8630.30586_(64bit)_(66949)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='de1aba989b4798154fce6e4fa2ffbf46' ARCHIVE_BASE_EN_0_SIZE='4242544' ARCHIVE_BASE_EN_0_VERSION='1.2.8630.30586-gog66949' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/endzone_a_world_apart' ARCHIVE_BASE_FR_0_NAME='setup_endzone_-_a_world_apart_1.2.8630.30586_(french_64bit)_(66949).exe' ARCHIVE_BASE_FR_0_MD5='003ad80a6a2ce4123ffe2d98c5fe0de5' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_endzone_-_a_world_apart_1.2.8630.30586_(french_64bit)_(66949)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='5f68efd024f84f71edad63e2122f7bf3' ARCHIVE_BASE_FR_0_SIZE='4244580' ARCHIVE_BASE_FR_0_VERSION='1.2.8630.30586-gog66949' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/endzone_a_world_apart' UNITY3D_NAME='endzone' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_L10N_FILES=' localizations' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Gentlymad Studios/Endzone' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-etherlords-1.sh0000755000000000000000000000425514471751340014477 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Etherlords # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='etherlords-1' GAME_NAME='Etherlords' ARCHIVE_BASE_0_NAME='setup_etherlords_2.0.0.10.exe' ARCHIVE_BASE_0_MD5='13f406358ed79d49754ef3a48de6c2db' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1458432' ARCHIVE_BASE_0_VERSION='1.07-gog2.0.0.10' ARCHIVE_BASE_0_URL='https://www.gog.com/game/etherlords' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' mp3dec.asi 2dintmmx.dll 3dfpfpu.dll binkw32.dll dsetup.dll mss32.dll etherlords.exe combatcamera.ini settings.ini' CONTENT_GAME_DATA_FILES=' campaigns duel maps resources halloffame.hl ar_text.res' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt readme 1.07.txt' USER_PERSISTENT_DIRECTORIES=' campaign duel save' USER_PERSISTENT_FILES=' halloffame.hl *.ini' ## The game does not seem to support resolutions higher than 1024×768 WINE_VIRTUAL_DESKTOP='1024x768' APP_MAIN_EXE='etherlords.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-europa-universalis-2.sh0000755000000000000000000000564014471751340016161 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Europa Universalis 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250127.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='europa-universalis-2' GAME_NAME='Europa Universalis Ⅱ' ARCHIVE_BASE_0_NAME='setup_europa_universalis2_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='eb19eab80b45105d571bf684e18118a4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.09-gog2.0.0.1' ARCHIVE_BASE_0_SIZE='430000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/europa_universalis_ii' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' config *.cfg *.dll *.exe *.ini *.tlb' CONTENT_GAME_DATA_FILES=' ai avi db gfx map music scenarios sfx tutorial' CONTENT_DOC_DATA_FILES=' *.doc *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' config scenarios/save games' USER_PERSISTENT_FILES=' config.eu history.txt *.cfg *.ini' ## Run the game in a WINE virtual desktop ## to prevent problems with mouse cursor behaviour (WINE 8.0) WINE_VIRTUAL_DESKTOP='1280x1024' APP_MAIN_EXE='eu2.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='eu2_settings.exe' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="$GAME_NAME - Scenario editor" APP_EDITOR_EXE='scenario editor.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Fix music playback REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fix music playback config_file='music.ini' config_field='music' config_value="C:\\\\$(game_id)\\\\music" sed_pattern="s/^${config_field}=.*$/${config_field}=${config_value}/" dos2unix --quiet "$config_file" sed --in-place "$sed_pattern" "$config_file" unix2dos --quiet "$config_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-everything-is-garbage.sh0000755000000000000000000000351514471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Everything is Garbage # send your bug reports to bugs@dotslashplay.it ### script_version=20240616.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='everything-is-garbage' GAME_NAME='Everything is Garbage' ARCHIVE_BASE_0_NAME='Everything is Garbage Linux Post Jam.zip' ARCHIVE_BASE_0_MD5='0f59c7be925145ab2cf88fa7fb5d30af' ARCHIVE_BASE_0_SIZE='99170' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vfqd.itch.io/everything-is-garbage' UNITY3D_NAME='Everything Is Garbage' UNITY3D_PLUGINS=' libVText.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-factory-town.sh0000755000000000000000000000415214471751340014616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Factory Town # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='factory-town' GAME_NAME='Factory Town' ARCHIVE_BASE_1_NAME='setup_factory_town_2.2.7_(64bit)_(77941).exe' ARCHIVE_BASE_1_MD5='79cfa439d7468916310f9293dbfc6c6c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='598856' ARCHIVE_BASE_1_VERSION='2.2.7-gog77941' ARCHIVE_BASE_1_URL='https://www.gog.com/game/factory_town' ARCHIVE_BASE_0_NAME='setup_factory_town_1.13.3_(64bit)_(53563).exe' ARCHIVE_BASE_0_MD5='4b9199687bd79a1d8f7641bf4577a2dd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.13.3-gog53563' UNITY3D_NAME='factory town' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/82 Apps/Factory Town' ## Work around missing text WINE_WINETRICKS_VERBS='arial' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fallout-tactics.sh0000755000000000000000000001140714471751340015261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Fallout Tactics # send your bug reports to bugs@dotslashplay.it ### script_version=20251019.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='fallout-tactics' GAME_NAME='Fallout Tactics' ARCHIVE_BASE_EN_1_NAME='setup_fallout_tactics_2.1.0.12.exe' ARCHIVE_BASE_EN_1_MD5='9fc5a3b9e0c6a01187383886776c2889' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='1900000' ARCHIVE_BASE_EN_1_VERSION='1.27-gog2.1.0.12' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/fallout_tactics' ARCHIVE_BASE_EN_0_NAME='setup_fallout_tactics_2.1.0.12.exe' ARCHIVE_BASE_EN_0_MD5='9cc1d9987d8a2fa6c1cc6cf9837758ad' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1827190' ARCHIVE_BASE_EN_0_VERSION='1.27-gog2.1.0.12' ARCHIVE_BASE_FR_0_NAME='setup_fallout_tactics_french_2.1.0.12.exe' ARCHIVE_BASE_FR_0_MD5='520c29934290910cdeecbc7fcca68f2b' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1813158' ARCHIVE_BASE_FR_0_VERSION='1.27-gog2.1.0.12' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/fallout_tactics' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bos.exe bos_hr.exe fot_hires_patch.exe ft tools.exe fttools_hires_patch.exe tacticslauncher.exe *.dll core/*.cfg' CONTENT_GAME_L10N_FILES=' tactics.cfg core/campaigns core/editor core/entities core/gui core/locale core/movie core/sound core/music/custom/readme.txt core/entities_0.bos core/gui_0.bos core/locale_0.bos core/loc-mis_*.bos core/mis-core_?.bos' CONTENT_GAME_DATA_FILES=' bitmaps miles fallouttactics.ico core/missions core/tables core/user core/game.pck core/*.bos' CONTENT_DOC_L10N_FILES=' editor_readme.txt fallout editor end user license agreement.txt patch readme.txt readme.txt *.pdf *.rtf' USER_PERSISTENT_DIRECTORIES=' core/user' USER_PERSISTENT_FILES=' *.cfg' ## The game binaries can be patched by the provided resolution tool. USER_PERSISTENT_FILES="${USER_PERSISTENT_FILES:-} bos.exe ft tools.exe" ## When using desktop resolution higher than the ones supported by the game, ## the mouse cursor is stuck in an invisible box on the top left side of the screen. ## (WINE 10.0-rc2) WINE_VIRTUAL_DESKTOP='1024x768' APPLICATIONS_LIST=' APP_MAIN APP_MAIN_RESOLUTION APP_TOOLS APP_TOOLS_RESOLUTION' APP_MAIN_EXE='bos.exe' APP_MAIN_ICON='fallouttactics.ico' APP_MAIN_RESOLUTION_ID="${GAME_ID}-hires" APP_MAIN_RESOLUTION_NAME="$GAME_NAME - HD patch" APP_MAIN_RESOLUTION_CAT='Settings' APP_MAIN_RESOLUTION_EXE='fot_hires_patch.exe' APP_MAIN_RESOLUTION_ICON='fallouttactics.ico' APP_TOOLS_ID="${GAME_ID}-tools" APP_TOOLS_NAME="$GAME_NAME - Toolbox" APP_TOOLS_EXE='ft tools.exe' APP_TOOLS_ICON='fallouttactics.ico' APP_TOOLS_RESOLUTION_ID="${APP_TOOLS_ID}-hires" APP_TOOLS_RESOLUTION_NAME="$APP_TOOLS_NAME - HD patch" APP_TOOLS_RESOLUTION_CAT='Settings' APP_TOOLS_RESOLUTION_EXE='fttools_hires_patch.exe' APP_TOOLS_RESOLUTION_ICON='fallouttactics.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localisation' PKG_L10N_DESCRIPTION_FR='French localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Tweak default game settings. config_file="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/core/bos.cfg" ## Prevent graphical artifacts on map scrolling. ## (WINE 10.0-rc2) sed --in-place --expression='s/{display.bpp} = {.*}/{display.bpp} = {16}/' "$config_file" ## Set the highest supported game resolution. sed_expression='s/{display.height} = {.*}/{display.height} = {768}/' sed_expression="${sed_expression};s/{display.width} = {.*}/{display.width} = {1024}/" sed --in-place --expression="$sed_expression" "$config_file" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-fantasy-general.sh0000755000000000000000000000625714471751340015252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Fantasy General # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='fantasy-general' GAME_NAME='Fantasy General' ARCHIVE_BASE_EN_1_NAME='fantasy_general_1_0_20211006_50653.sh' ARCHIVE_BASE_EN_1_MD5='386197b3a09d9d004b46698c30282e5d' ARCHIVE_BASE_EN_1_SIZE='256857' ARCHIVE_BASE_EN_1_VERSION='1.0-gog50653' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/fantasy_general' ARCHIVE_BASE_FR_1_NAME='fantasy_general_french_1_0_20211006_50653.sh' ARCHIVE_BASE_FR_1_MD5='8cfe4a811a85aab1e73011b8e0435852' ARCHIVE_BASE_FR_1_SIZE='237356' ARCHIVE_BASE_FR_1_VERSION='1.0-gog50653' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/fantasy_general' ARCHIVE_BASE_EN_0_NAME='gog_fantasy_general_2.0.0.8.sh' ARCHIVE_BASE_EN_0_MD5='59b86b9115ae013d2e23a8b4b7b771fd' ARCHIVE_BASE_EN_0_SIZE='260000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_FR_0_NAME='gog_fantasy_general_french_2.0.0.8.sh' ARCHIVE_BASE_FR_0_MD5='1b188304b4cca838e6918ca6e2d9fe2b' ARCHIVE_BASE_FR_0_SIZE='240000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.0.0.8' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_PATH_DEFAULT_EN_0='data/noarch/data' CONTENT_PATH_DEFAULT_FR_0='data/noarch/data' CONTENT_GAME_MAIN_FILES=' dat exe music saves shp sound game.gog game.ins *.bat' CONTENT_DOC_MAIN_FILES=' manual.pdf *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' Fantasy General - Manual.pdf' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' dat/prefs.dat' DOSBOX_DISK_IMAGE_PATH='game.ins' APP_MAIN_EXE='exe/barena.exe' APP_MAIN_ICON='../../support/icon.png' APP_MAIN_ICON_EN_0='../support/icon.png' APP_MAIN_ICON_FR_0='../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. ## Run the game binary from its parent directory. game_exec_line() { cat <<- 'EOF' cd exe barena.exe $@ EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-farabel.sh0000755000000000000000000000473014471751340013560 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Farabel # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='farabel' GAME_NAME='Farabel' ARCHIVE_BASE_1_NAME='Farabel_Linux_1.2.1.zip' ARCHIVE_BASE_1_MD5='383d59983be2cedd151006d8f932e5ff' ARCHIVE_BASE_1_SIZE='430000' ARCHIVE_BASE_1_VERSION='1.2.1-humble181130' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/farabel' ARCHIVE_BASE_0_NAME='Farabel1.2Linux.zip' ARCHIVE_BASE_0_MD5='f2bd82b7a9578e8d7f084286cdb5943f' ARCHIVE_BASE_0_SIZE='430000' ARCHIVE_BASE_0_VERSION='1.2-humble181031' UNITY3D_NAME='Farabel' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Farabel' CONTENT_PATH_DEFAULT_0='.' FAKE_HOME_PERSISTENT_DIRECTORIES=' Frogames/Farabel' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fear-equation.sh0000755000000000000000000000562414471751340014727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fear Equation # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='fear-equation' GAME_NAME='Fear Equation' ARCHIVE_BASE_0_NAME='gog_fear_equation_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='5bf5e55b87d8a9a2256a0a56531692c7' ARCHIVE_BASE_0_SIZE='898207' ARCHIVE_BASE_0_VERSION='2.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fear_equation' UNITY3D_NAME='FearEquation' UNITY3D_PLUGINS=' libsqlite3.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Work around the engine looking for libsqlite3.so in an hardcoded path library_source="$(path_libraries)/libsqlite3.so" library_destination="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/libsqlite3.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" library_destination="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/libsqlite3.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fox-and-flock.sh0000755000000000000000000000745014471751340014616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fox & Flock # send your bug reports to bugs@dotslashplay.it ### script_version=20250129.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fox-and-flock' GAME_NAME='Fox & Flock' ARCHIVE_BASE_32BIT_0_NAME='ff-linux-32.zip' ARCHIVE_BASE_32BIT_0_MD5='6e0dee8044a05ee5bfef8a9885f3f456' ARCHIVE_BASE_32BIT_0_SIZE='320000' ARCHIVE_BASE_32BIT_0_VERSION='1.0.0-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/fox-flock' ARCHIVE_BASE_64BIT_0_NAME='ff-linux-64.zip' ARCHIVE_BASE_64BIT_0_MD5='d0c5d87d2415f4eb49c591612e877f42' ARCHIVE_BASE_64BIT_0_SIZE='310000' ARCHIVE_BASE_64BIT_0_VERSION='1.0.0-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/fox-flock' CONTENT_PATH_DEFAULT='Fox and Flock' CONTENT_LIBS_BIN_FILES=' libffmpegsumo.so' CONTENT_GAME_BIN_FILES=' foxandflock nw.pak' CONTENT_GAME_DATA_FILES=' dist locales icudtl.dat package.json' APP_MAIN_EXE='foxandflock' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_128 APP_MAIN_ICON_256' APP_MAIN_ICON_SOURCE='dist/img/icon.png' APP_MAIN_ICON_128='dist/img/icon_128.png' APP_MAIN_ICON_256='dist/img/icon_256.png' ## Convert the shipped icon to standard resolutions REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libcairo.so.2 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnotify.so.4 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libplc4.so libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXtst.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files find . -name '*.rsrc' -delete # Convert the shipped icon to standard resolutions icon_source=$(icon_path 'APP_MAIN_ICON_SOURCE') for icon_resolution in '128x128' '256x256'; do icon_destination=$(printf '%s' "$icon_source" | sed "s/\.png$/_${icon_resolution%x*}&/") convert "$icon_source" -resize "$icon_resolution" "$icon_destination" done rm "$icon_source" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link the shipped library into the game directory to avoid a crash on launch library_path_source="$(path_libraries)/libffmpegsumo.so" library_path_destination="$(package_path 'PKG_BIN')$(path_game_data)" mkdir --parents "$library_path_destination" ln --symbolic "$library_path_source" "$library_path_destination" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-gangsters-organized-crime.sh0000755000000000000000000000402414471751340017232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Gangsters: Organized Crime # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='gangsters-organized-crime' GAME_NAME='Gangsters: Organized Crime' ARCHIVE_BASE_0_NAME='setup_gangsters_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='794561f7b449e3bfce82611f11f8bc9b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gangsters_organized_crime' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' gangsters.exe *.dll *.ini' CONTENT_GAME_DATA_FILES=' data graphics help multiplayer scenarios music samples scenarios sound tutorials video security.key' CONTENT_DOC_DATA_FILES=' eula *.pdf *.txt *.wri' USER_PERSISTENT_DIRECTORIES=' multiplayer saved games saved games' APP_MAIN_EXE='gangsters.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gemcraft.sh0000755000000000000000000000431314471751340013751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # GemCraft - Frostborn Wrath # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='gemcraft' GAME_NAME='GemCraft - Frostborn Wrath' ARCHIVE_BASE_1_NAME='setup_gemcraft_-_frostborn_wrath_v.1.2.1a_(45694).exe' ARCHIVE_BASE_1_MD5='8b04168cdb93ed44440fe0ed4181085d' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='220000' ARCHIVE_BASE_1_VERSION='1.2.1a-gog45694' ARCHIVE_BASE_1_URL='https://www.gog.com/game/gemcraft_frostborn_wrath' ARCHIVE_BASE_0_NAME='setup_gemcraft_-_frostborn_wrath_v.1.1.2b_(38400).exe' ARCHIVE_BASE_0_MD5='3810dc7a58febb3120047a0a041f1b60' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='220000' ARCHIVE_BASE_0_VERSION='1.1.2b-gog38400' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' gemcraft frostborn wrath.exe adobe air' CONTENT_GAME_DATA_FILES=' icons meta-inf mimetype *.swf' WINE_PERSISTENT_DIRCTORIES=' users/${USER}/AppData/Roaming/com.giab.games.gcfw users/${USER}/Documents/GCFW-backup1' APP_MAIN_EXE='gemcraft frostborn wrath.exe' APP_MAIN_ICON='icons/gcfw-icon-128x128tr.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-giants-citizen-kabuto.sh0000755000000000000000000000551714471751340016403 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Giants: Citizen Kabuto # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='giants-citizen-kabuto' GAME_NAME='Giants: Citizen Kabuto' ARCHIVE_BASE_0_NAME='setup_giants_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='33015108ece9e52b1f525880f0867e11' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/giants_citizen_kabuto' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' eaxman.dll gs_ds.dll *.ini *.exe' CONTENT_GAME0_BIN_RELATIVE_PATH='__support/dx7' CONTENT_GAME0_BIN_FILES=' gg_dx7r.dll' ## TODO: Dedicated localisation packages should be built. CONTENT_GAME_DATA_FILES=' bin music stream streamenglish streamfrench streamgerman streamitalian streamspanish giants.ico language_setup.png' CONTENT_DOC_DATA_FILES=' manual.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' savegame' USER_PERSISTENT_FILES=' *.ini' ## Set required registry keys. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\PlanetMoon\Giants] "1.00.000"="" "DefPlayer"="Player" "DestDir"="C:\\'"${GAME_ID}"'" "Language"="9" "SrcDir"="C:\\" [HKEY_CURRENT_USER\Software\PlanetMoon\Giants\IDs\Player] "GameOptions"=dword:00000bf3 "VideoDepth"=dword:00000020 "VideoDevGuid"=hex:e0,3d,e6,84,aa,46,cf,11,81,6f,00,00,c0,20,15,6e "VideoDrvGuid"=hex:3e,1e,b7,d7,d5,41,cf,11,f3,73,25,a2,0e,c2,cd,35' APP_MAIN_EXE='giants.exe' APP_MAIN_ICON='giants.ico' APP_L10N_ID="${GAME_ID}-language" APP_L10N_NAME="$GAME_NAME - Language setup" APP_L10N_EXE='language_setup.exe' APP_L10N_ICON='giants.ico' APP_L10N_CAT='Settings' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-glittermitten-grove.sh0000755000000000000000000000434514471751340016201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Glittermitten Grove # send your bug reports to bugs@dotslashplay.it ### script_version=20250203.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='glittermitten-grove' GAME_NAME='Glittermitten Grove' ARCHIVE_BASE_0_NAME='GlittermittenGrove_linux_v131.zip' ARCHIVE_BASE_0_MD5='ac9b4c6ce2b7ca921e080cee308bf952' ARCHIVE_BASE_0_SIZE='857226' ARCHIVE_BASE_0_VERSION='1.3.1-itch' ARCHIVE_BASE_0_URL='https://twinbeard.itch.io/glittermitten-grove' UNITY3D_NAME='gmg' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='GlittermittenGrove_linux_v131' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gnomoria.sh0000755000000000000000000000564014471751340014000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Gnomoria # send your bug reports to bugs@dotslashplay.it ### script_version=20251016.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='gnomoria' GAME_NAME='Gnomoria' ARCHIVE_BASE_0_NAME='gog_gnomoria_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='3d0a9ed4fb45ff133b5a7410a2114455' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gnomoria' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content Mod Files mono Gnomoria.exe Gnomoria.png FNA.dll FNA.dll.config gnomorialib.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Gnomoria.exe' APP_MAIN_ICON='Gnomoria.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' ## 7za is used by the save system. PKG_MAIN_DEPENDENCIES_COMMANDS=' 7za' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_DESCRIPTION='shipped libraries' PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libogg.so.0 libpthread.so.0 libtheoradec.so.1 libvorbis.so.0' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Integrate with system-provided 7-zip. link_source='/usr/bin/7za' link_destination="$(package_path 'PKG_MAIN')$(path_game_data)" mkdir --parents \ "${link_destination}/lib64" \ "${link_destination}/lib" ln --symbolic "$link_source" "${link_destination}/lib64" ln --symbolic "$link_source" "${link_destination}/lib" # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-godhood.sh0000755000000000000000000000513114471751340013603 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Godhood # send your bug reports to bugs@dotslashplay.it ### script_version=20251016.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='godhood' GAME_NAME='Godhood' ARCHIVE_BASE_1_NAME='godhood_1_2_4_46551.sh' ARCHIVE_BASE_1_MD5='441bcc84f29501da6ea40216113750d1' ARCHIVE_BASE_1_SIZE='900000' ARCHIVE_BASE_1_VERSION='1.2.4-gog46551' ARCHIVE_BASE_1_URL='https://www.gog.com/game/godhood' ARCHIVE_BASE_0_NAME='godhood_1_0_5_40453.sh' ARCHIVE_BASE_0_MD5='6e0b1ddd1b9575b2c7d1f61ca2d57681' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='1.0.5-gog40453' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' godhood' CONTENT_GAME_DATA_FILES=' *.bni data i18n' USER_PERSISTENT_DIRECTORIES=' userdata savedata' APP_MAIN_EXE='godhood' APP_MAIN_ICON='../support/icon.png' ## Create required directory for saved games. APP_MAIN_PRERUN=' # Create required directory for saved games mkdir --parents savedata/Player ' ## The game crashes on launch when SDL_VIDEODRIVER is set to "wayland". APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # The game crashes on launch when SDL_VIDEODRIVER is set to "wayland". if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc++.so.1 libc++abi.so.1 libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-graveyard-keeper.sh0000755000000000000000000000422014471751340015413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Graveyard Keeper # send your bug reports to bugs@dotslashplay.it ### script_version=20250428.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='graveyard-keeper' GAME_NAME='Graveyard Keeper' ARCHIVE_BASE_1_NAME='graveyard_keeper_1_405_55214.sh' ARCHIVE_BASE_1_MD5='6d5461b5f7571dd5bed0561d26f189b3' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.405-gog55214' ARCHIVE_BASE_1_URL='https://www.gog.com/game/graveyard_keeper' ARCHIVE_BASE_0_NAME='graveyard_keeper_1_402_51180.sh' ARCHIVE_BASE_0_MD5='4095c374cade58a5ce4f6a80377cbcb7' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.402-gog51180' UNITY3D_NAME='Graveyard Keeper' UNITY3D_PLUGINS=' sqlite3.so' ## The game crashes on launch if the steam_api library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-greedcorp.sh0000755000000000000000000000563014471751340014136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # GreedCorp # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='greedcorp' GAME_NAME='GreedCorp' # This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='greedcorp_linux.tar.gz' ARCHIVE_BASE_0_MD5='c1cffb847bf65caf8abd4c589813884a' ARCHIVE_BASE_0_SIZE='205594' ARCHIVE_BASE_0_VERSION='1.0-humble' UNITY3D_NAME='GreedCorp' UNITY3D_PLUGINS=' liblibAI.so' CONTENT_PATH_DEFAULT='GreedCorp' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Work around the engine looking for a library in an hardcoded path library_source="$(path_libraries)/liblibAI.so" library_destination="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/liblibAI.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" library_destination="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/liblibAI.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" # Write launchers ## Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-habitat.sh0000755000000000000000000000426214471751340013600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Habitat # send your bug reports to bugs@dotslashplay.it ### script_version=20251016.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='habitat' GAME_NAME='Habitat' ARCHIVE_BASE_0_NAME='Habitat_LinuxUniversal.zip' ARCHIVE_BASE_0_MD5='f845ef815eb821fdc6124f9cd1b5ca8f' ARCHIVE_BASE_0_SIZE='1499636' ARCHIVE_BASE_0_VERSION='1.0-humble160219' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/habitat' UNITY3D_NAME='Habitat' UNITY3D_PLUGINS=' libFbxImport.so ScreenSelector.so' CONTENT_PATH_DEFAULT='Habitat_LinuxUniversal' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Delete MacOS junk. find "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" -name '*.rsrc' -delete # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-halcyon-6.sh0000755000000000000000000000454114471751340013764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Halcyon 6 # send your bug reports to bugs@dotslashplay.it ### script_version=20250204.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='halcyon-6' GAME_NAME='Halcyon 6' ## This DRM-free build is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='H6LINUX.zip' ARCHIVE_BASE_0_MD5='60ac71e3532c201024cf9a430e2746a1' ARCHIVE_BASE_0_VERSION='1.4.3.4-humble1' ARCHIVE_BASE_0_SIZE='1700000' UNITY3D_NAME='H6' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='H6LINUXGoG' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## Ignore extraction warnings due to extra "../" inner path component archive_extraction_default 2>/dev/null || true # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hard-west-expansions.sh0000755000000000000000000000326714471751340016253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Hard West expansions: # - Scars of Freedom # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='hard-west' GAME_NAME='Hard West' EXPANSION_ID_SCARS='scars-of-freedom' EXPANSION_NAME_SCARS='Scars of Freedom' ARCHIVE_BASE_SCARS_0_NAME='gog_hard_west_scars_of_freedom_dlc_2.3.0.4.sh' ARCHIVE_BASE_SCARS_0_MD5='bb4368afaf670f0d8ebc09f7bb1f3713' ARCHIVE_BASE_SCARS_0_SIZE='200000' ARCHIVE_BASE_SCARS_0_VERSION='1.0-gog2.3.0.4' ARCHIVE_BASE_SCARS_0_URL='https://www.gog.com/game/hard_west_scars_of_freedom' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Data_dlc1' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_default # Build package. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-hard-west.sh0000755000000000000000000000402214471751340014054 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hard West # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='hard-west' GAME_NAME='Hard West' ARCHIVE_BASE_0_NAME='gog_hard_west_2.7.0.8.sh' ARCHIVE_BASE_0_MD5='de81eb547f089d8bdb96b7a2fe38e8c0' ARCHIVE_BASE_0_SIZE='5688858' ARCHIVE_BASE_0_VERSION='1.5-gog2.7.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hard_west' UNITY3D_NAME='HardWest' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' Data' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build package. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-helium-rain.sh0000755000000000000000000000656414471751340014405 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Helium Rain # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='helium-rain' GAME_NAME='Helium Rain' ARCHIVE_BASE_GOG_0_NAME='helium_rain_1_3_6_27662.sh' ARCHIVE_BASE_GOG_0_MD5='6e430338f7292ebe9c864603034fb9f1' ARCHIVE_BASE_GOG_0_SIZE='3930976' ARCHIVE_BASE_GOG_0_VERSION='1.3.6-gog27662' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/helium_rain' ARCHIVE_BASE_ITCH_0_NAME='helium-rain-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='8d43439154be0d3de242b39f63decd7c' ARCHIVE_BASE_ITCH_0_SIZE='3930288' ARCHIVE_BASE_ITCH_0_VERSION='1.3.6-itch.2019.02.09' ARCHIVE_BASE_ITCH_0_URL='https://deimos-games.itch.io/helium-rain' UNREALENGINE4_NAME='HeliumRain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICONS_LIST_ITCH='APP_MAIN_ICON_ITCH_16 APP_MAIN_ICON_ITCH_24 APP_MAIN_ICON_ITCH_32 APP_MAIN_ICON_ITCH_64 APP_MAIN_ICON_ITCH_96 APP_MAIN_ICON_ITCH_128 APP_MAIN_ICON_ITCH_256 APP_MAIN_ICON_ITCH_512' APP_MAIN_ICON_ITCH_16='Icons/16x16.png' APP_MAIN_ICON_ITCH_24='Icons/24x24.png' APP_MAIN_ICON_ITCH_32='Icons/32x32.png' APP_MAIN_ICON_ITCH_64='Icons/64x64.png' APP_MAIN_ICON_ITCH_96='Icons/96x96.png' APP_MAIN_ICON_ITCH_128='Icons/128x128.png' APP_MAIN_ICON_ITCH_256='Icons/256x256.png' APP_MAIN_ICON_ITCH_512='Icons/512x512.png' ## The following hacks can not be avoided by forcing the use of system-provided SDL, ## because the game crashes on launch when it is used instead of the shipped SDL build. ## - The game crashes on launch when the Wayland backend of SDL is used. ## - The game does not output any sound when the ALSA backend of SDL is used. APP_MAIN_PRERUN=' # The game crashes on launch when the Wayland backend of SDL is used. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi # The game does not output any sound when the ALSA backend of SDL is used. if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-help-will-come-tomorrow.sh0000755000000000000000000000375114471751340016672 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Help Will Come Tomorrow # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='help-will-come-tomorrow' GAME_NAME='Help Will Come Tomorrow' ARCHIVE_BASE_0_NAME='help_will_come_tomorrow_2_2_46357.sh' ARCHIVE_BASE_0_MD5='571a9565aa3e6d9db9017ca51c916b3b' ARCHIVE_BASE_0_SIZE='1572046' ARCHIVE_BASE_0_VERSION='2.2-gog46357' ARCHIVE_BASE_0_URL='https://www.gog.com/game/help_will_come_tomorrow' UNITY3D_NAME='Help Will Come Tomorrow' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-heroes-chronicles.sh0000755000000000000000000003655114471751340015606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Heroes Chronicles series: # - Chapter 1 # - Chapter 2 # - Chapter 3 # - Chapter 4 # - Chapter 5 # - Chapter 6 # - Chapter 7 # - Chapter 8 # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='heroes-chronicles' GAME_NAME='Heroes Chronicles' GAME_ID_CHAPTER1="${GAME_ID}-1" GAME_NAME_CHAPTER1="${GAME_NAME}: Chapter 1 - Warlords of the Wasteland" GAME_ID_CHAPTER2="${GAME_ID}-2" GAME_NAME_CHAPTER2="${GAME_NAME}: Chapter 2 - Conquest of the Underworld" GAME_ID_CHAPTER3="${GAME_ID}-3" GAME_NAME_CHAPTER3="${GAME_NAME}: Chapter 3 - Masters of the Elements" GAME_ID_CHAPTER4="${GAME_ID}-4" GAME_NAME_CHAPTER4="${GAME_NAME}: Chapter 4 - Clash of the Dragons" GAME_ID_CHAPTER5="${GAME_ID}-5" GAME_NAME_CHAPTER5="${GAME_NAME}: Chapter 5 - The World Tree" GAME_ID_CHAPTER6="${GAME_ID}-6" GAME_NAME_CHAPTER6="${GAME_NAME}: Chapter 6 - The Fiery Moon" GAME_ID_CHAPTER7="${GAME_ID}-7" GAME_NAME_CHAPTER7="${GAME_NAME}: Chapter 7 - Revolt of the Beastmasters" GAME_ID_CHAPTER8="${GAME_ID}-8" GAME_NAME_CHAPTER8="${GAME_NAME}: Chapter 8 - The Sword of Frost" # Archives ## Chapter 1 ARCHIVE_BASE_CHAPTER1_0_NAME='setup_heroes_chronicles_chapter1_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER1_0_MD5='f584d6e11ed47d1d40e973a691adca5d' ARCHIVE_BASE_CHAPTER1_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER1_0_SIZE='500000' ARCHIVE_BASE_CHAPTER1_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER1_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 2 ARCHIVE_BASE_CHAPTER2_0_NAME='setup_heroes_chronicles_chapter2_2.1.0.43.exe' ARCHIVE_BASE_CHAPTER2_0_MD5='0d240bc0309814ba251c2d9b557cf69f' ARCHIVE_BASE_CHAPTER2_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER2_0_SIZE='510000' ARCHIVE_BASE_CHAPTER2_0_VERSION='1.0-gog2.1.0.43' ARCHIVE_BASE_CHAPTER2_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 3 ARCHIVE_BASE_CHAPTER3_0_NAME='setup_heroes_chronicles_chapter3_2.1.0.41.exe' ARCHIVE_BASE_CHAPTER3_0_MD5='cb21751572960d47a259efc17b92c88c' ARCHIVE_BASE_CHAPTER3_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER3_0_SIZE='490000' ARCHIVE_BASE_CHAPTER3_0_VERSION='1.0-gog2.1.0.41' ARCHIVE_BASE_CHAPTER3_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 4 ARCHIVE_BASE_CHAPTER4_0_NAME='setup_heroes_chronicles_chapter4_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER4_0_MD5='922291e16176cb4bd37ca88eb5f3a19e' ARCHIVE_BASE_CHAPTER4_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER4_0_SIZE='490000' ARCHIVE_BASE_CHAPTER4_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER4_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 5 ARCHIVE_BASE_CHAPTER5_0_NAME='setup_heroes_chronicles_chapter5_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER5_0_MD5='57b3ec588e627a2da30d3bc80ede5b1d' ARCHIVE_BASE_CHAPTER5_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER5_0_SIZE='470000' ARCHIVE_BASE_CHAPTER5_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER5_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 6 ARCHIVE_BASE_CHAPTER6_0_NAME='setup_heroes_chronicles_chapter6_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER6_0_MD5='64becfde1882eecd93fb02bf215eff11' ARCHIVE_BASE_CHAPTER6_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER6_0_SIZE='470000' ARCHIVE_BASE_CHAPTER6_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER6_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 7 ARCHIVE_BASE_CHAPTER7_0_NAME='setup_heroes_chronicles_chapter7_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER7_0_MD5='07c189a731886b2d3891ac1c65581d40' ARCHIVE_BASE_CHAPTER7_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER7_0_SIZE='500000' ARCHIVE_BASE_CHAPTER7_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER7_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' ## Chapter 8 ARCHIVE_BASE_CHAPTER8_0_NAME='setup_heroes_chronicles_chapter8_2.1.0.42.exe' ARCHIVE_BASE_CHAPTER8_0_MD5='2b3e4c366db0f7e3e8b15b0935aad528' ARCHIVE_BASE_CHAPTER8_0_TYPE='innosetup' ARCHIVE_BASE_CHAPTER8_0_SIZE='480000' ARCHIVE_BASE_CHAPTER8_0_VERSION='1.0-gog2.1.0.42' ARCHIVE_BASE_CHAPTER8_0_URL='https://www.gog.com/game/heroes_chronicles_all_chapters' CONTENT_INNER_PATH_CHAPTER1='warlords of the wasteland' CONTENT_INNER_PATH_CHAPTER2='conquest of the underworld' CONTENT_INNER_PATH_CHAPTER3='masters of the elements' CONTENT_INNER_PATH_CHAPTER4='clash of the dragons' CONTENT_INNER_PATH_CHAPTER5='the world tree' CONTENT_INNER_PATH_CHAPTER6='the fiery moon' CONTENT_INNER_PATH_CHAPTER7='revolt of the beastmasters' CONTENT_INNER_PATH_CHAPTER8='the sword of frost' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/*.asi ${CONTENT_INNER_PATH_CHAPTER1}/*.dll ${CONTENT_INNER_PATH_CHAPTER1}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/*.asi ${CONTENT_INNER_PATH_CHAPTER2}/*.dll ${CONTENT_INNER_PATH_CHAPTER2}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/*.asi ${CONTENT_INNER_PATH_CHAPTER3}/*.dll ${CONTENT_INNER_PATH_CHAPTER3}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/*.asi ${CONTENT_INNER_PATH_CHAPTER4}/*.dll ${CONTENT_INNER_PATH_CHAPTER4}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/*.asi ${CONTENT_INNER_PATH_CHAPTER5}/*.dll ${CONTENT_INNER_PATH_CHAPTER5}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/*.asi ${CONTENT_INNER_PATH_CHAPTER6}/*.dll ${CONTENT_INNER_PATH_CHAPTER6}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/*.asi ${CONTENT_INNER_PATH_CHAPTER7}/*.dll ${CONTENT_INNER_PATH_CHAPTER7}/*.exe" CONTENT_GAME_BIN_FILES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/*.asi ${CONTENT_INNER_PATH_CHAPTER8}/*.dll ${CONTENT_INNER_PATH_CHAPTER8}/*.exe" CONTENT_GAME_DATA_FILES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/data ${CONTENT_INNER_PATH_CHAPTER1}/games ${CONTENT_INNER_PATH_CHAPTER1}/maps" CONTENT_GAME_DATA_FILES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/data ${CONTENT_INNER_PATH_CHAPTER2}/games ${CONTENT_INNER_PATH_CHAPTER2}/maps" CONTENT_GAME_DATA_FILES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/data ${CONTENT_INNER_PATH_CHAPTER3}/games ${CONTENT_INNER_PATH_CHAPTER3}/maps" CONTENT_GAME_DATA_FILES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/data ${CONTENT_INNER_PATH_CHAPTER4}/games ${CONTENT_INNER_PATH_CHAPTER4}/maps" CONTENT_GAME_DATA_FILES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/data ${CONTENT_INNER_PATH_CHAPTER5}/games ${CONTENT_INNER_PATH_CHAPTER5}/maps" CONTENT_GAME_DATA_FILES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/data ${CONTENT_INNER_PATH_CHAPTER6}/games ${CONTENT_INNER_PATH_CHAPTER6}/maps" CONTENT_GAME_DATA_FILES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/data ${CONTENT_INNER_PATH_CHAPTER7}/games ${CONTENT_INNER_PATH_CHAPTER7}/maps" CONTENT_GAME_DATA_FILES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/data ${CONTENT_INNER_PATH_CHAPTER8}/games ${CONTENT_INNER_PATH_CHAPTER8}/maps" CONTENT_GAME_COMMON_FILES=' data mp3' CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER1="$CONTENT_INNER_PATH_CHAPTER1" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER2="$CONTENT_INNER_PATH_CHAPTER2" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER3="$CONTENT_INNER_PATH_CHAPTER3" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER4="$CONTENT_INNER_PATH_CHAPTER4" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER5="$CONTENT_INNER_PATH_CHAPTER5" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER6="$CONTENT_INNER_PATH_CHAPTER6" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER7="$CONTENT_INNER_PATH_CHAPTER7" CONTENT_DOC_DATA_RELATIVE_PATH_CHAPTER8="$CONTENT_INNER_PATH_CHAPTER8" CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES_CHAPTER1=" ${CONTENT_INNER_PATH_CHAPTER1}/games ${CONTENT_INNER_PATH_CHAPTER1}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER2=" ${CONTENT_INNER_PATH_CHAPTER2}/games ${CONTENT_INNER_PATH_CHAPTER2}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER3=" ${CONTENT_INNER_PATH_CHAPTER3}/games ${CONTENT_INNER_PATH_CHAPTER3}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER4=" ${CONTENT_INNER_PATH_CHAPTER4}/games ${CONTENT_INNER_PATH_CHAPTER4}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER5=" ${CONTENT_INNER_PATH_CHAPTER5}/games ${CONTENT_INNER_PATH_CHAPTER5}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER6=" ${CONTENT_INNER_PATH_CHAPTER6}/games ${CONTENT_INNER_PATH_CHAPTER6}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER7=" ${CONTENT_INNER_PATH_CHAPTER7}/games ${CONTENT_INNER_PATH_CHAPTER7}/maps" USER_PERSISTENT_DIRECTORIES_CHAPTER8=" ${CONTENT_INNER_PATH_CHAPTER8}/games ${CONTENT_INNER_PATH_CHAPTER8}/maps" USER_PERSISTENT_FILES_CHAPTER1=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER1}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER2=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER2}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER3=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER3}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER4=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER4}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER5=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER5}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER6=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER6}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER7=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER7}/data/*.lod" USER_PERSISTENT_FILES_CHAPTER8=" data/*.lod ${CONTENT_INNER_PATH_CHAPTER8}/data/*.lod" # Allow to skip intro video on first launch + set default settings. WINE_REGISTRY_INIT=' "Animate SpellBook"=dword:00000001 "Autosave"=dword:00000001 "Bink Video"=dword:00000000 "Blackout Computer"=dword:00000000 "Combat Army Info Level"=dword:00000000 "Combat Auto Creatures"=dword:00000001 "Combat Auto Spells"=dword:00000001 "Combat Ballista"=dword:00000001 "Combat Catapult"=dword:00000001 "Combat First Aid Tent"=dword:00000001 "Combat Shade Level"=dword:00000000 "Combat Speed"=dword:00000000 "Computer Walk Speed"=dword:00000003 "First Time"=dword:00000000 "Last Music Volume"=dword:00000005 "Last Sound Volume"=dword:00000005 "Main Game Full Screen"=dword:00000001 "Main Game Show Menu"=dword:00000001 "Main Game X"=dword:0000000a "Main Game Y"=dword:0000000a "Move Reminder"=dword:00000001 "Music Volume"=dword:00000005 "Quick Combat"=dword:00000000 "Show Combat Grid"=dword:00000000 "Show Combat Mouse Hex"=dword:00000000 "Show Intro"=dword:00000001 "Show Route"=dword:00000001 "Sound Volume"=dword:00000005 "Test Blit"=dword:00000000 "Test Decomp"=dword:00000000 "Test Read"=dword:00000000 "Town Outlines"=dword:00000001 "Video Subtitles"=dword:00000001 "Walk Speed"=dword:00000002 "Window Scroll Speed"=dword:00000001' WINE_REGEDIT_INIT_CHAPTER1=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Warlords] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER1}\\\\${CONTENT_INNER_PATH_CHAPTER1}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER2=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Underworld] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER2}\\\\${CONTENT_INNER_PATH_CHAPTER2}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER3=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Elements] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER3}\\\\${CONTENT_INNER_PATH_CHAPTER3}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER4=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Dragons] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER4}\\\\${CONTENT_INNER_PATH_CHAPTER4}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER5=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\WorldTree] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER5}\\\\${CONTENT_INNER_PATH_CHAPTER5}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER6=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\FieryMoon] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER6}\\\\${CONTENT_INNER_PATH_CHAPTER6}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER7=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Beastmaster] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER7}\\\\${CONTENT_INNER_PATH_CHAPTER7}\\\\\" $WINE_REGEDIT_INIT" WINE_REGEDIT_INIT_CHAPTER8=" [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Sword] \"AppPath\"=\"C:\\\\${GAME_ID_CHAPTER8}\\\\${CONTENT_INNER_PATH_CHAPTER8}\\\\\" $WINE_REGEDIT_INIT" ## TODO: Check why a virtual desktop is required. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_CHAPTER1="${CONTENT_INNER_PATH_CHAPTER1}/warlords.exe" APP_MAIN_EXE_CHAPTER2="${CONTENT_INNER_PATH_CHAPTER2}/underworld.exe" APP_MAIN_EXE_CHAPTER3="${CONTENT_INNER_PATH_CHAPTER3}/elements.exe" APP_MAIN_EXE_CHAPTER4="${CONTENT_INNER_PATH_CHAPTER4}/dragons.exe" APP_MAIN_EXE_CHAPTER5="${CONTENT_INNER_PATH_CHAPTER5}/worldtree.exe" APP_MAIN_EXE_CHAPTER6="${CONTENT_INNER_PATH_CHAPTER6}/fierymoon.exe" APP_MAIN_EXE_CHAPTER7="${CONTENT_INNER_PATH_CHAPTER7}/beastmaster.exe" APP_MAIN_EXE_CHAPTER8="${CONTENT_INNER_PATH_CHAPTER8}/sword.exe" PACKAGES_LIST=' PKG_BIN PKG_COMMON PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION="data shared between all $GAME_NAME games" PKG_DATA_ID_CHAPTER1="${GAME_ID_CHAPTER1}-data" PKG_DATA_ID_CHAPTER2="${GAME_ID_CHAPTER2}-data" PKG_DATA_ID_CHAPTER3="${GAME_ID_CHAPTER3}-data" PKG_DATA_ID_CHAPTER4="${GAME_ID_CHAPTER4}-data" PKG_DATA_ID_CHAPTER5="${GAME_ID_CHAPTER5}-data" PKG_DATA_ID_CHAPTER6="${GAME_ID_CHAPTER6}-data" PKG_DATA_ID_CHAPTER7="${GAME_ID_CHAPTER7}-data" PKG_DATA_ID_CHAPTER8="${GAME_ID_CHAPTER8}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_COMMON' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' ## Use a common directory and symbolic links to handle data shared between all Heroes Chronicles games PATH_GAME_COMMON=$(path_game_data | sed "s/$(game_id)$/${GAME_ID}/") content_inclusion 'GAME_COMMON' 'PKG_COMMON' "$PATH_GAME_COMMON" content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { local application application="$1" local application_exe application_exe=$(application_exe "$application") cat <<- EOF cd "$(dirname "$application_exe")" \$(wine_command) "$(basename "$application_exe")" "\$@" EOF } WINE_REGISTRY_INIT=$(context_value 'WINE_REGISTRY_INIT') launchers_generation 'PKG_BIN' # Build packages ## Use a common directory and symbolic links to handle data shared between all Heroes Chronicles games PKG_DATA_POSTINST_RUN="$(package_postinst_actions 'PKG_DATA') # Link common files shared by the games series ln --symbolic '${PATH_GAME_COMMON}/data' '$(path_game_data)' ln --symbolic '${PATH_GAME_COMMON}/mp3' '$(path_game_data)'" PKG_DATA_PRERM_RUN="$(package_prerm_actions 'PKG_DATA') # Delete links to common files shared by the games series rm '$(path_game_data)/data' rm '$(path_game_data)/mp3'" ( ## Use the generic values of GAME_ID and GAME_NAME for the shared data package. unset "$(context_name_archive 'GAME_ID')" unset "$(context_name_archive 'GAME_NAME')" packages_generation 'PKG_COMMON' ) packages_generation 'PKG_BIN' 'PKG_DATA' print_instructions # Clean up working_directory_cleanup exit 0 games/play-heroes-of-might-and-magic-1.sh0000755000000000000000000000773614471751340017146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic # send your bug reports to bugs@dotslashplay.it ### script_version=20250205.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='heroes-of-might-and-magic-1' GAME_NAME='Heroes of Might and Magic: A Strategic Quest' ARCHIVE_BASE_EN_2_NAME='setup_heroes_of_might_and_magic_1.5_editor_fix_(77097).exe' ARCHIVE_BASE_EN_2_MD5='77e51f82f815601154ed29649609c31e' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_SIZE='623025' ARCHIVE_BASE_EN_2_VERSION='1.5-gog77097' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/heroes_of_might_and_magic' ARCHIVE_BASE_FR_2_NAME='setup_heroes_of_might_and_magic_1.5_editor_fix_(french)_(77097).exe' ARCHIVE_BASE_FR_2_MD5='4df415227a134721a41c92a8e4ceed4b' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_SIZE='622364' ARCHIVE_BASE_FR_2_VERSION='1.5-gog77097' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/heroes_of_might_and_magic' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_1.2_(1.1)_(33754).exe' ARCHIVE_BASE_EN_1_MD5='f3100c6547ef1bb82af6dd6fec66bcbf' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='630000' ARCHIVE_BASE_EN_1_VERSION='1.2-gog33754' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_1.2_(1.1)_(french)_(33754).exe' ARCHIVE_BASE_FR_1_MD5='ed647dbfc98cd59dba885dc4fd005a62' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='630000' ARCHIVE_BASE_FR_1_VERSION='1.2-gog33754' ARCHIVE_BASE_EN_0_NAME='setup_heroes_of_might_and_magic_2.3.0.45.exe' ARCHIVE_BASE_EN_0_MD5='2cae1821085090e30e128cd0a76b0d21' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='530000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.3.0.45' ARCHIVE_BASE_FR_0_NAME='setup_heroes_of_might_and_magic_french_2.3.0.45.exe' ARCHIVE_BASE_FR_0_MD5='9ec736a2a1b97dc36257f583f42864ac' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='530000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.3.0.45' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_MAIN_FILES=' games wing.32 heroes.cfg wail32.dll editor.exe heroes.exe netbios.exe setup.exe data/campaign.hs data/heroes.agg data/standard.hs maps/*.map' CONTENT_GAME0_MAIN_PATH='sys' CONTENT_GAME0_MAIN_FILES=' wing32.dll' CONTENT_GAME_COMMON_FILES=' data homm1.gog maps/*.cmp' CONTENT_DOC_COMMON_FILES=' help manual.pdf reference_card.pdf readme.txt' GAME_IMAGE='homm1.gog' GAME_IMAGE_TYPE='iso' USER_PERSISTENT_DIRECTORIES=' games maps' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='heroes.exe' APP_MAIN_ICON='app/goggame-1207658748.ico' APP_MAIN_ICON_EN_0='goggame-1207658748.ico' APP_MAIN_ICON_FR_0='goggame-1207658748.ico' PACKAGES_LIST=' PKG_MAIN PKG_COMMON' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DESCRIPTION_EN='English version' PKG_MAIN_DESCRIPTION_FR='French version' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_COMMON' PKG_COMMON_ID="${GAME_ID}-common" PKG_COMMON_DESCRIPTION='common data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_COMMON' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-heroes-of-might-and-magic-2.sh0000755000000000000000000001270114471751340017133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250205.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='heroes-of-might-and-magic-2' GAME_NAME='Heroes of Might and Magic Ⅱ: The Price of Loyalty' ARCHIVE_BASE_EN_2_NAME='setup_heroes_of_might_and_magic_2_gold_1.01_(2.1)_(33438).exe' ARCHIVE_BASE_EN_2_MD5='ff7738a587f10a16116743fe26267f65' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_SIZE='590000' ARCHIVE_BASE_EN_2_VERSION='2.1-gog33438' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/heroes_of_might_and_magic_2_gold_edition' ARCHIVE_BASE_FR_2_NAME='setup_heroes_of_might_and_magic_2_gold_1.01_(2.1)_(french)_(33438).exe' ARCHIVE_BASE_FR_2_MD5='b4613fc6b238c83d37247851d5e5a27e' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_SIZE='510000' ARCHIVE_BASE_FR_2_VERSION='2.1-gog33438' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/heroes_of_might_and_magic_2_gold_edition' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_2_gold_1.0_hotfix_(29821).exe' ARCHIVE_BASE_EN_1_MD5='2dc1cb74c1e8de734fa97fc3d2484212' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='480000' ARCHIVE_BASE_EN_1_VERSION='2.1-gog29821' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_2_gold_1.0_hotfix_(french)_(29821).exe' ARCHIVE_BASE_FR_1_MD5='1b43a2ce13128d77e8f2e40e72635af1' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='410000' ARCHIVE_BASE_FR_1_VERSION='2.1-gog29821' ARCHIVE_BASE_EN_0_NAME='setup_homm2_gold_2.1.0.29.exe' ARCHIVE_BASE_EN_0_MD5='b6785579d75e47936517a79374b17ebc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='480000' ARCHIVE_BASE_EN_0_VERSION='2.1-gog2.1.0.29' ARCHIVE_BASE_FR_0_NAME='setup_homm2_gold_french_2.1.0.29.exe' ARCHIVE_BASE_FR_0_MD5='c49d8f5d0f6d56e54cf6f9c7a526750f' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='410000' ARCHIVE_BASE_FR_0_VERSION='2.1-gog2.1.0.29' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_MAIN_FILES=' data games journals maps sound wing.32 heroes2.cfg editor2.exe heroes2.exe install.exe netbios.exe homm2.gog homm2.ins homm2.inst' CONTENT_GAME0_MAIN_PATH='sys' CONTENT_GAME0_MAIN_FILES=' wing32.dll' CONTENT_DOC_MAIN_FILES=' eula help readme.txt h2camp.txt polcamp.txt *.pdf' CONTENT_GAME_MUSIC_SW_RELATIVE_PATH='music/sw' CONTENT_GAME_MUSIC_SW_FILES=' *.ogg' CONTENT_GAME_MUSIC_POL_RELATIVE_PATH='music/pol' CONTENT_GAME_MUSIC_POL_FILES=' *.ogg' GAME_IMAGE='homm2.ins' GAME_IMAGE_TYPE='cdrom' USER_PERSISTENT_DIRECTORIES=' games maps' USER_PERSISTENT_FILES=' data/standard.hs *.cfg' APP_MAIN_EXE='heroes2.exe' APP_MAIN_ICON='app/goggame-1207658785.ico' APP_MAIN_ICON_EN_0='goggame-1207658785.ico' APP_MAIN_ICON_FR_0='goggame-1207658785.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="$GAME_NAME - editor" APP_EDITOR_EXE='editor2.exe' APP_EDITOR_ICON='app/goggame-1207658785.ico' APP_EDITOR_ICON_EN_0='goggame-1207658785.ico' APP_EDITOR_ICON_FR_0='goggame-1207658785.ico' PACKAGES_LIST=' PKG_MAIN PKG_MUSIC_SW PKG_MUSIC_POL' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${PKG_MAIN_ID}-en" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DESCRIPTION_EN='English version' PKG_MAIN_DESCRIPTION_FR='French version' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_MUSIC' PKG_MUSIC_ID="${GAME_ID}-music" PKG_MUSIC_SW_ID="${PKG_MUSIC_ID}-sw" PKG_MUSIC_POL_ID="${PKG_MUSIC_ID}-pol" PKG_MUSIC_SW_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_POL_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_SW_DESCRIPTION='The Succession Wars music' PKG_MUSIC_POL_DESCRIPTION='The Price of Loyalty music' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure consistent name for disk image disk_image_alternative_name='homm2.inst' if [ -e "$disk_image_alternative_name" ]; then mv "$disk_image_alternative_name" "$GAME_IMAGE" fi # Copy common music files shared between both soundtracks rm \ 'music/homm2_04.ogg' \ 'music/homm2_05.ogg' \ 'music/homm2_06.ogg' \ 'music/homm2_07.ogg' \ 'music/homm2_08.ogg' \ 'music/homm2_09.ogg' cp --link 'music'/*.ogg 'music/sw' cp --link 'music'/*.ogg 'music/pol' rm 'music'/*.ogg ) # Include game data content_inclusion_icons content_inclusion 'GAME_MUSIC_SW' 'PKG_MUSIC_SW' "$(path_game_data)/music" content_inclusion 'GAME_MUSIC_POL' 'PKG_MUSIC_POL' "$(path_game_data)/music" content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation printf '\n' printf '%s:' "$(package_description 'PKG_MUSIC_SW')" print_instructions 'PKG_MAIN' 'PKG_MUSIC_SW' printf '%s:' "$(package_description 'PKG_MUSIC_POL')" print_instructions 'PKG_MAIN' 'PKG_MUSIC_POL' # Clean up working_directory_cleanup exit 0 games/play-heroes-of-might-and-magic-3.sh0000755000000000000000000002341014471751340017133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='heroes-of-might-and-magic-3' GAME_NAME='Heroes of Might and Magic Ⅲ' ARCHIVE_BASE_EN_1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(77075).exe' ARCHIVE_BASE_EN_1_MD5='b1c0f5b5d83c17bede6bdd97762b648a' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(77075)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='0f0aa941fdd99f78a1b58ff5e5d9eb74' ARCHIVE_BASE_EN_1_SIZE='1028132' ARCHIVE_BASE_EN_1_VERSION='4.0-gog77075' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' ARCHIVE_BASE_FR_1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(french)_(77075).exe' ARCHIVE_BASE_FR_1_MD5='940d3b2dfc0c31427ec66d68058d73c5' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(french)_(77075)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='c1933c4f7009b3b9729160b9021d7863' ARCHIVE_BASE_FR_1_SIZE='1024066' ARCHIVE_BASE_FR_1_VERSION='4.0-gog77075' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' ARCHIVE_BASE_RU_1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(russian)_(77075).exe' ARCHIVE_BASE_RU_1_MD5='77817c7c60d5980f5fcebd55e7dcb08c' ARCHIVE_BASE_RU_1_TYPE='innosetup' ARCHIVE_BASE_RU_1_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(3.2)_gog_0.1_(russian)_(77075)-1.bin' ARCHIVE_BASE_RU_1_PART1_MD5='32af9457f179c3f4bf3b10f76cfde71f' ARCHIVE_BASE_RU_1_SIZE='1000278' ARCHIVE_BASE_RU_1_VERSION='4.0-gog77075' ARCHIVE_BASE_RU_1_URL='https://www.gog.com/game/heroes_of_might_and_magic_3_complete_edition' ARCHIVE_BASE_EN_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(28740).exe' ARCHIVE_BASE_EN_0_MD5='8dcd6c4a8c72c65a6920665e28245c57' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(28740)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='4285d54f27c40e815905c7069b6f9f84' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='4.0-gog28740' ARCHIVE_BASE_FR_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(french)_(28740).exe' ARCHIVE_BASE_FR_0_MD5='be4b59590146299dbe77bda7a4ea4178' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(french)_(28740)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='88b71e0fd44e5be1ad6791e74120c61c' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='4.0-gog28740' ARCHIVE_BASE_RU_0_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(russian)_(28740).exe' ARCHIVE_BASE_RU_0_MD5='33018e8355f59b9e532d7429e1aaeeae' ARCHIVE_BASE_RU_0_TYPE='innosetup' ARCHIVE_BASE_RU_0_PART1_NAME='setup_heroes_of_might_and_magic_3_complete_4.0_(russian)_(28740)-1.bin' ARCHIVE_BASE_RU_0_PART1_MD5='5d409ee2e2b3ec32fa9838ca1d601e02' ARCHIVE_BASE_RU_0_SIZE='1100000' ARCHIVE_BASE_RU_0_VERSION='4.0-gog28740' ARCHIVE_BASE_OLDTEMPLATE_EN_1_NAME='setup_homm_3_complete_4.0_(10665).exe' ARCHIVE_BASE_OLDTEMPLATE_EN_1_MD5='0c97452fc4da4e8811173f21df873fab' ARCHIVE_BASE_OLDTEMPLATE_EN_1_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_EN_1_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_EN_1_VERSION='4.0-gog10665' ARCHIVE_BASE_OLDTEMPLATE_FR_1_NAME='setup_homm_3_complete_french_4.0_(10665).exe' ARCHIVE_BASE_OLDTEMPLATE_FR_1_MD5='6c3ee33a531bd0604679581ab267d8a3' ARCHIVE_BASE_OLDTEMPLATE_FR_1_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_FR_1_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_FR_1_VERSION='4.0-gog10665' ARCHIVE_BASE_OLDTEMPLATE_EN_0_NAME='setup_homm3_complete_2.0.0.16.exe' ARCHIVE_BASE_OLDTEMPLATE_EN_0_MD5='263d58f8cc026dd861e9bbcadecba318' ARCHIVE_BASE_OLDTEMPLATE_EN_0_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_EN_0_PART1_NAME='patch_heroes_of_might_and_magic_3_complete_2.0.1.17.exe' ARCHIVE_BASE_OLDTEMPLATE_EN_0_PART1_MD5='815b9c097cd57d0e269beb4cc718dad3' ARCHIVE_BASE_OLDTEMPLATE_EN_0_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_EN_0_VERSION='3.0-gog2.0.1.17' ARCHIVE_BASE_OLDTEMPLATE_FR_0_NAME='setup_homm3_complete_french_2.1.0.20.exe' ARCHIVE_BASE_OLDTEMPLATE_FR_0_MD5='ca8e4726acd7b5bc13c782d59c5a459b' ARCHIVE_BASE_OLDTEMPLATE_FR_0_TYPE='innosetup' ARCHIVE_BASE_OLDTEMPLATE_FR_0_SIZE='1100000' ARCHIVE_BASE_OLDTEMPLATE_FR_0_VERSION='3.0-gog2.1.0.20' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDTEMPLATE='app' CONTENT_GAME_BIN_WINE_FILES=' mp3dec.asi binkw32.dll ifc20.dll ifc21.dll mcp.dll mss32.dll smackw32.dll h3blade.exe h3bmaped.exe h3camped.exe h3ccmped.exe h3maped.exe heroes3.exe' CONTENT_GAME0_BIN_WINE_PATH_OLDTEMPLATE_EN_0='tmp' CONTENT_GAME0_BIN_WINE_FILES_OLDTEMPLATE_EN_0=' heroes3.exe' CONTENT_GAME_DATA_FILES=' data maps mp3' CONTENT_DOC_DATA_FILES=' eula *.cnt *.hlp *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' config games maps random_maps' USER_PERSISTENT_FILES=' data/*.lod' ## Allow to skip intro video on first launch + set default settings. WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\New World Computing\Heroes of Might and Magic® III\1.0] "Animate SpellBook"=dword:00000001 "Autosave"=dword:00000001 "Bink Video"=dword:00000001 "Blackout Computer"=dword:00000000 "Combat Army Info Level"=dword:00000000 "Combat Auto Creatures"=dword:00000001 "Combat Auto Spells"=dword:00000001 "Combat Ballista"=dword:00000001 "Combat Catapult"=dword:00000001 "Combat First Aid Tent"=dword:00000001 "Combat Shade Level"=dword:00000000 "Combat Speed"=dword:00000000 "Computer Walk Speed"=dword:00000003 "First Time"=dword:00000000 "Last Music Volume"=dword:00000005 "Last Sound Volume"=dword:00000005 "Main Game Full Screen"=dword:00000001 "Main Game Show Menu"=dword:00000001 "Main Game X"=dword:0000000a "Main Game Y"=dword:0000000a "Move Reminder"=dword:00000001 "Music Volume"=dword:00000005 "Network Default Name"="Player" "Quick Combat"=dword:00000000 "Show Combat Grid"=dword:00000000 "Show Combat Mouse Hex"=dword:00000000 "Show Intro"=dword:00000001 "Show Route"=dword:00000001 "Sound Volume"=dword:00000005 "Test Blit"=dword:00000000 "Test Decomp"=dword:00000000 "Test Read"=dword:00000000 "Town Outlines"=dword:00000001 "Video Subtitles"=dword:00000001 "Walk Speed"=dword:00000002 "Window Scroll Speed"=dword:00000001' APP_MAIN_TYPE_BIN_VCMI='custom' APP_MAIN_EXE_BIN_WINE='heroes3.exe' APP_MAIN_ICON='heroes3.exe' APP_EDITOR_MAP_ID="${GAME_ID}-map-editor" APP_EDITOR_MAP_EXE='h3maped.exe' APP_EDITOR_MAP_NAME="$GAME_NAME - Map editor" APP_EDITOR_CAMPAIGN_ID="${GAME_ID}-campaign-editor" APP_EDITOR_CAMPAIGN_EXE='h3ccmped.exe' APP_EDITOR_CAMPAIGN_NAME="$GAME_NAME - Campaign editor" PACKAGES_LIST=' PKG_BIN_VCMI PKG_BIN_WINE PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_VCMI_ID="${PKG_BIN_ID}-vcmi" PKG_BIN_VCMI_PROVIDES=" $PKG_BIN_ID" PKG_BIN_VCMI_DEPENDENCIES_SIBLINGS=' PKG_DATA_BASE' PKG_BIN_VCMI_DEPENDENCIES_COMMANDS=' vcmilauncher' PKG_BIN_WINE_ID="${PKG_BIN_ID}-wine" PKG_BIN_WINE_ID_EN="${PKG_BIN_WINE_ID}-en" PKG_BIN_WINE_ID_FR="${PKG_BIN_WINE_ID}-fr" PKG_BIN_WINE_ID_RU="${PKG_BIN_WINE_ID}-ru" PKG_BIN_WINE_ID_OLDTEMPLATE_EN="$PKG_BIN_WINE_ID_EN" PKG_BIN_WINE_ID_OLDTEMPLATE_FR="$PKG_BIN_WINE_ID_FR" PKG_BIN_WINE_PROVIDES=" $PKG_BIN_ID" PKG_BIN_WINE_ARCH='32' PKG_BIN_WINE_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_BASE_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_BASE_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_BASE_ID}-fr" PKG_DATA_ID_RU="${PKG_DATA_BASE_ID}-ru" PKG_DATA_ID_OLDTEMPLATE_EN="$PKG_DATA_ID_EN" PKG_DATA_ID_OLDTEMPLATE_FR="$PKG_DATA_ID_FR" PKG_DATA_PROVIDES=" $PKG_DATA_BASE_ID" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ## For old gog.com English archive, get the patched .exe case "$(current_archive)" in ('ARCHIVE_OLDTEMPLATE_EN_0') archive_extraction 'SOURCE_ARCHIVE_PART1' ;; esac ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fix the ability to run the game through WINE, by reverting a GOG patch # This replaces a call to "xdd.dll" with the original call to "ddraw.dll". # cf. https://www.gog.com/forum/heroes_of_might_and_magic_series/if_you_cant_get_homm3_to_work_after_the_latest_update_on_linux_with_wine_read_this/post1 case "$(current_archive)" in ('ARCHIVE_BASE_'??'_1') sed --in-place 's/xdd\.dll../ddraw.dll/' 'heroes3.exe' ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_WINE' custom_launcher() { launcher_headers cat <<- EOF GAME_PATH="$(path_game_data)" EOF cat <<- 'EOF' VCMI_DATA="${XDG_DATA_HOME:="${HOME}/.local/share"}/vcmi" for directory in data maps mp3; do if [ ! -e "${VCMI_DATA}/${directory}" ]; then mkdir --parents "$VCMI_DATA" cp --recursive --remove-destination --symbolic-link "${GAME_PATH}/${directory}" "$VCMI_DATA" fi done vcmilauncher exit 0 EOF } launchers_generation 'PKG_BIN_VCMI' # Build packages packages_generation printf '\n' printf 'VCMI:' print_instructions 'PKG_DATA' 'PKG_BIN_VCMI' printf 'WINE:' print_instructions 'PKG_DATA' 'PKG_BIN_WINE' # Clean up working_directory_cleanup exit 0 games/play-hive-time.sh0000755000000000000000000000647714471751340014065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hive Time # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.6 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='hive-time' GAME_NAME='Hive Time' ARCHIVE_BASE_1_NAME='hive-time-linux-v1.2.zip' ARCHIVE_BASE_1_MD5='e6766ce08338257a4207ef0ee306f63b' ARCHIVE_BASE_1_SIZE='202987' ARCHIVE_BASE_1_VERSION='1.2-itch' ARCHIVE_BASE_1_URL='https://cheeseness.itch.io/hive-time' ARCHIVE_BASE_0_NAME='hive-time-linux-v1.1.zip' ARCHIVE_BASE_0_MD5='5d63b490982d96620b0bbb7b6522be56' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.1-itch' CONTENT_PATH_DEFAULT='hive-time_linux_v1.2' CONTENT_PATH_DEFAULT_0='.' CONTENT_FONTS_MAIN_RELATIVE_PATH='fonts/dimbo' CONTENT_FONTS_MAIN_FILES=' Dimbo Italic.ttf Dimbo Regular.ttf' CONTENT_FONTS0_MAIN_RELATIVE_PATH='fonts/noto' CONTENT_FONTS0_MAIN_FILES=' NotoEmoji-Regular.ttf NotoSans-Regular.ttf' CONTENT_FONTS1_MAIN_RELATIVE_PATH='fonts/twemoji' CONTENT_FONTS1_MAIN_FILES=' Twemoji.ttf' CONTENT_GAME_MAIN_FILES=' fonts/cantarell/Cantarell-Bold.otf fonts/cantarell/Cantarell-ExtraBold.otf fonts/cantarell/Cantarell-Light.otf fonts/cantarell/Cantarell-Regular.otf fonts/cantarell/Cantarell-Thin.otf fonts/noto/NotoSansCJKkr-Regular.otf hive-time_linux_v*.pck' APP_MAIN_TYPE='custom' PKG_MAIN_DEPENDENCIES_COMMANDS=' godot3-runner' ## Easier upgrades from pre-20251018.2 packages PKG_MAIN_PROVIDES=' hive-time-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_default # Work around the game engine reliance on hardcoded fonts paths. mkdir --parents \ "$(package_path 'PKG_MAIN')$(path_game_data)/fonts/dimbo" \ "$(package_path 'PKG_MAIN')$(path_game_data)/fonts/noto" \ "$(package_path 'PKG_MAIN')$(path_game_data)/fonts/twemoji" ln --symbolic --target-directory="$(package_path 'PKG_MAIN')$(path_game_data)/fonts/dimbo" \ "$(path_fonts_ttf)/Dimbo Italic.ttf" \ "$(path_fonts_ttf)/Dimbo Regular.ttf" ln --symbolic --target-directory="$(package_path 'PKG_MAIN')$(path_game_data)/fonts/noto" \ "$(path_fonts_ttf)/NotoEmoji-Regular.ttf" \ "$(path_fonts_ttf)/NotoSans-Regular.ttf" ln --symbolic --target-directory="$(package_path 'PKG_MAIN')$(path_game_data)/fonts/twemoji" \ "$(path_fonts_ttf)/Twemoji.ttf" # Write launchers. custom_launcher() { launcher_headers cat <<- EOF GAME_PATH="$(path_game_data)" EOF cat <<- 'EOF' cd "$GAME_PATH" godot3-runner --main-pack ./hive-time_linux_v*.pck EOF launcher_exit } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-homeseek.sh0000755000000000000000000000411214471751340013756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Homeseek # send your bug reports to bugs@dotslashplay.it ### script_version=20240531.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='homeseek' GAME_NAME='Homeseek' ARCHIVE_BASE_0_NAME='setup_homeseek_1.0.9_(71375).exe' ARCHIVE_BASE_0_MD5='253a29f9d133ce2980797c3b4ec5af65' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_homeseek_1.0.9_(71375)-1.bin' ARCHIVE_BASE_0_PART1_MD5='d9fd40bcd7623d8ae512ed898bd190ab' ARCHIVE_BASE_0_PART2_NAME='setup_homeseek_1.0.9_(71375)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b8bc0abf22d569a5262b7d45e9645f47' ARCHIVE_BASE_0_SIZE='8641921' ARCHIVE_BASE_0_VERSION='1.0.9-gog71375' ARCHIVE_BASE_0_URL='https://www.gog.com/game/homeseek' UNITY3D_NAME='homeseek' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Traptics/Homeseek' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Traptics\Homeseek' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-impossible-creatures.sh0000755000000000000000000000776414471751340016337 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Impossible Creatures # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='impossible-creatures' GAME_NAME='Impossible Creatures' ARCHIVE_BASE_EN_0_NAME='setup_impossible_creatures_2.2.0.5.exe' ARCHIVE_BASE_EN_0_MD5='1b7223749a9f1fef2aac8213db2023da' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1400000' ARCHIVE_BASE_EN_0_VERSION='1.1.3-gog2.2.0.5' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/impossible_creatures' ARCHIVE_BASE_FR_0_NAME='setup_impossible_creatures_french_2.2.0.5.exe' ARCHIVE_BASE_FR_0_MD5='ff7366c991de12339c0063817b2194da' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1500000' ARCHIVE_BASE_FR_0_VERSION='1.1.3-gog2.2.0.5' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/impossible_creatures' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' drivers rdnplugins rdntools pipeline.ini *.asi *.dll *.exe *.flt *.m3d' CONTENT_GAME_L10N_FILES=' locale movies ic.ini' CONTENT_GAME_DATA_FILES=' data datasrc ic insect rankedgaming rdnmod sdk ebusetup.sem ic_stats.ico *.module *.sga' CONTENT_DOC_DATA_FILES=' news.txt' CONTENT_DOC0_DATA_RELATIVE_PATH='docs' CONTENT_DOC0_DATA_FILES=' license ic_mission_editor_documentation.doc ic animal guide.pdf ic bonus animal guide.pdf ic control.rtf insect invasion patch readme.rtf readme.txt' CONTENT_DOC1_DATA_RELATIVE_PATH='documents' CONTENT_DOC1_DATA_FILES=' *.doc' ## Work around annoyingly long loading times. (WINE 10.0) ## cf. https://www.protondb.com/app/324680#oFK_xKHmyM WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mscoree,mshtml=' WINE_DLLOVERRIDES_DEFAULT="${WINE_DLLOVERRIDES_DEFAULT};msvcp70,msvcr70=n" APP_MAIN_EXE='ic.exe' APP_EDIT_ID="${GAME_ID}-mission-editor" APP_EDIT_NAME="$GAME_NAME - Mission editor" APP_EDIT_EXE='missioneditor.exe' APP_CONFIG_ID="${GAME_ID}-configuration" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='icconfig.exe' USER_PERSISTENT_DIRECTORIES=' playback profiles screenshots stats' USER_PERSISTENT_FILES=' *.ini' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of some libraries ## Due to the amount of libraries to include, ## it would not be practical to set a full list ## excluding only the following ones. rm \ 'gameuxinstallhelper.dll' \ 'goggame-1448280463.dll' \ 'steam_api.dll' ) # Include game data content_inclusion_icons 'PKG_DATA' ## Localized files are included first, as they include some DLL libraries ## that would be gobbled up by the binaries package. content_inclusion 'GAME_L10N' 'PKG_L10N' "$(path_game_data)" content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-infinium-strike.sh0000755000000000000000000000462014471751340015277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Infinium Strike # send your bug reports to bugs@dotslashplay.it ### script_version=20250205.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='infinium-strike' GAME_NAME='Infinium Strike' ARCHIVE_BASE_1_NAME='gog_infinium_strike_2.1.0.3.sh' ARCHIVE_BASE_1_MD5='c19f2032aae3011dc38cc85e7153fb44' ARCHIVE_BASE_1_SIZE='2500000' ARCHIVE_BASE_1_VERSION='1.0.5-gog2.1.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/infinium_strike' ARCHIVE_BASE_0_NAME='gog_infinium_strike_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='57725aad8ba419d80788412f8f33f030' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.5-gog2.1.0.2' UNITY3D_NAME='InfiniumStrike' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' InfiniumStrikeReadMe.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop unused 64-bit libraries rm --recursive \ "$(unity3d_name)_Data/Mono/x86_64" \ "$(unity3d_name)_Data/Plugins/x86_64" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-inkulinati.sh0000755000000000000000000000456314471751340014337 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Inkulinati # send your bug reports to bugs@dotslashplay.it ### script_version=20240524.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='inkulinati' GAME_NAME='Inkulinati' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## Archives ### Full game ARCHIVE_BASE_0_NAME='setup_inkulinati_1.47.2.0_(64bit)_(71246).exe' ARCHIVE_BASE_0_MD5='099f8976a9142d736282316f37028f60' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3934716' ARCHIVE_BASE_0_VERSION='1.47.2.0-gog71246' ARCHIVE_BASE_0_URL='https://www.gog.com/game/inkulinati' ### Free demo ## The free demo is no longer available from gog.com. ARCHIVE_BASE_DEMO_0_NAME='setup_inkulinati_demo_1.1_(42755).exe' ARCHIVE_BASE_DEMO_0_MD5='8e081a8cf9e9457757c1a66b72c9a5f0' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1258482' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog42755' UNITY3D_NAME='inkulinati' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Yaza Games/Inkulinati' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-into-the-breach.sh0000755000000000000000000001040614471751340015132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Into the Breach # send your bug reports to bugs@dotslashplay.it ### script_version=20241027.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='into-the-breach' GAME_NAME='Into the Breach' ARCHIVE_BASE_HUMBLE_4_NAME='IntoTheBreach_1_2_76_Linux.zip' ARCHIVE_BASE_HUMBLE_4_MD5='79f506d656c088c67dbf9286936e0e97' ARCHIVE_BASE_HUMBLE_4_SIZE='540000' ARCHIVE_BASE_HUMBLE_4_VERSION='1.2.76-humble.2022.08.02' ARCHIVE_BASE_HUMBLE_4_URL='https://subsetgames.com/itb.html#HumbleWidgetBox5' ARCHIVE_BASE_HUMBLE_3_NAME='IntoTheBreach_1_2_75_Linux.zip' ARCHIVE_BASE_HUMBLE_3_MD5='b9912dc0b9bdd2013704b918ce438592' ARCHIVE_BASE_HUMBLE_3_SIZE='540000' ARCHIVE_BASE_HUMBLE_3_VERSION='1.2.75-humble.2022.07.28' ARCHIVE_BASE_HUMBLE_2_NAME='IntoTheBreach_1_2_71_Linux.zip' ARCHIVE_BASE_HUMBLE_2_MD5='afa9f960d757ec72c537f306a2065d4f' ARCHIVE_BASE_HUMBLE_2_SIZE='540000' ARCHIVE_BASE_HUMBLE_2_VERSION='1.2.71-humble.2022.07.19' ARCHIVE_BASE_HUMBLE_1_NAME='Into_the_Breach_Linux.1.2.23.zip' ARCHIVE_BASE_HUMBLE_1_MD5='35cbc7ad39661ac97f41760f77f71fab' ARCHIVE_BASE_HUMBLE_1_SIZE='320000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.2.23-humble.2020.05.15' ARCHIVE_BASE_HUMBLE_0_NAME='Into_the_Breach_Linux.1.2.20.zip' ARCHIVE_BASE_HUMBLE_0_MD5='5a8b33e1ccbc2953c99aacf0ad38ca37' ARCHIVE_BASE_HUMBLE_0_SIZE='320000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.2.20-humble.2020.04.20' ARCHIVE_BASE_GOG_1_NAME='into_the_breach_1_2_75_57446.sh' ARCHIVE_BASE_GOG_1_MD5='4cfb207c03f337e6f04faa1fa5bd5aea' ARCHIVE_BASE_GOG_1_SIZE='540000' ARCHIVE_BASE_GOG_1_VERSION='1.2.75-gog57446' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/into_the_breach' ARCHIVE_BASE_GOG_0_NAME='into_the_breach_1_2_24_38624.sh' ARCHIVE_BASE_GOG_0_MD5='dbc8142ec1da82284b7959a48b50d512' ARCHIVE_BASE_GOG_0_SIZE='320000' ARCHIVE_BASE_GOG_0_VERSION='1.2.24-gog38624' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='into-the-breach_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='ce72ae946c4708feabb324493dc197b1' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/into-the-breach/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_HUMBLE_1='Into the Breach' CONTENT_PATH_DEFAULT_HUMBLE_0='Into the Breach Linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='linux_x64' ## Using the system-provided libSDL2-2.0.so.0 instead of the shipped one triggers a segfault on a Debian Trixie/Sid. CONTENT_LIBS_BIN_FILES=' libfmod.so.10 libfmodstudio.so.10 libSDL2-2.0.so.0' CONTENT_GAME_BIN_FILES=' Breach' CONTENT_GAME_DATA_FILES=' maps resources scripts shadersOGL' CONTENT_DOC_DATA_FILES=' licenses' APP_MAIN_EXE='Breach' ## The game crashes on launch when SDL_VIDEODRIVER is set to "wayland". APP_MAIN_PRERUN='# The game crashes on launch when SDL_VIDEODRIVER is set to "wayland". if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-invisible-inc-expansions.sh0000755000000000000000000000343714471751340017107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 berru # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Invisible Inc expansions: # - Contingency Plan # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='invisible-inc' GAME_NAME='Invisible Inc.' EXPANSION_ID_CONTINGENCY='contingency-plan' EXPANSION_NAME_CONTINGENCY='Contigency Plan' ARCHIVE_BASE_0_NAME='invisible_inc_contingency_plan_dlc_en_n_a_15873.sh' ARCHIVE_BASE_0_MD5='adfe52f0e0c3400c3026fca66acf5acb' ARCHIVE_BASE_0_SIZE='2700' ARCHIVE_BASE_0_VERSION='1.0-gog15873' ARCHIVE_BASE_0_URL='https://www.gog.com/game/invisible_inc_contingency_plan' CONTENT_GAME_MAIN_PATH='data/noarch/game' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES=' *' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_default # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-invisible-inc.sh0000755000000000000000000000637414471751340014725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Invisible Inc. # send your bug reports to bugs@dotslashplay.it ### script_version=20240504.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='invisible-inc' GAME_NAME='Invisible Inc.' ARCHIVE_BASE_2_NAME='invisible_inc_en_281021_22858.sh' ARCHIVE_BASE_2_MD5='bfb1493931172a9f71c95a6861af97ee' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='2021.10.28-gog22858' ARCHIVE_BASE_2_URL='https://www.gog.com/game/invisible_inc' ARCHIVE_BASE_1_NAME='invisible_inc_en_8_07_2017_15873.sh' ARCHIVE_BASE_1_MD5='b3acb8f72cf01f71b0ddcb4355543a16' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='2017.07.08-gog15873' ARCHIVE_BASE_0_NAME='gog_invisible_inc_2.6.0.11.sh' ARCHIVE_BASE_0_MD5='97e6efdc9237ec17deb02b5cf5185cf5' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='2016.04.13-gog2.6.0.11' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='invisible-inc_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/invisible-inc/' ARCHIVE_OPTIONAL_ICONS_MD5='37a62fed1dc4185e95db3e82e6695c1d' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 64x64 128x128 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN64_PATH='data/noarch/game/lib64' CONTENT_LIBS_BIN64_FILES=' libfmodevent64-4.44.47.so libfmodevent64.so libfmodex64-4.44.47.so libfmodex64.so' CONTENT_LIBS_BIN32_PATH='data/noarch/game/lib32' CONTENT_LIBS_BIN32_FILES=' libfmodevent-4.44.47.so libfmodevent.so libfmodex-4.44.47.so libfmodex.so' CONTENT_GAME_BIN64_FILES=' InvisibleInc64' CONTENT_GAME_BIN32_FILES=' InvisibleInc32' CONTENT_GAME_DATA_FILES=' *.kwad *.lua hashes.dat scripts.zip' CONTENT_DOC_DATA_FILES=' LICENSE' APP_MAIN_EXE_BIN64='InvisibleInc64' APP_MAIN_EXE_BIN32='InvisibleInc32' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-iratus.sh0000755000000000000000000000462214471751340013473 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Iratus: Lord of the Dead # send your bug reports to bugs@dotslashplay.it ### script_version=20250210.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='iratus' GAME_NAME='Iratus: Lord of the Dead' ## The "language-specific" installers actually include all languages. ## There is no need to build distinct packages for each one. ARCHIVE_BASE_EN_0_NAME='iratus_lord_of_the_dead_linux_181_13_00_48040.sh' ARCHIVE_BASE_EN_0_MD5='e238fdf4277942c22805409a4d347635' ARCHIVE_BASE_EN_0_SIZE='3351586' ARCHIVE_BASE_EN_0_VERSION='181.03.00-gog48040' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/iratus_lord_of_the_dead' ARCHIVE_BASE_FR_0_NAME='iratus_lord_of_the_dead_french_linux_181_03_00_45013.sh' ARCHIVE_BASE_FR_0_MD5='9dd7899c4f5254bb555219530a32dc95' ARCHIVE_BASE_FR_0_SIZE='3331947' ARCHIVE_BASE_FR_0_VERSION='181.03.00-gog48040' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/iratus_lord_of_the_dead' UNITY3D_NAME='Iratus' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-iris-and-the-giant.sh0000755000000000000000000000426414471751340015552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Iris and the Giant # send your bug reports to bugs@dotslashplay.it ### script_version=20250206.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='iris-and-the-giant' GAME_NAME='Iris and the Giant' ARCHIVE_BASE_0_NAME='iris_and_the_giant_1_1_1_2_37953.sh' ARCHIVE_BASE_0_MD5='da4767fb2bdcc4d4146958b449de06b4' ARCHIVE_BASE_0_SIZE='530000' ARCHIVE_BASE_0_VERSION='1.1.1.2-gog37953' ARCHIVE_BASE_0_URL='https://www.gog.com/game/iris_and_the_giant_deckbuilding_roguelike' UNITY3D_NAME='Iris and the Giant' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-iron-harvest.sh0000755000000000000000000001246614471751340014612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Iron Harvest # send your bug reports to bugs@dotslashplay.it ### script_version=20241104.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='iron-harvest' GAME_NAME='Iron Harvest' ARCHIVE_BASE_1_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453).exe' ARCHIVE_BASE_1_MD5='1f13da4dc9ce6916075c4f3287feba5a' ARCHIVE_BASE_1_EXTRACTOR='innoextract' ## Do not convert file paths to lower case. ARCHIVE_BASE_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_1_PART1_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453)-1.bin' ARCHIVE_BASE_1_PART1_MD5='39064f2c73fc1289d6963d60ad3ed20f' ARCHIVE_BASE_1_PART2_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453)-2.bin' ARCHIVE_BASE_1_PART2_MD5='6c7307a3c9fd9762e277efde3f38c408' ARCHIVE_BASE_1_PART3_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453)-3.bin' ARCHIVE_BASE_1_PART3_MD5='c8a1219731b4d51bf294937691883bbd' ARCHIVE_BASE_1_PART4_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453)-4.bin' ARCHIVE_BASE_1_PART4_MD5='6501face360636344b93183c072b9a10' ARCHIVE_BASE_1_PART5_NAME='setup_iron_harvest_1.4.8.2986_rev._58254_(64bit)_(58453)-5.bin' ARCHIVE_BASE_1_PART5_MD5='ead1c35efe7a6883a4204550650f2b0f' ARCHIVE_BASE_1_SIZE='30858160' ARCHIVE_BASE_1_VERSION='1.4.8.2986-gog58453' ARCHIVE_BASE_1_URL='https://www.gog.com/game/iron_harvest' ARCHIVE_BASE_0_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091).exe' ARCHIVE_BASE_0_MD5='d89a5f6b4a8c89769af3eaadc75953f2' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file paths to lower case. ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5d90f09c6b65889db5754d97cbdfebf3' ARCHIVE_BASE_0_PART2_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091)-2.bin' ARCHIVE_BASE_0_PART2_MD5='80be1a755688797cc7a7a5b099add78a' ARCHIVE_BASE_0_PART3_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091)-3.bin' ARCHIVE_BASE_0_PART3_MD5='81e7c85bc9017e8ae157bdea2140d852' ARCHIVE_BASE_0_PART4_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091)-4.bin' ARCHIVE_BASE_0_PART4_MD5='3279373222b0dfdc37bd4d882d3bcc63' ARCHIVE_BASE_0_PART5_NAME='setup_iron_harvest_1.4.8.2983_rev._58247_(64bit)_(58091)-5.bin' ARCHIVE_BASE_0_PART5_MD5='96b6db50d7167699257c1ab6428c8711' ARCHIVE_BASE_0_SIZE='31000000' ARCHIVE_BASE_0_VERSION='1.4.8.2983-gog58091' UNITY3D_NAME='IronHarvest' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" config release/MonoBleedingEdge release/UnityPlayer.dll release/${UNITY3D_NAME}.exe release/${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME_DATA_SCENES_1_FILES=' gamedata/scenes/scene_sp_*' CONTENT_GAME_DATA_SCENES_2_FILES=' gamedata/scenes' CONTENT_GAME_DATA_CINEMATICS_FILES=" release/${UNITY3D_NAME}_Data/StreamingAssets/Cinematics" CONTENT_GAME_DATA_SETTING_FILES=' gamedata/setting' CONTENT_GAME_DATA_UI_FILES=' gamedata/ui' CONTENT_GAME_DATA_FILES=" battleplan content gamedata lang logic version release/${UNITY3D_NAME}_Data" CONTENT_DOC_DATA_FILES=' licenses' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/49637353028337449' APP_MAIN_EXE="release/${UNITY3D_NAME}.exe" APP_MAIN_ICON="$APP_MAIN_EXE" PACKAGES_LIST=' PKG_BIN PKG_DATA_SCENES_1 PKG_DATA_SCENES_2 PKG_DATA_CINEMATICS PKG_DATA_SETTING PKG_DATA_UI PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SCENES_1 PKG_DATA_SCENES_2 PKG_DATA_CINEMATICS PKG_DATA_SETTING PKG_DATA_UI' PKG_DATA_SCENES_ID="${PKG_DATA_ID}-scenes" PKG_DATA_SCENES_1_ID="${PKG_DATA_SCENES_ID}-1" PKG_DATA_SCENES_2_ID="${PKG_DATA_SCENES_ID}-2" PKG_DATA_SCENES_DESCRIPTION="$PKG_DATA_DESCRIPTION - scenes" PKG_DATA_SCENES_1_DESCRIPTION="$PKG_DATA_SCENES_DESCRIPTION - 1" PKG_DATA_SCENES_2_DESCRIPTION="$PKG_DATA_SCENES_DESCRIPTION - 2" PKG_DATA_CINEMATICS_ID="${PKG_DATA_ID}-cinematics" PKG_DATA_CINEMATICS_DESCRIPTION="$PKG_DATA_DESCRIPTION - cinematics" PKG_DATA_SETTING_ID="${PKG_DATA_ID}-setting" PKG_DATA_SETTING_DESCRIPTION="$PKG_DATA_DESCRIPTION - setting" PKG_DATA_UI_ID="${PKG_DATA_ID}-ui" PKG_DATA_UI_DESCRIPTION="$PKG_DATA_DESCRIPTION - ui" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ironclad-tactics.sh0000755000000000000000000000500314471751340015401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Ironclad Tactics # send your bug reports to bugs@dotslashplay.it ### script_version=20240717.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='ironclad-tactics' GAME_NAME='Ironclad Tactics' ARCHIVE_BASE_0_NAME='gog_ironclad_tactics_deluxe_edition_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='a0a0e2195364e57bc39e180d442e1f6b' ARCHIVE_BASE_0_SIZE='953272' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ironclad_tactics_deluxe_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libRotor.so' ## libRotor.so is linked against libsteam_api.so, ## so we have to include it too. CONTENT_LIBS0_BIN_FILES=' libsteam_api.so' CONTENT_GAME_BIN_FILES=' mono' CONTENT_GAME_DATA_FILES=' Comic Fonts Music Sounds Sprites *.dll *.dll.config *.exe *.exe.config *.glsl' CONTENT_DOC_DATA_FILES=' LICENSE.txt' ## The shipped mono build is used instead of the system-provided one ## to avoid a crash when trying to display the game introduction. APP_MAIN_EXE='mono' APP_MAIN_OPTIONS='Game.exe' APP_MAIN_ICON='Game.exe' APP_MAIN_PRERUN=' # Set environment for shipped mono binary export MONO_PATH=.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Apply common Mono tweaks APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(mono_launcher_tweaks)" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-islanders.sh0000755000000000000000000000442314471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Islanders # send your bug reports to bugs@dotslashplay.it ### script_version=20251001.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='islanders' GAME_NAME='Islanders' ARCHIVE_BASE_0_NAME='setup_islanders_1.04_(69301).exe' ARCHIVE_BASE_0_MD5='a0172c90a8894ba6972f8c50f1587c44' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='653528' ARCHIVE_BASE_0_VERSION='1.04-gog69301' ARCHIVE_BASE_0_URL='https://www.gog.com/game/islanders' UNITY3D_NAME='islanders' CONTENT_PATH_DEFAULT='.' ## The game crashes after displaying intro logos if this GOG Galaxy file is missing. CONTENT_GAME0_BIN_FILES=' galaxyconfig.json' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Coatsink/ISLANDERS' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # dos2unix is used to edit a configuration file, to prevent a delay on game launch. REQUIREMENTS_LIST=' dos2unix' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Prevent a delay on game launch. galaxy_config="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/galaxyconfig.json" dos2unix --quiet "$galaxy_config" sed --in-place --expression='s/"client_code": ".*"/&,\n "auth_timeout": 1/' "$galaxy_config" unix2dos --quiet "$galaxy_config" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-ixion.sh0000755000000000000000000000553014471751340013311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ixion # send your bug reports to bugs@dotslashplay.it ### script_version=20250208.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ixion' GAME_NAME='Ixion' ARCHIVE_BASE_0_NAME='setup_ixion_1.0.6.5_(64bit)_(69670).exe' ARCHIVE_BASE_0_MD5='753b96e6b35d4adea73ca842f2e8f0e7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_ixion_1.0.6.5_(64bit)_(69670)-1.bin' ARCHIVE_BASE_0_PART1_MD5='54d9f45d4ed211a14aea70797d1400c1' ARCHIVE_BASE_0_PART2_NAME='setup_ixion_1.0.6.5_(64bit)_(69670)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c4b119088ea2190b1d99e5efd38bd7ac' ARCHIVE_BASE_0_SIZE='12480607' ARCHIVE_BASE_0_VERSION='1.0.6.5-gog69670' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ixion' UNITY3D_NAME='ixion' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_SHAREDASSETS1_FILES=" ${UNITY3D_NAME}_data/sharedassets?.*" CONTENT_GAME_DATA_SHAREDASSETS2_FILES=" ${UNITY3D_NAME}_data/sharedassets??.*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/BulwarkStudios/Ixion' ## The game menu background fails to render with wined3d. WINE_DIRECT3D_RENDERER='dxvk' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS1 PKG_DATA_SHAREDASSETS2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS1 PKG_DATA_SHAREDASSETS2' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS1_ID="${PKG_DATA_SHAREDASSETS_ID}-1" PKG_DATA_SHAREDASSETS2_ID="${PKG_DATA_SHAREDASSETS_ID}-2" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" PKG_DATA_SHAREDASSETS1_DESCRIPTION="$PKG_DATA_SHAREDASSETS_DESCRIPTION - 1" PKG_DATA_SHAREDASSETS2_DESCRIPTION="$PKG_DATA_SHAREDASSETS_DESCRIPTION - 2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-jars.sh0000755000000000000000000000355414471751340013126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Jars # send your bug reports to bugs@dotslashplay.it ### script_version=20250225.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='jars' GAME_NAME='Jars' ARCHIVE_BASE_0_NAME='jars_1_0_1018_50865.sh' ARCHIVE_BASE_0_MD5='436d039e8cecdbddc1942f642813a652' ARCHIVE_BASE_0_SIZE='620000' ARCHIVE_BASE_0_VERSION='1.0.1018-gog50865' ARCHIVE_BASE_0_URL='https://www.gog.com/game/jars' UNITY3D_NAME='Jars' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop Steam libraries rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kapital-sparks-of-revolution.sh0000755000000000000000000000402614471751340017716 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kapital: Sparks of Revolution # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='kapital-sparks-of-revolution' GAME_NAME='Kapital: Sparks of Revolution' ARCHIVE_BASE_0_NAME='kapital_sparks_of_revolution_1_06_56968.sh' ARCHIVE_BASE_0_MD5='2ee255c7cbba173270dbead455c07099' ARCHIVE_BASE_0_SIZE='636808' ARCHIVE_BASE_0_VERSION='1.06-gog56968' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kapital_sparks_of_revolution' UNITY3D_NAME='Kapital' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Prevent the inclusion of the shipped Steam library. rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kingdom-new-lands.sh0000755000000000000000000000442214471751340015500 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kingdom: New Lands # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='kingdom-new-lands' GAME_NAME='Kingdom New Lands' ARCHIVE_BASE_1_NAME='kingdom_new_lands_en_1_2_8_19096.sh' ARCHIVE_BASE_1_MD5='3499d709e78410ef7f447c12e3c66039' ARCHIVE_BASE_1_SIZE='450000' ARCHIVE_BASE_1_VERSION='1.2.8-gog19096' ARCHIVE_BASE_1_URL='https://www.gog.com/game/kingdom_new_lands' ARCHIVE_BASE_0_NAME='gog_kingdom_new_lands_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0d662366f75d5da214e259d792e720eb' ARCHIVE_BASE_0_SIZE='420000' ARCHIVE_BASE_0_VERSION='1.2.3-gog2.6.0.8' UNITY3D_NAME='Kingdom' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-kings-bounty-the-legend.sh0000755000000000000000000001514114471751340016625 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # King's Bounty: The Legend # send your bug reports to bugs@dotslashplay.it ### script_version=20250205.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='kings-bounty-the-legend' GAME_NAME='King’s Bounty: The Legend' ARCHIVE_BASE_0_NAME='setup_kings_bounty_the_legend_1.7.35.398_(39945).exe' ARCHIVE_BASE_0_MD5='1357aae6054406ce9d3d77b0601b045a' ## "--collisions rename-all" is used to extract all localized files, not only the English ones. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--collisions rename-all --lowercase' ARCHIVE_BASE_0_PART1_NAME='setup_kings_bounty_the_legend_1.7.35.398_(39945)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4647d2dd1486833c135393e2ca1c0d2e' ARCHIVE_BASE_0_SIZE='6500991' ARCHIVE_BASE_0_VERSION='1.7.35.398-gog39945' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kings_bounty_the_legend' ARCHIVE_BASE_EN_0_NAME='setup_kings_bounty_the_legend_1.7_(15542).exe' ARCHIVE_BASE_EN_0_MD5='f7a9defe0fd96a7f8d6dff6ed7828242' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_kings_bounty_the_legend_1.7_(15542)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='04fb818107e4bfe7aeae449778e88dd9' ARCHIVE_BASE_EN_0_SIZE='6000000' ARCHIVE_BASE_EN_0_VERSION='1.7-gog15542' ARCHIVE_BASE_FR_0_NAME='setup_kings_bounty_the_legend_french_1.7_(15542).exe' ARCHIVE_BASE_FR_0_MD5='646fdfacadc498826be127fe6703f259' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_kings_bounty_the_legend_french_1.7_(15542)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='907882679fb7050e172994d36730454a' ARCHIVE_BASE_FR_0_SIZE='6000000' ARCHIVE_BASE_FR_0_VERSION='1.7-gog15542' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN='app' CONTENT_PATH_DEFAULT_FR='app' CONTENT_GAME_BIN_FILES=' binkw32.dll kbvistashellsupport.dll luaide.dll scilexer.dll kb.exe data/fonts.cfg data/default.ini data/game.ini' CONTENT_GAME_L10N_FILES=' data/app.ini data/loc_data.kfs sessions/base/loc_ses.kfs' CONTENT_GAME_L10N_EN_FILES=' data/app.ini@en-US data/loc_data.kfs@en-US sessions/base/loc_ses.kfs@en-US' CONTENT_GAME_L10N_FR_FILES=' data/app.ini@fr-FR data/loc_data.kfs@fr-FR sessions/base/loc_ses.kfs@fr-FR' CONTENT_GAME_DATA_FILES=' data sessions curver.txt' CONTENT_DOC_L10N_FILES=' readme.rtf manual.pdf' CONTENT_DOC_L10N_EN_FILES=' manual.pdf@en-US readme.rtf@en-US' CONTENT_DOC_L10N_FR_FILES=' manual.pdf@fr-FR' USER_PERSISTENT_FILES=' data/*.ini data/fonts.cfg' WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_EXE='kb.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PACKAGES_LIST_EN=' PKG_BIN PKG_L10N PKG_DATA' PACKAGES_LIST_FR=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_BASE_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_EN="$PKG_L10N_EN_ID" PKG_L10N_ID_FR="$PKG_L10N_FR_ID" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_DESCRIPTION_EN="$PKG_L10N_EN_DESCRIPTION" PKG_L10N_DESCRIPTION_FR="$PKG_L10N_FR_DESCRIPTION" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # The "find" and "rename" commands are used to handle some localized files REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} find rename" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete unsupported localizations. case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*|'ARCHIVE_BASE_FR_'*) ## Old language-specific archives do not use localization suffixes. ;; (*) find . -name '*@??-*' ! -name '*@en-US' ! -name '*@fr-FR' -delete ;; esac ## Rename some localized files that do not differ between the supported localizations. case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*|'ARCHIVE_BASE_FR_'*) ## Old language-specific archives do not use localization suffixes. ;; (*) rename 's/\@en-US$//' \ 'data/fonts.cfg@en-US' \ 'data/video/1c_logo_eng.ogm@en-US' \ 'data/video/kbtl-intro-800x600-eng.ogm@en-US' \ 'kb.exe@en-US' ;; esac ## Delete some redundant files duplicated between the supported localizations. case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*|'ARCHIVE_BASE_FR_'*) ## Old language-specific archives do not use localization suffixes. ;; (*) rm \ 'data/fonts.cfg@fr-FR' \ 'data/video/1c_logo_eng.ogm@fr-FR' \ 'data/video/kbtl-intro-800x600-eng.ogm@fr-FR' \ 'kb.exe@fr-FR' ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Drop the localization suffix from some files. case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*|'ARCHIVE_BASE_FR_'*) ## Old language-specific archives do not use localization suffixes. ;; (*) find "$(package_path 'PKG_L10N_EN')$(path_game_data)" -name '*@en-US' -exec rename 's/\@en-US$//' {} + find "$(package_path 'PKG_L10N_FR')$(path_game_data)" -name '*@fr-FR' -exec rename 's/\@fr-FR$//' {} + find "$(package_path 'PKG_L10N_EN')$(path_documentation)" -name '*@en-US' -exec rename 's/\@en-US$//' {} + find "$(package_path 'PKG_L10N_FR')$(path_documentation)" -name '*@fr-FR' -exec rename 's/\@fr-FR$//' {} + ;; esac # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_EN_'*|'ARCHIVE_BASE_FR_'*) print_instructions ;; (*) case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_FR' ;; esac # Clean up working_directory_cleanup exit 0 games/play-legend-of-keepers.sh0000755000000000000000000001237214471751340015461 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Legend of Keepers # send your bug reports to bugs@dotslashplay.it ### script_version=20250520.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='legend-of-keepers' GAME_NAME='Legend of Keepers: Career of a Dungeon Manager' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO='Legend of Keepers: Prologue' ## This Linux native build of the game fails to run correctly. ## It spams errors related to fmodstudio (for some reason it can’t find the library), ## and fails to progress further than the profile selection screen. ## Support for the Windows build is included as a workaround. ARCHIVE_BASE_LINUX_0_NAME='legend_of_keepers_career_of_a_dungeon_manager_1_1_0_2_57134.sh' ARCHIVE_BASE_LINUX_0_MD5='a1d7f09037caaa7212cfd8a61a992289' ARCHIVE_BASE_LINUX_0_SIZE='1113810' ARCHIVE_BASE_LINUX_0_VERSION='1.1.0.2-gog57134' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/legend_of_keepers_career_of_a_dungeon_master' ARCHIVE_BASE_WINDOWS_0_NAME='setup_legend_of_keepers_career_of_a_dungeon_manager_1.1.0.3_(69681).exe' ARCHIVE_BASE_WINDOWS_0_MD5='f4f741dccc54018e4a5bc1118e54336b' ARCHIVE_BASE_WINDOWS_0_SIZE='1137440' ARCHIVE_BASE_WINDOWS_0_VERSION='1.1.0.3-gog69681' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/legend_of_keepers_career_of_a_dungeon_master' ARCHIVE_BASE_DEMO_LINUX_0_NAME='legend_of_keepers_prologue_0_9_2_1_44469.sh' ARCHIVE_BASE_DEMO_LINUX_0_MD5='af73802b552219f834b53734b955906b' ARCHIVE_BASE_DEMO_LINUX_0_SIZE='1012855' ARCHIVE_BASE_DEMO_LINUX_0_VERSION='0.9.2.1-gog44469' ARCHIVE_BASE_DEMO_LINUX_0_URL='https://www.gog.com/game/legend_of_keepers_prologue' ARCHIVE_BASE_DEMO_WINDOWS_0_NAME='setup_legend_of_keepers_prologue_0.9.2.1_(44468).exe' ARCHIVE_BASE_DEMO_WINDOWS_0_MD5='5d861b01134173210cfec816274539f7' ARCHIVE_BASE_DEMO_WINDOWS_0_SIZE='1026797' ARCHIVE_BASE_DEMO_WINDOWS_0_VERSION='0.9.2.1-gog44468' ARCHIVE_BASE_DEMO_WINDOWS_0_URL='https://www.gog.com/game/legend_of_keepers_prologue' UNITY3D_NAME_LINUX='LegendOfKeepers' UNITY3D_NAME_WINDOWS='legendofkeepers' UNITY3D_NAME_DEMO_LINUX='LegendOfKeepersPrologue' UNITY3D_NAME_DEMO_WINDOWS='legendofkeepersprologue' UNITY3D_PLUGINS=' libEOSSDK-Linux-Shipping.so libfmodstudioL.so libfmodstudio.so libresonanceaudio.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' CONTENT_PATH_DEFAULT_DEMO_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO_WINDOWS='.' ## The Windows demo fails to run if the Galaxy library are not available. CONTENT_GAME0_BIN_FILES_DEMO_WINDOWS=' galaxy.dll galaxycsharpglue.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GoblinzStudio/LegendOfKeepers' WINE_PERSISTENT_DIRECTORIES_DEMO=' users/${USER}/AppData/LocalLow/GoblinzStudio/LegendOfKeepersPrologue' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ID_DEMO="${GAME_ID_DEMO}-bin" PKG_BIN_ID_DEMO_LINUX="${PKG_BIN_ID_DEMO}-linux" PKG_BIN_ID_DEMO_WINDOWS="${PKG_BIN_ID_DEMO}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_PROVIDES_DEMO=" $PKG_BIN_ID_DEMO" PKG_BIN_ARCH_LINUX='64' PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_ARCH_DEMO_LINUX='64' PKG_BIN_ARCH_DEMO_WINDOWS='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS_WINDOWS=' video/quicktime, variant=(string)iso' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS_DEMO_WINDOWS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS_WINDOWS" ## Handle upgrades from pre-20250520.5 packages. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} legend-of-keepers" PKG_BIN_PROVIDES_DEMO="${PKG_BIN_PROVIDES_DEMO:-} legend-of-keepers-demo" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_ID_DEMO_LINUX="${PKG_DATA_ID_DEMO}-linux" PKG_DATA_ID_DEMO_WINDOWS="${PKG_DATA_ID_DEMO}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_PROVIDES_DEMO=" $PKG_DATA_ID_DEMO" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-loria.sh0000755000000000000000000000475714471751340013303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Loria # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='loria' GAME_NAME='Loria' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='loria_1_2_0_31834.sh' ARCHIVE_BASE_0_MD5='3e23b2eeb0df168e73e47c70813e1a75' ARCHIVE_BASE_0_SIZE='1189146' ARCHIVE_BASE_0_VERSION='1.2.0-gog31834' ARCHIVE_BASE_0_URL='https://www.gog.com/game/loria' ARCHIVE_BASE_DEMO_0_NAME='loria_demo_1_2_0_31834.sh' ARCHIVE_BASE_DEMO_0_MD5='aeb232dd39397e509b0fab8033108cf4' ARCHIVE_BASE_DEMO_0_SIZE='948854' ARCHIVE_BASE_DEMO_0_VERSION='1.2.0-gog31834' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/loria_demo' UNITY3D_NAME='Loria' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Fix spawning of settings window on launch. libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64" mkdir --parents "$libraries_destination" ln --symbolic "$(path_libraries)/ScreenSelector.so" "$libraries_destination" # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-marble-age.sh0000755000000000000000000000354014471751340014156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Marble Age # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='marble-age' GAME_NAME='Marble Age' ARCHIVE_BASE_0_NAME='marble_age_remastered_1_08_45107.sh' ARCHIVE_BASE_0_MD5='20b437b0204fbb0f88d0de65e8801b46' ARCHIVE_BASE_0_SIZE='298371' ARCHIVE_BASE_0_VERSION='1.08-gog45107' ARCHIVE_BASE_0_URL='https://www.gog.com/game/marble_age_remastered' UNITY3D_NAME='Marble Age Remastered' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-master-of-magic.sh0000755000000000000000000000530214471751340015133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Master of Magic # send your bug reports to bugs@dotslashplay.it ### script_version=20250208.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='master-of-magic' GAME_NAME='Master of Magic' ARCHIVE_BASE_EN_0_NAME='gog_master_of_magic_2.0.0.3.sh' ARCHIVE_BASE_EN_0_MD5='149cfca1851126d15b098c0d77f6a6cc' ARCHIVE_BASE_EN_0_SIZE='36715' ARCHIVE_BASE_EN_0_VERSION='1.31-gog2.0.0.3' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/master_of_magic_classic' ARCHIVE_BASE_FR_0_NAME='gog_master_of_magic_french_2.0.0.3.sh' ARCHIVE_BASE_FR_0_MD5='f42da1e4e55951cd7cd859328419fced' ARCHIVE_BASE_FR_0_SIZE='207248' ARCHIVE_BASE_FR_0_VERSION='1.31-gog2.0.0.3' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/master_of_magic_classic' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_L10N_FILES=' ITEMMAKE.EXE MAGIC.EXE WIZARDS.EXE BUILDDAT.LBX BUILDESC.LBX CITYNAME.LBX DESC.LBX DIPLOMSG.LBX EVENTMSG.LBX HELP.LBX INTRO.LBX ITEMDATA.LBX ITEMPOW.LBX LISTDAT.LBX LOSE.LBX MESSAGE.LBX README.TXT SOUNDFX.LBX SPELLDAT.LBX SPELLSCR.LBX MAGIC.SET' CONTENT_GAME_MAIN_FILES=' *.AD *.BNK *.CAT *.COM *.DAT *.EXE *.GIF *.LBX *.MOM *.MT *.OPL' CONTENT_DOC_L10N_FILES=' spellbook.pdf' CONTENT_DOC0_L10N_PATH='data/noarch/docs' CONTENT_DOC0_L10N_FILES=' *.pdf' USER_PERSISTENT_FILES=' MAGIC.SET *.GAM' APP_MAIN_EXE='MAGIC.EXE' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_L10N PKG_MAIN' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-master-of-orion-2.sh0000755000000000000000000001734414471751340015351 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Master of Orion 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='master-of-orion-2' GAME_NAME='Master of Orion II: Battle at Antares' ARCHIVE_BASE_EN_0_NAME='gog_master_of_orion_2_2.0.0.6.sh' ARCHIVE_BASE_EN_0_MD5='51529fd6734bc12f1ac36fea5fc547f8' ARCHIVE_BASE_EN_0_SIZE='350000' ARCHIVE_BASE_EN_0_VERSION='1.31-gog2.0.0.6' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/master_of_orion_1_2' ARCHIVE_BASE_FR_0_NAME='gog_master_of_orion_2_french_2.0.0.6.sh' ARCHIVE_BASE_FR_0_MD5='06d643ee04387914738707d435e8f7a6' ARCHIVE_BASE_FR_0_SIZE='370000' ARCHIVE_BASE_FR_0_VERSION='1.31-gog2.0.0.6' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/master_of_orion_1_2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' SAMPLE.AD SAMPLE.BNK SAMPLE.CAT SETSOUND.EXE DIG.INI MDI.INI ORIONCD.INI AMEBAFIN.LBX ANATKFIN.LBX ANTARMSG.LBX ANTAROOM.LBX APP_PICS.LBX BEAMS.LBX BILLTEX2.LBX BILLTEXT.LBX BLDG0.LBX BLDG1.LBX BLDG2.LBX BLDG3.LBX BLDG4.LBX BLDG5.LBX BUFFER0.LBX CMBTFGTR.LBX CMBTMISL.LBX CMBTPLNT.LBX CMBTSFX.LBX COLBLDG.LBX COLGCBT.LBX COLONY2.LBX COLONY.LBX COLPUPS.LBX COLPUSP.LBX COLREFIT.LBX COLROADS.LBX COLSUM.LBX COLSYSDI.LBX COLVEGGI.LBX COMBAT.LBX CONFIRM.LBX COUNCMSG.LBX CREDITS.LBX CUSTMSTR.LBX DESIGN.LBX DIMTVFIN.LBX DIPLOMSE.LBX DIPSTARS.LBX ENGMSG.LBX ESTRINGS.LBX EVENTMSE.LBX EVENTS.LBX FIREPTS.LBX FLEET.LBX FLTICONS.LBX FONTS.LBX GAME.LBX GENWINFN.LBX GSTAR.LBX HERODATA.LBX INBOX.LBX INFO.LBX INTRO.LBX JIMTEXT2.LBX JIMTEXT.LBX KENTEXT1.LBX KENTEXT.LBX LOADSAVE.LBX LOGO.LBX MAINMENU.LBX MAINPUPS.LBX MAINTEXT.LBX MONSTER.LBX MSGENG.LBX MULTIGM.LBX NDATA.LBX NEWGAME.LBX NEXTPLYR.LBX OCPOL.LBX OFFICER.LBX ORIONFIN.LBX PATCH13.LBX PLANETS.LBX PLAYSPEC.LBX PLNTDFIN.LBX PLNTSUM.LBX RACEICON.LBX RACENAME.LBX RACEOPT.LBX RACERPRT.LBX RACESEL.LBX RACES.LBX RACESTUF.LBX REFITPUP.LBX RSTRING0.LBX SCIENCE.LBX SCORE.LBX SHIPNAME.LBX SHIPS.LBX SKILDESC.LBX SOUND.LBX SPHERSFX.LBX SR_R0_SC.LBX SR_R0_SP.LBX SR_R0_TR.LBX SR_R1_SC.LBX SR_R1_SP.LBX SR_R1_TR.LBX SR_R2_SC.LBX SR_R2_SP.LBX SR_R2_TR.LBX SR_R3_SC.LBX SR_R3_SP.LBX SR_R3_TR.LBX SR_R4_SC.LBX SR_R4_SP.LBX SR_R4_TR.LBX SR_R5_SC.LBX SR_R5_SP.LBX SR_R5_TR.LBX SR_R6_SC.LBX SR_R6_SP.LBX SR_R6_TR.LBX SR_R7_SC.LBX SR_R7_SP.LBX SR_R7_TR.LBX SR_R8_SC.LBX SR_R8_SP.LBX SR_R8_TR.LBX SR_R9_SC.LBX SR_R9_SP.LBX SR_R9_TR.LBX SR_RA_SC.LBX SR_RA_SP.LBX SR_RA_TR.LBX SR_RB_SC.LBX SR_RB_SP.LBX SR_RB_TR.LBX SR_RC_SC.LBX SR_RC_SP.LBX SR_RC_TR.LBX STARBG.LBX STARNAME.LBX STREAM.LBX SYSDISP.LBX TANM_001.LBX TANM_002.LBX TANM_003.LBX TANM_004.LBX TANM_005.LBX TANM_006.LBX TANM_007.LBX TANM_008.LBX TANM_009.LBX TANM_010.LBX TANM_011.LBX TANM_012.LBX TANM_013.LBX TANM_014.LBX TANM_015.LBX TANM_016.LBX TANM_017.LBX TANM_018.LBX TANM_019.LBX TANM_020.LBX TANM_021.LBX TANM_022.LBX TANM_023.LBX TANM_024.LBX TANM_025.LBX TANM_026.LBX TANM_027.LBX TANM_028.LBX TANM_029.LBX TANM_030.LBX TANM_031.LBX TANM_032.LBX TANM_033.LBX TANM_034.LBX TANM_035.LBX TANM_036.LBX TANM_037.LBX TANM_038.LBX TANM_039.LBX TANM_040.LBX TANM_041.LBX TANM_042.LBX TANM_043.LBX TANM_044.LBX TANM_045.LBX TANM_046.LBX TANM_047.LBX TANM_048.LBX TANM_049.LBX TANM_050.LBX TANM_051.LBX TANM_052.LBX TANM_053.LBX TANM_054.LBX TANM_055.LBX TANM_056.LBX TANM_057.LBX TANM_058.LBX TANM_059.LBX TANM_060.LBX TANM_061.LBX TANM_062.LBX TANM_063.LBX TANM_064.LBX TANM_065.LBX TANM_066.LBX TANM_067.LBX TANM_068.LBX TANM_069.LBX TANM_070.LBX TANM_071.LBX TANM_072.LBX TANM_073.LBX TANM_074.LBX TANM_075.LBX TANM_076.LBX TANM_077.LBX TANM_078.LBX TANM_079.LBX TANM_080.LBX TANM_081.LBX TANM_082.LBX TANM_083.LBX TANM_084.LBX TANM_085.LBX TANM_086.LBX TANM_087.LBX TANM_088.LBX TANM_089.LBX TANM_090.LBX TANM_091.LBX TANM_092.LBX TANM_093.LBX TANM_094.LBX TANM_095.LBX TANM_096.LBX TANM_097.LBX TANM_098.LBX TANM_099.LBX TANM_100.LBX TANM_101.LBX TANM_102.LBX TANM_103.LBX TANM_104.LBX TANM_105.LBX TANM_106.LBX TANM_107.LBX TANM_108.LBX TANM_109.LBX TANM_110.LBX TANM_111.LBX TANM_112.LBX TANM_113.LBX TANM_115.LBX TANM_116.LBX TANM_117.LBX TANM_118.LBX TANM_119.LBX TANM_120.LBX TANM_121.LBX TANM_122.LBX TANM_123.LBX TANM_124.LBX TANM_125.LBX TANM_126.LBX TANM_127.LBX TANM_128.LBX TANM_129.LBX TANM_130.LBX TANM_131.LBX TANM_132.LBX TANM_133.LBX TANM_134.LBX TANM_135.LBX TANM_136.LBX TANM_137.LBX TANM_138.LBX TANM_139.LBX TANM_140.LBX TANM_141.LBX TANM_142.LBX TANM_143.LBX TANM_144.LBX TANM_145.LBX TANM_146.LBX TANM_147.LBX TANM_148.LBX TANM_149.LBX TANM_150.LBX TANM_151.LBX TANM_152.LBX TANM_153.LBX TANM_154.LBX TANM_155.LBX TANM_156.LBX TANM_157.LBX TANM_158.LBX TANM_159.LBX TANM_160.LBX TANM_161.LBX TANM_162.LBX TANM_163.LBX TANM_164.LBX TANM_165.LBX TANM_166.LBX TANM_167.LBX TANM_168.LBX TANM_169.LBX TANM_170.LBX TANM_171.LBX TANM_172.LBX TANM_173.LBX TANM_174.LBX TANM_175.LBX TANM_176.LBX TANM_177.LBX TANM_178.LBX TANM_179.LBX TANM_180.LBX TANM_181.LBX TANM_182.LBX TANM_183.LBX TANM_184.LBX TANM_185.LBX TANM_186.LBX TANM_187.LBX TANM_188.LBX TANM_189.LBX TANM_190.LBX TANM_191.LBX TANM_192.LBX TANM_193.LBX TANM_194.LBX TANM_195.LBX TANM_196.LBX TANM_197.LBX TANM_198.LBX TANM_199.LBX TANM_200.LBX TANM_201.LBX TANM_202.LBX TANM_203.LBX TANM_204.LBX TANM_205.LBX TANM_206.LBX TANM_207.LBX TANM_208.LBX TANM_209.LBX TANM_210.LBX TANM_211.LBX TANM_212.LBX TANM_213.LBX TECHDESC.LBX TECHNAME.LBX TECHSEL.LBX TEXTBOX.LBX TURNSUM.LBX WININFIN.LBX AILDRVR.LST SAMPLE.MT SAMPLE.OPL *.DIG *.MDI' CONTENT_GAME_L10N_FILES=' RKERNEL.COM Orion2.exe LANGUAGE.INI ANWINFIN.LBX CMBTSHP.LBX COUNCIL.LBX DIPLOMAT.LBX DIPLOMSF.LBX DIPLOMSG.LBX DIPLOMSI.LBX DIPLOMSS.LBX ESTRFREN.LBX ESTRGERM.LBX ESTRITAL.LBX ESTRPOLI.LBX ESTRSPAN.LBX EVENTMSF.LBX EVENTMSG.LBX EVENTMSI.LBX EVENTMSS.LBX FILEDATA.LBX FONTSF.LBX FONTSG.LBX FONTSI.LBX FONTSS.LBX FRECRDTS.LBX FRE_HELP.LBX FRESKLLS.LBX FRETECD.LBX GERCRDTS.LBX GER_HELP.LBX GERSKLLS.LBX GERTECD.LBX HELP.LBX HERODATF.LBX HERODATG.LBX HERODATI.LBX HERODATS.LBX HESTRNGS.LBX HFSTRNGS.LBX HGSTRNGS.LBX HISTRNGS.LBX HSSTRNGS.LBX IFONTS.LBX INSTALL.LBX ITACRDTS.LBX ITA_HELP.LBX ITASKLLS.LBX ITATECD.LBX LOSERFIN.LBX MAINFREN.LBX MAINGERM.LBX MAINITAL.LBX MAINSPAN.LBX RSTRING1.LBX RSTRING2.LBX RSTRING3.LBX RSTRING4.LBX RSTRINGS.LBX SIMTEX.LBX SPACRDTS.LBX SPA_HELP.LBX SPASKLLS.LBX SPATECD.LBX STREAMHD.LBX TANM_114.LBX WARNING.LBX' CONTENT_DOC_L10N_FILES=' *.TXT' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='Orion2.exe' APP_MAIN_ICON='../support/icon.png' USER_PERSISTENT_FILES=' MOX.SET SOUND.LBX *.INI *.GAM' PACKAGES_LIST=' PKG_MAIN PKG_L10N' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localisation' PKG_L10N_DESCRIPTION_FR='French localisation' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-mesmer.sh0000755000000000000000000000404014471751340013446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mesmer # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='mesmer' GAME_NAME='Mesmer' ARCHIVE_BASE_0_NAME='mesmer_1_0_4_42663.sh' ARCHIVE_BASE_0_MD5='c0209877a3fd4748f9717578678499e5' ARCHIVE_BASE_0_SIZE='3900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog42663' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mesmer' UNITY3D_NAME='Mesmer' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-mobius-front-83.sh0000755000000000000000000000521614471751340015040 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Möbius Front '83 # send your bug reports to bugs@dotslashplay.it ### script_version=20250119.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='mobius-front-83' GAME_NAME="Möbius Front '83" ARCHIVE_BASE_1_NAME='m_bius_front_83_march_2023_update_63923.sh' ARCHIVE_BASE_1_MD5='2be4eb51833c3d72b5dd7f0857e3fbf4' ARCHIVE_BASE_1_SIZE='1700000' ARCHIVE_BASE_1_VERSION='2023.03-gog63923' ARCHIVE_BASE_1_URL='https://www.gog.com/game/mobius_front_83' ARCHIVE_BASE_0_NAME='m_bius_front_83_03_01_2021_45297.sh' ARCHIVE_BASE_0_MD5='e66950193c5308abd7b4fe2bec610d37' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2021.03.01-gog45297' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Ionic.Zip.Reduced.dll MoonSharp.Interpreter.dll System.Speech.dll Content PackedContent monoconfig monomachineconfig MobiusFront83.exe MobiusFront83.exe.config' CONTENT_DOC_MAIN_FILES=' LICENSE.txt' APP_MAIN_EXE='MobiusFront83.exe' APP_MAIN_ICON='Content/icon.png' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libvorbisfile.so.3' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll I18N.dll I18N.West.dll Mono.Posix.dll Mono.Security.dll System.dll System.ComponentModel.DataAnnotations.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Web.dll System.Web.Extensions.dll System.Web.Http.dll System.Web.Services.dll System.Xml.dll System.Xml.Linq.dll' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-multiwinia.sh0000755000000000000000000000547014471751340014350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # Multiwinia # send your bug reports to bugs@dotslashplay.it ### script_version=20250208.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='multiwinia' GAME_NAME='Multiwinia' ARCHIVE_BASE_0_NAME='gog_multiwinia_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='ec7f0cc245b4fb4bf85cba5fc4a536ba' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='1.3.1-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/multiwinia' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libpng12.so.0 libpng12.so.0.50.0' CONTENT_LIBS_BIN64_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' multiwinia.bin.x86_64' CONTENT_GAME_BIN32_FILES=' multiwinia.bin.x86' CONTENT_GAME_DATA_FILES=' multiwinia.png *.dat' CONTENT_DOC_DATA_RELATIVE_PATH='docs' CONTENT_DOC_DATA_FILES=' readme.txt manual.pdf' APP_MAIN_EXE_BIN64='multiwinia.bin.x86_64' APP_MAIN_EXE_BIN32='multiwinia.bin.x86' APP_MAIN_ICON='multiwinia.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-nebuchadnezzar.sh0000755000000000000000000000436114471751340015167 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nebuchadnezzar # send your bug reports to bugs@dotslashplay.it ### script_version=20250209.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='nebuchadnezzar' GAME_NAME='Nebuchadnezzar' ARCHIVE_BASE_0_NAME='nebuchadnezzar_1_4_11_63946.sh' ARCHIVE_BASE_0_MD5='7f4bb453c7fb510fd10c125ec17dcd53' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.4.11-gog63946' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nebuchadnezzar' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' binary/linux/nebuchadnezzar' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='binary/linux/nebuchadnezzar' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' liballegro.so.5.2 liballegro_acodec.so.5.2 liballegro_audio.so.5.2 liballegro_font.so.5.2 liballegro_image.so.5.2 liballegro_primitives.so.5.2 liballegro_ttf.so.5.2 libc.so.6 libgcc_s.so.1 liblua5.3.so.0 libm.so.6 libpng16.so.16 libpthread.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd binary/linux ./nebuchadnezzar "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-niche.sh0000755000000000000000000000522514471751340013252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Niche - a genetics survival game # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='niche' GAME_NAME='Niche - a genetics survival game' ARCHIVE_BASE_1_NAME='niche_1_2_3_33448.sh' ARCHIVE_BASE_1_MD5='8ed3cd1d2f8e1cb48aec5bde8ab321e8' ARCHIVE_BASE_1_SIZE='1100000' ARCHIVE_BASE_1_VERSION='1.2.3-gog33448' ARCHIVE_BASE_1_URL='https://www.gog.com/game/niche' ARCHIVE_BASE_0_NAME='niche_en_1_1_4_21609.sh' ARCHIVE_BASE_0_MD5='01ab13fbb61095366732686216d99978' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.1.4-gog21609' UNITY3D_NAME='Niche' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game crashes on launch if libCSteamworks.so is not available. ## libsteam_api.so is required by libCSteamworks.so. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-no-pineapple-left-behind.sh0000755000000000000000000000501414471751340016726 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # No Pineapple Left Behind # send your bug reports to bugs@dotslashplay.it ### script_version=20250428.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='no-pineapple-left-behind' GAME_NAME='No Pineapple Left Behind' ARCHIVE_BASE_0_NAME='gog_no_pineapple_left_behind_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='8134abbdbc068f3305a54a41f32820bc' ARCHIVE_BASE_0_SIZE='705565' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.4.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/no_pineapple_left_behind' UNITY3D_NAME='nplb' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-nomads-of-driftland.sh0000755000000000000000000000443114471751340016012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Nomads of Driftland # send your bug reports to bugs@dotslashplay.it ### script_version=20250513.6 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='nomads-of-driftland' GAME_NAME='Nomads of Driftland' ARCHIVE_BASE_0_NAME='setup_nomads_of_driftland_nomads_1.0.48a_(64bit)_(44177).exe' ARCHIVE_BASE_0_MD5='9745838e34b9412aaf0cc538264cd289' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_nomads_of_driftland_nomads_1.0.48a_(64bit)_(44177)-1.bin' ARCHIVE_BASE_0_PART1_MD5='74032f57b81ae76040e9d9ec18d829d4' ARCHIVE_BASE_0_SIZE='2711794' ARCHIVE_BASE_0_VERSION='1.0.48a-gog44177' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nomads_of_driftland' UNREALENGINE4_NAME='nomads' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop the shipped installer for Unreal Engine 4 runtime requirements. rm --recursive 'engine/extras' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not install the Visual C++ Runtime, as it triggers an unending loop of UE4 Prerequisites install/uninstall. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-nowhere-prophet.sh0000755000000000000000000000402014471751340015302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Nowhere Prophet # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='nowhere-prophet' GAME_NAME='Nowhere Prophet' ARCHIVE_BASE_0_NAME='nowhere_prophet_1_07_013_ichcha_49715.sh' ARCHIVE_BASE_0_MD5='a88b8aaf466ffffb0f9515b5e53d2366' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.07.013-gog49715' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nowhere_prophet' UNITY3D_NAME='NowhereProphet' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-old-world.sh0000755000000000000000000001057714471751340014075 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Old World # send your bug reports to bugs@dotslashplay.it ### script_version=20250210.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='old-world' GAME_NAME='Old World' ARCHIVE_BASE_5_NAME='setup_old_world_75717_(64bit)_(79269).exe' ARCHIVE_BASE_5_MD5='5a714c53191c614b0f116b5ff7724276' ARCHIVE_BASE_5_TYPE='innosetup' ARCHIVE_BASE_5_PART1_NAME='setup_old_world_75717_(64bit)_(79269)-1.bin' ARCHIVE_BASE_5_PART1_MD5='ca0c7357294b1127f13e82f4aad9c6dd' ARCHIVE_BASE_5_PART2_NAME='setup_old_world_75717_(64bit)_(79269)-2.bin' ARCHIVE_BASE_5_PART2_MD5='1f55824e657014585f972f8168fbdd48' ARCHIVE_BASE_5_SIZE='7307636' ARCHIVE_BASE_5_VERSION='1.0.75717-gog79269' ARCHIVE_BASE_5_URL='https://www.gog.com/game/old_world' ARCHIVE_BASE_4_NAME='setup_old_world_73323_(64bit)_(75059).exe' ARCHIVE_BASE_4_MD5='85c6f18dab6b3a4afa10f8692ddc37f4' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_old_world_73323_(64bit)_(75059)-1.bin' ARCHIVE_BASE_4_PART1_MD5='76088aa2846f040a9f847a4c1d37fefa' ARCHIVE_BASE_4_SIZE='6770335' ARCHIVE_BASE_4_VERSION='1.0.73323-gog75059' ARCHIVE_BASE_4_URL='https://www.gog.com/game/old_world' ARCHIVE_BASE_3_NAME='setup_old_world_63874_(64bit)_(60139).exe' ARCHIVE_BASE_3_MD5='b437df7671daf99926d7bcff6843348e' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_old_world_63874_(64bit)_(60139)-1.bin' ARCHIVE_BASE_3_PART1_MD5='9dc2fcaec2c5e31c5c7256ec978ff5de' ARCHIVE_BASE_3_PART2_NAME='setup_old_world_63874_(64bit)_(60139)-2.bin' ARCHIVE_BASE_3_PART2_MD5='8aec1dbb9dea13dc7a9dcf818c51b22c' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.0.63874-gog60139' ARCHIVE_BASE_2_NAME='setup_old_world_62874_(64bit)_(58888).exe' ARCHIVE_BASE_2_MD5='3a99a52001d9a8c610b761a0dbd0eaa8' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_old_world_62874_(64bit)_(58888)-1.bin' ARCHIVE_BASE_2_PART1_MD5='6d31bb8588a9a470f8b0fc8560b01d5e' ARCHIVE_BASE_2_PART2_NAME='setup_old_world_62874_(64bit)_(58888)-2.bin' ARCHIVE_BASE_2_PART2_MD5='2ced4111b8b6fd2e33e4b76301055bb1' ARCHIVE_BASE_2_SIZE='7900000' ARCHIVE_BASE_2_VERSION='1.0.62874-gog58888' ARCHIVE_BASE_1_NAME='setup_old_world_62798_(64bit)_(58769).exe' ARCHIVE_BASE_1_MD5='4d733db625917e8a837be046ec899749' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_old_world_62798_(64bit)_(58769)-1.bin' ARCHIVE_BASE_1_PART1_MD5='91d87895e8ffbc1b8d84096df5dc3efb' ARCHIVE_BASE_1_PART2_NAME='setup_old_world_62798_(64bit)_(58769)-2.bin' ARCHIVE_BASE_1_PART2_MD5='8e2d4632a8bd92ecf58d8f167740c255' ARCHIVE_BASE_1_SIZE='7900000' ARCHIVE_BASE_1_VERSION='1.0.62798-gog58769' ARCHIVE_BASE_0_NAME='setup_old_world_62443_(64bit)_(58285).exe' ARCHIVE_BASE_0_MD5='9d4c86d9c1de385ed3dcf61faf0fd3c9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_old_world_62443_(64bit)_(58285)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1e9ae7126b81bd023e48003642ae310' ARCHIVE_BASE_0_PART2_NAME='setup_old_world_62443_(64bit)_(58285)-2.bin' ARCHIVE_BASE_0_PART2_MD5='1b676c5d29f196efbab51fdac0cade5a' ARCHIVE_BASE_0_SIZE='7900000' ARCHIVE_BASE_0_VERSION='1.0.62443-gog58285' UNITY3D_NAME='oldworld' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' reference' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/OldWorld' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-perimeter.sh0000755000000000000000000000416314471751340014160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Perimeter # send your bug reports to bugs@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='perimeter' GAME_NAME='Perimeter' ARCHIVE_BASE_0_NAME='setup_perimeter_1.03_(19064).exe' ARCHIVE_BASE_0_MD5='a65c86a8de9b938bc070bcbe5900aef2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_perimeter_1.03_(19064)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ba08f50e95ce6424d214f57383d338c8' ARCHIVE_BASE_0_SIZE='3800000' ARCHIVE_BASE_0_VERSION='1.03-gog19064' ARCHIVE_BASE_0_URL='https://www.gog.com/game/perimeter' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll *.exe' CONTENT_GAME0_BIN_PATH='app/__support/app' CONTENT_GAME0_BIN_FILES=' *' CONTENT_GAME_DATA_FILES=' cache_font resource scripts perimeter.ico' CONTENT_DOC_DATA_FILES=' manual.pdf readme.txt' USER_PERSISTENT_DIRECTORIES=' resource/saves' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='perimeter.exe' APP_MAIN_ICON='perimeter.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-political-animals.sh0000755000000000000000000000415514471751340015567 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Political Animals # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='political-animals' GAME_NAME='Political Animals' ARCHIVE_BASE_0_NAME='gog_political_animals_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='efaab47c43abc738d1dfd358c0894d4d' ARCHIVE_BASE_0_SIZE='827213' ARCHIVE_BASE_0_VERSION='0080-gog2.1.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/political_animals' UNITY3D_NAME='PoliticalAnimals' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-populous-3.sh0000755000000000000000000000606014471751340014210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Populous: The Beginning # send your bug reports to bugs@dotslashplay.it ### script_version=20250804.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='populous-3' GAME_NAME='Populous: The Beginning' ARCHIVE_BASE_2_NAME='setup_populous_the_beginning_1.02_d3dfix_(76526).exe' ARCHIVE_BASE_2_MD5='fbe841301914a95b46ba2e9ef4da2150' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='501872' ARCHIVE_BASE_2_VERSION='1.02-gog76526' ARCHIVE_BASE_2_URL='https://www.gog.com/game/populous_the_beginning' ARCHIVE_BASE_1_NAME='setup_populous_the_beginning_1.02_depfix2_(48318).exe' ARCHIVE_BASE_1_MD5='12cb9973783ad50789b7531e60bfcb24' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='510000' ARCHIVE_BASE_1_VERSION='1.02-gog48318' ARCHIVE_BASE_1_URL='https://www.gog.com/game/populous_the_beginning' ARCHIVE_BASE_0_NAME='setup_populous_the_beginning_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='7e4545d04a3d00193507aa82dea14e50' ARCHIVE_BASE_0_VERSION='1.02-gog2.0.0.2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='430000' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' ddraw.dll msapi.dll qmixer.dll sfman32.dll weanetr.dll d3dpoptb.exe d3dpoptbuw.exe dxcfg.exe poptb.exe poptbuw.exe' CONTENT_GAME_DATA_FILES=' data fmv language levels levluw objects rddata sound' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' SAVE' ## Set required registry keys. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\Bullfrog Productions Ltd\Populous: The Beginning] "BuildTypeCode"=dword:00000001 "InstallDirectory"="\\'"${GAME_ID}"'" "InstallDrive"="C:" "InstallPath"="C:\\'"${GAME_ID}"'" "Language"=dword:00000009 "Version"="1.01"' ## TODO: Check why a WINE virtual desktop is required. WINE_VIRTUAL_DESKTOP='800x600' APP_MAIN_EXE='poptb.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-populous-series.sh0000755000000000000000000000637414471751340015350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # Populous series: # - Populous: Promised Lands # - Populous 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250809.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_EPISODE1='populous-1' GAME_NAME_EPISODE1='Populous: Promised Lands' GAME_ID_EPISODE2='populous-2' GAME_NAME_EPISODE2='Populous 2' ## Populous: Promised Lands ARCHIVE_BASE_EPISODE1_1_NAME='setup_populous_with_promised_lands_1.0_(28044).exe' ARCHIVE_BASE_EPISODE1_1_MD5='c9d5e903afd9cf1974489579945288d1' ARCHIVE_BASE_EPISODE1_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_1_VERSION='1.0-gog28044' ARCHIVE_BASE_EPISODE1_1_SIZE='21067' ARCHIVE_BASE_EPISODE1_1_URL='https://www.gog.com/game/populous' ARCHIVE_BASE_EPISODE1_0_NAME='setup_populous_promised_lands_2.0.0.3.exe' ARCHIVE_BASE_EPISODE1_0_MD5='4c1844f4077b46925a57abca8111f26a' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_EPISODE1_0_SIZE='28000' ## Populous 2 ARCHIVE_BASE_EPISODE2_1_NAME='setup_populous_2_1.0_(28044).exe' ARCHIVE_BASE_EPISODE2_1_MD5='a047f275774435f2c20b40c44b1707e0' ARCHIVE_BASE_EPISODE2_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_1_SIZE='28608' ARCHIVE_BASE_EPISODE2_1_VERSION='1.0-gog28044' ARCHIVE_BASE_EPISODE2_1_URL='https://www.gog.com/game/populous_2' ARCHIVE_BASE_EPISODE2_0_NAME='setup_populous2_2.0.0.2.exe' ARCHIVE_BASE_EPISODE2_0_MD5='4f3b46cbadcd44821c212d96ef02cec5' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='31000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/populous_2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EPISODE1_0='app' CONTENT_PATH_DEFAULT_EPISODE2_0='app' CONTENT_GAME_MAIN_FILES_EPISODE1=' data populous.exe' CONTENT_GAME_MAIN_FILES_EPISODE2=' data sound pop2.exe intro.exe' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' data sound popsave' APP_MAIN_EXE_EPISODE1='populous.exe' APP_MAIN_EXE_EPISODE2='pop2.exe' APP_MAIN_ICON_EPISODE1='app/goggame-1207658963.ico' APP_MAIN_ICON_EPISODE1_0='gfw_high.ico' APP_MAIN_ICON_EPISODE2='app/goggame-1207658981.ico' APP_MAIN_ICON_EPISODE2_0='gfw_high.ico' APP_MAIN_DOSBOX_PRERUN_EPISODE2=' intro.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-potion-craft.sh0000755000000000000000000000537514471751340014577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Potion Craft: Alchemy Simulator # send your bug reports to bugs@dotslashplay.it ### script_version=20251005.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='potion-craft' GAME_NAME='Potion Craft: Alchemy Simulator' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_2_NAME='setup_potion_craft_alchemist_simulator_2.0.2.0_(83409).exe' ARCHIVE_BASE_2_MD5='ef2e70aa1e9be3b0f5816ed6a52cbbb5' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='2157080' ARCHIVE_BASE_2_VERSION='2.0.2.0-gog83409' ARCHIVE_BASE_2_URL='https://www.gog.com/game/potion_craft_alchemist_simulator' ARCHIVE_BASE_1_NAME='setup_potion_craft_alchemist_simulator_1.1.0.0_(64bit)_(69392).exe' ARCHIVE_BASE_1_MD5='f92044dc682cf903e88ed8aa8a00d665' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1669279' ARCHIVE_BASE_1_VERSION='1.1.0.0-gog64bit' ARCHIVE_BASE_0_NAME='setup_potion_craft_alchemist_simulator_1.0_(64bit)_(60776).exe' ARCHIVE_BASE_0_MD5='fa4aeefeba0f8cec711f4e22f9369e6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.2-gog60776' ## This installer is no longer available from gog.com. ARCHIVE_BASE_DEMO_0_NAME='setup_potion_craft_demo_21.01.30_(46141).exe' ARCHIVE_BASE_DEMO_0_MD5='ce1bfadccaf2821692dd61e74bdb1e1a' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1400000' ARCHIVE_BASE_DEMO_0_VERSION='2021.01.30-gog46141' UNITY3D_NAME='potion craft' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/niceplay games/Potion Craft' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-prison-architect.sh0000755000000000000000000001033014471751340015433 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Prison Architect # send your bug reports to bugs@dotslashplay.it ### script_version=20250217.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='prison-architect' GAME_NAME='Prison Architect' ARCHIVE_BASE_GOG_0_NAME='prison_architect_the_jailhouse102_11056_64622.sh' ARCHIVE_BASE_GOG_0_MD5='3eba98e972e30c9aa27090c4590f40dd' ARCHIVE_BASE_GOG_0_SIZE='537900' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog64622' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/prison_architect' ## This DRM-free archive is no longer available for sale from humblebundle.com. ARCHIVE_BASE_HUMBLE_0_NAME='prisonarchitect-the_slammer_1.03-linux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='33234710874924d50ccb3719ae951583' ARCHIVE_BASE_HUMBLE_0_SIZE='456965' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble2' ARCHIVE_BASE_MULTIARCH_GOG_0_NAME='prison_architect_clink_1_02_30664.sh' ARCHIVE_BASE_MULTIARCH_GOG_0_MD5='f261f6121e3fe9ae5023624098d3946d' ARCHIVE_BASE_MULTIARCH_GOG_0_SIZE='390000' ARCHIVE_BASE_MULTIARCH_GOG_0_VERSION='1.0-gog30664' ARCHIVE_BASE_MULTIARCH_HUMBLE_0_NAME='prisonarchitect-clink_1.02-linux.tar.gz' ARCHIVE_BASE_MULTIARCH_HUMBLE_0_MD5='ecf4cf68e10069c3c2cb99bcc52ef417' ARCHIVE_BASE_MULTIARCH_HUMBLE_0_SIZE='390000' ARCHIVE_BASE_MULTIARCH_HUMBLE_0_VERSION='1.0-humble1' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='prison-architect_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='b87d9f5b95458547f54daf19a1592cea' ARCHIVE_OPTIONAL_ICONS_URL='http://downloads.dotslashplay.it/resources/prison-architect/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='prisonarchitect-the_slammer_1.0-linux' CONTENT_PATH_DEFAULT_MULTIARCH_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_MULTIARCH_HUMBLE='prisonarchitect-clink_1.0-linux' CONTENT_LIBS_BIN_FILES=' libpops_api.so' CONTENT_LIBS_BIN64_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' PrisonArchitect.x86_64' CONTENT_GAME_BIN32_FILES=' PrisonArchitect.i686' CONTENT_GAME_DATA_FILES=' *.dat' APP_MAIN_EXE_BIN32='PrisonArchitect.i686' APP_MAIN_EXE_BIN64='PrisonArchitect.x86_64' APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICON_MULTIARCH_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libresolv.so.2 libSDL2-2.0.so.0 libstdc++.so.6 libuuid.so.1 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN64' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-prophour23.sh0000755000000000000000000000344514471751340014211 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Prophour23 # send your bug reports to bugs@dotslashplay.it ### script_version=20250130.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='prophour23' GAME_NAME='Prophour23' ARCHIVE_BASE_0_NAME='Prophour23_Linux32_1.1.2.zip' ARCHIVE_BASE_0_MD5='57c6a33a788647526f25d88aeb355ad6' ARCHIVE_BASE_0_VERSION='1.1.2-humble1' ARCHIVE_BASE_0_SIZE='101779' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/prophour23' CONTENT_PATH_DEFAULT='Prophour23_Linux32_1.1.2' CONTENT_GAME_MAIN_FILES=' prophour23.jar' APP_MAIN_TYPE='java' APP_MAIN_EXE='prophour23.jar' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_128 APP_MAIN_ICON_256' APP_MAIN_ICON_16='icon-16.png' APP_MAIN_ICON_32='icon-32.png' APP_MAIN_ICON_128='icon-128.png' APP_MAIN_ICON_256='icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ravenous-devils.sh0000755000000000000000000000371514471751340015314 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Ravenous Devils # send your bug reports to bugs@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='ravenous-devils' GAME_NAME='Ravenous Devils' ARCHIVE_BASE_1_NAME='setup_ravenous_devils_1.0.2_(64bit)_(59454).exe' ARCHIVE_BASE_1_MD5='efe01e3e15054928ea1b91777d0481bf' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.0.2-gog59454' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ravenous_devils' ARCHIVE_BASE_0_NAME='setup_ravenous_devils_1.0.1_(64bit)_(55400).exe' ARCHIVE_BASE_0_MD5='e18ae8a3932ebcfeaa742cd9f849af4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0.1-gog55400' UNREALENGINE4_NAME='ravenous_devils' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='ravenous_devils.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-reassembly.sh0000755000000000000000000000516314471751340014333 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Reassembly # send your bug reports to bugs@dotslashplay.it ### script_version=20250928.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='reassembly' GAME_NAME='Reassembly' ARCHIVE_BASE_GOG_0_NAME='reassembly_2019_4_04_28550.sh' ARCHIVE_BASE_GOG_0_MD5='640cc7849af45fb221f349b9d901b9ab' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='2019.03.30-gog28550' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/reassembly' ARCHIVE_BASE_HUMBLE_0_NAME='anisopteragames_Reassembly_2019_04_11.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='ae516da186f0a2c6799eb8059a51337d' ARCHIVE_BASE_HUMBLE_0_SIZE='120000' ARCHIVE_BASE_HUMBLE_0_VERSION='2019.03.30-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/reassembly' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Reassembly' CONTENT_LIBS_BIN_RELATIVE_PATH='linux/linux64' CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.13' CONTENT_GAME_BIN_FILES=' linux/ReassemblyRelease64' CONTENT_GAME_DATA_FILES=' data linux/reassembly_icon.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='linux/ReassemblyRelease64' APP_MAIN_ICON='linux/reassembly_icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-rimworld.sh0000755000000000000000000000406314471751340014022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rimworld # send your bug reports to bugs@dotslashplay.it ### script_version=20250218.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='rimworld' GAME_NAME='Rimworld' ARCHIVE_BASE_0_NAME='RimWorld1-1-2654Linux.zip' ARCHIVE_BASE_0_MD5='4391d550e8da14b7826a63dbd75cbc44' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.1.2654-1' ARCHIVE_BASE_0_URL='https://rimworldgame.com/getmygame/' UNITY3D_NAME='RimWorldLinux' ## TODO: Add an explicit list of Unity3D plugins to include CONTENT_PATH_DEFAULT='RimWorld1-1-2654Linux' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_DATA_FILES=' Data/Core' USER_PERSISTENT_DIRECTORIES=' Mods' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: Add a list of required native libraries. PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## Errors during the game data extraction from the archive are expected, they should be ignored. archive_extraction_default 2>/dev/null || true # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-robin-hood-the-legend-of-sherwood.sh0000755000000000000000000001420614471751340020467 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Robin Hood: The Legend of Sherwood # send your bug reports to bugs@dotslashplay.it ### script_version=20250928.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='robin-hood-the-legend-of-sherwood' GAME_NAME='Robin Hood: The Legend of Sherwood' ARCHIVE_BASE_EN_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778).exe' ARCHIVE_BASE_EN_0_MD5='a52ed21f93f17457a3a137b54ee60919' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='6fbcea908c83933326294c0706838da5' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog24778' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_FR_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778).exe' ARCHIVE_BASE_FR_0_MD5='2f945bd2a1d70c1c9ff3b9938e1adf9a' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='060df1c05868593a59ccc4ca2832cf36' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog24778' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_DE_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778).exe' ARCHIVE_BASE_DE_0_MD5='cdba08e0613408bc3709f387144c7a1d' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778)-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='6291dbee561468bb4fbb769aaf74eb36' ARCHIVE_BASE_DE_0_SIZE='1100000' ARCHIVE_BASE_DE_0_VERSION='1.1-gog24778' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_PL_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778).exe' ARCHIVE_BASE_PL_0_MD5='42066791c34c3ff6f6b9a1404f7afb1e' ARCHIVE_BASE_PL_0_TYPE='innosetup' ARCHIVE_BASE_PL_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778)-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='dc4bf92553c3a6e436b8d79c99a6287c' ARCHIVE_BASE_PL_0_SIZE='1100000' ARCHIVE_BASE_PL_0_VERSION='1.1-gog24778' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_ES_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778).exe' ARCHIVE_BASE_ES_0_MD5='7db0f8d9c40bb398acb406224a225eb9' ARCHIVE_BASE_ES_0_TYPE='innosetup' ARCHIVE_BASE_ES_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778)-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='e9ba8791951285a814ef86fcf3b8614f' ARCHIVE_BASE_ES_0_SIZE='1100000' ARCHIVE_BASE_ES_0_VERSION='1.1-gog24778' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_EN_OLDPATH_1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_(17797).exe' ARCHIVE_BASE_EN_OLDPATH_1_MD5='e8808cdafc7ea75cbcfaa850275b3dd6' ARCHIVE_BASE_EN_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_EN_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_EN_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_FR_OLDPATH_1_NAME='setup_robin_hood_-_the_legend_of_sherwood_french_1.1_(17797).exe' ARCHIVE_BASE_FR_OLDPATH_1_MD5='8b19812fb424651fc482cb7a9c5ed665' ARCHIVE_BASE_FR_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_FR_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_EN_OLDPATH_0_NAME='setup_robin_hood_2.0.0.12.exe' ARCHIVE_BASE_EN_OLDPATH_0_MD5='9e2452c88f154c5e0306ca98e6b773ef' ARCHIVE_BASE_EN_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_EN_OLDPATH_0_VERSION='1.1-gog2.0.0.12' ARCHIVE_BASE_FR_OLDPATH_0_NAME='setup_robin_hood_french_2.1.0.15.exe' ARCHIVE_BASE_FR_OLDPATH_0_MD5='f6775cefa54e15141b855d037eafb8d9' ARCHIVE_BASE_FR_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_FR_OLDPATH_0_VERSION='1.1-gog2.1.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_OLDPATH='app' CONTENT_PATH_DEFAULT_FR_OLDPATH='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe launch data/savegame.exe' CONTENT_GAME_L10N_FILES=' 1031 1036 1045 2047 3082 data/configuration data/interface data/text data/levels/*.rhm data/levels/*.scb data/sounds/fx_0017.sfk data/sounds/snd_055.sfk' CONTENT_GAME_DATA_FILES=' data/robinhood.bks data/robinhood.dic data/animations data/characters data/levels data/musics data/sounds' CONTENT_DOC_L10N_FILES=' manual.pdf' USER_PERSISTENT_DIRECTORIES=' data/configuration data/savegame' USER_PERSISTENT_FILES=' campaign.bck launch/settings.ini' ## TODO: Check why a virtual desktop is required. WINE_VIRTUAL_DESKTOP='1024x768' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='robin hood.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_ID_DE="${PKG_L10N_BASE_ID}-de" PKG_L10N_ID_PL="${PKG_L10N_BASE_ID}-pl" PKG_L10N_ID_ES="${PKG_L10N_BASE_ID}-es" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localisation' PKG_L10N_DESCRIPTION_FR='French localisation' PKG_L10N_DESCRIPTION_DE='German localisation' PKG_L10N_DESCRIPTION_PL='Polish localisation' PKG_L10N_DESCRIPTION_ES='Spanish localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-rymdkapsel.sh0000755000000000000000000000504714471751340014341 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Rymdkapsel # send your bug reports to bugs@dotslashplay.it ### script_version=20250227.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='rymdkapsel' GAME_NAME='Rymdkapsel' ARCHIVE_BASE_0_NAME='rymdkapsel-3.0.1-2014-01-31.deb' ARCHIVE_BASE_0_MD5='f19110f945625a39d154401e1083662e' ARCHIVE_BASE_0_SIZE='74942' ARCHIVE_BASE_0_VERSION='3.0.1-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/rymdkapsel' CONTENT_PATH_DEFAULT='usr/games/rymdkapsel' CONTENT_LIBS_BIN_FILES=' regexp.dso std.dso zlib.dso lime.ndll' CONTENT_GAME_BIN_FILES=' rymdkapsel' CONTENT_GAME_DATA_FILES=' assets manifest' CONTENT_DOC_DATA_PATH='usr/share/doc/rymdkapsel' CONTENT_DOC_DATA_FILES=' copyright' APP_MAIN_EXE='rymdkapsel' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_64 APP_MAIN_ICON_128' APP_MAIN_ICON_32='../../share/icons/hicolor/32x32/apps/rymdkapsel.png' APP_MAIN_ICON_48='../../share/icons/hicolor/48x48/apps/rymdkapsel.png' APP_MAIN_ICON_64='../../share/icons/hicolor/64x64/apps/rymdkapsel.png' APP_MAIN_ICON_128='../../share/icons/hicolor/128x128/apps/rymdkapsel.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-satellite-reign.sh0000755000000000000000000000560414471751340015255 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Satellite Reign # send your bug reports to bugs@dotslashplay.it ### script_version=20250218.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='satellite-reign' GAME_NAME='Satellite Reign' ARCHIVE_BASE_1_NAME='gog_satellite_reign_2.8.0.10.sh' ARCHIVE_BASE_1_MD5='5a22cdb3e721bbed7bc5836e769caa0a' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.13.06-gog2.8.0.10' ARCHIVE_BASE_1_URL='https://www.gog.com/game/satellite_reign' ARCHIVE_BASE_0_NAME='gog_satellite_reign_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0e050bac1c75632b094097132fa6be72' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.07.08-gog2.6.0.8' UNITY3D_NAME='SatelliteReignLinux' UNITY3D_PLUGINS=' RakNet.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' Linux_GPU_DriverInfo.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/566 ## Unity3D - Failure to handle unexpected directories under xxx_Data/Plugins rm --recursive \ "$(unity3d_name)_Data/Plugins/CSteamworks.bundle" \ "$(unity3d_name)_Data/Plugins/ShroudUnityPlugin.bundle" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sigma-theory.sh0000755000000000000000000000425514471751340014576 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Sigma Theory # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='sigma-theory' GAME_NAME='Sigma Theory: Global Cold War' ARCHIVE_BASE_0_NAME='sigma_theory_global_cold_war_1_2_1_2_39591.sh' ARCHIVE_BASE_0_MD5='d65fe37e8e74922d463ca6756bfdb7c7' ARCHIVE_BASE_0_SIZE='1529089' ARCHIVE_BASE_0_VERSION='1.2.1.2-gog39591' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sigma_theory_global_cold_war' UNITY3D_NAME='sigma' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game crashes before reaching the main menu if steam_api library is not available. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-skyshines-bedlam.sh0000755000000000000000000000416014471751340015423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Skyshine's Bedlam # send your bug reports to bugs@dotslashplay.it ### script_version=20250928.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='skyshines-bedlam' GAME_NAME='Skyshineʼs Bedlam' ## This game is no longer available for sale from GOG. ARCHIVE_BASE_0_NAME='setup_skyshines_bedlam_redux_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='9fa7fdb957941eb0b9e6b53f6a9ea4a3' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_skyshines_bedlam_redux_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='30cdb581d87cc26574c5bbb935e897fa' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' win32' CONTENT_GAME_DATA_FILES=' assets' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/SkyshinesBedlam' APP_MAIN_EXE='win32/Skyshines BEDLAM.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-slime-rancher.sh0000755000000000000000000000371514471751340014717 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Slime Rancher # send your bug reports to bugs@dotslashplay.it ### script_version=20250429.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='slime-rancher' GAME_NAME='Slime Rancher' ARCHIVE_BASE_0_NAME='slime_rancher_1_4_4_51897.sh' ARCHIVE_BASE_0_MD5='1933e39e9f21f09b60312ced60640aa6' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.4.4-gog51897' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slime_rancher' UNITY3D_NAME='SlimeRancher' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of Discord integration library rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-slipways.sh0000755000000000000000000000403014471751340014030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Slipways # send your bug reports to bugs@dotslashplay.it ### script_version=20250928.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='slipways' GAME_NAME='Slipways' ARCHIVE_BASE_1_NAME='setup_slipways_1.3-1139-win_(64bit)_(71895).exe' ARCHIVE_BASE_1_MD5='847e5a084cceb2741bd26684568b4140' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='835016' ARCHIVE_BASE_1_VERSION='1.3.1139-gog71895' ARCHIVE_BASE_1_URL='https://www.gog.com/game/slipways' ARCHIVE_BASE_0_NAME='setup_slipways_1.3-1106-win_(64bit)_(61549).exe' ARCHIVE_BASE_0_MD5='f14169a08342feaeb87b0420d7b5d65d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.3.1106-gog61549' UNITY3D_NAME='slipways' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' data' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Beetlewing/Slipways' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-solar-flux.sh0000755000000000000000000000372514471751340014263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Solar Flux # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='solar-flux' GAME_NAME='Solar Flux' ## This DRM-free archive is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='SolarFluxLinux.zip' ARCHIVE_BASE_0_MD5='9e2faa973a4affef9ddb1205f5f82019' ARCHIVE_BASE_0_SIZE='213929' ARCHIVE_BASE_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT='Solar Flux Linux' CONTENT_GAME_BIN_FILES=' lib/solarflux' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='lib/solarflux' APP_MAIN_ICON='data/icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-songs-of-silence.sh0000755000000000000000000000677414471751340015351 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Songs of Silence # send your bug reports to bugs@dotslashplay.it ### script_version=20241220.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='songs-of-silence' GAME_NAME='Songs of Silence' ARCHIVE_BASE_2_NAME='setup_songs_of_silence_1.1.0-d.7846_(64bit)_(78613).exe' ARCHIVE_BASE_2_MD5='1da2bbeff582b8e21507c96e8f6d979a' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_songs_of_silence_1.1.0-d.7846_(64bit)_(78613)-1.bin' ARCHIVE_BASE_2_PART1_MD5='7478d544e00335d80dfd2320955b8dd6' ARCHIVE_BASE_2_PART2_NAME='setup_songs_of_silence_1.1.0-d.7846_(64bit)_(78613)-2.bin' ARCHIVE_BASE_2_PART2_MD5='79ac2108a4a5afd81b77c550a7c8a25c' ARCHIVE_BASE_2_SIZE='6083070' ARCHIVE_BASE_2_VERSION='1.1.0-gog78613' ARCHIVE_BASE_2_URL='https://www.gog.com/game/songs_of_silence' ARCHIVE_BASE_1_NAME='setup_songs_of_silence_1.0.3-d.7778_(64bit)_(78393).exe' ARCHIVE_BASE_1_MD5='6fc46c01c88a258da47c6c767aaf667e' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_songs_of_silence_1.0.3-d.7778_(64bit)_(78393)-1.bin' ARCHIVE_BASE_1_PART1_MD5='0cce99726df83cc685744ad2de501282' ARCHIVE_BASE_1_PART2_NAME='setup_songs_of_silence_1.0.3-d.7778_(64bit)_(78393)-2.bin' ARCHIVE_BASE_1_PART2_MD5='d221248b7e86a42b570eec2045c48f53' ARCHIVE_BASE_1_SIZE='6092548' ARCHIVE_BASE_1_VERSION='1.0.3-gog78393' ARCHIVE_BASE_0_NAME='setup_songs_of_silence_1.0.2-d.7719_(64bit)_(78109).exe' ARCHIVE_BASE_0_MD5='44adde224499bc5f07b83d58637e1b68' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_songs_of_silence_1.0.2-d.7719_(64bit)_(78109)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b14dd73296a314c2a02e72c957001472' ARCHIVE_BASE_0_PART2_NAME='setup_songs_of_silence_1.0.2-d.7719_(64bit)_(78109)-2.bin' ARCHIVE_BASE_0_PART2_MD5='26a256d9d57b6df627db84ed9cf95df3' ARCHIVE_BASE_0_SIZE='6660310' ARCHIVE_BASE_0_VERSION='1.0.2-gog78109' UNITY3D_NAME='songsofsilence' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Chimera Entertainment GmbH/SongsOfSilence' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## A warning is triggered during the extraction, but despite the hash mismatch ## the file size is the expected one and it does not seem to cause problems: ## Warning: Output checksum mismatch for songsofsilence_data/resources.assets: ## ├─ actual: MD5 34a78c4bd457d0af0f6be739c84f1de7 ## └─ expected: MD5 cf5d0fdd0140118e253c735df3d3059c archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-space-pirates-and-zombies.sh0000755000000000000000000000472514471751340017136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Space Pirates and Zombies # send your bug reports to bugs@dotslashplay.it ### script_version=20250218.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='space-pirates-and-zombies' GAME_NAME='Space Pirates and Zombies' ARCHIVE_BASE_HUMBLE_0_NAME='spaz-linux-1385503815.bin' ARCHIVE_BASE_HUMBLE_0_MD5='0964827fe06d3447ea91457fd789a207' ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='164117' ARCHIVE_BASE_HUMBLE_0_VERSION='1.605-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/space-pirates-and-zombies-spaz' ARCHIVE_BASE_GOG_0_NAME='gog_space_pirates_and_zombies_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='46da2a84e78f8016e35f7c0e63e28581' ARCHIVE_BASE_GOG_0_SIZE='180000' ARCHIVE_BASE_GOG_0_VERSION='1.605-gog2.0.0.4' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/space_pirates_and_zombies' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' ## Despite its name, "audio.so" is not an ELF library. CONTENT_GAME_BIN_FILES=' audio.so SPAZ' CONTENT_GAME_DATA_FILES=' common game mods icon.bmp SPAZ.png' CONTENT_DOC_DATA_FILES=' README-linux.txt' APP_MAIN_EXE='SPAZ' APP_MAIN_ICON='SPAZ.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-space-run.sh0000755000000000000000000000515414471751340014062 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Space Run # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='space-run' GAME_NAME='Space Run: Fast and safe delivery' ARCHIVE_BASE_0_NAME='setup_space_run_2.1.0.2.exe' ARCHIVE_BASE_0_MD5='e370f25708f12ef1916400a25c2c4e9c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1263910' ARCHIVE_BASE_0_VERSION='1.11e-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/space_run' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bass.dll cg.dll cggl.dll chartdir50.dll crashrpt.dll dbghelp.dll devil.dll fbxsdk-2013.3.dll fmod_event.dll fmod_event_net.dll fmodex.dll glut32.dll ilu.dll ilut.dll libfbxsdk.dll libmysql.dll tbb.dll tier0_s.dll vstdlib_s.dll crashsender.exe ospacegame.exe crashrpt_lang.ini reshacker.ini spaceresources/enginesettings.ini' CONTENT_GAME_DATA_FILES=' spaceresources' USER_PERSISTENT_DIRECTORIES=' Save' USER_PERSISTENT_FILES=' reshacker.ini spaceresources/enginesettings.ini' ## Work around the broken in-game language selection. USER_PERSISTENT_FILES="$USER_PERSISTENT_FILES localization.cfg" APP_MAIN_EXE='ospacegame.exe' ## Work around the broken in-game language selection. APP_MAIN_PRERUN=' # Work around the broken in-game language selection. LANG=$(cat localization.cfg) export LANG ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Work around the broken in-game language selection. cat > "$(package_path 'PKG_BIN')$(path_game_data)/localization.cfg" << EOF en EOF # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-spacecom.sh0000755000000000000000000000513214471751340013753 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Spacecom # send your bug reports to bugs@dotslashplay.it ### script_version=20250219.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='spacecom' GAME_NAME='Spacecom' ARCHIVE_BASE_HUMBLE_0_NAME='spacecomLinux0.9.1035.zip' ARCHIVE_BASE_HUMBLE_0_MD5='a89515caa9e79a36b1769fbecc71e3d8' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.9.1035-humble.2014.11.03' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/spacecom' ARCHIVE_BASE_GOG_0_NAME='gog_spacecom_2.4.0.9.sh' ARCHIVE_BASE_GOG_0_MD5='ee70b48ffa207bc1c668d50753ec24b5' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='230000' ARCHIVE_BASE_GOG_0_VERSION='1.0.9.1035-gog.2.4.0.9' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/spacecom' UNITY3D_NAME='SPACECOM' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='Linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_DOC_DATA_FILES=' SPACECOM Game Manual.pdf' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_DATA_ID="$GAME_ID-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-spellforce.sh0000755000000000000000000000546714471751340014332 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Spellforce # send your bug reports to bugs@dotslashplay.it ### script_version=20250312.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='spellforce' GAME_NAME='Spellforce' ARCHIVE_BASE_0_NAME='setup_spellforce_-_platinum_edition_1.54.75000_(17748).exe' ARCHIVE_BASE_0_MD5='ed34fb43d8042ff61a889865148b8dd2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_spellforce_-_platinum_edition_1.54.75000_(17748)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60fca014e7ccd4630a7ec3cedb23942a' ARCHIVE_BASE_0_SIZE='3900000' ARCHIVE_BASE_0_VERSION='1.54.7500-gog17748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spellforce_platinum' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll dbghelp.dll mss32.dll ar.exe spellforce.exe' ## This file, generated below, includes the required CD-key. CONTENT_GAME0_BIN_FILES=' cdkey' CONTENT_GAME_DATA_FILES=' data map miles pak videos spellforce_addon.ico spellforce_addon2.ico' CONTENT_DOC_DATA_FILES=' manual.pdf readme.rtf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/SpellForce' USER_PERSISTENT_FILES=' config.lua' APP_MAIN_EXE='spellforce.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fetch the required CD-key from the installer script sed --silent '125s/.*"valueData": "\(.*\)",/\1/p' goggame-1207658719.script > 'cdkey' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Register the game CD-key wineprefix_init_custom() { cat <<- 'EOF' # Register the game CD-key cdkey=$(cat "${PATH_GAME_DATA}/cdkey") $(wine_command) reg add "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\SpellForce" /v "CDKEY" /t REG_SZ /d "$cdkey" /f EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-spore.sh0000755000000000000000000001070514471751340013313 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Spore # send your bug reports to bugs@dotslashplay.it ### script_version=20250807.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='spore' GAME_NAME='Spore' ARCHIVE_BASE_1_NAME='setup_sporetm_collection_3.1.0.29_(77221).exe' ARCHIVE_BASE_1_MD5='a84931fcbdda5dda58dcc5cd9d5b906f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_sporetm_collection_3.1.0.29_(77221)-1.bin' ARCHIVE_BASE_1_PART1_MD5='da8282841877bdfeb9ba3dbbaff03e1e' ARCHIVE_BASE_1_PART2_NAME='setup_sporetm_collection_3.1.0.29_(77221)-2.bin' ARCHIVE_BASE_1_PART2_MD5='e5290fb4975109b9229d3494c4c5ccd9' ARCHIVE_BASE_1_SIZE='6223301' ARCHIVE_BASE_1_VERSION='3.1.0.29-gog77221' ARCHIVE_BASE_1_URL='https://www.gog.com/game/spore_collection' ARCHIVE_BASE_0_NAME='setup_spore_3.1.0.22_(10834).exe' ARCHIVE_BASE_0_MD5='195652ca3eb62fe725f7b334cb27874e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_spore_3.1.0.22_(10834)-1.bin' ARCHIVE_BASE_0_PART1_MD5='384354f468d981965d45f437e54a13ab' ARCHIVE_BASE_0_PART2_NAME='setup_spore_3.1.0.22_(10834)-2.bin' ARCHIVE_BASE_0_PART2_MD5='885466a612c4243ef10758c7c6cfcfbb' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='3.1.0.22-gog10834' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' sporebin' CONTENT_GAME_EP1_BIN_FILES=' sporebinep1' CONTENT_GAME_DATA_FILES=' data' CONTENT_GAME0_DATA_RELATIVE_PATH='__support/add' CONTENT_GAME0_DATA_FILES=' login.prop' CONTENT_GAME_EP1_DATA_FILES=' dataep1' CONTENT_GAME_BP1_FILES=' bp1content' CONTENT_DOC_DATA_FILES=' support' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Spore users/${USER}/Documents/My Spore Creations' ## Set required registry keys. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\electronic arts\spore] "appdir"="Spore" "installcompleted"=dword:00000001 "locale"="en-us" "playerdir"="My Spore Creations" "reindexyesorno"=dword:00000000 "installloc"="C:\\'"${GAME_ID}"'" "datadir"="C:\\'"${GAME_ID}"'\\data" [HKEY_LOCAL_MACHINE\Software\electronic arts\spore_EP1] "AddOnID"=dword:00000002 "PackID"=dword:07a7f786 "DataDir"="C:\\'"${GAME_ID}"'\\dataep1\\"' APP_MAIN_EXE='sporebin/sporeapp.exe' APP_EP1_ID="${GAME_ID}-galactic-adventures" APP_EP1_NAME="$GAME_NAME - Galactic Adventures" APP_EP1_EXE='sporebinep1/sporeapp.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA PKG_EP1_BIN PKG_EP1_DATA PKG_BP1' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_EP1_BIN_ID="${GAME_ID}-galactic-adventures" PKG_EP1_BIN_DESCRIPTION='Galactic Adventures' PKG_EP1_BIN_ARCH='32' PKG_EP1_BIN_DEPENDENCIES_SIBLINGS=' PKG_BIN PKG_EP1_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_EP1_DATA_ID="${PKG_EP1_BIN_ID}-data" PKG_EP1_DATA_DESCRIPTION="$PKG_EP1_BIN_DESCRIPTION - data" PKG_BP1_ID="${GAME_ID}-creepy-and-cute-parts-pack" PKG_BP1_DESCRIPTION='Creepy & Cute Parts Pack' PKG_BP1_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' 'APP_MAIN' content_inclusion_icons 'PKG_EP1_DATA' 'APP_EP1' content_inclusion_default # Write launchers ## Include the login workaround. wineprefix_init_custom() { cat <<- EOF ## Include the login workaround. install -D --mode=644 \\ "$(path_game_data)/login.prop" \\ "\${WINEPREFIX}/drive_c/users/\${USER}/AppData/Roaming/Spore/Preferences/login.prop" EOF } launchers_generation 'PKG_BIN' 'APP_MAIN' ## Prevent a file path conflict if the registry script ## is created both for the base game and the expansion. wine_registry_script_write() { return 0; } launchers_generation 'PKG_EP1_BIN' 'APP_EP1' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-star-twine.sh0000755000000000000000000000505114471751340014256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Star-Twine # send your bug reports to bugs@dotslashplay.it ### script_version=20250928.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='star-twine' GAME_NAME='Star-Twine' ARCHIVE_BASE_0_NAME='star-twine-linux.zip' ARCHIVE_BASE_0_MD5='0a98b235d1e30fe8d89a4e9278fb3e92' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.3.0-itch.2021.09.21' ARCHIVE_BASE_0_URL='https://sparsegamedev.itch.io/star-twine' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_LIBS_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS_FILES=' libFNA3D.so.0' ## TODO: Check if the steam_api library is required. CONTENT_LIBS_LIBS_FILES="$CONTENT_LIBS_LIBS_FILES libsteam_api.so" CONTENT_GAME_MAIN_FILES=' Star-Twine.exe Star-Twine.png Content cursor.bmp monoconfig monomachineconfig FNA.dll FNA.dll.config Lidgren.Network.dll NetCommon.dll Steamworks.NET.dll' CONTENT_DOC_MAIN_FILES=' license.txt Linux.README' APP_MAIN_EXE='Star-Twine.exe' APP_MAIN_ICON='Star-Twine.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libSDL2-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-star-vikings.sh0000755000000000000000000000427514471751340014611 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Star Vikings # send your bug reports to bugs@dotslashplay.it ### script_version=20251018.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='star-vikings' GAME_NAME='Star Vikings' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='gog_star_vikings_demo_2.1.0.2.sh' ARCHIVE_BASE_DEMO_0_MD5='9eea4e30b81ae17790db3a63f7bea382' ARCHIVE_BASE_DEMO_0_SIZE='544466' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog2.1.0.2' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/star_vikings_demo' UNITY3D_NAME_DEMO='StarVikingsDemo' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-star-wolves-3.sh0000755000000000000000000000435314471751340014613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Star Wolves 3: Civil War # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='star-wolves-3' GAME_NAME='Star Wolves 3: Civil War' ARCHIVE_BASE_0_NAME='setup_star_wolves3_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='63b8ef96c0978b068d5df2a7af8125fa' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_star_wolves3_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='f057ab5db4ad8e2b4d21703b65e07b5f' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='4860136' ARCHIVE_BASE_0_VERSION='1.12-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/star_wolves_3_civil_war' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' binkw32.dll dbghelp.dll zlib1.dll sw3cw.exe' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' default.cfg Main.ini' CONTENT_GAME_DATA_FILES=' Data' CONTENT_DOC_DATA_FILES=' Manual.pdf' USER_PERSISTENT_DIRECTORIES=' profiles' USER_PERSISTENT_FILES=' default.cfg Main.ini' APP_MAIN_EXE='sw3cw.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-stardew-valley.sh0000755000000000000000000002751014471751340015130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Stardew Valley # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='stardew-valley' GAME_NAME='Stardew Valley' # Archives ## MonoGame builds ARCHIVE_BASE_MONOGAME_4_NAME='stardew_valley_1_6_8_24119_6732702600_72964.sh' ARCHIVE_BASE_MONOGAME_4_MD5='8a67d105c8e7b801ce950afa121aa139' ARCHIVE_BASE_MONOGAME_4_SIZE='677398' ARCHIVE_BASE_MONOGAME_4_VERSION='1.6.8-gog72964' ARCHIVE_BASE_MONOGAME_4_URL='https://www.gog.com/game/stardew_valley' ARCHIVE_BASE_MONOGAME_3_NAME='stardew_valley_1_6_3_24087_6495347694_72214.sh' ARCHIVE_BASE_MONOGAME_3_MD5='3b37af7f3ccc2975699439ff09163fc5' ARCHIVE_BASE_MONOGAME_3_SIZE='666325' ARCHIVE_BASE_MONOGAME_3_VERSION='1.6.3-gog72214' ARCHIVE_BASE_MONOGAME_2_NAME='stardew_valley_1_6_2_24081_6443062877_72053.sh' ARCHIVE_BASE_MONOGAME_2_MD5='6718fd050430e14de9bf8e7dca7c86b8' ARCHIVE_BASE_MONOGAME_2_SIZE='666402' ARCHIVE_BASE_MONOGAME_2_VERSION='1.6.2-gog72053' ARCHIVE_BASE_MONOGAME_1_NAME='stardew_valley_1_6_0_24079_6430277568_72019.sh' ARCHIVE_BASE_MONOGAME_1_MD5='482db1736a6462600245fdd4f6bbd60a' ARCHIVE_BASE_MONOGAME_1_SIZE='666456' ARCHIVE_BASE_MONOGAME_1_VERSION='1.6.0-gog72019' ARCHIVE_BASE_MONOGAME_0_NAME='stardew_valley_1_5_6_1988831614_53040.sh' ARCHIVE_BASE_MONOGAME_0_MD5='c45810aeb8d52d30cab4d1cc7ff8ce64' ARCHIVE_BASE_MONOGAME_0_SIZE='670000' ARCHIVE_BASE_MONOGAME_0_VERSION='1.5.6-gog53040' ## XNA builds ARCHIVE_BASE_XNA_11_NAME='stardew_valley_1_5_4_981587505_44377.sh' ARCHIVE_BASE_XNA_11_MD5='ffeb52df688e169950d2b9d883c5e390' ARCHIVE_BASE_XNA_11_SIZE='650000' ARCHIVE_BASE_XNA_11_VERSION='1.5.4-gog44377' ARCHIVE_BASE_XNA_10_NAME='stardew_valley_1_5_3_967165180_44219.sh' ARCHIVE_BASE_XNA_10_MD5='c87b0beffe3236dd8545274037754c18' ARCHIVE_BASE_XNA_10_SIZE='650000' ARCHIVE_BASE_XNA_10_VERSION='1.5.3-gog44219' ARCHIVE_BASE_XNA_9_NAME='stardew_valley_1_5_2_952803924_44046.sh' ARCHIVE_BASE_XNA_9_MD5='56eb232720c737cb025f404ee74801ce' ARCHIVE_BASE_XNA_9_SIZE='650000' ARCHIVE_BASE_XNA_9_VERSION='1.5.2-gog44046' ARCHIVE_BASE_XNA_8_NAME='stardew_valley_1_5_1_931692592_43684.sh' ARCHIVE_BASE_XNA_8_MD5='8d9e0b2df18acbc1b83cd10b05ca9196' ARCHIVE_BASE_XNA_8_SIZE='650000' ARCHIVE_BASE_XNA_8_VERSION='1.5.1-gog43684' ARCHIVE_BASE_XNA_7_NAME='stardew_valley_1_5_928320980_43631.sh' ARCHIVE_BASE_XNA_7_MD5='50e1bbad197664a5b3511cba978c2fde' ARCHIVE_BASE_XNA_7_SIZE='650000' ARCHIVE_BASE_XNA_7_VERSION='1.5-gog43631' ARCHIVE_BASE_XNA_6_NAME='stardew_valley_1_5_926914271_43619.sh' ARCHIVE_BASE_XNA_6_MD5='cb92377270ecb859117e41dce26eeb69' ARCHIVE_BASE_XNA_6_SIZE='650000' ARCHIVE_BASE_XNA_6_VERSION='1.5-gog43619' ARCHIVE_BASE_XNA_5_NAME='stardew_valley_1_4_5_433754439_36068.sh' ARCHIVE_BASE_XNA_5_MD5='8d4f4fcef669a08a39e105f0eda790f4' ARCHIVE_BASE_XNA_5_SIZE='1100000' ARCHIVE_BASE_XNA_5_VERSION='1.4.5-gog36068' ARCHIVE_BASE_XNA_4_NAME='stardew_valley_1_4_3_379_34693.sh' ARCHIVE_BASE_XNA_4_MD5='07875ca8c7823f48a7eb533ac157a9da' ARCHIVE_BASE_XNA_4_SIZE='1700000' ARCHIVE_BASE_XNA_4_VERSION='1.4.3-gog34693' ARCHIVE_BASE_XNA_3_NAME='stardew_valley_1_4_1_367430508_34378.sh' ARCHIVE_BASE_XNA_3_MD5='2fc31edf997230c90c90c33e096d5762' ARCHIVE_BASE_XNA_3_SIZE='1700000' ARCHIVE_BASE_XNA_3_VERSION='1.4.1-gog34378' ARCHIVE_BASE_XNA_2_NAME='stardew_valley_1_3_36_27827.sh' ARCHIVE_BASE_XNA_2_MD5='8dd18eb151471a5901592188dfecb8a3' ARCHIVE_BASE_XNA_2_SIZE='990000' ARCHIVE_BASE_XNA_2_VERSION='1.3.36-gog27827' ARCHIVE_BASE_XNA_1_NAME='stardew_valley_en_1_3_28_22957.sh' ARCHIVE_BASE_XNA_1_MD5='e1e98cc3e891f5aafc23fb6617d6bc05' ARCHIVE_BASE_XNA_1_SIZE='970000' ARCHIVE_BASE_XNA_1_VERSION='1.3.28-gog22957' ARCHIVE_BASE_XNA_0_NAME='gog_stardew_valley_2.8.0.10.sh' ARCHIVE_BASE_XNA_0_MD5='27c84537bee1baae4e3c2f034cb0ff2d' ARCHIVE_BASE_XNA_0_SIZE='490000' ARCHIVE_BASE_XNA_0_VERSION='1.2.33-gog2.8.0.10' # Archives contents CONTENT_PATH_DEFAULT='data/noarch/game' ## MonoGame builds CONTENT_LIBS_BIN_FILES_MONOGAME=' libclrjit.so libcoreclr.so libcoreclrtraceptprovider.so libdbgshim.so libGalaxy64.so libGalaxyCSharpGlue.so libhostfxr.so libhostpolicy.so liblwjgl_lz4.so libmscordaccore.so libmscordbi.so libSkiaSharp.so libSystem.Globalization.Native.so libSystem.IO.Compression.Native.so libSystem.Native.so libSystem.Net.Security.Native.so libSystem.Security.Cryptography.Native.OpenSsl.so libSystem.*.a' ## The shipped SDL library must be included, to avoid the following crash on launch: ## Unhandled exception. System.Exception: SDL 2.0.4 does not support changing resizable parameter of the window after it's already been created, please use a newer version of it. ## at Microsoft.Xna.Framework.SdlGameWindow.set_AllowUserResizing(Boolean value) ## at StardewValley.GameRunner..ctor() ## at StardewValley.Program.Main(String[] args) CONTENT_LIBS0_BIN_FILES_MONOGAME=' libSDL2-2.0.so.0' ## The shipped FAudio library must be included, to prevent missing audio: ## FAudio: Failed to initialize. ## Game.Initialize() caught exception initializing XACT: ## Microsoft.Xna.Framework.Audio.NoAudioHardwareException (0x80004005) ## at Microsoft.Xna.Framework.Audio.SoundEffect.Device() ## at Microsoft.Xna.Framework.Audio.SoundEffect.Initialize() ## at Microsoft.Xna.Framework.Audio.SoundEffect..ctor(MiniFormatTag codec, Byte[] buffer, Int32 channels, Int32 sampleRate, Int32 blockAlignment, Int32 loopStart, Int32 loopLength) ## at Microsoft.Xna.Framework.Audio.WaveBank..ctor(AudioEngine audioEngine, String waveBankFilename, Boolean streaming, Int32 offset, Int32 packetsize) ## at StardewValley.Game1.Initialize() CONTENT_LIBS1_BIN_FILES_MONOGAME=' libFAudio.so.0' CONTENT_GAME_BIN_FILES_MONOGAME=' createdump Stardew Valley *.dll *.json *.xml' CONTENT_GAME_DATA_FILES_MONOGAME=' Content' CONTENT_DOC_DATA_FILES_MONOGAME=' lwjgl_license.txt lz4_license.txt' ## XNA builds CONTENT_GAME_MAIN_FILES_XNA=' Content mono monoconfig StardewValley.exe BmFont.dll GalaxyCSharp.dll GalaxyCSharp.dll.config libSkiaSharp.dll Lidgren.Network.dll MonoGame.Framework.dll MonoGame.Framework.dll.config SkiaSharp.dll StardewValley.GameData.dll xTile.dll xTilePipeline.dll' # Launchers APP_MAIN_ICON='../support/icon.png' ## MonoGame builds APP_MAIN_EXE_MONOGAME='Stardew Valley' ## If run from a symlinks prefix, the game process escapes it and actually runs from the system path. APP_MAIN_PREFIX_TYPE_MONOGAME='none' ## XNA builds APP_MAIN_EXE_XNA='StardewValley.exe' # Packages ## MonoGame builds PACKAGES_LIST_MONOGAME=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_MONOGAME='64' PKG_BIN_DEPENDENCIES_LIBRARIES_MONOGAME=' libc.so.6 libdl.so.2 libfontconfig.so.1 libgcc_s.so.1 liblttng-ust.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' ## Old MonoGame builds have some extra dependencies. PKG_BIN_DEPENDENCIES_LIBRARIES_MONOGAME_0="${PKG_BIN_DEPENDENCIES_LIBRARIES_MONOGAME:-} libgssapi_krb5.so.2 libssl.so.1.1" PKG_DATA_ID_MONOGAME="${GAME_ID}-data" PKG_DATA_DESCRIPTION_MONOGAME='data' PKG_BIN_DEPS_MONOGAME="${PKG_BIN_DEPS_MONOGAME:-} $PKG_DATA_ID_MONOGAME" ## XNA builds PKG_MAIN_DEPENDENCIES_LIBRARIES_XNA=' libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_XNA=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll WindowsBase.dll' # XNA builds - The game manager is provided as an ELF binary CONTENT_GAME_BIN64_FILES_XNA=' mcs.bin.x86_64' CONTENT_GAME_BIN32_FILES_XNA=' mcs.bin.x86' PACKAGES_LIST_XNA=' PKG_MAIN PKG_BIN64 PKG_BIN32' PKG_BIN_ID_XNA="${GAME_ID}-bin" PKG_BIN64_ID_XNA="$PKG_BIN_ID_XNA" PKG_BIN32_ID_XNA="$PKG_BIN_ID_XNA" PKG_BIN64_ARCH_XNA='64' PKG_BIN32_ARCH_XNA='32' PKG_BIN_DESCRIPTION_XNA='game manager binary' PKG_BIN64_DESCRIPTION_XNA="$PKG_BIN_DESCRIPTION_XNA" PKG_BIN32_DESCRIPTION_XNA="$PKG_BIN_DESCRIPTION_XNA" PKG_BIN_DEPENDENCIES_LIBRARIES_XNA=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES_XNA="$PKG_BIN_DEPENDENCIES_LIBRARIES_XNA" PKG_BIN32_DEPENDENCIES_LIBRARIES_XNA="$PKG_BIN_DEPENDENCIES_LIBRARIES_XNA" PKG_MAIN_DEPS_XNA="${PKG_MAIN_DEPS_XNA:-} $PKG_BIN_ID_XNA" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # MonoGame builds - The game fails to load some libraries if they are not found in the game path. case "$(current_archive)" in ('ARCHIVE_BASE_MONOGAME_'*) mkdir --parents "$(package_path 'PKG_BIN')$(path_game_data)" for library_file in \ 'libclrjit.so' \ 'libcoreclr.so' \ 'libcoreclrtraceptprovider.so' \ 'libdbgshim.so' \ 'libhostfxr.so' \ 'libhostpolicy.so' \ 'libmscordaccore.so' \ 'libmscordbi.so' \ 'libSkiaSharp.so' \ 'libSystem.IO.Compression.Native.a' \ 'libSystem.IO.Compression.Native.so' \ 'libSystem.Native.a' \ 'libSystem.Native.so' \ 'libSystem.Net.Security.Native.a' \ 'libSystem.Net.Security.Native.so' \ 'libSystem.Security.Cryptography.Native.OpenSsl.a' \ 'libSystem.Security.Cryptography.Native.OpenSsl.so' \ 'libGalaxy64.so' \ 'libGalaxyCSharpGlue.so' \ 'libSDL2-2.0.so.0' \ 'libFAudio.so.0' do ln --symbolic \ "$(path_libraries)/${library_file}" \ "$(package_path 'PKG_BIN')$(path_game_data)/${library_file}" done ;; esac # XNA builds - The game fails to load OpenAL and SDL2 libraries if they are not inside some hardcoded path. case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) case "$(option_value 'package')" in ('arch') library_source_directory_32bit='/usr/lib32' library_source_directory_64bit='/usr/lib' ;; ('deb') library_source_directory_32bit='/usr/lib/i386-linux-gnu' library_source_directory_64bit='/usr/lib/x86_64-linux-gnu' ;; ('gentoo'|'egentoo') library_source_directory_32bit='/usr/lib' library_source_directory_64bit='/usr/lib64' ;; esac for library_file in \ 'libopenal.so.1' \ 'libSDL2-2.0.so.0' do library_source_32bit="${library_source_directory_32bit}/${library_file}" library_source_64bit="${library_source_directory_64bit}/${library_file}" library_destination_32bit="$(package_path 'PKG_BIN32')$(path_game_data)/lib/${library_file}" library_destination_64bit="$(package_path 'PKG_BIN64')$(path_game_data)/lib64/${library_file}" mkdir --parents \ "$(dirname "$library_destination_32bit")" \ "$(dirname "$library_destination_64bit")" ln --symbolic "$library_source_32bit" "$library_destination_32bit" ln --symbolic "$library_source_64bit" "$library_destination_64bit" done ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## XNA builds - Ensure game manager binaries are executable. case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) chmod 755 'mcs.bin.x86' 'mcs.bin.x86_64' ;; esac ) # Include game icons case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) content_inclusion_icons ;; ('ARCHIVE_BASE_MONOGAME_'*) content_inclusion_icons 'PKG_DATA' ;; esac # Include game data content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) launchers_generation ;; ('ARCHIVE_BASE_MONOGAME_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sudden-strike-4-expansions.sh0000755000000000000000000000645114471751340017275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sudden Strike 4 expansions: # - Battle of Kursk # - Road to Dunkirk # - The Pacific War # - Finland: Winter Storm # - Africa: Desert War # send your bug reports to bugs@dotslashplay.it ### script_version=20240331.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='sudden-strike-4' GAME_NAME='Sudden Strike 4' EXPANSION_ID_KURSK='battle-of-kursk' EXPANSION_NAME_KURSK='Battle of Kursk' EXPANSION_ID_DUNKIRK='road-to-dunkirk' EXPANSION_NAME_DUNKIRK='Road to Dunkirk' EXPANSION_ID_PACIFIC='the-pacific-war' EXPANSION_NAME_PACIFIC='The Pacific War' EXPANSION_ID_FINLAND='finland-winter-storm' EXPANSION_NAME_FINLAND='Finland: Winter Storm' EXPANSION_ID_AFRICA='africa-desert-war' EXPANSION_NAME_AFRICA='Africa: Desert War' # Archives ## Battle of Kursk ARCHIVE_BASE_KURSK_0_NAME='sudden_strike_4_battle_of_kursk_1_15_hotfix_28522.sh' ARCHIVE_BASE_KURSK_0_MD5='adaf1b27f954cc90c32c951334c45916' ARCHIVE_BASE_KURSK_0_SIZE='56000' ARCHIVE_BASE_KURSK_0_VERSION='1.15-gog28522' ## Road to Dunkirk ARCHIVE_BASE_DUNKIRK_0_NAME='sudden_strike_4_road_to_dunkirk_1_15_hotfix_28522.sh' ARCHIVE_BASE_DUNKIRK_0_MD5='cd07c173ad84e83db50dd3fce310d5a5' ARCHIVE_BASE_DUNKIRK_0_SIZE='160000' ARCHIVE_BASE_DUNKIRK_0_VERSION='1.15-gog28522' ARCHIVE_BASE_DUNKIRK_0_URL='https://www.gog.com/game/sudden_strike_4_road_to_dunkirk' ## The Pacific War ARCHIVE_BASE_PACIFIC_0_NAME='sudden_strike_4_the_pacific_war_1_15_hotfix_28522.sh' ARCHIVE_BASE_PACIFIC_0_MD5='9a5a4c8ca66814bfee11203dd877193c' ARCHIVE_BASE_PACIFIC_0_SIZE='560000' ARCHIVE_BASE_PACIFIC_0_VERSION='1.15-gog28522' ARCHIVE_BASE_PACIFIC_0_URL='https://www.gog.com/game/sudden_strike_4_the_pacific_war' ## Finland: Winter Storm ARCHIVE_BASE_FINLAND_0_NAME='sudden_strike_4_finland_winter_storm_1_15_hotfix_28522.sh' ARCHIVE_BASE_FINLAND_0_MD5='d51ded65499136f36e613ca35cb583d8' ARCHIVE_BASE_FINLAND_0_SIZE='330000' ARCHIVE_BASE_FINLAND_0_VERSION='1.15-gog28522' ARCHIVE_BASE_FINLAND_0_URL='https://www.gog.com/game/sudden_strike_4_the_pacific_war' ## Africa: Desert War ARCHIVE_BASE_AFRICA_0_NAME='sudden_strike_4_africa_desert_war_1_15_hotfix_28522.sh' ARCHIVE_BASE_AFRICA_0_MD5='9fd0469913dda4a63c6dd7d87736c936' ARCHIVE_BASE_AFRICA_0_SIZE='370000' ARCHIVE_BASE_AFRICA_0_VERSION='1.15-gog28522' ARCHIVE_BASE_AFRICA_0_URL='https://www.gog.com/game/sudden_strike_4_africa_desert_war' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' AssetBundles' PKG_MAIN_DEPS="$GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sudden-strike-4.sh0000755000000000000000000000400714471751340015103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sudden Strike 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20251020.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='sudden-strike-4' GAME_NAME='Sudden Strike 4' ARCHIVE_BASE_0_NAME='sudden_strike_4_1_15_hotfix_28522.sh' ARCHIVE_BASE_0_MD5='4f639590f5e9af1f8076adf6f7dd5b53' ARCHIVE_BASE_0_SIZE='7100000' ARCHIVE_BASE_0_VERSION='1.15-gog28522' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sudden_strike_4' UNITY3D_NAME='SuddenStrike4' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' AssetBundles' CONTENT_DOC_DATA_FILES=' readme.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-surviving-mars-expansions.sh0000755000000000000000000001300314471751340017336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Janeene Beeforth # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Surviving Mars expansions: # - Digital Deluxe Edition Upgrade Pack # - Stellaris Dome Set # - Mysteries Resupply Pack # send your bug reports to bugs@dotslashplay.it ### script_version=20250223.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='surviving-mars' GAME_NAME='Surviving Mars' EXPANSION_ID_DELUXE='digital-deluxe' EXPANSION_NAME_DELUXE='Digital Deluxe' EXPANSION_ID_STELLARIS='stellaris-dome-set' EXPANSION_NAME_STELLARIS='Stellaris Dome Set' EXPANSION_ID_MYSTERIES='mysteries-resupply-pack' EXPANSION_NAME_MYSTERIES='Mysteries Resupply Pack' # Archives ## Digital Deluxe Edition Upgrade Pack ARCHIVE_BASE_DELUXE_5_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_cernan_update_29871.sh' ARCHIVE_BASE_DELUXE_5_MD5='d4446a7a747ab2e087b48b241aedc9eb' ARCHIVE_BASE_DELUXE_5_SIZE='70000' ARCHIVE_BASE_DELUXE_5_VERSION='1.0-gog29871' ARCHIVE_BASE_DELUXE_5_URL='https://www.gog.com/game/surviving_mars_digital_deluxe_edition_upgrade_pack' ARCHIVE_BASE_DELUXE_4_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_sagan_rc3_update_24111.sh' ARCHIVE_BASE_DELUXE_4_MD5='60cddca455eb1882e0ca7ebf4e26838a' ARCHIVE_BASE_DELUXE_4_SIZE='66000' ARCHIVE_BASE_DELUXE_4_VERSION='1.0-gog24111' ARCHIVE_BASE_DELUXE_3_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_sagan_rc1_update_23676.sh' ARCHIVE_BASE_DELUXE_3_MD5='7ba5d3ab5626f1a18015b9516adf29af' ARCHIVE_BASE_DELUXE_3_SIZE='66000' ARCHIVE_BASE_DELUXE_3_VERSION='1.0-gog23676' ARCHIVE_BASE_DELUXE_2_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_en_davinci_rc1_22763.sh' ARCHIVE_BASE_DELUXE_2_MD5='195f0d1a28047112ced2d9cc31df5e52' ARCHIVE_BASE_DELUXE_2_SIZE='67000' ARCHIVE_BASE_DELUXE_2_VERSION='1.0-gog22763' ARCHIVE_BASE_DELUXE_1_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_DELUXE_1_MD5='cef24bda9587c1923139ea0c86df317a' ARCHIVE_BASE_DELUXE_1_SIZE='66000' ARCHIVE_BASE_DELUXE_1_VERSION='1.0-gog21661' ARCHIVE_BASE_DELUXE_0_NAME='surviving_mars_digital_deluxe_edition_upgrade_pack_en_180423_opportunity_rc1_20289.sh' ARCHIVE_BASE_DELUXE_0_MD5='a574de12f4b7f3aa1f285167109bb6a3' ARCHIVE_BASE_DELUXE_0_SIZE='66000' ARCHIVE_BASE_DELUXE_0_VERSION='1.0-gog20289' ## Stellaris Dome Set ARCHIVE_BASE_STELLARIS_2_NAME='surviving_mars_stellaris_dome_set_sagan_rc3_update_24111.sh' ARCHIVE_BASE_STELLARIS_2_MD5='7759d7fa7f9d99a693a828a6c5db601f' ARCHIVE_BASE_STELLARIS_2_SIZE='4000' ARCHIVE_BASE_STELLARIS_2_VERSION='1.0-gog24111' ARCHIVE_BASE_STELLARIS_2_URL='https://www.gog.com/game/surviving_mars_stellaris_dome_set' ARCHIVE_BASE_STELLARIS_1_NAME='surviving_mars_stellaris_dome_set_sagan_rc1_update_23676.sh' ARCHIVE_BASE_STELLARIS_1_MD5='2b0f7100813779cdd847be15b6599fea' ARCHIVE_BASE_STELLARIS_1_SIZE='4000' ARCHIVE_BASE_STELLARIS_1_VERSION='1.0-gog23676' ARCHIVE_BASE_STELLARIS_0_NAME='surviving_mars_stellaris_dome_set_pre_order_dlc_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_STELLARIS_0_MD5='01ffc529b9a0cc72e5d94830385bf7b9' ARCHIVE_BASE_STELLARIS_0_SIZE='4000' ARCHIVE_BASE_STELLARIS_0_VERSION='1.0-gog21661' ## Mysteries Resupply Pack ARCHIVE_BASE_MYSTERIES_4_NAME='surviving_mars_mysteries_resupply_pack_sagan_rc3_update_24111.sh' ARCHIVE_BASE_MYSTERIES_4_MD5='042fc7152f3ad72e0c121dfb96f617d8' ARCHIVE_BASE_MYSTERIES_4_SIZE='3100' ARCHIVE_BASE_MYSTERIES_4_VERSION='1.0-gog24111' ARCHIVE_BASE_MYSTERIES_4_URL='https://www.gog.com/game/surviving_mars_mysteries_resupply_pack' ARCHIVE_BASE_MYSTERIES_3_NAME='surviving_mars_mysteries_resupply_pack_sagan_rc1_update_23676.sh' ARCHIVE_BASE_MYSTERIES_3_MD5='e7e96c1384fd795f4a9b69db579524e6' ARCHIVE_BASE_MYSTERIES_3_SIZE='3100' ARCHIVE_BASE_MYSTERIES_3_VERSION='1.0-gog23676' ARCHIVE_BASE_MYSTERIES_2_NAME='surviving_mars_mysteries_resupply_pack_en_davinci_rc1_22763.sh' ARCHIVE_BASE_MYSTERIES_2_MD5='6e83b67c5d368c25092ecb4fd700b5ae' ARCHIVE_BASE_MYSTERIES_2_SIZE='3100' ARCHIVE_BASE_MYSTERIES_2_VERSION='1.0-gog22763' ARCHIVE_BASE_MYSTERIES_1_NAME='surviving_mars_mysteries_resupply_pack_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_MYSTERIES_1_MD5='fd7ef79614de264ac4eb2a1e431d64bf' ARCHIVE_BASE_MYSTERIES_1_SIZE='2900' ARCHIVE_BASE_MYSTERIES_1_VERSION='1.0-gog21661' ARCHIVE_BASE_MYSTERIES_0_NAME='surviving_mars_mysteries_resupply_pack_en_curiosity_2_21442.sh' ARCHIVE_BASE_MYSTERIES_0_MD5='9ca47c2cdb5a41cf8b221dca99783916' ARCHIVE_BASE_MYSTERIES_0_SIZE='2900' ARCHIVE_BASE_MYSTERIES_0_VERSION='1.0-gog21442' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' DLC' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-surviving-mars.sh0000755000000000000000000000620514471751340015157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Janeene Beeforth # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Surviving Mars # send your bug reports to bugs@dotslashplay.it ### script_version=20250223.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='surviving-mars' GAME_NAME='Surviving Mars' ARCHIVE_BASE_5_NAME='surviving_mars_cernan_update_29871.sh' ARCHIVE_BASE_5_MD5='0c204fb895101f8b3f844a1fa06e2feb' ARCHIVE_BASE_5_SIZE='6200000' ARCHIVE_BASE_5_VERSION='1.0-gog29871' ARCHIVE_BASE_5_URL='https://www.gog.com/game/surviving_mars' ARCHIVE_BASE_4_NAME='surviving_mars_sagan_rc3_update_24111.sh' ARCHIVE_BASE_4_MD5='22e5cbc7188ff1cb8fd5dabf7cdca0bf' ARCHIVE_BASE_4_SIZE='4700000' ARCHIVE_BASE_4_VERSION='1.0-gog24111' ARCHIVE_BASE_3_NAME='surviving_mars_sagan_rc1_update_23676.sh' ARCHIVE_BASE_3_MD5='2e5058a9f1076f894c0b074fd24e3597' ARCHIVE_BASE_3_SIZE='4700000' ARCHIVE_BASE_3_VERSION='1.0-gog23676' ARCHIVE_BASE_2_NAME='surviving_mars_en_davinci_rc1_22763.sh' ARCHIVE_BASE_2_MD5='aa513fee4b4c10318831712d4663bfc0' ARCHIVE_BASE_2_SIZE='4400000' ARCHIVE_BASE_2_VERSION='1.0-gog22763' ARCHIVE_BASE_1_NAME='surviving_mars_en_180619_curiosity_hotfix_3_21661.sh' ARCHIVE_BASE_1_MD5='241f1cb8305becab5d55c8d104bd2c18' ARCHIVE_BASE_1_SIZE='4100000' ARCHIVE_BASE_1_VERSION='1.0-gog21661' ARCHIVE_BASE_0_NAME='surviving_mars_en_curiosity_update_21183.sh' ARCHIVE_BASE_0_MD5='ab9a61d04a128f19bc9e003214fe39a9' ARCHIVE_BASE_0_SIZE='4000000' ARCHIVE_BASE_0_VERSION='1.0-gog21183' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libpops_api.so' CONTENT_GAME_BIN_FILES=' MarsGOG' CONTENT_GAME_DATA_FILES=' DLC Licenses Local ModTools Movies Packs ShaderPreprocessorTemp' APP_MAIN_EXE='MarsGOG' APP_MAIN_ICON='../support/icon.png' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libresolv.so.2 libSDL2-2.0.so.0 libssl.so.1.0.0 libstdc++.so.6 libuuid.so.1 libX11.so.6 libXext.so.6 libXrandr.so.2 libXrender.so.1 libXt.so.6 libz.so.1' PACKAGES_LIST=' PKG_BIN PKG_DATA' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-symmetry.sh0000755000000000000000000000541514471751340014056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 bbob # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Symmetry # send your bug reports to bugs@dotslashplay.it ### script_version=20250512.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='symmetry' GAME_NAME='Symmetry' ARCHIVE_BASE_0_NAME='setup_symmetry_1.0.2.win_(21945).exe' ARCHIVE_BASE_0_MD5='2a0d1919d41b48b8dc5af3071ad7babc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0.2-gog21945' ARCHIVE_BASE_0_URL='https://www.gog.com/game/symmetry' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' cchromaeditorlibrary.dll d3dx9_43.dll symmetry.exe options.ini' CONTENT_GAME_DATA_FILES=' fonts texts *.chroma *.ogg *.png' USER_PERSISTENT_FILES=' *.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Symmetry' ## TODO: Check if this winetricks verb is still required with current WINE builds. WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='symmetry.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # An inner archive uses the cabinet archive format REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} cabextract" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_CAB_PATH="${PLAYIT_WORKDIR}/gamedata/symmetry.cab" ARCHIVE_INNER_CAB_TYPE='cabinet' mv "${PLAYIT_WORKDIR}/gamedata/symmetry.exe" "$ARCHIVE_INNER_CAB_PATH" archive_extraction 'ARCHIVE_INNER_CAB' rm "$ARCHIVE_INNER_CAB_PATH" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fix file paths find . -type f | while read -r file_source; do file_destination=$(printf '%s' "$file_source" | sed 's#@#/#g') if [ "$file_destination" != "$file_source" ]; then mkdir --parents "$(dirname "$file_destination")" mv "$file_source" "$file_destination" fi done ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-terra-nil.sh0000755000000000000000000000565314471751340014066 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Terra Nil # send your bug reports to bugs@dotslashplay.it ### script_version=20241224.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='terra-nil' GAME_NAME='Terra Nil' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME Prototype" ARCHIVE_BASE_2_NAME='terra_nil_v1_1_10_76773.sh' ARCHIVE_BASE_2_MD5='4a6b16920e761984407092f10dce0885' ARCHIVE_BASE_2_SIZE='1642434' ARCHIVE_BASE_2_VERSION='1.1.10-gog76773' ARCHIVE_BASE_2_URL='https://www.gog.com/game/terra_nil' ARCHIVE_BASE_1_NAME='terra_nil_1_1_9_linux_76072.sh' ARCHIVE_BASE_1_MD5='3b077213a089c1d631899d684cd57eb7' ARCHIVE_BASE_1_SIZE='2213191' ARCHIVE_BASE_1_VERSION='1.1.9-gog76072' ARCHIVE_BASE_0_NAME='terra_nil_1_04_linux_68121.sh' ARCHIVE_BASE_0_MD5='d71c5f1da5d78d3a61c048240c2ecdb5' ARCHIVE_BASE_0_SIZE='2092001' ARCHIVE_BASE_0_VERSION='1.04-gog68121' ARCHIVE_BASE_DEMO_0_NAME='Terra Nil 0.41 Linux.zip' ARCHIVE_BASE_DEMO_0_MD5='0179d82ebf76eed15c519d419ecdcab1' ARCHIVE_BASE_DEMO_0_SIZE='167423' ARCHIVE_BASE_DEMO_0_VERSION='0.41-itch.2020.09.03' ARCHIVE_BASE_DEMO_0_URL='https://vfqd.itch.io/terra-nil' UNITY3D_NAME='Terra Nil' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Full game only - Drop duplicated files case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ;; (*) find . -name 'PaxHeader' -exec rm --recursive {} + ;; esac # Full game only - Do not include the shipped Steam libraries case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-fertile-crescent.sh0000755000000000000000000000511514471751340016176 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Fertile Crescent # send your bug reports to bugs@dotslashplay.it ### script_version=20241120.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-fertile-crescent' GAME_NAME='The Fertile Crescent' ARCHIVE_BASE_3_NAME='tfc_the_fertile_crescent_1_1001_77568.sh' ARCHIVE_BASE_3_MD5='f6a3809b43dd63f226fe47c756e915f5' ARCHIVE_BASE_3_SIZE='524869' ARCHIVE_BASE_3_VERSION='1.1001-gog77568' ARCHIVE_BASE_3_URL='https://www.gog.com/game/tfc_the_fertile_crescent' ARCHIVE_BASE_2_NAME='tfc_the_fertile_crescent_1_1000_75581.sh' ARCHIVE_BASE_2_MD5='2410c776006d758dfcdfb0d961bb906f' ARCHIVE_BASE_2_SIZE='524869' ARCHIVE_BASE_2_VERSION='1.1000-gog75581' ARCHIVE_BASE_1_NAME='tfc_the_fertile_crescent_1_0014_74208.sh' ARCHIVE_BASE_1_MD5='9255deccb43f9eda5062614d0d6cf9d7' ARCHIVE_BASE_1_SIZE='524857' ARCHIVE_BASE_1_VERSION='1.0014-gog74208' ARCHIVE_BASE_0_NAME='tfc_the_fertile_crescent_1_0010b_74071.sh' ARCHIVE_BASE_0_MD5='619d9bbccea8d3b05037dacde8684533' ARCHIVE_BASE_0_SIZE='525376' ARCHIVE_BASE_0_VERSION='1.0010b-gog74071' UNITY3D_NAME='game' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudio.so libresonanceaudio.so' ## The game crashes on launch if the Steam library is missing. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-guild-2-renaissance.sh0000755000000000000000000000541414471751340016476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Guild 2 Renaissance # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-guild-2-renaissance' GAME_NAME='The Guild 2 Renaissance' ARCHIVE_BASE_0_NAME='setup_the_guild2_renaissance_2.2.0.5.exe' ARCHIVE_BASE_0_MD5='86389c3154c2ea6ef3b072278f1e9c6c' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_the_guild2_renaissance_2.2.0.5-1.bin' ARCHIVE_BASE_0_PART1_MD5='ae4c17c8e3793befeec8b9a16e4f2b0c' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='3800000' ARCHIVE_BASE_0_VERSION='4.21-gog2.2.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_guild_2_renaissance' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' dbghelp.dll fmod.dll guildii.exe mfc71.dll modlauncher.exe msvcp71.dll msvcr71.dll stlport.5.0.dll stlportd.5.0.dll wmencoderen.exe' CONTENT_GAME_DATA_FILES=' camerapaths db gui mods movie msx objects particles resource savegames scenes scripts sfx shader shots textures worlds sim_commands.dat *.raw *.url' CONTENT_GAME0_DATA_PATH='support/app' CONTENT_GAME0_DATA_FILES=' config.ini input.ini' CONTENT_DOC_DATA_FILES=' manual.pdf *.txt' USER_PERSISTENT_FILES=' *.ini' ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. APP_MAIN_EXE='guildii.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-guild-2.sh0000755000000000000000000000462514471751340014210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Guild 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250512.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-guild-2' GAME_NAME='The Guild 2' ARCHIVE_BASE_0_NAME='setup_the_guild2_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='2b14191f4831b3486e95d52245d6cc64' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.4-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_guild_2' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.ini' CONTENT_GAME_DATA_FILES=' *.dat camerapaths db editor gui movie msx objects particles resource savegames scenes scripts sfx shader shots textures worlds' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.ini' ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. APP_MAIN_EXE='guildii.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Disable intro movie. ## TODO: Check why it is required. ini_file='config.ini' ini_field='SplashScreen' ini_value='0' sed_expression="s/^${ini_field}=.*$/${ini_field}=${ini_value}/" sed --in-place --expression="$sed_expression" "$ini_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-hive.sh0000755000000000000000000000441514471751340013675 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Hive # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-hive' GAME_NAME='The Hive' ARCHIVE_BASE_0_NAME='TheHive_linux.zip' ARCHIVE_BASE_0_MD5='0ce86308c8632a0e29b6cefefe89b7ae' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.04-humble.2016.10.10' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-hive' UNITY3D_NAME='hive' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game crashes on launch if libCSteamworks.so is not available, ## libsteam_api.so is included too because libCSteamworks.so is linked against it. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Hive_linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-settlers-3.sh0000755000000000000000000001527614471751340014756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Settlers 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250408.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-settlers-3' GAME_NAME='The Settlers Ⅲ' ARCHIVE_BASE_EN_0_NAME='setup_the_settlers_3_-_ultimate_collection_1.60_v2_(30349).exe' ARCHIVE_BASE_EN_0_MD5='169a48088443cf5ccf92dcca1b747316' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1400000' ARCHIVE_BASE_EN_0_VERSION='1.60-gog30349' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/the_settlers_3_ultimate_collection' ARCHIVE_BASE_DE_0_NAME='setup_the_settlers_3_-_ultimate_collection_1.60_v2_(german)_(30349).exe' ARCHIVE_BASE_DE_0_MD5='b667efd448e4ef471dd53a38342abc67' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_SIZE='1400000' ARCHIVE_BASE_DE_0_VERSION='1.60-gog30349' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/the_settlers_3_ultimate_collection' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' _inmm.dll bglwinr.dll ir50_32.dll ir50_qc.dll ir50_qcx.dll libogg-0.dll libvorbis-0.dll libvorbisfile-3.dll msvcirt.dll msvcrt.dll newtoolr.dll patchw32.dll fileconvert.exe s3.exe s3_multi.exe setups3.exe' CONTENT_GAME_L10N_FILES=' manual s3editor solution tips s3/add s3/mis_v s3qota/add s3qota/mis_v snd/siedler3_01.dat data.dat s3cd1.dat' CONTENT_GAME_DATA_FILES=' gfx map music s3mcd s3/mis_m s3qota/mis_m snd/siedler3_00.dat gsdd_lnk.gif s3cd2.dat' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' s3.dat s3gold1.dat s3gold2.dat s3mcd1.dat s3qota1.dat solution/_vti_pvt/service.lck solution/_vti_pvt/structure.cnf' CONTENT_DOC_DATA_FILES=' the settlers iii - manual.pdf readme.txt' USER_PERSISTENT_DIRECTORIES=' save' ## Set required registry keys. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\BlueByte\S3Editor] "Browser"="" "Editor"=dword:00000001 "EditorPath"="C:\\'"${GAME_ID}"'\\S3Editor" "GameExe"="\\S3.exe" "Help"="C:\\'"${GAME_ID}"'\\S3Editor\\Help\\English\\Index.htm" "Language"=dword:00000009 "SourceMapDir"="C:\\'"${GAME_ID}"'\\S3Editor\\Source\\" "UserMapDir"="\\Map\\User\\" [HKEY_LOCAL_MACHINE\Software\BlueByte\S3PLUSCD] "EditorPathPlus"="\\S3Editor" "EditorPlus"=dword:00000001 "GameExePlus"="\\S3.EXE" "HelpPlus"="\\S3Editor\\Help\\English\\Index.htm" "LanguagePlus"=dword:00000009 "SourceMapDirPlus"="\\S3Editor\\Source\\" "UserMapDirPlus"="\\Map\\User\\" [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\General] "BannerId"=dword:00000000 "BannerSubId"=dword:00000000 "BuildHelp"=dword:00000001 "Campaigns"=hex:20,72,d5,87,23,9c,bf,aa,b1,14,78,5c,d2,f9,5b,63,13,57,37,5b,7a,\ 65,7b,3d,7b,3b,48,62,fa,a0,77,6c,56,7a,43,1a,81,91,32,a4,df,fb,53,70,e2,48,\ 2b,ed,1b,87,31,b1,d1,00 "CampaignsPlus"=hex:c2,43,d4,d6,2c,17,a2,80,e4,d1,56,8b,a1,94,17,72,d9,5b,9d,\ 40,04,23,cd,69,74,1a,0b,cc,f4,c5,c6,c6,b8,e1,60,d8,b5,ee,16,73,0c,63,59,75,\ b3,b7,e5,2c,d2,db,bd,b7,20,00 "CDAudio"=dword:00000002 "ClanFlag"=dword:00000000 "FirstLogon"=dword:00000001 "FogSpeed"=dword:00000001 "Font"="MS Sans Serif" "FontSize"=dword:0000000f "GameZoneSelection"=dword:000001ff "GDIMouse"=dword:00000001 "Gold"=dword:00000001 "Intro"=dword:00000001 "Language"=dword:00000009 "MessageLevel"=dword:00000009 "Mission"=dword:00000001 "Newbie"=dword:00000000 "NoAlpha"=dword:00000000 "Playername"="Player" "Plus"=dword:00000001 "Resolution"=dword:00000000 "ScrollMode"=dword:00000000 "ScrollSpeed"=dword:00000005 "SoundFormat"=dword:00000001 "Tips&Tricks"=dword:00000001 "VideoFormat"=dword:00000001 "WaitVBlank"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\Patches] "convert"="0"' ## Set serial number. WINE_REGISTRY_INIT="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\General] "SingleNumber"="%SingleNumber%"' ## "icodecs" winetricks verb is required for correct intro movie playback. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} icodecs" ## Disable csmt, as it would cause performance issues with single CPU affinity. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} csmt=off" APP_MAIN_EXE='s3.exe' APP_MAIN_ICON='s3gold.ico' # Set serial number. APP_MAIN_PRERUN=' # Set serial number ## For some reason the game erases it on first launch, ## so we reset it prior to each launch. $(regedit_command) registry-scripts/init.reg' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_DE='German localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include required extra DLL library mv '__support/add/winmmxp.dll' '_inmm.dll' ) # Get serial number. game_serial=$( grep 'SingleNumber' "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/regs.cmd" | cut --delimiter='"' --fields=4 ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Set the CPU affinity to a single core, to avoid performance issues. ## cf. https://bugs.winehq.org/show_bug.cgi?id=32478 game_exec_line() { cat <<- 'EOF' # Set the CPU affinity to a single core, to avoid performance issues. # cf. https://bugs.winehq.org/show_bug.cgi?id=32478 taskset --cpu-list 0 "$(wine_command)" s3.exe "$@" EOF } launchers_generation 'PKG_BIN' ## Set serial number. real_registry_script="$(package_path 'PKG_BIN')$(path_game_data)/registry-scripts/init.reg" temp_registry_script="${PLAYIT_WORKDIR}/init.reg" iconv --from-code=UTF-16 --to-code=UTF-8 --output="$temp_registry_script" "$real_registry_script" sed --in-place "s/%SingleNumber%/${game_serial}/" "$temp_registry_script" iconv --from-code=UTF-8 --to-code=UTF-16 --output="$real_registry_script" "$temp_registry_script" rm "$temp_registry_script" # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-westport-independent.sh0000755000000000000000000000565514471751340017133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Westport Independent # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-westport-independent' GAME_NAME='The Westport Independent' ## This game used to be sold by gog.com, but is no longer available for sale there. ARCHIVE_BASE_0_NAME='gog_the_westport_independent_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='7032059f085e94f52444e9bf4ed0195c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-gog2.0.0.1' ARCHIVE_OPTIONAL_ICONS_NAME='the-westport-independent_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='054b51fe4c02f256b8130b40e93d28ae' ARCHIVE_OPTIONAL_ICONS_URL='http://downloads.dotslashplay.it/games/the-westport-independent/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 256x256' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_RELATIVE_PATH='linux64' CONTENT_GAME_BIN64_FILES=' the_westport_independent' CONTENT_GAME_BIN32_RELATIVE_PATH='linux32' CONTENT_GAME_BIN32_FILES=' the_westport_independent' CONTENT_GAME_DATA_RELATIVE_PATH='linux64' CONTENT_GAME_DATA_FILES=' config.json assets' CONTENT_DOC_DATA_RELATIVE_PATH='linux64' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_FILES=' config.json' APP_MAIN_EXE='the_westport_independent' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES libSDL2-2.0.so.0" launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-thea-2.sh0000755000000000000000000000461414471751340013245 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Thea 2: The Shattering # send your bug reports to bugs@dotslashplay.it ### script_version=20250223.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='thea-2' GAME_NAME='Thea 2: The Shattering' ARCHIVE_BASE_1_NAME='setup_thea_2_the_shattering_2.0601.0679_(64bit)_(64998).exe' ARCHIVE_BASE_1_MD5='c97170923a801aa0fc3579d5802c755f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_thea_2_the_shattering_2.0601.0679_(64bit)_(64998)-1.bin' ARCHIVE_BASE_1_PART1_MD5='d9d75f3cc2809688bdad4b50bfc07941' ARCHIVE_BASE_1_SIZE='6366481' ARCHIVE_BASE_1_VERSION='2.0601.0679-gog64998' ARCHIVE_BASE_1_URL='https://www.gog.com/game/thea_2_the_shattering' ARCHIVE_BASE_0_NAME='setup_thea_2_the_shattering_2.0603.0666c_(64bit)_(38776).exe' ARCHIVE_BASE_0_MD5='bbcbc5777263f2511d53374bb5799986' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_thea_2_the_shattering_2.0603.0666c_(64bit)_(38776)-1.bin' ARCHIVE_BASE_0_PART1_MD5='028c57b5a383336387c1de382416d24d' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='2.0603.0666-gog38776' UNITY3D_NAME='thea2' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_data/Profiles ${UNITY3D_NAME}_data/streamingassets/DataHistory" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-theme-hospital.sh0000755000000000000000000000700214471751340015102 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Theme Hospital # send your bug reports to bugs@dotslashplay.it ### script_version=20250223.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='theme-hospital' GAME_NAME='Theme Hospital' ARCHIVE_BASE_2_NAME='setup_theme_hospital_v3_(28027).exe' ARCHIVE_BASE_2_MD5='cb1a467f48532d3607fa5b9dd571a342' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='198293' ARCHIVE_BASE_2_VERSION='1.0-gog28027' ARCHIVE_BASE_2_URL='https://www.gog.com/game/theme_hospital' ARCHIVE_BASE_1_NAME='setup_theme_hospital_v3_(28027).exe' ARCHIVE_BASE_1_MD5='e4cba7cfddd5dd2d4baf4761bc86a8c8' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='200000' ARCHIVE_BASE_1_VERSION='1.0-gog28027' ARCHIVE_BASE_0_NAME='setup_theme_hospital_2.1.0.8.exe' ARCHIVE_BASE_0_MD5='c1dc6cd19a3e22f7f7b31a72957babf7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_DOSBOX_FILES=' connect.bat dos4gw.exe hospital.exe hospital.cfg modem.ini' CONTENT_GAME_DATA_FILES=' anims cfg data datam intro levels qdata qdatam save sound' CONTENT_DOC_DATA_FILES=' manual.pdf netplay.txt readme.txt' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.cfg *.ini' APP_MAIN_EXE='hospital.exe' APP_MAIN_TYPE_CORSIXTH='custom' APP_MAIN_ICON='app/goggame-1207659026.ico' APP_MAIN_ICON_0='goggame-1207659026.ico' PACKAGES_LIST=' PKG_DOSBOX PKG_CORSIXTH PKG_DATA' PKG_ENGINE_ID="$GAME_ID" PKG_DOSBOX_ID="${PKG_ENGINE_ID}-dosbox" PKG_DOSBOX_PROVIDES=" $PKG_ENGINE_ID" PKG_DOSBOX_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_CORSIXTH_ID="${PKG_ENGINE_ID}-corsixth" PKG_CORSIXTH_PROVIDES=" $PKG_ENGINE_ID" PKG_CORSIXTH_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_CORSIXTH_DEPENDENCIES_COMMANDS=' corsix-th' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## DOSBox launchers_generation 'PKG_DOSBOX' ## CorsixTH custom_launcher() { launcher_headers cat <<- 'OUTEREOF' # Set the path to game data on first launch config_path="${XDG_CONFIG_HOME:-"${HOME}/.config"}/CorsixTH/config.txt" if [ ! -e "$config_path" ]; then mkdir --parents "$(dirname "$config_path")" cat > "$config_path" <<- EOF OUTEREOF cat <<- OUTEREOF theme_hospital_install = [[$(path_game_data)]] OUTEREOF cat <<- 'OUTEREOF' EOF fi corsix-th "$@" OUTEREOF launcher_exit } launchers_generation 'PKG_CORSIXTH' # Build packages packages_generation printf '\n' printf 'CorsixTH:' print_instructions 'PKG_DATA' 'PKG_CORSIXTH' printf 'DOSBox:' print_instructions 'PKG_DATA' 'PKG_DOSBOX' # Clean up working_directory_cleanup exit 0 games/play-this-war-of-mine-stories.sh0000755000000000000000000000510014471751340016730 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: Stories: # - Father's Promise # - The Last Broadcast # - Fading Embers # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' EXPANSION_ID_PROMISE='fathers-promise' EXPANSION_NAME_PROMISE='Fatherʼs Promise' EXPANSION_ID_BROADCAST='the-last-broadcast' EXPANSION_NAME_BROADCAST='The Last Broadcast' EXPANSION_ID_EMBERS='fading-embers' EXPANSION_NAME_EMBERS='Fading Embers' # Archives ## Father's Promise ARCHIVE_BASE_PROMISE_0_NAME='this_war_of_mine_stories_father_s_promise_6_0_8_a_34693.sh' ARCHIVE_BASE_PROMISE_0_MD5='edd88a0589e73cee7f2ad575bd87f933' ARCHIVE_BASE_PROMISE_0_SIZE='1300' ARCHIVE_BASE_PROMISE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_PROMISE_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fathers_promise' ## The Last Broadcast ARCHIVE_BASE_BROADCAST_0_NAME='this_war_of_mine_stories_the_last_broadcast_6_0_8_a_34693.sh' ARCHIVE_BASE_BROADCAST_0_MD5='daff8c5453365f234fbcfa5e2ad11448' ARCHIVE_BASE_BROADCAST_0_SIZE='3900' ARCHIVE_BASE_BROADCAST_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_BROADCAST_0_URL='https://www.gog.com/game/this_war_of_mine_stories_the_last_broadcast' ## Fading Embers ARCHIVE_BASE_EMBERS_0_NAME='this_war_of_mine_stories_fading_embers_6_0_8_a_34693.sh' ARCHIVE_BASE_EMBERS_0_MD5='1684ebcdd6be5f11e69830da349549aa' ARCHIVE_BASE_EMBERS_0_SIZE='4100' ARCHIVE_BASE_EMBERS_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_EMBERS_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fading_embers' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' gog?.idx gog?.dat' PKG_MAIN_DEPS="$GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-this-war-of-mine-the-little-ones.sh0000755000000000000000000000326614471751340020270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: The Little Ones # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='Thie War of Mine' EXPANSION_ID='the-little-ones' EXPANSION_NAME='The Little Ones' ARCHIVE_BASE_0_NAME='this_war_of_mine_the_little_ones_6_0_8_a_34693.sh' ARCHIVE_BASE_0_MD5='7e2a1b8e0cc51d7a3f56f6591a0f6f21' ARCHIVE_BASE_0_SIZE='18000' ARCHIVE_BASE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_0_URL='https://www.gog.com/game/this_war_of_mine_the_little_ones' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' gog.idx gog.dat' PKG_MAIN_ID="${GAME_ID}-data-gog-${EXPANSION_ID}" PKG_MAIN_PROVIDES=" ${GAME_ID}-data-gog" PKG_MAIN_DESCRIPTION="data - GOG-specific files ($EXPANSION_NAME)" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-this-war-of-mine.sh0000755000000000000000000001155214471751340015252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Mopi set -o errexit ### # This War of Mine # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' ARCHIVE_BASE_9_NAME='this_war_of_mine_6_0_8_a_34693.sh' ARCHIVE_BASE_9_MD5='cc7afc1412ae1b92db5b992c2dd76818' ARCHIVE_BASE_9_SIZE='2800000' ARCHIVE_BASE_9_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_9_URL='https://www.gog.com/game/this_war_of_mine' ARCHIVE_BASE_8_NAME='this_war_of_mine_6_0_8_34211.sh' ARCHIVE_BASE_8_MD5='13d21027e6950b03946071bf4c06cb9e' ARCHIVE_BASE_8_SIZE='2800000' ARCHIVE_BASE_8_VERSION='6.0.8-gog34211' ARCHIVE_BASE_7_NAME='this_war_of_mine_6_0_7_33947.sh' ARCHIVE_BASE_7_MD5='f983657b4cd3bad71047d1cc62654b34' ARCHIVE_BASE_7_SIZE='2800000' ARCHIVE_BASE_7_VERSION='6.0.7-gog33947' ARCHIVE_BASE_6_NAME='this_war_of_mine_6_0_6_32269.sh' ARCHIVE_BASE_6_MD5='65b0332c4355046d09e5c49f1925cec9' ARCHIVE_BASE_6_SIZE='2700000' ARCHIVE_BASE_6_VERSION='6.0.6-32269' ARCHIVE_BASE_5_NAME='this_war_of_mine_6_0_5_32074.sh' ARCHIVE_BASE_5_MD5='8cb7bc50a58162242f215df36ae3ccdb' ARCHIVE_BASE_5_SIZE='2700000' ARCHIVE_BASE_5_VERSION='6.0.5-gog32074' ARCHIVE_BASE_4_NAME='this_war_of_mine_6_0_0_s3788_a10718_31527.sh' ARCHIVE_BASE_4_MD5='b317099aa7c0c0a4942845893e4f7386' ARCHIVE_BASE_4_SIZE='2700000' ARCHIVE_BASE_4_VERSION='6.0.0-gog31527' ARCHIVE_BASE_3_NAME='this_war_of_mine_5_1_0_26027.sh' ARCHIVE_BASE_3_MD5='8c9221653e6fc94a6898f5ef66a3325f' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='5.1.0-gog26027' ARCHIVE_BASE_2_NAME='this_war_of_mine_4_0_1_25361.sh' ARCHIVE_BASE_2_MD5='c6d96f0722a35821ea30500d8e7658d8' ARCHIVE_BASE_2_SIZE='2200000' ARCHIVE_BASE_2_VERSION='4.0.1-gog25361' ARCHIVE_BASE_1_NAME='this_war_of_mine_4_0_1_24802.sh' ARCHIVE_BASE_1_MD5='17daac7e70ee2c783b12114573cb7757' ARCHIVE_BASE_1_SIZE='1500000' ARCHIVE_BASE_1_VERSION='4.0.1-gog24802' ARCHIVE_BASE_0_NAME='this_war_of_mine_en_4_0_0_29_01_2018_18230.sh' ARCHIVE_BASE_0_MD5='165f4d6158425c3d2861c533f10b5713' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='4.0.0-gog18230' CONTENT_PATH_DEFAULT='data/noarch/game' ## This build of libcurl.so.4 includes the required "CURL_OPENSSL_3" symbol. CONTENT_LIBS_BIN_FILES=' libcurl.so.4' CONTENT_GAME_BIN_FILES=' This War of Mine' CONTENT_GAME_BIN_FILES_3=' KosovoLinux' CONTENT_GAME_BIN_FILES_0=' TWOMLinux' CONTENT_GAME_DATA_GOG_FILES=' gog.idx gog.dat' CONTENT_GAME_DATA_FILES=' CustomContent LocalizationPacks WorkshopData animations.idx animations.dat common.idx common.dat localizations.idx localizations.dat scenes.idx scenes.dat sounds.idx sounds.dat templates.idx templates.dat textures-s3.idx textures-s3.dat videos.idx videos.dat voices.idx voices.dat svnrev.txt *.str' APP_MAIN_EXE='This War of Mine' APP_MAIN_EXE_3='KosovoLinux' APP_MAIN_EXE_0='TWOMLinux' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA_GOG PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_GOG_ID="${PKG_DATA_ID}-gog" PKG_DATA_GOG_DESCRIPTION="$PKG_DATA_DESCRIPTION - GOG-specific files" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_GOG_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # The game binary looks for libOpenAL.so instead of libopenal.so.1 case "$(option_value 'package')" in ('arch'|'gentoo'|'egentoo') ## Unversioned libopenal.so is already provided by the base library packages on Arch Linux and Gentoo. ;; ('deb') path_libraries_system=$( set_current_package 'PKG_BIN' path_libraries_system ) library_source="${path_libraries_system}/libopenal.so.1" library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libOpenAL.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; esac # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tooth-and-tail.sh0000755000000000000000000000565614471751340015020 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tooth and Tail # send your bug reports to bugs@dotslashplay.it ### script_version=20251019.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='tooth-and-tail' GAME_NAME='Tooth and Tail' ## This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='toothandtail_linux.zip' ARCHIVE_BASE_0_MD5='5a01a61889e795b538d3db288a6f519d' ARCHIVE_BASE_0_VERSION='1.6.1.1-humble1' ARCHIVE_BASE_0_SIZE='586332' CONTENT_PATH_DEFAULT='Release' CONTENT_LIBS_LIBS_FILES=' libfmod.so.10 libfmodstudio.so.10 libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' content ToothAndTail.exe ToothAndTail.exe.config fr/ToothAndTail.resources.dll FNA.dll FNA.dll.config Glide.dll Newtonsoft.Json.dll' APP_MAIN_EXE='ToothAndTail.exe' APP_MAIN_ICON='ToothAndTail.exe' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Net.dll System.Net.Http.dll System.Runtime.Serialization.dll System.Security.dll System.Windows.Forms.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libtheoradec.so.1 libvorbis.so.0' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. ## Some shipped libraries expect an executable stack. game_exec_line() { cat <<- 'EOF' GLIBC_TUNABLES=glibc.rtld.execstack=2 mono ToothAndTail.exe "$@" EOF } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-total-annihilation-kingdoms.sh0000755000000000000000000000405614471751340017574 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 HS-157 # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Phil Morrell set -o errexit ### # Total Annihilation: Kingdoms # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='total-annihilation-kingdoms' GAME_NAME='Total Annihilation: Kingdoms' ARCHIVE_BASE_0_NAME='setup_total_annihilation_kingdoms_2.0.0.22.exe' ARCHIVE_BASE_0_MD5='206f4b8e9159414ee38ec609831907bb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_0_URL='https://www.gog.com/game/total_annihilation_kingdoms' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.asi *.dll *.exe *.tsk' CONTENT_GAME_DATA_FILES=' atlas boneyards docs gc maps movies music *.256 *.esk *.hpi *.htm *.icd *.id *.isu *.key *.mmz *.pdf *.tdf *.txt' APP_MAIN_EXE='kingdoms.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-triple-triad-gold.sh0000755000000000000000000000363514471751340015512 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Triple Triad Gold # send your bug reports to bugs@dotslashplay.it ### script_version=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='triple-triad-gold' GAME_NAME='Triple Triad Gold' ARCHIVE_BASE_0_NAME='ttg09.zip' ARCHIVE_BASE_0_MD5='ec517c23236f2ad9217e1488f27b3dab' ARCHIVE_BASE_0_SIZE='4400' ARCHIVE_BASE_0_VERSION='0.9-qhimm1' ARCHIVE_BASE_0_URL='https://ttg.qhimm.com/' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' *.dat' USER_PERSISTENT_FILES=' settings.dat' ## TODO: Check if this winetricks verb is still required with WINE ≥ 10.0. WINE_WINETRICKS_VERBS='mfc42' APP_MAIN_EXE='Triple Triad Gold.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=128' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-tzar.sh0000755000000000000000000000616014471751340013143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Tzar: The Burden of the Crown # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tzar' GAME_NAME='Tzar: The Burden of the Crown' ARCHIVE_BASE_0_NAME='setup_tzar_1.01_(10554).exe' ARCHIVE_BASE_0_MD5='2c0be6258d5987fadb2d6e21e5bfae2a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='1.10-gog10554' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tzar_the_burden_of_the_crown' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' setup.exe tzarcampaign.exe tzaredit.exe tzar.exe *.dll' CONTENT_GAME_DATA_FILES=' campaign data help hero icons images local maps movies music sound' CONTENT_GAME0_BIN_RELATIVE_PATH='__support/app' CONTENT_GAME0_BIN_FILES=' tzar.ini' CONTENT_GAME0_DATA_RELATIVE_PATH='__support/app' CONTENT_GAME0_DATA_FILES=' demos' CONTENT_DOC_DATA_FILES=' tzar110.txt *.pdf' USER_PERSISTENT_FILES=' tzar.ini' USER_PERSISTENT_DIRECTORIES=' demos save' # Microsoft Visual C++ library is required by the game settings application WINE_WINETRICKS_VERBS='mfc42' APP_MAIN_EXE='tzar.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='setup.exe' APP_EDIT_ID="${GAME_ID}-edit" APP_EDIT_NAME="$GAME_NAME - Map Editor" APP_EDIT_EXE='tzaredit.exe' APP_CAMPAIGN_ID="${GAME_ID}-campaign" APP_CAMPAIGN_NAME="$GAME_NAME - Campaign Editor" APP_CAMPAIGN_EXE='tzarcampaign.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Play the introduction video on launch REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME0_BIN')" # Play the introduction video on launch config_file='tzar.ini' config_section='\[DEFAULTS\]' config_entry='SCREENCHOICE=3' sed_expression="s/${config_section}/&\\n${config_entry}/" dos2unix --quiet "$config_file" sed --in-place --expression="$sed_expression" "$config_file" unix2dos --quiet "$config_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-valhalla-hills.sh0000755000000000000000000000457214471751340015065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Valhalla Hills # send your bug reports to bugs@dotslashplay.it ### script_version=20250224.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='valhalla-hills' GAME_NAME='Valhalla Hills' ARCHIVE_BASE_0_NAME='gog_valhalla_hills_2.3.0.5.sh' ARCHIVE_BASE_0_MD5='59286a003e654ae9f571abccc0375053' ARCHIVE_BASE_0_SIZE='1251393' ARCHIVE_BASE_0_VERSION='1.05.17-gog2.3.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/valhalla_hills' UNREALENGINE4_NAME='ValhallaHills' CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=' Saved' APP_MAIN_EXE='ValhallaHills/Binaries/Linux/ValhallaHills-Linux-Shipping' APP_MAIN_ICON='../support/icon.png' ## The game crashes on launch when SDL_VIDEODRIVER is set to "wayland". APP_MAIN_PRERUN='# The game crashes on launch when SDL_VIDEODRIVER is set to "wayland" if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpthread.so.0 libQt5Core.so.5 libQt5Gui.so.5 libQt5Widgets.so.5 libQtCore.so.4 libQtGui.so.4 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warcraft-1.sh0000755000000000000000000000410014471751340014122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Warcraft # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='warcraft-1' GAME_NAME='Warcraft: Orcs & Humans' ARCHIVE_BASE_1_NAME='setup_warcraft_orcs__humans_1.2_(28330).exe' ARCHIVE_BASE_1_MD5='3ec0ea59f7a1c4413792da43cf9affe7' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='642566' ARCHIVE_BASE_1_VERSION='1.2-gog28330' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warcraft_orcs_and_humans' ARCHIVE_BASE_0_NAME='setup_warcraft_orcs__humans_1.2_(28330).exe' ARCHIVE_BASE_0_MD5='79d30dbb24395d32f77156a2e2b4639c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='642266' ARCHIVE_BASE_0_VERSION='1.2-gog28330' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' data drivers *.bin *.cue *.exe *.war' CONTENT_DOC_MAIN_PATH=' *.txt' GAME_IMAGE='war1.cue' USER_PERSISTENT_FILES=' *.SAV *.war' APP_MAIN_EXE='war.exe' APP_MAIN_ICON='app/goggame-1706049527.ico' ## Use fixed cpu cycles, to avoid scrolling issues. APP_MAIN_DOSBOX_PRERUN=' config -set cpu cycles=fixed 30000' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-warhammer-40k-mechanicus.sh0000755000000000000000000000506514471751340016662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40,000: Mechanicus # send your bug reports to bugs@dotslashplay.it ### script_version=20250512.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='warhammer-40k-mechanicus' GAME_NAME='Warhammer 40,000: Mechanicus' ARCHIVE_BASE_1_NAME='warhammer_40_000_mechanicus_1_4_10_0_63084.sh' ARCHIVE_BASE_1_MD5='92e8a72016854efe19ebab5cc7906c1b' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.4.10.0-gog63084' ARCHIVE_BASE_1_URL='https://www.gog.com/game/warhammer_40000_mechanicus' ARCHIVE_BASE_0_NAME='warhammer_40_000_mechanicus_1_4_6_1_47625.sh' ARCHIVE_BASE_0_MD5='672029ff6ad1ff34946201ca4d423737' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.4.6.1-gog47625' UNITY3D_NAME='Mechanicus' UNITY3D_PLUGINS=' libfmod.so libfmodL.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_Data/sharedassets*" PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-we-the-revolution.sh0000755000000000000000000000407114471751340015557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # We. The Revolution # send your bug reports to bugs@dotslashplay.it ### script_version=20251017.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='we-the-revolution' GAME_NAME='We. The Revolution' ARCHIVE_BASE_0_NAME='we_the_revolution_1_3_0_31907.sh' ARCHIVE_BASE_0_MD5='fafc1df1317fdfc73223367ed19eea52' ARCHIVE_BASE_0_SIZE='2997578' ARCHIVE_BASE_0_VERSION='1.3.0-gog31907' ARCHIVE_BASE_0_URL='https://www.gog.com/game/we_the_revolution' UNITY3D_NAME='We.TheRevolution' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-windward.sh0000755000000000000000000000577014471751340014010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Windward # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='windward' GAME_NAME='Windward' ## This game is no longer available for sale from gog.com. ARCHIVE_BASE_GOG_2_NAME='gog_windward_2.36.0.40.sh' ARCHIVE_BASE_GOG_2_MD5='6afbdcfda32a6315139080822c30396a' ARCHIVE_BASE_GOG_2_SIZE='130000' ARCHIVE_BASE_GOG_2_VERSION='20170617.0-gog2.36.0.40' ARCHIVE_BASE_GOG_1_NAME='gog_windward_2.35.0.39.sh' ARCHIVE_BASE_GOG_1_MD5='12fffaf6f405f36d2f3a61b4aaab89ba' ARCHIVE_BASE_GOG_1_SIZE='130000' ARCHIVE_BASE_GOG_1_VERSION='20160707.0-gog2.35.0.39' ARCHIVE_BASE_GOG_0_NAME='gog_windward_2.35.0.38.sh' ARCHIVE_BASE_GOG_0_MD5='f5ce09719bf355e48d2eac59b84592d1' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='20160707-gog2.35.0.38' ## The DRM-free build of Windard is no longer available for sale from humblebundle.com. ARCHIVE_BASE_HUMBLE_1_NAME='WindwardLinux_HB_1505248588.zip' ARCHIVE_BASE_HUMBLE_1_MD5='9ea99157d13ae53905757f2fb3ab5b54' ARCHIVE_BASE_HUMBLE_1_SIZE='130000' ARCHIVE_BASE_HUMBLE_1_VERSION='20170617.0-humble170912' ARCHIVE_BASE_HUMBLE_0_NAME='WindwardLinux_HB.zip' ARCHIVE_BASE_HUMBLE_0_MD5='f2d1a9a91055ecb6c5ce1bd7e3ddd803' ARCHIVE_BASE_HUMBLE_0_SIZE='130000' ARCHIVE_BASE_HUMBLE_0_VERSION='20160707-humble1' UNITY3D_NAME='Windward' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Windward' CONTENT_PATH_DEFAULT_HUMBLE_0='.' FAKE_HOME_PERSISTENT_DIRECTORIES=' Documents/Windward' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-wingspan.sh0000755000000000000000000000555214471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Wingspan # send your bug reports to bugs@dotslashplay.it ### script_version=20250226.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='wingspan' GAME_NAME='Wingspan' ARCHIVE_BASE_3_NAME='setup_wingspan_245_(79908).exe' ARCHIVE_BASE_3_MD5='7d25219f5ea206a5b07075da912f4eeb' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_wingspan_245_(79908)-1.bin' ARCHIVE_BASE_3_PART1_MD5='77a3548ce92b64f2528cb04707ce0002' ARCHIVE_BASE_3_SIZE='1819577' ARCHIVE_BASE_3_VERSION='245-gog79908' ARCHIVE_BASE_3_URL='https://www.gog.com/game/wingspan' ARCHIVE_BASE_2_NAME='setup_wingspan_205_(73380).exe' ARCHIVE_BASE_2_MD5='11f9487bfac4640f9c6b60ba571b9d3f' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_wingspan_205_(73380)-1.bin' ARCHIVE_BASE_2_PART1_MD5='d45eed5ada273495ec6686283cf2cb33' ARCHIVE_BASE_2_SIZE='1713414' ARCHIVE_BASE_2_VERSION='205-gog73380' ARCHIVE_BASE_1_NAME='setup_wingspan_102_(53871).exe' ARCHIVE_BASE_1_MD5='1628a30ffccd86d875895e2d166c1cde' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_wingspan_102_(53871)-1.bin' ARCHIVE_BASE_1_PART1_MD5='7a2baede2444e183941698a73e7a3044' ARCHIVE_BASE_1_SIZE='1100000' ARCHIVE_BASE_1_VERSION='102-gog53871' ARCHIVE_BASE_0_NAME='setup_wingspan_83_(50869).exe' ARCHIVE_BASE_0_MD5='5d68e6a8027e34504e86075a96e8bc15' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_wingspan_83_(50869)-1.bin' ARCHIVE_BASE_0_PART1_MD5='110175d9b0bca8b33b13e826da0a7b99' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='83-gog50869' UNITY3D_NAME='wingspan' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Monster Couch/Wingspan' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-worms-1.sh0000755000000000000000000000564214471751340013474 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Worms United # send your bug reports to bugs@dotslashplay.it ### script_version=20250225.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='worms-1' GAME_NAME='Worms United' ARCHIVE_BASE_2_NAME='setup_worms_united_1.0_(28045).exe' ARCHIVE_BASE_2_MD5='28565f5ce89233e032e6fb6d98143c70' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='206931' ARCHIVE_BASE_2_VERSION='1.0-gog28045' ARCHIVE_BASE_2_URL='https://www.gog.com/game/worms_united' ARCHIVE_BASE_1_NAME='setup_worms_united_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='fd76a7ea0a94f0e3e9cdd2b3b3f9fdd4' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='206589' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_0_NAME='setup_worms_united_2.0.0.20.exe' ARCHIVE_BASE_0_MD5='619421cafa20f478d19222e3f49d77b6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='220000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.20' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' bin batch data extras dos4gw.exe worms.cfg worms.dat worms.gog worms*.ogg' CONTENT_DOC_MAIN_FILES=' docs manual.pdf' GAME_IMAGE='worms.dat' USER_PERSISTENT_FILES=' worms.cfg' USER_PERSISTENT_DIRECTORIES=' data' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='bin\wrms.exe' APP_MAIN_ICON='goggame-1207658991.ico' APP_MAIN_ICON_0='gfw_high.ico' ## Set required environment variables APP_MAIN_DOSBOX_PRERUN=' SET wormscfg=C:\\worms.cfg SET wormscd=D:' ## Play introduction videos APP_MAIN_DOSBOX_PRERUN="${APP_MAIN_DOSBOX_PRERUN:-}"' D:\\fmv\\play /modex D:\\fmv\\logo2.avi D:\\fmv\\play /modex D:\\fmv\\logo1.avi D:\\fmv\\play /modex D:\\fmv\\cinadd.avi D:\\fmv\\play /modex D:\\fmv\\armup.avi bin\\black.exe' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check ## The regular check would fail due to "\" being used as a path separator. launcher_target_presence_check() { local application_exe_path application_exe_path=$(application_exe_path 'bin/wrms.exe') test -f "$application_exe_path" } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-x-morph-defense.sh0000755000000000000000000000463314471751340015167 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # X-Morph: Defense # send your bug reports to bugs@dotslashplay.it ### script_version=20250311.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='x-morph-defense' GAME_NAME='X-Morph: Defense' ARCHIVE_BASE_0_NAME='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014).exe' ARCHIVE_BASE_0_MD5='9d9eecd4c40390e6944f745720421931' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2ca0e0fbd9305b419e1c1ce2f706753c' ARCHIVE_BASE_0_PART2_NAME='setup_x-morph_defense_complete_edition_1.0.0_(64bit)_(27014)-2.bin' ARCHIVE_BASE_0_PART2_MD5='939bd7b04555bbedcf9a50876c461d76' ARCHIVE_BASE_0_VERSION='1.0.0-gog27014' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/xmorph_defense_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bin/*.dll bin/*.exe conf' CONTENT_GAME_DATA_FILES=' packs' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/X-Morph Defense' APP_MAIN_EXE='bin/shooter_win64_release.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- EOF cd bin \$(wine_command) shooter_win64_release.exe "\$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-xenonauts.sh0000755000000000000000000000744614471751340014217 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Xenonauts # send your bug reports to bugs@dotslashplay.it ### script_version=20250225.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='xenonauts' GAME_NAME='Xenonauts' ARCHIVE_BASE_GOG_1_NAME='xenonauts_en_1_65_21328.sh' ARCHIVE_BASE_GOG_1_MD5='bff1d949f13f2123551a964475ea655e' ARCHIVE_BASE_GOG_1_SIZE='2900000' ARCHIVE_BASE_GOG_1_VERSION='1.65-gog21328' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/xenonauts' ARCHIVE_BASE_GOG_0_NAME='gog_xenonauts_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='7830dee208e779f97858ee81a97c9327' ARCHIVE_BASE_GOG_0_SIZE='2900000' ARCHIVE_BASE_GOG_0_VERSION='1.63-gog2.1.0.4' ARCHIVE_BASE_HUMBLE_1_NAME='Xenonauts-DRMFree-Linux-2016-03-03.sh.zip' ARCHIVE_BASE_HUMBLE_1_MD5='9de3cb3353c64c9386207e1cc547391a' ARCHIVE_BASE_HUMBLE_1_SIZE='5065357' ARCHIVE_BASE_HUMBLE_1_VERSION='1.65-humble160303' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/xenonauts' ARCHIVE_BASE_HUMBLE_0_NAME='Xenonauts-DRMFree-Linux-2016-03-03.sh' ARCHIVE_BASE_HUMBLE_0_MD5='f4369e987381b84fde64be569fbab913' ARCHIVE_BASE_HUMBLE_0_SIZE='2700000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.65-humble160303' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN_FILES=' Xenonauts.bin.x86' ## Xenonauts.bin.x86 is linked against libsteam_api.so, so this library can not be dropped. CONTENT_LIBS_BIN_RELATIVE_PATH_GOG='lib' CONTENT_LIBS_BIN_RELATIVE_PATH_HUMBLE='x86/lib' CONTENT_LIBS_BIN_FILES=' libsteam_api.so' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' assets extras Icon.*' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' README.linux *.pdf' APP_MAIN_EXE='Xenonauts.bin.x86' APP_MAIN_ICON_GOG='Icon.png' APP_MAIN_ICON_HUMBLE='noarch/Icon.png' ## Skip the launcher, as it can cause a crash related to fonts rendering on some setups APP_MAIN_OPTIONS='-nolauncher' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN=' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1 libXxf86vm.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_1') ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Xenonauts-DRMFree-Linux-2016-03-03.sh" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; esac # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000755000000000000000000000064314471751340013763 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000644000000000000000000000404314471751340010570 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2015 Antoine Le Gonidec Copyright © 2016 Mopi Copyright © 2017 Jacek Szafarkiewicz Copyright © 2017 Phil Morrell Copyright © 2017 mortalius Copyright © 2017 HS-157 Copyright © 2018 Janeene Beeforth Copyright © 2019 BetaRays Copyright © 2020 Emmanuel Gil Peyrot Copyright © 2020 bbob Copyright © 2021 Hoël Bézier Copyright © 2021 Anna Lea Copyright © 2021 berru Copyright © 2024 Fabien Givors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000644000000000000000000000502314471751340011222 0ustar rootrootcollection_name = 45_strategy UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif collections_path = $(DESTDIR)$(datadir)/play.it/collections # Install the game scripts .PHONY: install uninstall install: install -D --mode=755 --target-directory=$(collections_path)/$(collection_name) games/* uninstall: rm $(collections_path)/$(collection_name)/play-*.sh rmdir -p --ignore-fail-on-non-empty $(collections_path)/$(collection_name) # Generate tarballs, for easier packaging .PHONY: dist ## The generated tarball is signed with gpg by default, ## NO_SIGN should be set to a non-0 value to skip the signature. NO_SIGN := 0 dist: DATE := $(shell date +%F) dist: TARBALL := $(collection_name)_$(DATE).tar.gz dist: TAR_OPTIONS := --sort=name --mtime=2023-08-25 --owner=root:0 --group=root:0 --use-compress-program='gzip --no-name' dist: games/*.sh tests/check-license.sh LICENSE Makefile README.md mkdir --parents dist LC_ALL=C tar cf dist/$(TARBALL) $(TAR_OPTIONS) games/*.sh tests/check-license.sh LICENSE Makefile README.md ifeq ($(NO_SIGN),0) rm --force dist/$(TARBALL).asc gpg --armor --detach-sign dist/$(TARBALL) endif # Run license check, to ensure no contributor is missing .PHONY: check check-license check: check-license check-license: ./tests/check-license.sh # Run syntax checks, relying on ShellCheck GAME_SCRIPTS := $(wildcard games/play-*.sh) GAME_SCRIPTS_TESTS := $(addprefix shellcheck_, $(GAME_SCRIPTS)) .PHONY: $(GAME_SCRIPTS_TESTS) check: $(GAME_SCRIPTS_TESTS) $(GAME_SCRIPTS_TESTS): SHELLCHECK_SOURCES := /usr/share/games/play.it:/usr/share/play.it ## This is a unicode quote. Delete and retype it (or ignore/doublequote for literal). $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC1112 ## Expressions don't expand in single quotes, use double quotes for that. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2016 ## foo appears unused. Verify it or export it. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2034 ## Don't use variables in the printf format string. Use printf '..%s..' "$foo". $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2059 ## In POSIX sh, 'local' is undefined. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC3043 $(GAME_SCRIPTS_TESTS): shellcheck_%: % shellcheck --extended-analysis=false --external-sources --source-path=$(SHELLCHECK_SOURCES) $(SHELLCHECK_EXCLUDE) $< README.md0000644000000000000000000002220514471751340011042 0ustar rootroot# ./play.it strategy games collection The codebase is maintained at [https://git.dotslashplay.it/games-strategy/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-strategy/]: https://git.dotslashplay.it/games-strategy/ [bugs@dotslashplay.it]: mailto:bugs@dotslashplay.it [requests@dotslashplay.it]: mailto:requests@dotslashplay.it ## Description ./play.it is a free software building native packages from installers for Windows or Linux, mainly those sold by stores focusing on DRM-free games distribution. The goal is that a game installed via ./play.it is indistinguishable from a game installed via the official repositories of your favourite distribution. This specific collection includes only strategy games. These games rely on long-term planning. They often include military troops management, but can be more peaceful with a focus on resource gathering and logistics. Both turn-based and real-time games are included. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for this ./play.it collection, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-strategy play.it-strategy.git cd play.it-strategy.git make install ``` ## Usage Usage instructions are provided on the main ./play.it repository: [./play.it: Installer for DRM-free commercial games — Usage] [./play.it: Installer for DRM-free commercial games — Usage]: https://git.dotslashplay.it/scripts/about/#usage ## Contributing ### First contribution There is no real rule for your first contribution. You can host your updated code anywhere you like and contact us via any way described in the [Contact information] section below. It is OK to expose your updated code through GitHub or GitLab.com if you have nothing better at hand, but we would be thankful if you would instead use some hosting outside of these big silos. [Contact information]: #contact-information We do not enforce any workflow like merge/pull requests or any such thing. We are interested in the result of your work, not in how you got to it. So shatter your shackles, and for once take pleasure in working *however you like*! You are not even required to use git if you do not know or do not like this tool. Please try to follow these simple guidelines, and your contribution is probably going to be accepted quickly: - Run `make check` before submitting your code, to ensure you did not break anything by accident; - Use tabs for indentation. No real developer would ever indent anything with spaces. ### Regular contributions If you keep contributing on a more regular basis (sending 3 patches in the same year would already make you a regular) we can grant you direct write access to the repositories hosted at git.dotslashplay.it. This is not mandatory, if for some reason you can not or do not want to work with git you can simply keep following the "First contribution" guidelines, and forget about this whole "Regular contributions" section. To grant you such an access we need nothing but a public SSH key, that you can send us through any way described in the [Contact information] section below. [Contact information]: #contact-information Once you have been granted access, you should add the following to your local SSH configuration: ``` Host git.dotslashplay.it Port 1962 User gitolite3 ``` You should then update the remote of your local repository, with the following command (assuming a remote named "upstream"): ``` git remote set-url --push upstream ssh://git.dotslashplay.it/games-strategy ``` Since these repositories are worked on by several people, there are a couple extra guidelines that you should follow: - Your work should always be pushed to a dedicated branch, never on the main branch; - Game script updates, including bug fixes, should be pushed to branches named with a "update/" prefix; - Addition of new game scripts should be pushed to branches named with a "new/" prefix; - You are allowed to push code to branches opened by other contributors, but please communicate with them if you plan to do so; - Force push and branches deletion are not allowed, if you want a branch to be deleted please ask us to do it for you. ## Supported games - Abandon Ship - Afterlife - Age of Wonders series: - Age of Wonders - Age of Wonders: Planetfall - AI War 2 - Airline Tycoon Deluxe - Anno series: - Anno 1503 - Anno 1404 - Anomaly series: - Anomaly: Warzone Earth - Anomaly 2 - Anomaly Defenders - Aquamarine - As Far As The Eye - Ash of Gods - Aven Colony - Banished - Battle Worlds: Kronos - Battlefleet Gothic: Armada - Bear and Breakfast - Beholder series: - Beholder - Beholder 2 - Book of Hours - Braveland series: - Braveland - Braveland Wizard - Braveland Pirate - Breach & Clear series: - Breach & Clear - Breach & Clear: Deadline - Caravan - Cat Cafe Manager - Chaos Reborn - Charterstone - Chroma Squad - Civilization 4 - Coffee Noir - Business Detective Game - Commandos 3: Destination Berlin - Cultist Simulator - Darwinia - Dawnmaker - Defender's Quest - Democratic Socialism Simulator - Door Kickers - Dorfromantik - Dungeons 2 - Empire Earth - Endless Space - Endzone: A World Apart - Etherlords - Europa Universalis 2 - Everything is Garbage - Factory Town - Fallout Tactics - Fantasy General - Farabel - Fear Equation - Fox & Flock - Gangsters: Organized Crime - GemCraft - Frostborn Wrath - Giants: Citizen Kabuto - Glittermitten Grove - Gnomoria - Godhood - Graveyard Keeper - GreedCorp - Habitat - Halcyon 6 - Hard West - Helium Rain - Help Will Come Tomorrow - Heroes of Might and Magic series: - Heroes of Might and Magic - Heroes of Might and Magic 2 - Heroes of Might and Magic 3 - Heroes Chronicles - Heroes of Might and Magic 4, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Heroes of Might and Magic 5, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Hive Time - Homeseek - Impossible Creatures - Infinium Strike - Inkulinati - Into the Breach - Invisible Inc. - Iratus: Lord of the Dead - Iris and the Giant - Iron Harvest - Ironclad Tactics - Islanders - Ixion - Jars - Kapital: Sparks of Revolution - King's Bounty: The Legend - Kingdom: New Lands - Legend of Keepers - Loria - Marble Age - Master of Magic - Master of Orion 2 - Mesmer - Möbius Front '83 - Multiwinia - Nebuchadnezzar - Niche - a genetics survival game - No Pineapple Left Behind - Nomads of Driftland - Nowhere Prophet - Old World - Perimeter - Political Animals - Populous series: - Populous: Promised Lands - Populous 2 - Populous: The Beginning - Potion Craft: Alchemy Simulator - Prison Architect - Prophour23 - Ravenous Devils - Reassembly - Rimworld - Robin Hood: The Legend of Sherwood - Rymdkapsel - Satellite Reign - Sigma Theory - Skyshine's Bedlam - Slime Rancher - Slipways - Solar Flux - Songs of Silence - Space Pirates and Zombies - Space Run - Spacecom - Spellforce - Spore - Star Vikings - Star Wolves 3: Civil War - Star-Twine - Stardew Valley - Sudden Strike 4 - Surviving Mars - Symmetry - Terra Nil - The Fertile Crescent - The Guild series: - The Guild 2 - The Guild 2 Renaissance - The Hive - The Settlers series: - The Settlers 2, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - The Settlers 3 - The Westport Independent - Thea 2: The Shattering - Theme Hospital - This War of Mine - Tooth and Tail - Total Annihilation: Kingdoms - Triple Triad Gold - Tzar: The Burden of the Crown - Valhalla Hills - Warcraft series: - Warcraft: Orcs & Humans - Warcraft 2, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Warcraft 3, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Warhammer 40,000: Mechanicus - We. The Revolution - Windward - Wingspan - Worms series: - Worms United - Worms 2, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Worms Armageddon, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - X-Morph: Defense - Xenonauts [https://git.vv221.fr/play.it/games-vv221/about/]: https://git.vv221.fr/play.it/games-vv221/about/ ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail.