games/play-1365.sh0000755000000000000000000000376114471751340012565 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1365 # send your bug reports to contact@dotslashplay.it ### script_version=20240504.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='1365-game' GAME_NAME='1365' ARCHIVE_BASE_0_NAME='1365 Linux 1.0' ARCHIVE_BASE_0_MD5='8cb8fb11a2df4af72154f2909238c09c' ARCHIVE_BASE_0_TYPE='file' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://shadybug.itch.io/1365' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='1356_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f820888c924fed091c5d64d9aaa2d467' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/1365/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256 512x512' APP_MAIN_EXE='1365 Linux 1.0' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 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" # Include game data content_inclusion_icons install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path 'PKG_MAIN')$(path_game_data)/$(application_exe 'APP_MAIN')" # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-1954-alcatraz.sh0000755000000000000000000000367214471751340014371 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1954 Alcatraz # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='1954-alcatraz' GAME_NAME='1954 Alcatraz' ARCHIVE_BASE_0_NAME='setup_1954_alcatraz_1.3.5019_(19812).exe' ARCHIVE_BASE_0_MD5='b18fe30eb3fc67e3f6b12f725b297f95' ## Do not convert file paths to lowercase. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.3.5019-gog19812' ARCHIVE_BASE_0_URL='https://www.gog.com/game/1954_alcatraz' UNITY3D_NAME='Alcatraz' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Daedalic Entertainment/1954 Alcatraz' ## Work around missing text in options menu. WINE_WINETRICKS_VERBS='arial' 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-6180-the-moon.sh0000755000000000000000000000467614471751340014317 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 6180 The Moon # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='6180-the-moon' GAME_NAME='6180 The Moon' UNITY3D_NAME='6180 the moon' ARCHIVE_BASE_0='6180_the_moon_2.1.0_Linux.zip' ARCHIVE_BASE_0_MD5='79e81fb57d8d5dbf27a7c4be2dd0efd9' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='2.1.0-humble141209' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/6180-the-moon' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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=' ld-linux.so.2 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' # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-80-days.sh0000755000000000000000000000330214471751340013343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # 80 Days # send your bug reports to contact@dotslashplay.it ### script_version=20240708.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='80-days' GAME_NAME='80 Days' ARCHIVE_BASE_0_NAME='setup_80_days_1.17.8_(44038).exe' ARCHIVE_BASE_0_MD5='bde0aa5f33b99f495be27a515d07fff5' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.8-gog44038' ARCHIVE_BASE_0_URL='https://www.gog.com/game/80_days' UNITY3D_NAME='80 days' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Inkle Studios/80 Days' 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-a-bewitching-revolution.sh0000755000000000000000000000365614471751340016737 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Bewitching Revolution # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-bewitching-revolution' GAME_NAME='A Bewitching Revolution' ARCHIVE_BASE_0_NAME='BewitchingRevolutionLinux.zip' ARCHIVE_BASE_0_MD5='89d7a3deb6dab12eda2845d91c556a02' ARCHIVE_BASE_0_SIZE='128391' ARCHIVE_BASE_0_VERSION='2.2.0-itch' ARCHIVE_BASE_0_URL='https://colestia.itch.io/a-bewitching-revolution' UNITY3D_NAME='BewitchingRevolutionLinux' UNITY3D_PLUGINS=' ScreenSelector.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 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" # 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-a-boy-and-his-blob.sh0000755000000000000000000000562714471751340015436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # A Boy and His Blob # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-boy-and-his-blob' GAME_NAME='A Boy and His Blob' ARCHIVE_BASE_ZOOM_0_NAME='A Boy and His Blob.tar.gz' ARCHIVE_BASE_ZOOM_0_MD5='4e56d18404f82a2c6f6489661df807c8' ARCHIVE_BASE_ZOOM_0_SIZE='1300000' ARCHIVE_BASE_ZOOM_0_VERSION='2016.04.21-zoom1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/a-boy-and-his-blob' ARCHIVE_BASE_GOG_0_NAME='gog_a_boy_and_his_blob_2.1.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='7025963a3a26f838877374f72ce3760d' ARCHIVE_BASE_GOG_0_SIZE='1300000' ARCHIVE_BASE_GOG_0_VERSION='2016.04.21-gog2.1.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/a_boy_and_his_blob' CONTENT_PATH_DEFAULT_ZOOM='A Boy And His Blob/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.7 libGLEW.so.1.10' CONTENT_GAME_BIN_FILES=' Blob' CONTENT_GAME_DATA_FILES=' content' APP_MAIN_EXE='Blob' 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 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 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" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='a-boy-and-his-blob_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='2a555c1f6b02a45b8932c8e72a9c1dd6' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/game/a-boy-and-his-blob/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-hat-in-time.sh0000755000000000000000000000501314471751340014511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Hat in Time # send your bug reports to contact@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='a-hat-in-time' GAME_NAME='A Hat in Time' ARCHIVE_BASE_0_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607).exe' ARCHIVE_BASE_0_MD5='b488a803f372891556adde2589b87643' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c0b7186f04d9d07baa835cd4186a5fb9' ARCHIVE_BASE_0_PART2_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-2.bin' ARCHIVE_BASE_0_PART2_MD5='7ce5f0d9d40007cb4c12e9312f0cfc57' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.12-gog35607' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_hat_in_time' ## Despite the similar directories structure, ## this is not an Unreal Engine 4 game but an Unreal Engine 3 one. CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' hatintimegame' CONTENT_GAME0_BIN_PATH='app' CONTENT_GAME0_BIN_FILES=' engine' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' hatintimegame' ## .NET Framework 4 is required for controller support. ## TODO: Check if Mono could be used instead. WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_WINETRICKS_VERBS='dotnet40' APP_MAIN_EXE='binaries/win64/hatintimegame.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-a-house-of-many-doors.sh0000755000000000000000000000363014471751340016213 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A House of Many Doors # send your bug reports to contact@dotslashplay.it ### script_version=20240531.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-house-of-many-doors' GAME_NAME='A House of Many Doors' ARCHIVE_BASE_0_NAME='A House of Many Doors.zip' ARCHIVE_BASE_0_MD5='bf3714af567c8e6290577af2d744dd0a' ARCHIVE_BASE_0_SIZE='463417' ARCHIVE_BASE_0_VERSION='1.2-itch.2017.03.30' ARCHIVE_BASE_0_URL='https://pixeltrickery.itch.io/a-house-of-many-doors' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' D3DX9_43.dll A House of Many Doors.exe HOMD.homd Game Data.ini options.ini' CONTENT_GAME_DATA_FILES=' Images audiogroup*.dat *.ogg penumbra_s.png data.win' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/A_House_of_Many_Doors' APP_MAIN_EXE='A House of Many Doors.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" # 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-a-jugglers-tale.sh0000755000000000000000000000353214471751340015146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Juggler's Tale # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-jugglers-tale' GAME_NAME='A Jugglerʼs Tale' ARCHIVE_BASE_0_NAME='setup_a_jugglers_tale_1.16.0_(64bit)_(50655).exe' ARCHIVE_BASE_0_MD5='bb0953d80bf8b9d996bdb453564fe07f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_jugglers_tale_1.16.0_(64bit)_(50655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2345e25ad4c4f90574b63b3da7e464ab' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.16.0-gog50655' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_jugglers_tale' UNREALENGINE4_NAME='ajugglerstale' CONTENT_PATH_DEFAULT='.' 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-a-lullaby-of-colors.sh0000755000000000000000000000335114471751340015745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Lullaby of Colors # send your bug reports to contact@dotslashplay.it ### script_version=20240616.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-lullaby-of-colors' GAME_NAME='A Lullaby of Colors' ARCHIVE_BASE_0_NAME='A_Lullaby_of_Colors_v1.1.0_win_NonVR.zip' ARCHIVE_BASE_0_MD5='afbc3fd204650fb26f7dd5d12438006e' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.1.0-itch' ARCHIVE_BASE_0_URL='https://andyman404.itch.io/lullaby-of-colors' UNITY3D_NAME='A Lullaby of Colors' CONTENT_PATH_DEFAULT='.' ## TODO: Add persistent storage of saved games and settings. 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-a-musical-story.sh0000755000000000000000000000406614471751340015217 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Musical Story # send your bug reports to contact@dotslashplay.it ### script_version=20221231.1 GAME_ID='a-musical-story' GAME_NAME='A Musical Story' UNITY3D_NAME='MusicalStory' ARCHIVE_BASE_0='a_musical_story_1_0_5_53408.sh' ARCHIVE_BASE_0_MD5='028d274ff2f597d5fb5ed0116bee990a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0.5-gog53408' ARCHIVE_BASE_0_URL='https://www.gog.com/game/' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" GameAssembly.so UnityPlayer.so ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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 pulseaudio" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-plague-tale-1.sh0000755000000000000000000001111614471751340014734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Plague Tale: Innocence # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-plague-tale-1' GAME_NAME='A Plague Tale: Innocence' ARCHIVE_BASE_0_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188).exe' ARCHIVE_BASE_0_MD5='002096bcb7eac4d9aa111b692aab6f07' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7a16ee379e97a11a56a60bb77f645c50' ARCHIVE_BASE_0_PART2_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c7f7e9b44ecd895ef80cea83aba52ae7' ARCHIVE_BASE_0_PART3_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-3.bin' ARCHIVE_BASE_0_PART3_MD5='dd99c6c9beb00ef3357622c1782d6406' ARCHIVE_BASE_0_PART4_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-4.bin' ARCHIVE_BASE_0_PART4_MD5='03b15312c67fe6e5c65b8889056632c1' ARCHIVE_BASE_0_PART5_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-5.bin' ARCHIVE_BASE_0_PART5_MD5='a8b63b353fa0b59a10895daad970058c' ARCHIVE_BASE_0_PART6_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-6.bin' ARCHIVE_BASE_0_PART6_MD5='b6f49327c40dda4d25dd78ea2ea47317' ARCHIVE_BASE_0_PART7_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-7.bin' ARCHIVE_BASE_0_PART7_MD5='d5288ea2b0992bb0f440e8a4dfbe6a0f' ARCHIVE_BASE_0_PART8_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-8.bin' ARCHIVE_BASE_0_PART8_MD5='e426750fae1e573b1acfbd5301b8a90d' ARCHIVE_BASE_0_PART9_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-9.bin' ARCHIVE_BASE_0_PART9_MD5='a0612cdb2a6d619588c8ded2622751f5' ARCHIVE_BASE_0_SIZE='44000000' ARCHIVE_BASE_0_VERSION='1.07-gog34188' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_plague_tale_innocence' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' amd_ags_x64.dll anselsdk64.dll binkw64.dll common64.dll galaxy64.dll gfsdk_aftermath_lib.x64.dll sdkencryptedappticket64.dll wwiselibpcx64r.dll zlibd.dll zlib.dll aplaguetaleinnocence_x64.exe' CONTENT_GAME_DATA_LEVELS1_FILES=' levels/battlefield levels/battlefield2 levels/cathedral levels/corrupted_domain' CONTENT_GAME_DATA_LEVELS2_FILES=' levels/domain levels/epilogue levels/farm levels/illusion' CONTENT_GAME_DATA_LEVELS3_FILES=' levels/inquisition levels/menu levels/shelter_forest levels/shelter_morning levels/shelter_safe levels/shelter_siege' CONTENT_GAME_DATA_LEVELS4_FILES=' levels/university levels/university2 levels/village levels/village2' CONTENT_GAME_DATA_FILES=' datas font input rtc shaders soundbanks trtext videos all.psc initfont.tsc langdef.tsc' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/A Plague Tale Innocence' APP_MAIN_EXE='aplaguetaleinnocence_x64.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_LEVELS1 PKG_DATA_LEVELS2 PKG_DATA_LEVELS3 PKG_DATA_LEVELS4 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_LEVELS1 PKG_DATA_LEVELS2 PKG_DATA_LEVELS3 PKG_DATA_LEVELS4' PKG_DATA_LEVELS_ID="${PKG_DATA_ID}-levels" PKG_DATA_LEVELS1_ID="${PKG_DATA_LEVELS_ID}-1" PKG_DATA_LEVELS2_ID="${PKG_DATA_LEVELS_ID}-2" PKG_DATA_LEVELS3_ID="${PKG_DATA_LEVELS_ID}-3" PKG_DATA_LEVELS4_ID="${PKG_DATA_LEVELS_ID}-4" PKG_DATA_LEVELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - levels" PKG_DATA_LEVELS1_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 1" PKG_DATA_LEVELS2_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 2" PKG_DATA_LEVELS3_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 4" PKG_DATA_LEVELS4_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 5" # 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-a-short-hike.sh0000755000000000000000000000367214471751340014463 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Short Hike # send your bug reports to contact@dotslashplay.it ### script_version=20231114.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-short-hike' GAME_NAME='A Short Hike' ARCHIVE_BASE_0_NAME='a-short-hike-linux-latest.zip' ARCHIVE_BASE_0_MD5='a56be18e6c625691edd0b85fa5999439' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.9.3-itch.2021.11.22' ARCHIVE_BASE_0_URL='https://adamgryu.itch.io/a-short-hike' UNITY3D_NAME='AShortHike' UNITY3D_PLUGINS=' UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=' UserData' 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 libxml2.so.2 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-story-about-my-uncle.sh0000755000000000000000000000645414471751340016426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Story About My Uncle # send your bug reports to contact@dotslashplay.it ### script_version=20240327.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='a-story-about-my-uncle' GAME_NAME='A Story About My Uncle' ## This DRM-free archive is no longer sold by humblebundle.com, ## they currently sell only Steam keys for this game. ARCHIVE_BASE_0_NAME='Linux-NoDRM-ASAMU_5188.zip' ARCHIVE_BASE_0_MD5='71f9f3add29a733c4a1a7d18d738d3d6' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='5188-humble170516' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_FILES=' libPhysXCooking.so libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libSDL2-2.0.so.0 libsteam_api.so PhysXUpdateLoader.so' CONTENT_LIBS_BIN64_PATH='Binaries/linux-amd64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_PATH='Binaries/linux-x86' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' Binaries/linux-amd64/ASAMU' CONTENT_GAME_BIN32_FILES=' Binaries/linux-x86/ASAMU' CONTENT_GAME_DATA_FILES=' ASAMU Engine' APP_MAIN_EXE_BIN64='Binaries/linux-amd64/ASAMU' APP_MAIN_EXE_BIN32='Binaries/linux-x86/ASAMU' USER_PERSISTENT_DIRECTORIES=' ASAMU/Cloud ASAMU/Config' USER_PERSISTENT_FILES=' ASAMU/Saves' 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 libopenal.so.1 libpthread.so.0 librt.so.1 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" # Check for the presence of optional archives ARCHIVE_OPTIONAL_ICONS_NAME='a-story-about-my-uncle_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='db4eb7ab666e61ea5fc983102099ab31' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/a-story-about-my-uncle/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 32x32' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" fi 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-a-tale-of-paper.sh0000755000000000000000000000512714471751340015037 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Tale of Paper # send your bug reports to contact@dotslashplay.it ### script_version=20241105.1 GAME_ID='a-tale-of-paper' GAME_NAME='A Tale of Paper: Refolded' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_a_tale_of_paper_1.0_(56083).exe' ARCHIVE_BASE_0_MD5='8a1acfc78e34a89ce608e275674a829a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_tale_of_paper_1.0_(56083)-1.bin' ARCHIVE_BASE_0_PART1_MD5='664731f03da4cffe8a9771d298476cb2' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog56083' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_tale_of_paper_refolded' ARCHIVE_BASE_DEMO_0_NAME='setup_a_tale_of_paper_demo_1.0_(54424).exe' ARCHIVE_BASE_DEMO_0_MD5='9c154ee673c94bc896b1b08ac7c6b13b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='930000' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog54424' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/a_tale_of_paper_demo' UNREALENGINE4_NAME='ataleofpaper' UNREALENGINE4_NAME_DEMO='prototipo' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/prototipo-win64-shipping.exe" APP_MAIN_EXE_DEMO="${UNREALENGINE4_NAME_DEMO}/binaries/win64/${UNREALENGINE4_NAME_DEMO}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' 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 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-abandon-ship.sh0000755000000000000000000000612114471751340014523 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 contact@dotslashplay.it ### script_version=20230623.2 GAME_ID='abandon-ship' GAME_NAME='Abandon Ship' ARCHIVE_BASE_0='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_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/Mono/x86_64/libmono.so ${UNITY3D_NAME}_Data/Mono/x86_64/libMonoPosixHelper.so" CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/AssetBundles" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_DOC_DATA_FILES=' Licenses' APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_ASSETS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # Load common functions target_version='2.23' 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" # Link some Unity3D plugins in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. for file_name in \ 'libAkSoundEngine.so' \ 'libAkHarmonizer.so' \ 'libSynthOne.so' \ 'ScreenSelector.so' do file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-abzu.sh0000755000000000000000000000335614471751340013130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Abzû # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='abzu' GAME_NAME='Abzû' ARCHIVE_BASE_0_NAME='setup_abzu_1.0_(19143).exe' ARCHIVE_BASE_0_MD5='959dbb83bfa8b147a9571a10256cd574' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.0-gog19143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abzu' UNREALENGINE4_NAME='abzugame' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' 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-accelerate.sh0000755000000000000000000000400714471751340014251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Accelerate # send your bug reports to contact@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='accelerate' GAME_NAME='Accelerate' ARCHIVE_BASE_0_NAME='acceleratelinux.zip' ARCHIVE_BASE_0_MD5='42d13702bbec46f8cd2c357886fde0c0' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://whitehatcat.itch.io/accelerate' CONTENT_PATH_DEFAULT='acceleratelinux' CONTENT_GAME_BIN_FILES=' acceleratelinux.x86_64' CONTENT_GAME_DATA_FILES=' acceleratelinux.pck' APP_MAIN_EXE='acceleratelinux.x86_64' 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=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-action-henk.sh0000755000000000000000000000467514471751340014374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Action Henk # send your bug reports to contact@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='action-henk' GAME_NAME='Action Henk' ## This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='actionhenk_bundle_linux.zip' ARCHIVE_BASE_0_MD5='eb0d74c8fd2832a4d39de9d52af514f3' ARCHIVE_BASE_0_SIZE='2325670' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='ActionHenk' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' 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 # 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-aer-memories-of-old.sh0000755000000000000000000000662614471751340015735 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # AER: Memories of Old # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='aer-memories-of-old' GAME_NAME='AER: Memories of Old' ARCHIVE_BASE_1_NAME='aer_memories_of_old_1_0_4_2_34743.sh' ARCHIVE_BASE_1_MD5='275fbe912805fde9ed3d6d2a25d61b7b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.0.4.2-gog34743' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aer' ARCHIVE_BASE_0_NAME='aer_memories_of_old_en_v1_0_4_1_19457.sh' ARCHIVE_BASE_0_MD5='ca59918433567c974b4985767c4af576' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog19475' UNITY3D_NAME='AER' 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_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 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the game to run in windowed mode. case "$(current_archive)" in ('ARCHIVE_BASE_0') unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AERMemoriesofOld/prefs' ;; (*) unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AER_ Memories of Old/prefs' ;; esac APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Force the game to run in windowed mode config_file="'"$unity3d_prefs_path"'" if [ ! -f "$config_file" ] ; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF else sed_pattern='\''.'\'' sed_replacement='\''0'\'' sed --in-place \ "s#${sed_pattern}#${sed_replacement}#" \ "$config_file" fi ' launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-affinity.sh0000755000000000000000000000406614471751340013777 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Affinity # send your bug reports to contact@dotslashplay.it ### script_version=20221204.2 GAME_ID='affinity' GAME_NAME='Affinity' UNITY3D_NAME='Affinity' ARCHIVE_BASE_0='Affinity.zip' ARCHIVE_BASE_0_MD5='af34703d92f8a7b36d276a2ebad8c17b' ARCHIVE_BASE_0_SIZE='5700000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://boldbrushgames.itch.io/affinity' CONTENT_PATH_DEFAULT='Affinity' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge UnityCrashHandler64.exe UnityPlayer.dll ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="${UNITY3D_NAME}.exe" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/saves" PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.18' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-afterdream.sh0000755000000000000000000000321614471751340014274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Afterdream # send your bug reports to contact@dotslashplay.it ### script_version=20240111.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='afterdream' GAME_NAME='Afterdream' ARCHIVE_BASE_0_NAME='setup_afterdream_v0.1_(67625).exe' ARCHIVE_BASE_0_MD5='22736bca94a5b4da06fcdd85f490dc6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='405972' ARCHIVE_BASE_0_VERSION='0.1-gog67625' ARCHIVE_BASE_0_URL='https://www.gog.com/game/afterdream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' afterdream_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/afterdream' APP_MAIN_EXE='afterdream_gog.exe' PKG_MAIN_ARCH='32' # 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 # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-afterlife.sh0000755000000000000000000000644714471751340014134 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 ### # Afterlife # send your bug reports to contact@dotslashplay.it ### script_version=20241023.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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="${CONTENT_PATH_DEFAULT}/../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" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-age-of-wonders-1.sh0000755000000000000000000000457514471751340015146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Age of Wonders 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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='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=' *.wav *.dpl int dict edimages images release scenario sfx songs tcmaps' CONTENT_DOC_DATA_FILES=' readme.txt quickstart.pdf' USER_PERSISTENT_DIRECTORIES=' emailin emailout save user' ## "icodecs" winetricks verb is required for correct intro movie playback. 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_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-age-of-wonders-planetfall.sh0000755000000000000000000000670014471751340017120 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 contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='age-of-wonders-planetfall' GAME_NAME='Age of Wonders: Planetfall' ARCHIVE_BASE_0='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='setup_age_of_wonders_planetfall_1.4.0.4c_(64bit)_(47648)-1.bin' ARCHIVE_BASE_0_PART1_MD5='cca141657c572c23851bf614988106c8' ARCHIVE_BASE_0_PART2='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 *.dll *.exe' 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' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' 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" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_LIBRARIES_1_ID $PKG_DATA_LIBRARIES_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'Launcher' \ 'launcher-installer-windows.msi' \ 'launcher-settings.json' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ai-war-2.sh0000755000000000000000000000436014471751340013502 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 contact@dotslashplay.it ### script_version=20240806.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='ai-war-2' GAME_NAME='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_1_URL='https://www.gog.com/game/ai_war_2' 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 XMLMods' USER_PERSISTENT_DIRECTORIES=' PlayerData' 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" # 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-airline-tycoon-deluxe.sh0000755000000000000000000000451314471751340016403 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 contact@dotslashplay.it ### script_version=20240603.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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_PATH="${CONTENT_PATH_DEFAULT}/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_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## 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' # 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-akalabeth.sh0000755000000000000000000000363214471751340014100 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Akalabeth # send your bug reports to contact@dotslashplay.it ### script_version=20230626.1 GAME_ID='akalabeth' GAME_NAME='Akalabeth: World of Doom' ARCHIVE_BASE_0='gog_akalabeth_world_of_doom_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='11a770db592af2ac463e6cdc453b555b' ARCHIVE_BASE_0_SIZE='13000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/akalabeth_world_of_doom' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='aklabeth.exe' APP_MAIN_ICON='../support/icon.png' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase. tolower . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-alan-wakes-american-nightmare.sh0000755000000000000000000000437214471751340017742 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Alan Wake's American Nightmare # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='alan-wakes-american-nightmare' GAME_NAME='Alan Wake’s American Nightmare' ARCHIVE_BASE_0_NAME='setup_alan_wake_american_nightmare_2.1.0.24.exe' ARCHIVE_BASE_0_MD5='dc500730b639a48897c00f5791e5b2f3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.24' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alan_wakes_american_nightmare' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' data shaders' ## Grant required write access to some paths to the user. ## TODO: The ./play.it library should provide a way to give write access to a volatile path, ## without automatically moving this path to persistent storage. USER_PERSISTENT_DIRECTORIES=' shaders' ## Apply d3dcompiler_43 winetricks verb. ## TODO: Check if it is still required with current WINE builds. WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='alan_wakes_american_nightmare.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" # 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-alba-a-wildlife-adventure.sh0000755000000000000000000000343014471751340017065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Alba: A Wildlife Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='alba-a-wildlife-adventure' GAME_NAME='Alba: A Wildlife Adventure' ARCHIVE_BASE_0_NAME='setup_alba_a_wildlife_adventure_0.90_(43308).exe' ARCHIVE_BASE_0_MD5='709ac0ea04e7e1f6427b9b8eff0a9e30' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='0.90-gog43308' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alba_a_wildlife_adventure' UNITY3D_NAME='alba' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/ustwo games/Alba' 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" # 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-amnesia-1-the-dark-descent.sh0000755000000000000000000000724114471751340017057 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Amnesia: The Dark Descent # send your bug reports to contact@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='amnesia-1-the-dark-descent' GAME_NAME='Amnesia: The Dark Descent' ARCHIVE_BASE_0_NAME='amnesia_the_dark_descent_1_41_a_40599.sh' ARCHIVE_BASE_0_MD5='6ef56415f02d611f83f12a064f144379' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.41a-gog40599' ARCHIVE_BASE_0_URL='https://www.gog.com/game/amnesia_the_dark_descent' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if the Steam library can be dropped. ## TODO: Check if some shipped libraries can be replaced with system ones. CONTENT_LIBS_BIN_FILES=' libIL.so.1 libSDL2-2.0.so.0 libsteam_api.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' Amnesia.bin.x86_64 Launcher.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Amnesia.bin.x86 Launcher.bin.x86' CONTENT_GAME_DATA_FILES=' billboards commentary config core custom_stories data entities flashbacks fonts graphics gui lang launcher lights main_menu maps misc models music particles shaders sounds static_objects textures materials.cfg ptest_materials.cfg resources.cfg super_secret.rar' CONTENT_DOC_DATA_FILES=' Manual_en.pdf Remember - Short Story Collection.pdf EULA_en.rtf 1.3_ChangeLog.txt' APP_MAIN_EXE_BIN32='Amnesia.bin.x86' APP_MAIN_EXE_BIN64='Amnesia.bin.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} amnesia-1-data" PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfontconfig.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libXext.so.6 libXft.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_BIN64_PROVIDES="${PKG_BIN64_PROVIDES:-} amnesia-1" PKG_BIN32_PROVIDES="${PKG_BIN32_PROVIDES:-} amnesia-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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-among-the-sleep.sh0000755000000000000000000000557514471751340015161 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Among the Sleep # send your bug reports to contact@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='among-the-sleep' GAME_NAME='Among the Sleep' ARCHIVE_BASE_GOG_0_NAME='among_the_sleep_en_3_0_1_16406.sh' ARCHIVE_BASE_GOG_0_MD5='de6e5fc26d7d5954782a6e98966f34cf' ARCHIVE_BASE_GOG_0_SIZE='3800000' ARCHIVE_BASE_GOG_0_VERSION='3.0.1-gog16406' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/among_the_sleep' ARCHIVE_BASE_HUMBLE_0_NAME='Among_the_Sleep_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='0d7296eb48bfebeb9a37827ee94bd34c' ARCHIVE_BASE_HUMBLE_0_SIZE='2900000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/among-the-sleep' UNITY3D_NAME_GOG='Among The Sleep' UNITY3D_NAME_HUMBLE='Among the Sleep' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' 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-anarcute.sh0000755000000000000000000000375714471751340013776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Anarcute # send your bug reports to contact@dotslashplay.it ### script_version=20240508.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='anarcute' GAME_NAME='Anarcute' ARCHIVE_BASE_32BIT_0_NAME='anarcute-windows-32.zip' ARCHIVE_BASE_32BIT_0_MD5='837ee19a38698bc71b1b78e5c05f9644' ARCHIVE_BASE_32BIT_0_SIZE='1400000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_32BIT_0_URL='https://plug-in-digital.itch.io/anarcute' ARCHIVE_BASE_64BIT_0_NAME='anarcute-windows-64.zip' ARCHIVE_BASE_64BIT_0_MD5='f6af6f32f587cd195581358c1ed5f0c7' ARCHIVE_BASE_64BIT_0_SIZE='1400000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_64BIT_0_URL='https://plug-in-digital.itch.io/anarcute' UNITY3D_NAME='anarcute' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Anarcute' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='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-anima-gate-of-memories.sh0000755000000000000000000000571614471751340016414 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Anima: Gate of Memories # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='anima-gate-of-memories' GAME_NAME='Anima: Gate of Memories' ARCHIVE_BASE_1='gog_anima_gate_of_memories_2.0.0.2.sh' ARCHIVE_BASE_1_MD5='97335d9741d3ae17c5d9e58a22165043' ARCHIVE_BASE_1_SIZE='8900000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_1_URL='https://www.gog.com/game/anima_gate_of_memories' ARCHIVE_BASE_0='gog_anima_gate_of_memories_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='681d05255e1a162947af69d3e7537748' ARCHIVE_BASE_0_SIZE='8900000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' UNITY3D_NAME='GoMLinux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_ASSETS PKG_DATA' PKG_ASSETS_ID="${GAME_ID}-assets" PKG_ASSETS_DESCRIPTION='assets' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_ASSETS_ID $PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anno-1404.sh0000755000000000000000000001707614471751340013514 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 contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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_EN_0_URL='https://www.gog.com/game/anno_1404_gold_edition' 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' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/anno_1404_gold_edition' ## 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' CONTENT_GAME_L10N_EN_FILES=' maindata/eng0.rda' CONTENT_GAME_L10N_FR_FILES=' maindata/fra0.rda' CONTENT_GAME_DATA_FILES=' data maindata resources' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/add" CONTENT_GAME0_DATA_PATH_MULTILANG="${CONTENT_PATH_DEFAULT_MULTILANG}/__support/add" CONTENT_GAME0_DATA_FILES=' engine.ini' CONTENT_DOC_DATA_FILES=' manual.pdf' ## Venice expansion CONTENT_GAME_BIN_VENICE_FILES=' addon.exe' 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}/Documents/Anno 1404' 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_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_EN PKG_L10N_FR PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_EN_DESCRIPTION="${PKG_L10N_DESCRIPTION} - English" PKG_L10N_FR_DESCRIPTION="${PKG_L10N_DESCRIPTION} - French" PKG_BIN_ID="$GAME_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" ## Venice expansion 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_EN_VENICE PKG_L10N_FR_VENICE PKG_DATA_VENICE" PKG_DATA_VENICE_ID="${GAME_ID_VENICE}-data" PKG_DATA_VENICE_DESCRIPTION="$GAME_NAME_VENICE - data" PKG_L10N_VENICE_ID="${GAME_ID_VENICE}-l10n" PKG_L10N_EN_VENICE_ID="${PKG_L10N_VENICE_ID}-en" PKG_L10N_FR_VENICE_ID="${PKG_L10N_VENICE_ID}-fr" PKG_L10N_VENICE_PROVIDES=" $PKG_L10N_VENICE_ID" 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_EN_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - English" PKG_L10N_FR_VENICE_DESCRIPTION="$PKG_L10N_VENICE_DESCRIPTION - French" PKG_BIN_VENICE_ID="$GAME_ID_VENICE" PKG_BIN_VENICE_ARCH='32' PKG_BIN_VENICE_DESCRIPTION="$GAME_NAME_VENICE" PKG_BIN_VENICE_DEPS="$PKG_BIN_ID $PKG_DATA_VENICE_ID $PKG_L10N_VENICE_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Work around immediate crash on launch. config_file='engine.ini' if [ -e "$config_file" ]; then sed_pattern='2i9' sed --in-place "$sed_pattern" "$config_file" else cat > "$config_file" <<- 'EOF' 9 EOF fi ) # Include game data set_current_package 'PKG_DATA' icons_inclusion 'APP_MAIN' set_current_package 'PKG_DATA_VENICE' icons_inclusion 'APP_VENICE' content_inclusion_default # Write launchers set_current_package 'PKG_BIN' launchers_write 'APP_MAIN' set_current_package 'PKG_BIN_VENICE' launchers_write 'APP_VENICE' # Build packages packages_generation case "$(current_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) case "${LANG%_*}" 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_L10N_EN' 'PKG_DATA' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' ;; ('ARCHIVE_BASE_FR_'*) print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' ;; ('ARCHIVE_BASE_EN_'*|*) print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' ;; esac GAME_NAME="$GAME_NAME_VENICE" case "$(current_archive)" in ('ARCHIVE_BASE_MULTILANG_'*) case "${LANG%_*}" 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_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' ;; ('ARCHIVE_BASE_FR_'*) print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_FR_VENICE' 'PKG_DATA_VENICE' ;; ('ARCHIVE_BASE_EN_'*|*) print_instructions 'PKG_BIN_VENICE' 'PKG_L10N_EN_VENICE' 'PKG_DATA_VENICE' ;; esac # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anno-1503.sh0000755000000000000000000000602314471751340013502 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Anno 1503 # send your bug reports to contact@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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' ## Prevent a failure to render the intro videos, and display problems on some resolutions. WINE_VIRTUAL_DESKTOP='auto' ## Work around missing background music. ## cf. https://bugs.winehq.org/show_bug.cgi?id=16096 WINE_WINETRICKS_VERBS='directmusic' APP_MAIN_EXE='1503startup.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_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-anodyne.sh0000755000000000000000000000432214471751340013616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Anodyne # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='anodyne' GAME_NAME='Anodyne' ARCHIVE_BASE_0_NAME='1_6winanodyne.zip' ARCHIVE_BASE_0_MD5='5e7be131731a8073f3dbf4489d7e414a' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.60-itch1' ARCHIVE_BASE_0_URL='https://han-tani.itch.io/anodyne' CONTENT_PATH_DEFAULT='windows' CONTENT_DOC_DATA_FILES=' README.txt' CONTENT_GAME_BIN_FILES=' Adobe AIR *.dll *.exe' CONTENT_GAME_DATA_FILES=' icons js META-INF mimetype *.der *.dylib *.html *.png *.ssp4 *.swf *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/.Anodyne' APP_MAIN_EXE='Anodyne.exe' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_29 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_57 APP_MAIN_ICON_128 APP_MAIN_ICON_512' APP_MAIN_ICON_29='icons/IntraAIR29.png' APP_MAIN_ICON_32='icons/IntraAIR32.png' APP_MAIN_ICON_48='icons/IntraAIR48.png' APP_MAIN_ICON_57='icons/IntraAIR57.png' APP_MAIN_ICON_512='icons/IntraAIR512.png' APP_MAIN_ICON_128='icons/IntraAIR128.png' 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" # 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-anomaly-2.sh0000755000000000000000000001146314471751340013764 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 contact@dotslashplay.it ### script_version=20241202.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Application Data/11bitstudios/Anomaly 2' APP_MAIN_EXE_LINUX='Anomaly2' APP_MAIN_EXE_WINDOWS='Anomaly 2.exe' ## Share saved games and config between Linux and Windows engines APP_MAIN_PRERUN_LINUX=' # Share saved games and config between Linux and Windows engines NEW_LAUNCH_REQUIRED=0 WINE_PERSISTENT_PATH="${PATH_PERSISTENT}/wineprefix/users/${USER}/Application Data/11bitstudios/Anomaly 2" if [ -e "${HOME}/.Anomaly 2" ] && [ ! -h "${HOME}/.Anomaly 2" ]; then for file in \ config.bin \ DefaultUser \ iPhoneProfiles do if [ -e "${HOME}/.Anomaly 2/${file}" ]; then mkdir --parents "$WINE_PERSISTENT_PATH" cp --recursive "${HOME}/.Anomaly 2/${file}" "$WINE_PERSISTENT_PATH" fi done mv "${HOME}/.Anomaly 2" "${HOME}/.Anomaly 2.old" NEW_LAUNCH_REQUIRED=1 fi if [ ! -e "${HOME}/.Anomaly 2" ]; then rm --force "${HOME}/.Anomaly 2" mkdir --parents "$WINE_PERSISTENT_PATH" ln --symbolic "$WINE_PERSISTENT_PATH" "${HOME}/.Anomaly 2" fi if [ "$NEW_LAUNCH_REQUIRED" -eq 1 ]; then "$0" exit 0 fi ' 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' # LD_PRELOAD shim working around infinite loading times PRELOAD_HACKS_LIST_LINUX=' HACK_TIMERFIX' HACK_TIMERFIX_NAME='timerfix' HACK_TIMERFIX_DESCRIPTION='LD_PRELOAD shim working around infinite loading times' HACK_TIMERFIX_PACKAGE='PKG_BIN' HACK_TIMERFIX_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"); } ' # 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 "$@" # Build and include the LD_PRELOAD shims hacks_inclusion_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-anomaly-defenders.sh0000755000000000000000000000622714471751340015564 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 contact@dotslashplay.it ### script_version=20240502.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='anomaly-defenders' GAME_NAME='Anomaly Defenders' ARCHIVE_BASE_ZIP_0_NAME='AnomalyDefenders_Linux_1402514865.zip' ARCHIVE_BASE_ZIP_0_MD5='430367c8228077e4c8af2f5e7f164f4e' ARCHIVE_BASE_ZIP_0_SIZE='640000' ARCHIVE_BASE_ZIP_0_VERSION='1.0-humble' ARCHIVE_BASE_ZIP_0_URL='https://www.humblebundle.com/store/anomaly-defenders' ARCHIVE_BASE_TARGZ_0_NAME='AnomalyDefenders_Linux_1402512837.tar.gz' ARCHIVE_BASE_TARGZ_0_MD5='35ccd57e8650dd53a09b1f1e088307cc' ARCHIVE_BASE_TARGZ_0_SIZE='640000' ARCHIVE_BASE_TARGZ_0_VERSION='1.0-humble' ARCHIVE_BASE_TARGZ_0_URL='https://www.humblebundle.com/store/anomaly-defenders' CONTENT_PATH_DEFAULT='AnomalyDefenders' CONTENT_LIBS_BIN_FILES=' libOpenAL.so' CONTENT_GAME_BIN_FILES=' AnomalyDefenders' CONTENT_GAME_DATA_FILES=' icon.png *.dat *.idx' CONTENT_DOC_DATA_FILES=' README Copyright license*' APP_MAIN_EXE='AnomalyDefenders' APP_MAIN_ICON='icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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' # LD_PRELOAD shim working around infinite loading times PRELOAD_HACKS_LIST=' HACK_TIMERFIX' HACK_TIMERFIX_NAME='timerfix' HACK_TIMERFIX_DESCRIPTION='LD_PRELOAD shim working around infinite loading times' HACK_TIMERFIX_PACKAGE='PKG_BIN' HACK_TIMERFIX_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"); } ' # 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" # Build and include the LD_PRELOAD shims hacks_inclusion_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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anomaly-warzone-earth.sh0000755000000000000000000000737114471751340016414 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 contact@dotslashplay.it ### script_version=20240503.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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*' APP_MAIN_EXE='AnomalyWarzoneEarth' APP_MAIN_ICON='icon.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" 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' PRELOAD_HACKS_LIST=' HACK_LOADING_TIME' # LD_PRELOAD shim working around the infinite loading times HACK_LOADING_TIME_NAME='finite-loading-time' HACK_LOADING_TIME_DESCRIPTION='LD_PRELOAD shim working around the infinite loading times' HACK_LOADING_TIME_PACKAGE='PKG_BIN' HACK_LOADING_TIME_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"); } ' # 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" # Build and include the LD_PRELOAD shims hacks_inclusion_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 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ape-out.sh0000755000000000000000000000324114471751340013532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ape Out # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ape-out' GAME_NAME='Ape Out' ARCHIVE_BASE_0_NAME='windows.zip' ARCHIVE_BASE_0_MD5='cccf8136c915b46691edd440e7c7f269' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/ape-out' UNITY3D_NAME='ApeOut' CONTENT_PATH_DEFAULT='windows' ## FIXME: Use persistent storage for game progress and settings. 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-apocalipsis.sh0000755000000000000000000000341314471751340014470 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Apocalipsis # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='apocalipsis' GAME_NAME='Apocalipsis' ARCHIVE_BASE_0_NAME='setup_apocalipsis_wormwood_edition_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='546af1780657e64f0d2463b2fb5617dd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/apocalipsis_wormwood_edition' UNITY3D_NAME='apocalipsis' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Apocalipsis' 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-aquamarine.sh0000755000000000000000000000621514471751340014307 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 contact@dotslashplay.it ### script_version=20241111.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam library is required 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 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-aquaria.sh0000755000000000000000000000435614471751340013613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aquaria # send your bug reports to contact@dotslashplay.it ### script_version=20240603.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='aquaria' GAME_NAME='Aquaria' ARCHIVE_BASE_1_NAME='gog_aquaria_2.0.0.5.sh' ARCHIVE_BASE_1_MD5='4235398debdf268f233881fade9e0530' ARCHIVE_BASE_1_SIZE='240000' ARCHIVE_BASE_1_VERSION='1.1.3-gog2.0.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aquaria' ARCHIVE_BASE_0_NAME='gog_aquaria_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='1810de0d68028c6ec01d33181086180d' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='1.1.3-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' config aquaria *.xml' CONTENT_GAME_DATA_FILES=' _mods data gfx mus scripts sfx vox aquaria.png' CONTENT_DOC_DATA_FILES=' docs *.txt' ## TODO: Check that these path must be writable. USER_PERSISTENT_DIRECTORIES=' config' USER_PERSISTENT_FILES=' *.xml' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Aquaria' APP_MAIN_EXE='aquaria' APP_MAIN_ICON='aquaria.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libSDL-1.2.so.0 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" # 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-aragami.sh0000755000000000000000000000655014471751340013567 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Aragami # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='aragami' GAME_NAME='Aragami' # Archives ## Base game ARCHIVE_BASE_GOG_1_NAME='aragami_en_01_09_20943.sh' ARCHIVE_BASE_GOG_1_MD5='46c8315350a4036dcc09b6c3946ddc02' ARCHIVE_BASE_GOG_1_SIZE='6800000' ARCHIVE_BASE_GOG_1_VERSION='01.09-gog20943' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/aragami' ARCHIVE_BASE_GOG_0_NAME='gog_aragami_2.9.0.12.sh' ARCHIVE_BASE_GOG_0_MD5='42d0952de9b0373786f2902aa596b4ff' ARCHIVE_BASE_GOG_0_SIZE='6800000' ARCHIVE_BASE_GOG_0_VERSION='01.08-gog2.9.0.12' ## This installer used to be sold at humblebundle.com, but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0_NAME='aragami_01_08_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='4be0b7f674eec62184df216fcaba77b5' ARCHIVE_BASE_HUMBLE_0_SIZE='6800000' ARCHIVE_BASE_HUMBLE_0_VERSION='01.08-humble170503' ## Nightfall expansion ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_NIGHTFALL_0_NAME='aragami_nightfall_dlc_en_gog_1_21278.sh' ARCHIVE_OPTIONAL_NIGHTFALL_0_MD5='40920a28f030147a524e5ac89e2cf14b' ARCHIVE_OPTIONAL_NIGHTFALL_0_SIZE='7400000' ARCHIVE_OPTIONAL_NIGHTFALL_0_URL='https://www.gog.com/game/aragami_nightfall' UNITY3D_NAME='Aragami' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' # 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" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_NIGHTFALL' \ 'ARCHIVE_OPTIONAL_NIGHTFALL_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_NIGHTFALL' ; then archive_extraction 'ARCHIVE_NIGHTFALL' fi # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-arcanum.sh0000755000000000000000000000722614471751340013615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Arcanum: Of Steamworks and Magick Obscura # send your bug reports to contact@dotslashplay.it ### script_version=20250113.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='arcanum' GAME_NAME='Arcanum: Of Steamworks and Magick Obscura' ARCHIVE_BASE_3_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_ddrawfix_(77721).exe' ARCHIVE_BASE_3_MD5='7a00ac83478518ae287e4f532f5c84ab' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='1177294' ARCHIVE_BASE_3_VERSION='1.0.7.4-gog77721' ARCHIVE_BASE_3_URL='https://www.gog.com/game/arcanum_of_steamworks_and_magick_obscura' ARCHIVE_BASE_2_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_hotfix_(24155).exe' ARCHIVE_BASE_2_MD5='6d14d07f7cc8c9823cba5322cf2336f4' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='1.0.7.4-gog24155' ARCHIVE_BASE_1_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_(19476).exe' ARCHIVE_BASE_1_MD5='298a3315baebf40f3cc6cee4acae9947' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.0.7.4-gog19476' ARCHIVE_BASE_0_NAME='setup_arcanum_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='c09523c61edd18abb97da97463e07a88' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.7.4-gog2.0.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' sierraup.cfg binkw32.dll ddraw.dll mm_won.dll mss32.dll sierrapt.dll arcanum.exe msiexec.exe removeprotos.exe sierra.inf *.asi' CONTENT_GAME_DATA_FILES=' data modules *.dat' CONTENT_DOC_DATA_FILES=' documents eula.doc customer_support.htm manual.pdf eula.txt readme.txt version.txt' CONTENT_DOC0_DATA_PATH='__support/app' CONTENT_DOC0_DATA_FILES=' eula.*' USER_PERSISTENT_DIRECTORIES=' data modules/arcanum/maps modules/arcanum/saves' USER_PERSISTENT_FILES=' *.cfg' ## TODO: Check if this is still required with current WINE WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='arcanum.exe' ## Disable 3D acceleration ## cf. https://bugs.winehq.org/show_bug.cgi?id=23676 - Arcanum essentially unusable due to graphics errors ## TODO: Check if this is still required with current WINE APP_MAIN_OPTIONS='-no3d' 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' # In some archives, the game binary is compressed using UPX REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} upx" # 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)" ## Decompress UPX-packed game binary binary_file=$(application_exe 'APP_MAIN') if upx -t -qqq "$binary_file"; then upx -d -qqq "$binary_file" fi ) # 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-armikrog.sh0000755000000000000000000000753214471751340014002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Armikrog # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='armikrog' GAME_NAME='Armikrog' ARCHIVE_BASE_LINUX_0_NAME='gog_armikrog_2.5.0.6.sh' ARCHIVE_BASE_LINUX_0_MD5='4ca9ac6d05ac66c18229e41da6fd89dd' ARCHIVE_BASE_LINUX_0_SIZE='2900000' ARCHIVE_BASE_LINUX_0_VERSION='2016.01.11-gog2.5.0.6' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/armikrog' ## Support for the Windows build is provided to work around a double cursor display bug on the Linux build. ## cf. https://forge.dotslashplay.it/play.it/games/-/issues/778 ARCHIVE_BASE_WINDOWS_0_NAME='setup_armikrog_1.05_(20650).exe' ARCHIVE_BASE_WINDOWS_0_MD5='9b18bfd56117bcdbd95434203303b941' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2900000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.05-gog20650' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/armikrog' UNITY3D_NAME_LINUX='Armikrog' UNITY3D_NAME_WINDOWS='armikrog' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PencilTestStudios/Armikrog' # Packages PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" ## Linux build PACKAGES_LIST_LINUX=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_BIN64_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN32_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN64_ARCH_LINUX='64' PKG_BIN32_ARCH_LINUX='32' PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN64_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN32_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' 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_BIN64_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" ## Windows build PACKAGES_LIST_WINDOWS=' PKG_BIN PKG_DATA' PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # 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 case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_WINDOWS_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-as-far-as-the-eye.sh0000755000000000000000000000366214471751340015277 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 contact@dotslashplay.it ### script_version=20231112.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ascendant.sh0000755000000000000000000000566014471751340014127 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Ascendant # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='ascendant' GAME_NAME='Ascendant' ARCHIVE_BASE_0_NAME='gog_ascendant_2.2.0.7.sh' ARCHIVE_BASE_0_MD5='8cdcd59a2f8363b7237e9cbe2675adda' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.2.2-gog2.2.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ascendant' UNITY3D_NAME='Ascendant' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_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 ( cd "$PLAYIT_WORKDIR/gamedata/$(content_path_default)" # Work around the massive files duplication between the 32-bit and 64-bit builds ## Merge assets directories for the 32-bit and 64-bit builds UNITY3D_NAME_64BIT='Ascendant_64' cp --force --recursive --link "${UNITY3D_NAME_64BIT}_Data"/* "$(unity3d_name)_Data" rm --force --recursive "${UNITY3D_NAME_64BIT}_Data" ## Rename the 64-bit binary mv "${UNITY3D_NAME_64BIT}.x86_64" "$(unity3d_name).x86_64" ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ash-of-gods.sh0000755000000000000000000000474214471751340014276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Ash of Gods: Redemption # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam libraries are required 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_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-assassins-creed-1.sh0000755000000000000000000001225414471751340015411 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Assassin's Creed # send your bug reports to contact@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='assassins-creed-1' GAME_NAME='Assassinʼs Creed' ARCHIVE_BASE_EN_0_NAME='setup_assassins_creed_1.02_v2_(28524).exe' ARCHIVE_BASE_EN_0_MD5='b14aa9508ce9653597558a6d834e2766' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_assassins_creed_1.02_v2_(28524)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_EN_0_PART2_NAME='setup_assassins_creed_1.02_v2_(28524)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='150870977feb60c9f344e35d220e1198' ARCHIVE_BASE_EN_0_SIZE='7200000' ARCHIVE_BASE_EN_0_VERSION='1.02-gog28524' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' ARCHIVE_BASE_FR_0_NAME='setup_assassins_creed_1.02_v2_(french)_(28524).exe' ARCHIVE_BASE_FR_0_MD5='eb346d8ec12bb055f941446d24207dbd' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_FR_0_PART2_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='2e31309a834daa7c7640a4848e701574' ARCHIVE_BASE_FR_0_SIZE='7200000' ARCHIVE_BASE_FR_0_VERSION='1.02-gog28524' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' assassinscreed_dx10.exe assassinscreed_dx9.exe assassinscreed_game.exe binkw32.dll eax.dll' CONTENT_GAME_L10N_FILES=' datapc_streamedsounds???.forge' CONTENT_GAME_DATA_FILES=' *.forge defaultbindings.map resources videos' CONTENT_DOC_L10N_FILES_EN=' manual eula/english* readme/english*' CONTENT_DOC_L10N_FILES_FR=' manual eula/french* readme/french*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Ubisoft/Assassin's Creed" APP_MAIN_EXE='assassinscreed_dx9.exe' APP_MAIN_ICON='assassinscreed_game.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' # Ensure ability fo fully control the camera with the mouse # cf. https://appdb.winehq.org/objectManager.php?sClass=version&iId=28057#notes registry_dump_mouse_grab_file='registry-dumps/mouse-grab.reg' registry_dump_mouse_grab_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_mouse_grab_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_mouse_grab_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Set game text language registry_dump_language_file='registry-dumps/mouse-grab.reg' registry_dump_language_content_EN='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="English"' registry_dump_language_content_FR='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="French"' CONTENT_L10N_DATA_FILES="${CONTENT_L10N_DATA_FILES:-} $registry_dump_language_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_language_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # 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 ability fo fully control the camera with the mouse mkdir --parents "$(dirname "$registry_dump_mouse_grab_file")" printf '%s' "$registry_dump_mouse_grab_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_mouse_grab_file" # Set game text language registry_dump_language_content=$(context_value 'registry_dump_language_content') mkdir --parents "$(dirname "$registry_dump_language_file")" printf '%s' "$registry_dump_language_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_language_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-assault-android-cactus.sh0000755000000000000000000000550514471751340016537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Assault Android Cactus # send your bug reports to contact@dotslashplay.it ### script_version=20230627.1 GAME_ID='assault-android-cactus' GAME_NAME='Assault Android Cactus' ## This archive is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_1='AssaultAndroidCactus_linux_20200121.zip' ARCHIVE_BASE_1_MD5='015e7a107514339abfbd05d831bc9e91' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='2020.01.21-playism' ARCHIVE_BASE_0='AssaultAndroidCactus_linux_Ver1.0_0401.zip' ARCHIVE_BASE_0_MD5='7a6e18fd525c46603cdd3f19f945d44b' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.0401-playism' UNITY3D_NAME='cactus' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-asura.sh0000755000000000000000000000571314471751340013301 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Asura # send your bug reports to contact@dotslashplay.it ### script_version=20230222.3 GAME_ID='asura' GAME_NAME='Asura' ARCHIVE_BASE_0='asura_en_29046_16209.sh' ARCHIVE_BASE_0_MD5='cbfe1067fdf0cfe3e8361d08df55787c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='29046-gog16209' ARCHIVE_BASE_0_URL='https://www.gog.com/game/asura' UNITY3D_NAME='AsuraVengeance' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=" ScreenSelector.so" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=" ScreenSelector.so" CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-atlantis-1.sh0000755000000000000000000000706614471751340014146 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Atlantis 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='atlantis-1' GAME_NAME='Atlantis: The Lost Tales' ARCHIVE_BASE_EN_0_NAME='setup_atlantis_the_lost_tales_2.0.0.15.exe' ARCHIVE_BASE_EN_0_MD5='287170bea9041b4e29888d97f87eb9fc' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='1900000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' ARCHIVE_BASE_FR_0_NAME='setup_atlantis_the_lost_tales_french_2.1.0.15.exe' ARCHIVE_BASE_FR_0_MD5='0cb6b037a457d35dacd23e1f22aea57b' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_SIZE='1900000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog2.1.0.15' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/atlantis_the_lost_tales' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_L10N_FILES=' images/end.tga scenar sprlist wav' CONTENT_GAME_DATA_FILES=' *.big cyclo dialog images puzzles sprite ubb_vue wam' CONTENT_DOC_DATA_FILES=' *.pdf' APP_MAIN_EXE='atlantis.exe' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_EN="${PKG_BIN_ID}-en" PKG_BIN_ID_FR="${PKG_BIN_ID}-fr" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_DESCRIPTION_EN='English version' PKG_BIN_DESCRIPTION_FR='French version' PKG_BIN_DEPS="$PKG_L10N_ID $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" # Set game directory in the registry # shellcheck disable=SC1003 game_directory='C:\\'"$(game_id)"'\\' registry_dump_game_directory_file='registry-dumps/game-directory.reg' registry_dump_game_directory_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\CRYO\Atlantis\GameDirectory] @="'"${game_directory}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_game_directory_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_game_directory_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set game directory in the registry mkdir --parents "$(dirname "$registry_dump_game_directory_file")" printf '%s' "$registry_dump_game_directory_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_game_directory_file" ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-atone-heart-of-the-elder-tree.sh0000755000000000000000000000362214471751340017600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Atone: Heart of the Elder Tree # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='atone-heart-of-the-elder-tree' GAME_NAME='Atone: Heart of the Elder Tree' ARCHIVE_BASE_0_NAME='setup_atone_heart_of_the_elder_tree_1.0_(61735).exe' ARCHIVE_BASE_0_MD5='34a404cf77b1d07ff9a693543ca1f54e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gog61735' ARCHIVE_BASE_0_URL='https://www.gog.com/game/atone_heart_of_the_elder_tree' UNITY3D_NAME='atone' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN 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' # 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-aven-colony.sh0000755000000000000000000000576414471751340014426 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 contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='aven-colony' GAME_NAME='Aven Colony' ARCHIVE_BASE_0='setup_aven_colony_1.0.1_(64bit)_(25959).exe' ARCHIVE_BASE_0_MD5='959a44c1bb18e8c3342b10d396ae8a53' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_aven_colony_1.0.1_(64bit)_(25959)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f24fb8c38d99916a623c46aafc4eeeb' ARCHIVE_BASE_0_PART2='setup_aven_colony_1.0.1_(64bit)_(25959)-2.bin' ARCHIVE_BASE_0_PART2_MD5='db96cef3e5ce8e2f160b703d6d81777b' ARCHIVE_BASE_0_PART3='setup_aven_colony_1.0.1_(64bit)_(25959)-3.bin' ARCHIVE_BASE_0_PART3_MD5='0ab31c5b95332e6ab160f55c5fbe0db3' ARCHIVE_BASE_0_PART4='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' 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" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TILESETS_1_ID $PKG_DATA_TILESETS_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aztez.sh0000755000000000000000000000403414471751340013316 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Aztez # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='aztez' GAME_NAME='Aztez' ARCHIVE_BASE_0_NAME='aztez_linux_8278.zip' ARCHIVE_BASE_0_MD5='a55092525d52960ad36932918dcadc5b' ARCHIVE_BASE_0_SIZE='705163' ARCHIVE_BASE_0_VERSION='1.02.8278-humble.2017.09.04' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/aztez' UNITY3D_NAME='Aztez' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' 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 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop unused x86_64 libraries rm --recursive "$(unity3d_name)_Data/Mono/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-backbone.sh0000755000000000000000000000337714471751340013736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Backbone # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='backbone' GAME_NAME='Backbone' ## This archive used to be available from itch.io, ## but is no longer sold. ARCHIVE_BASE_0_NAME='backbone_windows.zip' ARCHIVE_BASE_0_MD5='c306e782f7c1f62bd3e247d6eb682182' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.0-itch.2022.03.06' UNREALENGINE4_NAME='detective' CONTENT_PATH_DEFAULT='backbone_windows' APP_MAIN_EXE='detective.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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # 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-bad-dream-coma.sh0000755000000000000000000000367414471751340014723 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Dream: Coma # send your bug reports to contact@dotslashplay.it ### script_version=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='bad-dream-coma' GAME_NAME='Bad Dream: Coma' ARCHIVE_BASE_0_NAME='setup_bad_dream_coma_1.0_(26985).exe' ARCHIVE_BASE_0_MD5='e4f0655ee22d99bdf09d0ee7a6980f23' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog26985' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_dream_coma' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bad dream coma.exe d3dx9_43.dll data.win options.ini' CONTENT_GAME_DATA_FILES=' *.dat *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Bad_Dream_Coma' APP_MAIN_EXE='bad dream coma.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" # 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bad-dream-fever.sh0000755000000000000000000000441714471751340015107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Bad Dream Fever # send your bug reports to contact@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bad-dream-fever' GAME_NAME='Bad Dream Fever' ARCHIVE_BASE_0_NAME='setup_bad_dream_fever_1.0_(26985).exe' ARCHIVE_BASE_0_MD5='19336f3d5f3920873c7f111f9bda3f8b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='1.0-gog26985' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_dream_fever' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_43.dll bad dream fever.exe options.ini' ## TODO: Check if the shipped build of DirectX is required. CONTENT_GAME0_BIN_FILES=' __redist/directx' CONTENT_GAME_DATA_FILES=' language splash.png data.win *.dat *.ogg' ## FIXME: Use persistent storage for game progress and settings. APP_MAIN_EXE='bad dream fever.exe' ## TODO: Check if the shipped build of DirectX is required. APP_MAIN_PRERUN=' # Install shipped DirectX on first launch if [ ! -e directx9_installed ]; then ## TODO: Check if this delay is required. sleep 3s wine __redist/directx/dxsetup.exe /silent touch directx9_installed fi ' 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-bad-mojo.sh0000755000000000000000000000566714471751340013666 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bad Mojo # send your bug reports to contact@dotslashplay.it ### script_version=20230803.1 GAME_ID='bad-mojo' GAME_NAME='Bad Mojo' ARCHIVE_BASE_0='setup_badmojo_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='aedcb9e57bf5c6e692b889d3c21c4d12' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bad_mojo_redux' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' badmojo.exe launcher2.bat launcher.exe qthook.dll waveout.dll' CONTENT_GAME_DATA_FILES=' backgnd btc cel extras mash movie over palette qtsystem roachd save scribble script sound topo quicktime.qts' USER_PERSISTENT_DIRECTORIES=' save' APP_MAIN_EXE='badmojo.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" # Load common functions target_version='2.24' 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" # Create required configuration file config_file='badmojo.ini' config_file_path="$(package_path 'PKG_BIN')$(path_game_data)/${config_file}" mkdir --parents "$(dirname "$config_file_path")" game_id=$(game_id) cat > "$config_file_path" << EOF [booger] BACKGROUND=C:\\${game_id}\\OVER;C:\\${game_id}\\BACKGND TOPO=C:\\${game_id}\\TOPO BTC=C:\\${game_id}\\BTC PALETTE=C:\\${game_id}\\PALETTE SCRIBBLE=C:\\${game_id}\\OVER;C:\\${game_id}\\SCRIBBLE CEL=C:\\${game_id}\\OVER;C:\\${game_id}\\CEL SCRIPT=C:\\${game_id}\\SCRIPT ROACH=C:\\${game_id}\\ROACHD MOVIE=C:\\${game_id}\\OVER;C:\\${game_id}\\MOVIE MASH=C:\\${game_id}\\OVER;C:\\${game_id}\\MASH SOUND=C:\\${game_id}\\SOUND SAVE=C:\\${game_id}\\SAVE [SoundMix] SoundOn=1 BetweenScreens=1 SmallChunkSize=3 BigChunkSize=26 BigChunkMethod=0 DumbSound=0 [badmojo] Preferences=1111110 EOF USER_PERSISTENT_FILES="$(persistent_list_files) $config_file" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-banished.sh0000755000000000000000000000434714471751340013745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Banished # send your bug reports to contact@dotslashplay.it ### script_version=20240331.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='banished' GAME_NAME='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' 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' CONTENT_PATH_DEFAULT='app' ## TODO: Use a more targeted list of libraries. CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' windata' APP_MAIN_EXE_64BIT='application-x64.exe' APP_MAIN_EXE_32BIT='application-x32.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-basingstoke.sh0000755000000000000000000000372714471751340014502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Basingstoke # send your bug reports to contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='basingstoke' GAME_NAME='Basingstoke' ARCHIVE_BASE_0_NAME='basingstoke-linux.zip' ARCHIVE_BASE_0_MD5='46c7127a2bbf07f158b8a70eb44185f2' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://puppygames001.itch.io/basingstoke' UNITY3D_NAME='Basingstoke' UNITY3D_PLUGINS=' libzipw.so ScreenSelector.so' CONTENT_PATH_DEFAULT='basingstoke' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-1.sh0000755000000000000000000000557314471751340015033 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='batman-arkham-1' GAME_NAME='Batman: Arkham Asylum' ARCHIVE_BASE_0_NAME='setup_batman_arkham_asylum_goty_1.1_(38915).exe' ARCHIVE_BASE_0_MD5='46dc5afd1cf4a41f4c910a8c43fe8023' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-1.bin' ARCHIVE_BASE_0_PART1_MD5='59df55da8ffce48afd9a196c816769c3' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8b7b283f4ea74c7f208bdd26c2f7a5b4' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.1-gog38915' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_asylum_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries *.dll' CONTENT_GAME_DATA_FILES=' bmgame engine' CONTENT_DOC_DATA_FILES=' *.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Batman Arkham Asylum GOTY' WINE_WINEPREFIX_TWEAKS='mono' ## Cursor is prevented to leave the game window, avoiding issues with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game will throw an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='binaries/bmlauncher.exe' APP_MAIN_ICON='binaries/shippingpc-bmgame.exe' ## Force the application type, or it will be mistaken for a Mono one. APP_MAIN_TYPE='wine' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_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" # 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-batman-arkham-2.sh0000755000000000000000000001742114471751340015027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='batman-arkham-2' GAME_NAME='Batman: Arkham City' ARCHIVE_BASE_0_NAME='setup_batman_arkham_city_goty_1.1_(38264).exe' ARCHIVE_BASE_0_MD5='e8bfd823cfcfec2147f736bb696a85c8' ## Do not convert the file paths to lowercase. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_city_goty_1.1_(38264)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5e1213208d59a42ec0fd808bfee2f189' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_city_goty_1.1_(38264)-2.bin' ARCHIVE_BASE_0_PART2_MD5='fa9fcbaf8ef9de81dc1638bbc9db0353' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_city_goty_1.1_(38264)-3.bin' ARCHIVE_BASE_0_PART3_MD5='685be8b8bbd0fe3f831fb5cf0506a735' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_city_goty_1.1_(38264)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0ccafb2161130774710b470692ba8b39' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_city_goty_1.1_(38264)-5.bin' ARCHIVE_BASE_0_PART5_MD5='2122f11dc24618e8c902e6706c26f7c2' ARCHIVE_BASE_0_SIZE='20000000' ARCHIVE_BASE_0_VERSION='1.1-gog38264' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_city_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries engine Setup BmGame/Config *.dll' CONTENT_GAME_L10N_EN_FILES=' BmGame/Localization/INT BmGame/CookedPCConsole/English(US)' CONTENT_GAME_L10N_FR_FILES=' BmGame/Localization/FRA BmGame/CookedPCConsole/French(France)' CONTENT_GAME_DATA_MOVIES_FILES=' BmGame/Movies BmGame/MoviesStereo' CONTENT_GAME_DATA_TEXTURES_FILES=' BmGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/*.upk BmGame/CookedPCConsole/CookedBanks.txt BmGame/CookedPCConsole/GuidMap BmGame/CookedPCConsole/SFX BmGame/Splash' CONTENT_DOC_L10N_EN_FILES=' readme.rtf' CONTENT_DOC_L10N_FR_FILES=' readme_FRA.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham City GOTY' WINE_WINEPREFIX_TWEAKS='mono' ## Cursor is prevented to leave the game window, avoiding issues with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game will throw an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='Binaries/Win32/BmLauncher.exe' ## Force the application type, or it will be mistaken for a Mono one. APP_MAIN_TYPE='wine' ## Force language environment, to work around the lack of a game setting. APP_MAIN_PRERUN='# Force language environment, to work around the lack of a game setting. if [ -e "BmGame/Localization/FRA" ]; then export LANG=fr elif [ -e "BmGame/Localization/INT" ]; then export LANG=en fi ' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_MOVIES PKG_DATA_TEXTURES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MOVIES_ID" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_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_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" # Set the game language based on the installed localization SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Set the game language based on the installed localization ## TODO: Dump all this mess and redo it in a cleaner way during the content inclusion step. config_file_launcher_source="$(package_path 'PKG_BIN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_ini_section='\[Launcher\.Settings\]' config_file_launcher_ini_field='ForceUseCulture' config_file_launcher_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_en_ini_value='en' mkdir --parents "$(dirname "$config_file_launcher_en_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_en_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_en_destination" unix2dos --quiet "$config_file_launcher_en_destination" config_file_launcher_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_fr_ini_value='fr' mkdir --parents "$(dirname "$config_file_launcher_fr_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_fr_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_fr_destination" unix2dos --quiet "$config_file_launcher_fr_destination" rm "$config_file_launcher_source" config_file_engine_source="$(package_path 'PKG_BIN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_ini_field='Language' config_file_engine_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_en_ini_value='INT' mkdir --parents "$(dirname "$config_file_engine_en_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_en_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_en_destination" unix2dos --quiet "$config_file_engine_en_destination" config_file_engine_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_fr_ini_value='FRA' mkdir --parents "$(dirname "$config_file_engine_fr_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_fr_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_fr_destination" unix2dos --quiet "$config_file_engine_fr_destination" rm "$config_file_engine_source" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation 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_L10N_EN' 'PKG_DATA' 'PKG_DATA_MOVIES' 'PKG_DATA_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_DATA_MOVIES' 'PKG_DATA_TEXTURES' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-3.sh0000755000000000000000000001005414471751340015023 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Origins # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='batman-arkham-3' GAME_NAME='Batman: Arkham Origins' ARCHIVE_BASE_0_NAME='setup_batman_arkham_origins_1.0_(37592).exe' ARCHIVE_BASE_0_MD5='954bfc571f142dbcd8c21bb53aff9476' ## Do not convert file paths to lowercase. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_origins_1.0_(37592)-1.bin' ARCHIVE_BASE_0_PART1_MD5='379e08cdded22ca72de6ef1592cf9ec3' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_origins_1.0_(37592)-2.bin' ARCHIVE_BASE_0_PART2_MD5='483e7b78a963a844dc49fe0d563dba51' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_origins_1.0_(37592)-3.bin' ARCHIVE_BASE_0_PART3_MD5='7bb72091ee2ca1499c4d4e4245b92a5f' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_origins_1.0_(37592)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d705ed0ace1d108a97433e0474e8dbdb' ARCHIVE_BASE_0_SIZE='18000000' ARCHIVE_BASE_0_VERSION='1.0-gog37592' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_origins' CONTENT_PATH_DEFAULT='SinglePlayer' CONTENT_GAME_BIN_FILES=' Binaries Engine BMGame/Config' ## TODO: The files for the English localization should be moved to a dedicated package too. CONTENT_GAME_L10N_FR_FILES=' BMGame/CookedPCConsole/French(France) BMGame/Localization/FRA PCConsoleTOC_FRA.txt' CONTENT_GAME_TEXTURES_FILES=' BMGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BMGame/EP2.dat BMGame/EP3.dat BMGame/EP4.dat BMGame/Movies BMGame/Splash BMGame/WBID BMGame/CookedPCConsole/SFX BMGame/CookedPCConsole/*.bin BMGame/CookedPCConsole/*.txt BMGame/CookedPCConsole/*.upk BMGame/CookedPCConsole/English(US) BMGame/Localization/INT PCConsoleTOC.txt' ## TODO: Check that write access to this directory is required. USER_PERSISTENT_DIRECTORIES=' BMGame/Config' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham Origins' WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='Binaries/Win32/BatmanOrigins.exe' ## Run the game binary from its directory. APP_MAIN_PRERUN=' # Run the game binary from its directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_TEXTURES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_DESCRIPTION='French localization' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_TEXTURES $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 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_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_TEXTURES' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-4.sh0000755000000000000000000002007514471751340015030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Knight # send your bug reports to contact@dotslashplay.it ### script_version=20241215.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='batman-arkham-4' GAME_NAME='Batman: Arkham Knight' ARCHIVE_BASE_1_NAME='setup_batman_arkham_knight_1.999_(74718).exe' ARCHIVE_BASE_1_MD5='5cbbe0e90a025b815cbd41ee424306f0' ARCHIVE_BASE_1_EXTRACTOR='innoextract' ## Do not convert file paths to lower case ARCHIVE_BASE_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_1_PART1_NAME='setup_batman_arkham_knight_1.999_(74718)-1.bin' ARCHIVE_BASE_1_PART1_MD5='a65b7f94f1742b520eba4fe1833dea10' ARCHIVE_BASE_1_PART2_NAME='setup_batman_arkham_knight_1.999_(74718)-2.bin' ARCHIVE_BASE_1_PART2_MD5='8ec21e3f6d589b435741a7c479d6dc2c' ARCHIVE_BASE_1_PART3_NAME='setup_batman_arkham_knight_1.999_(74718)-3.bin' ARCHIVE_BASE_1_PART3_MD5='df3dc59d8c937e5ecc82bbf7cdb569a3' ARCHIVE_BASE_1_PART4_NAME='setup_batman_arkham_knight_1.999_(74718)-4.bin' ARCHIVE_BASE_1_PART4_MD5='f2ca1ca49a6ec9f889bb7fe512d33656' ARCHIVE_BASE_1_PART5_NAME='setup_batman_arkham_knight_1.999_(74718)-5.bin' ARCHIVE_BASE_1_PART5_MD5='36cb7c2a6a3312c14f50e8a0ed62d368' ARCHIVE_BASE_1_PART6_NAME='setup_batman_arkham_knight_1.999_(74718)-6.bin' ARCHIVE_BASE_1_PART6_MD5='615673312299f977c4c224538915382e' ARCHIVE_BASE_1_PART7_NAME='setup_batman_arkham_knight_1.999_(74718)-7.bin' ARCHIVE_BASE_1_PART7_MD5='106965231ab2888f9ecf59df76238366' ARCHIVE_BASE_1_PART8_NAME='setup_batman_arkham_knight_1.999_(74718)-8.bin' ARCHIVE_BASE_1_PART8_MD5='19849206fc9004fd7e662d6fb2d3fa8e' ARCHIVE_BASE_1_PART9_NAME='setup_batman_arkham_knight_1.999_(74718)-9.bin' ARCHIVE_BASE_1_PART9_MD5='15578850acef4289fc0ea670803fa28b' ARCHIVE_BASE_1_PART10_NAME='setup_batman_arkham_knight_1.999_(74718)-10.bin' ARCHIVE_BASE_1_PART10_MD5='e9d915384e205b4005b0152da61e4d7c' ARCHIVE_BASE_1_PART11_NAME='setup_batman_arkham_knight_1.999_(74718)-11.bin' ARCHIVE_BASE_1_PART11_MD5='1bb779b16400790d1ac09a224712f9bb' ARCHIVE_BASE_1_PART12_NAME='setup_batman_arkham_knight_1.999_(74718)-12.bin' ARCHIVE_BASE_1_PART12_MD5='ba347af6291479505292b7214c0821b2' ARCHIVE_BASE_1_SIZE='52303886' ARCHIVE_BASE_1_VERSION='1.999-gog74718' ARCHIVE_BASE_1_URL='https://www.gog.com/game/batman_arkham_knight' ARCHIVE_BASE_0_NAME='setup_batman_arkham_knight_1.98_(37902).exe' ARCHIVE_BASE_0_MD5='73307c30caaf63052132968a923f13ec' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file paths to lower case ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_knight_1.98_(37902)-1.bin' ARCHIVE_BASE_0_PART1_MD5='82a14c0140c2d3bfb587d55559edd3ab' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_knight_1.98_(37902)-2.bin' ARCHIVE_BASE_0_PART2_MD5='075b116c6f6c79bc682a1dcd020e4910' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_knight_1.98_(37902)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ccf091fe25df898fb692854ffba23e95' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_knight_1.98_(37902)-4.bin' ARCHIVE_BASE_0_PART4_MD5='128dcddb67ed6c9838e802a82d29267f' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_knight_1.98_(37902)-5.bin' ARCHIVE_BASE_0_PART5_MD5='e4a186a946e10780ddc58e8ca79d6794' ARCHIVE_BASE_0_PART6_NAME='setup_batman_arkham_knight_1.98_(37902)-6.bin' ARCHIVE_BASE_0_PART6_MD5='ea31bab1b5ff9410a30663f2cd8ca35f' ARCHIVE_BASE_0_PART7_NAME='setup_batman_arkham_knight_1.98_(37902)-7.bin' ARCHIVE_BASE_0_PART7_MD5='e7726a1f658c9b29387bad9b10e8e4a3' ARCHIVE_BASE_0_PART8_NAME='setup_batman_arkham_knight_1.98_(37902)-8.bin' ARCHIVE_BASE_0_PART8_MD5='647176434aa98a19cce3edf625ef8631' ARCHIVE_BASE_0_PART9_NAME='setup_batman_arkham_knight_1.98_(37902)-9.bin' ARCHIVE_BASE_0_PART9_MD5='c8f4833b789186d3b03ff44af93b883b' ARCHIVE_BASE_0_PART10_NAME='setup_batman_arkham_knight_1.98_(37902)-10.bin' ARCHIVE_BASE_0_PART10_MD5='389d3f38c987268dfdb85c489b2e4831' ARCHIVE_BASE_0_PART11_NAME='setup_batman_arkham_knight_1.98_(37902)-11.bin' ARCHIVE_BASE_0_PART11_MD5='18947e9bd6b4a0b4ec35998f78961c88' ARCHIVE_BASE_0_PART12_NAME='setup_batman_arkham_knight_1.98_(37902)-12.bin' ARCHIVE_BASE_0_PART12_MD5='d67afeb3f4a687255d79ad1c1f45516e' ARCHIVE_BASE_0_SIZE='53000000' ARCHIVE_BASE_0_VERSION='1.98-gog37902' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries Engine BmGame/Config' CONTENT_GAME_TEXTURES1_FILES=' BmGame/CookedPCConsole/Chunk0.tfc BmGame/CookedPCConsole/Chunk1.tfc BmGame/CookedPCConsole/Chunk2.tfc BmGame/CookedPCConsole/Chunk3.tfc BmGame/CookedPCConsole/Chunk4.tfc BmGame/CookedPCConsole/Chunk5.tfc' CONTENT_GAME_TEXTURES2_FILES=' BmGame/CookedPCConsole/Chunk6.tfc BmGame/CookedPCConsole/Chunk7.tfc BmGame/CookedPCConsole/Chunk8.tfc BmGame/CookedPCConsole/Textures.tfc' CONTENT_GAME_PACKAGES1_FILES=' BmGame/CookedPCConsole/City*.upk' CONTENT_GAME_PACKAGES2_FILES=' BmGame/CookedPCConsole/*.upk' CONTENT_GAME_MOVIES_FILES=' BmGame/Movies' CONTENT_GAME_DATA_FILES=' BmGame/Splash BmGame/CookedPCConsole/SFX BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/English(US) BmGame/Localization/INT' USER_PERSISTENT_DIRECTORIES=' BmGame/Config BmGame/SaveData' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham Knight' ## TODO: Check why a virtual desktop is required WINE_VIRTUAL_DESKTOP='auto' WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='Binaries/Win64/BatmanAK.exe' PACKAGES_LIST=' PKG_BIN PKG_TEXTURES1 PKG_TEXTURES2 PKG_PACKAGES1 PKG_PACKAGES2 PKG_MOVIES 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_TEXTURES1 PKG_TEXTURES2 PKG_PACKAGES1 PKG_PACKAGES2 PKG_MOVIES' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES1_ID="${PKG_TEXTURES_ID}-1" PKG_TEXTURES2_ID="${PKG_TEXTURES_ID}-2" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES1_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 1" PKG_TEXTURES2_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 2" PKG_PACKAGES_ID="${GAME_ID}-packages" PKG_PACKAGES1_ID="${PKG_PACKAGES_ID}-1" PKG_PACKAGES2_ID="${PKG_PACKAGES_ID}-2" PKG_PACKAGES_DESCRIPTION='packages' PKG_PACKAGES1_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 1" PKG_PACKAGES2_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 2" PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' # Ensure ability fo fully control the camera with the mouse registry_dump_mouse_grab_file='registry-dumps/mouse-grab.reg' registry_dump_mouse_grab_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_mouse_grab_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_mouse_grab_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # 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 ability fo fully control the camera with the mouse mkdir --parents "$(dirname "$registry_dump_mouse_grab_file")" printf '%s' "$registry_dump_mouse_grab_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_mouse_grab_file" ) # 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 Binaries/Win64 $(wine_command) BatmanAK.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-battle-chef-brigade.sh0000755000000000000000000000520414471751340015732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Battle Chef Brigade # send your bug reports to contact@dotslashplay.it ### script_version=20230222.3 GAME_ID='battle-chef-brigade' GAME_NAME='Battle Chef Brigade' ARCHIVE_BASE_0='battle_chef_brigade_14725_624_23675.sh' ARCHIVE_BASE_0_MD5='d35140bf757e387a2e47198f96356d00' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='14725.624-gog23675' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battle_chef_brigade' UNITY3D_NAME='BattleChefBrigade' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=" ScreenSelector.so" CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" 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 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 target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-battle-worlds-kronos.sh0000755000000000000000000000463414471751340016263 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 contact@dotslashplay.it ### script_version=20240422.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 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" # Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-battlefleet-gothic-armada-1.sh0000755000000000000000000000432414471751340017312 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 contact@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-beacon-pines.sh0000755000000000000000000000345514471751340014532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Beacon Pines # send your bug reports to contact@dotslashplay.it ### script_version=20240315.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='beacon-pines' GAME_NAME='Beacon Pines' ARCHIVE_BASE_0_NAME='setup_beacon_pines_1.1.1_(63135).exe' ARCHIVE_BASE_0_MD5='a19d066a3d9c7df55a1db27e47e7852f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1943267' ARCHIVE_BASE_0_VERSION='1.1.1-gog63135' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beacon_pines' UNITY3D_NAME='beacon pines' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Hiding Spot/Beacon Pines' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bear-and-breakfast.sh0000755000000000000000000000414514471751340015575 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 contact@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-beat-cop.sh0000755000000000000000000000504614471751340013657 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Beat Cop # send your bug reports to contact@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='beat-cop' GAME_NAME='Beat Cop' ARCHIVE_BASE_0_NAME='beat_cop_en_1_1_744_17129.sh' ARCHIVE_BASE_0_MD5='090be367a794f7c8a0043a94bea71bf8' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.1.744-gog17129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/beat_cop' UNITY3D_NAME='BeatCop' CONTENT_PATH_DEFAULT='data/noarch/game' ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" ## FIXME: Shipped libraries to include should be listed using CONTENT_xxx_LIBS_{PATH,FILES} CONTENT_GAME1_BIN64_FILES=' lib64' CONTENT_GAME1_BIN32_FILES=' lib32' 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" # TODO: The list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libstdc++.so.6 libSDL2-2.0.so.0 libgdk-x11-2.0.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-beatbuddy.sh0000755000000000000000000000405014471751340014122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Beatbuddy: Tale of the Guardians # send your bug reports to contact@dotslashplay.it ### script_version=20240422.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='beatbuddy' GAME_NAME='Beatbuddy: Tale of the Guardians' ARCHIVE_BASE_0_NAME='BeatbuddyLinux1439603370.zip' ARCHIVE_BASE_0_MD5='156d19b327a02ac4a277f6f6ad4e188e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-humble150815' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/beatbuddy' UNITY3D_NAME='Beatbuddy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Beatbuddy' 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=' 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bee-simulator.sh0000755000000000000000000000521014471751340014726 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bee Simulator # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='bee-simulator' GAME_NAME='Bee Simulator' ARCHIVE_BASE_0='setup_bee_simulator_1.0_(55451).exe' ARCHIVE_BASE_0_MD5='74cbfd6873ed784201bea56a857d6222' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_bee_simulator_1.0_(55451)-1.bin' ARCHIVE_BASE_0_PART1_MD5='214c92f714f12bdf6a3408f0650ec2d2' ARCHIVE_BASE_0_PART2='setup_bee_simulator_1.0_(55451)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9dcca7e498376ff76b40e86d7fae8cf4' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog55451' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bee_simulator' UNREALENGINE4_NAME='bebee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-beholder.sh0000755000000000000000000001035414471751340013747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Beholder series: # - Beholder # - Beholder 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS_BEHOLDER1="$UNITY3D_PLUGINS_BEHOLDER1 libCSteamworks.so libsteam_api.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_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" 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' PKG_BIN64_DEPENDENCIES_LIBRARIES_BEHOLDER1="$PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER1" PKG_BIN64_DEPENDENCIES_LIBRARIES_BEHOLDER2="$PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER2" PKG_BIN32_DEPENDENCIES_LIBRARIES_BEHOLDER1="$PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER1" PKG_BIN32_DEPENDENCIES_LIBRARIES_BEHOLDER2="$PKG_BIN_DEPENDENCIES_LIBRARIES_BEHOLDER2" ## Ensure easy upgrades from packages generated with pre-20241111.1 game scripts PKG_BIN_PROVIDES_BEHOLDER1="${PKG_BIN_PROVIDES_BEHOLDER1:-} beholder" PKG_BIN64_PROVIDES_BEHOLDER1="$PKG_BIN_PROVIDES_BEHOLDER1" PKG_BIN32_PROVIDES_BEHOLDER1="$PKG_BIN_PROVIDES_BEHOLDER1" PKG_DATA_ID_BEHOLDER1="${GAME_ID_BEHOLDER1}-data" PKG_DATA_ID_BEHOLDER2="${GAME_ID_BEHOLDER2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20241111.1 game scripts PKG_DATA_PROVIDES_BEHOLDER1="${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 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-besiege.sh0000755000000000000000000000460114471751340013564 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Besiege # send your bug reports to contact@dotslashplay.it ### script_version=20240607.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='besiege' GAME_NAME='Besiege' ARCHIVE_BASE_0_NAME='besiege_v1_05_12536_39273.sh' ARCHIVE_BASE_0_MD5='96d7e8ac29aa1f0bab020610d1a83c90' ARCHIVE_BASE_0_SIZE='2772414' ARCHIVE_BASE_0_VERSION='1.05-gog39273' ARCHIVE_BASE_0_URL='https://www.gog.com/game/besiege' UNITY3D_NAME='Besiege' UNITY3D_PLUGINS=' libRakNet.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_FILES=' Besiege_Data/CompletedLevels.txt Besiege_Data/*.xml' USER_PERSISTENT_DIRECTORIES=' Besiege_Data/Mods' 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' 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-bff-or-die.sh0000755000000000000000000000435514471751340014101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # BFF or Die # send your bug reports to contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bff-or-die' GAME_NAME='BFF or Die' ARCHIVE_BASE_0_NAME='BffOrDie_Linux.zip' ARCHIVE_BASE_0_MD5='52968da91f57da3619c3ae8a666d660a' ARCHIVE_BASE_0_SIZE='788644' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://asa-studio.itch.io/bff-or-die' UNITY3D_NAME='BffOrDie' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='BffOrDie_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_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 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" # 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-binaries.sh0000755000000000000000000000467714471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Binaries # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='binaries' GAME_NAME='Binaries' ARCHIVE_BASE_0_NAME='Binaries_Linux_v1.1.0.zip' ARCHIVE_BASE_0_MD5='ed3756af1ebe72560d6e52ab67013f4c' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/binaries' UNITY3D_NAME='Binaries' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete Apple archives junk find . -name '*.rsrc' -delete ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bio-menace.sh0000755000000000000000000000433014471751340014157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Bio Menace # send your bug reports to contact@dotslashplay.it ### script_version=20240422.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='bio-menace' GAME_NAME='Bio Menace' ARCHIVE_BASE_0_NAME='gog_bio_menace_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='75167ee3594dd44ec8535b29b90fe4eb' ARCHIVE_BASE_0_SIZE='14000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bio_menace' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.bm? *.conf *.exe biopatch.zip' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.conf config.bm? SAVEGAM*' APP_1_ID="${GAME_ID}-1" APP_1_NAME="$GAME_NAME - Episode 1: Dr. Mangle’s Lab" APP_1_EXE='bmenace1.exe' APP_1_ICON='../support/icon.png' APP_2_ID="${GAME_ID}-2" APP_2_NAME="$GAME_NAME - Episode 2: The Hidden Lab" APP_2_EXE='bmenace2.exe' APP_2_ICON='../support/icon.png' APP_3_ID="${GAME_ID}-3" APP_3_NAME="$GAME_NAME - Episode 3: Master Cain" APP_3_EXE='bmenace3.exe' APP_3_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-biped.sh0000755000000000000000000000346114471751340013247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Biped # send your bug reports to contact@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='biped' GAME_NAME='Biped' ARCHIVE_BASE_0_NAME='setup_biped_1.6_(39586).exe' ARCHIVE_BASE_0_MD5='c58ee9791defa88ef1bb92ba3b2f01d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_biped_1.6_(39586)-1.bin' ARCHIVE_BASE_0_PART1_MD5='48103181d4c54a068db5eec37e10d7e5' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.6-gog39586' ARCHIVE_BASE_0_URL='https://www.gog.com/game/biped' UNITY3D_NAME='biped' CONTENT_PATH_DEFAULT='.' ## FIXME: Add persistent storage for saved games and settings. 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-bit-rat-singularity.sh0000755000000000000000000000472314471751340016100 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # BIT RAT: Singularity # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='bit-rat-singularity' GAME_NAME='BIT RAT: Singularity' ARCHIVE_BASE_0='bit_rat_singularity_linux.zip' ARCHIVE_BASE_0_MD5='a2780bc1b25a6b07116dc739139bb561' ARCHIVE_BASE_0_SIZE='33000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://bucketdrumgames.itch.io/bitrat' CONTENT_PATH_DEFAULT='bit_rat_singularity' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Build 512×512 icon from the 1024×1024 provided one SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_MAIN_ICON_512='assets/icon_512.png' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" convert "$APP_MAIN_ICON" -resize 512 "$APP_MAIN_ICON_512" ) # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-beat.sh0000755000000000000000000000521314471751340014624 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Bit.Trip Beat # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 # Set game-specific variables GAME_ID='bit-trip-beat' GAME_NAME='BIT.TRIP BEAT' ARCHIVE_BASE_0='gog_bit_trip_beat_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='32b6fd23c32553aa7c50eaf4247ba664' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_beat' CONTENT_PATH_DEFAULT='data/noarch/game/bit.trip.beat-1.0-32/bit.trip.beat' CONTENT_GAME_BIN32_FILES=' bit.trip.beat' CONTENT_GAME_BIN64_PATH='data/noarch/game/bit.trip.beat-1.0-64/bit.trip.beat' CONTENT_GAME_BIN64_FILES=' bit.trip.beat' CONTENT_GAME_DATA_FILES=' Effects Fonts Sounds Models Shaders Textures BEAT.png' CONTENT_DOC0_DATA_PATH='data/noarch/game/bit.trip.beat-1.0-32' CONTENT_DOC0_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.beat' APP_MAIN_ICON='BEAT.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-1.sh0000755000000000000000000000550714471751340015366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230205.1 GAME_ID='bit-trip-runner-1' GAME_NAME='Bit.Trip Runner' ARCHIVE_BASE_0='gog_bit_trip_runner_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='b6f0fe70e1a2d9408967b8fd6bd881e1' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog.2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_runner' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_BIN32_FILES=' bit.trip.runner' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-64/bit.trip.runner" CONTENT_GAME_BIN64_FILES=' bit.trip.runner' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_DATA_FILES=' Effects Fonts Layouts Sounds Models Shaders Textures2d RUNNER.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32" CONTENT_DOC_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.runner' APP_MAIN_ICON='bit.trip.runner-1.0-32/bit.trip.runner/RUNNER.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-2.sh0000755000000000000000000001117514471751340015365 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bit-trip-runner-2' GAME_NAME='Bit.Trip Presents… Runner2: Future Legend of Rhythm Alien' ARCHIVE_BASE_GOG_0_NAME='gog_bit_trip_presents_runner2_future_legend_of_rhythm_alien_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='28c003bae691aa46d841547da8e3def6' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/bittrip_presents_runner2_future_legend_of_rhythm_alien' ## These native Linux DRM-free builds are no longer available from the Humble Store. ## Only builds for Windows and MacOS are provided. ARCHIVE_BASE_HUMBLE_32BIT_0_NAME='runner2_i386_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_32BIT_0_MD5='ea105bdcd486879fb99889b87e90eed5' ARCHIVE_BASE_HUMBLE_32BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_32BIT_0_VERSION='1.0-humble1388171186' ## These native Linux DRM-free builds are no longer available from the Humble Store. ## Only builds for Windows and MacOS are provided. ARCHIVE_BASE_HUMBLE_64BIT_0_NAME='runner2_amd64_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_64BIT_0_MD5='2f7ccdb675a63a5fc152514682e97480' ARCHIVE_BASE_HUMBLE_64BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_64BIT_0_VERSION='1.0-humble1388171186' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN32='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN64='data/noarch/game/runner2-1.0-64/runner2' CONTENT_PATH_DEFAULT_HUMBLE='runner2-1.0/runner2' CONTENT_LIBS_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_LIBS_BIN64_FILES=' libfmodevent64.so libfmodevent64-4.44.07.so libfmodex64.so libfmodex64-4.44.07.so' CONTENT_LIBS_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_LIBS_BIN32_FILES=' libfmodevent.so libfmodevent-4.44.08.so libfmodex.so libfmodex-4.44.08.so' CONTENT_GAME_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_GAME_BIN64_FILES=' runner2' CONTENT_GAME_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_GAME_BIN32_FILES=' runner2' CONTENT_GAME_DATA_FILES=' Effects Fonts Gameplay Graphics Menus Models Shaders Sounds Textures package.toc Runner2.png' CONTENT_DOC_DATA_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/.." CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/.." CONTENT_DOC_DATA_FILES=' README README.html' APP_MAIN_EXE='runner2' APP_MAIN_ICON='Runner2.png' PACKAGES_LIST_GOG=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_HUMBLE_32BIT=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_HUMBLE_64BIT=' PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20211125.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} runner-2-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 libSDL-1.2.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure easy upgrade from packages generated using pre-20211125.2 game script PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} runner-2" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" # 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 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_32BIT_'*) launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_HUMBLE_64BIT_'*) launchers_generation 'PKG_BIN64' ;; ('ARCHIVE_BASE_GOG_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-3.sh0000755000000000000000000000354614471751340015371 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Bit.Trip: Runner 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240424.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='bit-trip-runner-3' GAME_NAME='Bit.Trip: Runner 3' ARCHIVE_BASE_0_NAME='Runner3WIN.zip' ARCHIVE_BASE_0_MD5='d13f6fa59e9b55a259a078328a87c9f9' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='2018.11.12-itch1' ARCHIVE_BASE_0_URL='https://choice-provisions.itch.io/runner3' UNITY3D_NAME='Runner3' CONTENT_PATH_DEFAULT='.' ## Despite the unusual path for a Unity3D game, saved games are .sav files at the root of the game directory. USER_PERSISTENT_FILES=' *.sav' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blade-runner.sh0000755000000000000000000000704514471751340014544 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Blade Runner # send your bug reports to contact@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='blade-runner' GAME_NAME='Blade Runner' # Archives ## Blade Runner ARCHIVE_BASE_EN_0_NAME='blade_runner_1_0_svm_src_34722.sh' ARCHIVE_BASE_EN_0_MD5='d9dd6f98eb8dc9401d5499a1d48e5d76' ## TODO: Check if it is required to force the extraction using unzip. ARCHIVE_BASE_EN_0_EXTRACTOR='unzip' ARCHIVE_BASE_EN_0_SIZE='1700000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog34722' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/blade_runner' ARCHIVE_BASE_FR_0_NAME='blade_runner_french_1_0_svm_src_34722.sh' ARCHIVE_BASE_FR_0_MD5='98ee3723ac6114a6b464af0b07f76757' ## TODO: Check if it is required to force the extraction using unzip. ARCHIVE_BASE_FR_0_EXTRACTOR='unzip' ARCHIVE_BASE_FR_0_SIZE='1700000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog34722' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/blade_runner' ## Optional subtitles ARCHIVE_OPTIONAL_SUBTITLES_NAME='Blade_Runner_Subtitles-v6.zip' ARCHIVE_OPTIONAL_SUBTITLES_MD5='f9b4e5738d3c6092cac3485c41f47cb2' ARCHIVE_OPTIONAL_SUBTITLES_URL='https://www.scummvm.org/games/#bladerunner' # Archive contents ## Blade Runner CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' *.dat *.mix *.tlk' CONTENT_DOC_MAIN_FILES=' *.pdf' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' ## Optional subtitles CONTENT_GAME_SUBTITLES_PATH='.' CONTENT_GAME_SUBTITLES_FILES=' subtitles.mix' CONTENT_DOC_SUBTITLES_PATH='.' CONTENT_DOC_SUBTITLES_FILES=' readme.txt' APP_MAIN_SCUMMID='bladerunner:bladerunner' APP_MAIN_ICON='../../support/icon.png' APP_RESTORED_SCUMMID='bladerunner:bladerunner-final' APP_RESTORED_ID="${GAME_ID}-restored" APP_RESTORED_NAME="$GAME_NAME with restored content" APP_RESTORED_ICON='../../support/icon.png' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_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" # Check for the presence of optional extra archives ## Optional subtitles archive_initialize_optional \ 'ARCHIVE_SUBTITLES' \ 'ARCHIVE_OPTIONAL_SUBTITLES' # Extract game data archive_extraction 'SOURCE_ARCHIVE' ## Optional subtitles if archive_is_available 'ARCHIVE_SUBTITLES'; then archive_extraction 'ARCHIVE_SUBTITLES' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons ## Optional subtitles if archive_is_available 'ARCHIVE_SUBTITLES'; then content_inclusion 'GAME_SUBTITLES' 'PKG_MAIN' "$(path_game_data)" content_inclusion 'DOC_SUBTITLES' 'PKG_MAIN' "$(path_documentation)/subtitles" fi content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bleed-series.sh0000755000000000000000000001003114471751340014516 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bleed series: # - Bleed # - Bleed 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_BLEED1='bleed-1' GAME_NAME_BLEED1='Bleed' GAME_ID_BLEED2='bleed-2' GAME_NAME_BLEED2='Bleed 2' # Archives ## Bleed 1 ARCHIVE_BASE_BLEED1_0_NAME='bleed-linux-05052016-bin' ARCHIVE_BASE_BLEED1_0_MD5='a4522f679d7e7038e0085aaf1319f41f' ## This archive is a MojoSetup installer, but it is not based on Makeself. ARCHIVE_BASE_BLEED1_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_BLEED1_0_SIZE='110000' ARCHIVE_BASE_BLEED1_0_VERSION='1.7.0-itch.2016.05.05' ARCHIVE_BASE_BLEED1_0_URL='https://bootdiskrevolution.itch.io/bleed' ## Bleed 2 ARCHIVE_BASE_BLEED2_0_NAME='bleed2-02112018-bin' ARCHIVE_BASE_BLEED2_0_MD5='756324f1843c289719c6630a834e8f59' ## This archive is a MojoSetup installer, but it is not based on Makeself. ARCHIVE_BASE_BLEED2_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_BLEED2_0_SIZE='350000' ARCHIVE_BASE_BLEED2_0_VERSION='1.0-itch.2018.02.11' ARCHIVE_BASE_BLEED2_0_URL='https://bootdiskrevolution.itch.io/bleed-2' # Archives content CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_GAME_MAIN_FILES=' Content monoconfig FNA.dll FNA.dll.config' CONTENT_DOC_MAIN_FILES=' Linux.README' ## Bleed 1 ## Shipped OpenAL library must be included, or the game will crash on launch. CONTENT_LIBS_LIBS_FILES_BLEED1=' libmojoshader.so libopenal.so.1' CONTENT_LIBS_LIBS64_FILES_BLEED1="$CONTENT_LIBS_LIBS_FILES_BLEED1" CONTENT_LIBS_LIBS32_FILES_BLEED1="$CONTENT_LIBS_LIBS_FILES_BLEED1" CONTENT_GAME_MAIN_FILES_BLEED1="$CONTENT_GAME_MAIN_FILES Bleed.exe" ## Bleed 2 ## Shipped OpenAL library must be included, or the game will crash on launch. ## Shipped Steamworks library must be included, or the game will crash on launch. CONTENT_LIBS_LIBS_FILES_BLEED2=' libCSteamworks.so libmojoshader.so libopenal.so.1 libsteam_api.so' CONTENT_LIBS_LIBS64_FILES_BLEED2="$CONTENT_LIBS_LIBS_FILES_BLEED2" CONTENT_LIBS_LIBS32_FILES_BLEED2="$CONTENT_LIBS_LIBS_FILES_BLEED2" ## The game will crash on launch if the Steamworks library is omitted. CONTENT_GAME_MAIN_FILES_BLEED2="$CONTENT_GAME_MAIN_FILES Bleed2.exe Steamworks.NET.dll" APP_MAIN_EXE_BLEED1='Bleed.exe' APP_MAIN_EXE_BLEED2='Bleed2.exe' APP_MAIN_ICON_BLEED1='Bleed.bmp' APP_MAIN_ICON_BLEED2='Bleed 2.bmp' 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' 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' PKG_LIBS_ID_BLEED1="${GAME_ID_BLEED1}-libs" PKG_LIBS_ID_BLEED2="${GAME_ID_BLEED2}-libs" PKG_LIBS64_ID_BLEED1="$PKG_LIBS_ID_BLEED1" PKG_LIBS64_ID_BLEED2="$PKG_LIBS_ID_BLEED2" PKG_LIBS32_ID_BLEED1="$PKG_LIBS_ID_BLEED1" PKG_LIBS32_ID_BLEED2="$PKG_LIBS_ID_BLEED2" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # 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-blind-men.sh0000755000000000000000000000700414471751340014026 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Blind Men # send your bug reports to contact@dotslashplay.it ### script_version=20240326.5 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='blind-men' GAME_NAME='Blind Men' ARCHIVE_BASE_0_NAME='Blind_Men-1.3-linux.tar.bz2' ARCHIVE_BASE_0_MD5='7ad9b061db08427caebbef1650f34004' ARCHIVE_BASE_0_SIZE='325205' ARCHIVE_BASE_0_VERSION='1.3-itch.2020.09.25' ARCHIVE_BASE_0_URL='https://maneatergames.itch.io/blind-men' CONTENT_PATH_DEFAULT='Blind_Men-1.3-linux' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/Blind_Men lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/Blind_Men lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 Blind_Men.py' APP_MAIN_EXE_BIN64='lib/linux-x86_64/Blind_Men' APP_MAIN_EXE_BIN32='lib/linux-i686/Blind_Men' APP_MAIN_OPTIONS='-EO Blind_Men.py' ## Work around Ren'Py lack of support for Wayland. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Work around Ren'\''Py lack of support for Wayland if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' 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 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # Use default Ren'Py icon # This will show as a generic icon if Ren'Py is not installed. desktop_field_icon() { printf 'renpy' } # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-blocks-that-matter.sh0000755000000000000000000001060714471751340015671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Blocks that matter # send your bug reports to contact@dotslashplay.it ### script_version=20250305.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='blocks-that-matter' GAME_NAME='Blocks that matter' ARCHIVE_BASE_GOG_0_NAME='gog_blocks_that_matter_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='af9cec2b6104720c32718c02be120657' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.1.0.4c-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/blocks_that_matter' ARCHIVE_BASE_HUMBLE_0_NAME='BlocksThatMatter_linux_1.1.0.3.zip' ARCHIVE_BASE_HUMBLE_0_MD5='a3c8509ba8b3ffc52522a1eac3dc0f10' ARCHIVE_BASE_HUMBLE_0_SIZE='190000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.0.3-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/blocks-that-matter' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Blocks That Matter linux 1.1.0.3' ## Include shipped libraries that can not be replaced by system ones. CONTENT_LIBS_LIBS32_FILES=' libjinput-linux.so liblwjgl.so' CONTENT_LIBS_LIBS64_FILES=' libjinput-linux64.so liblwjgl64.so' CONTENT_GAME_MAIN_FILES=' BTM_lib BTM.jar BTM.png BTM.bftm config/*.xml' CONTENT_DOC_MAIN_RELATIVE_PATH='README' CONTENT_DOC_MAIN_FILES=' *.txt' USER_PERSISTENT_FILES=' config/*.xml' APP_MAIN_TYPE='java' APP_MAIN_EXE='BTM.jar' APP_MAIN_ICON='BTM.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_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 content_inclusion_default # Write launchers ## The game binary looks for libopenal.so (32-bit) and libopenal64.so (64-bit) instead of libopenal.so.1 ## Unversioned libopenal.so is already provided by the base library packages on Arch Linux and Gentoo. case "$(option_value 'package')" in ('arch') library_source='/usr/lib/libopenal.so.1' library_destination="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; ('deb') library_source_32bit='/usr/lib/i386-linux-gnu/libopenal.so.1' library_source_64bit='/usr/lib/x86_64-linux-gnu/libopenal.so.1' library_destination_32bit="$(package_path 'PKG_LIBS32')$(path_libraries)/libopenal.so" library_destination_64bit="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" 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" ;; ('gentoo'|'egentoo') library_source='/usr/lib64/libopenal.so.1' library_destination="$(package_path 'PKG_LIBS64')$(path_libraries)/libopenal64.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; esac ## The path to liblwjgl.so needs to be given on the command line APP_MAIN_JAVA_OPTIONS="$(application_java_options 'APP_MAIN') -Dorg.lwjgl.librarypath='$(path_libraries)'" launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-bombshell.sh0000755000000000000000000000536114471751340014134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bombshell # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bombshell' GAME_NAME='Bombshell' ARCHIVE_BASE_0_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762).exe' ARCHIVE_BASE_0_MD5='05b5188629b378360154420be32296aa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762)-1.bin' ARCHIVE_BASE_0_PART1_MD5='9a779d8df62ca33c5215ac7f3403f999' ARCHIVE_BASE_0_PART2_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762)-2.bin' ARCHIVE_BASE_0_PART2_MD5='186058e6d9058ed65ffaf4382ce8a1a0' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.2.10466-gog34762' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bombshell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_DATA_FILES=' engine shellgame' CONTENT_DOC_DATA_PATH='help' CONTENT_DOC_DATA_FILES=' gdf_fieldmanual.pdf' WINE_PERSISTENT_DIRECTORIE=' users/${USER}/Documents/My Games/Bombshell/ShellGame' WINE_WINEPREFIX_TWEAKS='mono' ## Grab the mouse cursor, to prevent issues when aiming with a mouse. WINE_WINETRICKS_VERBS='grabfullscreen=y' APP_MAIN_EXE_BIN64='binaries/win64/bombshell.exe' APP_MAIN_EXE_BIN32='binaries/win32/bombshell.exe' APP_MAIN_ICON='binaries/win32/bombshell.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=117' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' 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" # 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-book-of-demons.sh0000755000000000000000000000535014471751340015002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Book of Demons # send your bug reports to contact@dotslashplay.it ### script_version=20240325.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='book-of-demons' GAME_NAME='Book of Demons' ARCHIVE_BASE_3_NAME='setup_book_of_demons_1.05.240321_(72057).exe' ARCHIVE_BASE_3_MD5='d569fc4dddcec04aadea70ef49207566' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='946740' ARCHIVE_BASE_3_VERSION='1.05.240321-gog72057' ARCHIVE_BASE_3_URL='https://www.gog.com/game/book_of_demons' ARCHIVE_BASE_2_NAME='setup_book_of_demons_1.05.221221_(61311).exe' ARCHIVE_BASE_2_MD5='fc7148454bba56db0bb1b8942d1bfa85' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='950000' ARCHIVE_BASE_2_VERSION='1.05.221221-gog61311' ARCHIVE_BASE_1_NAME='setup_book_of_demons_1.05.220217_(53747).exe' ARCHIVE_BASE_1_MD5='6d33342267e0b05af5f493339d450d60' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='900000' ARCHIVE_BASE_1_VERSION='1.05.220217-gog53747' ARCHIVE_BASE_0_NAME='setup_book_of_demons_1.05.211021_(50897).exe' ARCHIVE_BASE_0_MD5='ef098c3f8dd9bc7c82ec2e8ebd6c8ec5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='1.05.211021-gog50897' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.xml r2g_launcher.exe' CONTENT_GAME_DATA_FILES=' *.pac supporters.utf8' CONTENT_DOC_DATA_FILES=' changelog.txt' USER_PERSISTENT_FILES=' custom_settings.txt *.xml' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/R2G_Common_WIP1/GOG users/${USER}/AppData/Roaming/Return2Games_WIP21/GOG' APP_MAIN_EXE='r2g_launcher.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" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-book-of-hours-expansions.sh0000755000000000000000000001216014471751340017037 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 contact@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.sh0000755000000000000000000001001014471751340014642 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 contact@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-boxville.sh0000755000000000000000000000471514471751340014013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Boxville # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='boxville' GAME_NAME='Boxville' ARCHIVE_BASE_0='boxville_1_0_61161.sh' ARCHIVE_BASE_0_MD5='4ac9f6f811999e3f6a457767dc0a583c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-gog61161' ARCHIVE_BASE_0_URL='https://www.gog.com/game/boxville' UNITY3D_NAME='Boxville' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so' CONTENT_LIBS0_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/data.unity3d ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.json" 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 libz.so.1' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-braid.sh0000755000000000000000000000471314471751340013246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Braid # send your bug reports to contact@dotslashplay.it ### script_version=20241114.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='braid' GAME_NAME='Braid' ARCHIVE_BASE_1_NAME='gog_braid_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='0d60f92ed8d1c72afb11c217cc907264' ARCHIVE_BASE_1_SIZE='170000' ARCHIVE_BASE_1_VERSION='2015.06.11-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/braid' ARCHIVE_BASE_0_NAME='gog_braid_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='22bac5c37b44916fea3e23092706d55d' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2015.06.11-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Braid.bin.x86' CONTENT_GAME_DATA_FILES=' data Icon.png' CONTENT_DOC_DATA_FILES=' licenses *.txt' APP_MAIN_EXE='Braid.bin.x86' APP_MAIN_ICON='Icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-braveland.sh0000755000000000000000000001155114471751340014121 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 contact@dotslashplay.it ### script_version=20230917.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' 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" ## Braveland (original game) PKG_DATA_ID_BRAVELAND="${GAME_ID_BRAVELAND}-data" PKG_BIN_DEPS_BRAVELAND="$PKG_DATA_ID_BRAVELAND" PKG_BIN32_DEPS_BRAVELAND="$PKG_BIN_DEPS_BRAVELAND" PKG_BIN64_DEPS_BRAVELAND="$PKG_BIN_DEPS_BRAVELAND" ## Braveland Wizard PKG_DATA_ID_WIZARD="${GAME_ID_WIZARD}-data" PKG_BIN_DEPS_PIRATE="$PKG_DATA_ID_PIRATE" PKG_BIN32_DEPS_PIRATE="$PKG_BIN_DEPS_PIRATE" PKG_BIN64_DEPS_PIRATE="$PKG_BIN_DEPS_PIRATE" ## Braveland Pirate PKG_DATA_ID_PIRATE="${GAME_ID_PIRATE}-data" PKG_BIN_DEPS_WIZARD="$PKG_DATA_ID_WIZARD" PKG_BIN32_DEPS_WIZARD="$PKG_BIN_DEPS_WIZARD" PKG_BIN64_DEPS_WIZARD="$PKG_BIN_DEPS_WIZARD" # 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 icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-breach-and-clear.sh0000755000000000000000000000741214471751340015234 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Breach & Clear # send your bug reports to contact@dotslashplay.it ### script_version=20240811.1 GAME_ID='breach-and-clear' GAME_NAME='Breach & Clear' GAME_ID_DEADLINE="${GAME_ID}-deadline" GAME_NAME_DEADLINE="$GAME_NAME - DEADline" UNITY3D_NAME='Bnc' UNITY3D_NAME_DEADLINE='DEADline' # Archives ## Breach & Clear (base game) ARCHIVE_BASE_HUMBLE_0='BncNix_12_4_15_NODRM.rar' ARCHIVE_BASE_HUMBLE_0_MD5='a2eff200bdce1b96852d2b709614d17a' ARCHIVE_BASE_HUMBLE_0_SIZE='2500000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.1.1-humble1' ARCHIVE_BASE_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_GOG_0='gog_breach_clear_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='e7f6b59d8ce97c9ab850b47608941b7d' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='2500000' ARCHIVE_BASE_GOG_0_VERSION='2.1.1-gog2.0.0.3' ## Breach & Clear: DEADline ARCHIVE_BASE_DEADLINE_0='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' CONTENT_PATH_DEFAULT_HUMBLE='BncHumboNix' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN_FILES_DEADLINE=" ${UNITY3D_NAME_DEADLINE}_Data/Mono ${UNITY3D_NAME_DEADLINE}_Data/Plugins ${UNITY3D_NAME_DEADLINE}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" CONTENT_GAME_DATA_FILES_DEADLINE=" ${UNITY3D_NAME_DEADLINE}_Data" 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=' ld-linux.so.2 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' # Enforce a consistent Unity3D name SCRIPT_DEPS="$SCRIPT_DEPS rename" # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name unity3d_name=$(unity3d_name) rename -- "s/.*_Data/${unity3d_name}_Data/" *_Data rename -- "s/.*\.x86/${unity3d_name}.x86/" *.x86 ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broforce.sh0000755000000000000000000000616614471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Broforce # send your bug reports to contact@dotslashplay.it ### script_version=20231115.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='broforce' GAME_NAME='Broforce' ARCHIVE_BASE_0_NAME='broforce_1034_20190611_30229.sh' ARCHIVE_BASE_0_MD5='8cbe5d69f77aaf36f99a74f39b9d200f' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1034.20190611-gog30229' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broforce' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_broforce_2.3.0.4.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='1187889af4979b1718c5529ccfb4d741' ARCHIVE_BASE_MULTIARCH_0_SIZE='1400000' ARCHIVE_BASE_MULTIARCH_0_VERSION='5399v201606232041-gog15203' UNITY3D_NAME='Broforce' ## TODO: Add an explicit list of plugins to include. CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' 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" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libstdc++.so.6 libfreetype.so.6 libXrandr.so.2 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## TODO: Check if the xrandr commmand is actually required. PKG_BIN_DEPENDENCIES_COMMANDS=' xrandr' PKG_BIN64_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" PKG_BIN32_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write ;; (*) set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-brothers-a-tale-of-two-sons.sh0000755000000000000000000000441214471751340017343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Brothers: A Tale of Two Sons # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='brothers-a-tale-of-two-sons' GAME_NAME='Brothers: A Tale of Two Sons' ARCHIVE_BASE_0_NAME='setup_brothers_-_a_tale_of_two_sons_gog-2_(6538).exe' ARCHIVE_BASE_0_MD5='59101e78c4e0687db9e07d45533cdea2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.2-gog6538' ARCHIVE_BASE_0_URL='https://www.gog.com/game/brothers_a_tale_of_two_sons' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binaries engine/config engine/shaders' CONTENT_GAME_DATA_FILES=' p13 engine/localization engine/splash' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Brothers - A Tale of Two Sons' ## Install required .NET framework. ## TODO: Check if Mono could be used instead. WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_WINETRICKS_VERBS='dotnet40' APP_MAIN_EXE='binaries/win32/brothers.exe' ## Explicitly setting the application type is required, or it would be misidentified as a Mono game. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_DATA PKG_BIN' 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-brutal-legend.sh0000755000000000000000000000651414471751340014713 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Brütal Legend # send your bug reports to contact@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='brutal-legend' GAME_NAME='Brütal Legend' ARCHIVE_BASE_GOG_0_NAME='gog_brutal_legend_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='f5927fb8b3959c52e2117584475ffe49' ARCHIVE_BASE_GOG_0_SIZE='8800000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/brutal_legend' ## This installer used to be sold at Humble Bundle, ## but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0_NAME='BrutalLegend-Linux-2013-06-15-setup.bin' ARCHIVE_BASE_HUMBLE_0_MD5='cbda6ae12aafe20a76f4d45367430d32' ## The Humble Bundle installer looks like some custom MojoSetup installer, ## but it does not seem to be based on Makeself like the ones we usually work with. ## We force its extraction using unzip, ignoring errors due to the installer not being a real .zip archive. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='unzip' ARCHIVE_BASE_HUMBLE_0_SIZE='8800000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130616' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libsteam_api.so' CONTENT_GAME_BIN_FILES=' Buddha.bin.x86 DFCONFIG' CONTENT_GAME_AUDIO_FILES=' Win' CONTENT_GAME_DATA_FILES=' Buddha.png Data Linux OGL' USER_PERSISTENT_FILES=' DFCONFIG' APP_MAIN_EXE='Buddha.bin.x86' APP_MAIN_ICON='Buddha.png' PACKAGES_LIST=' PKG_AUDIO PKG_DATA PKG_BIN' PKG_AUDIO_ID="${GAME_ID}-audio" PKG_AUDIO_DESCRIPTION='audio' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_AUDIO_ID $PKG_DATA_ID" 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 libSDL2-2.0.so.0 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 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) ## The Humble Bundle installer looks like some custom MojoSetup installer, ## but it does not seem to be based on Makeself like the ones we usually work with. ## We force its extraction using unzip, ignoring errors due to the installer not being a real .zip archive. archive_extraction_default 2>/dev/null || true ;; (*) archive_extraction_default ;; 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bubbles-the-cat.sh0000755000000000000000000000516614471751340015131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bubbles the Cat # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='bubbles-the-cat' GAME_NAME='Bubbles the Cat' ARCHIVE_BASE_0_NAME='BubblesTheCat._v1016_Standalone.zip' ARCHIVE_BASE_0_MD5='75c5130b47cd1bb4cf3f9f9d8239ba31' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1016-itch' ARCHIVE_BASE_0_URL='https://teamcatsandbears.itch.io/bubbles-the-cat' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' BubblesTheCat.exe' CONTENT_GAME_DATA_FILES=' data.win' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/BubblesTheCat' APP_MAIN_EXE='BubblesTheCat.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' # Use icotool for the .ico → .png icon conversion SCRIPT_DEPS="${SCRIPT_DEPS:-} icotool" # 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 ## Use icotool for the .ico → .png icon conversion ## TODO: Check why convert from ImageMagick can not be used icon_extract_png_from_ico() { local icon destination icon="$1" destination="$2" local icon_file icon_file=$(icon_full_path "$icon") icotool --extract --output="$destination" "$icon_file" # Generate smaller variants of the icon from the original 1024×1024 one local png_original png_original=$(find "$destination" -name '*.png') convert "$png_original" -resize 512 "${png_original%.png}_512.png" convert "$png_original" -resize 256 "${png_original%.png}_256.png" convert "$png_original" -resize 128 "${png_original%.png}_128.png" convert "$png_original" -resize 64 "${png_original%.png}_64.png" } 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-butcher.sh0000755000000000000000000000600214471751340013612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 berru set -o errexit ### # Butcher # send your bug reports to contact@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='butcher' GAME_NAME='Butcher' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## Archives ### Full game ARCHIVE_BASE_0_NAME='butcher_w_i_m_p_gog_10_33399.sh' ARCHIVE_BASE_0_MD5='88f2e3d426f8dbcc0b78c53a43063329' ARCHIVE_BASE_0_SIZE='206121' ARCHIVE_BASE_0_VERSION='1.0-gog33399' ARCHIVE_BASE_0_URL='https://www.gog.com/game/butcher' ### Free demo ARCHIVE_BASE_DEMO_0_NAME='gog_butcher_demo_2.0.0.1.sh' ARCHIVE_BASE_DEMO_0_MD5='03ed5d89ef38ef10a3318b8da7e62525' ARCHIVE_BASE_DEMO_0_SIZE='106381' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/butcher_demo' UNITY3D_NAME='Butcher' UNITY3D_NAME_DEMO='butcher' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so libSteamworksWrapper64.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_DEMO=' PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" 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 case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) launchers_generation 'PKG_BIN64' ;; (*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-calico.sh0000755000000000000000000000354114471751340013415 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Calico # send your bug reports to contact@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' ## The command `calico` is already provided by an IRC bouncer: ## https://git.causal.agency/pounce/about/calico.1 GAME_ID='calico-game' GAME_NAME='Calico' ARCHIVE_BASE_0_NAME='setup_calico_1.0.5_(45142).exe' ARCHIVE_BASE_0_MD5='f2b7aa8e3944f26a02d1ea19afa8e4f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0.5-gog45142' ARCHIVE_BASE_0_URL='https://www.gog.com/game/calico' UNITY3D_NAME='calico' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Peachy Keen Games/Calico' 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" # 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-call-of-cthulhu-prisoner-of-ice.sh0000755000000000000000000000526514471751340020156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Prisoner of Ice # send your bug reports to contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='call-of-cthulhu-prisoner-of-ice' GAME_NAME='Call of Cthulhu: Prisoner of Ice' ARCHIVE_BASE_EN_0_NAME='call_of_cthulhu_prisoner_of_ice_en_gog_5_17654.sh' ARCHIVE_BASE_EN_0_MD5='c3f64c02981cfacefd3b3f8d0d504ac3' ARCHIVE_BASE_EN_0_SIZE='310000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog17654' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' ARCHIVE_BASE_FR_0_NAME='call_of_cthulhu_prisoner_of_ice_fr_gog_5_17654.sh' ARCHIVE_BASE_FR_0_MD5='da1f4dad3ee3817a026390fa28320284' ARCHIVE_BASE_FR_0_SIZE='350000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog17654' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/call_of_cthulhu_prisoner_of_ice' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' ice cd' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' CONTENT_DOC1_MAIN_PATH_EN='data/noarch/docs/english' CONTENT_DOC1_MAIN_PATH_FR='data/noarch/docs/french' CONTENT_DOC1_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='cd' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='ice640.exe' APP_MAIN_DOSBOX_PRERUN='d:' APP_MAIN_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' USER_PERSISTENT_FILES=' ice/*.cfg ice/*.ice ice/*.pck' 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" # 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 content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-call-of-cthulhu-shadow-of-the-comet.sh0000755000000000000000000000544314471751340020725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Call of Cthulhu: Shadow of the Comet # send your bug reports to contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='call-of-cthulhu-shadow-of-the-comet' GAME_NAME='Call of Cthulhu: Shadow of the Comet' ARCHIVE_BASE_0_NAME='gog_call_of_cthulhu_shadow_of_the_comet_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='18c4f78b766e8e1d638e4ac32df0be60' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/call_of_cthulhu_shadow_of_the_comet' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' infogram cd' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' GAME_IMAGE='cd' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='shadow.exe' APP_MAIN_DOSBOX_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MAIN_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' APP_MUSEUM_ID="${GAME_ID}-museum" APP_MUSEUM_NAME="$GAME_NAME - Lovecraft Museum" APP_MUSEUM_EXE='museum.exe' APP_MUSEUM_DOSBOX_PRERUN='d: config -set cpu cycles=fixed 13000' APP_MUSEUM_ICON='../support/icon.png' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MUSEUM_TYPE='dosbox' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='install.exe' APP_SETUP_DOSBOX_PRERUN='d:' APP_SETUP_ICON="$APP_MAIN_ICON" ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_SETUP_TYPE='dosbox' USER_PERSISTENT_FILES=' infogram/shadow.cd/*.cfg infogram/shadow.cd/*.opt infogram/shadow.cd/*.sav' # 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 content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-candleman.sh0000755000000000000000000000430414471751340014103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Candleman # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='candleman' GAME_NAME='Candleman' ARCHIVE_BASE_0='setup_candleman_the_complete_journey_1.07_(50980).exe' ARCHIVE_BASE_0_MD5='4b16554e2acc81d44fb7c90e2cae9854' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_candleman_the_complete_journey_1.07_(50980)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b5e19beda13aae27d5aa27256771d6d8' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.07-gog50980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/candleman' UNITY3D_NAME='candleman' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Candleman Games/Candleman' APP_MAIN_EXE="${UNITY3D_NAME}.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-capsized.sh0000755000000000000000000000711614471751340013767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Capsized # send your bug reports to contact@dotslashplay.it ### script_version=20240830.3 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='capsized' GAME_NAME='Capsized' ARCHIVE_BASE_GOG_0_NAME='gog_capsized_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='f516c52b4614d63c3cfa4e1ed43934b8' ARCHIVE_BASE_GOG_0_SIZE='670000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/capsized' ARCHIVE_BASE_HUMBLE_0_NAME='capsized-12212015-bin' ARCHIVE_BASE_HUMBLE_0_MD5='10515ca5f73e38151e17766cba97f3ed' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='650000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble151221' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/capsized' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_FILES=' libmojoshader.so libtheoraplay.so' ## The shipped build of OpenAL must be used, to prevent a crash on launch CONTENT_LIBS_FILES="${CONTENT_LIBS_FILES:-} libopenal.so.1" CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content mono de es fr it Capsized.bmp NePlusUltra.exe FarseerPhysicsXNA.dll FNA.dll FNA.dll.config Lidgren.Network.dll ProjectMercury.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='NePlusUltra.exe' APP_MAIN_ICON='Capsized.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-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.Runtime.Serialization.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" 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 libtheoradec.so.1 libtheora.so.0 libvorbis.so.0' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-caravan.sh0000755000000000000000000000555714471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Caravan # send your bug reports to contact@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-card-city-nights.sh0000755000000000000000000000413714471751340015336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Card City Nights # send your bug reports to contact@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='card-city-nights' GAME_NAME='Card City Nights' ARCHIVE_BASE_0_NAME='cardcitynights_linux.zip' ARCHIVE_BASE_0_MD5='c843bd5642e2448e3a2c3e56c053fc84' ARCHIVE_BASE_0_SIZE='241947' ARCHIVE_BASE_0_VERSION='1.0.4-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/card-city-nights' UNITY3D_NAME='ccn' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' 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=' 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' # 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-carto.sh0000755000000000000000000000535214471751340013275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Carto # send your bug reports to contact@dotslashplay.it ### script_version=20230704.2 GAME_ID='carto' GAME_NAME='Carto' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game ARCHIVE_BASE_0='setup_carto_1.0.7.6_(64bit)_(51528).exe' ARCHIVE_BASE_0_MD5='0c8dbc7a106673b8a8825c4f2e3ee6df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0.7.6-gog51528' ARCHIVE_BASE_0_URL='https://www.gog.com/game/carto' ## Demo ARCHIVE_BASE_DEMO_0='setup_carto_demo_1.0.7_(64bit)_(45496).exe' ARCHIVE_BASE_DEMO_0_MD5='b86ddbfde260933365c595f750cdc45b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1300000' ARCHIVE_BASE_DEMO_0_VERSION='1.0.7-gog45496' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/carto_demo' UNITY3D_NAME='carto' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge galaxy64.dll galaxycsharpglue.dll unityplayer.dll winpixeventruntime.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/SunheadGames/Carto' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" 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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cat-quest.sh0000755000000000000000000000501214471751340014064 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cat Quest series: # - Cat Quest 1 # - Cat Quest 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240707.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='cat-quest-1' GAME_NAME_EPISODE1='Cat Quest' GAME_ID_EPISODE2='cat-quest-2' GAME_NAME_EPISODE2='Cat Quest II' ARCHIVE_BASE_EPISODE1_0_NAME='setup_cat_quest_1.2.10.2_(42782).exe' ARCHIVE_BASE_EPISODE1_0_MD5='496d069ea28098aa6d575fc56f8c71ec' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='334416' ARCHIVE_BASE_EPISODE1_0_VERSION='1.2.10.2-gog42782' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/en/game/cat_quest' ARCHIVE_BASE_EPISODE2_0_NAME='setup_cat_quest_ii_1.7.7.3_(51746).exe' ARCHIVE_BASE_EPISODE2_0_MD5='78f1001f07099b398ce66d971bf9b17c' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='511796' ARCHIVE_BASE_EPISODE2_0_VERSION='1.7.7.3-gog51746' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/en/game/cat_quest_ii' UNITY3D_NAME_EPISODE1='cat quest' UNITY3D_NAME_EPISODE2='cat quest ii' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/AppData/LocalLow/The Gentlebros Pte_ Ltd_/Cat Quest' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/Documents/Cat Quest II' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" # 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-cats-are-liquid.sh0000755000000000000000000000560014471751340015145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cats are Liquid series: # - Cats are Liquid 1 # - Cats are Liquid 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240619.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='cats-are-liquid-1' GAME_NAME_EPISODE1='Cats are Liquid - A Light in the Shadows' GAME_ID_EPISODE2='cats-are-liquid-2' GAME_NAME_EPISODE2='Cats are Liquid - A Better Place' ARCHIVE_BASE_EPISODE1_0_NAME='CatsAreLiquidLinux.zip' ARCHIVE_BASE_EPISODE1_0_MD5='eb01e4f7c44543051e95bc78b777bb5b' ARCHIVE_BASE_EPISODE1_0_SIZE='171981' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-itch1' ARCHIVE_BASE_EPISODE1_0_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-light-in-the-shadows' ARCHIVE_BASE_EPISODE2_0_NAME='CaL-ABP-Linux.zip' ARCHIVE_BASE_EPISODE2_0_MD5='a61524e809870b026dc8a993b177b9b9' ARCHIVE_BASE_EPISODE2_0_SIZE='437281' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-itch1' ARCHIVE_BASE_EPISODE2_0_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-better-place' UNITY3D_NAME_EPISODE1='CatsAreLiquidLinux' UNITY3D_NAME_EPISODE2='CaL-ABP-Linux' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS_EPISODE1="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" UNITY3D_PLUGINS_EPISODE2="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT_EPISODE1='CatsAreLiquidLinux' CONTENT_PATH_DEFAULT_EPISODE2='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_EPISODE1='32' PKG_BIN_ARCH_EPISODE2='64' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" 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" # 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-cayne.sh0000755000000000000000000000417514471751340013266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Cayne # send your bug reports to contact@dotslashplay.it ### script_version=20240603.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cayne' GAME_NAME='Cayne' ARCHIVE_BASE_0_NAME='gog_cayne_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e1f78fd010c6185b828378aa7af3d7a8' ARCHIVE_BASE_0_SIZE='4063719' ARCHIVE_BASE_0_VERSION='1.26-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cayne' UNITY3D_NAME='cayne' UNITY3D_PLUGINS=' libMouseLib64.so libMouseLib.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' Library/Application Support/The Brotherhood' 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 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" # 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-celeste.sh0000755000000000000000000000554714471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Celeste # send your bug reports to contact@dotslashplay.it ### script_version=20240226.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='celeste' GAME_NAME='Celeste' ARCHIVE_BASE_1_NAME='celeste-linux.zip' ARCHIVE_BASE_1_MD5='518ea69d60079109a2575d428eff8a53' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.4.0.0-itch.2021.03.29' ARCHIVE_BASE_1_URL='https://maddymakesgamesinc.itch.io/celeste' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' Content Celeste.exe Celeste.exe.config Celeste.png gamecontrollerdb.txt Celeste.Content.dll FNA.dll FNA.dll.config FNA3D.dll' ## Include shipped libraries that can not be replaced by system ones. CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libfmod*.so* libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmod*.so* libmojoshader.so libFNA3D.so.0' APP_MAIN_EXE='Celeste.exe' APP_MAIN_ICON='Celeste.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libXrandr.so.2' 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' ## Include shipped libraries that can not be replaced by system ones. ## TODO: These shipped libraries probably depend on some system native libraries being available. PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="${PKG_MAIN_DEPS:-} $PKG_LIBS_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chained-echoes.sh0000755000000000000000000000423014471751340015016 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chained Echoes # send your bug reports to contact@dotslashplay.it ### script_version=20241217.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='chained-echoes' GAME_NAME='Chained Echoes' ARCHIVE_BASE_1_NAME='chained_echoes_1_322_71539.sh' ARCHIVE_BASE_1_MD5='1bfa6fc06f6f6dce5943d5a28ed92951' ARCHIVE_BASE_1_SIZE='822597' ARCHIVE_BASE_1_VERSION='1.322-gog71539' ARCHIVE_BASE_1_URL='https://www.gog.com/game/chained_echoes' ARCHIVE_BASE_0_NAME='chained_echoes_1_3_65510.sh' ARCHIVE_BASE_0_MD5='b319014ce49e39b8ff4aa3540a79e874' ARCHIVE_BASE_0_SIZE='830524' ARCHIVE_BASE_0_VERSION='1.3-gog65510' UNITY3D_NAME='Chained_Echoes' UNITY3D_NAME_0='Chained Echoes' 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' 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 shipped Steam libraries 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-chaos-reborn.sh0000755000000000000000000001046714471751340014552 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 contact@dotslashplay.it ### script_version=20230226.3 GAME_ID='chaos-reborn' GAME_NAME='Chaos Reborn' ARCHIVE_BASE_4='chaos_reborn_en_1_13_3_23004.sh' ARCHIVE_BASE_4_MD5='283d60b5adf91640679d2fe1c7962300' ARCHIVE_BASE_4_TYPE='mojosetup' 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='chaos_reborn_en_1_13_2_17223.sh' ARCHIVE_BASE_3_MD5='edb60d98710c87c0adea06f55be99567' ARCHIVE_BASE_3_TYPE='mojosetup' ARCHIVE_BASE_3_SIZE='1700000' ARCHIVE_BASE_3_VERSION='1.13.2-gog17223' ARCHIVE_BASE_2='chaos_reborn_en_1_131_14290.sh' ARCHIVE_BASE_2_MD5='fcfea11ad6a6cbdda2290c4f29bbeb2b' ARCHIVE_BASE_2_TYPE='mojosetup' ARCHIVE_BASE_2_SIZE='1700000' ARCHIVE_BASE_2_VERSION='1.13.1-gog14290' ARCHIVE_BASE_1='gog_chaos_reborn_2.14.0.16.sh' ARCHIVE_BASE_1_MD5='97dbfc0a679a7fd104c744b6aa46db36' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1700000' ARCHIVE_BASE_1_VERSION='1.13-gog2.14.0.16' ARCHIVE_BASE_0='gog_chaos_reborn_2.13.0.15.sh' ARCHIVE_BASE_0_MD5='a2abf12572eea8b43059a9bb8d5d3171' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.12.2-gog2.13.0.15' UNITY3D_NAME='ChaosRebornLinux' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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" # Enforce windowed mode on first launch APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enforce 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' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-charterstone.sh0000755000000000000000000000426714471751340014672 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 contact@dotslashplay.it ### script_version=20221231.1 GAME_ID='charterstone' GAME_NAME='Charterstone' UNITY3D_NAME='Charterstone' ARCHIVE_BASE_0='charterstone_digital_edition_1_2_9_60090.sh' ARCHIVE_BASE_0_MD5='2ae5e0a2a81433b3ae54e8ff80af9274' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='620000' ARCHIVE_BASE_0_VERSION='1.2.9-gog60090' ARCHIVE_BASE_0_URL='https://www.gog.com/game/charterstone_digital_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64 UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libsecret-1.so.0 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chroma-squad.sh0000755000000000000000000000613414471751340014550 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 contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='chroma-squad' GAME_NAME='Chroma Squad' ARCHIVE_BASE_0='chroma_squad_en_1_12b_15401.sh' ARCHIVE_BASE_0_MD5='5f76d2b8942261ff837398c3a674db91' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/savedGames" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chronology.sh0000755000000000000000000000463514471751340014353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chronology # send your bug reports to contact@dotslashplay.it ### script_version=20240122.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='chronology' GAME_NAME='Chronology' ARCHIVE_BASE_0_NAME='Chronology Windows 1.0.20.zip' ARCHIVE_BASE_0_MD5='08236874d0553d9953c56ee3472468f2' ARCHIVE_BASE_0_SIZE='240000' ARCHIVE_BASE_0_VERSION='1.0.20-itch1' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/chronology' CONTENT_PATH_DEFAULT='Chronology Windows 1.0.20' CONTENT_GAME_BIN_FILES=' Chronology.exe *.dll' CONTENT_GAME_DATA_FILES=' Content Screengroup.dat' CONTENT_DOC_DATA_FILES=' BuildDate.txt License.txt' ## The game engine expects write access to files under Content. USER_PERSISTENT_DIRECTORIES=' Content' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The game fails to start if Mono is used instead of .NET. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} dotnet40" ## The game crashes when trying to play if the PE32 OpenAL library is missing. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} openal" APP_MAIN_EXE='Chronology.exe' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chuchel.sh0000755000000000000000000000353114471751340013575 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Chuchel # send your bug reports to contact@dotslashplay.it ### script_version=20240630.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='chuchel' GAME_NAME='Chuchel' ARCHIVE_BASE_0_NAME='setup_chuchel_2.0.0_(26120).exe' ARCHIVE_BASE_0_MD5='d9af6a71485c90b8907bc2326e4b704a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='2.0.0-gog26120' ARCHIVE_BASE_0_URL='https://www.gog.com/game/chuchel' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adober air chuchel.exe' CONTENT_GAME_DATA_FILES=' chuchel_graphics_o chuchel_sound_data ico meta-inf chuchel.swf' ## FIXME: Add persistent storage for saved games and settings. APP_MAIN_EXE='chuchel.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" # 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-cineris-somnia.sh0000755000000000000000000000353514471751340015106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Cineris Somnia # send your bug reports to contact@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cineris-somnia' GAME_NAME='Cineris Somnia' ## This game installer is no longer available from playism.com, ## as they closed their store down in favour of Steam. ARCHIVE_BASE_0_NAME='CINERIS_SOMNIA_PLAYISM_20181109.zip' ARCHIVE_BASE_0_MD5='c25ea529ffb12b0e055d05117c5bc24d' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.01-playism20181109' UNITY3D_NAME='Cineris Somnia' CONTENT_PATH_DEFAULT='20181109_101' CONTENT_DOC_DATA_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nayuta Studio/Cineris Somnia' 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-civilization-4.sh0000755000000000000000000001352214471751340015030 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 contact@dotslashplay.it ### script_version=20231117.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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="${CONTENT_PATH_DEFAULT}/.." 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="${CONTENT_PATH_DEFAULT}/.." 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="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_DATA_FILES=" Sid Meier's Civilization 4.pdf Sid Meier's Civilization 4 (FR).pdf" CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/../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_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_DEPS="$PKG_DATA_ID" PKG_DATA_SWORD_ID="${GAME_ID}-beyond-the-sword-data" PKG_DATA_SWORD_DESCRIPTION='Beyond the Sword - data' PKG_DATA_SWORD_DEPS="$PKG_DATA_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_WARLORDS_ID="${GAME_ID}-warlords" PKG_BIN_WARLORDS_DESCRIPTION='Warlords' PKG_BIN_WARLORDS_ARCH='32' PKG_BIN_WARLORDS_DEPS="$PKG_DATA_WARLORDS_ID" PKG_BIN_SWORD_ID="${GAME_ID}-beyond-the-sword" PKG_BIN_SWORD_DESCRIPTION='Beyond the Sword' PKG_BIN_SWORD_ARCH='32' PKG_BIN_SWORD_DEPS="$PKG_DATA_SWORD_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 set_current_package 'PKG_DATA' icons_inclusion 'APP_MAIN' set_current_package 'PKG_DATA_WARLORDS' icons_inclusion 'APP_WARLORDS' set_current_package 'PKG_DATA_SWORD' icons_inclusion 'APP_SWORD' content_inclusion_default # Ensure fonts expected by the game are available ## TODO: The library should provide a function path_fonts (or path_fonts_ttf?) returning this path. PATH_FONTS="$(option_value 'PREFIX')/share/fonts/truetype/$(game_id)" fonts_path_system="$(package_path 'PKG_DATA')${PATH_FONTS}" fonts_path_game="$(package_path 'PKG_DATA')$(path_game_data)" mkdir --parents "$fonts_path_system" for font_file 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 mv --force "${fonts_path_game}/${font_file}" "${fonts_path_system}/$(basename "$font_file")" ln --symbolic "${PATH_FONTS}/$(basename "$font_file")" "${fonts_path_game}/${font_file}" done # Write launchers set_current_package 'PKG_BIN' launchers_write 'APP_MAIN' set_current_package 'PKG_BIN_WARLORDS' launchers_write 'APP_WARLORDS' set_current_package 'PKG_BIN_SWORD' launchers_write 'APP_SWORD' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cleo-a-pirates-tale.sh0000755000000000000000000000342514471751340015714 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cleo - A Pirate's Tale # send your bug reports to contact@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cleo-a-pirates-tale' GAME_NAME='Cleo - A Pirate’s Tale' ARCHIVE_BASE_0_NAME='setup_cleo_-_a_pirates_tale_1.1.5_(52212).exe' ARCHIVE_BASE_0_MD5='3b5dea47b0517c5801275eac47d71b01' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.1.5-gog52212' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cleo_a_pirates_tale' UNITY3D_NAME='cleoapiratestale' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Christoph Schultz/CleoAPiratesTale' 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-closure.sh0000755000000000000000000000662514471751340013645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Closure # send your bug reports to contact@dotslashplay.it ### script_version=20241009.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='closure' GAME_NAME='Closure' ARCHIVE_BASE_0_NAME='Closure-Linux-1.1-2012-12-28.sh' ARCHIVE_BASE_0_MD5='a7c2f7fe17ff67f376da70611abdce97' ARCHIVE_BASE_0_SIZE='800000' ARCHIVE_BASE_0_VERSION='1.1-humble.2012.12.28' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/closure' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN64_FILES=' Closure.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Closure.bin.x86' CONTENT_GAME_DATA_FILES=' resources Closure.png' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN64='Closure.bin.x86_64' APP_MAIN_EXE_BIN32='Closure.bin.x86' APP_MAIN_ICON='Closure.png' ## The game crashes on launch when the Wayland 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 renders nothing but a black screen when using the SDL1 → SDL2 compatibility wrapper APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-} # The game renders nothing but a black screen when using the SDL1 → SDL2 compatibility wrapper export SDL12COMPAT_OPENGL_SCALING=0 " 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=' libalut.so.0 libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 librt.so.1 libSDL-1.2.so.0 libstdc++.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" # Extract game data archive_extraction_default ARCHIVE_INNER_BIN64_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_linux_x86_64" ARCHIVE_INNER_BIN64_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_BIN64' rm "$(archive_path 'ARCHIVE_INNER_BIN64')" ARCHIVE_INNER_BIN32_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_linux_x86" ARCHIVE_INNER_BIN32_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_BIN32' rm "$(archive_path 'ARCHIVE_INNER_BIN32')" ARCHIVE_INNER_DATA_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_all" ARCHIVE_INNER_DATA_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_DATA' rm "$(archive_path 'ARCHIVE_INNER_DATA')" # 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-cloud-gardens.sh0000755000000000000000000000327114471751340014712 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cloud Gardens # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='cloud-gardens' GAME_NAME='Cloud Gardens' ARCHIVE_BASE_0_NAME='f09f8cb1-windows.zip' ARCHIVE_BASE_0_MD5='d37797bda416ef5495441aabf2f906ea' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.1-itch.2022.03.09' ARCHIVE_BASE_0_URL='https://noio.itch.io/cloud-gardens' UNITY3D_NAME='Cloud Gardens' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/noio/Cloud Gardens' 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" # 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-codemancer.sh0000755000000000000000000000404314471751340014261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Codemancer # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='codemancer' GAME_NAME='Codemancer' ARCHIVE_BASE_0='Codemancer.msi' ARCHIVE_BASE_0_MD5='727dfcf3640ce064f455a023c1c50e1e' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.2-itch.2020.03.17' ARCHIVE_BASE_0_URL='https://importantlittlegames.itch.io/codemancer-ch-1' CONTENT_PATH_DEFAULT='appdir:.' CONTENT_GAME_BIN_FILES=' adobe air codemancer chapter 1.exe' CONTENT_GAME_DATA_FILES=' assets meta-inf mimetype icon.ico *.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/CodemancerChapter1' APP_MAIN_EXE='codemancer chapter 1.exe' APP_MAIN_ICON='icon.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-coffee-noir-business-detective-game.sh0000755000000000000000000000467214471751340021077 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 contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-commandos-3.sh0000755000000000000000000000432414471751340014303 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 # send your bug reports to contact@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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=' *.dll *.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' APP_MAIN_EXE='commandos3.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" ## FIXME: This game should be run in a WINE virtual desktop. # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-convoy.sh0000755000000000000000000000534514471751340013504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Convoy # send your bug reports to contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='convoy' GAME_NAME='Convoy' ARCHIVE_BASE_3_NAME='convoy_1_1_54_27852.sh' ARCHIVE_BASE_3_MD5='2f7dd6c597e07638650cc01883e0367f' ARCHIVE_BASE_3_SIZE='860000' ARCHIVE_BASE_3_VERSION='1.1.54-gog27852' ARCHIVE_BASE_3_URL='https://www.gog.com/game/convoy' ARCHIVE_BASE_2_NAME='convoy_1_1_53_27205.sh' ARCHIVE_BASE_2_MD5='cda02a99f12adc608a0193f75fc9d7d3' ARCHIVE_BASE_2_SIZE='860000' ARCHIVE_BASE_2_VERSION='1.1.53-gog27205' ARCHIVE_BASE_1_NAME='convoy_1_1_52_26363.sh' ARCHIVE_BASE_1_MD5='99b331906d75443f08c4f787bc83a7ef' ARCHIVE_BASE_1_SIZE='860000' ARCHIVE_BASE_1_VERSION='1.1.52-gog26363' ARCHIVE_BASE_0='gog_convoy_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='2d66599173990eb202a43dbc547c80f5' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.1.51-gog2.4.0.7' UNITY3D_NAME='Convoy' 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_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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cook-serve-delicious-2.sh0000755000000000000000000000423114471751340016352 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Cook, Serve, Delicious 2 # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='cook-serve-delicious-2' GAME_NAME='Cook, Serve, Delicious! 2!!' ARCHIVE_BASE_0='CSD2_Linux_v2_60m1_1.zip' ARCHIVE_BASE_0_MD5='1842d43dc715a61d1776a3432b7bf758' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://chubigans.itch.io/cook-serve-delicious-2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' NEW_CSD2_PS4Steam' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='NEW_CSD2_PS4Steam' APP_MAIN_ICON='assets/icon.png' 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 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cornerstone-the-song-of-tyrim.sh0000755000000000000000000000420714471751340020012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Cornerstone: The Song of Tyrim # send your bug reports to contact@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='cornerstone-the-song-of-tyrim' GAME_NAME='Cornerstone: The Song of Tyrim' ARCHIVE_BASE_0_NAME='Cornerstone_1.00_Linux.zip' ARCHIVE_BASE_0_MD5='ba8e257c18d3606d4b7e4295be893b9c' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.00-humble160425' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/cornerstone-the-song-of-tyrim' UNITY3D_NAME='Cornerstone' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' 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=' 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' # 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-costume-quest.sh0000755000000000000000000000464614471751340015010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Costume Quest # send your bug reports to contact@dotslashplay.it ### script_version=20230227.2 GAME_ID='costume-quest' GAME_NAME='Costume Quest' ARCHIVE_BASE_0='gog_costume_quest_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='3c2f2126be1ca2148f333c453341b810' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/costume_quest' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libSDL2-2.0.so.0' CONTENT_GAME_BIN_FILES=' Cq.bin.x86' CONTENT_GAME_DATA_FILES=' DFCONFIG Data/Config Linux/Packs OGL/Shaders Win/Audio/Music Win/Audio/Music_DLC Win/Audio/SFX Win/Audio/CostumeQuest_USEnglish Win/Audio/Voice' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES='*' APP_MAIN_EXE='Cq.bin.x86' APP_MAIN_ICON='../support/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libopenal.so.1 libGL.so.1 libGLU.so.1 libSDL2-2.0.so.0' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-cotrio.sh0000755000000000000000000000413614471751340013463 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cotrio # send your bug reports to contact@dotslashplay.it ### script_version=20221030.2 GAME_ID='cotrio' GAME_NAME='Cotrio' ARCHIVE_BASE_0='Cotrio by Bart Bialek PC x64.zip' ARCHIVE_BASE_0_MD5='6773aa0537f1d53b319817763db7f0e0' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.10.28' ARCHIVE_BASE_0_URL='https://bialek.itch.io/cotrio' UNITY3D_NAME='Cotrio' CONTENT_PATH_DEFAULT='PCx64' CONTENT_GAME_BIN_FILES=" Mono UnityPlayer.dll ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" APP_MAIN_ICON="$APP_MAIN_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" # Use persistent storage for registry keys WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Bkbl Bartosz Białek\Cotrio' # Load common functions target_version='2.18' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-creaks.sh0000755000000000000000000000347214471751340013436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creaks # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='creaks' GAME_NAME='Creaks' ARCHIVE_BASE_0_NAME='setup_creaks_1.0.9_(46052).exe' ARCHIVE_BASE_0_MD5='53c45d5337970ae4f3cd33ac846a4b34' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_creaks_1.0.9_(46052)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a6dd1d513945b49753918f7031936a1d' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0.9-gog46052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/creaks' UNITY3D_NAME='creaks' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Amanita Design/Creaks' 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" # 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-creepy-tale.sh0000755000000000000000000000610214471751340014371 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creepy Tale series: # - Creepy Tale 1 # - Creepy Tale 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240811.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='creepy-tale-1' GAME_NAME_EPISODE1='Creepy Tale' GAME_ID_EPISODE2='creepy-tale-2' GAME_NAME_EPISODE2='Creepy Tale 2' ARCHIVE_BASE_EPISODE1_0_NAME='creepy_tale_english_1_0_2c_42446.sh' ARCHIVE_BASE_EPISODE1_0_MD5='727b15afedd0ef2e58565b40419e76de' ARCHIVE_BASE_EPISODE1_0_SIZE='180064' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0.2c-gog42446' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/creepy_tale' ARCHIVE_BASE_EPISODE2_0_NAME='creepy_tale_2_1_0_0a_53727.sh' ARCHIVE_BASE_EPISODE2_0_MD5='e2626eaebe690d4b8cbf7506ff78fff9' ARCHIVE_BASE_EPISODE2_0_SIZE='560000' ARCHIVE_BASE_EPISODE2_0_VERSION='2.1.0.0a-gog53727' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/creepy_tale_2' UNITY3D_NAME_EPISODE1='creepy_tale' UNITY3D_NAME_EPISODE2='CreepyTale2' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS_EPISODE1=' libsteam_api.so' UNITY3D_PLUGINS_EPISODE2=' libfmodstudio.so libresonanceaudio.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS_EPISODE2="$UNITY3D_PLUGINS_EPISODE2 libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated with pre-20230414.1 game scripts. PKG_DATA_PROVIDES_EPISODE1="${PKG_DATA_PROVIDES_EPISODE1:-} creepy-tale-data" PKG_BIN_ARCH='64' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE2=' 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' ## Ensure easy upgrade from packages generated with pre-20230414.1 game scripts. PKG_BIN_PROVIDES_EPISODE1="${PKG_BIN_PROVIDES_EPISODE1:-} creepy-tale-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-crosscode.sh0000755000000000000000000001105214471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # CrossCode # send your bug reports to contact@dotslashplay.it ### script_version=20241201.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crosscode' GAME_NAME='CrossCode' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_64BIT_0_NAME='crosscode-new-linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='2fece5dc78bf6bfdde7e6b3239da73b6' ARCHIVE_BASE_64BIT_0_SIZE='1019175' ARCHIVE_BASE_64BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_32BIT_0_NAME='crosscode-new-linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='630cfd22cd5e9e168f833dfa3fce9931' ARCHIVE_BASE_32BIT_0_SIZE='1021105' ARCHIVE_BASE_32BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_64BIT_0_NAME='crosscode-demo-linux64.zip' ARCHIVE_BASE_DEMO_64BIT_0_MD5='242e4cc9f48bd70a04f2d5d5e3258207' ARCHIVE_BASE_DEMO_64BIT_0_SIZE='211392' ARCHIVE_BASE_DEMO_64BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_32BIT_0_NAME='crosscode-demo-linux32.zip' ARCHIVE_BASE_DEMO_32BIT_0_MD5='6b6c85bcd7ad315ee42a4c785e3e85a6' ARCHIVE_BASE_DEMO_32BIT_0_SIZE='221220' ARCHIVE_BASE_DEMO_32BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_LIBS0_BIN_RELATIVE_PATH='swiftshader' CONTENT_LIBS0_BIN_FILES=' libEGL.so libGLESv2.so' CONTENT_GAME_BIN_FILES=' CrossCode' ## TODO: Check if the Steam id file is required CONTENT_GAME_DATA_FILES=' assets locales natives_blob.bin v8_context_snapshot.bin icudtl.dat credits.html package.json favicon.png nw_100_percent.pak nw_200_percent.pak resources.pak steam_appid.txt' APP_MAIN_EXE='CrossCode' APP_MAIN_ICON='favicon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_DEMO_64BIT='64' PKG_BIN_ARCH_DEMO_32BIT='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libatspi.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libgcc_s.so.1 libgdk-3.so.0 libgdk_pixbuf-2.0.so.0 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 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libuuid.so.1 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 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 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 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 libXss.so.1 libXtst.so.6' 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 case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) # No icon is provided with the demo builds ;; (*) 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-crossing-souls.sh0000755000000000000000000000512714471751340015157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Crossing Souls # send your bug reports to contact@dotslashplay.it ### script_version=20240604.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='crossing-souls' GAME_NAME='Crossing Souls' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0='crossing_souls_demo_en_1_1_0_18420.sh' ARCHIVE_BASE_DEMO_0_MD5='05c1eb7a25516ae42138edb6781d8271' ARCHIVE_BASE_DEMO_0_SIZE='1071310' ARCHIVE_BASE_DEMO_0_VERSION='1.1.0-gog18420' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/crossing_souls_demo' UNITY3D_NAME='crossingsouls' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS_DEMO="$PKG_BIN_DEPS_DEMO" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS_DEMO="$PKG_BIN_DEPS_DEMO" 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-crypt-of-the-necrodancer-expansions.sh0000755000000000000000000014652314471751340021162 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Crypt of the NecroDancer expansions: # - Amplified # send your bug reports to contact@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' EXPANSION_ID_AMPLIFIED='amplified' EXPANSION_NAME_AMPLIFIED='Amplified' ARCHIVE_BASE_AMPLIFIED_5_NAME='crypt_of_the_necrodancer_amplified_4_1_1_b5421_75773.sh' ARCHIVE_BASE_AMPLIFIED_5_MD5='7781e21a31338b55478e85ac9e275d6f' ARCHIVE_BASE_AMPLIFIED_5_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_5_VERSION='4.1.1-gog75773' ARCHIVE_BASE_AMPLIFIED_5_URL='https://www.gog.com/game/crypt_of_the_necrodancer_amplified' ARCHIVE_BASE_AMPLIFIED_4_NAME='crypt_of_the_necrodancer_amplified_4_0_0_b5095_71873.sh' ARCHIVE_BASE_AMPLIFIED_4_MD5='f102e0705e1333dd622cb23464c76555' ARCHIVE_BASE_AMPLIFIED_4_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_4_VERSION='4.0.0-gog71873' ARCHIVE_BASE_AMPLIFIED_3_NAME='crypt_of_the_necrodancer_amplified_3_7_5_b4897_68999.sh' ARCHIVE_BASE_AMPLIFIED_3_MD5='afbe68f105b71e8d918a4768498d8c24' ARCHIVE_BASE_AMPLIFIED_3_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_3_VERSION='3.7.5-gog68999' ARCHIVE_BASE_AMPLIFIED_2_NAME='crypt_of_the_necrodancer_amplified_3_7_4_b4860_68330.sh' ARCHIVE_BASE_AMPLIFIED_2_MD5='e56eb1c2e7595ced5b67075dc08d65c9' ARCHIVE_BASE_AMPLIFIED_2_SIZE='794448' ARCHIVE_BASE_AMPLIFIED_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_AMPLIFIED_1_NAME='crypt_of_the_necrodancer_amplified_3_4_0_b3655_61079.sh' ARCHIVE_BASE_AMPLIFIED_1_MD5='410df53bd1efe43dfc6fd41cb9cdf694' ARCHIVE_BASE_AMPLIFIED_1_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_AMPLIFIED_0_NAME='crypt_of_the_necrodancer_amplified_3_1_5_b3223_59419.sh' ARCHIVE_BASE_AMPLIFIED_0_MD5='67c2111ad6116ea68c343f9d7694eb1c' ARCHIVE_BASE_AMPLIFIED_0_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' ## These files overwrite the ones provided by the base game CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_MAIN_FILES=' data' PACKAGES_LIST=' PKG_DATA_COMMON PKG_MAIN' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_COMMON PKG_PARENT' PKG_DATA_COMMON_ID="${GAME_ID}-data-common" PKG_DATA_COMMON_ID_AMPLIFIED="${PKG_DATA_COMMON_ID}-${EXPANSION_ID_AMPLIFIED}" PKG_DATA_COMMON_PROVIDES=" $PKG_DATA_COMMON_ID" PKG_DATA_COMMON_DESCRIPTION='data - common files between base game and expansion' # 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-crypt-of-the-necrodancer.sh0000755000000000000000000015252714471751340016776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Crypt of the Necrodancer # send your bug reports to contact@dotslashplay.it ### script_version=20241212.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' ARCHIVE_BASE_5_NAME='crypt_of_the_necrodancer_4_1_1_b5421_75773.sh' ARCHIVE_BASE_5_MD5='3a5518a8f98c4ffe8a8000889cd2d916' ARCHIVE_BASE_5_SIZE='1582395' ARCHIVE_BASE_5_VERSION='4.1.1-gog75773' ARCHIVE_BASE_5_URL='https://www.gog.com/game/crypt_of_the_necrodancer' ARCHIVE_BASE_4_NAME='crypt_of_the_necrodancer_4_0_0_b5095_71873.sh' ARCHIVE_BASE_4_MD5='1834813b492806b13635a756d32716c6' ARCHIVE_BASE_4_SIZE='1571042' ARCHIVE_BASE_4_VERSION='4.0.0-gog71873' ARCHIVE_BASE_3_NAME='crypt_of_the_necrodancer_3_7_5_b4897_68999.sh' ARCHIVE_BASE_3_MD5='b9dec663522ad9632340dbfe8c859a2f' ARCHIVE_BASE_3_SIZE='1527261' ARCHIVE_BASE_3_VERSION='3.7.5-gog68999' ARCHIVE_BASE_2_NAME='crypt_of_the_necrodancer_3_7_4_b4860_68330.sh' ARCHIVE_BASE_2_MD5='3a513a9089ca9b9383bee224d44af64f' ARCHIVE_BASE_2_SIZE='1558404' ARCHIVE_BASE_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_1_NAME='crypt_of_the_necrodancer_3_4_0_b3655_61079.sh' ARCHIVE_BASE_1_MD5='f53c2736647e577036d1d014e8e81656' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_0_NAME='crypt_of_the_necrodancer_3_1_5_b3223_59419.sh' ARCHIVE_BASE_0_MD5='006d720a727a05048ea8028b1d3b0332' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS_BIN_FILES=' libnecrolevel.so' ## Shipped libsfml-*.so.2.5 must be used to avoid a symbol lookup error. CONTENT_LIBS0_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS0_BIN_FILES=' libsfml-*.so.2.5' ## The shipped build of libluajit-5.1.so.2 must be included to prevent a crash: ## [LocalGame] [error] scripts/core/jit/p.lua:44: LuaJIT core/library version mismatch CONTENT_LIBS1_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS1_BIN_FILES=' libluajit-5.1.so.2' ## TODO: Check if the shipped Galaxy library is required. CONTENT_LIBS2_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS2_BIN_FILES=' libGalaxy64.so' ## TODO: Check if the shipped Discord library is required. CONTENT_LIBS3_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS3_BIN_FILES=' libdiscord_game_sdk.so' CONTENT_GAME_BIN_FILES=' NecroDancer64/dlc NecroDancer64/config.json NecroDancer64/Compat.wsp NecroDancer64/NecroDancer.wsp NecroDancer64/NecroDancer.x64' ## These files are overriden by the Amplified expansion CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' TROUBLESHOOTING.txt' USER_PERSISTENT_DIRECTORIES=' data/custom_music dungeons downloaded_dungeons downloaded_mods mods replays' USER_PERSISTENT_FILES=' data/played.dat data/save_data.xml' APP_MAIN_EXE='NecroDancer64/NecroDancer.x64' APP_MAIN_ICON='NecroDancer.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_COMMON PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.1 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_COMMON' PKG_DATA_COMMON_ID="${PKG_DATA_ID}-common" PKG_DATA_COMMON_DESCRIPTION="$PKG_DATA_DESCRIPTION - common files between base game and expansion" # 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 libnecrolevel.so to the hard-coded path where the engine expects to find it mkdir --parents "$(package_path 'PKG_BIN')$(path_game_data)/NecroDancer64/lib" ln --symbolic \ "$(path_libraries)/libnecrolevel.so" \ "$(package_path 'PKG_BIN')$(path_game_data)/NecroDancer64/lib/libnecrolevel.so" # Write launchers ## Force the use of system-provided SDL, ## and prevent a game crash when using the wayland backend of SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Force the use of the system SDL library export SDL_DYNAMIC_API="'"$(path_libraries_system)"'/libSDL2-2.0.so.0" # Prevent a game crash when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd NecroDancer64 ./NecroDancer.x64 "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cryptark.sh0000755000000000000000000000622314471751340014022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cryptark # send your bug reports to contact@dotslashplay.it ### script_version=20230207.1 GAME_ID='cryptark' GAME_NAME='Cryptark' ARCHIVE_BASE_1='cryptark_en_1_23_22933.sh' ARCHIVE_BASE_1_MD5='7fbca12cab4fae1a36a365fdf004a678' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='700000' ARCHIVE_BASE_1_VERSION='1.23-gog22933' ARCHIVE_BASE_1_URL='https://www.gog.com/game/cryptark' ARCHIVE_BASE_0='cryptark_en_1_2_15203.sh' ARCHIVE_BASE_0_MD5='53083f1fef847a30eb99914821c8649a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.2-gog15203' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content monoconfig monomachineconfig Cryptark.exe Cryptark.png gamecontrollerdb.txt BrashMonkeySpriterXNA.dll CommandConsoleSharedTypes.dll FNA.dll FNA.dll.config Lidgren.Network.dll MSCommon.dll ProjectMercury.dll spine-csharp_xna.dll spine-xna.dll TexturePackingRuntime.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Cryptark.exe' APP_MAIN_ICON='Cryptark.png' PKG_MAIN_DEPS='mono' 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.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Web.dll System.Web.Extensions.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libtheorafile.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cube-escape.sh0000755000000000000000000000401214471751340014331 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cube Escape # send your bug reports to contact@dotslashplay.it ### script_version=20240706.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cube-escape' GAME_NAME='Cube Escape' ARCHIVE_BASE_0_NAME='setup_cube_escape_collection_1.0_(43930).exe' ARCHIVE_BASE_0_MD5='bd5035262ff2b9adc3a1887d8168ebaf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0-gog43930' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cube_escape_collection' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air cube escape collection.exe' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/app" CONTENT_GAME0_BIN_FILES=' adobe air' CONTENT_GAME_DATA_FILES=' meta-inf mimetype icons cube-escape-translations.xml *.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Rusty Lake/CubeEscapeCollection' APP_MAIN_EXE='cube escape collection.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" # 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-d-the-game.sh0000755000000000000000000000322414471751340014071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # D: The Game # send your bug reports to contact@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='d-the-game' GAME_NAME='D: The Game' ARCHIVE_BASE_0_NAME='gog_d_the_game_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='4a9f18efc065a80723130b73c5327095' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/d_the_game' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' AVI BMP DRV EFC VESA.AVI SOUND.BAT DS.DAT LAURA.PIF *.EXE' GAME_IMAGE='DS.DAT' USER_PERSISTENT_DIRECTORIES=' data' APP_MAIN_EXE='LAURA.EXE' APP_MAIN_ICON='../support/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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dark-echo.sh0000755000000000000000000000464314471751340014024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dark Echo # send your bug reports to contact@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dark-echo' GAME_NAME='Dark Echo' ARCHIVE_BASE_0_NAME='DarkEcho_Linux.zip' ARCHIVE_BASE_0_MD5='b629b5c47729d8213f89f92ae28d6076' ARCHIVE_BASE_0_SIZE='113641' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/dark-echo' UNITY3D_NAME='DarkEcho' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' 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-darksiders-2.sh0000755000000000000000000000631314471751340014455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Darksiders 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='darksiders-2' GAME_NAME='Darksiders Ⅱ' ARCHIVE_BASE_0_NAME='setup_darksiders2_deathinitive_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='5b39f665a8367f4ebe7c845b2ebbac81' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOROPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_darksiders2_deathinitive_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='ec9c85b15f23b79bd87668282b8101ed' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_darksiders2_deathinitive_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='4eb87fd00792a0e35b0abd8b7bc124e0' ARCHIVE_BASE_0_PART2_EXTRACTOR='unar' ARCHIVE_BASE_0_PART3_NAME='setup_darksiders2_deathinitive_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='113f5a09d0289db3b1c5a5f85a82849e' ARCHIVE_BASE_0_PART3_EXTRACTOR='unar' ARCHIVE_BASE_0_PART4_NAME='setup_darksiders2_deathinitive_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='ca12e47f9cce195b09a66c7ff27121ab' ARCHIVE_BASE_0_PART4_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darksiders_ii_deathinitive_edition' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' darksiders2.exe *.dll' CONTENT_GAME_DATA_MEDIA_FILES=' media/media.upak' CONTENT_GAME_DATA_SOUNDS_FILES=' media/sounds_streamed' CONTENT_GAME_DATA_FILES=' darksiders2.dsl media' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Darksiders2 users/${USER}/Documents/My Games/Darksiders2' APP_MAIN_EXE='darksiders2.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_MEDIA PKG_DATA_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MEDIA_ID="${PKG_DATA_ID}-media" PKG_DATA_MEDIA_DESCRIPTION="$PKG_DATA_DESCRIPTION - media" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MEDIA_ID" PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUNDS_ID" 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-darwinia.sh0000755000000000000000000000541214471751340013760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Darwinia # send your bug reports to contact@dotslashplay.it ### script_version=20240602.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='darwinia' GAME_NAME='Darwinia' ARCHIVE_BASE_0_NAME='gog_darwinia_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='ef55064ab82a64324e295f2ea96239d6' ARCHIVE_BASE_0_SIZE='45000' ARCHIVE_BASE_0_VERSION='1.4.2-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darwinia' CONTENT_PATH_DEFAULT='data/noarch/game' 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_BIN64='darwinia.bin.x86_64' APP_MAIN_EXE_BIN32='darwinia.bin.x86' APP_MAIN_ICON='darwinian.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 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_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Convert the shipped icon into a standard size SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert the shipped icon into a standard size. icon_source=$(icon_path 'APP_MAIN_ICON') convert \ -background none -gravity center "$icon_source" \ -resize 128x128 -extent 128x128 "${icon_source}_resized.png" mv "${icon_source}_resized.png" "$icon_source" ) # 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-dawnmaker.sh0000755000000000000000000000701314471751340014132 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 contact@dotslashplay.it ### script_version=20241026.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' ## Support for multiple archive sharing a same name is not available before ./play.it 2.31 ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/355 #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" # 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=$(set_current_package 'PKG_BIN';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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dead-cells-expansions.sh0000755000000000000000000000460514471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dead Cells expansions: # - Rise of the Giant # - The Bad Seed # send your bug reports to contact@dotslashplay.it ### script_version=20240615.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dead-cells' GAME_NAME='Dead Cells' EXPANSION_ID_GIANT='rise-of-the-giant' EXPANSION_NAME_GIANT='Rise of the Giant' EXPANSION_ID_SEED='the-bad-seed' EXPANSION_NAME_SEED='The Bad Seed' ARCHIVE_BASE_GIANT_1_NAME='dead_cells_rise_of_the_giant_1_9_1_39495.sh' ARCHIVE_BASE_GIANT_1_MD5='c1d123c88c3e1f85a11ae9d090f626b0' ARCHIVE_BASE_GIANT_1_SIZE='1100' ARCHIVE_BASE_GIANT_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_GIANT_1_URL='https://www.gog.com/game/dead_cells_rise_of_the_giant' ARCHIVE_BASE_GIANT_0='dead_cells_rise_of_the_giant_1_8_0_37766.sh' ARCHIVE_BASE_GIANT_0_MD5='855ef837a9766e5b30ee34d212e5b16b' ARCHIVE_BASE_GIANT_0_SIZE='1100' ARCHIVE_BASE_GIANT_0_VERSION='1.8.0-gog37766' ARCHIVE_BASE_SEED_1_NAME='dead_cells_the_bad_seed_1_9_1_39495.sh' ARCHIVE_BASE_SEED_1_MD5='745aa46480a45d4bf4904361a4d06110' ARCHIVE_BASE_SEED_1_SIZE='1100' ARCHIVE_BASE_SEED_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_SEED_1_URL='https://www.gog.com/game/dead_cells_the_bad_seed' ARCHIVE_BASE_SEED_0='dead_cells_the_bad_seed_1_8_0_37766.sh' ARCHIVE_BASE_SEED_0_MD5='3ab8b8c71c1a9079be384a7788592d83' ARCHIVE_BASE_SEED_0_SIZE='1100' ARCHIVE_BASE_SEED_0_VERSION='1.8.0-gog37766' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' goggame-*.info' 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-dead-cells.sh0000755000000000000000000000423414471751340014160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dead Cells # send your bug reports to contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dead-cells' GAME_NAME='Dead Cells' ARCHIVE_BASE_1_NAME='dead_cells_1_9_1_39495.sh' ARCHIVE_BASE_1_MD5='d39f39354e1546e9fb940e7738992b16' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dead_cells' ARCHIVE_BASE_0_NAME='dead_cells_1_8_0_37766.sh' ARCHIVE_BASE_0_MD5='93a03894720c4e232566300c61ee153b' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='1.8.0-gog37766' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libhl.so' CONTENT_GAME_BIN_FILES=' deadcells *.hdll' CONTENT_GAME_DATA_FILES=' hlboot.dat res.pak' USER_PERSISTENT_DIRECTORIES=' logs save' APP_MAIN_EXE='deadcells' APP_MAIN_ICON='../support/icon.png' 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 libmbedtls.so.12 libopenal.so.1 libpng16.so.16 libSDL2-2.0.so.0 libturbojpeg.so.0 libuv.so.1 libvorbisfile.so.3' # 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-deadbolt.sh0000755000000000000000000000400214471751340013732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Deadbolt # send your bug reports to contact@dotslashplay.it ### script_version=20250303.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='deadbolt' GAME_NAME='Deadbolt' ARCHIVE_BASE_0='gog_deadbolt_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='bc7831a069546d18f5e12a5ee3da4850' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deadbolt' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' deadbolt' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='deadbolt' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deadlight.sh0000755000000000000000000000547514471751340014120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Deadlight # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='deadlight' GAME_NAME='Deadlight' ARCHIVE_BASE_1_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167).exe' ARCHIVE_BASE_1_MD5='70b8df3f8162cc0a9a43e531b6a723c5' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167)-1.bin' ARCHIVE_BASE_1_PART1_MD5='6392568bcc7c4a4613e09cdbb40afafd' ARCHIVE_BASE_1_PART2_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167)-2.bin' ARCHIVE_BASE_1_PART2_MD5='fa080fbdd39369969be4ac54c2aa7bd2' ARCHIVE_BASE_1_SIZE='5100000' ARCHIVE_BASE_1_VERSION='1.0-gog19167' ARCHIVE_BASE_1_URL='https://www.gog.com/game/deadlight_directors_cut' ARCHIVE_BASE_0_NAME='setup_deadlight_directors_cut_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1a753e4f9a209de5bd916ac98b88a9b7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_deadlight_directors_cut_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='246b4684d801ea84b6490e01bcf5c659' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_deadlight_directors_cut_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='3cb7cdd9fea50a66d7f06a6b2d0426c6' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' engine binaries' CONTENT_GAME_DATA_FILES=' lotdgame' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/UnrealEngine3/LOTDGame' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='binaries/win64/lotdgame.exe' ## The application type must be set explicitly, or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' 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-dear-esther.sh0000755000000000000000000000615314471751340014370 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dear Esther # send your bug reports to contact@dotslashplay.it ### script_version=20240329.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dear-esther' GAME_NAME='Dear Esther' ## This DRM-free Linux installer used to be sold by Humble Bundle, but they dropped it in favour of Steam keys. ARCHIVE_BASE_0_NAME='dearesther-linux-06082013-bin' ARCHIVE_BASE_0_MD5='951127a283c3caf2c76031c7611d431d' ## This is a MojoSetup installer, not relying on Makeself. ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.6-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin" CONTENT_LIBS_BIN_FILES=' datacache.so engine.so filesystem_stdio.so inputsystem.so launcher.so libMiles.so libtier0.so libtogl.so libvstdlib.so localize.so materialsystem.so scenefilecache.so shaderapidx9.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_miles.so vgui2.so vguimatsurface.so vphysics.so vscript.so' CONTENT_GAME_BIN_FILES=' bin/linux32 bin/vconfig bin/*.addin bin/*.bin bin/*.cfg bin/*.csv bin/*.fgd dearesther_linux' CONTENT_GAME_DATA_FILES=' dearesther dearesther.png platform' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_DIRECTORIES=' dearesther/cfg dearesther/save' APP_MAIN_EXE='dearesther_linux' APP_MAIN_OPTIONS='-game dearesther' APP_MAIN_ICON='dearesther.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libEGL.so.1 libfontconfig.so.1 libfreetype.so.6 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 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" # The game engine looks for some library in a hardcoded path libraries_source=$(path_libraries) libraries_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" mkdir --parents "$libraries_destination" for library_file in \ 'filesystem_stdio.so' \ 'launcher.so' do ln --symbolic "${libraries_source}/${library_file}" "$libraries_destination" done # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deaths-door.sh0000755000000000000000000000332414471751340014373 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Death's Door # send your bug reports to contact@dotslashplay.it ### script_version=20240426.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='deaths-door' GAME_NAME='Death’s Door' ARCHIVE_BASE_0_NAME='setup_deaths_door_1.1.5_(50052).exe' ARCHIVE_BASE_0_MD5='03fa124342c649739dc2212dba2e11da' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3863071' ARCHIVE_BASE_0_VERSION='1.1.5-gog50052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deaths_door' UNITY3D_NAME='deathsdoor' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Acid Nerve/DeathsDoor' 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-deaths-life.sh0000755000000000000000000000324714471751340014353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Death's Life # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='deaths-life' GAME_NAME='Death’s Life' ARCHIVE_BASE_0_NAME='deaths-life-win.zip' ARCHIVE_BASE_0_MD5='6a5742a023b47110d9eb3c47388b262b' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://umbugames.itch.io/deaths-life' UNITY3D_NAME='Deaths Life' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=' Deaths Life_Data/Save' 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-deep-sky-derelicts.sh0000755000000000000000000000377714471751340015673 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deep Sky Derelicts # send your bug reports to contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='deep-sky-derelicts' GAME_NAME='Deep Sky Derelicts' ARCHIVE_BASE_0_NAME='deep_sky_derelicts_1_5_3_37791.sh' ARCHIVE_BASE_0_MD5='a55656f3033c2d339d0cbaeba7503270' ARCHIVE_BASE_0_SIZE='1131190' ARCHIVE_BASE_0_VERSION='1.5.3-gog37791' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deep_sky_derelicts' UNITY3D_NAME='Deep Sky Derelicts' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' LICENSE 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 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-defenders-quest.sh0000755000000000000000000000427614471751340015267 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 contact@dotslashplay.it ### script_version=20230629.1 GAME_ID='defenders-quest' GAME_NAME='Defenderʼs Quest: Valley of the Forgotten' ARCHIVE_BASE_0='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 steamwrap.ndll libsteam_api.so' CONTENT_GAME_BIN_FILES=' crashdumper flixel manifest DefendersQuest LevelEditor steam_appid.txt' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='DefendersQuest' APP_MAIN_ICON='../support/icon.png' 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' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-delores-a-thimbleweed-park-miniadventure.sh0000755000000000000000000000427614471751340022136 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Delores: A Thimbleweed Park Mini-Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='delores-a-thimbleweed-park-mini-adventure' GAME_NAME='Delores: A Thimbleweed Park Mini-Adventure' ARCHIVE_BASE_0_NAME='setup_delores_a_thimbleweed_park_mini-adventure_1.1.191_(64bit)_(38487).exe' ARCHIVE_BASE_0_MD5='30b609714d47171a84c8d41c1a1c038a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='77000' ARCHIVE_BASE_0_VERSION='1.1.1.191-gog38487' ARCHIVE_BASE_0_URL='https://www.gog.com/game/delores_a_thimbleweed_park_miniadventure' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll delores.exe' CONTENT_GAME_DATA_FILES=' delores.ggpack1 delores.ico delores.rc' ## The game expects to be running on top of Windows ≥ 10. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} win10" ## A Windows native build of d3dcompiler is required. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} d3dcompiler_47" APP_MAIN_EXE='delores.exe' APP_MAIN_ICON='delores.ico' 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-deltarune-chapter-1.sh0000755000000000000000000000364714471751340015737 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deltarune - Chapter 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240704.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='deltarune-chapter-1' GAME_NAME='Deltarune - Chapter 1' ARCHIVE_BASE_0_NAME='SURVEY_PROGRAM_WINDOWS_ENGLISH.exe' ARCHIVE_BASE_0_MD5='2f92f4ad09d41287b36650aaf1e5359e' ARCHIVE_BASE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_0_VERSION='1.0-deltarune' ARCHIVE_BASE_0_SIZE='95000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' deltarune.exe' CONTENT_GAME_DATA_FILES=' mus lang data.win *.dat *.ogg' CONTENT_DOC_DATA_FILES=' license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/DELTARUNE' APP_MAIN_EXE='deltarune.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" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # 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-detention.sh0000755000000000000000000000426414471751340014157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Detention # send your bug reports to contact@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='detention' GAME_NAME='Detention' ARCHIVE_BASE_0_NAME='Detention-linux(7821293f).zip' ARCHIVE_BASE_0_MD5='44f4a6847260f6ef460b4e44239e1859' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='7821293f-1' ARCHIVE_BASE_0_URL='https://shop.redcandlegames.com/games/detention' UNITY3D_NAME='Detention' CONTENT_PATH_DEFAULT='Detention' ## The game binary uses a non-standard name CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME1_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: The list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 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-dex.sh0000755000000000000000000000437614471751340012752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Dex # send your bug reports to contact@dotslashplay.it ### script_version=20231016.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='dex-game' GAME_NAME='Dex' ARCHIVE_BASE_1_NAME='dex_en_6_0_0_0_build_5553_17130.sh' ARCHIVE_BASE_1_MD5='3d6f8797fab72dcb867c92bf5a84b4dd' ARCHIVE_BASE_1_SIZE='6300000' ARCHIVE_BASE_1_VERSION='6.0.0.0.5553-gog17130' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dex' ARCHIVE_BASE_0_NAME='gog_dex_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='199a1acc59879124e8e1c532909fd879' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='5.4.0.0-gog2.3.0.4' UNITY3D_NAME='Dex' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Controller_readme.pdf' 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=' 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" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dicey-dungeons.sh0000755000000000000000000000536514471751340015106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 berru # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dicey Dungeons # send your bug reports to contact@dotslashplay.it ### script_version=20230108.1 GAME_ID='dicey-dungeons' GAME_NAME='Dicey Dungeons' ARCHIVE_BASE_1='dicey-dungeons-linux64.zip' ARCHIVE_BASE_1_MD5='7561697f602e3a0af054569e3a8114b3' ARCHIVE_BASE_1_SIZE='110000' ARCHIVE_BASE_1_VERSION='1.11-itch.2021.03.18' ARCHIVE_BASE_1_URL='https://terrycavanagh.itch.io/dicey-dungeons' ARCHIVE_BASE_0='dicey-dungeons-linux64.zip' ARCHIVE_BASE_0_MD5='14879aa94aef2291d6aec0c4c9e760c5' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='1.10-itch.2020.11.05' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' diceydungeons lime.ndll' CONTENT_GAME_DATA_FILES=' data manifest mods soundstuff' APP_MAIN_EXE='diceydungeons' APP_MAIN_ICON='data/icon.png' 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' # Build 512×512 icon from the 1024×1024 provided one SCRIPT_DEPS="$SCRIPT_DEPS convert" # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Build 512×512 icon from the 1024×1024 provided one icon_source="$APP_MAIN_ICON" icon_destination="${APP_MAIN_ICON%.png}_512.png" convert "$icon_source" -resize 512 "$icon_destination" ) # Include game icons ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_512' PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dins-curse.sh0000755000000000000000000000406214471751340014236 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Din's Curse # send your bug reports to contact@dotslashplay.it ### script_version=20230620.2 GAME_ID='dins-curse' GAME_NAME='Dinʼs Curse' ARCHIVE_BASE_0='gog_din_s_curse_2.0.0.6.sh' ARCHIVE_BASE_0_MD5='abead770d1fe9a2c7adb6d250318b698' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='1.034-gog2.0.0.6' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dins_curse' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' DinsCurse' CONTENT_GAME_DATA_FILES=' DCIcon.png Assets User' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='DinsCurse' APP_MAIN_ICON='DCIcon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-disney-classics.sh0000755000000000000000000000474614471751340015270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Disney 1994 games: # - Aladdin # - The Jungle Book # - The Lion King # send your bug reports to contact@dotslashplay.it ### script_version=20240622.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_ALADDIN='aladdin' GAME_NAME_ALADDIN='Aladdin' GAME_ID_JUNGLE='the-jungle-book' GAME_NAME_JUNGLE='The Jungle Book' GAME_ID_LION='the-lion-king' GAME_NAME_LION='The Lion King' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_ALADDIN_0_NAME='gog_disney_s_aladdin_2.0.0.2.sh' ARCHIVE_BASE_ALADDIN_0_MD5='9dd6d84c2276809c5630320335e3415b' ARCHIVE_BASE_ALADDIN_0_SIZE='18000' ARCHIVE_BASE_ALADDIN_0_VERSION='1.0-gog2.0.0.2' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_JUNGLE_0_NAME='gog_disney_s_the_jungle_book_2.0.0.2.sh' ARCHIVE_BASE_JUNGLE_0_MD5='bcb57f4ff5cb1662ba3d4a9e34f263ad' ARCHIVE_BASE_JUNGLE_0_SIZE='15000' ARCHIVE_BASE_JUNGLE_0_VERSION='1.0-gog2.0.0.2' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_LION_0_NAME='gog_the_lion_king_2.0.0.2.sh' ARCHIVE_BASE_LION_0_MD5='3b4f1118785e1f1cc769ae41379b7940' ARCHIVE_BASE_LION_0_SIZE='16000' ARCHIVE_BASE_LION_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Manual.pdf' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_ALADDIN='ALADDIN.EXE' APP_MAIN_EXE_JUNGLE='JUNGLE.EXE' APP_MAIN_EXE_LION='LIONKING.EXE' APP_MAIN_ICON='../support/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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-divine-divinity.sh0000755000000000000000000001047714471751340015304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Divine Divinity # send your bug reports to contact@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='divine-divinity' GAME_NAME='Divine Divinity' ARCHIVE_BASE_HUMBLE_EN_0_NAME='DivineDivinity.zip' ARCHIVE_BASE_HUMBLE_EN_0_MD5='01bd76cb8e3054d7a32dda383b96fa73' ARCHIVE_BASE_HUMBLE_EN_0_SIZE='4066351' ARCHIVE_BASE_HUMBLE_EN_0_VERSION='1.0062a-humble1' ARCHIVE_BASE_HUMBLE_EN_0_URL='https://www.humblebundle.com/store/divine-divinity' ARCHIVE_BASE_GOG_EN_0_NAME='setup_divine_divinity_2.0.0.21.exe' ARCHIVE_BASE_GOG_EN_0_MD5='3798d48f04a7a8444fd9f4c32b75b41d' ARCHIVE_BASE_GOG_EN_0_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_0_SIZE='2400000' ARCHIVE_BASE_GOG_EN_0_VERSION='1.0062a-gog2.0.0.21' ARCHIVE_BASE_GOG_EN_0_URL='https://www.gog.com/game/divine_divinity' ARCHIVE_BASE_GOG_FR_0_NAME='setup_divine_divinity_french_2.1.0.32.exe' ARCHIVE_BASE_GOG_FR_0_MD5='f755d69ad7d319fb70298844dcb3861a' ARCHIVE_BASE_GOG_FR_0_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_0_SIZE='2400000' ARCHIVE_BASE_GOG_FR_0_VERSION='1.0062a-gog2.1.0.32' ARCHIVE_BASE_GOG_FR_0_URL='https://www.gog.com/game/divine_divinity' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' sound.cfg binkw32.dll divdialogsystem.dll drvmgt.dll fmod.dll nlseng.dll nlsfr.dll nlsger.dll osirisdll.dll slash1.dll slash2.dll slash3.dll slash4.dll unrar.dll configtool.exe div.exe secdrv.sys' CONTENT_GAME_L10N_FILES=' localizations dat/english dat/french config.lcl' CONTENT_GAME_DATA_FILES=' capture dat fonts global main sound static divinityevent.dat testimage.tga keylist.txt' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' dynamic global savegames' USER_PERSISTENT_FILES=' persist.dat config.div config.lcl keylist.txt dat/usernotes.bin static/imagelists/collide.* *.000 *.cfg' APP_MAIN_EXE='div.exe' APP_CONFIG_ID="${GAME_ID}_configuration" APP_CONFIG_NAME="${GAME_NAME} - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configtool.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA PKG_L10N' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_HUMBLE_EN="$PKG_L10N_ID_EN" PKG_L10N_ID_GOG_EN="$PKG_L10N_ID_EN" PKG_L10N_ID_GOG_FR="$PKG_L10N_ID_FR" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_HUMBLE_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_GOG_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_GOG_FR="$PKG_L10N_DESCRIPTION_FR" # 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 "$@" # Check for the presence of extra dependency required by the Humble Bundle archive ## TODO: This could be avoided if REQUIREMENTS_LIST had support for contextual values. ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/558 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} innoextract" requirements_check ;; esac # Extract game data archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_EN_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Build/DivInstaller_EN.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm --recursive "${PLAYIT_WORKDIR}/gamedata/Build" ;; 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-divinity-original-sin-1.sh0000755000000000000000000001563414471751340016557 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Divinity: Original Sin # send your bug reports to contact@dotslashplay.it ### script_version=20240516.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='divinity-original-sin-1' GAME_NAME='Divinity: Original Sin' ARCHIVE_BASE_0_NAME='divinity_original_sin_enhanced_edition_en_2_0_119_430_ch_17075.sh' ARCHIVE_BASE_0_MD5='89f526c1030d6d352b7df65361ab71e6' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='2.0.119.430-gog17075' ARCHIVE_BASE_0_URL='https://www.gog.com/game/divinity_original_sin_enhanced_edition' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='divinity-original-sin-1_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='8f01ea213b7b2c966ce3c065333f5406' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/divinity-original-sin-1/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256 512x512' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if libSDL2-2.0.so.1 can be dropped in favour of a system-provided build of libSDL2-2.0.so.0 CONTENT_LIBS_BIN_FILES=' libbink2.so libCoreLib.so libGameEngine.so libGLEW.so.1.10 libGLEW.so.1.10.0 libicudata.so.54 libicuuc.so.54 libjpeg.so.8 libjpeg.so.8.0.2 libOGLBinding.so libosiris.so.2 libRenderFramework.so libSDL2-2.0.so.1' ## The game binary is linked against libsteam_api.so, so this library can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_GAME_BIN_FILES=' EoCApp' CONTENT_GAME_L10N_EN_FILES=' Data/Localization/English.pak' CONTENT_GAME_L10N_FR_FILES=' Data/Localization/French.pak' CONTENT_GAME_DATA_VOICES_FILES=' Data/Localization/Voice.pak Data/Localization/Voice_1.pak Data/Localization/Voice_2.pak Data/Localization/Voice_3.pak Data/Localization/Voice_4.pak' CONTENT_GAME_DATA_FILES=' DigitalMap Data/Localization/Intro.pak Data/Localization/Reference.pak Data/Localization/Video.pak Data/DLC.pak Data/Effects.pak Data/Engine.pak Data/Game.pak Data/GamePlatform.pak Data/GLSLShaders.pak Data/Icons.pak Data/LowTex.pak Data/MainLSF.pak Data/Main.pak Data/Minimaps.pak Data/Sound_1.pak Data/SoundBanks.pak Data/Sound.pak Data/Textures_1.pak Data/Textures_2.pak Data/Textures.pak' FAKE_HOME_PERSISTENT_DIRECTORIES=' Larian Studios/Divinity Original Sin Enhanced Edition' APP_MAIN_EXE='EoCApp' APP_MAIN_ICON='../support/icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${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_L10N_EN PKG_L10N_FR PKG_DATA_VOICES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_EN_DESCRIPTION="$PKG_L10N_DESCRIPTION - English" PKG_L10N_FR_DESCRIPTION="$PKG_L10N_DESCRIPTION - French" ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_L10N_EN_PROVIDES="${PKG_L10N_EN_PROVIDES:-} divinity-original-sin-l10n-en" PKG_L10N_FR_PROVIDES="${PKG_L10N_FR_PROVIDES:-} divinity-original-sin-l10n-fr" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} divinity-original-sin-data" PKG_DATA_VOICES_ID="${PKG_DATA_ID}-voices" PKG_DATA_VOICES_DESCRIPTION="$PKG_DATA_DESCRIPTION - voices" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_VOICES_ID" ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_DATA_VOICES_PROVIDES="${PKG_DATA_VOICES_PROVIDES:-} divinity-original-sin-data-voices" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libc++.so.1 libc++abi.so.1 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpng16.so.16 libpthread.so.0 librt.so.1 libz.so.1' ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} divinity-original-sin" # 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" # Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " # Ensure availability of libpcre.so.3 case "$(option_value 'package')" in ('arch') # libpcre.so.3 is not provided from Arch Linux repositories CONTENT_LIBS_BIN_FILES="$(content_files 'LIBS_BIN') libpcre.so.3 libpcre.so.3.13.1" ;; (*) dependencies_add_native_libraries 'PKG_BIN' 'libpcre.so.3' ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Generate the configuration of localization packages config_source='Data/Localization/language.lsx' config_pattern='id="Value" value="[A-Za-z]*" type="20"' ### English localization config_destination_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/${config_source}" config_replacement_en='id="Value" value="English" type="20"' mkdir --parents "$(dirname "$config_destination_en")" sed --expression="s/${config_pattern}/${config_replacement_en}/" \ "$config_source" > "$config_destination_en" ### French localization config_destination_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/${config_source}" config_replacement_fr='id="Value" value="French" type="20"' mkdir --parents "$(dirname "$config_destination_fr")" sed --expression="s/${config_pattern}/${config_replacement_fr}/" \ "$config_source" > "$config_destination_fr" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "${LANG%_*}" 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_VOICES' 'PKG_DATA' 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA_VOICES' 'PKG_DATA' 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-doctor-who-and-the-lonely-assassins.sh0000755000000000000000000000375614471751340021103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Doctor Who: The Lonely Assassins # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='doctor-who-the-lonely-assassins' GAME_NAME='Doctor Who: The Lonely Assassins' ARCHIVE_BASE_0_NAME='setup_doctor_who_the_lonely_assassins_1.840.127_(47861).exe' ARCHIVE_BASE_0_MD5='102ae49769312005075e26141250b5cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.840.127-gog47861' ARCHIVE_BASE_0_URL='https://www.gog.com/game/doctor_who_the_lonely_assasins' UNITY3D_NAME='doctor who the lonely assassins' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Kaigan Games/Doctor Who_ The Lonely Assassins' PACKAGES_LIST=' PKG_BIN 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' # 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-dont-starve-expansions.sh0000755000000000000000000000761114471751340016620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Don't Starve expansions: # - Reign of Giants # - Shipwrecked # send your bug reports to contact@dotslashplay.it ### script_version=20230901.2 GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' EXPANSION_ID_GIANTS='reign-of-giants' EXPANSION_NAME_GIANTS='Reign of Giants' EXPANSION_ID_SHIPWRECKED='shipwrecked' EXPANSION_NAME_SHIPWRECKED='Shipwrecked' # Archives ## Reign of Giants ARCHIVE_BASE_GIANTS_1='don_t_starve_reign_of_giants_554439_66995.sh' ARCHIVE_BASE_GIANTS_1_MD5='93cbeafae249e5a5af4f25afb91ca9a5' ARCHIVE_BASE_GIANTS_1_SIZE='630000' ARCHIVE_BASE_GIANTS_1_VERSION='554439-gog66995' ARCHIVE_BASE_GIANTS_1_URL='https://www.gog.com/game/dont_starve_reign_of_giants' ARCHIVE_BASE_GIANTS_0='don_t_starve_reign_of_giants_dlc_4294041_41439.sh' ARCHIVE_BASE_GIANTS_0_MD5='8949aed4ca7eddd8179ad768dd223681' ARCHIVE_BASE_GIANTS_0_SIZE='620000' ARCHIVE_BASE_GIANTS_0_VERSION='4294041-gog41439' ARCHIVE_BASE_GIANTS_MULTIARCH_1='don_t_starve_reign_of_giants_dlc_en_20171215_17628.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_1_MD5='47084ab8d5b36437e1bcb899c35bfe00' ARCHIVE_BASE_GIANTS_MULTIARCH_1_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_GIANTS_MULTIARCH_0='gog_don_t_starve_reign_of_giants_dlc_2.0.0.3.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_0_MD5='bd505adc70ed478a92669bc8c1c3a127' ARCHIVE_BASE_GIANTS_MULTIARCH_0_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_0_VERSION='1.0-gog2.0.0.3' ## Shipwrecked ARCHIVE_BASE_SHIPWRECKED_1='don_t_starve_shipwrecked_554439_66995.sh' ARCHIVE_BASE_SHIPWRECKED_1_MD5='0f1fcee5e80a2c7a081a0d4b39043010' ARCHIVE_BASE_SHIPWRECKED_1_SIZE='860000' ARCHIVE_BASE_SHIPWRECKED_1_VERSION='554439-gog66995' ARCHIVE_BASE_SHIPWRECKED_1_URL='https://www.gog.com/game/dont_starve_shipwrecked' ARCHIVE_BASE_SHIPWRECKED_0='don_t_starve_shipwrecked_dlc_4294041_41439.sh' ARCHIVE_BASE_SHIPWRECKED_0_MD5='ff762f9b6a3ef71e6b802fe596196925' ARCHIVE_BASE_SHIPWRECKED_0_SIZE='830000' ARCHIVE_BASE_SHIPWRECKED_0_VERSION='4294041-gog41439' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1='don_t_starve_shipwrecked_dlc_en_20171215_17628.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_MD5='463825173d76f294337f0ae7043d7cf6' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0='gog_don_t_starve_shipwrecked_dlc_2.0.0.2.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_MD5='b1d4152639a272a959d36eacf8cb859e' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_MULTIARCH='data/noarch/game/dontstarve32' CONTENT_PATH_DEFAULT_GIANTS_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_PATH_DEFAULT_SHIPWRECKED_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_GAME_MAIN_FILES=' data manifest_dlc????.json' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dont-starve.sh0000755000000000000000000000612714471751340014434 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Don't Starve # send your bug reports to contact@dotslashplay.it ### script_version=20231112.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' ARCHIVE_BASE_1_NAME='don_t_starve_554439_66995.sh' ARCHIVE_BASE_1_MD5='783646e973fdcc1fefad470da14f6855' ARCHIVE_BASE_1_SIZE='660000' ARCHIVE_BASE_1_VERSION='554439-gog66995' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dont_starve' ARCHIVE_BASE_0_NAME='don_t_starve_4294041_41439.sh' ARCHIVE_BASE_0_MD5='05baa7fb659f79d4676a59bf3a64fc76' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='4294041-gog41439' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin/lib64" CONTENT_LIBS_BIN_FILES=' libfmodevent64.so libfmodevent64-4.44.??.so libfmodex64.so libfmodex64-4.44.??.so' ## Using system-provided SDL, no mouse cursor is displayed and mouse inputs are ignored. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libSDL2.so libSDL2-2.0.so.0 libSDL2-2.0.so.0.0.0" CONTENT_GAME_BIN_FILES=' bin/dontstarve *.json' CONTENT_GAME_DATA_FILES=' data mods dontstarve.xpm' USER_PERSISTENT_DIRECTORIES=' mods' APP_MAIN_EXE='bin/dontstarve' APP_MAIN_ICON='dontstarve.xpm' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The shipped build of SDL2 has no support for the wayland backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## Run the game binary from its parent directory APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-donut-county.sh0000755000000000000000000000433314471751340014633 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Donut County # send your bug reports to contact@dotslashplay.it ### script_version=20230328.4 GAME_ID='donut-county' GAME_NAME='Donut County' ARCHIVE_BASE_0='setup_donut_county_1.1.0_(64bit)_(25035).exe' ARCHIVE_BASE_0_MD5='4a4b84b7ac128e5af59b64a4bfffabe5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1.1.0-gog25035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/donut_county' UNITY3D_NAME='donutcounty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins *.dll *.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Annapurna Interactive/Donut County' APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-door-kickers.sh0000755000000000000000000000541614471751340014562 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Door Kickers # send your bug reports to contact@dotslashplay.it ### script_version=20240404.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/linux_libs" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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 case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion ;; esac content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dorfromantik.sh0000755000000000000000000000440614471751340014663 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 contact@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-dracula-love-kills.sh0000755000000000000000000000415714471751340015661 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dracula: Love Kills # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='dracula-love-kills' GAME_NAME='Dracula: Love Kills' ARCHIVE_BASE_0='setup_dracula_love_kills_1.0_(31713).exe' ARCHIVE_BASE_0_MD5='df1dc685677ed169914c9a1d96f47e32' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog31713' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dracula_love_kills' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_42.dll msvcr71.dll dracula_love_kills.exe' CONTENT_GAME_DATA_FILES=' 000 branding cursor shaders.0050 game.ini user.ini data.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Frogwares/Dracula. Love Kills' APP_MAIN_EXE='dracula_love_kills.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dragon-age-origins.sh0000755000000000000000000002650114471751340015640 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dragon Age: Origins # send your bug reports to contact@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dragon-age-origins' GAME_NAME='Dragon Age: Origins' ARCHIVE_BASE_2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205).exe' ARCHIVE_BASE_2_MD5='18e2e1f3fba4184ca15d6170d0a2ce51' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-1.bin' ARCHIVE_BASE_2_PART1_MD5='0735b7a919fe9b1a7e7d31cfea156ee5' ARCHIVE_BASE_2_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-2.bin' ARCHIVE_BASE_2_PART2_MD5='c7f59542be194793d3f1664b2b079d64' ARCHIVE_BASE_2_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-3.bin' ARCHIVE_BASE_2_PART3_MD5='87ef8829f56c5b985b7f3eb1893249de' ARCHIVE_BASE_2_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-4.bin' ARCHIVE_BASE_2_PART4_MD5='04f49cccc87d268fef2a7a4cafce27e8' ARCHIVE_BASE_2_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-5.bin' ARCHIVE_BASE_2_PART5_MD5='e44d862bd7221d065be30cd80de4d568' ARCHIVE_BASE_2_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-6.bin' ARCHIVE_BASE_2_PART6_MD5='e97793771570a38174e202704297fe37' ARCHIVE_BASE_2_SIZE='38342773' ARCHIVE_BASE_2_VERSION='1.05-gog78205' ARCHIVE_BASE_2_URL='https://www.gog.com/game/dragon_age_origins' ARCHIVE_BASE_1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885).exe' ARCHIVE_BASE_1_MD5='fa14b944ca5ce04e462afe61e932f1b0' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-1.bin' ARCHIVE_BASE_1_PART1_MD5='910ff0ff7db44dd44c9b7fbc01439226' ARCHIVE_BASE_1_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-2.bin' ARCHIVE_BASE_1_PART2_MD5='317484fbbe084fdfac86af933a3827d3' ARCHIVE_BASE_1_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-3.bin' ARCHIVE_BASE_1_PART3_MD5='c7a236056afe1e24070e747760cab8d9' ARCHIVE_BASE_1_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-4.bin' ARCHIVE_BASE_1_PART4_MD5='0b08303e31e29708cc679d92b5b9c607' ARCHIVE_BASE_1_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-5.bin' ARCHIVE_BASE_1_PART5_MD5='dead382df73a84c02ee54a5b34050fcc' ARCHIVE_BASE_1_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-6.bin' ARCHIVE_BASE_1_PART6_MD5='9c94a20453a52d5284c89aa4507949e0' ARCHIVE_BASE_1_SIZE='38343327' ARCHIVE_BASE_1_VERSION='1.05-gog76885' ARCHIVE_BASE_0_NAME='setup_dragon_age_origins_ultimate_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='2bfdbc94523ef4c21476f64ef8029479' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='b6e68b1b3b11fdddea809a5f11368036' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='71d813d6827941a90422a40088d64b78' ARCHIVE_BASE_0_PART3_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='2ff9cc2bb41435429ee6277106a6a568' ARCHIVE_BASE_0_PART4_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='a25c58b43a2e468fcf72446f57542115' ARCHIVE_BASE_0_PART5_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-5.bin' ARCHIVE_BASE_0_PART5_MD5='4ce5f6dceb01c9a1fc85c759c436b7b2' ARCHIVE_BASE_0_PART6_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-6.bin' ARCHIVE_BASE_0_PART6_MD5='e2d13b236af30f210e0eb65aec5d137e' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='1.05-gog2.1.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' bin_ship daoriginslauncher.exe' ## TODO: The add-ons could be moved to a dedicated package CONTENT_GAME_DATA_FILES=' addins data modules offers packages' CONTENT_GAME_ENVIRONMENT_FILES=' addins/*/*/env packages/*/env' CONTENT_GAME_MOVIES_FILES=' addins/*/core/data/movies modules/*/data/movies packages/*/data/movies' CONTENT_GAME_L10N_DE_FILES=' */de-de */*_de-de*' CONTENT_GAME_L10N_EN_FILES=' */en-us */*_en-us*' CONTENT_GAME_L10N_FR_FILES=' */fr-fr */*_fr-fr*' CONTENT_GAME_L10N_RU_FILES=' */ru-ru */*_ru-ru*' CONTENT_GAME_L10N_PL_FILES=' */pl-pl */*_pl-pl*' CONTENT_GAME_L10N_CS_FILES=' */cs-cz */*_cs-cz*' CONTENT_GAME_L10N_ES_FILES=' */es-es */*_es-es*' CONTENT_GAME_L10N_HU_FILES=' */hu-hu */*_hu-hu*' CONTENT_GAME_L10N_IT_FILES=' */it-it */*_it-it*' CONTENT_DOC_DATA_FILES=' manual.pdf' ## TODO: This should be split into the localization packages CONTENT_DOC0_DATA_RELATIVE_PATH='docs' CONTENT_DOC0_DATA_FILES=' *' CONTENT_SETTINGS_RELATIVE_PATH='__support/userdocs' CONTENT_SETTINGS_RELATIVE_PATH_0='../userdocs/bioware/dragon age/settings' CONTENT_SETTINGS_FILES=' addins.xml' CONTENT_PHYSX_RELATIVE_PATH='redist' CONTENT_PHYSX_FILES=' physx_9.09.0408_systemsoftware.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/BioWare/Dragon Age' APP_MAIN_EXE='bin_ship/daorigins.exe' ## Install shipped build of PhysX APP_MAIN_PRERUN=' # Install shipped build of PhysX if [ ! -e physx/installed ]; then $(wine_command) physx/physx_9.09.0408_systemsoftware.exe touch physx/installed fi ' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='bin_ship/daoriginsconfig.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_DE PKG_L10N_EN PKG_L10N_FR PKG_L10N_RU PKG_L10N_PL PKG_L10N_CS PKG_L10N_ES PKG_L10N_HU PKG_L10N_IT PKG_ENVIRONMENT PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_ENVIRONMENT PKG_MOVIES PKG_DATA PKG_L10N' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENVIRONMENT_ID="${GAME_ID}-environment" PKG_ENVIRONMENT_DESCRIPTION='environment' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_RU_ID="${PKG_L10N_ID}-ru" PKG_L10N_PL_ID="${PKG_L10N_ID}-pl" PKG_L10N_CS_ID="${PKG_L10N_ID}-cs" PKG_L10N_ES_ID="${PKG_L10N_ID}-es" PKG_L10N_HU_ID="${PKG_L10N_ID}-hu" PKG_L10N_IT_ID="${PKG_L10N_ID}-it" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DE_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_RU_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_PL_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_CS_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_ES_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_HU_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_IT_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DE_DESCRIPTION='German localization' PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_RU_DESCRIPTION='Russian localization' PKG_L10N_PL_DESCRIPTION='Polish localization' PKG_L10N_CS_DESCRIPTION='Czech localization' PKG_L10N_ES_DESCRIPTION='Spanish localization' PKG_L10N_HU_DESCRIPTION='Hungarian localization' PKG_L10N_IT_DESCRIPTION='Italian 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # innoextract --lowercase has no effect on the content of the .bin RAR archives if [ "$(archive_type "$(current_archive)_PART1")" = 'rar' ]; then tolower . fi ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion 'SETTINGS' 'PKG_DATA' "$(path_game_data)/settings" content_inclusion 'PHYSX' 'PKG_BIN' "$(path_game_data)/physx" content_inclusion_default # Write launchers ## Include the shipped settings ## This is required to unlock the included expansions ## TODO: This override could be mught lighter if a function ## wineprefix_init_actions_custom was provided by the library ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/548 wine_wineprefix_init_actions() { local game_id game_id=$(game_id) cat <<- EOF ## Link the game prefix into the WINE prefix ln --symbolic \ "\$PATH_PREFIX" \ "\${WINEPREFIX}/drive_c/${game_id}" EOF cat <<- 'EOF' ## Remove most links pointing outside of the WINE prefix rm "$WINEPREFIX/dosdevices/z:" find "$WINEPREFIX/drive_c/users/$(whoami)" -type l | while read -r directory; do rm "$directory" mkdir "$directory" done unset directory ## Set symbolic links to the legacy paths wineprefix_legacy_link 'AppData/Roaming' 'Application Data' wineprefix_legacy_link 'AppData/Local' 'Local Settings/Application Data' wineprefix_legacy_link 'Documents' 'My Documents' ## Include the shipped settings settings_path="${PATH_PERSISTENT}/wineprefix/users/${USER}/Documents/BioWare/Dragon Age/Settings" if [ ! -e "$settings_path" ]; then mkdir --parents "$(dirname "$settings_path")" cp --recursive "${PATH_GAME_DATA}/settings" "$settings_path" fi EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_fr='française' lang_ru='russe' lang_pl='polonaise' lang_cs='tchèque' lang_es='espagnole' lang_hu='hongroise' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_fr='French' lang_ru='Russian' lang_pl='Polish' lang_cs='Czech' lang_es='Spanish' lang_hu='Hungarian' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_L10N_DE' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_L10N_RU' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_L10N_PL' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_cs" print_instructions 'PKG_BIN' 'PKG_L10N_CS' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_es" print_instructions 'PKG_BIN' 'PKG_L10N_ES' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_hu" print_instructions 'PKG_BIN' 'PKG_L10N_HU' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_it" print_instructions 'PKG_BIN' 'PKG_L10N_IT' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' # Clean up working_directory_cleanup exit 0 games/play-dragonsphere.sh0000755000000000000000000000361014471751340014641 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dragonsphere # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dragonsphere' GAME_NAME='Dragonsphere' ARCHIVE_BASE_0_NAME='gog_dragonsphere_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='9dd42821c144aa87fd01b595607471c9' ARCHIVE_BASE_0_SIZE='91000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dragonsphere' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' GAME.GOG GAME.INS' CONTENT_GAME0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/DRAGON" ## FIXME: An explicit list of files should be set. CONTENT_GAME0_MAIN_FILES=' *' USER_PERSISTENT_FILES=' SAVES.DIR CONFIG.DRA DRAG*.SAV' GAME_IMAGE='GAME.INS' APP_MAIN_EXE='MAINMENU.EXE' APP_MAIN_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to uppercase. toupper . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dream.sh0000755000000000000000000000402414471751340013250 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dream # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dream' GAME_NAME='Dream' ARCHIVE_BASE_0_NAME='setup_dream_1.12_(20822).exe' ARCHIVE_BASE_0_MD5='a4e75ba9d21e146fff1a9cfca2674657' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_dream_1.12_(20822)-1.bin' ARCHIVE_BASE_0_PART1_MD5='944eee69b9e0a90a0d03dd2e83c2644e' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.12-gog20822' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' udkgame' USER_PERSISTENT_DIRECTORIES=' udkgame/config Saves' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='binaries/win32/dream.exe' ## The type must be set explicitly, or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' 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-dreaming-sarah.sh0000755000000000000000000000571614471751340015053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dreaming Sarah # send your bug reports to contact@dotslashplay.it ### script_version=20240329.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dreaming-sarah' GAME_NAME='Dreaming Sarah' ARCHIVE_BASE_32BIT_0_NAME='DreamingSarah-linux32_1.3.zip' ARCHIVE_BASE_32BIT_0_MD5='73682a545e979ad9a2b6123222ddb517' ARCHIVE_BASE_32BIT_0_SIZE='200000' ARCHIVE_BASE_32BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' ARCHIVE_BASE_64BIT_0_NAME='DreamingSarah-linux64_1.3.zip' ARCHIVE_BASE_64BIT_0_MD5='a68f3956eb09ea7b34caa20f6e89b60c' ARCHIVE_BASE_64BIT_0_SIZE='200000' ARCHIVE_BASE_64BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' CONTENT_PATH_DEFAULT_32BIT='DreamingSarah-linux32' CONTENT_PATH_DEFAULT_64BIT='DreamingSarah-linux64' CONTENT_GAME_BIN_FILES=' nw nacl_helper*' CONTENT_LIBS_BIN_PATH_32BIT="${CONTENT_PATH_DEFAULT_32BIT}/lib" CONTENT_LIBS_BIN_PATH_64BIT="${CONTENT_PATH_DEFAULT_64BIT}/lib" CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_DATA_FILES=' locales *.bin *.dat *.nw *.pak' APP_MAIN_EXE='nw' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 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 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 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 libXss.so.1 libXtst.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" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duet.sh0000755000000000000000000000574314471751340013132 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Duet # send your bug reports to contact@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='duet' GAME_NAME='Duet' # This DRM-free build is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='Duet-Build1006023-Linux64.zip' ARCHIVE_BASE_0_MD5='b9c34c29da94c199ee75a5e71272a1eb' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-humble1006023' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_FILES=' libsfml-audio.so.2.3 libsfml-graphics.so.2.3 libsfml-system.so.2.3 libsfml-window.so.2.3' ## The game binary is linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_LIBS0_BIN_PATH='steam-runtime/amd64/usr/lib/x86_64-linux-gnu' CONTENT_LIBS0_BIN_FILES=' libjpeg.so.8 libjpeg.so.8.0.2' CONTENT_GAME_BIN_FILES=' Duet' CONTENT_GAME_DATA_FILES=' Media' APP_MAIN_EXE='Duet' 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 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb-randr.so.0 libxcb.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" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='duet_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_0_MD5='57d79a524801768a742405a7a5310e08' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/duet' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duke-nukem-3d.sh0000755000000000000000000000374514471751340014542 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Duke Nukem 3D # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='duke-nukem-3d' GAME_NAME='Duke Nukem 3D' # This game installer is no longer available for sale from gog.com ARCHIVE_BASE_0='gog_duke_nukem_3d_atomic_edition_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='a51283d3bbc2db62b75c6c62824f5e46' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.5-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.BAT *.CFG *.CON *.DAT *.DMO *.DOC *.EXE *.GIF *.GRP *.H *.HLP *.INI *.MAP *.PCK *.RTS *.TXT' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='DUKE3D.EXE' APP_MAIN_ICON='duke3d.ico' USER_PERSISTENT_FILES=' DUKE3D.GRP *.CFG *.SAV' # Enforce required audio setting APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enforce required audio setting export DOSBOX_SBLASTER_IRQ=5' # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dungeons-2-expansions.sh0000755000000000000000000000412014471751340016323 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 contact@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.sh0000755000000000000000000000445314471751340014147 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 contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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' ## TODO: Check if the Steam are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=' mono server' CONTENT_GAME0_DATA_FILES=' AssetBundles mapexports *.block *.txt' 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 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set required execution permission on the shipped Mono binary. chmod 755 'mono/bin/mono' ) # 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-and-lesbians.sh0000755000000000000000000000716014471751340016344 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dungeons and Lesbians # send your bug reports to contact@dotslashplay.it ### script_version=20240328.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dungeons-and-lesbians' GAME_NAME='Dungeons & Lesbians' ARCHIVE_BASE_0_NAME='DungeonsAndLesbians-1.2-linux.tar.bz2' ARCHIVE_BASE_0_MD5='31015bbbc250043dca3e77c96941655b' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.2-itch1' ARCHIVE_BASE_0_URL='https://noeybodys.itch.io/dungeonsandlesbians' CONTENT_PATH_DEFAULT='DungeonsAndLesbians-1.2-linux' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' ## libpng12.so.0 is not only a dependency of the shipped SDL2 build, ## it is actually required to prevent a crash on launch. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libpng12.so.0" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/DungeonsAndLesbians' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake lib/linux-i686/DungeonsAndLesbians' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 DungeonsAndLesbians.py' APP_MAIN_EXE_BIN64='lib/linux-x86_64/DungeonsAndLesbians' APP_MAIN_EXE_BIN32='lib/linux-i686/DungeonsAndLesbians' APP_MAIN_OPTIONS='-EO DungeonsAndLesbians.py' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_ICO APP_MAIN_ICON_PNG' APP_MAIN_ICON_PNG='game/icon.png' APP_MAIN_ICON_ICO='game/icon.ico' 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 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dust-an-elysian-tail.sh0000755000000000000000000000652614471751340016135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dust: An Elysian Tail # send your bug reports to contact@dotslashplay.it ### script_version=20230101.1 GAME_ID='dust-an-elysian-tail' GAME_NAME='Dust: An Elysian Tail' ARCHIVE_BASE_GOG_0='gog_dust_an_elysian_tail_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='57299e2e4af0283e68a7aa5e8b390697' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='1500000' ARCHIVE_BASE_GOG_0_VERSION='1.04-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/dust_an_elysian_tail' ARCHIVE_BASE_HUMBLE_0='dustaet_05042016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='6844c82f233b47417620be0bef8b140c' ARCHIVE_BASE_HUMBLE_0_TYPE='mojosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1500000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.04-humble160504' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dust-an-elysian-tail' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' Content data de es fr it ja DustAET.exe Dust An Elysian Tail.bmp monoconfig FNA.dll FNA.dll.config MonoGame.Framework.Net.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_TYPE='mono' APP_MAIN_EXE='DustAET.exe' APP_MAIN_ICON='Dust An Elysian Tail.bmp' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libtheoradec.so.1 libvorbisfile.so.3' # Include shipped libraries that can not be replaced by system ones CONTENT_GAME_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_GAME_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_GAME_LIBS32_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_GAME_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_GAME_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_GAME_LIBS64_FILES=' libmojoshader.so libtheoraplay.so' PACKAGES_LIST="$PACKAGES_LIST PKG_LIBS32 PKG_LIBS64" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.20' 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" # Disable language override mono_launcher_tweaks() { cat <<- 'EOF' ## Work around terminfo Mono bug, ## cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}" EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_MAIN' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_MAIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dustforce.sh0000755000000000000000000000670214471751340014163 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Dustforce # send your bug reports to contact@dotslashplay.it ### script_version=20241218.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dustforce' GAME_NAME='Dustforce DX' ARCHIVE_BASE_HUMBLE_0_NAME='Dustforce-Linux-2014-12-22.sh' ARCHIVE_BASE_HUMBLE_0_MD5='e2fa7efd5b9ec64fc453f32480f63ad4' ARCHIVE_BASE_HUMBLE_0_SIZE='409003' ARCHIVE_BASE_HUMBLE_0_VERSION='2024.12.22-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dustforce-dx' ARCHIVE_BASE_GOG_0_NAME='gog_dustforce_dx_2.2.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='5423718cf31f2602c9d0b30b79d1f409' ARCHIVE_BASE_GOG_0_SIZE='409517' ARCHIVE_BASE_GOG_0_VERSION='2014.12.22-gog2.2.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/dustforce_dx' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libcurl.so.3' CONTENT_LIBS_BIN64_RELATIVE_PATH_HUMBLE='x86_64/lib64' CONTENT_LIBS_BIN64_RELATIVE_PATH_GOG='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH_HUMBLE='x86/lib' CONTENT_LIBS_BIN32_RELATIVE_PATH_GOG='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' Dustforce.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' Dustforce.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' content Dustforce.png' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' Linux.README ReadMe.txt' APP_MAIN_EXE_BIN64='Dustforce.bin.x86_64' APP_MAIN_EXE_BIN32='Dustforce.bin.x86' APP_MAIN_ICON_HUMBLE='noarch/Dustforce.png' APP_MAIN_ICON_GOG='Dustforce.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" ## libidn.so.11 is required by the shipped libcurl.so.3 library PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libidn.so.11 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 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-earthlock.sh0000755000000000000000000000357614471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Earthlock # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='earthlock' GAME_NAME='Earthlock' ARCHIVE_BASE_0_NAME='setup_earthlock_1.1.0_(35125).exe' ARCHIVE_BASE_0_MD5='922c46185118046df2931fbd9e9d88c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_earthlock_1.1.0_(35125)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4bc76160d2a6f1c097069f54a5009396' ARCHIVE_BASE_0_VERSION='1.1.0-gog35125' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthlock' UNITY3D_NAME='earthlock' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Snowcastle Games/Earthlock Enhanced Edition' 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-earthworm-jim-1.sh0000755000000000000000000000354414471751340015111 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Earthworm Jim 1 # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='earthworm-jim-1' GAME_NAME='Earthworm Jim' ARCHIVE_BASE_0_NAME='earthworm_jim_en_1_0_16595.sh' ARCHIVE_BASE_0_MD5='87b487f85654763347433dc0952b0118' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-gog16595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthworm_jim_1_2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.cfg *.dat *.exe *.gog *.hlp *.ico *.id *.inst' CONTENT_DOC_MAIN_FILES=' readme.txt' GAME_IMAGE='ewj1.inst' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='ewj1.exe' APP_MAIN_OPTIONS='320x224' APP_MAIN_ICON='../support/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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to lowercase tolower . ) # 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-edible-places.sh0000755000000000000000000000401714471751340014653 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Indifferent Wonder of an Edible Place # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='edible-places' GAME_NAME='The Indifferent Wonder of an Edible Place' ARCHIVE_BASE_0_NAME='Edible Places 01.6 (Linux).zip' ARCHIVE_BASE_0_MD5='88359c14fec2b94dd06ed4306ef1b681' ARCHIVE_BASE_0_SIZE='1265238' ARCHIVE_BASE_0_VERSION='01.6-itch' ARCHIVE_BASE_0_URL='https://studio-oleomingus.itch.io/the-indifferent-wonder-of-an-edible-place' UNITY3D_NAME='Edible' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Edible Places 01.6 (Linux)' CONTENT_DOC_DATA_FILES=' Readme.txt' 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 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" # 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-element4l.sh0000755000000000000000000000343114471751340014052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Element4l # send your bug reports to contact@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='element4l' GAME_NAME='Element4l' ## This DRM-free archive is no longer available from playism.com, ## as their store turned into yet another Steam keys reseller. ARCHIVE_BASE_0_NAME='Element4l-WIN-1.2.3.zip' ARCHIVE_BASE_0_MD5='04f761ddf4e9e9b14cad67ae32c1598e' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='1.2.3-playism' UNITY3D_NAME='element4l' CONTENT_PATH_DEFAULT='Update-1.2.3-WIN' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\I-Illusions\element4l' 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-elephantasy.sh0000755000000000000000000000455314471751340014504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Elephantasy # send your bug reports to contact@dotslashplay.it ### script_version=20230328.2 GAME_ID='elephantasy' GAME_NAME='Elephantasy' ARCHIVE_BASE_0='Elephantasy Release Build_Itch.zip' ARCHIVE_BASE_0_MD5='d0a7deaccf9b5fbbd3f3c879adb61a6a' ARCHIVE_BASE_0_SIZE='35000' ARCHIVE_BASE_0_VERSION='1.6-itch.2021.04.24' ARCHIVE_BASE_0_URL='https://linker.itch.io/elephantasy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_43.dll elephant.exe options.ini' CONTENT_GAME_DATA_FILES=' data.win' CONTENT_DOC_DATA_FILES=' README.txt' WINE_PERSISTENT_DIRECTORIES=' userdata:users/${USER}/Local Settings/Application Data/Elephant' APP_MAIN_EXE='elephant.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" # The .zip archive contains a .exe file, # that is actually a cabinet archive. ARCHIVE_INNER_TYPE='cabinet' SCRIPT_DEPS="$SCRIPT_DEPS cabextract" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' ## The .zip archive contains a .exe file, ## that is actually a cabinet archive. ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/Elephantasy.exe" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-else-heart-break.sh0000755000000000000000000000432314471751340015275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # else Heart.Break() # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='else-heart-break' GAME_NAME='else Heart.Break()' ARCHIVE_BASE_0_NAME='ElseHeartbreakLinux.tgz' ARCHIVE_BASE_0_MD5='7030450cadac6234676967ae41f2a732' ARCHIVE_BASE_0_SIZE='1418045' ARCHIVE_BASE_0_VERSION='1.0.9-humble160129' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/else-heartbreak' UNITY3D_NAME='ElseHeartbreak' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='ElseHeartbreakLinux' ## TODO: Check if it is required to build a dedicated package for assets CONTENT_GAME_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/InitData ${UNITY3D_NAME}_Data/Saves" PACKAGES_LIST=' PKG_BIN PKG_ASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_ASSETS 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" # 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-empire-earth-1.sh0000755000000000000000000001250614471751340014704 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 contact@dotslashplay.it ### script_version=20241217.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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 ## 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_ID="$GAME_ID" 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_DATA_CONQUEST' PKG_DATA_CONQUEST_ID="${GAME_ID}-${GAME_ID_CONQUEST}-data" PKG_DATA_CONQUEST_DESCRIPTION="$GAME_NAME_CONQUEST - 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)-${GAME_ID_CONQUEST}" content_inclusion 'GAME_DATA_CONQUEST' 'PKG_DATA_CONQUEST' "$(path_game_data)/$(game_id)-${GAME_ID_CONQUEST}" content_inclusion 'DOC_DATA_CONQUEST' 'PKG_DATA_CONQUEST' "$(path_documentation)/$(game_id)-${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)-${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 } 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-encodya.sh0000755000000000000000000000477014471751340013612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Encodya # send your bug reports to contact@dotslashplay.it ### script_version=20230731.1 GAME_ID='encodya' GAME_NAME='Encodya' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" # Archives ## Full game (gog.com) ARCHIVE_BASE_0='encodya_1_1_46120.sh' ARCHIVE_BASE_0_MD5='6fdadc42c828896389de2a9fd3a355fb' ARCHIVE_BASE_0_SIZE='3300000' ARCHIVE_BASE_0_VERSION='1.1-gog46120' ARCHIVE_BASE_0_URL='https://www.gog.com/game/encodya' ## Demo (itch.io) ## This free demo has been removed from itch.io since the release of the full game. ARCHIVE_BASE_DEMO_0='ENCODYA_DemoV1linux.zip' ARCHIVE_BASE_DEMO_0_MD5='4b3dfbbd37585615791acf13b4bb7ecd' ARCHIVE_BASE_DEMO_0_SIZE='1100000' ARCHIVE_BASE_DEMO_0_VERSION='1-itch' UNITY3D_NAME='ENCODYA' UNITY3D_NAME_DEMO='ENCODYA_DemoV1' UNITY3D_PLUGINS=' abci.so libsteam_api.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='ENCODYA_DemoV1' 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_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libxml2.so.2 libz.so.1' # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-endless-space-1.sh0000755000000000000000000000525514471751340015053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Endless Space 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230716.4 GAME_ID='endless-space-1' GAME_NAME='Endless Space' ARCHIVE_BASE_0='setup_endlesstm_space_-_definitive_edition_1.0.0._(64185).exe' ARCHIVE_BASE_0_MD5='84ccf58a734694a63db59e599344a254' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='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_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data public public_xp1" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Endless Space' APP_MAIN_EXE="${UNITY3D_NAME}.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=' deinterlace video/x-ms-asf' # The game engine expects write access to XML files. USER_PERSISTENT_FILES=' *.xml' # Skip playing the logo movie on launch, # as it prevents reaching the game menu. APP_MAIN_OPTIONS="${APP_MAIN_OPTIONS:-} -nologo" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-endzone-1-expansions.sh0000755000000000000000000000425614471751340016154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Endzone 1 expansions: # - Halloween # send your bug reports to contact@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.sh0000755000000000000000000000544114471751340013764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Endzone 1 # send your bug reports to contact@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-enter-the-gungeon.sh0000755000000000000000000000475114471751340015522 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Enter the Gungeon # send your bug reports to contact@dotslashplay.it ### script_version=20231122.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='enter-the-gungeon' GAME_NAME='Enter the Gungeon' ARCHIVE_BASE_0_NAME='enter_the_gungeon_2_1_9_33951.sh' ARCHIVE_BASE_0_MD5='5d4c174aa3b9bb57faa19e44872794e5' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='2.1.9-gog33951' ARCHIVE_BASE_0_URL='https://www.gog.com/game/enter_the_gungeon' UNITY3D_NAME='EtG' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Add an explicit list of plugins to include. CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" 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" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-epistory-typing-chronicles.sh0000755000000000000000000000661714471751340017507 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Epistory - Typing Chronicles # send your bug reports to contact@dotslashplay.it ### script_version=20241020.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='epistory-typing-chronicles' GAME_NAME='Epistory - Typing Chronicles' ARCHIVE_BASE_1_NAME='epistory_typing_chronicles_en_1_4_0_21518.sh' ARCHIVE_BASE_1_MD5='bf54d1235b4b02be0a90eeccce64e9a5' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.4.0-gog21518' ARCHIVE_BASE_1_URL='https://www.gog.com/game/epistory_typing_chronicles' ARCHIVE_BASE_0_NAME='gog_epistory_typing_chronicles_2.2.0.3.sh' ARCHIVE_BASE_0_MD5='8db1f835a9189099e57c174ba2353f53' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.3.5-gog2.2.0.3' UNITY3D_NAME='Epistory' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.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 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link ScreenSelector.so in the game data path as the game engine fails to find it otherwise file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" file_destination_32="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" file_destination_64="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" mkdir --parents \ "$(dirname "$file_destination_32")" \ "$(dirname "$file_destination_64")" ln --symbolic "$file_source" "$file_destination_32" ln --symbolic "$file_source" "$file_destination_64" # Write launchers ## Do not override the system locale, as it prevents the game from starting. launcher_unity3d_force_locale() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages ## Do not include a package for the 64-bit build, as running it seems to trigger a severe memory leak PACKAGES_LIST=' PKG_BIN32 PKG_DATA' packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-equaboreal-1221.sh0000755000000000000000000000406014471751340014663 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Equaboreal 12.21 # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='equaboreal-1221' GAME_NAME='Equaboreal 12.21' ARCHIVE_BASE_0_NAME='Equaboreal_LINUX_1.02.zip' ARCHIVE_BASE_0_MD5='4ca58bf305ef445e3e0b8b5eb64fb319' ARCHIVE_BASE_0_SIZE='695633' ARCHIVE_BASE_0_VERSION='1.02-itch' ARCHIVE_BASE_0_URL='https://girldebord.itch.io/1221' UNITY3D_NAME='Equaboreal_1.02' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Equaboreal_LINUX_1.02' 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=' 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' # 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-escape-goat.sh0000755000000000000000000000654614471751340014363 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Escape Goat series: # - Escape Goat 1 # - Escape Goat 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='escape-goat-1' GAME_ID_EPISODE2='escape-goat-2' GAME_NAME_EPISODE1='Escape Goat' GAME_NAME_EPISODE2='Escape Goat 2' # Archives ## Escape Goat ARCHIVE_BASE_EPISODE1_0_NAME='gog_escape_goat_2.0.0.8.sh' ARCHIVE_BASE_EPISODE1_0_MD5='772eda5c48d59b7528a9d85b3f1f84e3' ARCHIVE_BASE_EPISODE1_0_SIZE='110000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0.6-gog2.0.0.8' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/escape_goat' ## Escapt Goat 2 ARCHIVE_BASE_EPISODE2_0_NAME='gog_escape_goat_2_2.0.0.11.sh' ARCHIVE_BASE_EPISODE2_0_MD5='50e77abfe8737c6d0e1e37e8ad2460cc' ARCHIVE_BASE_EPISODE2_0_SIZE='260000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.1.0-gog2.0.0.11' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/escape_goat_2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES_EPISODE1=' Content fr EscapeGoat.exe Escape Goat.bmp Common.dll Lidgren.Network.dll MonoGame.Framework.dll Physics.dll SDL2#.dll SDL2#.dll.config' CONTENT_GAME_MAIN_FILES_EPISODE2=' Content fr EscapeGoat2.exe Escape Goat 2.bmp Common.dll EG2.ICSharpCode.SharpZipLib.dll EG2.Newtonsoft.Json.dll EscapeGoat2.resources.dll Illuminant.dll MonoGame.Framework.dll Physics.dll SDL2-CS.dll SDL2-CS.dll.config Squared.*.dll' CONTENT_DOC_MAIN_FILES=' Linux.README ReadMe.txt' APP_MAIN_EXE_EPISODE1='EscapeGoat.exe' APP_MAIN_EXE_EPISODE2='EscapeGoat2.exe' APP_MAIN_ICON_EPISODE1='Escape Goat.bmp' APP_MAIN_ICON_EPISODE2='Escape Goat 2.bmp' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_EPISODE1=' 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' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_EPISODE2=' mscorlib.dll I18N.dll I18N.West.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' ## Ensure easy upgrades from packages generated from pre-20240603.1 game scripts. PKG_MAIN_PROVIDES_EPISODE1="${PKG_MAIN_PROVIDES_EPISODE1:-} escape-goat escapt-goat-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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-eschalon-book-1.sh0000755000000000000000000000416514471751340015050 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Eschalon: Book 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230809.1 GAME_ID='eschalon-book-1' GAME_NAME='Eschalon: Book I' ARCHIVE_BASE_0='gog_eschalon_book_i_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='36588478c59f0fdabf775415eeaf7c6a' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.06-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/eschalon_book_i' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Eschalon Book I' CONTENT_GAME_DATA_FILES=' data music sound gfx.pak' CONTENT_DOC_FILES=' license_full.txt' APP_MAIN_EXE='Eschalon Book I' APP_MAIN_ICON='../support/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXxf86vm.so.1' # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ether-one.sh0000755000000000000000000000346214471751340014053 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ether One # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ether-one' GAME_NAME='Ether One' ARCHIVE_BASE_0_NAME='setup_ether_one_redux_v01.06_(64bit)_(38324).exe' ARCHIVE_BASE_0_MD5='13f269e4f088c6a747f6848b678cdf46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.06-gog38324' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ether_one' UNREALENGINE4_NAME='etherone' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=IDICON_UE4GAME --language=1033' 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-etherlords-1.sh0000755000000000000000000000426014471751340014473 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 contact@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.sh0000755000000000000000000000553614471751340016165 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 contact@dotslashplay.it ### script_version=20230730.2 GAME_ID='europa-universalis-2' GAME_NAME='Europa Universalis Ⅱ' ARCHIVE_BASE_0='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' 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_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' # Fix music playback SCRIPT_DEPS="${SCRIPT_DEPS:-} dos2unix unix2dos" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' ( 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evans-remains.sh0000755000000000000000000000563014471751340014734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Evan's Remains # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='evans-remains' GAME_NAME='Evan’s Remains' ARCHIVE_BASE_0_NAME='setup_evans_remains_1.0_(41967).exe' ARCHIVE_BASE_0_MD5='a91b5a8801daa0befc00e581e28d676a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='3.3.3-gog41967' ARCHIVE_BASE_0_URL='https://www.gog.com/game/evans_remains' CONTENT_PATH_DEFAULT='.' CONTENT_FONTS_DATA_FILES=' basis33.ttf jf-dot-ayu18.ttf koharufont.ttf unifont-13.0.01.ttf' CONTENT_GAME_BIN_FILES=' evansremains.exe options.ini' CONTENT_GAME_DATA_FILES=' data.win *.csv' CONTENT_DOC_DATA_FILES=' license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Evan_v_3_3_3' APP_MAIN_EXE='evansremains.exe' APP_MAIN_ICON='evansremains.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" # Work around the shipped icon not using a square ratio SCRIPT_DEPS="$SCRIPT_DEPS 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Work around the shipped icon not using a square ratio. icon_source_png='tmp/evansremains.exe_14_152_2057.png' icon_source_png_cropped='tmp/evansremains.exe_14_152_2057_cropped.png' icon_converted_128='evansremains_128.png' icon_converted_192='evansremains_192.png' icon_extract_png_from_file 'APP_MAIN_ICON' 'tmp' convert "$icon_source_png" -crop 149x149+1x0 "$icon_source_png_cropped" convert "$icon_source_png_cropped" -resize 128x128 "$icon_converted_128" convert "$icon_source_png_cropped" -resize 192x192 "$icon_converted_192" rm --recursive 'tmp' ) # Include game data ## Work around the shipped icon not using a square ratio. APP_MAIN_ICON_128='evansremains_128.png' APP_MAIN_ICON_192='evansremains_192.png' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_128 APP_MAIN_ICON_192' 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-everspace.sh0000755000000000000000000000502214471751340014134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Everspace # send your bug reports to contact@dotslashplay.it ### script_version=20230712.2 GAME_ID='everspace' GAME_NAME='Everspace' ARCHIVE_BASE_3='everspace_1_3_5_3655_32896.sh' ARCHIVE_BASE_3_MD5='55c9230b3805c54d13371f940860d4a9' ARCHIVE_BASE_3_SIZE='11000000' ARCHIVE_BASE_3_VERSION='1.3.5-gog32896' ARCHIVE_BASE_3_URL='https://www.gog.com/game/everspace' ARCHIVE_BASE_2='everspace_1_3_4_29339.sh' ARCHIVE_BASE_2_MD5='2010b839534fb5a265eea6116b9193ae' ARCHIVE_BASE_2_SIZE='11000000' ARCHIVE_BASE_2_VERSION='1.3.4-gog29339' ARCHIVE_BASE_1='everspace_1_3_3_25886.sh' ARCHIVE_BASE_1_MD5='df8f210059a515ef738f247bfcd61bb2' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.3.3-gog25886' ARCHIVE_BASE_0='everspace_en_1_3_2_3_22978.sh' ARCHIVE_BASE_0_MD5='4290b47c1396f140198f45a74bf53abf' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3.2.3-gog22978' UNREALENGINE4_NAME='RSG' CONTENT_PATH_DEFAULT='data/noarch/game' APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' 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' # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-everything-is-garbage.sh0000755000000000000000000000352014471751340016343 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 contact@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-everything.sh0000755000000000000000000000501614471751340014346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Everything # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='everything' GAME_NAME='Everything' UNITY3D_NAME='Everything' ARCHIVE_BASE_0='Everything_DRMfree_Linux_106.zip' ARCHIVE_BASE_0_MD5='f5e05e94702e74c23524227e6d148159' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.06-humble170503' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/everything' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evoland-series.sh0000755000000000000000000001065514471751340015107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Evoland series: # - Evoland 1 # - Evoland 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241219.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_EVOLAND1='evoland-1' GAME_NAME_EVOLAND1='Evoland' GAME_ID_EVOLAND2='evoland-2' GAME_NAME_EVOLAND2='Evoland 2, A Slight Case of Spacetime Continuum Disorder' ## Archives ### Evoland 1 ARCHIVE_BASE_EVOLAND1_GOG_0_NAME='setup_evoland_1.1.2490_(20677).exe' ARCHIVE_BASE_EVOLAND1_GOG_0_MD5='97978ef959d097876142ae2c6ce765c2' ARCHIVE_BASE_EVOLAND1_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND1_GOG_0_SIZE='120000' ARCHIVE_BASE_EVOLAND1_GOG_0_VERSION='1.1.2490-gog20677' ARCHIVE_BASE_EVOLAND1_GOG_0_URL='https://www.gog.com/game/evoland' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND1_HUMBLE_0_NAME='Evoland.exe' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_MD5='9585142f38d769d4ac9125f587d0c891' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_VERSION='1.1.2490-humble1' ### Evoland 2 ARCHIVE_BASE_EVOLAND2_GOG_0_NAME='setup_evoland_2_1.0.9137_(20679).exe' ARCHIVE_BASE_EVOLAND2_GOG_0_MD5='a77db6e435460505bbc6beb1c4fcd5ed' ARCHIVE_BASE_EVOLAND2_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND2_GOG_0_SIZE='789305' ARCHIVE_BASE_EVOLAND2_GOG_0_VERSION='1.0.9137-gog20679' ARCHIVE_BASE_EVOLAND2_GOG_0_URL='https://www.gog.com/game/evoland_2' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND2_HUMBLE_0_NAME='Evoland2.zip' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_MD5='0e34269cb7db3a6c065311eea90e651a' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_SIZE='790000' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_VERSION='1.0.9137-humble170116' CONTENT_PATH_DEFAULT_EVOLAND1='.' CONTENT_PATH_DEFAULT_EVOLAND2_GOG='.' CONTENT_PATH_DEFAULT_EVOLAND2_HUMBLE='Evoland2' CONTENT_GAME_BIN_FILES=' adobe air dinput8.dll evoland.exe evoland2.exe pad.exe gamepadconfig.txt' CONTENT_GAME_DATA_FILES=' icons meta-inf mimetype game.dat res.pak' WINE_PERSISTENT_DIRECTORIES_EVOLAND1=' users/${USER}/AppData/Roaming/com.shirogames.evoland' USER_PERSISTENT_DIRECTORIES_EVOLAND2=' save' APP_MAIN_EXE_EVOLAND1='evoland.exe' APP_MAIN_EXE_EVOLAND2='evoland2.exe' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_128' APP_MAIN_ICON_16='icons/evoicon16.png' APP_MAIN_ICON_32='icons/evoicon32.png' APP_MAIN_ICON_48='icons/evoicon48.png' APP_MAIN_ICON_128='icons/evoicon128.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated by pre-20201219.1 script. PKG_BIN_PROVIDES_EVOLAND1="${PKG_BIN_PROVIDES_EVOLAND1:-} evoland" PKG_DATA_ID_EVOLAND1="${GAME_ID_EVOLAND1}-data" PKG_DATA_ID_EVOLAND2="${GAME_ID_EVOLAND2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated by pre-20201219.1 script. PKG_DATA_PROVIDES_EVOLAND1="${PKG_DATA_PROVIDES_EVOLAND1:-} evoland-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)" # Convert all file paths to lowercase case "$(current_archive)" in ('ARCHIVE_BASE_EVOLAND1_HUMBLE_'*|'ARCHIVE_BASE_EVOLAND2_HUMBLE_'*) tolower . ;; 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-factory-town.sh0000755000000000000000000000364114471751340014620 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 contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='factory-town' GAME_NAME='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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/factory_town' 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_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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fall-of-porcupine.sh0000755000000000000000000000452714471751340015512 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fall of Porcupine # send your bug reports to contact@dotslashplay.it ### script_version=20240119.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fall-of-porcupine' GAME_NAME='Fall of Porcupine' ARCHIVE_BASE_0_NAME='setup_fall_of_porcupine_1.1.12_(65935).exe' ARCHIVE_BASE_0_MD5='6b3cb17a1f869630d16ca633dc176382' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_fall_of_porcupine_1.1.12_(65935)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8a32270570176b36192ac3ff8bcf7715' ARCHIVE_BASE_0_SIZE='4168652' ARCHIVE_BASE_0_VERSION='1.1.12-gog65935' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fall_of_porcupine' UNITY3D_NAME='fallofporcupine' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Buntspecht Film und Digitales GmbH/FallOfPorcupine' 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 ## TODO: Investigate a hashsum mismatch during data extraction: ## Warning: Output checksum mismatch for fallofporcupine_data/sharedassets11.assets.ress: ## ├─ actual: MD5 6f4cb6264ae05e5a039650fb7fd2d078 ## └─ expected: MD5 2212bc181be9503f339e23573e1c0256 archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-classics.sh0000755000000000000000000001723314471751340015436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 dany_wilde set -o errexit ### # Fallout classic games: # - Fallout 1 # - Fallout 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240422.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID_FALLOUT1='fallout-1' GAME_NAME_FALLOUT1='Fallout' GAME_ID_FALLOUT2='fallout-2' GAME_NAME_FALLOUT2='Fallout 2' # Archives ## Fallout 1 ARCHIVE_BASE_FALLOUT1_EN_1_NAME='setup_fallout_1.2_(27130).exe' ARCHIVE_BASE_FALLOUT1_EN_1_MD5='2cd1bb09f241c286498ea834480852ec' ARCHIVE_BASE_FALLOUT1_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_NAME='setup_fallout_1.2_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_MD5='b9a0a59bc1426df4cc9588fdd5a8d736' ARCHIVE_BASE_FALLOUT1_EN_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_EN_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_FR_1_NAME='setup_fallout_1.2_(french)_(27130).exe' ARCHIVE_BASE_FALLOUT1_FR_1_MD5='2c0d7a347a903bb52ed1d70305038e9c' ARCHIVE_BASE_FALLOUT1_FR_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_NAME='setup_fallout_1.2_(french)_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_MD5='7db5f755168b89cc38b6e090130b0e1a' ARCHIVE_BASE_FALLOUT1_FR_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_FR_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_EN_0_NAME='setup_fallout_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_EN_0_MD5='47b7b3c059d92c0fd6db5881635277ea' ARCHIVE_BASE_FALLOUT1_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_0_VERSION='1.2-gog2.1.0.18' ARCHIVE_BASE_FALLOUT1_FR_0_NAME='setup_fallout_french_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_FR_0_MD5='12ba5bb0489b5bafb777c8d07717b020' ARCHIVE_BASE_FALLOUT1_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_0_VERSION='1.2-gog2.1.0.18' ## Fallout 2 ARCHIVE_BASE_FALLOUT2_EN_1_NAME='setup_fallout2_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT2_EN_1_MD5='b20e9a133c23bf308b8460272fd32d2b' ARCHIVE_BASE_FALLOUT2_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_1_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_1_VERSION='1.3-gog2.1.0.18' ARCHIVE_BASE_FALLOUT2_EN_1_URL='https://www.gog.com/game/fallout_2' ARCHIVE_BASE_FALLOUT2_EN_0_NAME='setup_fallout2_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_EN_0_MD5='b40a8f2e1ff9216e25b8f09577c27f33' ARCHIVE_BASE_FALLOUT2_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_NAME='setup_fallout2_french_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_FR_0_MD5='7df6f834b480873bea2f8593254b1960' ARCHIVE_BASE_FALLOUT2_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_FR_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_FR_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_URL='https://www.gog.com/game/fallout_2' # Archives content ## Fallout 1 CONTENT_PATH_DEFAULT_FALLOUT1='.' CONTENT_PATH_DEFAULT_FALLOUT1_EN_0='app' CONTENT_PATH_DEFAULT_FALLOUT1_FR_0='app' CONTENT_GAME_BIN_FILES_FALLOUT1=' falloutw.exe f1_res.dll f1_res_config.exe' CONTENT_GAME_L10N_PATH_FALLOUT1='__support/app' CONTENT_GAME_L10N_PATH_FALLOUT1_EN_0='app' CONTENT_GAME_L10N_PATH_FALLOUT1_FR_0='app' CONTENT_GAME_L10N_FILES_FALLOUT1=' fallout.cfg f1_res.ini' CONTENT_GAME_DATA_FILES_FALLOUT1=' critter.dat master.dat data extras fallout.ico' CONTENT_DOC_L10N_FILES_FALLOUT1=' readme.txt manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT1=' refcard.pdf readme.rtf f1_res_readme.rtf' ## Fallout 2 CONTENT_PATH_DEFAULT_FALLOUT2='app' CONTENT_GAME_BIN_FILES_FALLOUT2=' fallout2.exe f2_res.dll f2_res_config.exe f2_res.ini' CONTENT_GAME_L10N_FILES_FALLOUT2=' critter.dat master.dat translations fallout2.cfg' CONTENT_GAME_DATA_FILES_FALLOUT2=' data extras fallout2.ico sound' CONTENT_DOC_L10N_FILES_FALLOUT2=' manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT2=' refcard.pdf readme.rtf f2_res_readme.rtf faq.txt licence.txt f2_res_change.log' # Launchers USER_PERSISTENT_FILES=' *.cfg *.ini' USER_PERSISTENT_DIRECTORIES=' data/savegame' ## Disable WINE csmt to avoid performance issues WINE_WINETRICKS_VERBS='csmt=off' APP_RES_CAT='Settings' ## Fallout 1 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT1="${USER_PERSISTENT_FILES:-} falloutw.exe" APP_MAIN_EXE_FALLOUT1='falloutw.exe' APP_MAIN_ICON_FALLOUT1='fallout.ico' APP_RES_ID_FALLOUT1="${GAME_ID_FALLOUT1}-resolution" APP_RES_NAME_FALLOUT1="$GAME_NAME_FALLOUT1 - resolution" APP_RES_EXE_FALLOUT1='f1_res_config.exe' ## Fallout 2 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT2="${USER_PERSISTENT_FILES:-} fallout2.exe" APP_MAIN_EXE_FALLOUT2='fallout2.exe' APP_MAIN_ICON_FALLOUT2='fallout2.ico' APP_RES_ID_FALLOUT2="${GAME_ID_FALLOUT2}-resolution" APP_RES_NAME_FALLOUT2="$GAME_NAME_FALLOUT2 - resolution" APP_RES_EXE_FALLOUT2='f2_res_config.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' ## Fallout 1 PKG_L10N_ID_FALLOUT1="${GAME_ID_FALLOUT1}-l10n" PKG_L10N_ID_FALLOUT1_EN="${PKG_L10N_ID_FALLOUT1}-en" PKG_L10N_ID_FALLOUT1_FR="${PKG_L10N_ID_FALLOUT1}-fr" PKG_L10N_PROVIDES_FALLOUT1=" $PKG_L10N_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_L10N_PROVIDES_FALLOUT1="${PKG_L10N_PROVIDES_FALLOUT1} fallout-l10n" PKG_DATA_ID_FALLOUT1="${GAME_ID_FALLOUT1}-data" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_DATA_PROVIDES_FALLOUT1="${PKG_DATA_PROVIDES_FALLOUT1} fallout-data" PKG_BIN_DEPS_FALLOUT1="$PKG_L10N_ID_FALLOUT1 $PKG_DATA_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_BIN_PROVIDES_FALLOUT1="${PKG_BIN_PROVIDES_FALLOUT1} fallout" ## Fallout 2 PKG_L10N_ID_FALLOUT2="${GAME_ID_FALLOUT2}-l10n" PKG_L10N_ID_FALLOUT2_EN="${PKG_L10N_ID_FALLOUT2}-en" PKG_L10N_ID_FALLOUT2_FR="${PKG_L10N_ID_FALLOUT2}-fr" PKG_L10N_PROVIDES_FALLOUT2=" $PKG_L10N_ID_FALLOUT2" PKG_DATA_ID_FALLOUT2="${GAME_ID_FALLOUT2}-data" PKG_BIN_DEPS_FALLOUT2="$PKG_L10N_ID_FALLOUT2 $PKG_DATA_ID_FALLOUT2" # 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 ## Drop the easter egg icon. case "$(current_archive)" in ('ARCHIVE_BASE_FALLOUT1_'*) icon_extract_png_from_ico() { local icon destinaton icon="$1" destination="$2" icon_convert_to_png "$icon" "$destination" rm --force "${destination}/fallout-4.png" } ;; ('ARCHIVE_BASE_FALLOUT2_'*) icon_extract_png_from_ico() { local icon destinaton icon="$1" destination="$2" icon_convert_to_png "$icon" "$destination" rm --force "${destination}/fallout2-4.png" } ;; esac set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-new-vegas.sh0000755000000000000000000002713514471751340015530 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Fallout: New Vegas # send your bug reports to contact@dotslashplay.it ### script_version=20250113.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fallout-new-vegas' GAME_NAME='Fallout: New Vegas' ARCHIVE_BASE_EN_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_2_MD5='54d7878228b86284d360e8672ce5e85c' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='7ce668d5d084250b7ea445447b05d9b1' ARCHIVE_BASE_EN_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_2_PART2_MD5='6d86a620514632e5d8c453e27e32dce1' ARCHIVE_BASE_EN_2_SIZE='9879738' ARCHIVE_BASE_EN_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_FR_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_2_MD5='301a3885d574a88ebbe8147ce8f28cd0' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='58eb0e07dc5eb8c1f1bc78dbfa1f9cfb' ARCHIVE_BASE_FR_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_2_PART2_MD5='e57e233aea17d8f4ee23bf90d0318a38' ARCHIVE_BASE_FR_2_PART3_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-3.bin' ARCHIVE_BASE_FR_2_PART3_MD5='c2020bf115acc116204e43ca09a58ef0' ARCHIVE_BASE_FR_2_SIZE='9999844' ARCHIVE_BASE_FR_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_EN_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_1_MD5='2381656fd552e5b93c143336fedbc21d' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='e0979d7e1d0145cd7bb6d1ad62419a17' ARCHIVE_BASE_EN_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_1_PART2_MD5='730ae6ea0eb5d41773be6bb19bb15d57' ARCHIVE_BASE_EN_1_SIZE='9900000' ARCHIVE_BASE_EN_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_1_MD5='841d652c40c7c4bb54830ba768bf48a7' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='054a674e5246f8b8c78c02f3ee2095dc' ARCHIVE_BASE_FR_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_1_PART2_MD5='a3d4bbfd30d2d60389ed2d2b4b5aed07' ARCHIVE_BASE_FR_1_SIZE='10000000' ARCHIVE_BASE_FR_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_0_NAME='setup_fallout_new_vegas_1.4.0.525_(12010).exe' ARCHIVE_BASE_EN_0_MD5='be32894fe423302d299fa532e5641079' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_EN_0_PART2_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='705e7097b9c18836118c2e9eb42b19ed' ARCHIVE_BASE_EN_0_SIZE='11000000' ARCHIVE_BASE_EN_0_VERSION='1.4.0.525-gog12010' ARCHIVE_BASE_FR_0_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010).exe' ARCHIVE_BASE_FR_0_MD5='da79e8756efb16b211a76756cd8865b3' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_FR_0_PART2_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='e148a49b1bbcfa4b2662e45691ae606e' ARCHIVE_BASE_FR_0_SIZE='11000000' ARCHIVE_BASE_FR_0_VERSION='1.4.0.525-gog12010' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_BIN_FILES=' atimgpud.dll binkw32.dll gdffalloutnv.dll libvorbis.dll libvorbisfile.dll ssce5432.dll falloutnv.exe geck.exe low.ini medium.ini high.ini veryhigh.ini' ## TODO: Check if the Galaxy libraries are required CONTENT_GAME0_BIN_FILES=' galaxy.dll galaxywrp.dll' CONTENT_GAME_L10N_FILES=' falloutnvlauncher.exe fallout_default.ini data/credits.txt data/creditswacky.txt data/fallout - voices1.bsa data/falloutnv.esm data/video/fnvintro.bik' CONTENT_GAME_DLC1_FILES=' data/deadmoney*' CONTENT_GAME_DLC2_FILES=' data/honesthearts*' CONTENT_GAME_DLC3_FILES=' data/oldworldblues*' CONTENT_GAME_DLC4_FILES=' data/lonesomeroad*' CONTENT_GAME_DLC5_FILES=' data/gunrunnersarsenal*' CONTENT_GAME_DLC6_FILES=' data/caravanpack*' CONTENT_GAME_DLC7_FILES=' data/classicpack*' CONTENT_GAME_DLC8_FILES=' data/mercenarypack*' CONTENT_GAME_DLC9_FILES=' data/tribalpack*' CONTENT_GAME_DATA_FILES=' data geckicon.ico falloutnv.ico maintitle.wav' CONTENT_DOC_L10N_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/FalloutNV' APP_MAIN_EXE='falloutnvlauncher.exe' APP_MAIN_ICON='falloutnv.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="${GAME_NAME} - Editor" APP_EDITOR_EXE='geck.exe' APP_EDITOR_ICON='geckicon.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DLC1 PKG_DLC2 PKG_DLC3 PKG_DLC4 PKG_DLC5 PKG_DLC6 PKG_DLC7 PKG_DLC8 PKG_DLC9 PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' 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' PKG_DLC1_ID="${GAME_ID}-dlc-dead-money" PKG_DLC1_ID_EN="${PKG_DLC1_ID}-en" PKG_DLC1_ID_FR="${PKG_DLC1_ID}-fr" PKG_DLC1_PROVIDES=" $PKG_DLC1_ID" PKG_DLC1_DESCRIPTION='Dead Money' PKG_DLC1_DESCRIPTION_EN="${PKG_DLC1_DESCRIPTION} - English version" PKG_DLC1_DESCRIPTION_FR="${PKG_DLC1_DESCRIPTION} - French version" PKG_DLC1_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC2_ID="${GAME_ID}-dlc-honest-hearts" PKG_DLC2_ID_EN="${PKG_DLC2_ID}-en" PKG_DLC2_ID_FR="${PKG_DLC2_ID}-fr" PKG_DLC2_PROVIDES=" $PKG_DLC2_ID" PKG_DLC2_DESCRIPTION='Honest Hearts' PKG_DLC2_DESCRIPTION_EN="${PKG_DLC2_DESCRIPTION} - English version" PKG_DLC2_DESCRIPTION_FR="${PKG_DLC2_DESCRIPTION} - French version" PKG_DLC2_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC3_ID="${GAME_ID}-dlc-old-world-blues" PKG_DLC3_ID_EN="${PKG_DLC3_ID}-en" PKG_DLC3_ID_FR="${PKG_DLC3_ID}-fr" PKG_DLC3_PROVIDES=" $PKG_DLC3_ID" PKG_DLC3_DESCRIPTION='Old World Blues' PKG_DLC3_DESCRIPTION_EN="${PKG_DLC3_DESCRIPTION} - English version" PKG_DLC3_DESCRIPTION_FR="${PKG_DLC3_DESCRIPTION} - French version" PKG_DLC3_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC4_ID="${GAME_ID}-dlc-lonesome-road" PKG_DLC4_ID_EN="${PKG_DLC4_ID}-en" PKG_DLC4_ID_FR="${PKG_DLC4_ID}-fr" PKG_DLC4_PROVIDES=" $PKG_DLC4_ID" PKG_DLC4_DESCRIPTION='Lonesome Road' PKG_DLC4_DESCRIPTION_EN="${PKG_DLC4_DESCRIPTION} - English version" PKG_DLC4_DESCRIPTION_FR="${PKG_DLC4_DESCRIPTION} - French version" PKG_DLC4_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC5_ID="${GAME_ID}-dlc-gun-runners-arsenal" PKG_DLC5_ID_EN="${PKG_DLC5_ID}-en" PKG_DLC5_ID_FR="${PKG_DLC5_ID}-fr" PKG_DLC5_PROVIDES=" $PKG_DLC5_ID" PKG_DLC5_DESCRIPTION='Gun Runnersʼ Arsenal' PKG_DLC5_DESCRIPTION_EN="${PKG_DLC5_DESCRIPTION} - English version" PKG_DLC5_DESCRIPTION_FR="${PKG_DLC5_DESCRIPTION} - French version" PKG_DLC5_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC6_ID="${GAME_ID}-dlc-caravan-pack" PKG_DLC6_ID_EN="${PKG_DLC6_ID}-en" PKG_DLC6_ID_FR="${PKG_DLC6_ID}-fr" PKG_DLC6_PROVIDES=" $PKG_DLC6_ID" PKG_DLC6_DESCRIPTION='Caravan Pack' PKG_DLC6_DESCRIPTION_EN="${PKG_DLC6_DESCRIPTION} - English version" PKG_DLC6_DESCRIPTION_FR="${PKG_DLC6_DESCRIPTION} - French version" PKG_DLC6_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC7_ID="${GAME_ID}-dlc-classic-pack" PKG_DLC7_ID_EN="${PKG_DLC7_ID}-en" PKG_DLC7_ID_FR="${PKG_DLC7_ID}-fr" PKG_DLC7_PROVIDES=" $PKG_DLC7_ID" PKG_DLC7_DESCRIPTION='Classic Pack' PKG_DLC7_DESCRIPTION_EN="${PKG_DLC7_DESCRIPTION} - English version" PKG_DLC7_DESCRIPTION_FR="${PKG_DLC7_DESCRIPTION} - French version" PKG_DLC7_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC8_ID="${GAME_ID}-dlc-mercenary-pack" PKG_DLC8_ID_EN="${PKG_DLC8_ID}-en" PKG_DLC8_ID_FR="${PKG_DLC8_ID}-fr" PKG_DLC8_PROVIDES=" $PKG_DLC8_ID" PKG_DLC8_DESCRIPTION='Mercenary Pack' PKG_DLC8_DESCRIPTION_EN="${PKG_DLC8_DESCRIPTION} - English version" PKG_DLC8_DESCRIPTION_FR="${PKG_DLC8_DESCRIPTION} - French version" PKG_DLC8_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC9_ID="${GAME_ID}-dlc-tribal-pack" PKG_DLC9_ID_EN="${PKG_DLC9_ID}-en" PKG_DLC9_ID_FR="${PKG_DLC9_ID}-fr" PKG_DLC9_PROVIDES=" $PKG_DLC9_ID" PKG_DLC9_DESCRIPTION='Tribal Pack' PKG_DLC9_DESCRIPTION_EN="${PKG_DLC9_DESCRIPTION} - English version" PKG_DLC9_DESCRIPTION_FR="${PKG_DLC9_DESCRIPTION} - French version" PKG_DLC9_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Set required registry key installed_path="C:\\\\${GAME_ID}/" registry_dump_installed_path_file='registry-dumps/installed-path.reg' registry_dump_installed_path_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Bethesda Softworks\FalloutNV] "Installed Path"="'"${installed_path}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_installed_path_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_installed_path_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # 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 required registry key mkdir --parents "$(dirname "$registry_dump_installed_path_file")" printf '%s' "$registry_dump_installed_path_content" | iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_installed_path_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions 'PKG_BIN' 'PKG_L10N' 'PKG_DATA' ( GAME_NAME="$PKG_DLC1_DESCRIPTION" set_current_package 'PKG_DLC1' print_instructions 'PKG_DLC1' ) ( GAME_NAME="$PKG_DLC2_DESCRIPTION" set_current_package 'PKG_DLC2' print_instructions 'PKG_DLC2' ) ( GAME_NAME="$PKG_DLC3_DESCRIPTION" set_current_package 'PKG_DLC3' print_instructions 'PKG_DLC3' ) ( GAME_NAME="$PKG_DLC4_DESCRIPTION" set_current_package 'PKG_DLC4' print_instructions 'PKG_DLC4' ) ( GAME_NAME="$PKG_DLC5_DESCRIPTION" set_current_package 'PKG_DLC5' print_instructions 'PKG_DLC5' ) ( GAME_NAME="$PKG_DLC6_DESCRIPTION" set_current_package 'PKG_DLC6' print_instructions 'PKG_DLC6' ) ( GAME_NAME="$PKG_DLC7_DESCRIPTION" set_current_package 'PKG_DLC7' print_instructions 'PKG_DLC7' ) ( GAME_NAME="$PKG_DLC8_DESCRIPTION" set_current_package 'PKG_DLC8' print_instructions 'PKG_DLC8' ) ( GAME_NAME="$PKG_DLC9_DESCRIPTION" set_current_package 'PKG_DLC9' print_instructions 'PKG_DLC9' ) # Clean up working_directory_cleanup exit 0 games/play-fallout-tactics.sh0000755000000000000000000001202114471751340015252 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 contact@dotslashplay.it ### script_version=20250113.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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' ## TODO: Check the actual size, it might differ from the other build ARCHIVE_BASE_EN_1_SIZE='1827190' 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 a fullscreen 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. ## Running the game in a virtual desktop prevents that (WINE 10.0-rc2). WINE_VIRTUAL_DESKTOP='1024x768' ## FIXME: ./play.it 2.32.0 only builds a list from applications ## using an identifier matching "APP_xxx", ## where "xxx" does not include any underscore. 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 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 graphical artifacts on map scrolling (WINE 10.0-rc2) sed --in-place --expression='s/{display.bpp} = {.*}/{display.bpp} = {16}/' 'core/bos.cfg' # Set the highest supported game resolution by default sed_expression='s/{display.height} = {.*}/{display.height} = {768}/' sed_expression="${sed_expression};s/{display.width} = {.*}/{display.width} = {1024}/" sed --in-place --expression="$sed_expression" 'core/bos.cfg' ) # 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-fantasy-general.sh0000755000000000000000000000520214471751340015237 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 contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fantasy-general' GAME_NAME='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_EN_0_URL='https://www.gog.com/game/fantasy_general' 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' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/fantasy_general' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' dat exe music saves shp sound game.gog game.ins *.bat' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' Fantasy General - Manual.pdf' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' dat/prefs.dat' GAME_IMAGE='game.ins' APP_MAIN_TYPE='dosbox' APP_MAIN_EXE='exe/barena.exe' APP_MAIN_ICON='../support/icon.png' ## Run the game binary from its parent directory. APP_MAIN_PRERUN='# Run the game binary from its parent directory APP_DIR=$(dirname "$APP_EXE") APP_EXE=$(basename "$APP_EXE") ' APP_MAIN_DOSBOX_PRERUN=' cd "$APP_DIR" ' PKG_MAIN_ID="$GAME_ID" PKG_MAIN_ID_EN="${GAME_ID}-en" PKG_MAIN_ID_FR="${GAME_ID}-fr" PKG_MAIN_PROVIDES=" $PKG_MAIN_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-far-from-noise.sh0000755000000000000000000000332714471751340015011 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Far From Noise # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='far-from-noise' GAME_NAME='Far From Noise' ARCHIVE_BASE_0_NAME='Windows.zip' ARCHIVE_BASE_0_MD5='7861db608070316a1a329fb140d90b8f' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://georgebatch.itch.io/far-from-noise' UNITY3D_NAME='FarFromNoise' CONTENT_PATH_DEFAULT='Windows' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\George Batchelor\Far from Noise' 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-far-lone-sails.sh0000755000000000000000000000335614471751340015003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FAR: Lone Sails # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='far-lone-sails' GAME_NAME='FAR: Lone Sails' ARCHIVE_BASE_0_NAME='setup_far_lone_sails_1.3_(56748).exe' ARCHIVE_BASE_0_MD5='f18af4cc8e730c58db71460b0dff9cae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.3-gog56748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/far_lone_sails' UNITY3D_NAME='farlonesails' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Okomotive/FarLoneSails' 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" # 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-farabel.sh0000755000000000000000000000470714471751340013564 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 contact@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fear-equation.sh0000755000000000000000000000562714471751340014732 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 contact@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-feist.sh0000755000000000000000000000575114471751340013302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Feist # send your bug reports to contact@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='feist' GAME_NAME='Feist' ARCHIVE_BASE_0_NAME='feist_en_1_3_0_22450.sh' ARCHIVE_BASE_0_MD5='f9561b4faddb9789a5c97833af935d09' ARCHIVE_BASE_0_SIZE='186520' ARCHIVE_BASE_0_VERSION='1.3.0-gog22450' ARCHIVE_BASE_0_URL='https://www.gog.com/game/feist' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_feist_2.4.0.7.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='ce0b128c23defc946535ec180dcef121' ARCHIVE_BASE_MULTIARCH_0_SIZE='459990' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.1.2-gog2.4.0.7' UNITY3D_NAME='Feist' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH=' 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_MUTLIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MUTLIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH" 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' case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fez.sh0000755000000000000000000000556414471751340012756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fez # send your bug reports to contact@dotslashplay.it ### script_version=20240830.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fez' GAME_NAME='Fez' ARCHIVE_BASE_0_NAME='fez-11282016-bin' ARCHIVE_BASE_0_MD5='333d2e5f55adbd251b09e01d4da213c6' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='440000' ARCHIVE_BASE_0_VERSION='1.12-humble161128' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fez' CONTENT_PATH_DEFAULT='data' ## Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_FILES=' libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content monoconfig FEZ.bmp Common.dll ContentSerialization.dll EasyStorage.dll FezEngine.dll FNA.dll FNA.dll.config SimpleDefinitionLanguage.dll XnaWordWrapCore.dll FEZ.exe gamecontrollerdb.txt' CONTENT_DOC_MAIN_FILES=' Linux.README Changelog.txt README.txt' APP_MAIN_EXE='FEZ.exe' APP_MAIN_ICON='FEZ.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libvorbis.so.0 libvorbisfile.so.3' 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.IO.Compression.dll System.IO.Compression.FileSystem.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # 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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-figment-1.sh0000755000000000000000000000450414471751340013752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Figment 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='figment-1' GAME_NAME='Figment' ARCHIVE_BASE_0_NAME='figment_1_1_8_24039.sh' ARCHIVE_BASE_0_MD5='c1da7eb0081fa3fc6140510cc725ee8e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.1.8-gog24039' ARCHIVE_BASE_0_URL='https://www.gog.com/game/figment' UNITY3D_NAME='Figment' ## TODO: Check if we could drop the shipped Steam library. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Figment' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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" # 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-figment-2.sh0000755000000000000000000000410414471751340013747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Figment 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230827.1 GAME_ID='figment-2' GAME_NAME='Figment 2: Creed Valley' ARCHIVE_BASE_0='setup_figment_2_creed_valley_1.0.11_(64bit)_(65124).exe' ARCHIVE_BASE_0_MD5='ab0bfda1b740dc5df208a4518658413d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0.11-gog65124' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/figment_creed_valley' UNITY3D_NAME='figment 2' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bedtime Digital Games/Figment 2 users/${USER}/Documents/My Games/Figment 2' 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 target_version='2.25' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fixfox.sh0000755000000000000000000000327714471751340013474 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FixFox # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fixfox' GAME_NAME='FixFox' ARCHIVE_BASE_0_NAME='setup_fixfox_402_c39e385a_(61432).exe' ARCHIVE_BASE_0_MD5='4a2095116059e12d6c8fa7363cd30fdc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='402-gog61432' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fixfox' UNITY3D_NAME='fixfox' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Rendlike/FixFox' 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" # 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-flashout-3d-enhanced-edition.sh0000755000000000000000000000443314471751340017511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Flashout 3D: Enhanced Edition # send your bug reports to contact@dotslashplay.it ### script_version=20230213.1 GAME_ID='flashout-3d-enhanced-edition' GAME_NAME='Flashout 3D: Enhanced Edition' ARCHIVE_BASE_0='setup_flashout_3d_enhanced_edition_1.0.4_(58979).exe' ARCHIVE_BASE_0_MD5='f1a898a6f1a5d50f1f482170221557a5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='1.0.4-gog58979' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flashout_3d_enhanced_edition' UNITY3D_NAME='flashout3d-ee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Jujubee S.A.\Flashout3D-EE' 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 target_version='2.22' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flat-kingdom.sh0000755000000000000000000000334014471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Flat Kingdom # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='flat-kingdom' GAME_NAME='Flat Kingdom' ARCHIVE_BASE_0_NAME='Flat Kingdom PC.zip' ARCHIVE_BASE_0_MD5='2b824a3f57dac2bda8d9b60efcc85ee7' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://gamesstarter.itch.io/flatkingdom' UNITY3D_NAME='Flat kingdom rework' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fat Panda/Flat Kingdom' 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" # 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-flatout-2.sh0000755000000000000000000000463514471751340014005 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Flatout 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='flatout-2' GAME_NAME='FlatOut 2' ARCHIVE_BASE_2_NAME='flatout_2_gog_3_23461.sh' ARCHIVE_BASE_2_MD5='5529dcd679eae03f23d9807efd22a182' ARCHIVE_BASE_2_SIZE='3800000' ARCHIVE_BASE_2_VERSION='1.2-gog23461' ARCHIVE_BASE_2_URL='https://www.gog.com/game/flatout_2' ARCHIVE_BASE_1_NAME='gog_flatout_2_2.1.0.6.sh' ARCHIVE_BASE_1_MD5='77cbd07105aa202ef808edebda15833a' ARCHIVE_BASE_1_SIZE='3400000' ARCHIVE_BASE_1_VERSION='1.2-gog2.1.0.6' ARCHIVE_BASE_0_NAME='gog_flatout_2_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='cdc453f737159ac62bd9f59540002610' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.2-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/prefix/drive_c/GOG Games/FlatOut 2' CONTENT_GAME_BIN_FILES=' flatout2.exe' CONTENT_GAME_DATA_FILES=' filesystem patch flatout2.ico *.bfs' CONTENT_DOC_DATA_FILES=' readme.htm *.pdf' USER_PERSISTENT_DIRECTORIES=' savegame' ## TODO: Check if this winetricks verb is required. WINE_WINETRICKS_VERBS='d3dx9' APP_MAIN_EXE='flatout2.exe' APP_MAIN_ICON='flatout2.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to lower case. tolower . ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-florence.sh0000755000000000000000000000334414471751340013761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Florence # send your bug reports to contact@dotslashplay.it ### script_version=20240627.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='florence' GAME_NAME='Florence' ARCHIVE_BASE_0_NAME='setup_florence_1.0.1.4373_(64bit)_(35616).exe' ARCHIVE_BASE_0_MD5='d9b406a2e56b740ce8c0ffd10990c15a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.1.4373-gog35616' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/florence' UNITY3D_NAME='florence' CONTENT_PATH_DEFAULT='.' ## FIXME: Add persistent storage for game progress and settings. 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-flower.sh0000755000000000000000000000361614471751340013464 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Flower # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='flower' GAME_NAME='Flower' ARCHIVE_BASE_0_NAME='setup_flower_1.45_(64bit)_(35425).exe' ARCHIVE_BASE_0_MD5='65076f1fc214fdadd4a0758235a0da20' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.45-gog35425' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flower' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod64.dll galaxy64.dll libscepad.dll winpixeventruntime.dll flower.exe' CONTENT_GAME_DATA_FILES=' data font2.fnt flower.xme menusystem.xme strings.xme' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Flower' APP_MAIN_EXE='flower.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" # 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-flux-caves.sh0000755000000000000000000000416514471751340014243 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Flux Caves # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='flux-caves' GAME_NAME='Flux Caves' ARCHIVE_BASE_0_NAME='108_Linux_Full.zip' ARCHIVE_BASE_0_MD5='695038dfa472774ecfda4371100b2eb9' ARCHIVE_BASE_0_SIZE='1033362' ARCHIVE_BASE_0_VERSION='1.08-itch1' ARCHIVE_BASE_0_URL='https://fubenalvo.itch.io/fluxcaves' UNITY3D_NAME='fluxcaves' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='108_Linux_Full' 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=' 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' # 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-forced.sh0000755000000000000000000000507314471751340013427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Forced # send your bug reports to contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='forced' GAME_NAME='Forced' ## This DRM-free archive is no longer available from humblebundle.com, ## they now only sell Steam keys for this game. ARCHIVE_BASE_0_NAME='FORCED_Linux.zip' ARCHIVE_BASE_0_MD5='039f971dc0ae0741e52865a9f23280d3' ARCHIVE_BASE_0_SIZE='3742323' ARCHIVE_BASE_0_VERSION='1.22-humble1' UNITY3D_NAME='FORCED' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='FORCED_Linux/FORCED' USER_PERSISTENT_DIRECTORIES=' FORCED_Data/Visual Scripting' 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=' 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' 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-forgotton-anne.sh0000755000000000000000000000434014471751340015121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Forgotton Anne # send your bug reports to contact@dotslashplay.it ### script_version=20240403.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='forgotton-anne' GAME_NAME='Forgotton Anne' ARCHIVE_BASE_0_NAME='setup_forgotton_anne_5.5.3_(29552).exe' ARCHIVE_BASE_0_MD5='2f6b17e78651f6ccc9070705b879a6ae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_forgotton_anne_5.5.3_(29552)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8f6e836ff3519e4759af8c51ed89655d' ARCHIVE_BASE_0_PART2_NAME='setup_forgotton_anne_5.5.3_(29552)-2.bin' ARCHIVE_BASE_0_PART2_MD5='728970d510b82fc1d9d336c9e26fb8c3' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='5.5.3-gog29552' ARCHIVE_BASE_0_URL='https://www.gog.com/game/forgotton_anne' UNITY3D_NAME='forgottonanne' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/51445449926814491' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fossil-echo.sh0000755000000000000000000000451414471751340014377 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fossil Echo # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fossil-echo' GAME_NAME='Fossil Echo' ARCHIVE_BASE_0_NAME='FossilEcho_setup.zip' ARCHIVE_BASE_0_MD5='079e62f826016c1d3edd35e8fe40bb3a' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://awaceb.itch.io/fossilecho' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' datatypes.dll fmod.dll fmodstudio.dll fossilecho.exe' CONTENT_GAME_DATA_FILES=' content data level media' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/SavedGames/fossilecho' ## Install the Microsoft XNA 4.0 runtime WINE_WINETRICKS_VERBS='xna40' ## Do not disable the mscoree library, as it is required by the Microsoft XNA 4.0 runtime WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' USER_PERSISTENT_DIRECTORIES=' data level' APP_MAIN_EXE='fossilecho.exe' ## Handle this binary with WINE, not with Mono APP_MAIN_TYPE='wine' 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" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/FossilEcho_setup.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm --force "$(archive_path 'ARCHIVE_INNER')" # 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-fotonica.sh0000755000000000000000000000521514471751340013765 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fotonica # send your bug reports to contact@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='fotonica' GAME_NAME='Fotonica' ARCHIVE_BASE_0_NAME='FOTONICA_LINUX.tar.gz' ARCHIVE_BASE_0_MD5='33b8918b21c03ae0289e7050c661b534' ARCHIVE_BASE_0_SIZE='293117' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fotonica' UNITY3D_NAME='FOTONICA' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='FOTONICA' 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=' 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_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 ## 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-four-sided-fantasy.sh0000755000000000000000000000341314471751340015665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Four Sided Fantasy # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='four-sided-fantasy' GAME_NAME='Four Sided Fantasy' ARCHIVE_BASE_0_NAME='FourSidedFantasy.zip' ARCHIVE_BASE_0_MD5='3e6b74bb365bd75cf79f089ff9ddc619' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.0-itch.2016.11.14' ARCHIVE_BASE_0_URL='https://serenity-forge.itch.io/four-sided-fantasy' UNITY3D_NAME='FourSidedFantasy' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\AppDataLow\Software\LudoLand\Four Sided Fantasy' 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-fox-and-flock.sh0000755000000000000000000000745314471751340014621 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fox and Flock # send your bug reports to contact@dotslashplay.it ### script_version=20240329.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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. SCRIPT_DEPS="${SCRIPT_DEPS:-} convert" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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" # 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" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fragments-of-euclid.sh0000755000000000000000000000435314471751340016020 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Fragments of Euclid # send your bug reports to contact@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='fragments-of-euclid' GAME_NAME='Fragments of Euclid' ARCHIVE_BASE_0_NAME='fragments-of-euclid-linux.zip' ARCHIVE_BASE_0_MD5='2a786a3ffad74015842d85e74e2bee7f' ARCHIVE_BASE_0_SIZE='240183' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://nusan.itch.io/fragments-of-euclid' UNITY3D_NAME='FragmentsOfEuclid' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' readme.txt' 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' 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-fruits-of-a-feather.sh0000755000000000000000000000377514471751340015744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Fruits of a Feather # send your bug reports to contact@dotslashplay.it ### script_version=20231016.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='fruits-of-a-feather' GAME_NAME='Fruits of a Feather' ARCHIVE_BASE_0='FruitsOfAFeather2.0_LINUX.zip' ARCHIVE_BASE_0_MD5='4eabeef1cfd27136a62730d5e5cf4d6f' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2.0-itch.2016.11.18' ARCHIVE_BASE_0_URL='https://samuraipunk.itch.io/feather' UNITY3D_NAME='FruitsofaFeather' UNITY3D_PLUGINS=' ScreenSelector.so sqlite3.so' CONTENT_PATH_DEFAULT='linux' 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=' 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" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fugue.sh0000755000000000000000000000501214471751340013271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fugue # send your bug reports to contact@dotslashplay.it ### script_version=20231102.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fugue' GAME_NAME='Fugue' ARCHIVE_BASE_0_NAME='fugue-linux-universal.zip' ARCHIVE_BASE_0_MD5='f950781fcb9db71a14d58199f984f770' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.5-itch' ARCHIVE_BASE_0_URL='https://jimjastajay.itch.io/fugue' UNITY3D_NAME='Fugue' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the Steam libraries can be dropped. CONTENT_LIBS_BIN64_FILES=' libsteam_api.so' CONTENT_LIBS_BIN32_FILES=' libsteam_api64.so' 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=' 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_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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-full-throttle-remastered.sh0000755000000000000000000000471014471751340017120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Full Throttle Remastered # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='full-throttle-remastered' GAME_NAME='Full Throttle Remastered' ARCHIVE_BASE_0='full_throttle_remastered_en_gog_3_20993.sh' ARCHIVE_BASE_0_MD5='2f4bf151e225e7dfa9bec31ed49b721c' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='1.0-gog20993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/full_throttle_remastered' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib' CONTENT_LIBS_BIN_FILES=' libfmod.so.8' CONTENT_GAME_BIN_FILES=' Throttle gamecontrollerdb.txt' CONTENT_GAME_DATA_FILES=' full.data' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE='Throttle' APP_MAIN_ICON='../support/icon.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" 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' # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' 2>/dev/null ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Restore the full data file from its parts mv 'full.data.split00' 'full.data' cat 'full.data.split01' >> 'full.data' rm 'full.data.split01' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gabriel-knight-1.sh0000755000000000000000000000400314471751340015202 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gabriel Knight 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240430.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='gabriel-knight-1' GAME_NAME='Gabriel Knight 1: Sins of the Fathers' ARCHIVE_BASE_0_NAME='setup_gabriel_knight_-_sins_of_the_fathers_20th_anniversary_edition_2.02_(16216).exe' ARCHIVE_BASE_0_MD5='ac1879d3217f7ce12403e51ccb463792' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_gabriel_knight_-_sins_of_the_fathers_20th_anniversary_edition_2.02_(16216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7d97631d1b1d636faa4eefd7ae49c16c' ARCHIVE_BASE_0_SIZE='3016016' ARCHIVE_BASE_0_VERSION='2.02-gog16216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gabriel_knight_sins_of_the_fathers_20th_anniversary_edition' UNITY3D_NAME='gk1' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Phoenix Online Studios/GK1' 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-gangsters-organized-crime.sh0000755000000000000000000000402714471751340017235 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 contact@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-garden-in.sh0000755000000000000000000000423014471751340014023 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Garden In # send your bug reports to contact@dotslashplay.it ### script_version=20241105.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='garden-in' GAME_NAME='Garden In!' ARCHIVE_BASE_1_NAME='setup_garden_in_1.3.6.1_(64bit)_(73207).exe' ARCHIVE_BASE_1_MD5='dc2cacf13ccf7e758463af3039c1d565' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='917331' ARCHIVE_BASE_1_VERSION='1.3.6.1-gog73207' ARCHIVE_BASE_1_URL='https://www.gog.com/game/garden_in' ARCHIVE_BASE_0_NAME='setup_garden_in_1.0.6.2_(64bit)_(63850).exe' ARCHIVE_BASE_0_MD5='1ed753d195f563e2a530f07743ae7a4f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.0.6.2-gog63850' UNREALENGINE4_NAME='gardenin' CONTENT_PATH_DEFAULT='windowsnoeditor' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' 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-gathering-sky.sh0000755000000000000000000000765014471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Gathering Sky # send your bug reports to contact@dotslashplay.it ### script_version=20230812.1 GAME_ID='gathering-sky' GAME_NAME='Gathering Sky' ARCHIVE_BASE_0='GatheringSky_Linux_64bit.zip' ARCHIVE_BASE_0_MD5='c590edce835070a1ac2ae47ac620dc48' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/gathering-sky' CONTENT_PATH_DEFAULT='packr/linux/GatheringSky' CONTENT_GAME_DATA_FILES=' desktop-0.1.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' config.json GatheringSky jre' # Launchers ## Common APPLICATIONS_LIST='APP_MAIN' ## Ensure settings can be stored APP_MAIN_PRERUN='# Ensure settings can be stored mkdir --parents "$HOME/.prefs" ' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_128' APP_MAIN_ICON_16='../../../images/Icon_16.png' APP_MAIN_ICON_32='../../../images/Icon_32.png' APP_MAIN_ICON_128='../../../images/Icon_128.png' ## Using system-provided Java APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_JAVA_OPTIONS_BIN_SYSTEM='-Xmx1G' APP_MAIN_EXE_BIN_SYSTEM='desktop-0.1.jar' ## Using shipped binaries APP_MAIN_EXE_BIN_SHIPPED='GatheringSky' # Packages ## Common PACKAGES_LIST='PKG_BIN_SHIPPED PKG_BIN_SYSTEM PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" ## Using system-provided Java PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-bin-system" PKG_BIN_SYSTEM_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' ## Using shipped binaries PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-bin-shipped" PKG_BIN_SHIPPED_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1' PKG_BIN_SYSTEM_DESCRIPTION='Using shipped binaries' # Load common functions target_version='2.24' 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 ## The archive includes the following entry, triggering an error during decompression: ## ?rwxr--r-- 2.0 unx 0 bl defN 14-May-31 03:43 / archive_extraction 'SOURCE_ARCHIVE' 2>/dev/null || true ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/GatheringSky.tar.gz" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icon PKG='PKG_DATA' ARCHIVE_JAR="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/desktop-0.1.jar" ARCHIVE_JAR_TYPE='zip' archive_extraction 'ARCHIVE_JAR' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN_SHIPPED' 'PKG_BIN_SYSTEM'; do # shellcheck disable=SC2119 launchers_write done # Build packages packages_generation # Print instructions case "${LANG%_*}" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_shipped" print_instructions 'PKG_BIN_SHIPPED' 'PKG_DATA' printf "$message" "$bin_system" print_instructions 'PKG_BIN_SYSTEM' 'PKG_DATA' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gemcraft.sh0000755000000000000000000000431614471751340013754 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 contact@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-ghost-of-a-tale.sh0000755000000000000000000000451714471751340015056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ghost of a Tale # send your bug reports to contact@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='ghost-of-a-tale' GAME_NAME='Ghost of a Tale' ARCHIVE_BASE_0_NAME='setup_ghost_of_a_tale_833_(28317).exe' ARCHIVE_BASE_0_MD5='ce98494f39f3908d33ef46e438d94da4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_ghost_of_a_tale_833_(28317)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e5a2d7c834572c438c324a5104692afb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='8.33-gog28317' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ghost_of_a_tale' UNITY3D_NAME='goat' CONTENT_PATH_DEFAULT='.' ## TODO: Check if these .cmd scripts are required CONTENT_GAME0_BIN_FILES=' goat_clearpreferences.cmd goat_createreport.cmd' CONTENT_GAME0_DATA_FILES=' icon.ico remote_config_cache_production_worldwide.json' ## TODO: Check if the Steam configuration file is required CONTENT_GAME1_DATA_FILES=' steam_appid.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Ghost of a Tale' ## TODO: Check if a virtual desktop is required WINE_VIRTUAL_DESKTOP='auto' 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-giana-sisters-series.sh0000755000000000000000000000662014471751340016225 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Giana Sisters series: # - Giana Sisters: Twisted Dreams # - Giana Sisters: Rise of the Owlverlord # send your bug reports to contact@dotslashplay.it ### script_version=20241210.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_DREAMS='giana-sisters-twisted-dreams' GAME_NAME_DREAMS='Giana Sisters: Twisted Dreams' GAME_ID_OWL='giana-sisters-rise-of-the-owlverlord' GAME_NAME_OWL='Giana Sisters: Rise of the Owlverlord' # Archives ## Giana Sisters: Twisted Dreams ARCHIVE_BASE_DREAMS_1_NAME='setup_giana_sisters_twisted_dreams_1.2.1_(19142).exe' ARCHIVE_BASE_DREAMS_1_MD5='e5605f4890984375192bd37545e51ff8' ARCHIVE_BASE_DREAMS_1_TYPE='innosetup' ARCHIVE_BASE_DREAMS_1_SIZE='2800000' ARCHIVE_BASE_DREAMS_1_VERSION='1.2.1-gog19142' ARCHIVE_BASE_DREAMS_1_URL='https://www.gog.com/game/giana_sisters_twisted_dreams' ARCHIVE_BASE_DREAMS_0_NAME='setup_giana_sisters_twisted_dreams_2.2.0.16.exe' ARCHIVE_BASE_DREAMS_0_MD5='31b2a0431cfd764198834faec314f0b2' ARCHIVE_BASE_DREAMS_0_TYPE='innosetup' ARCHIVE_BASE_DREAMS_0_SIZE='2900000' ARCHIVE_BASE_DREAMS_0_VERSION='1.0-gog2.2.0.16' ## Giana Sisters: Rise of the Owlverlord ARCHIVE_BASE_OWL_1_NAME='setup_giana_sisters_rise_of_the_owlverlord_2.1.0.8.exe' ARCHIVE_BASE_OWL_1_MD5='bebb3a09c10b8e34b88b6d9f64dedeab' ARCHIVE_BASE_OWL_1_TYPE='innosetup' ARCHIVE_BASE_OWL_1_SIZE='2556034' ARCHIVE_BASE_OWL_1_VERSION='1.0-gog2.1.0.8' ARCHIVE_BASE_OWL_1_URL='https://www.gog.com/game/giana_sisters_rise_of_the_owlverlord' CONTENT_PATH_DEFAULT_DREAMS='.' CONTENT_PATH_DEFAULT_DREAMS_0='app' CONTENT_PATH_DEFAULT_OWL='app' CONTENT_GAME_BIN_FILES=' launcher 7z.dll gsgameexe.exe gsgameexe_dx9.exe' CONTENT_GAME_DATA_FILES=' bundles added_content data_common' CONTENT_GAME0_DATA_PATH='__support/app' CONTENT_GAME0_DATA_FILES=' data_common' CONTENT_DOC_DATA_FILES=' 7z_copying.txt 7z_license.txt 7z_readme.txt' WINE_PERSISTENT_DIRECTORIES_DREAMS=' users/${USER}/Documents/Giana Sisters - Twisted Dreams' WINE_PERSISTENT_DIRECTORIES_OWL=' users/${USER}/Documents/Giana Sisters - Rise of the Owlverlord' ## TODO: Check if these winetricks verbs are still required with current WINE builds. WINE_WINETRICKS_VERBS='xact wmp9' APP_MAIN_EXE='gsgameexe.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_DREAMS="${GAME_ID_DREAMS}-data" PKG_DATA_ID_OWL="${GAME_ID_OWL}-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-giants-citizen-kabuto.sh0000755000000000000000000000662014471751340016377 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Giants: Citizen Kabuto # send your bug reports to contact@dotslashplay.it ### script_version=20230910.2 GAME_ID='giants-citizen-kabuto' GAME_NAME='Giants: Citizen Kabuto' ARCHIVE_BASE_0='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_PATH="${CONTENT_PATH_DEFAULT}/__support/dx7" CONTENT_GAME0_BIN_FILES=' gg_dx7r.dll' 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' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Set required registry keys destdir="C:\\\\${GAME_ID}" registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\PlanetMoon\Giants] "1.00.000"="" "DefPlayer"="Player" "DestDir"="'"${destdir}"'" "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' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game files content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-glittermitten-grove.sh0000755000000000000000000000434614471751340016202 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 contact@dotslashplay.it ### script_version=20240607.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='131-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.sh0000755000000000000000000000642114471751340013776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Gnomoria # send your bug reports to contact@dotslashplay.it ### script_version=20240831.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/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' ## TODO: Check if the Steam library is required CONTENT_GAME0_MAIN_FILES=' Steamworks.NET.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_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" 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' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_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 content_inclusion_default ## Include a link to 7za, used by the save system link_source='/usr/bin/7za' link_destination="$(package_path 'PKG_MAIN')$(path_game_data)" mkdir --parents "${link_destination}/lib64" mkdir --parents "${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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-godhood.sh0000755000000000000000000000522514471751340013607 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 contact@dotslashplay.it ### script_version=20240408.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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' ## TODO: Check if system-provided libraries could be used instead. CONTENT_LIBS_BIN_FILES=' libc++abi.so.1 libc++.so.1' 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="${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_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 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 librt.so.1 libSDL2-2.0.so.0 libX11.so.6 libXcursor.so.1 libXrandr.so.2 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 launcher launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-golden-treasure.sh0000755000000000000000000000343114471751340015261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Golden Treasure # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='golden-treasure' GAME_NAME='Golden Treasure' ARCHIVE_BASE_0_NAME='gt1-pc-release.zip' ARCHIVE_BASE_0_MD5='97006803c1293df85b9ffe553b5785ff' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.1.3.190711-itch' ARCHIVE_BASE_0_URL='https://dreaming-door.itch.io/gt1' UNITY3D_NAME='Golden Treasure - The Great Green' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Dreaming Door Studios/Golden Treasure - The Great Green' 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" # 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-gorogoa.sh0000755000000000000000000000341214471751340013615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Gorogoa # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gorogoa' GAME_NAME='Gorogoa' ARCHIVE_BASE_0_NAME='setup_gorogoa_1.1.0_(20406).exe' ARCHIVE_BASE_0_MD5='8238721619553923c75dafbcaec11018' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='550000' ARCHIVE_BASE_0_VERSION='1.1.0-gog20406' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gorogoa' UNITY3D_NAME='gorogoa' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/50686913489464392/Storage' 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" # 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-graveyard-keeper.sh0000755000000000000000000000423014471751340015414 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 contact@dotslashplay.it ### script_version=20231112.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-greedcorp.sh0000755000000000000000000000563314471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # GreedCorp # send your bug reports to contact@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-grip.sh0000755000000000000000000000367614471751340013135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Grip # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='grip-game' GAME_NAME='Grip' ARCHIVE_BASE_0_NAME='setup_grip_1.5.3_v2_(50529).exe' ARCHIVE_BASE_0_MD5='1180ad9aae91fd168fb32d14c8516b05' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_grip_1.5.3_v2_(50529)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ee3a558625e2a7d58f9be0bc9cbc6290' ARCHIVE_BASE_0_PART2_NAME='setup_grip_1.5.3_v2_(50529)-2.bin' ARCHIVE_BASE_0_PART2_MD5='427b9d550c93423010f688f3dd886704' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.5.3-gog50529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grip' UNREALENGINE4_NAME='grip' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/grip-windowsnoeditor.pak" APP_MAIN_EXE='grip.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-gris.sh0000755000000000000000000000344614471751340013133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Gris # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gris' GAME_NAME='Gris' ARCHIVE_BASE_0_NAME='setup_gris_1.03_(28074).exe' ARCHIVE_BASE_0_MD5='04f25b3c789a549c0a9c4a94c6385aa0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='1.03-gog28074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gris' UNITY3D_NAME='gris' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/nomada studio/GRIS' PACKAGES_LIST=' PKG_BIN 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' # 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-grow-song-of-the-evertree.sh0000755000000000000000000000473614471751340017113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grow: Song of the Evertree # send your bug reports to contact@dotslashplay.it ### script_version=20230705.2 GAME_ID='grow-song-of-the-evertree' GAME_NAME='Grow: Song of the Evertree' ARCHIVE_BASE_0='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063).exe' ARCHIVE_BASE_0_MD5='a099df449e5f892ea7684b6a21868a2b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063)-1.bin' ARCHIVE_BASE_0_PART1_MD5='34d143e6eb44b5a3637419cb9245c5ad' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.0.6.3369-gog54063' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grow_song_of_the_evertree' UNITY3D_NAME='grow' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/505 Games/Grow_ Song of The Evertree' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-growbot.sh0000755000000000000000000000352214471751340013645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Growbot # send your bug reports to contact@dotslashplay.it ### script_version=20231020.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='growbot' GAME_NAME='Growbot' ARCHIVE_BASE_0_NAME='growbot_1_6_55954.sh' ARCHIVE_BASE_0_MD5='f162fbd159809c37dd1aa9307d88eebd' ARCHIVE_BASE_0_SIZE='848320' ARCHIVE_BASE_0_VERSION='1.6-gog55954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/growbot' UNITY3D_NAME='Growbot' ## The game crashes on launch if the Steam library is not included. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-guide-of-the-butterfly.sh0000755000000000000000000000341314471751340016454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Guide of the Butterfly # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='guide-of-the-butterfly' GAME_NAME='Guide of the Butterfly' ARCHIVE_BASE_0_NAME='guide-of-the-butterfly-final.zip' ARCHIVE_BASE_0_MD5='a0d78bc3104d4d87350472dcfca458ec' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='1.0.1-itch.2020.04.17' ARCHIVE_BASE_0_URL='https://lparkermg.itch.io/guide-of-the-butterfly' UNITY3D_NAME='Guide_of_the_Butterfly' CONTENT_PATH_DEFAULT='.' 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-gun-toting-cats.sh0000755000000000000000000000376014471751340015211 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gun-Toting Cats # send your bug reports to contact@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='gun-toting-cats' GAME_NAME='Gun-Toting Cats' ARCHIVE_BASE_0_NAME='(Linux) GTCats Prototype.zip' ARCHIVE_BASE_0_MD5='4e020ea013b59e8c04a52e1f7e1e32a9' ARCHIVE_BASE_0_SIZE='56670' ARCHIVE_BASE_0_VERSION='1.8-itch' ARCHIVE_BASE_0_URL='https://kit9studio.itch.io/gun-toting-cats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Gun-Toting Cats Prototype 1.8' CONTENT_GAME_DATA_FILES=' data.pck' CONTENT_DOC_DATA_FILES=' licenses.txt' APP_MAIN_EXE='Gun-Toting Cats Prototype 1.8' 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=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 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" # 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-habitat.sh0000755000000000000000000000465614471751340013607 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 contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Habitat_LinuxUniversal' 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 archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete MacOS junk. find . -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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hacknet.sh0000755000000000000000000001042714471751340013601 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hacknet # send your bug reports to contact@dotslashplay.it ### script_version=20240603.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hacknet' GAME_NAME='Hacknet' ARCHIVE_BASE_0_NAME='hacknet_en_5_069_15083.sh' ARCHIVE_BASE_0_MD5='305d230cad47d696e4141320189cd4bc' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='5.069-gog15083' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hacknet' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if some shipped libraries could be dropped in favour of system ones. CONTENT_LIBS_FILES=' libcef.so libjpeg.so.62 libmojoshader.so libmono-2.0.so.1 libogg.so.0 libopenal.so.1 libpng15.so.15 libtheoradec.so.1 libtheoraplay.so libvorbisfile.so.3 libvorbis.so.0 libXNAWebRenderer.so' ## TODO: Check if the Steam libraries are actually required. CONTENT_LIBS_FILES="${CONTENT_LIBS_FILES:-}"' libCSteamworks.so libsteam_api.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' cefprocess.bin.x86_64 Hacknet.bin.x86_64' CONTENT_GAME_BIN32_FILES=' cefprocess.bin.x86 Hacknet.bin.x86' CONTENT_GAME_DATA_FILES=' Content locales Extensions mono Hacknet.exe Hacknet.bmp icudtl.dat natives_blob.bin snapshot_blob.bin FNA.dll.config *.dll *.pak' ## Using the system-provided Mono runtime instead of the shipped binaries leads to a crash on launch: ## ## [0603/211754:FATAL:content_main_runner.cc(711)] Check failed: base::i18n::InitializeICU(). ## #0 0x7fe45fadf56e ## #1 0x7fe45faf4d6b ## #2 0x7fe4626eb398 ## #3 0x7fe45f9f14df ## #4 0x7fe45f9f133b ## #5 0x7fe45f99efe8 cef_initialize ## #6 0x7fe48c42ec33 CefInitialize() ## #7 0x7fe48c42924f XNAWR_Initialize ## #8 0x000041323cfe APP_MAIN_EXE_BIN32='Hacknet.bin.x86' APP_MAIN_EXE_BIN64='Hacknet.bin.x86_64' APP_MAIN_ICON='Hacknet.bmp' USER_PERSISTENT_DIRECTORIES=' Content/People' 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=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 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 libXss.so.1 libXtst.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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Ensure that Chromium Embedded Framework is functional. chmod 755 \ 'cefprocess.bin.x86_64' \ 'cefprocess.bin.x86' ) # 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_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-haimrik.sh0000755000000000000000000000340614471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Haimrik # send your bug reports to contact@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haimrik' GAME_NAME='Haimrik' ARCHIVE_BASE_0_NAME='setup_haimrik_gog-1_(21463).exe' ARCHIVE_BASE_0_MD5='e3b7d537806906050fc4f4400162c9f1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-gog21463' ARCHIVE_BASE_0_URL='https://www.gog.com/game/haimrik' UNITY3D_NAME='haimrik' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Below The Game/Haimrik' 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-halcyon-6.sh0000755000000000000000000000452114471751340013762 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 contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 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" # Extract game data ## Ignore extraction warnings due to extra "../" inner path component. archive_extraction_default 2>/dev/null || true # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hammerwatch.sh0000755000000000000000000001046314471751340014464 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hammerwatch # send your bug reports to contact@dotslashplay.it ### script_version=20241122.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hammerwatch' GAME_NAME='Hammerwatch' ARCHIVE_BASE_GOG_0_NAME='gog_hammerwatch_2.1.0.7.sh' ARCHIVE_BASE_GOG_0_MD5='2d1f01b73f43e0b6399ab578c52c6cb6' ARCHIVE_BASE_GOG_0_SIZE='230000' ARCHIVE_BASE_GOG_0_VERSION='1.32-gog2.1.0.7' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hammerwatch' ARCHIVE_BASE_HUMBLE_1_NAME='hammerwatch_linux_141.zip' ARCHIVE_BASE_HUMBLE_1_MD5='a342298f2201a33a616e412b70c4a7f8' ARCHIVE_BASE_HUMBLE_1_SIZE='230000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.41-humble180913' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/hammerwatch' ARCHIVE_BASE_HUMBLE_0_NAME='hammerwatch_linux1.32.zip' ARCHIVE_BASE_HUMBLE_0_MD5='c31f4053bcde3dc34bc8efe5f232c26e' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.32-humble160405' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_HUMBLE_0='Hammerwatch' CONTENT_LIBS_FILES=' libfmod.so libfmod.so.6 libfmod.so.6.0' ## TODO: Check if the Steam libraries are required. CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libCSteamworks.so libsteam_api.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=' editor levels mono assets.bin Hammerwatch.exe FarseerPhysicsOTK.dll Lidgren.Network.dll Pngcs.dll SDL2-CS.dll SDL2-CS.dll.config ICSharpCode.SharpZipLib.dll Steamworks.NET.dll Steamworks.NET.dll.config TiltedEngine.dll' USER_PERSISTENT_FILES=' *.txt *.xml' USER_PERSISTENT_DIRECTORIES=' levels' APP_MAIN_EXE='Hammerwatch.exe' APP_MAIN_ICON='Hammerwatch.exe' ## Copy the game binary into the game prefix APP_MAIN_PRERUN=' # Copy the game binary into the user prefix exe_destination="${PATH_PREFIX}/Hammerwatch.exe" if [ -h "$exe_destination" ]; then cp --remove-destination "$(realpath "$exe_destination")" "$exe_destination" fi unset exe_destination ' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-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.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_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_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Replace duplicated libraries with symbolic links. rm \ 'lib/libfmod.so' 'lib/libfmod.so.6' \ 'lib64/libfmod.so' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6.0' 'lib/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib/libfmod.so' ln --symbolic 'libfmod.so.6.0' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib64/libfmod.so' ) # 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-hand-of-fate.sh0000755000000000000000000000540214471751340014412 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Hand Of Fate # send your bug reports to contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='hand-of-fate' GAME_NAME='Hand Of Fate' ARCHIVE_BASE_2_NAME='hand_of_fate_1_3_20_25356.sh' ARCHIVE_BASE_2_MD5='f0a1b47a6e4b5cb7a9f1494b55982b54' ARCHIVE_BASE_2_SIZE='2800000' ARCHIVE_BASE_2_VERSION='1.3.20-gog25356' ARCHIVE_BASE_2_URL='https://www.gog.com/game/hand_of_fate' ARCHIVE_BASE_1_NAME='hand_of_fate_en_1_3_19_21087.sh' ARCHIVE_BASE_1_MD5='5895ccaf640afff877b6cab5fa348748' ARCHIVE_BASE_1_SIZE='2800000' ARCHIVE_BASE_1_VERSION='1.3.19-gog21087' ARCHIVE_BASE_0_NAME='gog_hand_of_fate_2.12.0.16.sh' ARCHIVE_BASE_0_MD5='54c61dce76b1281b4161d53d096d6ffe' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.3.17-gog2.12.0.16' UNITY3D_NAME='Hand of Fate' ## TODO: Check if the Steam libraries could be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hard-west.sh0000755000000000000000000000572114471751340014063 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 contact@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hard-west' GAME_NAME='Hard West' # Archives ## Hard West (base game) 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' ## Scars of Freedom ## TODO: Support for the expansion should be moved to a dedicated script ARCHIVE_OPTIONAL_SCARSOFFREEDOM_0_NAME='gog_hard_west_scars_of_freedom_dlc_2.3.0.4.sh' ARCHIVE_OPTIONAL_SCARSOFFREEDOM_0_MD5='bb4368afaf670f0d8ebc09f7bb1f3713' ARCHIVE_OPTIONAL_SCARSOFFREEDOM_0_SIZE='200000' ARCHIVE_OPTIONAL_SCARSOFFREEDOM_0_URL='https://www.gog.com/game/hard_west_scars_of_freedom' UNITY3D_NAME='HardWest' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' Data Data_dlc1' 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 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 "$@" # Load Scars of Freedom archive if it is available archive_initialize_optional \ 'ARCHIVE_SCARSOFFREEDOM' \ 'ARCHIVE_OPTIONAL_SCARSOFFREEDOM_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_SCARSOFFREEDOM'; then archive_extraction 'ARCHIVE_SCARSOFFREEDOM' fi # 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-haven.sh0000755000000000000000000000615514471751340013270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Haven # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haven' GAME_NAME='Haven' ARCHIVE_BASE_2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386).exe' ARCHIVE_BASE_2_MD5='8dca64cf157ae335dab462d52253aeeb' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-1.bin' ARCHIVE_BASE_2_PART1_MD5='03a08ea5c6b1a80b7a2f869da91d2df8' ARCHIVE_BASE_2_PART2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-2.bin' ARCHIVE_BASE_2_PART2_MD5='04e4c87ee647fd0511fdda7ff47dc787' ARCHIVE_BASE_2_SIZE='5900000' ARCHIVE_BASE_2_VERSION='1.1.302-gog54386' ARCHIVE_BASE_2_URL='https://www.gog.com/game/haven' ARCHIVE_BASE_1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728).exe' ARCHIVE_BASE_1_MD5='f5b9d5f71a2def217dc9e0f632a04360' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-1.bin' ARCHIVE_BASE_1_PART1_MD5='598b4c5592f8f3aa4ab95c49cdf80fe0' ARCHIVE_BASE_1_PART2_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-2.bin' ARCHIVE_BASE_1_PART2_MD5='00990daa83f70d6440bb4ccabc07981a' ARCHIVE_BASE_1_SIZE='5900000' ARCHIVE_BASE_1_VERSION='1.1.296-gog53728' ARCHIVE_BASE_0_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981).exe' ARCHIVE_BASE_0_MD5='1770f0efd829dc486cc37242085518d3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5aec89c6383ab1ee8f1371a9130e01f5' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.1.258-gog49981' UNITY3D_NAME='haven' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_RELATIVE_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/TheGameBakers/Haven' PACKAGES_LIST=' PKG_BIN 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' # 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-headspun.sh0000755000000000000000000000355114471751340013773 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Headspun # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='headspun' GAME_NAME='Headspun' ARCHIVE_BASE_0_NAME='headspun-dazed-edition-win.zip' ARCHIVE_BASE_0_MD5='0e0621486930ba3a0dda64727423c603' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://svperstring.itch.io/headspun-dazed-edition' UNITY3D_NAME='Headspun' CONTENT_PATH_DEFAULT='Headspun/Headspun' CONTENT_GAME0_DATA_FILES=' Subtitles Videos' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/OptionsData.txt ${UNITY3D_NAME}_Data/PlayerData.txt" 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-heal.sh0000755000000000000000000000314014471751340013067 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Heal # send your bug reports to contact@dotslashplay.it ### script_version=20240119.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='heal' GAME_NAME='Heal' ARCHIVE_BASE_0_NAME='setup_heal_1.0_(66845).exe' ARCHIVE_BASE_0_MD5='7b30197a77652ff9fbbff9fe03bdbafa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='241396' ARCHIVE_BASE_0_VERSION='1.0-gog66845' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heal' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' heal_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/healgog' APP_MAIN_EXE='heal_gog.exe' PKG_MAIN_ARCH='32' # 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 # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heavens-vault.sh0000755000000000000000000000422714471751340014747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Heaven's Vault # send your bug reports to contact@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='heavens-vault' GAME_NAME='Heavenʼs Vault' ARCHIVE_BASE_0_NAME='setup_heavens_vault_1.11_(64bit)_(31262).exe' ARCHIVE_BASE_0_MD5='73476bbfccb0a97ec68fd403d23c85f0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_heavens_vault_1.11_(64bit)_(31262)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2f1dc13ab09f8fc592e1b8482ea5b0f4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.11-gog31262' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heavens_vault' UNITY3D_NAME='heavensvault' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Inkle Ltd/Heaven's Vault" 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Use a Unity3D name not including tricky characters unity3d_name=$(unity3d_name) mv "heaven's vault.exe" "${unity3d_name}.exe" mv "heaven's vault_data" "${unity3d_name}_data" ) # 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-helium-rain.sh0000755000000000000000000000700714471751340014376 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 contact@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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. APP_MAIN_PRERUN="${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 ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # 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_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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hellblade-senuas-sacrifice.sh0000755000000000000000000000635514471751340017327 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Hellblade: Senua's Sacrifice # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hellblade-senuas-sacrifice' GAME_NAME='Hellblade: Senuaʼs Sacrifice' ARCHIVE_BASE_1_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018).exe' ARCHIVE_BASE_1_MD5='56e77d9dfc1a2cc871488a9a92fc2280' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-1.bin' ARCHIVE_BASE_1_PART1_MD5='0f8df5e451d8bbe1aea86947f271d2d6' ARCHIVE_BASE_1_PART2_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-2.bin' ARCHIVE_BASE_1_PART2_MD5='a06d8b220be8acd257c5f4b2a16332c6' ARCHIVE_BASE_1_PART3_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-3.bin' ARCHIVE_BASE_1_PART3_MD5='fd53c212060d9b76de3ad04465cdd980' ARCHIVE_BASE_1_PART4_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-4.bin' ARCHIVE_BASE_1_PART4_MD5='f8ed203da482970d81fa0c6e09471a14' ARCHIVE_BASE_1_SIZE='20000000' ARCHIVE_BASE_1_VERSION='1.03.1-gog52018' ARCHIVE_BASE_1_URL='https://www.gog.com/game/hellblade_senuas_sacrifice_pack' ARCHIVE_BASE_0_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168).exe' ARCHIVE_BASE_0_MD5='0568c6e5c57dd64cc0a23a77fe54aafd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b01d26d7555d26f2dc1cb8a361564cb7' ARCHIVE_BASE_0_PART2_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8e7e4e73fa6a535a4856005be7ea8cbb' ARCHIVE_BASE_0_PART3_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-3.bin' ARCHIVE_BASE_0_PART3_MD5='fcabee54e6f1072cbdbd46eb2a8ca0f8' ARCHIVE_BASE_0_PART4_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-4.bin' ARCHIVE_BASE_0_PART4_MD5='6fce92bde8bb15b0e706a7030874a3a9' ARCHIVE_BASE_0_SIZE='23000000' ARCHIVE_BASE_0_VERSION='1.03-gog25168' UNREALENGINE4_NAME='hellbladegame' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/hellbladegame-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-helltaker.sh0000755000000000000000000000575314471751340014145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Helltaker # send your bug reports to contact@dotslashplay.it ### script_version=20230324.1 GAME_ID='helltaker' GAME_NAME='Helltaker' ARCHIVE_BASE_0='helltaker_lnx.zip' ARCHIVE_BASE_0_MD5='114d9b631637057f1e0674615754bc50' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.0-itch.2021.06.01' ARCHIVE_BASE_0_URL='https://vanripper.itch.io/helltaker' UNITY3D_NAME='helltaker_lnx' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=' ScreenSelector.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource local localHM" ## Work around automatic application type detection failure, ## cf. https://forge.dotslashplay.it/play.it/scripts/-/merge_requests/1707 APP_MAIN_EXE="${UNITY3D_NAME}.x86_64" 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=' 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' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-help-will-come-tomorrow.sh0000755000000000000000000000375414471751340016675 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 contact@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-her-majestys-spiffing.sh0000755000000000000000000000503114471751340016375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Her Majesty's Spiffing # send your bug reports to contact@dotslashplay.it ### script_version=20230325.4 GAME_ID='her-majestys-spiffing' GAME_NAME='Her Majestyʼs SPIFFING' ARCHIVE_BASE_0='HMS_Linux.zip' ARCHIVE_BASE_0_MD5='ca535505f238dad9bb90cedf19b06802' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0-humble161207' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/her-majestys-spiffing' UNITY3D_NAME='hms' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Linux' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-her-story.sh0000755000000000000000000000342514471751340014120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Her Story # send your bug reports to contact@dotslashplay.it ### script_version=20231222.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='her-story' GAME_NAME='Her Story' ARCHIVE_BASE_0_NAME='setup_her_story_gog-1_(17775).exe' ARCHIVE_BASE_0_MD5='b987b276d64db2dd85a053a2883e2ded' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1595948' ARCHIVE_BASE_0_VERSION='1.0-gog17775' ARCHIVE_BASE_0_URL='https://www.gog.com/game/her_story' UNITY3D_NAME='herstory' CONTENT_PATH_DEFAULT='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Sam Barlow/HerStory' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-chronicles.sh0000755000000000000000000004250314471751340015600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 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 contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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_PATH_CHAPTER1="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER1}" CONTENT_DOC_DATA_PATH_CHAPTER2="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER2}" CONTENT_DOC_DATA_PATH_CHAPTER3="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER3}" CONTENT_DOC_DATA_PATH_CHAPTER4="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER4}" CONTENT_DOC_DATA_PATH_CHAPTER5="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER5}" CONTENT_DOC_DATA_PATH_CHAPTER6="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER6}" CONTENT_DOC_DATA_PATH_CHAPTER7="${CONTENT_PATH_DEFAULT}/${CONTENT_INNER_PATH_CHAPTER7}" CONTENT_DOC_DATA_PATH_CHAPTER8="${CONTENT_PATH_DEFAULT}/${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" 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" ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' PACKAGES_LIST=' PKG_BIN PKG_COMMON 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_DEPS="$PKG_COMMON_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS_CHAPTER1="$PKG_DATA_ID_CHAPTER1" PKG_BIN_DEPS_CHAPTER2="$PKG_DATA_ID_CHAPTER2" PKG_BIN_DEPS_CHAPTER3="$PKG_DATA_ID_CHAPTER3" PKG_BIN_DEPS_CHAPTER4="$PKG_DATA_ID_CHAPTER4" PKG_BIN_DEPS_CHAPTER5="$PKG_DATA_ID_CHAPTER5" PKG_BIN_DEPS_CHAPTER6="$PKG_DATA_ID_CHAPTER6" PKG_BIN_DEPS_CHAPTER7="$PKG_DATA_ID_CHAPTER7" PKG_BIN_DEPS_CHAPTER8="$PKG_DATA_ID_CHAPTER8" # Allow to skip intro video on first launch + set default settings registry_dump_settings_file='registry-dumps/default-settings.reg' registry_dump_settings_content_common='"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' ## Multiple levels of escaping are required: ## - app_path_xxx declaration: "\\\\\\\\" → "\\\\" ## - registry_dump_settings_content_xxx declaration: "\\\\" → "\\" ## We want to get "\\" in the final .reg file. app_path_CHAPTER1="C:\\\\\\\\${GAME_ID_CHAPTER1}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER1}\\\\\\\\" app_path_CHAPTER2="C:\\\\\\\\${GAME_ID_CHAPTER2}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER2}\\\\\\\\" app_path_CHAPTER3="C:\\\\\\\\${GAME_ID_CHAPTER3}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER3}\\\\\\\\" app_path_CHAPTER4="C:\\\\\\\\${GAME_ID_CHAPTER4}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER4}\\\\\\\\" app_path_CHAPTER5="C:\\\\\\\\${GAME_ID_CHAPTER5}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER5}\\\\\\\\" app_path_CHAPTER6="C:\\\\\\\\${GAME_ID_CHAPTER6}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER6}\\\\\\\\" app_path_CHAPTER7="C:\\\\\\\\${GAME_ID_CHAPTER7}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER7}\\\\\\\\" app_path_CHAPTER8="C:\\\\\\\\${GAME_ID_CHAPTER8}\\\\\\\\${CONTENT_INNER_PATH_CHAPTER8}\\\\\\\\" registry_dump_settings_content_CHAPTER1="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Warlords] \"AppPath\"=\"${app_path_CHAPTER1}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER2="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Underworld] \"AppPath\"=\"${app_path_CHAPTER2}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER3="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Elements] \"AppPath\"=\"${app_path_CHAPTER3}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER4="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Dragons] \"AppPath\"=\"${app_path_CHAPTER4}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER5="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\WorldTree] \"AppPath\"=\"${app_path_CHAPTER5}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER6="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\FieryMoon] \"AppPath\"=\"${app_path_CHAPTER6}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER7="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Beastmaster] \"AppPath\"=\"${app_path_CHAPTER7}\" $registry_dump_settings_content_common" registry_dump_settings_content_CHAPTER8="Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\Software\\New World Computing\\Heroes Chronicles\\Sword] \"AppPath\"=\"${app_path_CHAPTER8}\" $registry_dump_settings_content_common" CONTENT_GAME0_BIN_FILES=" $registry_dump_settings_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Allow to skip intro video on first launch + set default settings. registry_dump_settings_content=$(context_value 'registry_dump_settings_content') mkdir --parents "$(dirname "$registry_dump_settings_file")" printf '%s' "$registry_dump_settings_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_settings_file" ) # 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 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-of-might-and-magic-1.sh0000755000000000000000000000763114471751340017140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Heroes of Might and Magic # send your bug reports to contact@dotslashplay.it ### script_version=20250114.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=' wail32.dll wing.32 data/campaign.hs data/heroes.agg data/standard.hs games maps/*.map *.exe *.cfg' 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 *.pdf *.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.sh0000755000000000000000000001273414471751340017141 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 contact@dotslashplay.it ### script_version=20230916.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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=' wing.32 homm2.gog homm2.ins homm2.inst data games journals maps sound *.exe *.cfg' 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_PATH="${CONTENT_PATH_DEFAULT}/music/sw" CONTENT_GAME_MUSIC_SW_FILES=' *.ogg' CONTENT_GAME_MUSIC_POL_PATH="${CONTENT_PATH_DEFAULT}/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_MUSIC_ID="${GAME_ID}-music" PKG_MUSIC_SW_ID="${PKG_MUSIC_ID}-sw" PKG_MUSIC_SW_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_SW_DESCRIPTION='The Succession Wars music' PKG_MUSIC_POL_ID="${PKG_MUSIC_ID}-pol" PKG_MUSIC_POL_PROVIDES=" $PKG_MUSIC_ID" PKG_MUSIC_POL_DESCRIPTION='The Price of Loyalty music' 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_DEPS="$PKG_MUSIC_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 ( 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 icons PKG='PKG_MAIN' # shellcheck disable=SC2119 icons_inclusion # Include game data 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 PKG='PKG_MAIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heroes-of-might-and-magic-3.sh0000755000000000000000000002457014471751340017143 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 contact@dotslashplay.it ### script_version=20241215.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' 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_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_VCMI_ID="${PKG_BIN_ID}-vcmi" PKG_BIN_VCMI_PROVIDES=" $PKG_BIN_ID" PKG_BIN_VCMI_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" 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_BIN_DEPENDENCIES_SIBLINGS" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_EN="${PKG_DATA_ID}-en" PKG_DATA_ID_FR="${PKG_DATA_ID}-fr" PKG_DATA_ID_RU="${PKG_DATA_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_ID" PKG_DATA_DESCRIPTION='data' # Allow to skip intro video on first launch + set default settings registry_dump_settings_file='registry-dumps/default-settings.reg' registry_dump_settings_content='Windows Registry Editor Version 5.00 [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' CONTENT_GAME_BIN_WINE_FILES="${CONTENT_GAME_BIN_WINE_FILES:-} $registry_dump_settings_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # 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)" # Allow to skip intro video on first launch + set default settings mkdir --parents "$(dirname "$registry_dump_settings_file")" printf '%s' "$registry_dump_settings_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file" # 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-heroines-quest-the-herald-of-ragnarok.sh0000755000000000000000000000502014471751340021347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Heroine's Quest: The Herald of Ragnarok # send your bug reports to contact@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='heroines-quest-the-herald-of-ragnarok' GAME_NAME='Heroine’s Quest: The Herald of Ragnarok' ARCHIVE_BASE_FIREFLOWER_0_NAME='Heroines_Quest_Linux.zip' ARCHIVE_BASE_FIREFLOWER_0_MD5='a421c0e15731510130d26343942f2553' ARCHIVE_BASE_FIREFLOWER_0_SIZE='487786' ARCHIVE_BASE_FIREFLOWER_0_VERSION='1.2.3-fireflower' ARCHIVE_BASE_FIREFLOWER_0_URL='https://fireflowergames.com/products/heroines-quest' ARCHIVE_BASE_GOG_0_NAME='heroine_s_quest_the_herald_of_ragnarok_1_2_9_2_68339.sh' ARCHIVE_BASE_GOG_0_MD5='a9cfa6ca34e28fa4b06d7d6fc565421d' ARCHIVE_BASE_GOG_0_SIZE='500000' ARCHIVE_BASE_GOG_0_VERSION='1.2.9.2-gog68339' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/heroines_quest_the_herald_of_ragnarok' CONTENT_PATH_DEFAULT_FIREFLOWER='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' acsetup.cfg *.0?? *.ags *.exe *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses history.txt' CONTENT_DOC0_MAIN_RELATIVE_PATH_GOG='..' CONTENT_DOC0_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID='ags:heroinesquest' APP_MAIN_ICON_FIREFLOWER="Heroine's Quest.exe" APP_MAIN_ICON_GOG='../../support/icon.png' ## Ensure easy updates from packages generated with pre-20241216.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} heroines-quest-the-herald-of-ragnarok-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-hitman.sh0000755000000000000000000000404114471751340013437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hitman 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240522.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='hitman' GAME_NAME='Hitman: Codename 47' ARCHIVE_BASE_0_NAME='setup_hitman_codename_47_b192_(17919).exe' ARCHIVE_BASE_0_MD5='018d8191bfa45c16995537e3a93f96bd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0b192-gog17919' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hitman' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dlc *.dll *.exe *.ini' CONTENT_GAME_DATA_FILES=' repeat.* intro.zip optionsscreen.zip alllevels c0_* c1_* c2_* c3_* c4_* c5_* cutscenes music setup sounds' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.cfg *.ini *.sav' WINE_VIRTUAL_DESKTOP='auto' ## Without dmsynth, the game is stuck on a black screen instead of playing the intro videos. WINE_WINETRICKS_VERBS='dmsynth' APP_MAIN_EXE='hitman.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" # 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_BIN' 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-hive-time.sh0000755000000000000000000000541414471751340014053 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 contact@dotslashplay.it ### script_version=20241215.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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_GAME_BIN_FILES=' hive-time_linux_v1.2.x86_64' CONTENT_GAME_BIN_FILES_0=' hive-time_linux_v1.1.x86_64' ## TODO: Move the shipped fonts to system paths ## This would require support for OpenType fonts in addition to TrueType ones. CONTENT_GAME_DATA_FILES=' fonts json' CONTENT_GAME0_DATA_FILES=' hive-time_linux_v1.2.pck' CONTENT_GAME0_DATA_FILES_0=' hive-time_linux_v1.1.pck' ## TODO: Check if we can replace the shipped binary with system-provided Godot APP_MAIN_EXE='hive-time_linux_v1.2.x86_64' APP_MAIN_EXE_0='hive-time_linux_v1.1.x86_64' 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 libGL.so.1 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_0=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.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_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hiveswap-act-1.sh0000755000000000000000000000443214471751340014714 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hiveswap: Act 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hiveswap-act-1' GAME_NAME='Hiveswap: Act 1' ARCHIVE_BASE_0_NAME='hiveswap_act_1_en_gog_1_20238.sh' ARCHIVE_BASE_0_MD5='9ca40a38ee3de182cec967e3f6749be4' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0-gog20238' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hiveswap' UNITY3D_NAME='Hiveswap-Act1' 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_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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hoa.sh0000755000000000000000000000401214471751340012724 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hoa # send your bug reports to contact@dotslashplay.it ### script_version=20240707.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hoa-game' GAME_NAME='Hoa' ARCHIVE_BASE_0_NAME='setup_hoa_1.03_(49429).exe' ARCHIVE_BASE_0_MD5='d713ecdb56059e5b4ee430d2f0e2731d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.03-gog49429' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hoa' UNITY3D_NAME='hoa' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_BIN_FILES=' fmodstudio.dll xinputinterface32.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PMStudioGoG/Hoa' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240707.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} hoa-data" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## Ensure easy upgrades from packages generated with pre-20240707.2 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} hoa" # 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-hob.sh0000755000000000000000000000371114471751340012732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hob # send your bug reports to contact@dotslashplay.it ### script_version=20240810.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hob-game' GAME_NAME='Hob' ARCHIVE_BASE_0_NAME='setup_hob_1.17.3.0_(16560).exe' ARCHIVE_BASE_0_MD5='e99ca23c70ea3bfd4335fee7ca5a618e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_hob_1.17.3.0_(16560)-1.bin' ARCHIVE_BASE_0_PART1_MD5='25455a965280f7ac6f94f4ff7d96b852' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.17.3.0-gog16560' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hob' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.cfg *.dll hob.exe hoblauncher.exe' CONTENT_GAME_DATA_FILES=' audiobanks media music paks' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Runic Games/HOB' APP_MAIN_EXE='hob.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" # 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-hollow-knight.sh0000755000000000000000000000673514471751340014761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hollow Knight # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hollow-knight' GAME_NAME='Hollow Knight' ARCHIVE_BASE_3_NAME='hollow_knight_1_5_78_11833_51218.sh' ARCHIVE_BASE_3_MD5='ad36d98ec636b09796667f0b124ff5bb' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.5.78-gog51218' ARCHIVE_BASE_3_URL='https://www.gog.com/game/hollow_knight' ARCHIVE_BASE_2_NAME='hollow_knight_1_4_3_2_23987.sh' ARCHIVE_BASE_2_MD5='520af5ebe8ac3977faaafc5d2ed8a779' ARCHIVE_BASE_2_SIZE='7800000' ARCHIVE_BASE_2_VERSION='1.4.3.2-gog23987' ARCHIVE_BASE_1_NAME='hollow_knight_en_1_3_1_5_20240.sh' ARCHIVE_BASE_1_MD5='197d9ffc7e0be447849e22a04da836e4' ARCHIVE_BASE_1_SIZE='7100000' ARCHIVE_BASE_1_VERSION='1.3.1.5-gog20240' ARCHIVE_BASE_0_NAME='gog_hollow_knight_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='0d18baf29d5552dc094ca2bfe5fcaae6' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.0.3.1-gog2.1.0.2' UNITY3D_NAME='Hollow Knight' ## Only older builds include the ScreenSelector.so plugin. UNITY3D_PLUGINS_2=' ScreenSelector.so' UNITY3D_PLUGINS_1="$UNITY3D_PLUGINS_2" UNITY3D_PLUGINS_0="$UNITY3D_PLUGINS_2" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20230406.2 game script. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} hollow-knight-assets" 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 libz.so.1' ## Only older builds include the ScreenSelector.so plugin. PKG_BIN_DEPENDENCIES_LIBRARIES_2=' 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_BIN_DEPENDENCIES_LIBRARIES_1="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" PKG_BIN_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Enforce a consistent Unity3D name. if [ -e 'hollow_knight.x86_64' ]; then mv 'hollow_knight.x86_64' "$(unity3d_name)" fi if [ -e 'hollow_knight_Data' ]; then mv 'hollow_knight_Data' "$(unity3d_name)_Data" fi ## Drop the "Plugins" directory if it is empty. rmdir --ignore-fail-on-non-empty "$(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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-homeseek.sh0000755000000000000000000000411514471751340013761 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 contact@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-horizon-zero-dawn.sh0000755000000000000000000002275014471751340015562 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Horizon Zero Dawn # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='horizon-zero-dawn' GAME_NAME='Horizon Zero Dawn' ARCHIVE_BASE_1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037).exe' ARCHIVE_BASE_1_MD5='cbcd8e966a6ffd5881d9ad5f21896171' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9a34a22b24fb0f0e44c17afccec79fdf' ARCHIVE_BASE_1_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-2.bin' ARCHIVE_BASE_1_PART2_MD5='0e961289ae2e6a84440d354d98a74325' ARCHIVE_BASE_1_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-3.bin' ARCHIVE_BASE_1_PART3_MD5='f7c23754103e3bcf02eec7216b9e94e3' ARCHIVE_BASE_1_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-4.bin' ARCHIVE_BASE_1_PART4_MD5='4ed606b3ac83c644dab85bbc1938057a' ARCHIVE_BASE_1_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-5.bin' ARCHIVE_BASE_1_PART5_MD5='0a08cc1604d50b5c971bfaa80008c9d9' ARCHIVE_BASE_1_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-6.bin' ARCHIVE_BASE_1_PART6_MD5='8d7b79803c494726889d1a21ae55ae63' ARCHIVE_BASE_1_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-7.bin' ARCHIVE_BASE_1_PART7_MD5='81bdcd0eb672b0e600af02724745a942' ARCHIVE_BASE_1_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-8.bin' ARCHIVE_BASE_1_PART8_MD5='1643dff8d1c8e52506e48549554a14da' ARCHIVE_BASE_1_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-9.bin' ARCHIVE_BASE_1_PART9_MD5='7a7133c16ac38ce9b4e9abfddea62f89' ARCHIVE_BASE_1_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-10.bin' ARCHIVE_BASE_1_PART10_MD5='f9df3bdac52376d3054f379e2792307c' ARCHIVE_BASE_1_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-11.bin' ARCHIVE_BASE_1_PART11_MD5='f4b7607bec174dad7f8452d6c5b0009a' ARCHIVE_BASE_1_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-12.bin' ARCHIVE_BASE_1_PART12_MD5='7681476938581baf216a54aa45d98fc4' ARCHIVE_BASE_1_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-13.bin' ARCHIVE_BASE_1_PART13_MD5='ea24163717d52a3b1df0673711088143' ARCHIVE_BASE_1_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-14.bin' ARCHIVE_BASE_1_PART14_MD5='550d3b76dfa565f632b0eddea24bbcf3' ARCHIVE_BASE_1_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-15.bin' ARCHIVE_BASE_1_PART15_MD5='581a66858d19636df0e073929c778f0a' ARCHIVE_BASE_1_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-16.bin' ARCHIVE_BASE_1_PART16_MD5='057b513a63935e79e20b6fad76d1e05d' ARCHIVE_BASE_1_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-17.bin' ARCHIVE_BASE_1_PART17_MD5='67b713b3f6482b43a493f724c3d99e71' ARCHIVE_BASE_1_PART18_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-18.bin' ARCHIVE_BASE_1_PART18_MD5='91eedb3db10cdaaa63f930891a3780f2' ARCHIVE_BASE_1_SIZE='76000000' ARCHIVE_BASE_1_VERSION='1.11.7517962-gog53037' ARCHIVE_BASE_1_URL='https://www.gog.com/game/horizon_zero_dawn_complete_edition' ARCHIVE_BASE_0_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600).exe' ARCHIVE_BASE_0_MD5='f14a4c244306f169896e168f99d7a719' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-1.bin' ARCHIVE_BASE_0_PART1_MD5='26260f87628d433912c4155481e7aa48' ARCHIVE_BASE_0_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4dedb5420d45ff65ce0ddd857d2a6cad' ARCHIVE_BASE_0_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-3.bin' ARCHIVE_BASE_0_PART3_MD5='79aee3ddc0ce308683a6715521b0daa2' ARCHIVE_BASE_0_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-4.bin' ARCHIVE_BASE_0_PART4_MD5='e2386e5e027c44e9f923fb027ad0f391' ARCHIVE_BASE_0_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-5.bin' ARCHIVE_BASE_0_PART5_MD5='032be65a01c84f934edfbfa326258e90' ARCHIVE_BASE_0_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-6.bin' ARCHIVE_BASE_0_PART6_MD5='3b42edf5efe308cf3c1db72bc1ef9021' ARCHIVE_BASE_0_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-7.bin' ARCHIVE_BASE_0_PART7_MD5='f6216943ef02d605752a1156b0559df3' ARCHIVE_BASE_0_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-8.bin' ARCHIVE_BASE_0_PART8_MD5='703d33ab31b1ce23587cae3f8eef1453' ARCHIVE_BASE_0_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-9.bin' ARCHIVE_BASE_0_PART9_MD5='27f01f0545e732d61a9ceb05495ab9ef' ARCHIVE_BASE_0_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-10.bin' ARCHIVE_BASE_0_PART10_MD5='25c10d76ad8399802cdec42230a129bf' ARCHIVE_BASE_0_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-11.bin' ARCHIVE_BASE_0_PART11_MD5='7daf2cf2f17e5bd5aa22707dc690fc4f' ARCHIVE_BASE_0_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-12.bin' ARCHIVE_BASE_0_PART12_MD5='5a23643c5a474808503cb30d057010f8' ARCHIVE_BASE_0_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-13.bin' ARCHIVE_BASE_0_PART13_MD5='98bab66a848465dab195fe2c292a5283' ARCHIVE_BASE_0_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-14.bin' ARCHIVE_BASE_0_PART14_MD5='e9817e15706c72ad447881898abe0379' ARCHIVE_BASE_0_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-15.bin' ARCHIVE_BASE_0_PART15_MD5='f456a7bfed43b135fb8682481e284cb1' ARCHIVE_BASE_0_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-16.bin' ARCHIVE_BASE_0_PART16_MD5='398b6c64e1087a6f3deab3104c10a153' ARCHIVE_BASE_0_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-17.bin' ARCHIVE_BASE_0_PART17_MD5='9d0616c36329c3346bad3bdf55ead984' ARCHIVE_BASE_0_SIZE='71000000' ARCHIVE_BASE_0_VERSION='1.10.6278995-gog44600' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' localcachedx12 tools *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' packed_dx12/initial_english.bin packed_dx12/remainder_english.bin packed_dx12/dlc1_english.bin' CONTENT_GAME_L10N_FR_FILES=' packed_dx12/initial_french.bin packed_dx12/remainder_french.bin packed_dx12/dlc1_french.bin' CONTENT_GAME_MOVIES_FILES=' movies' CONTENT_GAME_DATA_FILES=' packed_dx12/fgrwin32.bin packed_dx12/patch.bin' CONTENT_GAME_DATA_DLC1_FILES=' packed_dx12/dlc1.bin' HUGE_FILES_DATA=' packed_dx12/initial.bin packed_dx12/remainder.bin' WINE_DIRECT3D_RENDERER='vkd3d' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Horizon Zero Dawn' WINE_WINETRICKS_VERBS='mfc140' APP_MAIN_EXE='horizonzerodawn.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_MOVIES PKG_DATA_DLC1 PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_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_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DLC1_ID="${PKG_DATA_ID}-dlc1" PKG_DATA_DLC1_DESCRIPTION="$PKG_DATA_DESCRIPTION - dlc1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_DLC1_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_MOVIES_ID $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 case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hot-pot-panic.sh0000755000000000000000000000331214471751340014641 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hot Pot Panic # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hot-pot-panic' GAME_NAME='Hot Pot Panic' ARCHIVE_BASE_0_NAME='hot_pot_panic_win_1.zip' ARCHIVE_BASE_0_MD5='b4d30e19a87fa7353e588eb449becd19' ARCHIVE_BASE_0_SIZE='53000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://keanerie.itch.io/hot-pot-panic' UNITY3D_NAME='hot_pot_panic' CONTENT_PATH_DEFAULT='hot_pot_panic_win_1' ## TODO: Use persistent storage for saved games and settings. 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-hot-tin-roof.sh0000755000000000000000000000476614471751340014522 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hot Tin Roof # send your bug reports to contact@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hot-tin-roof' GAME_NAME='Hot Tin Roof: The Cat That Wore a Fedora' ## This game is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='gog_hot_tin_roof_the_cat_that_wore_a_fedora_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='487857998159f763d2b9ff9d42caca70' ARCHIVE_BASE_0_SIZE='765215' ARCHIVE_BASE_0_VERSION='1.3-gog2.4.0.7' UNITY3D_NAME='HotTinRoof' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required 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 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 # 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-hotline-miami-1.sh0000755000000000000000000000541014471751340015052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hotline Miami 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hotline-miami-1' GAME_NAME='Hotline Miami' ARCHIVE_BASE_HUMBLE_0_NAME='HotlineMiami_linux_1392944501.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f68e5680f7f54f12b313cb533af53548' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.2014-02-20' ARCHIVE_BASE_HUMBLE_0_SIZE='590000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/hotline-miami' ARCHIVE_BASE_GOG_0_NAME='gog_hotline_miami_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='ce95f10b1cba248b531228936c491eb4' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_GOG_0_SIZE='540000' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hotline_miami' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' hotline_launcher Hotline' CONTENT_GAME_DATA_FILES=' *.ogg *.wad' APP_MAIN_EXE='hotline_launcher' ## Only the GOG.com archive provides a game icon. APP_MAIN_ICON_GOG='../support/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXext.so.6 libXi.so.6 libXrandr.so.2 libXrender.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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set execution permissions on all binaries. chmod 755 'Hotline' ) # Include game data ## Only the GOG.com archive provides a game icon. 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hounds-of-valor.sh0000755000000000000000000000403714471751340015207 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hounds of Valor # send your bug reports to contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hounds-of-valor' GAME_NAME='Hounds of Valor' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='HoundsOfValor_Demo_v05_Linux.zip' ARCHIVE_BASE_DEMO_0_MD5='713a46b42dfb304f44b2b1dc456223c5' ARCHIVE_BASE_DEMO_0_SIZE='630000' ARCHIVE_BASE_DEMO_0_VERSION='0.5-itch1' ARCHIVE_BASE_DEMO_0_URL='https://dogatworkgames.itch.io/houndsofvalor' UNITY3D_NAME='HoundsLinux' CONTENT_PATH_DEFAULT='.' 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_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hugo-1.sh0000755000000000000000000000351714471751340013266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hugo 1: Hugo's House of Horrors # send your bug reports to contact@dotslashplay.it ### script_version=20240811.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hugo-1' GAME_NAME='Hugo I: Hugo’s House of Horrors' ARCHIVE_BASE_0_NAME='the_hugo_trilogy_en_gog_2_19789.sh' ARCHIVE_BASE_0_MD5='48a853bb5936e29bf22cb1d4ae8fcfdb' ARCHIVE_BASE_0_SIZE='100000' ARCHIVE_BASE_0_VERSION='2-gog19789' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_hugo_trilogy' CONTENT_PATH_DEFAULT='data/noarch/data/hwin_1' CONTENT_GAME_MAIN_FILES=' *.bsf *.dat' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' APP_MAIN_SCUMMID='hugo:hugo1' APP_MAIN_ICON='../../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-huniepop.sh0000755000000000000000000000432114471751340014007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # HuniePop # send your bug reports to contact@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='huniepop' GAME_NAME='HuniePop' ARCHIVE_BASE_1_NAME='gog_huniepop_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='d229aea2b601137537f7be46c7327660' ARCHIVE_BASE_1_SIZE='926917' ARCHIVE_BASE_1_VERSION='1.2.0-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/huniepop' ARCHIVE_BASE_0_NAME='gog_huniepop_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='020cd6a015bd79a907f6c607102d797a' ARCHIVE_BASE_0_SIZE='940000' ARCHIVE_BASE_0_VERSION='1.2.0-gog2.0.0.2' UNITY3D_NAME='HuniePop' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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=' 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' ## TODO: Check if lsb_release is still required to prevent a failure to launch on Arch Linux. PKG_BIN_DEPENDENCIES_COMMANDS=' lsb_release' # 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-iconoclasts.sh0000755000000000000000000000441614471751340014506 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Iconoclasts # send your bug reports to contact@dotslashplay.it ### script_version=20240708.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='iconoclasts' GAME_NAME='Iconoclasts' ARCHIVE_BASE_0_NAME='iconoclasts_1_15_chinese_24946.sh' ARCHIVE_BASE_0_MD5='f93af13b81659e76a953dfff584d6fc9' ARCHIVE_BASE_0_SIZE='187633' ARCHIVE_BASE_0_VERSION='1.15-gog.24946' ARCHIVE_BASE_0_URL='https://www.gog.com/game/iconoclasts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' bin64' CONTENT_GAME_BIN32_FILES=' bin32' CONTENT_GAME_DATA_FILES=' data Assets.dat gamecontrollerdb.txt icon.bmp' USER_PERSISTENT_FILES=' lang.cfg data/point data/settings data/save*' APP_MAIN_EXE_BIN32='bin32/Chowdren' APP_MAIN_EXE_BIN64='bin64/Chowdren' APP_MAIN_ICON='icon.bmp' 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 libGL.so.1 libm.so.6 libpthread.so.0' 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-ikenfell.sh0000755000000000000000000000557214471751340013762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ikenfell # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ikenfell' GAME_NAME='Ikenfell' ARCHIVE_BASE_0_NAME='setup_ikenfell_1.0.3_(64bit)_(52030).exe' ARCHIVE_BASE_0_MD5='edf00ffea67cb1c5007cf0dbaba618c4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='439559' ARCHIVE_BASE_0_VERSION='1.0.3-gog52030' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ikenfell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll sdl2.dll ikenfellwin.exe' CONTENT_GAME_DATA_FILES=' atlas audio data scripts' ## The following .dll files are Mono libraries. CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/contents/resources" CONTENT_GAME0_DATA_FILES=' gameengine.dll littlewitch.dll mono.posix.dll mono.security.dll moonsharp.interpreter.dll mscorlib.dll system.configuration.dll system.core.dll system.data.dll system.dll system.drawing.dll system.numerics.dll system.runtime.serialization.dll system.security.dll system.xml.dll system.xml.linq.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/ikenfell' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='ikenfellwin.exe' ## The type must by explicitly set to ensure the binary is run through WINE, not Mono. APP_MAIN_TYPE='wine' ## The game crashes on launch when the ALSA backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${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 ' 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-impossible-creatures.sh0000755000000000000000000000625214471751340016326 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 contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='impossible-creatures' GAME_NAME='Impossible Creatures' ARCHIVE_BASE_EN_0='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='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 *.asi *.dll *.exe *.flt *.ini *.m3d' CONTENT_GAME_L10N_FILES=' locale movies' 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_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC0_DATA_FILES='*' CONTENT_DOC1_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents" CONTENT_DOC1_DATA_FILES='*' 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_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inbento.sh0000755000000000000000000000425014471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # inbento # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='inbento' GAME_NAME='inbento' ARCHIVE_BASE_0='setup_inbento_1.1.1_(63470).exe' ARCHIVE_BASE_0_MD5='5f9d0f77c7a0361e1b75c37d9741b814' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.1.1-gog63470' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/inbento' UNITY3D_NAME='inbento' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Afterburn/inbento' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indivisible.sh0000755000000000000000000000550114471751340014462 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Indivisible # send your bug reports to contact@dotslashplay.it ### script_version=20230623.1 GAME_ID='indivisible' GAME_NAME='Indivisible' ARCHIVE_BASE_0='indivisible_42940_39272.sh' ARCHIVE_BASE_0_MD5='7328915691beb21dc77494faf915cfbe' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='42940-gog39272' ARCHIVE_BASE_0_URL='https://www.gog.com/game/indivisible' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavfilter.so.6 libavformat.so.57 libavutil.so.55 libdiscord-rpc.so libGalaxy64.so libSDL2_locale.so.0 libswresample.so.2 libswscale.so.4 libvpx.so.5' CONTENT_GAME_BIN_FILES=' Indivisible.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_FILES=' pkgs' CONTENT_DOC_DATA_FILES=' LICENSES.md' APP_MAIN_EXE='Indivisible.x86_64-pc-linux-gnu' APP_MAIN_ICON='../support/icon.png' 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=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libFAudio.so.0 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL_kitchensink.so.1 libstdc++.so.6 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0' # Use shipped build of libSDL_kitchensink.so.1, # to avoid a symbol lookup error: # undefined symbol: Kit_GetPlayerVideoDataOGL PKG_BIN_DEPENDENCIES_LIBRARIES=$( printf '%s' "$PKG_BIN_DEPENDENCIES_LIBRARIES" | \ grep --invert-match --fixed-strings --line-regexp 'libSDL_kitchensink.so.1' ) CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL_kitchensink.so.1" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-infinium-strike.sh0000755000000000000000000000476214471751340015306 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 contact@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' InfiniumStrikeReadMe.txt' 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=' 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" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inkulinati.sh0000755000000000000000000000456614471751340014342 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 contact@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-inner-space.sh0000755000000000000000000000401714471751340014366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Inner Space # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='inner-space' GAME_NAME='Inner Space' ## This game is no longer available as a DRM-free build from Humble Store, ## they now only sell Steam keys. ARCHIVE_BASE_0_NAME='InnerSpace_v1.2_Linux.zip' ARCHIVE_BASE_0_MD5='10f0c5247a1404f9f40ee8cd01ab9b66' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.2-humble180610' UNITY3D_NAME='InnerSpace' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='IS_180416_01_LIN_DRMFREE' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inner.sh0000755000000000000000000000421414471751340013274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Inner # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='inner' GAME_NAME='Inner' ## This DRM-free build is no longer available from itch.io, ## the developer decided to only provide a Windows build. ARCHIVE_BASE_0_NAME='INNER_Linux.zip' ARCHIVE_BASE_0_MD5='f5232090f849f8fbb23c609b4ca28a0e' ARCHIVE_BASE_0_SIZE='136979' ARCHIVE_BASE_0_VERSION='1.0-itch' UNITY3D_NAME='INNER' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.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=' 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' # 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-intrusion-2.sh0000755000000000000000000000740514471751340014357 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Intrusion 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='intrusion-2' GAME_NAME='Intrusion 2' ARCHIVE_BASE_0_NAME='intrusion2-1370288626-bin' ARCHIVE_BASE_0_MD5='de6a30d7fb3d117065f11743b4f0a13a' ARCHIVE_BASE_0_SIZE='87000' ARCHIVE_BASE_0_VERSION='1.024-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/intrusion-2' FAKE_HOME_PERSISTENT_DIRECTORIES=' intrusion2' APP_MAIN_EXE='intrusion-2' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 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 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 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libSM.so.6 libssl3.so libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1 libXt.so.6 libXtst.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" # Check for the presence of extra required archives ARCHIVE_REQUIRED_GSTREAMER_NAME='gstreamer0.10.tar.gz' ARCHIVE_REQUIRED_GSTREAMER_MD5='dcd836dfd0dfdf9882557b5a13f89a3c' ARCHIVE_REQUIRED_GSTREAMER_URL='https://downloads.dotslashplay.it/resources/gstreamer/' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_NAME='gst-plugins-base0.10.tar.gz' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_MD5='13e30627414178684de753e5f6105a43' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_URL='https://downloads.dotslashplay.it/resources/gstreamer/' archive_initialize_required \ 'ARCHIVE_GSTREAMER' \ 'ARCHIVE_REQUIRED_GSTREAMER' archive_initialize_required \ 'ARCHIVE_GST_PLUGINS_BASE' \ 'ARCHIVE_REQUIRED_GST_PLUGINS_BASE' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_NAME='intrusion-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f31db2695382a996934f8f8dbb7c0f56' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/intrusion-2/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction 'ARCHIVE_GSTREAMER' archive_extraction 'ARCHIVE_GST_PLUGINS_BASE' if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data CONTENT_GSTREAMER_PATH='gstreamer0.10' CONTENT_GSTREAMER_FILES=' libgstreamer-0.10.so.0 libgstreamer-0.10.so.0.30.0' CONTENT_GST_PLUGINS_BASE_PATH='gst-plugins-base0.10' CONTENT_GST_PLUGINS_BASE_FILES=' libgstinterfaces-0.10.so.0 libgstinterfaces-0.10.so.0.25.0' content_inclusion 'GSTREAMER' "$(current_package)" "$(path_libraries)" content_inclusion 'GST_PLUGINS_BASE' "$(current_package)" "$(path_libraries)" if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 64x64' content_inclusion 'ICONS' "$(current_package)" "$(path_icons)" fi install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path "$(current_package)")$(path_game_data)/intrusion-2" rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-invisible-inc-expansions.sh0000755000000000000000000000353314471751340017104 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 contact@dotslashplay.it ### script_version=20230414.1 GAME_ID='invisible-inc' GAME_NAME='Invisible Inc.' EXPANSION_ID_CONTINGENCY='contingency-plan' EXPANSION_NAME_CONTINGENCY='Contigency Plan' ARCHIVE_BASE_0='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' CONTENT_GAME_MAIN_FILES=' *' PKG_MAIN_ID_CONTINGENCY="${GAME_ID}-${EXPANSION_ID_CONTINGENCY}" PKG_MAIN_DESCRIPTION_CONTINGENCY="$EXPANSION_NAME_CONTINGENCY" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-invisible-inc.sh0000755000000000000000000000637714471751340014730 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 contact@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.sh0000755000000000000000000000474614471751340013502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Iratus # send your bug reports to contact@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam library is required 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 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.sh0000755000000000000000000000440014471751340015542 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 contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## TODO: Check if the Steam library can be dropped. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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=' 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ironclad-tactics.sh0000755000000000000000000000500614471751340015404 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 contact@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-itorah.sh0000755000000000000000000000352714471751340013455 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Itorah # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='itorah' GAME_NAME='Itorah' ARCHIVE_BASE_0_NAME='setup_itorah_1.1.0.0_(64bit)_(55208).exe' ARCHIVE_BASE_0_MD5='bb342c5fad11d52235e78a4de89899af' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_itorah_1.1.0.0_(64bit)_(55208)-1.bin' ARCHIVE_BASE_0_PART1_MD5='dd70af89b506ef5276b5cc1921b44462' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.1.0.0-gog55208' ARCHIVE_BASE_0_URL='https://www.gog.com/game/itorah' UNITY3D_NAME='itorah' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Grimbart Tales/Itorah/Itorah' 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" # 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-ixion.sh0000755000000000000000000000541014471751340013306 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 contact@dotslashplay.it ### script_version=20240531.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' 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" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SHAREDASSETS1_ID $PKG_DATA_SHAREDASSETS2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Check if some specific GStreamer decoders are required. # 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-jars.sh0000755000000000000000000000354314471751340013124 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 contact@dotslashplay.it ### script_version=20231003.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='jars' GAME_NAME='Jars' ARCHIVE_BASE_0='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_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 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop Steam libraries rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jazzpunk.sh0000755000000000000000000000677014471751340014046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jazzpunk # send your bug reports to contact@dotslashplay.it ### script_version=20231117.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='jazzpunk' GAME_NAME='Jazzpunk' ## This DRM-free build is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='Jazzpunk-Oct-30-2017-Linux.zip' ARCHIVE_BASE_0_MD5='e8ecf692ded05cea80701d417fa565c1' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='2017.10.30-humble1' ARCHIVE_BASE_MULTIARCH_0_NAME='Jazzpunk-July6-2014-Linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='50ad5722cafe16dc384e83a4a4e19480' ARCHIVE_BASE_MULTIARCH_0_SIZE='1600000' ARCHIVE_BASE_MULTIARCH_0_VERSION='2014.07.06-humble1' UNITY3D_NAME='Jazzpunk' 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='.' PACKAGES_LIST=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' 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" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='jazzpunk_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='d1fe700322ad08f9ac3dec1c29512f94' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/jazzpunk' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write ;; (*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jotun.sh0000755000000000000000000000664314471751340013330 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jotun # send your bug reports to contact@dotslashplay.it ### script_version=20230625.2 GAME_ID='jotun' GAME_NAME='Jotun' ARCHIVE_BASE_0='jotun_12_09_2019_32415.sh' ARCHIVE_BASE_0_MD5='67b9b5ee91016014cb02be170a3a295a' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='2019.09.12-gog32415' ARCHIVE_BASE_0_URL='https://www.gog.com/game/jotun' ARCHIVE_BASE_OLD_2='gog_jotun_2.3.0.5.sh' ARCHIVE_BASE_OLD_2_MD5='e79a13252802fe4fe008e817aa2d4f43' ARCHIVE_BASE_OLD_2_SIZE='4200000' ARCHIVE_BASE_OLD_2_VERSION='2017.07.27-gog2.3.0.5' ARCHIVE_BASE_OLD_1='gog_jotun_2.2.0.4.sh' ARCHIVE_BASE_OLD_1_MD5='451d27e2e3747ed137e6ec5f3956c5da' ARCHIVE_BASE_OLD_1_SIZE='4200000' ARCHIVE_BASE_OLD_1_VERSION='2016.12.21-gog2.2.0.4' ARCHIVE_BASE_OLD_0='gog_jotun_2.1.0.2.sh' ARCHIVE_BASE_OLD_0_MD5='3f6976f56a4da1d6f274407b1342de7f' ARCHIVE_BASE_OLD_0_SIZE='4200000' ARCHIVE_BASE_OLD_0_VERSION='1.0-gog2.1.0.2' UNITY3D_NAME='Jotun' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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_BIN_DEPENDENCIES_LIBRARIES_OLD=' 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_BIN32_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" PKG_BIN64_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-journey-of-a-roach.sh0000755000000000000000000000462714471751340015576 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Journey of a Roach # send your bug reports to contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='journey-of-a-roach' GAME_NAME='Journey of a Roach' ARCHIVE_BASE_GOG_0_NAME='setup_journey_of_a_roach_2.1.0.5.exe' ARCHIVE_BASE_GOG_0_MD5='98b4f1c3efc2a789530ffc1f8f1c2b92' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.30.011-gog2.1.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/journey_of_a_roach' ARCHIVE_BASE_HUMBLE_0_NAME='JoaR_1.3_PC_Full_Multi_Daedalic_ESD.exe' ARCHIVE_BASE_HUMBLE_0_MD5='e349a84f7b8ac095b06edea521cade8f' ARCHIVE_BASE_HUMBLE_0_TYPE='innosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1600000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.30.011-humble160915' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/journey-of-a-roach' UNITY3D_NAME='joar' CONTENT_PATH_DEFAULT='app' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/documents" ## TODO: This glob should be replaced with an explicit list of files. CONTENT_DOC_DATA_FILES=' *' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Daedalic Entertainment/Journey of a Roach' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-journey-to-the-savage-planet.sh0000755000000000000000000000403614471751340017601 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Journey to the Savage Planet # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='journey-to-the-savage-planet' GAME_NAME='Journey to the Savage Planet' ARCHIVE_BASE_0_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657).exe' ARCHIVE_BASE_0_MD5='d70cddb3d207b8f557ce6dfddc90c9eb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0ae4643eb7a58450449c4fec4a0aea75' ARCHIVE_BASE_0_PART2_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657)-2.bin' ARCHIVE_BASE_0_PART2_MD5='155d3018829b5e4875a445d221dae8c0' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.0.10-gog44657' ARCHIVE_BASE_0_URL='https://www.gog.com/game/journey_to_the_savage_planet' UNREALENGINE4_NAME='towers' CONTENT_PATH_DEFAULT='.' 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-just-cause-2.sh0000755000000000000000000001423714471751340014411 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Just Cause 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='just-cause-2' GAME_NAME='Just Cause 2' ARCHIVE_BASE_0_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335).exe' ARCHIVE_BASE_0_MD5='32cc043750be9e09354a3605f05f7de4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f100ae3a4ba93b72de4247aa7a61f29' ARCHIVE_BASE_0_PART2_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-2.bin' ARCHIVE_BASE_0_PART2_MD5='338797d683e65f69c834731f41855a12' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.0.0.2-gog50335' ARCHIVE_BASE_0_URL='https://www.gog.com/game/just_cause_2_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' sound/fmod/dialog_mission?specific_eng.fsb sound/fmod/dialog_pa_eng.fsb' CONTENT_GAME_L10N_FR_FILES=' sound/fmod/dialog_mission?specific_fre.fsb sound/fmod/dialog_pa_fre.fsb' CONTENT_DOC_L10N_EN_FILES=' jc2 readme_en.rtf' CONTENT_DOC_L10N_FR_FILES=' jc2 readme_fr.rtf' CONTENT_GAME_DATA_FILES=' archives_win32 dlc dx10_shaders_f.shader_bundle dx10_specialshaders_f.shader_bundle sound/fmod/cutscenes_common.fsb sound/fmod/music_common.fsb sound/fmod/music_stereo.fsb' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Just Cause 2 users/${USER}/Documents/My Games/Just Cause 2' ## Work around a failure to start the game. WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE='justcause2.exe' ## Switch French keyboard layout to us-azerty to provide direct access to digits. ## TODO: Check that this works expected on Wayland (it probably does not). APP_MAIN_PRERUN='# Switch French keyboard layout to us-azerty to provide direct access to digits. KEYBOARD_RESTORE_VARIANT=0 KEYBOARD_LAYOUT=$(LANG=C setxkbmap -query | awk "/layout:/ {print \$2}") if [ "$KEYBOARD_LAYOUT" = "fr" ]; then KEYBOARD_VARIANT=$(LANG=C setxkbmap -query | awk "/variant:/ {print \$2}") if [ "$KEYBOARD_VARIANT" != "us-azerty" ]; then KEYBOARD_RESTORE_VARIANT=1 setxkbmap -variant us-azerty fi fi ' APP_MAIN_POSTRUN='# Restore the keyboard variant, if it has previously been switched to us-azerty. if [ $KEYBOARD_RESTORE_VARIANT -eq 1 ]; then setxkbmap -variant "$KEYBOARD_VARIANT" fi ' PACKAGES_LIST='PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" ## Switch French keyboard layout to us-azerty to provide direct access to digits. PKG_BIN_DEPENDENCIES_COMMANDS=' setxkbmap' # 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" # Set game language ## English l10n_conf_file_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_en")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_en" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "English", "languages": [ "en-US" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF ## French l10n_conf_file_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_fr")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_fr" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "French", "languages": [ "fr-FR" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation case "${LANG%_*}" 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_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-just-one-must-choose.sh0000755000000000000000000000372414471751340016176 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Just one, must choose # send your bug reports to contact@dotslashplay.it ### script_version=20240404.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='just-one-must-choose' GAME_NAME='Just one, must choose' ARCHIVE_BASE_0_NAME='Just one, must choose - Linux.zip' ARCHIVE_BASE_0_MD5='1a93360c282cee3b8e11a6f04698a2dd' ARCHIVE_BASE_0_SIZE='5100' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.08.04' ARCHIVE_BASE_0_URL='https://gooonzalo.itch.io/just-one-must-choose' CONTENT_PATH_DEFAULT='application.linux64' CONTENT_GAME_MAIN_FILES=' source lib' APP_MAIN_TYPE='java' APP_MAIN_EXE='Only_One' APP_MAIN_JAVA_OPTIONS='-Djna.nosys=true -Djava.library.path=lib -cp lib/Only_One.jar:lib/core.jar:lib/jogl-all.jar:lib/gluegen-rt.jar:lib/jogl-all-natives-linux-amd64.jar:lib/gluegen-rt-natives-linux-amd64.jar' # 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 launcher target is not a .jar archive launcher_target_presence_check() { true ; } game_exec_line() { cat <<- EOF java $APP_MAIN_JAVA_OPTIONS "\$APP_EXE" "\$@" EOF } # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jydge.sh0000755000000000000000000000360714471751340013270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Jydge # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='jydge' GAME_NAME='JYDGE' ARCHIVE_BASE_0='JYDGE' ARCHIVE_BASE_0_MD5='3b8c8a14b7d7bc7c059c479910eb449d' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='1.2.0.6-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/jydge' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' JYDGE' CONTENT_GAME_DATA_FILES=' *.pak *.xml' APP_MAIN_EXE='JYDGE' 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 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kapital-sparks-of-revolution.sh0000755000000000000000000000403114471751340017712 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 contact@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-kerbal-space-program.sh0000755000000000000000000000726514471751340016170 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Kerbal Space Program # send your bug reports to contact@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='kerbal-space-program' GAME_NAME='Kerbal Space Program' ARCHIVE_BASE_0_NAME='kerbal_space_program_1_12_5_03190_61624.sh' ARCHIVE_BASE_0_MD5='0dc96f1a59f1f8b8cb43b3e8ed58b05a' ARCHIVE_BASE_0_SIZE='4873634' ARCHIVE_BASE_0_VERSION='1.12.5-gog61624' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kerbal_space_program' ARCHIVE_BASE_OLDLIBS_3_NAME='kerbal_space_program_1_10_1_02939_41941.sh' ARCHIVE_BASE_OLDLIBS_3_MD5='fe71449cc6478ae7cbfbf0a718c9daa3' ARCHIVE_BASE_OLDLIBS_3_SIZE='4000000' ARCHIVE_BASE_OLDLIBS_3_VERSION='1.10.1-gog41941' ARCHIVE_BASE_OLDLIBS_2_NAME='kerbal_space_program_1_10_0_02917_39410.sh' ARCHIVE_BASE_OLDLIBS_2_MD5='40d7ea6e6c112a95954b3178030599b0' ARCHIVE_BASE_OLDLIBS_2_SIZE='4000000' ARCHIVE_BASE_OLDLIBS_2_VERSION='1.10.0-gog39410' ARCHIVE_BASE_OLDLIBS_1_NAME='kerbal_space_program_1_9_1_02788_36309.sh' ARCHIVE_BASE_OLDLIBS_1_MD5='6157d3ebad90960893e4aa177b8518de' ARCHIVE_BASE_OLDLIBS_1_SIZE='3700000' ARCHIVE_BASE_OLDLIBS_1_VERSION='1.9.1-gog36309' ARCHIVE_BASE_OLDLIBS_0_NAME='kerbal_space_program_1_8_1_02694_33460.sh' ARCHIVE_BASE_OLDLIBS_0_MD5='195abb84de4a916192190858d0796c50' ARCHIVE_BASE_OLDLIBS_0_SIZE='3400000' ARCHIVE_BASE_OLDLIBS_0_VERSION='1.8.1-gog33460' UNITY3D_NAME='KSP' UNITY3D_PLUGINS=' libkeyboard.so liblingoona.grammar.kerbal.so' UNITY3D_PLUGINS_OLDLIBS=' libkeyboard.so liblingoona.grammar.kerbal.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' GameData Internals Missions Parts Resources Ships saves sounds *.cfg' CONTENT_DOC_DATA_FILES=' LegalNotice.txt readme.txt' USER_PERSISTENT_DIRECTORIES=' saves sounds' ## The game fails to load if it does not have write access to GameData/Squad/KSPedia files. USER_PERSISTENT_DIRECTORIES="${USER_PERSISTENT_DIRECTORIES:-} GameData/Squad/KSPedia" USER_PERSISTENT_FILES=' *.cfg *.mu' 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_BIN_DEPENDENCIES_LIBRARIES_OLDLIBS=' 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-kero-blaster.sh0000755000000000000000000000356414471751340014562 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kero Blaster # send your bug reports to contact@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='kero-blaster' GAME_NAME='Kero Blaster' ## The following archive used to be sold from Playism store, ## before it closed down in favour of Steam. ARCHIVE_BASE_0_NAME='KeroBlaster_EN_v1501a.zip' ARCHIVE_BASE_0_MD5='c6ba58d37b5344d08c7d9a94506266b0' ARCHIVE_BASE_0_SIZE='20000' ARCHIVE_BASE_0_VERSION='1.501-playism1501a' CONTENT_PATH_DEFAULT='KeroBlasterEn' CONTENT_GAME_BIN_FILES=' KeroBlaster.exe' CONTENT_GAME_DATA_FILES=' rsc_k' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='KeroBlaster.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_LIBRARIES=' libasound.so.2 libmpg123.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" # 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-kind-words.sh0000755000000000000000000000446214471751340014247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Kind Words # send your bug reports to contact@dotslashplay.it ### script_version=20241111.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='kind-words' GAME_NAME='Kind Words' ARCHIVE_BASE_2_NAME='kind-words-linux-20240804-1.zip' ARCHIVE_BASE_2_MD5='6e2b736846cc7335be26b1f901c88535' ARCHIVE_BASE_2_SIZE='371697' ARCHIVE_BASE_2_VERSION='2024.08.04-itch' ARCHIVE_BASE_2_URL='https://popcannibal.itch.io/kindwords' ARCHIVE_BASE_1_NAME='kind-words-linux-64-67.zip' ARCHIVE_BASE_1_MD5='c4cfc5e184cba2bb19964ae429c92966' ARCHIVE_BASE_1_SIZE='285035' ARCHIVE_BASE_1_VERSION='2022.04.01-itch.67' ARCHIVE_BASE_0_NAME='kind-words-linux-64-66.zip' ARCHIVE_BASE_0_MD5='e15ca776e2c5da2f3e33f03aea754730' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='2021.09.10-itch.66' UNITY3D_NAME='Kind Words' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='Kind Words' CONTENT_PATH_DEFAULT_1='.' CONTENT_PATH_DEFAULT_0='.' 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-kingdom-come-deliverance-expansions.sh0000755000000000000000000001517114471751340021202 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors set -o errexit ### # Kingdom Come: Deliverance, expansions # send your bug reports to contact@dotslashplay.it ### script_version=20240114.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' # Set game-specific variables GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES='data goggame-*' PKG_MAIN_DEPS="$GAME_ID" # Archives ## HD Sound Pack EXPANSION_ID_HD_SOUND="hd-sound" EXPANSION_NAME_HD_SOUND="HD Sound pack" ARCHIVE_BASE_HD_SOUND_0_NAME='setup_kingdom_come_deliverance_-_hd_sound_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_SOUND_0_MD5='2148cf5d68e477f5c4fb32fde94a2cb8' ARCHIVE_BASE_HD_SOUND_0_TYPE='innosetup' ARCHIVE_BASE_HD_SOUND_0_SIZE='974736' ARCHIVE_BASE_HD_SOUND_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_SOUND_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_sound_pack' ## HD Texture Pack EXPANSION_ID_HD_TEXTURE="hd-texture" EXPANSION_NAME_HD_TEXTURE="HD Texture pack" ARCHIVE_BASE_HD_TEXTURE_0_NAME='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_TEXTURE_0_MD5='599a26fd112d65bd0c6bcaeccd47e3c2' ARCHIVE_BASE_HD_TEXTURE_0_TYPE='innosetup' ARCHIVE_BASE_HD_TEXTURE_0_SIZE='7089775' ARCHIVE_BASE_HD_TEXTURE_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_TEXTURE_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_texture_pack' ARCHIVE_BASE_HD_TEXTURE_0_PART1='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART1_MD5='257a19297a6e1ffc202ca9af584dbc17' ARCHIVE_BASE_HD_TEXTURE_0_PART2='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART2_MD5='c3271df85b819e5ed5016e318544fcc5' ## HD Voice FR pack EXPANSION_ID_HD_VOICE_FR="hd-voice-fr" EXPANSION_NAME_HD_VOICE_FR="HD Voice pack" ARCHIVE_BASE_HD_VOICE_FR_0_NAME='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_VOICE_FR_0_MD5='16178699acfc1ca2b94c385f7e6dc206' ARCHIVE_BASE_HD_VOICE_FR_0_TYPE='innosetup' ARCHIVE_BASE_HD_VOICE_FR_0_SIZE='3832027' ARCHIVE_BASE_HD_VOICE_FR_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_VOICE_FR_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_voice_pack_french' ARCHIVE_BASE_HD_VOICE_FR_0_PART1='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_VOICE_FR_0_PART1_MD5='85279184e0e52c810cea55efa9440efc' ## Expansion: A woman's lot EXPANSION_ID_A_WOMANS_LOT="a-woman-s-lot" EXPANSION_NAME_A_WOMANS_LOT="A woman's lot" ARCHIVE_BASE_A_WOMANS_LOT_0_NAME='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_A_WOMANS_LOT_0_MD5='08ec99ec6bf0a08bc04004579641da81' ARCHIVE_BASE_A_WOMANS_LOT_0_TYPE='innosetup' ARCHIVE_BASE_A_WOMANS_LOT_0_SIZE='8000000' ARCHIVE_BASE_A_WOMANS_LOT_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_A_WOMANS_LOT_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_a_womans_lot' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1_MD5='7cf9ac8abb8e304b756c98a36d6fbc2a' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2_MD5='e671d0cfaceb8f5cac910d0e93f2b19f' ## Expansion: Band of bastards EXPANSION_ID_BAND_OF_BASTARDS="band-of-bastards" EXPANSION_NAME_BAND_OF_BASTARDS="Band of bastards" ARCHIVE_BASE_BAND_OF_BASTARDS_0_NAME='setup_kingdom_come_deliverance__band_of_bastards_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_BAND_OF_BASTARDS_0_MD5='cce9e163f07e2e9fa8be5b6b113fe866' ARCHIVE_BASE_BAND_OF_BASTARDS_0_TYPE='innosetup' ARCHIVE_BASE_BAND_OF_BASTARDS_0_SIZE='500000' ARCHIVE_BASE_BAND_OF_BASTARDS_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_BAND_OF_BASTARDS_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_band_of_bastards' ## Expansion: From the ashes EXPANSION_ID_FROM_THE_ASHES="from-the-ashes" EXPANSION_NAME_FROM_THE_ASHES="From the ashes" ARCHIVE_BASE_FROM_THE_ASHES_0_NAME='setup_kingdom_come_deliverance__from_the_ashes_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_FROM_THE_ASHES_0_MD5='141360d56c9ba17c72fcac2f50685a7f' ARCHIVE_BASE_FROM_THE_ASHES_0_TYPE='innosetup' ARCHIVE_BASE_FROM_THE_ASHES_0_SIZE='100' ARCHIVE_BASE_FROM_THE_ASHES_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_FROM_THE_ASHES_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_from_the_ashes' ## Expansion: The amorous adventures of bold sir Hans Capon EXPANSION_ID_HANS_CAPON="amorous-adventures-sir-capon" EXPANSION_NAME_HANS_CAPON="The amorous adventures of bold sir Hans Capon" ARCHIVE_BASE_HANS_CAPON_0_NAME='setup_kingdom_come_deliverance__the_amorous_adventures_of_bold_sir_hans_capon_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HANS_CAPON_0_MD5='2b41e8147c8046b7b01cfdd3e8079b10' ARCHIVE_BASE_HANS_CAPON_0_TYPE='innosetup' ARCHIVE_BASE_HANS_CAPON_0_SIZE='2000000' ARCHIVE_BASE_HANS_CAPON_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HANS_CAPON_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_the_amorous_adventures_of_bold_sir_hans_capon' ## Expansion: Theasures of the past EXPANSION_ID_TREASURES_OF_THE_PAST="treasures-of-the-past" EXPANSION_NAME_TREASURES_OF_THE_PAST="Treasures of the past" ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_NAME='setup_kingdom_come_deliverance_treasures_of_the_past_dlc_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_MD5='4e3bd284e3dc4573690bed957ba78cbe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_TYPE='innosetup' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_SIZE='100' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_treasures_of_the_past' # 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-kingdom-come-deliverance.sh0000755000000000000000000002417614471751340017022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors set -o errexit ### # Kingdom Come: Deliverance # send your bug reports to contact@dotslashplay.it ### script_version=20240219.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' ARCHIVE_BASE_0_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_0_MD5='de458c20cbcaadf8dfc92afe7c2e8284' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='62899673' ARCHIVE_BASE_0_VERSION='1.9.6-404-504czj3-gog62297' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingdom_come_deliverance' ARCHIVE_BASE_0_PART1='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c18fa417f8486275d78e01c1a62c8204' ARCHIVE_BASE_0_PART2='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d288e846badd8228ba0f78c6186731f2' ARCHIVE_BASE_0_PART3='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-3.bin' ARCHIVE_BASE_0_PART3_MD5='b6702c24ded1f8851cb297553cc9b71b' ARCHIVE_BASE_0_PART4='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-4.bin' ARCHIVE_BASE_0_PART4_MD5='b33e86210161017d399071fcf6c54f9f' ARCHIVE_BASE_0_PART5='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-5.bin' ARCHIVE_BASE_0_PART5_MD5='379faac2d6128f1a94275b9d9248c0de' ARCHIVE_BASE_0_PART6='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-6.bin' ARCHIVE_BASE_0_PART6_MD5='c5ffb38b7425cb0219fe70497bb09d9a' ARCHIVE_BASE_0_PART7='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-7.bin' ARCHIVE_BASE_0_PART7_MD5='594f01d2cbd5b2c5cc9442d644a8b335' ARCHIVE_BASE_0_PART8='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-8.bin' ARCHIVE_BASE_0_PART8_MD5='93896ac78ea2dddeb433ffa685a561c2' ARCHIVE_BASE_0_PART9='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-9.bin' ARCHIVE_BASE_0_PART9_MD5='b8cd2810be97f2f697f67e92c71c16b8' ARCHIVE_BASE_0_PART10='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-10.bin' ARCHIVE_BASE_0_PART10_MD5='a38ed45d417c2d2cef03b270a21da255' ARCHIVE_BASE_0_PART11='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-11.bin' ARCHIVE_BASE_0_PART11_MD5='671cc5add7a31e5efd46e2a03478cf5d' ARCHIVE_BASE_0_PART12='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-12.bin' ARCHIVE_BASE_0_PART12_MD5='9aec35e9d193044603095eb1961d8647' ARCHIVE_BASE_0_PART13='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-13.bin' ARCHIVE_BASE_0_PART13_MD5='cb65a86dd5cc63a66a18767c3a4c5378' ARCHIVE_BASE_0_PART14='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-14.bin' ARCHIVE_BASE_0_PART14_MD5='701d947164a1f4d541c985a7273b9552' ARCHIVE_BASE_0_PART15='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-15.bin' ARCHIVE_BASE_0_PART15_MD5='e3bb56e79d9ff4f9be2ee2b321f10f68' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' patchversion.txt whdlversions.txt bin engine system.cfg goggame-* ' CONTENT_GAME_L10N_COMMON_FILES=' localization/*_xml.pak localization/common.pak' CONTENT_GAME_L10N_VOICES_CZ_FILES=' localization/*czech-*.pak localization/patch/*czech*.pak' CONTENT_GAME_L10N_VOICES_JA_FILES=' localization/*japanese-*.pak localization/patch/*japanese*.pak' CONTENT_GAME_L10N_VOICES_DE_FILES=' localization/*german.pak localization/patch/*german*.pak' CONTENT_GAME_L10N_VOICES_EN_FILES=' localization/*english.pak localization/patch/*english*.pak' CONTENT_GAME_L10N_VOICES_FR_FILES=' localization/*french.pak localization/patch/*french*.pak' CONTENT_GAME_DATA_BASE_FILES=' data/gamedata.pak data/pak.cfg' CONTENT_GAME_DATA_PATCH103_FILES=' data/patch/ipl_patch_010300.pak data/patch/patch_010300.pak' CONTENT_GAME_DATA_PATCH104_FILES=' data/patch/ipl_patch_010400.pak data/patch/ipl_patch_010403.pak' CONTENT_GAME_DATA_PATCH105_FILES=' data/patch/ipl_patch_010500.pak data/patch/patch_010500.pak' CONTENT_GAME_DATA_PATCH106_FILES=' data/patch/ipl_patch_010600.pak data/patch/ipl_patch_010602.pak data/patch/patch_010600.pak' CONTENT_GAME_DATA_PATCH107_FILES=' data/patch/ipl_patch_010700b.pak data/patch/ipl_patch_010700.pak data/patch/ipl_patch_010701b.pak data/patch/ipl_patch_010701.pak data/patch/patch_010700.pak data/patch/patch_010701.pak' CONTENT_GAME_DATA_PATCH108_FILES=' data/patch/ipl_patch_010800.pak data/patch/patch_010900.pak' CONTENT_GAME_DATA_PATCH109_FILES=' data/patch/ipl_patch_010900.pak data/patch/ipl_patch_010902.pak data/patch/patch_010800.pak' CONTENT_GAME_DATA_WORLD_FILES=' data/_fastload/startup_graphics.pak data/buildings.pak data/engineassets data/engineassets/sky data/engineassets/sky/optical.lut data/geomcaches.pak data/levels data/objects.pak data/scripts.pak data/tables.pak data/textures.pak' CONTENT_GAME_DATA_AUDIO_FILES=' data/music.pak data/sounds.pak' CONTENT_GAME_DATA_VIDEOS_FILES=' data/ipl_videos.pak data/videos-part0.pak data/videos-part1.pak data/videos-part2.pak data/videos-part3.pak data/videos-part4.pak' CONTENT_GAME_DATA_VIDEOSB_FILES=' data/ipl_videosb.pak data/videosb-part0.pak data/videosb-part1.pak' CONTENT_GAME_DATA_CINEMATICS_FILES=' data/cinematics.pak data/ipl_cinematics.pak' CONTENT_GAME_DATA_CLOTHES_FILES=' data/cloth-part0.pak data/cloth-part1.pak data/cloth-part2.pak' CONTENT_GAME_DATA_CHARACTERS_FILES=' data/_fastload/startup_characters.pak data/characters.pak data/heads.pak data/ipl_heads.pak' CONTENT_GAME_DATA_ANIMATIONS_FILES=' data/_fastload/startup_animations.pak data/animations-part0.pak data/animations-part1.pak' APP_MAIN_EXE='bin/win64/kingdomcome.exe' ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' WINE_DIRECT3D_RENDERER='dxvk' PACKAGES_LIST=' PKG_BIN PKG_L10N_COMMON PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_L10N_VOICES_CZ PKG_L10N_VOICES_JA PKG_L10N_VOICES_DE PKG_DATA_BASE PKG_DATA_PATCH103 PKG_DATA_PATCH104 PKG_DATA_PATCH105 PKG_DATA_PATCH106 PKG_DATA_PATCH107 PKG_DATA_PATCH108 PKG_DATA_PATCH109 PKG_DATA_WORLD PKG_DATA_AUDIO PKG_DATA_VIDEOS PKG_DATA_VIDEOSB PKG_DATA_ANIMATIONS PKG_DATA_CINEMATICS PKG_DATA_CLOTHES PKG_DATA_CHARACTERS' # Data package PKG_DATA_BASE_ID="${GAME_ID}-data-base" PKG_DATA_BASE_DESCRIPTION='data-base' PKG_DATA_WORLD_ID="${GAME_ID}-data-world" PKG_DATA_WORLD_DESCRIPTION='data world' PKG_DATA_AUDIO_ID="${GAME_ID}-data-audio" PKG_DATA_AUDIO_DESCRIPTION='data audio' PKG_DATA_VIDEOS_ID="${GAME_ID}-data-videos" PKG_DATA_VIDEOS_DESCRIPTION='data videos' PKG_DATA_VIDEOSB_ID="${GAME_ID}-data-videosb" PKG_DATA_VIDEOSB_DESCRIPTION='data videosb' PKG_DATA_CHARACTERS_ID="${GAME_ID}-data-characters" PKG_DATA_CHARACTERS_DESCRIPTION='data characters' PKG_DATA_CLOTHES_ID="${GAME_ID}-data-clothes" PKG_DATA_CLOTHES_DESCRIPTION='data clothes' PKG_DATA_CINEMATICS_ID="${GAME_ID}-data-cinematics" PKG_DATA_CINEMATICS_DESCRIPTION='data cinematics' PKG_DATA_ANIMATIONS_ID="${GAME_ID}-data-animations" PKG_DATA_ANIMATIONS_DESCRIPTION='data animations' PKG_DATA_PATCH103_ID="${GAME_ID}-data-patch-103" PKG_DATA_PATCH103_DESCRIPTION='data patch 103' PKG_DATA_PATCH104_ID="${GAME_ID}-data-patch-104" PKG_DATA_PATCH104_DESCRIPTION='data patch 104' PKG_DATA_PATCH105_ID="${GAME_ID}-data-patch-105" PKG_DATA_PATCH105_DESCRIPTION='data patch 105' PKG_DATA_PATCH106_ID="${GAME_ID}-data-patch-106" PKG_DATA_PATCH106_DESCRIPTION='data patch 106' PKG_DATA_PATCH107_ID="${GAME_ID}-data-patch-107" PKG_DATA_PATCH107_DESCRIPTION='data patch 107' PKG_DATA_PATCH108_ID="${GAME_ID}-data-patch-108" PKG_DATA_PATCH108_DESCRIPTION='data patch 108' PKG_DATA_PATCH109_ID="${GAME_ID}-data-patch-109" PKG_DATA_PATCH109_DESCRIPTION='data patch 109' PKG_L10N_COMMON_ID="${GAME_ID}-l10n-common" PKG_L10N_COMMON_DESCRIPTION='localizations - shared files' PKG_L10N_VOICES_ID="${GAME_ID}-l10n-voices" PKG_L10N_VOICES_DESCRIPTION="localizations - voices" PKG_L10N_VOICES_CZ_ID="${PKG_L10N_VOICES_ID}-cz" PKG_L10N_VOICES_DE_ID="${PKG_L10N_VOICES_ID}-de" PKG_L10N_VOICES_EN_ID="${PKG_L10N_VOICES_ID}-en" PKG_L10N_VOICES_FR_ID="${PKG_L10N_VOICES_ID}-fr" PKG_L10N_VOICES_JA_ID="${PKG_L10N_VOICES_ID}-ja" PKG_L10N_VOICES_CZ_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Czech" PKG_L10N_VOICES_DE_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Deutch" PKG_L10N_VOICES_EN_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - English" PKG_L10N_VOICES_FR_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - French" PKG_L10N_VOICES_JA_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Japanese" # Binaries package PKG_BIN_ARCH='64' PKG_L10N_COMMON_DEPS="$PKG_L10N_VOICES_EN_ID $PKG_L10N_VOICES_FR_ID $PKG_L10N_VOICES_CZ_ID $PKG_L10N_VOICES_JA_ID $PKG_L10N_VOICES_DE_ID" PKG_DATA_BASE_DEPS="$PKG_DATA_PATCH103_ID $PKG_DATA_PATCH104_ID $PKG_DATA_PATCH105_ID $PKG_DATA_PATCH106_ID $PKG_DATA_PATCH107_ID $PKG_DATA_PATCH108_ID $PKG_DATA_PATCH109_ID $PKG_DATA_WORLD_ID $PKG_DATA_AUDIO_ID $PKG_DATA_VIDEOS_ID $PKG_DATA_VIDEOSB_ID $PKG_DATA_ANIMATIONS_ID $PKG_DATA_CINEMATICS_ID $PKG_DATA_CLOTHES_ID $PKG_DATA_CHARACTERS_ID" PKG_BIN_DEPS="$PKG_L10N_COMMON_ID $PKG_DATA_BASE_ID" # Use persistent storage for user data WINE_PERSISTENT_DIRECTORIES=' users/$USER/Saved Games/kingdomcome/profiles users/$USER/Saved Games/kingdomcome/saves' USER_PERSISTENT_FILES=' system.cfg user.cfg.keeptextures user.cfg.perf user.cfg.reticle user.cfg' USER_PERSISTENT_DIRECTORIES=' mods' # 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 set_current_package 'PKG_DATA_BASE' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingdom-new-lands.sh0000755000000000000000000000542014471751340015477 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 contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='kingdom-new-lands' GAME_NAME='Kingdom New Lands' UNITY3D_NAME='Kingdom' ARCHIVE_BASE_1='kingdom_new_lands_en_1_2_8_19096.sh' ARCHIVE_BASE_1_MD5='3499d709e78410ef7f447c12e3c66039' ARCHIVE_BASE_1_VERSION='1.2.8-gog19096' ARCHIVE_BASE_1_SIZE='450000' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_URL='https://www.gog.com/game/kingdom_new_lands' ARCHIVE_BASE_0='gog_kingdom_new_lands_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0d662366f75d5da214e259d792e720eb' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='420000' ARCHIVE_BASE_0_VERSION='1.2.3-gog2.6.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kings-bounty-the-legend.sh0000755000000000000000000001467714471751340016642 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 contact@dotslashplay.it ### script_version=20240811.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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=' kb.exe data/default.ini data/game.ini data/fonts.cfg *.dll' 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_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_ID_EN="$PKG_L10N_EN_ID" PKG_L10N_ID_FR="$PKG_L10N_FR_ID" PKG_L10N_PROVIDES=" $PKG_L10N_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' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" # The "find" and "rename" commands are used to handle some localized files SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingsway.sh0000755000000000000000000000354214471751340014020 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Kingsway # send your bug reports to contact@dotslashplay.it ### script_version=20240627.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='kingsway' GAME_NAME='Kingsway' ARCHIVE_BASE_0_NAME='setup_kingsway_1.1.3_(13864).exe' ARCHIVE_BASE_0_MD5='f1f02c073faa80cd2f2b6c8571032ad2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.3-gog13864' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingsway' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' kingsway.exe' CONTENT_GAME_DATA_FILES=' music data.win' # Use persistent storage for saved games and settings WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Kingsway' APP_MAIN_EXE='kingsway.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" # 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-knights-of-pen-and-paper.sh0000755000000000000000000000533114471751340016660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Knights of Pen and Paper # send your bug reports to contact@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='knights-of-pen-and-paper' GAME_NAME='Knights of Pen and Paper' # Archives ## Kinghts of Pen and Paper (base game) ARCHIVE_BASE_0_NAME='gog_knights_of_pen_and_paper_1_edition_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1f387b78bfe426b9396715fbfe3499b9' ARCHIVE_BASE_0_VERSION='2.34c-gog2.0.0.1' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/knights_of_pen_and_paper_1_deluxier_edition' ## Deluxier Edition ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_DELUXIER_0_NAME='gog_knights_of_pen_and_paper_1_deluxier_edition_upgrade_2.0.0.1.sh' ARCHIVE_OPTIONAL_DELUXIER_0_MD5='b3033693afd93cc885883aede7ede4b0' UNITY3D_NAME='knightspp' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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=' 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' # 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" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_DELUXIER' \ 'ARCHIVE_OPTIONAL_DELUXIER_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_DELUXIER' ; then archive_extraction 'ARCHIVE_DELUXIER' fi # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kona.sh0000755000000000000000000000503314471751340013111 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kona # send your bug reports to contact@dotslashplay.it ### script_version=20240509.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='kona' GAME_NAME='Kona' ARCHIVE_BASE_0_NAME='gog_kona_2.8.0.9.sh' ARCHIVE_BASE_0_MD5='62e924fb4b9cafcb34c58b2fb66bc9f7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='2017.07.07-gog2.8.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kona_day_one' UNITY3D_NAME='Kona' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Force the game to run in a window on first launch, to prevent display problems. ## TODO: We might have to force windowed mode on every launch, not only the first one. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Force the game to run in a window on first launch, to prevent display problems config_file="$HOME/.config/unity3d/Parabole/Kona/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF fi' 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 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" # 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-kraken-academy.sh0000755000000000000000000000564714471751340015050 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kraken Academy # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='kraken-academy' GAME_NAME='Kraken Academy' ARCHIVE_BASE_0='kraken_academy_1_0_12_1_51227.sh' ARCHIVE_BASE_0_MD5='8f5a82e43e81913a0181029d968e13f5' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0.12.1-gog51227' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kraken_academy' UNITY3D_NAME='Kraken Academy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudio.so libresonanceaudio.so' CONTENT_LIBS0_BIN_FILES=' GameAssembly.so UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/il2cpp_data ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/data.unity3d ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/StreamingAssets/Saves" APP_MAIN_EXE="$UNITY3D_NAME" 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' # Load common functions target_version='2.22' 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" # Link GameAssembly.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='GameAssembly.so' file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kyn.sh0000755000000000000000000000456114471751340012767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Kyn # send your bug reports to contact@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='kyn' GAME_NAME='Kyn' ## This DRM-free installer is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_kyn_update_4_(17655).exe' ARCHIVE_BASE_0_MD5='ca2a665c27ef02f0bfa4e72dc368952c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_kyn_update_4_(17655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c6c13b15a4d39ac9389c7c4f9ce6760' ARCHIVE_BASE_0_SIZE='7900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog17655' ARCHIVE_BASE_RAR_0_NAME='setup_kyn_2.1.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='a40cb85cdd40b7464eec92b2b9166f84' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_kyn_2.1.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='4cfdca351969f2570a3657c772fd492e' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_SIZE='7900000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.1.0.4' UNITY3D_NAME='kyn' CONTENT_PATH_DEFAULT='app' CONTENT_PATH_DEFAULT_RAR='game' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Tangrin Entertainment/Kyn' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-la-mulana.sh0000755000000000000000000000503214471751340014027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # La-Mulana # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='la-mulana' GAME_NAME='La•Mulana' ## This DRM-free build is no longer available for sale from Humble Bundle, ## they now only sell Steam keys instead. ARCHIVE_BASE_0='20170404_LaMulana_Linux.zip' ARCHIVE_BASE_0_MD5='e7a597ea2588ae975a7cc7b59c17d50d' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.6.6-humble180409' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' LaMulana.bin.x86' CONTENT_GAME_DATA_PATH='data/noarch' CONTENT_GAME_DATA_FILES=' data *.bmp *.png' CONTENT_DOC_DATA_PATH='data/noarch' CONTENT_DOC_DATA_FILES=' README.linux' CONTENT_DOC0_DATA_PATH='.' CONTENT_DOC0_DATA_FILES=' License Manual ReadMe_??.txt' APP_MAIN_EXE='LaMulana.bin.x86' APP_MAIN_ICON='noarch/Icon.png' 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 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # The .zip archive includes a MojoSetup installer. SCRIPT_DEPS="$SCRIPT_DEPS bsdtar" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' INNER_ARCHIVE="${PLAYIT_WORKDIR}/gamedata/LaMulanaSetup-2017-01-27.sh" INNER_ARCHIVE_TYPE='mojosetup' archive_extraction 'INNER_ARCHIVE' rm "$INNER_ARCHIVE" # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game content content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-last-day-of-june.sh0000755000000000000000000000432014471751340015236 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Last Day of June # send your bug reports to contact@dotslashplay.it ### script_version=20230418.3 GAME_ID='last-day-of-june' GAME_NAME='Last Day of June' ARCHIVE_BASE_0='setup_last_day_of_june_gog-1_(19137).exe' ARCHIVE_BASE_0_MD5='0f86fdc764cea5ccdd6087226d225e43' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.0-gog19137' ARCHIVE_BASE_0_URL='https://www.gog.com/game/last_day_of_june' UNITY3D_NAME='car_20170817_23824_fullgame' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ovosonico/Last Day of June' APP_MAIN_EXE="${UNITY3D_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" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-layers-of-fear.sh0000755000000000000000000000432414471751340014777 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Layers of Fear # send your bug reports to contact@dotslashplay.it ### script_version=20231109.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='layers-of-fear' GAME_NAME='Layers of Fear' ARCHIVE_BASE_1_NAME='gog_layers_of_fear_2.3.0.5.sh' ARCHIVE_BASE_1_MD5='faf72f04f53be0523053eb7ba0f2bb05' ARCHIVE_BASE_1_SIZE='4000000' ARCHIVE_BASE_1_VERSION='1.1.0-gog2.3.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/layers_of_fear' ARCHIVE_BASE_0_NAME='gog_layers_of_fear_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='4bc354869662ee68938c8955f08dd276' ARCHIVE_BASE_0_SIZE='4000000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.3.0.4' UNITY3D_NAME='LOF' UNITY3D_PLUGINS=' libMouseCursorPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-legend-of-grimrock.sh0000755000000000000000000000502714471751340015637 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Legend of Grimrock # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='legend-of-grimrock' GAME_NAME='Legend of Grimrock' ARCHIVE_BASE_0_NAME='gog_legend_of_grimrock_2.1.0.5.sh' ARCHIVE_BASE_0_MD5='b63089766247484f5d2b214d924425f6' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.3.7-gog2.1.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/legend_of_grimrock' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' Grimrock.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Grimrock.bin.x86' CONTENT_GAME_DATA_FILES=' grimrock.dat grimrock.png' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN32='Grimrock.bin.x86' APP_MAIN_EXE_BIN64='Grimrock.bin.x86_64' APP_MAIN_ICON='grimrock.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' 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 libfreeimage.so.3 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libminizip.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libX11.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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-legend-of-keepers.sh0000755000000000000000000000510414471751340015454 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 contact@dotslashplay.it ### script_version=20231225.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ARCHIVE_BASE_0_NAME='legend_of_keepers_career_of_a_dungeon_manager_1_1_0_2_57134.sh' ARCHIVE_BASE_0_MD5='a1d7f09037caaa7212cfd8a61a992289' ARCHIVE_BASE_0_SIZE='1113810' ARCHIVE_BASE_0_VERSION='1.1.0.2-gog57134' ARCHIVE_BASE_0_URL='https://www.gog.com/game/legend_of_keepers_career_of_a_dungeon_master' ARCHIVE_BASE_DEMO_0_NAME='legend_of_keepers_prologue_0_9_2_1_44469.sh' ARCHIVE_BASE_DEMO_0_MD5='af73802b552219f834b53734b955906b' ARCHIVE_BASE_DEMO_0_SIZE='1012855' ARCHIVE_BASE_DEMO_0_VERSION='0.9.2.1-gog44469' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/legend_of_keepers_prologue' UNITY3D_NAME='LegendOfKeepers' UNITY3D_NAME_DEMO='LegendOfKeepersPrologue' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libEOSSDK-Linux-Shipping.so libfmodstudioL.so libfmodstudio.so libresonanceaudio.so libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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_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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-batman-1.sh0000755000000000000000000000442014471751340014504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Batman 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-batman-1' GAME_NAME='Lego Batman: The Videogame' ARCHIVE_BASE_0_NAME='setup_lego_batman_1.0_(18156).exe' ARCHIVE_BASE_0_MD5='4d77c482455866c160b0b17f88e9aff0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lego_batman_1.0_(18156)-1.bin' ARCHIVE_BASE_0_PART1_MD5='49153c984f14b57c846d20cc038d117a' ARCHIVE_BASE_0_SIZE='4500000' ARCHIVE_BASE_0_VERSION='1.0-gog18156' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_batman_the_videogame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe binkw32.dll language_setup.ini' CONTENT_GAME_DATA_FILES=' *.dat language_setup.png audio movies' CONTENT_DOC_DATA_FILES=' eula.rtf readme.rtf' APP_MAIN_EXE='legobatman.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-harry-potter-years-1-4.sh0000755000000000000000000000505714471751340017173 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Harry Potter: Years 1-4 # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-harry-potter-years-1-4' GAME_NAME='Lego Harry Potter: Years 1-4' ARCHIVE_BASE_0='setup_lego_harry_potter_1-4_1.0_(17966).exe' ARCHIVE_BASE_0_MD5='21ddbc82a225687a69044e9baee7109b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lego_harry_potter_1-4_1.0_(17966)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ab78edad26acef08eb3a656dfbdf476e' ARCHIVE_BASE_0_PART2='setup_lego_harry_potter_1-4_1.0_(17966)-2.bin' ARCHIVE_BASE_0_PART2_MD5='0ebb7b7a5772245258e53092c25a4708' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='1.0.0389-gog17966' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_harry_potter_years_14' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' legoharrypotter.exe language_setup.exe language_setup.ini language_setup.png' CONTENT_GAME_DATA_FILES=' game.dat game1.dat game2.dat game3.dat game4.dat game5.dat game6.dat' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' *' APP_MAIN_EXE='legoharrypotter.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lennas-inception.sh0000755000000000000000000001224214471751340015427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lenna's Inception # send your bug reports to contact@dotslashplay.it ### script_version=20241103.3 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='lennas-inception' GAME_NAME='Lennaʼs Inception' ARCHIVE_BASE_2_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_2_MD5='2eea96efe93f463688da6540a3904ce9' ARCHIVE_BASE_2_VERSION='1.1.8-itch' ARCHIVE_BASE_2_SIZE='301938' ARCHIVE_BASE_2_URL='https://tccoxon.itch.io/lennas-inception' ## ./play.it is only going to get support for archives sharing a same name with its 2.31 release, ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/539 #ARCHIVE_BASE_1_NAME='lennas-inception-linux-amd64-stable.zip' #ARCHIVE_BASE_1_MD5='5f7ff7b389777b00519144df1cc98cc9' #ARCHIVE_BASE_1_VERSION='1.1.5-itch.2020.11.22' #ARCHIVE_BASE_1_SIZE='310000' ## ./play.it is only going to get support for archives sharing a same name with its 2.31 release, ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/539 #ARCHIVE_BASE_0_NAME='lennas-inception-linux-amd64-stable.zip' #ARCHIVE_BASE_0_MD5='e701126a913c2c63c89e79875dd89e86' #ARCHIVE_BASE_0_VERSION='1.0.10-itch1' #ARCHIVE_BASE_0_SIZE='310000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' assets launch-config.json lib' CONTENT_DOC_MAIN_FILES=' COPYRIGHT.txt README.txt' APP_MAIN_TYPE='java' APP_MAIN_EXE='lib/libloader.jar' APP_MAIN_JAVA_OPTIONS='-Dsun.java2d.opengl=True -Djava.library.path=./lib -Xms1024m -Xmx3072m' APP_MAIN_ICON='icon.png' ## Work around the shipped binaries overuse of file descriptors APP_MAIN_PRERUN_BIN_SHIPPED=' # Work around the engine overuse of file descriptors ## 4096 is an arbitrary value, 4 times the default (1024), that seems to work for all setups. if ! ulimit -n 4096; then { printf "\\n\\033[1;33mWarning:\\033[0m\\n" printf "Your current shell interpreter has no support for ulimit -n.\\n" printf "This might lead to unending loading screens if the game engine hits the file descriptors use limit.\\n" printf "\\n" } > /dev/stderr fi ' # Since this game seems to be broken on OpenJDK ≥ 11, we build an extra package allowing to use the shipped OpenJDK 1.8 CONTENT_GAME_BIN_SHIPPED_FILES=' launch-config.json jre' PACKAGES_LIST=' PKG_MAIN PKG_BIN_SYSTEM PKG_BIN_SHIPPED' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped Java binaries' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 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 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libjpeg.so.62 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 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libxml2.so.2 libXrender.so.1 libxslt.so.1 libXtst.so.6 libXxf86vm.so.1 libz.so.1' # Extract game icon from the .jar archive SCRIPT_DEPS="${SCRIPT_DEPS:-} unzip" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Ensure the shipped java binary can be executed. chmod 755 'jre/bin/java' ## Extract game icon from the .jar archive. unzip -q -d . 'assets/lennasinception.jar' "$(icon_path 'APP_MAIN_ICON')" ) # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' ## Use shipped Java binary instead of system-provided one. game_exec_line() { cat <<- EOF ./jre/bin/java $APP_MAIN_JAVA_OPTIONS -jar "\$APP_EXE" "\$@" EOF } launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_MAIN' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_MAIN' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lieve-oma.sh0000755000000000000000000000473214471751340014044 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lieve Oma # send your bug reports to contact@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.7' GAME_ID='lieve-oma' GAME_NAME='Lieve Oma' ARCHIVE_BASE_0_NAME='Lieve Oma Linux Universal.zip' ARCHIVE_BASE_0_MD5='b33c1f38503a221ce82139a5435c3577' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vltmn.itch.io/lieve-oma' UNITY3D_NAME='Lieve Oma' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='Lieve Oma Linux Universal' ## Yes, .png, not a typo. Don’t ask. CONTENT_DOC_DATA_FILES=' README.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 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lilas-sky-ark.sh0000755000000000000000000000410614471751340014644 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lila's Sky Ark # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='lilas-sky-ark' GAME_NAME='Lilaʼs Sky Ark' ARCHIVE_BASE_0='lila_s_sky_ark_1_0_4_1_61980.sh' ARCHIVE_BASE_0_MD5='25500814b0f4031829004488aca809ba' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lilas_sky_ark' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' SkyArk.x86_64' CONTENT_GAME_DATA_FILES=' SkyArk.pck' APP_MAIN_EXE='SkyArk.x86_64' APP_MAIN_ICON='../support/icon.png' 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 libGL.so.1 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-limbo.sh0000755000000000000000000000451114471751340013263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Limbo # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='limbo' GAME_NAME='Limbo' ARCHIVE_BASE_1_NAME='Limbo-Linux-2014-06-18.zip' ARCHIVE_BASE_1_MD5='5bb49941722ff6d4d6a494e064fd197e' ARCHIVE_BASE_1_SIZE='190000' ARCHIVE_BASE_1_VERSION='1.3-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/limbo' ARCHIVE_BASE_0_NAME='Limbo-Linux-2014-06-18.sh' ARCHIVE_BASE_0_MD5='9b453abcb859c31cc645a7207de08329' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.3-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' limbo' CONTENT_GAME_DATA_FILES=' data settings.txt limbo.png *.pkg' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_FILES=' settings.txt' APP_MAIN_EXE='limbo' APP_MAIN_ICON='limbo.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 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" # Extract game data archive_extraction 'SOURCE_ARCHIVE' case "$(current_archive)" in ('ARCHIVE_BASE_1') ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Limbo-Linux-2014-06-18.sh" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-litil-divil.sh0000755000000000000000000000476214471751340014413 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Litil Divil # send your bug reports to contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='litil-divil' GAME_NAME='Litil Divil' ARCHIVE_BASE_1_NAME='gog_litil_divil_2.0.0.22.sh' ARCHIVE_BASE_1_MD5='89a1a0cedbf13d8e6aed285780b69def' ARCHIVE_BASE_1_SIZE='45000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_1_URL='https://www.gog.com/game/litil_divil' ARCHIVE_BASE_0_NAME='gog_litil_divil_2.0.0.21.sh' ARCHIVE_BASE_0_MD5='1258be406cb4b40c912c4846df2ac92b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='44000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.21' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' data gfx *.cfg *.exe' CONTENT_DOC_MAIN_FILES=' config.doc' CONTENT_DOC0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/../docs" CONTENT_DOC0_MAIN_FILES=' *.txt *.pdf' USER_PERSISTENT_FILES=' divils.cfg' GAME_IMAGE='data' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='data/divil.exe' APP_MAIN_OPTIONS='c:' APP_MAIN_ICON='../support/icon.png' ## Run the game binary from the CD-ROM directory. APP_MAIN_PRERUN='# Run the game binary from the CD-ROM directory APP_EXE=$(basename "$APP_EXE") ' APP_MAIN_DOSBOX_PRERUN=' d: ' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='config.exe' APP_CONFIG_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-big-adventure-1.sh0000755000000000000000000000533114471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Dominique Derrier # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Little Big Adventure 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-1' GAME_NAME='Little Big Adventure' ARCHIVE_BASE_1='setup_little_big_adventure_1.0_(28186).exe' ARCHIVE_BASE_1_MD5='43d4926dc8a56a95800e746ac9797201' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='510000' ARCHIVE_BASE_1_VERSION='1.0-gog28186' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure' ARCHIVE_BASE_0='setup_lba_2.1.0.22.exe' ARCHIVE_BASE_0_MD5='c40177522adcbe50ea52590be57045f8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='510000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.22' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' VOX SETUP.LST LBA.DAT LBA.GOG SETSOUND.BAT SAMPLE.* *.CFG *.DLL *.EXE *.HQR *.INI' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA.DAT' USER_PERSISTENT_FILES=' *.CFG *.INI *.LBA' APP_MAIN_EXE='RELENT.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658971.ICO' APP_MAIN_ICON_0='GOGGAME-1207658971.ICO' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658971.ICO' APP_SETUP_ICON_0='GOGGAME-1207658971.ICO' # Ensure easy upgrade from packages generated with pre-20200210.3 scripts PKG_MAIN_PROVIDES="$PKG_MAIN_PROVIDES little-big-adventure-1-data" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-big-adventure-2.sh0000755000000000000000000000556314471751340016357 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Andrey Butirsky # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Little Big Adventure 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-2' GAME_NAME='Little Big Adventure 2' ARCHIVE_BASE_1='setup_little_big_adventure_2_1.0_(28192).exe' ARCHIVE_BASE_1_MD5='80b95bb8faa2353284b321748021da16' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='750000' ARCHIVE_BASE_1_VERSION='1.0-gog28192' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure_2' ARCHIVE_BASE_0='setup_lba2_2.1.0.8.exe' ARCHIVE_BASE_0_MD5='9909163b7285bd37417f6d3c1ccfa3ee' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.8' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' DRIVERS LBA2.DAT LBA2.GOG LBA2.OGG *.BAT *.CFG *.DOS *.EXE *.INI *.HQR *.ILE *.OBL' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA2.DAT' USER_PERSISTENT_FILES=' *.CFG' USER_PERSISTENT_DIRECTORIES=' SAVE' APP_MAIN_EXE='LBA2.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658974.ICO' APP_MAIN_ICON_0='GOGGAME-1207658974.ICO' ## Force application type, as LBA2.EXE is detected as a Windows executable. APP_MAIN_TYPE='dosbox' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658974.ICO' APP_SETUP_ICON_0='GOGGAME-1207658974.ICO' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . # Store voices outside of the game image sed_pattern='s/\(FlagKeepVoice:\) OFF/\1 ON/' sed --in-place "$sed_pattern" 'LBA2.CFG' ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-bug.sh0000755000000000000000000000405414471751340014233 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Bug # send your bug reports to contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='little-bug' GAME_NAME='Little Bug' ARCHIVE_BASE_0_NAME='little_bug_v1_1_4_26003.sh' ARCHIVE_BASE_0_MD5='3bbc574d9b8a0279cb023184cb81dd63' ARCHIVE_BASE_0_SIZE='662802' ARCHIVE_BASE_0_VERSION='1.1.4-gog26003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_bug' UNITY3D_NAME='Little Bug' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='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 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-little-nightmares-1.sh0000755000000000000000000000405014471751340015751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Nightmares 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240403.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='little-nightmares-1' GAME_NAME='Little Nightmares 1' ARCHIVE_BASE_0_NAME='setup_little_nightmares_1.0.43.1_(18471).exe' ARCHIVE_BASE_0_MD5='6e1ac1107650aeb03abc17cf0e614e4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_little_nightmares_1.0.43.1_(18471)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0732121bf0da7db6dc6f5e5a3bc8705b' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='1.0.43.1-gog18471' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_nightmares' UNREALENGINE4_NAME='atlas' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=" ${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/littlenightmares.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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lo-fi-room.sh0000755000000000000000000000426114471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lo-Fi Room # send your bug reports to contact@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lo-fi-room' GAME_NAME='Lo-Fi Room' ARCHIVE_BASE_0_NAME='lofiroom.tar.xz' ARCHIVE_BASE_0_MD5='c9f0f9d43e7ca81ec372784692a60432' ARCHIVE_BASE_0_SIZE='138022' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bearmask.itch.io/lofi-room' ## Despite the .tar.xz file extension, this is actually a gz-compressed tarball. ARCHIVE_BASE_0_TYPE='tar.gz' UNITY3D_NAME='lofi_room_linux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linux' 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=' 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' ## TODO: Forcing a qwerty keyboard layout might be useful. # 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-location-withheld.sh0000755000000000000000000000407114471751340015600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Location Withheld # send your bug reports to contact@dotslashplay.it ### script_version=20230803.3 GAME_ID='location-withheld' GAME_NAME='Location Withheld' ARCHIVE_BASE_0='Location Withheld.rar' ARCHIVE_BASE_0_MD5='c3e0eb2553b736cdf29aa9a9455b3f43' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bryce-bucher.itch.io/location-withheld' UNITY3D_NAME='Location Withheld' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" Mono ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bryce Bucher/Location Withheld' APP_MAIN_EXE="${UNITY3D_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 target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lonesome-village.sh0000755000000000000000000000344714471751340015432 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lonesome Village # send your bug reports to contact@dotslashplay.it ### script_version=20231018.4 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lonesome-village' GAME_NAME='Lonesome Village' ARCHIVE_BASE_0_NAME='setup_lonesome_village_1.0_(59798).exe' ARCHIVE_BASE_0_MD5='85470a092929916f3ed0917b5eca2f41' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4469668' ARCHIVE_BASE_0_VERSION='1.0.1.6-gog59798' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lonesome_village' UNITY3D_NAME='lonesome village' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ogre Pixel/Lonesome Village' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-long-live-the-queen.sh0000755000000000000000000000610114471751340015743 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Long Live the Queen # send your bug reports to contact@dotslashplay.it ### script_version=20231114.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='long-live-the-queen' GAME_NAME='Long Live the Queen' ARCHIVE_BASE_0_NAME='gog_long_live_the_queen_2.4.0.11.sh' ARCHIVE_BASE_0_MD5='654ccbbdde2071c4f13b5f80378582c2' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.3.23.4-gog2.4.0.11' ARCHIVE_BASE_0_URL='https://www.gog.com/game/long_live_the_queen' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86/lib" CONTENT_LIBS_BIN_FILES=' libavcodec.so.52 libavformat.so.52 libavutil.so.50 libGLEW.so.1.5 libpython2.6.so.1.0 libswscale.so.0' CONTENT_GAME_BIN_FILES=' lib/linux-x86/lib/python2.6 lib/linux-x86/python.real' CONTENT_GAME_DATA_FILES=' common game renpy LongLiveTheQueen.py' CONTENT_FONTS_PATH="${CONTENT_PATH_DEFAULT}/game" CONTENT_FONTS_FILES=' DejaVuSans-Oblique.ttf' CONTENT_DOC_DATA_FILES=' LICENSE.txt' APP_MAIN_EXE='lib/linux-x86/python.real' APP_MAIN_OPTIONS='-OO LongLiveTheQueen.py' APP_MAIN_ICON='../support/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libEGL.so.1 libfreetype.so.6 libfribidi.so.0 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libSDL_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # Link fonts to the game directory, or the engine would fail to find them. PATH_FONTS="$(option_value 'prefix')/share/fonts/truetype/$(game_id)" game_data_path="$(package_path 'PKG_DATA')$(path_game_data)/game" mkdir --parents "$game_data_path" ln --symbolic \ "${PATH_FONTS}/DejaVuSans-Oblique.ttf" \ "$game_data_path" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Add required execution permissions chmod 755 'lib/linux-x86/python.real' ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion 'FONTS' 'PKG_DATA' "$PATH_FONTS" content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lords-of-xulima.sh0000755000000000000000000000552214471751340015206 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Lords of Xulima # send your bug reports to contact@dotslashplay.it ### script_version=20240504.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lords-of-xulima' GAME_NAME='Lords of Xulima' ARCHIVE_BASE_0_NAME='gog_lords_of_xulima_2.3.0.9.sh' ARCHIVE_BASE_0_MD5='480abf8d929da622eacd69595a4ebc80' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2.1.1-gog2.3.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lords_of_xulima' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/Linux/lib" CONTENT_LIBS_BIN_FILES=' libmonoboehm-2.0.a libmonoboehm-2.0.so.1 libmono-profiler-aot.so.0.0.0 libmono-profiler-cov.so.0.0.0 libmono-profiler-iomap.so.0.0.0 libmono-profiler-log.so.0.0.0 libmonosgen-2.0.so.1 libmonosgen-2.0.so.1.0.0 libMonoPosixHelper.so libMonoSupportW.so' CONTENT_LIBS0_BIN_FILES=' libbass.so' CONTENT_GAME_BIN_FILES=' Linux/etc/mono Linux/lib/mono *.conf *.config *.cpp *.dll *.exe *.hqx *.manifest LOXLinux MusicPlayer' CONTENT_FONTS_DATA_FILES=' FoL_BB_RU.ttf FoL_CB_RU.ttf FoL_MB_RU.ttf LOXBold.ttf LOXCondensed.ttf LOXMedium.ttf WenQuanYiZenHei.ttf' CONTENT_GAME_DATA_FILES=' DXApp_* SOL_* Cinematic CSteamworks.bundle Manual Resources *.dx* *.fx *.glsl *.icns *.jx* *.sqlite *.suo *.txt SOL' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Lords of Xulima' ## TODO: Check if the system-provided Mono runtime could be used instead of the shipped binaries. APP_MAIN_EXE='LOXLinux' APP_MAIN_OPTIONS='--gc=sgen' APP_MAIN_ICON='LoX.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_LIBRARIES=' libc.so.6 libdl.so.2 libgdiplus.so libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 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 ## Apply common workarounds for Mono games. 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-lorelai.sh0000755000000000000000000000436214471751340013614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lorelai # send your bug reports to contact@dotslashplay.it ### script_version=20240707.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lorelai' GAME_NAME='Lorelai' ARCHIVE_BASE_0_NAME='setup_lorelai_1.1.0a_(40070).exe' ARCHIVE_BASE_0_MD5='41931b22bd91c8a61835f1ab5b317b38' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lorelai_1.1.0a_(40070)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3c93e5c60612965bd44ddc2480c57987' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1.0a-gog40070' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lorelai' UNITY3D_NAME='lorelai' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/sharedassets*.assets*" ## TODO: Check if the "ost" directory is required. CONTENT_GAME0_DATA_FILES=' ost lorelai_icon2.ico' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Harvester Games/Lorelai' APP_MAIN_ICON='lorelai_icon2.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_ASSETS_ID" 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-loria.sh0000755000000000000000000000570114471751340013271 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 contact@dotslashplay.it ### script_version=20241107.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' ## Work around a failure to detect the screen resolution on first launch APP_MAIN_PRERUN=' # Work around a failure to detect the screen resolution on first launch unity3d_prefs="${HOME}/.config/unity3d/Loria/Loria/prefs" if [ ! -e "$unity3d_prefs" ]; then mkdir --parents "$(dirname "$unity3d_prefs")" cat > "$unity3d_prefs" <<- EOF 0 1024 768 EOF 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 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 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-lost-ruins.sh0000755000000000000000000000356714471751340014312 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lost Ruins # send your bug reports to contact@dotslashplay.it ### script_version=20231219.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lost-ruins' GAME_NAME='Lost Ruins' ARCHIVE_BASE_0_NAME='lost_ruins_1_0_9a_48364.sh' ARCHIVE_BASE_0_MD5='ae4fabbe98718fad2c02712e4104ee6b' ARCHIVE_BASE_0_SIZE='497160' ARCHIVE_BASE_0_VERSION='1.0.9a-gog48364' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lost_ruins' UNITY3D_NAME='LostRuins' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lost-words.sh0000755000000000000000000000464514471751340014306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Lost Words: Beyond the Page # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='lost-words' GAME_NAME='Lost Words: Beyond the Page' ARCHIVE_BASE_0='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551).exe' ARCHIVE_BASE_0_MD5='0c36cfe013e3196442d77a128a38aa9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c632a4a1f22c8f2587e1d224547f00eb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='2021.04.23.8-gog46551' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/lost_words_beyond_the_page' UNITY3D_NAME='lost words' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fourth State/Lost Words' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lovers-in-a-dangerous-spacetime.sh0000755000000000000000000000547714471751340020266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Lovers in a Dangerous Spacetime # send your bug reports to contact@dotslashplay.it ### script_version=20230105.2 GAME_ID='lovers-in-a-dangerous-spacetime' GAME_NAME='Lovers in a Dangerous Spacetime' UNITY3D_NAME='LoversInADangerousSpacetime' ARCHIVE_BASE_1='LoversInADangerousSpacetime-1.4.5_Linux.zip' ARCHIVE_BASE_1_MD5='67b6bc5ba5590fb50e95996b267f8c60' ARCHIVE_BASE_1_SIZE='880000' ARCHIVE_BASE_1_VERSION='1.4.5-humble180427' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/lovers-in-a-dangerous-spacetime' ARCHIVE_BASE_0='LoversInADangerousSpacetime-1.4.4_Linux.zip' ARCHIVE_BASE_0_MD5='38927a73e1fe84620ebc876f8f039adb' ARCHIVE_BASE_0_SIZE='880000' ARCHIVE_BASE_0_VERSION='1.4.4-humble160908' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lumini.sh0000755000000000000000000000653314471751340013464 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Lumini # send your bug reports to contact@dotslashplay.it ### script_version=20231103.7 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lumini' GAME_NAME='Lumini' ## This game is no longer available for sale from humblebundle.com. ARCHIVE_BASE_0_NAME='Lumini_DRMfree_Linux.zip' ARCHIVE_BASE_0_MD5='7d70f1824be9ab701cf9d52fb12a039a' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='lumini' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' SavesDir' USER_PERSISTENT_DIRECTORIES=' SavesDir' 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' 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Merge assets directories for the 32-bit and 64-bit builds. mkdir "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux64_Data/'* "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux32_Data/'* "$(unity3d_name)_Data" rm --recursive 'lumini_Linux64_Data' 'lumini_Linux32_Data' ## Rename the binaries. mv 'lumini_Linux64.x86_64' "$(unity3d_name).x86_64" mv 'lumini_Linux32.x86' "$(unity3d_name).x86" ## Delete files that are not used by the Linux build. rm \ "$(unity3d_name)_Data/Mono/"*/*.dll \ "$(unity3d_name)_Data/Mono/"*/*.dll.meta ## Delete duplicated libraries. rm \ "$(unity3d_name)_Data/Mono/"*/libfmod.so \ "$(unity3d_name)_Data/Mono/"*/libfmodstudio.so \ "$(unity3d_name)_Data/Mono/"*/ScreenSelector.so ## These directories must be deleted to prevent an error during the inclusion of Unity3D plugins. rm --recursive "$(unity3d_name)_Data/Plugins/"*.bundle/ ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lumino-city.sh0000755000000000000000000000365214471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lumino City # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lumino-city' GAME_NAME='Lumino City' ARCHIVE_BASE_0_NAME='setup_lumino_city_1.0_(21180).exe' ARCHIVE_BASE_0_MD5='32f0e9251c7936180321f30811bab8d9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog21180' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lumino_city' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air lumino city.exe' CONTENT_GAME_DATA_FILES=' assets luminocitysoundtrack meta-inf mimetype *.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/com.stateofplaygames.LuminoCity' APP_MAIN_EXE='lumino city.exe' APP_MAIN_ICON='goggame-1207667103.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" # 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-lumo.sh0000755000000000000000000000462714471751340013145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Lumo # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='lumo' GAME_NAME='Lumo' ARCHIVE_BASE_0_NAME='gog_lumo_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='76cf720f68446eca8d89dc58cc9c4f7b' ARCHIVE_BASE_0_SIZE='3328323' ARCHIVE_BASE_0_VERSION='1.7018-gog2.3.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lumo' UNITY3D_NAME='Lumo' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam plugins are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' USER_PERSISTENT_DIRECTORIES=' tdi' 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" # 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-luna-the-shadow-dust.sh0000755000000000000000000000531114471751340016135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Luna The Shadow Dust # send your bug reports to contact@dotslashplay.it ### script_version=20231018.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='luna-the-shadow-dust' GAME_NAME='LUNA The Shadow Dust' ARCHIVE_BASE_0_NAME='luna_the_shadow_dust_1_0_2_36448.sh' ARCHIVE_BASE_0_MD5='394463d5b600dbf8fe0619d5ffe944f1' ARCHIVE_BASE_0_SIZE='789052' ARCHIVE_BASE_0_VERSION='1.0.2-gog36448' ARCHIVE_BASE_0_URL='https://www.gog.com/game/luna_the_shadow_dust' UNITY3D_NAME='Luna' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when the Wayland backend of SDL is used, ## even when forcing the use of system SDL. 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 ' ## PKG_BIN64 must be listed before PKG_BIN32, ## because some 64-bit plugins are included at the root of the Plugins directory. 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 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" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-luna.sh0000755000000000000000000000320114471751340013113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Luna # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='luna' GAME_NAME='Luna' ARCHIVE_BASE_0_NAME='Luna.zip' ARCHIVE_BASE_0_MD5='05dbd9bf3b74d53159fa41bdbc7c26d7' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://funomena.itch.io/luna' UNITY3D_NAME='Luna' CONTENT_PATH_DEFAULT='Luna' ## TODO: Use persistent storage for saved games and settings. 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-lynn-the-girl-drawn-on-puzzles.sh0000755000000000000000000000353414471751340020113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lynn, The Girl Drawn On Puzzles # send your bug reports to contact@dotslashplay.it ### script_version=20231019.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lynn-the-girl-drawn-on-puzzles' GAME_NAME='Lynn, The Girl Drawn On Puzzles' ARCHIVE_BASE_0_NAME='setup_lynn__the_girl_drawn_on_puzzles_1.0.01_(64bit)_(66351).exe' ARCHIVE_BASE_0_MD5='2bf80a446117e86f15a95b74612dd7c3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='945180' ARCHIVE_BASE_0_VERSION='1.0.01-gog66351' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lynn_the_girl_drawn_on_puzzles' UNITY3D_NAME='lynn' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/boing/lynn' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mable-and-the-wood.sh0000755000000000000000000000417414471751340015532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mable and the Wood # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='mable-and-the-wood' GAME_NAME='Mable & the Wood' ARCHIVE_BASE_0='mable_the_wood_1_7_37606.sh' ARCHIVE_BASE_0_MD5='d88e40a5927c67c3974becd19d64c940' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.7-gog37606' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mable_the_wood' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Mable_PC' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/config.ini' APP_MAIN_EXE='Mable_PC' APP_MAIN_ICON='assets/icon.png' 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 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-man-o-war-corsair.sh0000755000000000000000000001172214471751340015421 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Man O' War: Corsair # send your bug reports to contact@dotslashplay.it ### script_version=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='man-o-war-corsair' GAME_NAME='Man Oʼ War: Corsair - Warhammer Naval Battles' ARCHIVE_BASE_1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991).exe' ARCHIVE_BASE_1_MD5='c0b70c63edcc3ca8d8209a9ccb7c9d9e' ARCHIVE_BASE_1_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-1.bin' ARCHIVE_BASE_1_PART1_MD5='69c15c6e3b8238b585c8760327756ab7' ARCHIVE_BASE_1_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-2.bin' ARCHIVE_BASE_1_PART2_MD5='31aa85d6f8c39625e0dfac46b82928b5' ARCHIVE_BASE_1_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-3.bin' ARCHIVE_BASE_1_PART3_MD5='1676e6583b9331b9ba7ad029e4009a46' ARCHIVE_BASE_1_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-4.bin' ARCHIVE_BASE_1_PART4_MD5='9c0637c0277adea7705ef713e924a7ac' ARCHIVE_BASE_1_SIZE='30000000' ARCHIVE_BASE_1_VERSION='1.4.4-gog38991' ARCHIVE_BASE_1_URL='https://www.gog.com/game/man_o_war_corsair' ARCHIVE_BASE_0_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576).exe' ARCHIVE_BASE_0_MD5='296429ab49c28df62ff38235564e36e8' ARCHIVE_BASE_0_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c3b24d21c951f6ad9b7699eda024de1' ARCHIVE_BASE_0_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-2.bin' ARCHIVE_BASE_0_PART2_MD5='516a671f6a45d9c03e29f13d51271a78' ARCHIVE_BASE_0_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-3.bin' ARCHIVE_BASE_0_PART3_MD5='38c58a508879661063ca5e9bbea541ab' ARCHIVE_BASE_0_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-4.bin' ARCHIVE_BASE_0_PART4_MD5='1f02de3d92681a080808446636116c6c' ARCHIVE_BASE_0_SIZE='30000000' ARCHIVE_BASE_0_VERSION='1.4.2-gog29576' UNITY3D_NAME='manowarcorsair' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MODELS_LAND_FILES=' mowdata/landmodels-*' CONTENT_GAME_MODELS_FILES=' mowdata/charactermodels-* mowdata/shipmodels-* mowdata/flyermodels* mowdata/seamonstermodels*' CONTENT_GAME_TERRAIN1_FILES=' mowdata/terrain-top* mowdata/terrain-mid*' CONTENT_GAME_TERRAIN2_FILES=' mowdata/terrain-bot* mowdata/terrainshaders*' CONTENT_GAME0_DATA_FILES=' mowdata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/EvilTwinArtworks/ManOWarCorsair' ## The single quote in the key name must be escaped twice. WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Evil Twin Artworks\Man O'"'\\''"' War: Corsair' APP_MAIN_OPTIONS='-force-opengl' PACKAGES_LIST='PKG_BIN PKG_MODELS_LAND PKG_MODELS PKG_TERRAIN1 PKG_TERRAIN2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MODELS_ID="${PKG_DATA_ID}-models" PKG_MODELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - models" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_MODELS_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_PROVIDES=' man-o-war-corsair-models' PKG_MODELS_LAND_ID="${PKG_MODELS_ID}-land" PKG_MODELS_LAND_DESCRIPTION="$PKG_MODELS_DESCRIPTION - land" PKG_MODELS_DEPS="${PKG_MODELS_DEPS:-} $PKG_MODELS_LAND_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_LAND_PROVIDES=' man-o-war-corsair-models-land' PKG_TERRAIN_ID="${PKG_DATA_ID}-terrain" PKG_TERRAIN1_ID="${PKG_TERRAIN_ID}-1" PKG_TERRAIN2_ID="${PKG_TERRAIN_ID}-2" PKG_TERRAIN_DESCRIPTION='terrain' PKG_TERRAIN1_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 1" PKG_TERRAIN2_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_TERRAIN1_ID $PKG_TERRAIN2_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_TERRAIN1_PROVIDES=' man-o-war-corsair-terrain-1' PKG_TERRAIN2_PROVIDES=' man-o-war-corsair-terrain-2' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-maniac-mansion.sh0000755000000000000000000000340314471751340015052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Maniac Mansion # send your bug reports to contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='maniac-mansion' GAME_NAME='Maniac Mansion' ARCHIVE_BASE_0_NAME='maniac_mansion_en_gog_3_17899.sh' ARCHIVE_BASE_0_MD5='508b5f4e9b399ded9140dddfc3679a7e' ARCHIVE_BASE_0_SIZE='89000' ARCHIVE_BASE_0_VERSION='1.0-gog17899' ARCHIVE_BASE_0_URL='https://www.gog.com/game/maniac_mansion' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.lfl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='scumm:maniac' APP_MAIN_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-marble-age.sh0000755000000000000000000000354314471751340014161 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 contact@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-mark-of-the-ninja-expansions.sh0000755000000000000000000000474014471751340017561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja expansions: # - Special Edition # send your bug reports to contact@dotslashplay.it ### script_version=20230902.1 GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' EXPANSION_ID='special-edition' EXPANSION_NAME='Special Edition' ## This Linux build is no longer available for sale from GOG, they now only sell a Windows build. ARCHIVE_BASE_0='gog_mark_of_the_ninja_special_edition_dlc_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='bbce70b80932ec9c14fbedf0b6b33eb1' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' ninja-bin32' CONTENT_GAME_BIN64_FILES=' ninja-bin64' CONTENT_GAME_DATA_FILES=' dlc' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_PROVIDES=" $GAME_ID" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_DEPS="$PKG_DATA_ID ${GAME_ID}-libs ${GAME_ID}-data" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mark-of-the-ninja.sh0000755000000000000000000001044114471751340015367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja # send your bug reports to contact@dotslashplay.it ### script_version=20230905.1 GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' ## This Linux build is no longer available for sale from GOG, they now only sell a Windows build. ARCHIVE_BASE_GOG_0='gog_mark_of_the_ninja_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='126ded567b38580f574478fd994e3728' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='2200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ## This game is no longer available for sale from Humble Store. ARCHIVE_BASE_HUMBLE_0='markoftheninja_linux38_1380755375.zip' ARCHIVE_BASE_HUMBLE_0_MD5='7871a48068ef43e93916325eedd6913e' ARCHIVE_BASE_HUMBLE_0_SIZE='2300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130310' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin/lib32" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin/lib32" CONTENT_LIBS_LIBS32_FILES=' libfmodevent.so libfmodevent-4.44.14.so libfmodex.so libfmodex-4.44.14.so' CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmodevent64.so libfmodevent64-4.44.14.so libfmodex64.so libfmodex64-4.44.14.so' CONTENT_GAME_BIN32_FILES=' bin/ninja-bin32' CONTENT_GAME_BIN64_FILES=' bin/ninja-bin64' CONTENT_GAME_DATA_FILES=' data data-pc bin/*.xpm' CONTENT_DOC_DATA_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin" CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin" CONTENT_DOC_DATA_FILES=' motn_readme.txt' APP_MAIN_EXE_BIN32='bin/ninja-bin32' APP_MAIN_EXE_BIN64='bin/ninja-bin64' APP_MAIN_ICON='bin/motn_icon.xpm' ## Run the game binary from its parent directory APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' ## Work around a rendering failure with sdl12-compat ## cf. https://github.com/libsdl-org/sdl12-compat/issues/315 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around a rendering failure with sdl12-compat # cf. https://github.com/libsdl-org/sdl12-compat/issues/315 export SDL12COMPAT_OPENGL_SCALING=0 ' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_LIBS32 PKG_LIBS64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_LIBS_ID $PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-master-of-magic.sh0000755000000000000000000000510614471751340015135 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 contact@dotslashplay.it ### script_version=20240525.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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.0-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.0-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_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_MAIN_DEPS="$PKG_L10N_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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-master-of-orion-2.sh0000755000000000000000000000653414471751340015350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Master of Orion 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240624.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='master-of-orion-2' GAME_NAME='Master of Orion Ⅱ: 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_L10N_FILES=' *.BAT *.COM *.DLL *.SET 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 LANGUAGE.INI LOSERFIN.LBX MAINFREN.LBX MAINGERM.LBX MAINITAL.LBX MAINSPAN.LBX ORION2.EXE ORION95.EXE 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_GAME_MAIN_FILES=' *.AD *.BNK *.CAT *.DIG *.EXE *.INI *.LBX *.LST *.MDI *.MT *.OPL' 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_L10N PKG_MAIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_MAIN_DEPS="$PKG_L10N_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to uppercase. toupper . ) # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-medieval-dynasty.sh0000755000000000000000000000506614471751340015446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # Medieval Dynasty # send your bug reports to contact@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='medieval-dynasty' GAME_NAME='Medieval Dynasty' ## Archives ### Full game ARCHIVE_BASE_0_NAME='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182).exe' ARCHIVE_BASE_0_MD5='e1db5aac7e6bcde369e6d36f3cd76fcc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182)-1.bin' ARCHIVE_BASE_0_PART1_MD5='591f1146a80fd822511799fc6aeaf197' ARCHIVE_BASE_0_PART2='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c0728d685a4c914fff0716fef9e1f2c3' ARCHIVE_BASE_0_SIZE='10550253' ARCHIVE_BASE_0_VERSION='2.1.1.3-gog75182' ARCHIVE_BASE_0_URL='https://www.gog.com/game/medieval_dynasty' UNREALENGINE4_NAME='medieval_dynasty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_EDITOR_FILES=" ${UNREALENGINE4_NAME}/content/paks/medieval_dynasty-windowsnoeditor.pak ${UNREALENGINE4_NAME}/content/paks/medieval_dynasty-windowsnoeditor.sig" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON="app/goggame-1224667888.ico" PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_EDITOR PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_EDITOR_ID="${GAME_ID}-editor" PKG_EDITOR_DESCRIPTION='editor' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_EDITOR' PKG_BIN_ARCH='64' PKG_BIN_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" # 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-melodys-escape.sh0000755000000000000000000001266014471751340015077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Melody's Escape # send your bug reports to contact@dotslashplay.it ### script_version=20230209.1 GAME_ID='melodys-escape' GAME_NAME='Melodyʼs Escape' ARCHIVE_BASE_0='Melodys_Escape_Linux.zip' ARCHIVE_BASE_0_MD5='4d463482418c2d9917c56df3bbde6eea' ARCHIVE_BASE_0_SIZE='60000' ARCHIVE_BASE_0_VERSION='1.0-humble160601' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/melodys-escape' CONTENT_PATH_DEFAULT="Melody's Escape" CONTENT_GAME_MAIN_FILES=' BundledMusic Calibration Content Mods mono MelodysEscape.exe Bass.Net.Linux.dll FNA.dll FNA.dll.config MelodyEngine.dll MelodyReactor.dll tar-cs.dll' CONTENT_DOC_MAIN_FILES=' Licenses README.txt' APP_MAIN_EXE='MelodysEscape.exe' PKG_MAIN_DEPS='mono' 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.Runtime.Serialization.dll System.Security.dll System.Xml.dll' # Patch shipped libraries, to ensure they work with system-provided Mono SCRIPT_DEPS="$SCRIPT_DEPS xdelta3" # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/BassPlugins" CONTENT_LIBS0_LIBS32_FILES=' libbassflac.so' CONTENT_LIBS_LIBS64_PATH='lib64' CONTENT_LIBS_LIBS64_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS64_PATH='BassPlugins' CONTENT_LIBS0_LIBS64_FILES=' libbassflac.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' 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" # Check for presence of required library patches ARCHIVE_REQUIRED_LIB_PATCHES='melodys-escape_lib-patches.tar.gz' ARCHIVE_REQUIRED_LIB_PATCHES_MD5='6aee21776f44df0d927babcddfa3c386' ARCHIVE_REQUIRED_LIB_PATCHES_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_required \ 'ARCHIVE_LIB_PATCHES' \ 'ARCHIVE_REQUIRED_LIB_PATCHES' # Check for presence of optional 64-bit libraries ARCHIVE_OPTIONAL_LIB64='melodys-escape_lib64.tar.gz' ARCHIVE_OPTIONAL_LIB64_MD5='a77c6b3acd5910bd874a1ca4b7d0c53c' ARCHIVE_OPTIONAL_LIB64_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_optional \ 'ARCHIVE_LIB64' \ 'ARCHIVE_OPTIONAL_LIB64' if [ -z "$ARCHIVE_LIB64" ]; then # Exclude 64-bit libraries from the packages to generate # if the archive has not been provided. PACKAGES_LIST='PKG_MAIN PKG_LIBS32' fi # Link libbassflac.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='libbassflac.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_LIBS32')$(path_game_data)/BassPlugins/${file_name}" \ "$(package_path 'PKG_LIBS64')$(path_game_data)/BassPlugins/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' archive_extraction 'ARCHIVE_LIB_PATCHES' if [ -n "$ARCHIVE_LIB64" ]; then archive_extraction 'ARCHIVE_LIB64' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Patch shipped libraries, to ensure they work with system-provided Mono for file in 'MelodyReactor.dll' 'MelodysEscape.exe'; do patch="${PLAYIT_WORKDIR}/gamedata/${file}.delta" xdelta3 decode -f -s "$file" "$patch" "$file" rm "$patch" done ) # Include game icons ARCHIVE_OPTIONAL_ICONS='melodys-escape_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='656fce13728d399e557fd72c3a6bc244' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/melodys-escape/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' if [ -n "$ARCHIVE_ICONS" ]; then archive_extraction 'ARCHIVE_ICONS' content_inclusion 'ICONS' 'PKG_MAIN' "$(path_icons)" fi # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mesmer.sh0000755000000000000000000000504114471751340013450 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 contact@dotslashplay.it ### script_version=20230427.1 GAME_ID='mesmer' GAME_NAME='Mesmer' ARCHIVE_BASE_0='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' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 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_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mhakna-gramura-and-fairy-bell.sh0000755000000000000000000001106414471751340017641 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mhakna Gramura and Fairy Bell # send your bug reports to contact@dotslashplay.it ### script_version=20240622.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mhakna-gramura-and-fairy-bell' GAME_NAME='Mhakna Gramura and Fairy Bell' ARCHIVE_BASE_0_NAME='mhakna_gramura_and_fairy_bell_gog_1_26679.sh' ARCHIVE_BASE_0_MD5='f54f86a4496b682ef7e7fb251d50c350' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-gog.26679' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mhakna_gramura_and_fairy_bell' # System-provided Ren'Py can not be used with this game, as it causes a crash on launch: # # Full traceback: # File "/usr/share/games/renpy/renpy/bootstrap.py", line 359, in bootstrap # renpy.main.main() # File "/usr/share/games/renpy/renpy/main.py", line 459, in main # renpy.game.script.load_script() # sets renpy.game.script. # File "/usr/share/games/renpy/renpy/script.py", line 359, in load_script # self.load_appropriate_file(".rpyc", [ "_ren.py", ".rpy" ], dir, fn, initcode) # File "/usr/share/games/renpy/renpy/script.py", line 942, in load_appropriate_file # self.finish_load(stmts, initcode, filename=lastfn) # type: ignore # File "/usr/share/games/renpy/renpy/script.py", line 602, in finish_load # node.early_execute() # File "/usr/share/games/renpy/renpy/ast.py", line 880, in early_execute # renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) # File "/usr/share/games/renpy/renpy/python.py", line 1178, in py_exec_bytecode # exec(bytecode, globals, locals) # File "game/9i/investigation.rpy", line 2978, in # File "/usr/share/games/renpy/renpy/statements.py", line 259, in register # raise Exception("Unknown \"block\" argument value: {}".format(block)) # Exception: Unknown "block" argument value: auto CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if some shipped libraries could be dropped. CONTENT_LIBS_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libfreetype.so.6 libGLEW.so.1.7 libpng12.so.0 libpython2.7.so.1.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/fairybell lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/fairybell lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 fairybell.py' APP_MAIN_EXE_BIN64='lib/linux-x86_64/fairybell' APP_MAIN_EXE_BIN32='lib/linux-i686/fairybell' APP_MAIN_OPTIONS='-EO fairybell.py' 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 libGL.so.1 libGLU.so.1 libjpeg.so.62 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # 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-mimo.sh0000755000000000000000000000400014471751340013113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mimo # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mimo' GAME_NAME='Mimo' ARCHIVE_BASE_0_NAME='MIMO_Linux.zip' ARCHIVE_BASE_0_MD5='41fb3512abe6df5eae803faa0d1484c8' ARCHIVE_BASE_0_SIZE='292968' ARCHIVE_BASE_0_VERSION='1.01-itch1' ARCHIVE_BASE_0_URL='https://bebadboi.itch.io/mimo' UNITY3D_NAME='MIMO' UNITY3D_PLUGINS=' ScreenSelector.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='MIMO_Linux' 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=' 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' # 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-minecraft-4k.sh0000755000000000000000000000343514471751340014451 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minecraft 4K # send your bug reports to contact@dotslashplay.it ### script_version=20240404.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='minecraft-4k' GAME_NAME='Minecraft 4K' ARCHIVE_BASE_0_NAME='4K.exe' ARCHIVE_BASE_0_MD5='c566f5be102e1e1afc153690e47173e5' ARCHIVE_BASE_0_EXTRACTOR='unzip' ARCHIVE_BASE_0_SIZE='20' ARCHIVE_BASE_0_VERSION='1.0-archiveorg180513' ARCHIVE_BASE_0_URL='https://archive.org/details/Minecraft4K' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' M.class' APP_MAIN_TYPE='java' APP_MAIN_EXE='M' # 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 launcher target is not a .jar archive launcher_target_presence_check() { true ; } game_exec_line() { cat <<- 'EOF' java "$APP_EXE" "$@" EOF } # Extract game data ## Errors during the data extraction from the archive are expected, ## they should be ignored. archive_extraction_default || true # Include game data content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mini-metro.sh0000755000000000000000000000450214471751340014241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Alarig Le Lay set -o errexit ### # Mini Metro # send your bug reports to contact@dotslashplay.it ### script_version=20230726.2 GAME_ID='mini-metro' GAME_NAME='Mini Metro' ARCHIVE_BASE_1='MiniMetro-release-53-linux.tar.gz' ARCHIVE_BASE_1_MD5='67f52adb9cacd494bb79c76cfb36931d' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='53-humble1' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/mini-metro' ARCHIVE_BASE_0='MiniMetro-release-50a-linux.tar.gz' ARCHIVE_BASE_0_MD5='93577776ea002a6e0a8dc482486ff174' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='50a-humble1' UNITY3D_NAME='Mini Metro' UNITY3D_PLUGINS=' libminimetrox.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME} ${UNITY3D_NAME}_Data/MonoBleedingEdge UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" 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 libz.so.1' # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minit.sh0000755000000000000000000000424414471751340013304 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minit # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='minit' GAME_NAME='Minit' ARCHIVE_BASE_0='minit_linux.zip' ARCHIVE_BASE_0_MD5='9d27bfb55e24e0749637d6d97a8b3c71' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/minit' CONTENT_PATH_DEFAULT='minit' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' 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=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minute-of-islands.sh0000755000000000000000000000455214471751340015524 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Minute of Islands # send your bug reports to contact@dotslashplay.it ### script_version=20230716.2 GAME_ID='minute-of-islands' GAME_NAME='Minute of Islands' ARCHIVE_BASE_0='setup_minute_of_islands_1.0_(64bit)_(46572).exe' ARCHIVE_BASE_0_MD5='637bf2569af75d362de916fdf4ed570a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_minute_of_islands_1.0_(64bit)_(46572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='612f7cd620f9055a8f45b408b06a0a8e' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog46572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/minute_of_islands' UNITY3D_NAME='minute of islands' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Studio Fizbin/Minute of Islands' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.24' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mirrors-edge.sh0000755000000000000000000001011314471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Mirror's Edge # send your bug reports to contact@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='mirrors-edge' GAME_NAME='Mirrorʼs Edge' ARCHIVE_BASE_2_NAME='setup_mirrors_edge_1.01_jpfix_(41238).exe' ARCHIVE_BASE_2_MD5='58078b7594476adf72d58dc01e024327' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-1.bin' ARCHIVE_BASE_2_PART1_MD5='9a202aeca8eaa63d18c24fcdc62a7890' ARCHIVE_BASE_2_PART2_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-2.bin' ARCHIVE_BASE_2_PART2_MD5='3ee19c143f7d85e5393fc51d705ed61c' ARCHIVE_BASE_2_PART3_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-3.bin' ARCHIVE_BASE_2_PART3_MD5='2a961e5b6f2ce2ef42169c0a023e5c4c' ARCHIVE_BASE_2_SIZE='12000000' ARCHIVE_BASE_2_VERSION='1.01-gog41238' ARCHIVE_BASE_2_URL='https://www.gog.com/game/mirrors_edge' ARCHIVE_BASE_1_NAME='setup_mirrors_edge_1.01_(40566).exe' ARCHIVE_BASE_1_MD5='f0faffb76a2b46c3aca8342265a5f41b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_mirrors_edge_1.01_(40566)-1.bin' ARCHIVE_BASE_1_PART1_MD5='cdfea6d6412de910eae6748eeb6af54e' ARCHIVE_BASE_1_PART2_NAME='setup_mirrors_edge_1.01_(40566)-2.bin' ARCHIVE_BASE_1_PART2_MD5='6b4a66c9ac31c8c2f4e647957c64370a' ARCHIVE_BASE_1_PART3_NAME='setup_mirrors_edge_1.01_(40566)-3.bin' ARCHIVE_BASE_1_PART3_MD5='8529e17c8faa54be07219106ffe00774' ARCHIVE_BASE_1_SIZE='12000000' ARCHIVE_BASE_1_VERSION='1.01-gog40566' ARCHIVE_BASE_0_NAME='setup_mirrors_edge_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='89381d67169f5c6f8f300e172a64f99c' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_mirrors_edge_2.0.0.3-1.bin' ARCHIVE_BASE_0_PART1_MD5='406b99108e1edd17fc60435d1f2c27f9' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_mirrors_edge_2.0.0.3-2.bin' ARCHIVE_BASE_0_PART2_MD5='18f2bd62201904c8e98a4b805a90ab2d' ARCHIVE_BASE_0_PART2_TYPE='rar' ARCHIVE_BASE_0_SIZE='7700000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_L10N_FILES=' tdgame/localization tdgame/cookedpc/audio/??? tdgame/cookedpc/startup_???.upk tdgame/cookedpc/ts_loc_???.upk tdgame/cookedpc/ui/ui_fonts_final_???.upk tdgame/cookedpc/maps/sp??/*_loc_???.upk' CONTENT_GAME_MAPS_FILES=' tdgame/cookedpc/maps' CONTENT_GAME_DATA_FILES=' me_icon.ico tdgame' USER_PERSISTENT_DIRECTORIES=' tdgame/config tdgame/savefiles' ## TODO: Check if the inclusion of this library is required WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='binaries/mirrorsedge.exe' APP_MAIN_ICON='me_icon.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_MAPS PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_MAPS PKG_DATA' ## TODO: Check if the localizations package could be splitted into lang-specific ones PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_MAPS_ID="${GAME_ID}-maps" PKG_MAPS_DESCRIPTION='maps' 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-mobius.sh0000755000000000000000000000326414471751340013463 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mobius # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mobius' GAME_NAME='Mobius' ARCHIVE_BASE_0_NAME='Mobius v1.1.zip' ARCHIVE_BASE_0_MD5='d1d9ddf376bddb431f7d11d21b2de6e7' ARCHIVE_BASE_0_SIZE='70000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.02.17' ARCHIVE_BASE_0_URL='https://papercookies.itch.io/mobius' UNITY3D_NAME='Mobius' CONTENT_PATH_DEFAULT='Mobius v1.1' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Adam Pype\Mobius' 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-momodora-reverie-under-the-moonlight.sh0000755000000000000000000000542714471751340021333 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Momodora: Reverie Under the Moonlight # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='momodora-reverie-under-the-moonlight' GAME_NAME='Momodora: Reverie Under the Moonlight' ARCHIVE_BASE_2='momodora_reverie_under_the_moonlight_1_063_43451.sh' ARCHIVE_BASE_2_MD5='b10b3d929d6ccac6249581cefcc43285' ARCHIVE_BASE_2_SIZE='330000' ARCHIVE_BASE_2_VERSION='1.063-gog43451' ARCHIVE_BASE_2_URL='https://www.gog.com/game/momodora_reverie_under_the_moonlight' ARCHIVE_BASE_1='momodora_reverie_under_the_moonlight_1_062_24682.sh' ARCHIVE_BASE_1_MD5='9da233f084d0a86e4068ca90c89e4f05' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='1.062-gog24682' ARCHIVE_BASE_0='momodora_reverie_under_the_moonlight_en_20180418_20149.sh' ARCHIVE_BASE_0_MD5='5ec0d0e8475ced69fbaf3881652d78c1' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.02a-gog20149' CONTENT_PATH_DEFAULT='data/noarch/game/GameFiles' CONTENT_GAME_BIN_FILES=' MomodoraRUtM' CONTENT_GAME_DATA_FILES=' assets' CONTENT_DOC_DATA_PATH='data/noarch/game' CONTENT_DOC_DATA_FILES=' Installation Notes.pdf Update.txt' USER_PERSISTENT_FILES=' assets/*.ini' APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='MomodoraRUtM' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mon-cuties-for-all.sh0000755000000000000000000000350714471751340015602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mon-cuties for All # send your bug reports to contact@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mon-cuties-for-all' GAME_NAME='Mon-cuties for All' ARCHIVE_BASE_0_NAME='Mon-cuties-0.5-pc.zip' ARCHIVE_BASE_0_MD5='5100ee55608ea481ee820e12f6bda4c9' ARCHIVE_BASE_0_SIZE='440000' ARCHIVE_BASE_0_VERSION='0.5-itch1' ARCHIVE_BASE_0_URL='https://reineworks.itch.io/moncuties-for-all' CONTENT_PATH_DEFAULT='Mon-cuties-0.5-pc/game' CONTENT_GAME_MAIN_FILES=' cache gui main sound archive.rpa' CONTENT_DOC_MAIN_PATH="${CONTENT_PATH_DEFAULT}/.." CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../Mon-cuties.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} mon-cuties-for-all-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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-monad.sh0000755000000000000000000000323314471751340013257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monad # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monad' GAME_NAME='Monad' ARCHIVE_BASE_0_NAME='monad-win64.zip' ARCHIVE_BASE_0_MD5='43f7b632cbd1d622859305b4b7d4839e' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.07.31' ARCHIVE_BASE_0_URL='https://shinyogre.itch.io/monad' CONTENT_PATH_DEFAULT='monad-win' CONTENT_GAME_MAIN_FILES=' monad.exe game.ico *.dll' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='monad.exe' APP_MAIN_ICON='game.ico' PKG_MAIN_ARCH='64' # 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-monster-prom-expansions.sh0000755000000000000000000000331114471751340017005 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monster Prom expansions: # - Second Term # send your bug reports to contact@dotslashplay.it ### script_version=20241210.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monster-prom' GAME_NAME='Monster Prom' EXPANSION_ID_SECOND='second-term' EXPANSION_NAME_SECOND='Second Term' ARCHIVE_BASE_SECOND_0_NAME='monster_prom_second_term_v6_8b_71317.sh' ARCHIVE_BASE_SECOND_0_MD5='a27aaf8e07389026802946206a9bcd6c' ARCHIVE_BASE_SECOND_0_SIZE='1078' ARCHIVE_BASE_SECOND_0_VERSION='6.8b-gog71317' ARCHIVE_BASE_SECOND_0_URL='https://www.gog.com/game/monster_prom_second_term' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' MonsterProm_Data/globalgamemanagerd' 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-monster-prom.sh0000755000000000000000000001104514471751340014623 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Monster Prom # send your bug reports to contact@dotslashplay.it ### script_version=20241210.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monster-prom' GAME_NAME='Monster Prom' ARCHIVE_BASE_12_NAME='monster_prom_v6_8b_71317.sh' ARCHIVE_BASE_12_MD5='cff6c702d4b3f331f42f34f574fbb25a' ARCHIVE_BASE_12_SIZE='3005768' ARCHIVE_BASE_12_VERSION='6.8b-gog71317' ARCHIVE_BASE_12_URL='https://www.gog.com/game/monster_prom' ARCHIVE_BASE_11_NAME='monster_prom_6_4b_53339.sh' ARCHIVE_BASE_11_MD5='27e03a4921ee67aa1284e9de2c5d2160' ARCHIVE_BASE_11_SIZE='3100000' ARCHIVE_BASE_11_VERSION='6.4b-gog53339' ARCHIVE_BASE_10_NAME='monster_prom_5_16_45016.sh' ARCHIVE_BASE_10_MD5='58e9029453111916107341867d2c8327' ARCHIVE_BASE_10_SIZE='3000000' ARCHIVE_BASE_10_VERSION='5.16-gog45016' ARCHIVE_BASE_9_NAME='monster_prom_5_7_42255.sh' ARCHIVE_BASE_9_MD5='59a60a6941773d48cca441501507209d' ARCHIVE_BASE_9_SIZE='2500000' ARCHIVE_BASE_9_VERSION='5.7-gog42255' ARCHIVE_BASE_8_NAME='monster_prom_4_80_36450.sh' ARCHIVE_BASE_8_MD5='5847214b0bcf816d03e165a16d0c19c4' ARCHIVE_BASE_8_SIZE='2400000' ARCHIVE_BASE_8_VERSION='4.80-gog36450' ARCHIVE_BASE_7_NAME='monster_prom_4_79_36279.sh' ARCHIVE_BASE_7_MD5='c1d893075a21af380031c953e856bd7c' ARCHIVE_BASE_7_SIZE='2400000' ARCHIVE_BASE_7_VERSION='4.79-gog36279' ARCHIVE_BASE_6_NAME='monster_prom_4_77_36137.sh' ARCHIVE_BASE_6_MD5='87a05cfec3a314c4a6ea1047154958cf' ARCHIVE_BASE_6_SIZE='2400000' ARCHIVE_BASE_6_VERSION='4.77-gog36137' ARCHIVE_BASE_5_NAME='monster_prom_4_68_35225.sh' ARCHIVE_BASE_5_MD5='c48257dadd81ac089b10567733beea48' ARCHIVE_BASE_5_SIZE='2200000' ARCHIVE_BASE_5_VERSION='4.68-gog35225' ARCHIVE_BASE_4_NAME='monster_prom_4_61_33782.sh' ARCHIVE_BASE_4_MD5='0ed680d8cf93810c80f2c2f02ce16ae6' ARCHIVE_BASE_4_SIZE='2200000' ARCHIVE_BASE_4_VERSION='4.61-gog33782' ARCHIVE_BASE_3_NAME='monster_prom_4_57_33526.sh' ARCHIVE_BASE_3_MD5='62a6e7d2bf6dc9ede39ec014cd73aaf4' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='4.57-gog33526' ARCHIVE_BASE_2_NAME='monster_prom_4_44_30880.sh' ARCHIVE_BASE_2_MD5='feea2789e951c992e714a0d01afb7348' ARCHIVE_BASE_2_SIZE='2000000' ARCHIVE_BASE_2_VERSION='4.44-gog30880' ARCHIVE_BASE_1_NAME='monster_prom_4_38b_30736.sh' ARCHIVE_BASE_1_MD5='4dc9b48a90220ecc0fcd91e44f640320' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_VERSION='4.38b-gog30736' ARCHIVE_BASE_0_NAME='monster_prom_2_44_26055.sh' ARCHIVE_BASE_0_MD5='c558e2ba0540ba6651a35a3a5e2a146b' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.44-gog26055' UNITY3D_NAME='MonsterProm' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_DATA_FILES=' UserData' USER_PERSISTENT_DIRECTORIES=' UserData' 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-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_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-monster-sanctuary.sh0000755000000000000000000000426714471751340015667 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monster Sanctuary # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='monster-sanctuary' GAME_NAME='Monster Sanctuary' ARCHIVE_BASE_0_NAME='Monster Sanctuary v0_2_8 Linux.zip' ARCHIVE_BASE_0_MD5='5f0712a8799d24c357769afa0faa06ae' ARCHIVE_BASE_0_SIZE='142987' ARCHIVE_BASE_0_VERSION='0.2.8-itch' ARCHIVE_BASE_0_URL='https://sersch.itch.io/monster-sanctuary' UNITY3D_NAME='Monster Sanctuary' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Monster Sanctuary v0_2_8 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_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 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" # 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-monstrata-fracture.sh0000755000000000000000000000725514471751340016012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Monstrata Fracture # send your bug reports to contact@dotslashplay.it ### script_version=20231127.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='monstrata-fracture' GAME_NAME='Monstrata Fracture' ARCHIVE_BASE_1_NAME='monstrata-fracture-win-linux.zip' ARCHIVE_BASE_1_MD5='9839d978298251f296febd5bc9a9b550' ARCHIVE_BASE_1_SIZE='250000' ARCHIVE_BASE_1_VERSION='1.2.11-itch1' ARCHIVE_BASE_1_URL='https://astralore.itch.io/monstrata-fracture' ARCHIVE_BASE_0_NAME='monstrata-fracture-win-osx-linux.zip' ARCHIVE_BASE_0_MD5='7fa34744e2ff3ad7b745909ebfea51fc' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.2.11-itch1' CONTENT_PATH_DEFAULT_1='Monstrata-1.2.11-pc' CONTENT_PATH_DEFAULT_0='Monstrata-1.2.11-market' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' CONTENT_LIBS_BIN32_PATH_1="${CONTENT_PATH_DEFAULT_1}/lib/linux-x86" CONTENT_LIBS_BIN32_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib/linux-x86" CONTENT_LIBS_BIN64_PATH_1="${CONTENT_PATH_DEFAULT_1}/lib/linux-x86_64" CONTENT_LIBS_BIN64_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib/linux-x86_64" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/Monstrata lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake' CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/Monstrata lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 Monstrata.py' CONTENT_DOC_DATA_FILES=' credits.txt' APP_MAIN_EXE_BIN64='lib/linux-x86_64/Monstrata' APP_MAIN_EXE_BIN32='lib/linux-i686/Monstrata' APP_MAIN_OPTIONS='-EO Monstrata.py' APP_MAIN_ICON='Monstrata.exe' 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 libGL.so.1 libGLU.so.1 libm.so.6 libpng12.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-moon-hunters.sh0000755000000000000000000000450614471751340014623 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Moon Hunters # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='moon-hunters' GAME_NAME='Moon Hunters' ARCHIVE_BASE_0_NAME='MoonHunters.DRMFree.Linux.2.0.3483.zip' ARCHIVE_BASE_0_MD5='ce446f42f52e8ecc3bc0d7f174d514e6' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='2.0.3483-humble171230' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/moon-hunters' UNITY3D_NAME='MoonHunters' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' 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' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-morphopolis.sh0000755000000000000000000000446214471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Morphopolis # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='morphopolis' GAME_NAME='Morphopolis' ARCHIVE_BASE_0_NAME='setup_morphopolis_1.0_(22453).exe' ARCHIVE_BASE_0_MD5='325f1bbbcc1c7a657530d70db9f1bb1a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0-gog22453' ARCHIVE_BASE_0_URL='https://www.gog.com/game/morphopolis' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' irrklang.dll project.exe app.config.txt app.icf' CONTENT_GAME_DATA_FILES=' anims font sounds textures *.xml' USER_PERSISTENT_FILES=' app.config.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Morphopolis' APP_MAIN_EXE='project.exe' APP_MAIN_ICON='app/goggame-1559432711.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" # icotool is used for icon .ico → .png conversion SCRIPT_DEPS="${SCRIPT_DEPS:-} icotool" # 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 ## Work around "insufficient image data" issue with convert from imagemagick. icon_extract_png_from_ico() { local icon destination icon="$1" destination="$2" local icon_file icon_file=$(icon_full_path "$icon") icotool --extract --output="$destination" "$icon_file" } 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-mortal-kombat.sh0000755000000000000000000000721514471751340014736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Mortal Kombat: # - Mortal Kombat 1 # - Mortal Kombat 2 # - Mortal Kombat 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240618.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_MK1='mortal-kombat-1' GAME_NAME_MK1='Mortal Kombat' GAME_ID_MK2='mortal-kombat-2' GAME_NAME_MK2='Mortal Kombat II' GAME_ID_MK3='mortal-kombat-3' GAME_NAME_MK3='Mortal Kombat III' ARCHIVE_BASE_MK1_0_NAME='setup_mortal_kombat_2.0.0.2.exe' ARCHIVE_BASE_MK1_0_MD5='c4b310a87a7fc021c424e550e979e018' ARCHIVE_BASE_MK1_0_TYPE='innosetup' ARCHIVE_BASE_MK1_0_SIZE='37000' ARCHIVE_BASE_MK1_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK1_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_BASE_MK2_0_NAME='setup_mortal_kombat2_2.0.0.2.exe' ARCHIVE_BASE_MK2_0_MD5='fd66922a3c5551077020ba6df2b2446f' ARCHIVE_BASE_MK2_0_TYPE='innosetup' ARCHIVE_BASE_MK2_0_SIZE='38000' ARCHIVE_BASE_MK2_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK2_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_BASE_MK3_0_NAME='setup_mortal_kombat3_2.0.0.2.exe' ARCHIVE_BASE_MK3_0_MD5='e9703877b5bd2dfde5b2d65b8586aa6d' ARCHIVE_BASE_MK3_0_TYPE='innosetup' ARCHIVE_BASE_MK3_0_SIZE='87000' ARCHIVE_BASE_MK3_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK3_0_URL='https://www.gog.com/game/mortal_kombat_123' CONTENT_PATH_DEFAULT_MK1='app/mk1' CONTENT_PATH_DEFAULT_MK2='app/mk2' CONTENT_PATH_DEFAULT_MK3='app/mk3' CONTENT_GAME_MAIN_FILES_MK1=' graphics sfx *.bat *.dig *.dat *.drv *.exe *.gra *.ini *.lst *.mk1 *.pif' CONTENT_GAME_MAIN_FILES_MK2=' fx sound cmos *.bat *.bin *.drv *.exe *.gra *.ini' CONTENT_GAME_MAIN_FILES_MK3=' drivers image *.asg *.bat *.dat *.exe *.ftr *.ini *.mk3' CONTENT_DOC_MAIN_FILES_MK2=' readme.txt' USER_PERSISTENT_FILES_MK1=' cmos.mk1 *.ini' USER_PERSISTENT_FILES_MK2=' cmos *.ini' USER_PERSISTENT_FILES_MK3=' *.dat *.ini' GAME_IMAGE_MK3='image/mk3.cue' APP_MAIN_EXE_MK1='mk1.exe' APP_MAIN_EXE_MK2='mk2.exe' APP_MAIN_EXE_MK3='mk3.exe' APP_MAIN_ICON_MK1='../goggame-1207667043.ico' APP_MAIN_ICON_MK2='../goggame-1207667053.ico' APP_MAIN_ICON_MK3='../goggame-1207667063.ico' # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Mortal Kombat 3 - Ensure case consistency between the disk image table of contents and the actual filenames. case "$(current_archive)" in ('ARCHIVE_BASE_MK3_'*) sed_pattern='MK3\.GOG' sed_replacement='mk3.gog' sed_expression="s/${sed_pattern}/${sed_replacement}/" sed_pattern='Track' sed_replacement='track' sed_expression="${sed_expression};s/${sed_pattern}/${sed_replacement}/g" sed --in-place --expression="$sed_expression" "$GAME_IMAGE_MK3" ;; esac ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around ./play.it 2.29 lack of context support for $GAME_IMAGE. GAME_IMAGE=$(context_value 'GAME_IMAGE') launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-multiwinia.sh0000755000000000000000000000546114471751340014350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Multiwinia # send your bug reports to contact@dotslashplay.it ### script_version=20230817.1 GAME_ID='multiwinia' GAME_NAME='Multiwinia' ARCHIVE_BASE_0='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_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILE=' libpng12.so.0 libpng12.so.0.50.0' CONTENT_GAME_BIN32_FILES=' multiwinia.bin.x86' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILE=' libpng12.so.0 libpng12.so.0.50.0' CONTENT_GAME_BIN64_FILES=' multiwinia.bin.x86_64' CONTENT_GAME_DATA_FILES=' *.dat multiwinia.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' readme.txt manual.pdf' APP_MAIN_EXE_BIN32='multiwinia.bin.x86' APP_MAIN_EXE_BIN64='multiwinia.bin.x86_64' APP_MAIN_ICON='multiwinia.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-museum-of-mechanics-lockpicking.sh0000755000000000000000000000427314471751340020326 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Museum of Mechanics: Lockpicking # send your bug reports to contact@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='museum-of-mechanics-lockpicking' GAME_NAME='Museum of Mechanics: Lockpicking' ARCHIVE_BASE_1_NAME='museum-of-mechanics-lockpicking-linux.zip' ARCHIVE_BASE_1_MD5='5b6d381d975867c75b797ec9ba3f45e1' ARCHIVE_BASE_1_SIZE='282860' ARCHIVE_BASE_1_VERSION='0.6.5-itch.2021.07.21' ARCHIVE_BASE_1_URL='https://dimbulbgames.itch.io/museum-of-mechanics-lockpicking' ARCHIVE_BASE_0_NAME='museum-of-mechanics-lockpicking-linux.zip' ARCHIVE_BASE_0_MD5='6e47b913932abbba3d132c9d849b79fd' ARCHIVE_BASE_0_SIZE='156246' ARCHIVE_BASE_0_VERSION='0.2.2-itch.2020.08.29' UNITY3D_NAME='Museum_Of_Mechanics' ## This game does not ship any Unity3D plugin. CONTENT_PATH_DEFAULT='Museum of Mechanics - Linux' 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-mushroom-11.sh0000755000000000000000000000444514471751340014257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Mushroom 11 # send your bug reports to contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mushroom-11' GAME_NAME='Mushroom 11' ARCHIVE_BASE_0_NAME='Mushroom_11_v1.07b4_Humble_Linux.zip' ARCHIVE_BASE_0_MD5='0c257b149a3636ba839fba4cffe7b3db' ARCHIVE_BASE_0_SIZE='475248' ARCHIVE_BASE_0_VERSION='1.07b4-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/mushroom-11' UNITY3D_NAME='Mushroom_11' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' 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 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-mutazione.sh0000755000000000000000000000424114471751340014174 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mutazione # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='mutazione' GAME_NAME='Mutazione' ARCHIVE_BASE_1='mutazione_1_84_2_58889.sh' ARCHIVE_BASE_1_MD5='62907ada1a1e09f64f93cafa3db87aaa' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.84.2-gog58889' ARCHIVE_BASE_1_URL='https://www.gog.com/game/mutazione' UNITY3D_NAME='mutazione' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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 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 target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-memory-of-us.sh0000755000000000000000000000414114471751340015142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Memory of Us # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='my-memory-of-us' GAME_NAME='My Memory of Us' ARCHIVE_BASE_0_NAME='setup_my_memory_of_us_1.13057.1_(64bit)_(25548).exe' ARCHIVE_BASE_0_MD5='44d0900cd3677e8811eea558ed237c56' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_my_memory_of_us_1.13057.1_(64bit)_(25548)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a2e2e199681aaa136cc109df60b6eefc' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='1.13057.1-gog25548' ARCHIVE_BASE_0_URL='https://www.gog.com/game/my_memory_of_us' UNITY3D_NAME='mmou' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Juggler Games\My Memory of Us' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Juggler Games/My Memory of Us' PACKAGES_LIST=' PKG_BIN 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' # 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-my-rabbits-are-gone.sh0000755000000000000000000000505014471751340015724 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Rabbits Are Gone # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='my-rabbits-are-gone' GAME_NAME='Oh Jeez, Oh No, My Rabbits Are Gone !!!' ARCHIVE_BASE_1='oh-jeez-oh-no-my-rabbits-are-gone-linux.zip' ARCHIVE_BASE_1_MD5='5fd3335ca1a517bd733d2692bda6dd35' ARCHIVE_BASE_1_SIZE='210000' ARCHIVE_BASE_1_VERSION='1.3.1.2a-itch1' ARCHIVE_BASE_1_URL='https://studionevermore.itch.io/oh-jeez-oh-no-my-rabbits-are-gone' ARCHIVE_BASE_0='MyRabbitsAreGone1.1.0.5ItchLinux.zip' ARCHIVE_BASE_0_MD5='4666fb50124c7076b1a9e493b5ff4883' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.5-itch1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' MyRabbitsAreGone' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='MyRabbitsAreGone' APP_MAIN_ICON='assets/icon.png' 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_COMMON=' 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 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl.so.4 libssl.so.1.1" PKG_BIN_DEPENDENCIES_LIBRARIES_0=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl-gnutls.so.4 libssl.so.1.0.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" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-time-at-portia.sh0000755000000000000000000000574114471751340015446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # My Time at Portia # send your bug reports to contact@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='my-time-at-portia' GAME_NAME='My Time at Portia' ARCHIVE_BASE_1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522).exe' ARCHIVE_BASE_1_MD5='73890f1c7a86bdcab47a00b72366928a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-1.bin' ARCHIVE_BASE_1_PART1_MD5='87fb19e0f0f04a499e81e7a81b49818d' ARCHIVE_BASE_1_PART2_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-2.bin' ARCHIVE_BASE_1_PART2_MD5='2ef18dcfdc16f1d7f52c2a49cfd63010' ARCHIVE_BASE_1_SIZE='10038490' ARCHIVE_BASE_1_VERSION='2021.08.13-gog49522' ARCHIVE_BASE_1_URL='https://www.gog.com/game/my_time_at_portia' ARCHIVE_BASE_0_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960).exe' ARCHIVE_BASE_0_MD5='9f21752466f3ce96719cfea66bce05d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-1.bin' ARCHIVE_BASE_0_PART1_MD5='881179a255b81a165411ca88fc99dcc7' ARCHIVE_BASE_0_PART2_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b84720aea74b713c8738197872f4add0' ARCHIVE_BASE_0_SIZE='9800000' ARCHIVE_BASE_0_VERSION='2.0.141235-gog41960' UNITY3D_NAME='portia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETBUNDLES_FILES=' portia_data/streamingassets/assetbundles' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Pathea Games/My Time at Portia' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETBUNDLES 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_ASSETBUNDLES' PKG_DATA_ASSETBUNDLES_ID="${PKG_DATA_ID}-asssetbundles" PKG_DATA_DESCRIPTION="$PKG_DATA_DESCRIPTION - asset bundles" # 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-nanotale-typing-chronicles.sh0000755000000000000000000000470214471751340017423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nanotale - Typing Chronicles # send your bug reports to contact@dotslashplay.it ### script_version=20230811.2 GAME_ID='nanotale-typing-chronicles' GAME_NAME='Nanotale - Typing Chronicles' ARCHIVE_BASE_1='nanotale_typing_chronicles_1_96_51035.sh' ARCHIVE_BASE_1_MD5='fee2152ca68930869172c1bb6785d37d' ARCHIVE_BASE_1_SIZE='5200000' ARCHIVE_BASE_1_VERSION='1.96-gog51035' ARCHIVE_BASE_1_URL='https://www.gog.com/game/nanotale_typing_chronicles' ARCHIVE_BASE_0='nanotale_typing_chronicles_1_95_50826.sh' ARCHIVE_BASE_0_MD5='a77a001896b0c742feddd24ce594bc3e' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.95-gog50826' UNITY3D_NAME='Nanotale' UNITY3D_PLUGINS=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so sqlite3.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME} UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" 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 target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nebuchadnezzar.sh0000755000000000000000000000461014471751340015164 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 contact@dotslashplay.it ### script_version=20230814.1 GAME_ID='nebuchadnezzar' GAME_NAME='Nebuchadnezzar' ARCHIVE_BASE_0='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # Run the game binary from its parent directory APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE") ' # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neon-code.sh0000755000000000000000000000417214471751340014033 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neon Code # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='neon-code' GAME_NAME='Neon Code' ARCHIVE_BASE_0_NAME='NeonCode_0_89_Linux.zip' ARCHIVE_BASE_0_MD5='dbcf301048b76c443bb746c0b337692b' ARCHIVE_BASE_0_SIZE='4249065' ARCHIVE_BASE_0_VERSION='0.89-itch' ARCHIVE_BASE_0_URL='https://fubenalvo.itch.io/neoncode' UNITY3D_NAME='NeonCode' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeonCode_0_89_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_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 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" # 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-neon-drive.sh0000755000000000000000000000515014471751340014227 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Neon Drive # send your bug reports to contact@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neon-drive' GAME_NAME='neon Drive' ARCHIVE_BASE_1_NAME='NeonDrive_V1.5_Linux.zip' ARCHIVE_BASE_1_MD5='1fcbd5dc69cc08899b792b9f4c0d7075' ARCHIVE_BASE_1_SIZE='495259' ARCHIVE_BASE_1_VERSION='1.5-humble170831' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/neon-drive' ARCHIVE_BASE_0_NAME='NeonDrive_V1.4__Linux.rar' ARCHIVE_BASE_0_MD5='86627f5639234614b036666de4223a15' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='1.4-humble1' UNITY3D_NAME='Neon Drive' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' 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-neurodeck-psychological-deckbuilder.sh0000755000000000000000000000441514471751340021254 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neurodeck: Psychological Deckbuilder # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='neurodeck-psychological-deckbuilder' GAME_NAME='Neurodeck: Psychological Deckbuilder' ARCHIVE_BASE_1='neurodeck_psychological_deckbuilder_1_5_3_49984.sh' ARCHIVE_BASE_1_MD5='609908c4cfa583e4fc6d6b3c1764f91b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='1.5.3-gog49984' ARCHIVE_BASE_1_URL='https://www.gog.com/game/neurodeck_psychological_deckbuilder' UNITY3D_NAME='Neurodeck' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-never-alone.sh0000755000000000000000000000454514471751340014403 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Never Alone # send your bug reports to contact@dotslashplay.it ### script_version=20231111.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='never-alone' GAME_NAME='Never Alone' ARCHIVE_BASE_0_NAME='NeverAlone_ArcticCollection_Linux.1.04.tar.gz' ARCHIVE_BASE_0_MD5='3da062abaaa9e3e6ff97d4c82c8ea3c3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.04-humble161008' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/never-alone-arctic-collection' UNITY3D_NAME='Never_Alone' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeverAlone_ArcticCollection_Linux.1.04' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" CONTENT_GAME_VIDEOS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/Videos" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_VIDEOS PKG_DATA' PKG_VIDEOS_ID="$GAME_ID-videos" PKG_VIDEOS_DESCRIPTION='videos' PKG_DATA_ID="$GAME_ID-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_VIDEOS_ID" 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverending-nightmares.sh0000755000000000000000000000423514471751340016627 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neverending Nightmares # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='neverending-nightmares' GAME_NAME='Neverending Nightmares' ARCHIVE_BASE_0='neverending_nightmares_3_3_22468_41851.sh' ARCHIVE_BASE_0_MD5='4ab28bf5862dc35e6a821e1aabc3e41a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='3.3.22468-gog41851' ARCHIVE_BASE_0_URL='https://www.gog.com/game/neverending_nightmares' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' OpenAL-MOB.so' CONTENT_GAME_BIN_FILES=' nightmare' CONTENT_GAME_DATA_FILES=' controller.vdf *.itap' APP_MAIN_EXE='nightmare' APP_MAIN_ICON='../support/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libcurl.so.4 libGL.so.1 libGLU.so.1 libgtk-x11-2.0.so.0 libidn.so.11 libopenal.so.1 libstdc++.so.6 libudev.so.1 libuuid.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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverwinter-nights-1-enhanced-edition-localizations.sh0000755000000000000000000001143614471751340024232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 Enhanced Edition localization packs: # - German # - French # - Polish # send your bug reports to contact@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' GAME_NAME_DE="$GAME_NAME - German localization" GAME_NAME_FR="$GAME_NAME - French localization" GAME_NAME_PL="$GAME_NAME - Polish localization" ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='082281faf84fc9be25e1aaf21a99a1ce' ARCHIVE_BASE_DE_6_SIZE='892427' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_german_extras' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='088b8c890ecbf09b86a7c75e07ef43f1' ARCHIVE_BASE_FR_6_SIZE='833009' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_french_extras' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='89e2dced24b885c04e1c45bc71e9960f' ARCHIVE_BASE_PL_6_SIZE='820818' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_polish_extras' ARCHIVE_BASE_DE_5_NAME='neverwinter_nights_enhanced_edition_german_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_DE_5_MD5='596b075b63b8f9f76bbf1eeaa8150cfb' ARCHIVE_BASE_DE_5_SIZE='892816' ARCHIVE_BASE_DE_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='88b889d8eefadfde33d0fad8bac1b9be' ARCHIVE_BASE_FR_5_SIZE='833404' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='c78a405c135ffad7e126bd44113ecc86' ARCHIVE_BASE_PL_5_SIZE='833404' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_DE_4_NAME='neverwinter_nights_enhanced_edition_german_extras_85_8193_33_50393.sh' ARCHIVE_BASE_DE_4_MD5='d20a22fc2dfdeca4bb71bb7fd7e13a82' ARCHIVE_BASE_DE_4_SIZE='900000' ARCHIVE_BASE_DE_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_extras_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='f39ecc55b15740322d8ae860ccfecbc5' ARCHIVE_BASE_FR_4_SIZE='840000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_DE_1_NAME='neverwinter_nights_enhanced_edition_german_extras_81_8193_16_41300.sh' ARCHIVE_BASE_DE_1_MD5='1e81fcf9d40bcf23dec0a77069222a52' ARCHIVE_BASE_DE_1_SIZE='892298' ARCHIVE_BASE_DE_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_extras_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='1fe0cc196c146834ff186935ae2d3d66' ARCHIVE_BASE_FR_1_SIZE='832881' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_PL_1_NAME='neverwinter_nights_enhanced_edition_polish_extras_81_8193_16_41300.sh' ARCHIVE_BASE_PL_1_MD5='8ff3b7d282b9a3822425823e9efd545f' ARCHIVE_BASE_PL_1_SIZE='820690' ARCHIVE_BASE_PL_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_0_NAME='neverwinter_nights_enhanced_edition_french_extras_80_8193_9_37029.sh' ARCHIVE_BASE_FR_0_MD5='5e0564a161259b003c7dc0f8d8aa743f' ARCHIVE_BASE_FR_0_SIZE='840000' ARCHIVE_BASE_FR_0_VERSION='80.8193.9-gog37029' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' lang/??/data' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_ID="${GAME_ID}-l10n" PKG_MAIN_ID_DE="${PKG_MAIN_ID}-de" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_ID_PL="${PKG_MAIN_ID}-pl" PKG_MAIN_PROVIDES=" $PKG_MAIN_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-neverwinter-nights-1-enhanced-edition.sh0000755000000000000000000001413214471751340021355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Christian Stalp # SPDX-FileCopyrightText: © 2023 Jacek Szafarkiewicz set -o errexit ### # Neverwinter Nights 1 Enhanced Edition # send your bug reports to contact@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' ARCHIVE_BASE_EN_6_NAME='neverwinter_nights_enhanced_edition_88_8193_36_13_72824.sh' ARCHIVE_BASE_EN_6_MD5='922f474f2e1573abc66f803c752f2159' ARCHIVE_BASE_EN_6_SIZE='6250881' ARCHIVE_BASE_EN_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_EN_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='2218e12a8d09e1b799f11402c93d1eec' ARCHIVE_BASE_DE_6_SIZE='6250881' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='ed1a605cc15b5416d0eda7840dd4f8d9' ARCHIVE_BASE_FR_6_SIZE='6250881' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='351e857d4e6a75d18721a3964a937bfe' ARCHIVE_BASE_PL_6_SIZE='6250881' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_5_NAME='neverwinter_nights_enhanced_edition_87_8193_35_40_65678.sh' ARCHIVE_BASE_EN_5_MD5='c1191f9e19f1da52f1424025017cf56f' ARCHIVE_BASE_EN_5_SIZE='6253452' ARCHIVE_BASE_EN_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='319194e7a229b24b19f7454d8ed860d6' ARCHIVE_BASE_FR_5_SIZE='6253452' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='d4c3d4c4af501424a60bf9e09e5a2f01' ARCHIVE_BASE_PL_5_SIZE='6253452' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_EN_4_NAME='neverwinter_nights_enhanced_edition_85_8193_33_50393.sh' ARCHIVE_BASE_EN_4_MD5='4e6c4f7bd75791a9c726b7b573cfafe5' ARCHIVE_BASE_EN_4_SIZE='6300000' ARCHIVE_BASE_EN_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='19b036e3c07fd4aa9a835de05b4aea1f' ARCHIVE_BASE_FR_4_SIZE='6200000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_EN_3_NAME='neverwinter_nights_enhanced_edition_83_8193_23_47201.sh' ARCHIVE_BASE_EN_3_MD5='b85d2ea70aa6dba1096e97e944d98141' ARCHIVE_BASE_EN_3_SIZE='6300000' ARCHIVE_BASE_EN_3_VERSION='83.8193.23-gog47201' ARCHIVE_BASE_EN_2_NAME='neverwinter_nights_enhanced_edition_82_8193_20_1_43497.sh' ARCHIVE_BASE_EN_2_MD5='c80e73f0305ad99355cc089c632b8b0c' ARCHIVE_BASE_EN_2_SIZE='6200000' ARCHIVE_BASE_EN_2_VERSION='82.8193.20.1-gog43497' ARCHIVE_BASE_EN_1_NAME='neverwinter_nights_enhanced_edition_81_8193_16_41300.sh' ARCHIVE_BASE_EN_1_MD5='a52646002ab14c452731b0636fdc8278' ARCHIVE_BASE_EN_1_SIZE='6200000' ARCHIVE_BASE_EN_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='67f42c1a1604a26fdbcd0cbc800856f5' ARCHIVE_BASE_FR_1_SIZE='6200000' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_EN_0_NAME='neverwinter_nights_enhanced_edition_80_8193_9_37029.sh' ARCHIVE_BASE_EN_0_MD5='fb98f859b5f5516fc7df8b00c7264c07' ARCHIVE_BASE_EN_0_VERSION='80.8193.9-gog37029' ARCHIVE_BASE_EN_0_SIZE='5000000' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' bin/linux-x86' CONTENT_GAME_DATA_FILES=' data ovr lang/??/data' CONTENT_DOC_DATA_RELATIVE_PATH='lang' CONTENT_DOC_DATA_FILES=' ??/docs' APP_MAIN_EXE='bin/linux-x86/nwmain-linux' APP_MAIN_ICON='bin/win32/nwmain.exe' APP_SERVER_ID="${GAME_ID}-server" APP_SERVER_NAME="${GAME_NAME} - server" APP_SERVER_EXE='bin/linux-x86/nwserver-linux' APP_SERVER_ICON='bin/win32/nwserver.exe' 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 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 ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwmain-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_MAIN' ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwserver-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_SERVER' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neverwinter-nights-1.sh0000755000000000000000000002707314471751340016171 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='neverwinter-nights-1' GAME_NAME='Neverwinter Nights' ARCHIVE_BASE_DE_0_NAME='setup_nwn_diamond_german_2.1.0.21.exe' ARCHIVE_BASE_DE_0_MD5='63a32f4fdb2939e73ac40d80f5798e28' ARCHIVE_BASE_DE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_DE_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_DE_0_PART1_NAME='setup_nwn_diamond_german_2.1.0.21-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='e6c50d030b046c05ccf87601844ccc23' ARCHIVE_BASE_DE_0_PART1_TYPE='rar' ARCHIVE_BASE_DE_0_SIZE='4400000' ARCHIVE_BASE_DE_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_0_NAME='setup_nwn_diamond_2.1.0.21.exe' ARCHIVE_BASE_EN_0_MD5='cd809b9d22022adb01b0d1d70c5afa8e' ARCHIVE_BASE_EN_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_EN_0_PART1_NAME='setup_nwn_diamond_2.1.0.21-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='ce60bf104cc6082fe79d6f0bd7b48f51' ARCHIVE_BASE_EN_0_PART1_TYPE='rar' ARCHIVE_BASE_EN_0_SIZE='5100000' ARCHIVE_BASE_EN_0_VERSION='1.69-gog2.1.0.21' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_ES_0_NAME='setup_nwn_diamond_spanish_2.1.0.21.exe' ARCHIVE_BASE_ES_0_MD5='70448f984b66a814bda712ecfef5977e' ARCHIVE_BASE_ES_0_EXTRACTOR='innoextract' ARCHIVE_BASE_ES_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_ES_0_PART1_NAME='setup_nwn_diamond_spanish_2.1.0.21-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='3b6dee19655a1280273c5d0652f74ab5' ARCHIVE_BASE_ES_0_PART1_TYPE='rar' ARCHIVE_BASE_ES_0_SIZE='4400000' ARCHIVE_BASE_ES_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_0_NAME='setup_nwn_diamond_french_2.1.0.21.exe' ARCHIVE_BASE_FR_0_MD5='caadc0f809e10ddf781cacbebd1b25d9' ARCHIVE_BASE_FR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_FR_0_PART1_NAME='setup_nwn_diamond_french_2.1.0.21-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='aeb4b99635bdc046560477b2b11307e3' ARCHIVE_BASE_FR_0_PART1_TYPE='rar' ARCHIVE_BASE_FR_0_SIZE='4300000' ARCHIVE_BASE_FR_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_0_NAME='setup_nwn_diamond_polish_2.1.0.21.exe' ARCHIVE_BASE_PL_0_MD5='5779b5c690984a79c617efc7649e66a3' ARCHIVE_BASE_PL_0_EXTRACTOR='innoextract' ARCHIVE_BASE_PL_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_PL_0_PART1_NAME='setup_nwn_diamond_polish_2.1.0.21-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='540c20cd68079c7a214af65296b4a8b1' ARCHIVE_BASE_PL_0_PART1_TYPE='rar' ARCHIVE_BASE_PL_0_SIZE='4400000' ARCHIVE_BASE_PL_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' CONTENT_PATH_DEFAULT='game' CONTENT_LIBS_BIN_PATH='lib' CONTENT_LIBS_BIN_FILES=' libtxc_dxtn.so' CONTENT_LIBS0_BIN_PATH='miles' CONTENT_LIBS0_BIN_FILES=' libmss.so libmss.so.6 libmss.so.6.5.2 mssdsp.flt mssmp3.asi msssoft.m3d' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME_BIN_PATH='.' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' nwncdkey.ini' CONTENT_GAME1_BIN_PATH='.' CONTENT_GAME1_BIN_FILES=' nwmovies nwmovies_install.pl' CONTENT_GAME_L10N_FILES=' *.key *.tlk movies/Chap?_Chap?.bik movies/credits.bik movies/ending.bik movies/prelude.bik movies/prelude_chap1.bik movies/XP?_*.bik data/*convo.bif data/models_??.bif data/music*.bif data/templates.bif data/*voicesets.bif data/xp1_sounds*.bif data/xp2_german.bif data/xp2_french.bif data/xp2_polish.bif' CONTENT_DOC_L10N_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_L10N_FILES=' *.pdf *.rtf *.txt' CONTENT_GAME_DATA_FILES=' ambient dmvault hak localvault modules music nwm override texturepacks movies/*.bik data/*.bif' CONTENT_GAME0_DATA_PATH='.' CONTENT_GAME0_DATA_FILES=' override' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_DIRECTORIES=' portraits saves servervault' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='nwmain' APP_MAIN_ICON='nwn.exe' ## Apply required SDL tweaks APP_MAIN_PRERUN=' export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 ' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PACKAGES_LIST_NWMOVIES="PKG_NWMOVIES $PACKAGES_LIST" PKG_NWMOVIES_ID="${GAME_ID}-nwmovies" PKG_NWMOVIES_DESCRIPTION='NWMovies' PKG_NWMOVIES_ARCH='32' PKG_NWMOVIES_DEPS="$GAME_ID" PKG_NWMOVIES_DEPENDENCIES_COMMANDS=' mpv' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_DE='German localization' PKG_L10N_DESCRIPTION_ES='Spanish localization' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.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" # Check for the presence of extra required archives ARCHIVE_REQUIRED_LINUX_COMMON_NAME='nwn-linux-common.tar.gz' ARCHIVE_REQUIRED_LINUX_COMMON_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_COMMON_MD5='9aa7dae2ba9111c96b10679fa085c66e' case "$(package_version)" in ('1.69-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.69.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='8ea69b40842f9721051d4ddd6510d3b2' ;; ('1.68-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.68.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='12ff7f8604d04194b87cf70832bb86fa' ;; esac archive_initialize_required \ 'ARCHIVE_LINUX_COMMON' \ 'ARCHIVE_REQUIRED_LINUX_COMMON' archive_initialize_required \ 'ARCHIVE_LINUX' \ 'ARCHIVE_REQUIRED_LINUX' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_NWMOVIES_NAME='nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_URL='https://sites.google.com/site/gogdownloader/nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_MD5='71f3d88db1cd75665b62b77f7604dce1' archive_initialize_optional \ 'ARCHIVE_NWMOVIES' \ 'ARCHIVE_OPTIONAL_NWMOVIES' # Check for the presence of NWMovies build dependencies ## TODO: The library should provide a function to check the presence of a list of compilation headers. ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then case "${LANG%_*}" in ('fr') message='Contrôle de la présence des dépendances requises pour la compilation de NWMovies…' ;; ('en'|*) message='Check for the presence of NWMovies build dependencies…' ;; esac printf '%s\n' "$message" tests_directory="${PLAYIT_WORKDIR}/tests" mkdir --parents "$tests_directory" test_source="${tests_directory}/build-deps.c" test_binary="${tests_directory}/build-deps.so" cat > "$test_source" <<-EOF #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main () { return 0; } EOF gcc -shared -Wall -fPIC -ldl -m32 "$test_source" -o "$test_binary" rm --recursive "$tests_directory" fi # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_LINUX_COMMON' archive_extraction 'ARCHIVE_LINUX' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_NWMOVIES' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fixe case issues with some files. if [ -e 'dialog.TLK' ]; then mv 'dialog.TLK' 'dialog.tlk' fi if [ -e 'dialogF.TLK' ]; then mv 'dialogF.TLK' 'dialogf.tlk' fi for tiles in 'a' 'b' 'c'; do if [ -e "texturepacks/Tiles_TP${tiles}.ERF" ]; then mv "texturepacks/Tiles_TP${tiles}.ERF" "texturepacks/Tiles_Tp${tiles}.erf" fi done ) # Build the NWMovies video player ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then ( cd "${PLAYIT_WORKDIR}/gamedata/nwmovies" case "${LANG%_*}" in ('fr') message='Construction du lecteur vidéo NWMovies…' ;; ('en'|*) message='Building NWMovies video player…' ;; esac printf '%s\n' "$message" sed --in-place 's/mpv /mpv --fs --no-osc /' 'nwplaymovie' chmod 755 'nwmovies_install.pl' export CFLAGS='-w' ./nwmovies_install.pl build >/dev/null 2>&1 ) fi # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then PACKAGES_LIST="$PACKAGES_LIST_NWMOVIES" install -D --mode=644 \ --target-directory="$(package_path 'PKG_NWMOVIES')$(path_libraries)" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.so" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/libdis/libdisasm.so" install -D --mode=755 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwplaymovie" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwplaymovie" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.README.txt" \ "$(package_path 'PKG_NWMOVIES')$(path_documentation)/nwmovies.README.txt" rm --recursive "${PLAYIT_WORKDIR}/gamedata/nwmovies" ## NWMovies look for some libraries in hardcoded paths. mkdir --parents "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis" ln --symbolic \ "$(path_libraries)/libdisasm.so" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis/libdisasm.so" fi content_inclusion_default # Write launchers APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Play videos using NWMovies, if it is available nwmovies_library="'"$(path_libraries)"'/nwmovies.so" if [ -e "$nwmovies_library" ]; then export LD_PRELOAD="$nwmovies_library" fi ' PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-niche.sh0000755000000000000000000000543314471751340013253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Niche # send your bug reports to contact@dotslashplay.it ### script_version=20230419.3 GAME_ID='niche' GAME_NAME='Niche' ARCHIVE_BASE_1='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='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' ## The game crashes on launch if libCSteamworks.so is not available. ## libsteam_api.so is required by libCSteamworks.so. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 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_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-night-in-the-woods.sh0000755000000000000000000000457414471751340015616 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Night in the Woods # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='night-in-the-woods' GAME_NAME='Night in the Woods' ARCHIVE_BASE_0_NAME='night-in-the-woods-linux.zip' ARCHIVE_BASE_0_MD5='d51538671aa56a49964984f17a27a69c' ARCHIVE_BASE_0_SIZE='6030365' ARCHIVE_BASE_0_VERSION='406-itch' ARCHIVE_BASE_0_URL='https://finji.itch.io/night-in-the-woods' UNITY3D_NAME='Night in the Woods' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so ScreenSelector.so' ## TODO: Check if the Steam plugins are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' README.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 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" # 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-nihilumbra.sh0000755000000000000000000000616014471751340014315 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Nihilumbra # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='nihilumbra' GAME_NAME='Nihilumbra' ARCHIVE_BASE_64BIT_0_NAME='Nihilumbra-1.35-linux64.tar.gz' ARCHIVE_BASE_64BIT_0_MD5='18aa096020cedea4f208ca55f7e5c85f' ARCHIVE_BASE_64BIT_0_SIZE='2304011' ARCHIVE_BASE_64BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' ARCHIVE_BASE_32BIT_0_NAME='Nihilumbra-1.35-linux32.tar.gz' ARCHIVE_BASE_32BIT_0_MD5='24ba59112bdb95b05651ebe48ec5882d' ARCHIVE_BASE_32BIT_0_SIZE='2301254' ARCHIVE_BASE_32BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' UNITY3D_NAME='Nihilumbra' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_64BIT='Nihilumbra-1.35-linux64' CONTENT_PATH_DEFAULT_32BIT='Nihilumbra-1.35-linux32' ## APP_MAIN_ICON is set implicitly for all Unity3D games APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_32 APP_MAIN_ICON_48_PNG APP_MAIN_ICON_48_XPM APP_MAIN_ICON_64 APP_MAIN_ICON_128' APP_MAIN_ICON_32='icon32x32.png' APP_MAIN_ICON_48_PNG='icon48x48.png' APP_MAIN_ICON_48_XPM='icon48x48.xpm' APP_MAIN_ICON_64='icon64x64.png' APP_MAIN_ICON_128='icon128x128.png' 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=' 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 ## Do not disable the MAP_32BIT flag, as this game is not affected by the bug it works around unity3d_disable_map32bit() { true; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-no-mans-sky.sh0000755000000000000000000000514414471751340014340 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # No Man's Sky # send your bug reports to contact@dotslashplay.it ### script_version=20230731.3 GAME_ID='no-mans-sky' GAME_NAME='No Manʼs Sky' ARCHIVE_BASE_0='setup_no_mans_sky_experimental_54853_(34267).exe' ARCHIVE_BASE_0_MD5='c9a4884cf0158412f5feb2f34006b69d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_no_mans_sky_experimental_54853_(34267)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60db3050ffeb6db013c1170e6641d734' ARCHIVE_BASE_0_PART2='setup_no_mans_sky_experimental_54853_(34267)-2.bin' ARCHIVE_BASE_0_PART2_MD5='91569361327142cc6855b46450f0f44b' ARCHIVE_BASE_0_PART3='setup_no_mans_sky_experimental_54853_(34267)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a75187db1de93e9bd66fa0b7d1ac7ef7' ARCHIVE_BASE_0_VERSION='54853-gog34267' ARCHIVE_BASE_0_SIZE='9600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/no_mans_sky' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries languagesetup.exe' CONTENT_GAME_DATA_FILES=' gamedata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/HelloGames/NMS' USER_PERSISTENT_DIRECTORIES=' binaries/settings' APP_MAIN_EXE='binaries/nms.exe' APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='languagesetup.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 target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-no-pineapple-left-behind.sh0000755000000000000000000000473114471751340016733 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 contact@dotslashplay.it ### script_version=20231109.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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='7100000' 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' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so 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_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' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noctropolis.sh0000755000000000000000000000406314471751340014536 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Noctropolis # send your bug reports to contact@dotslashplay.it ### script_version=20230207.1 GAME_ID='noctropolis' GAME_NAME='Noctropolis' ARCHIVE_BASE_0='noctropolis_en_1_0_16066.sh' ARCHIVE_BASE_0_MD5='08bc9c0135daa87ffa4059706442687b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.0-gog16066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noctropolis' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' noctropolis' CONTENT_GAME_DATA_FILES=' DARK DE ES FR' CONTENT_DOC_DATA_FILES=' LICENSE.ogg-vorbis.txt README.txt README-SDL.txt' APP_MAIN_EXE='noctropolis' PACKAGES_LIST='PKG_DATA PKG_BIN' 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 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noita.sh0000755000000000000000000000605114471751340013274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Noita # send your bug reports to contact@dotslashplay.it ### script_version=20240110.6 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='noita' GAME_NAME='Noita' ARCHIVE_BASE_0_NAME='setup_noita_20231221-_050_(69862).exe' ARCHIVE_BASE_0_MD5='106a6244f5d69eccfb690e2a5d5e3100' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1446784' ARCHIVE_BASE_0_VERSION='2023.12.21-gog69862' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noita' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the Galaxy library is required. CONTENT_GAME_BIN_FILES=' tools_modding fmod.dll fmodstudio.dll galaxy.dll lua51.dll msvcp120.dll msvcr120.dll sdl2.dll noita.exe noita_dev.exe config.xml' CONTENT_GAME_DATA_FILES=' data mods' CONTENT_DOC_DATA_FILES=' licenses _branch.txt _release_notes.txt _version_hash.txt readme.txt screenshot_paths.txt' USER_PERSISTENT_DIRECTORIES=' mods' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nolla_Games_Noita' ## The game will fail to start unless Microsoft Visual C++ 2013 libraries are available. WINE_WINETRICKS_VERBS='vcrun2013' APP_MAIN_EXE='noita.exe' APP_MAIN_ICON='data/icon.bmp' ## The game crashes on launch when the Wayland 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 ' 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" # Convert icon to standard resolutions SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert icon to standard resolutions. icon_source=$(icon_path 'APP_MAIN_ICON') convert "$icon_source" -resize 64x64 'icon_64.png' convert "$icon_source" -resize 96x96 'icon_96.png' ) # Include game data ## Convert icon to standard resolutions. APP_MAIN_ICON_64='icon_64.png' APP_MAIN_ICON_96='icon_96.png' APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_64 APP_MAIN_ICON_96" set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nomads-of-driftland.sh0000755000000000000000000000371414471751340016015 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 contact@dotslashplay.it ### script_version=20240303.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nonsense-at-nightfall.sh0000755000000000000000000000341314471751340016361 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Nonsense at Nightfall # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='nonsense-at-nightfall' GAME_NAME='Nonsense at Nightfall' ARCHIVE_BASE_0_NAME='Nonsense at Nightfall.zip' ARCHIVE_BASE_0_MD5='0fc2ea596776428f659a15acfb20dba6' ARCHIVE_BASE_0_SIZE='41000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://siegfriedcroes.itch.io/nonsense-at-nightfall' UNITY3D_NAME='Nonsense at Nightfall' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Siegfried Croes\Nonsense at Nightfall' 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-nowhere-prophet.sh0000755000000000000000000000606114471751340015311 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 contact@dotslashplay.it ### script_version=20230129.1 GAME_ID='nowhere-prophet' GAME_NAME='Nowhere Prophet' UNITY3D_NAME='NowhereProphet' ARCHIVE_BASE_0='nowhere_prophet_1_07_013_ichcha_49715.sh' ARCHIVE_BASE_0_MD5='a88b8aaf466ffffb0f9515b5e53d2366' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.07.013-gog49715' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nowhere_prophet' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nyx-quest.sh0000755000000000000000000000367214471751340014145 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nyx Quest # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='nyx-quest' GAME_NAME='NyxQuest: Kindred Spirits' ARCHIVE_BASE_0_NAME='setup_nyxquest_kindred_spirits_1.3_(36614).exe' ARCHIVE_BASE_0_MD5='eb9e6d7fd8136bbf581ab350fe7bb85b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.3-gog36614' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nyxquest_kindred_spirits' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' devil.dll openal32.dll wrap_oal.dll nyxquest.exe' CONTENT_GAME_DATA_FILES=' datapc nyx_icon.ico' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Over the Top Games/NyxQuest' APP_MAIN_EXE='nyxquest.exe' APP_MAIN_ICON='nyx_icon.ico' 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" # 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-obduction.sh0000755000000000000000000000406214471751340014150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Obduction # Send your bug reports to contact@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='obduction' GAME_NAME='Obduction' ARCHIVE_BASE_0_NAME='setup_obduction_1.8.4.1-ssl_(51210).exe' ARCHIVE_BASE_0_MD5='02477c05bece9e1655adc31bbc5a89fa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_obduction_1.8.4.1-ssl_(51210)-1.bin' ARCHIVE_BASE_0_PART1_MD5='834211d7c8218965106369575f72c3ac' ARCHIVE_BASE_0_PART2_NAME='setup_obduction_1.8.4.1-ssl_(51210)-2.bin' ARCHIVE_BASE_0_PART2_MD5='73e5a3a0b413f24ea0e7348e86301b11' ARCHIVE_BASE_0_SIZE='9300000' ARCHIVE_BASE_0_VERSION='1.8.4.1-gog51210' ARCHIVE_BASE_0_URL='https://www.gog.com/game/obduction' UNREALENGINE4_NAME='obduction' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' obduction_user_manual.pdf' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oceans-heart.sh0000755000000000000000000000363214471751340014535 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ocean's Heart # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='oceans-heart' GAME_NAME='Ocean’s Heart' ARCHIVE_BASE_0_NAME='setup_oceans_heart_1.0.2(6)_(64bit)_(46977).exe' ARCHIVE_BASE_0_MD5='38550d8340ea0a7ad61b41aeabd13c3d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0.2.6-gog46977' ARCHIVE_BASE_0_URL='https://www.gog.com/game/oceans_heart' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' oceans-heart.exe *.dll' CONTENT_GAME_DATA_FILES=' data.solarus' CONTENT_DOC_DATA_FILES=' license.solarus.txt license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/OceansHeart' APP_MAIN_EXE='oceans-heart.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-octodad-dadliest-catch.sh0000755000000000000000000000445314471751340016452 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Octodad Dadliest Catch # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='octodad-dadliest-catch' GAME_NAME='Octodad Dadliest Catch' ARCHIVE_BASE_0='OctodadDadliestCatch1.2.19351.tar.gz' ARCHIVE_BASE_0_MD5='df1ded6c02d856a23c2dba919c3be40a' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.19351-humble170512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/octodad-dadliest-catch' CONTENT_PATH_DEFAULT='Octodad Dadliest Catch' CONTENT_LIBS_BIN_FILES=' libfmodevent-4.44.30.so libfmodex-4.44.30.so' CONTENT_GAME_BIN_FILES=' OctodadDadliestCatch' CONTENT_GAME_DATA_FILES=' Content icon_512x512.png' USER_PERSISTENT_FILES=' *.odad *.txt *.xml' APP_MAIN_EXE='OctodadDadliestCatch' APP_MAIN_ICON='icon_512x512.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" 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' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oddworld-abes-oddysee.sh0000755000000000000000000000412414471751340016341 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Oddworld: Abe's Oddysee # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='oddworld-abes-oddysee' GAME_NAME='Oddworld: Abeʼs Oddysee' ARCHIVE_BASE_1_NAME='setup_abes_oddysee_1.0_(19071).exe' ARCHIVE_BASE_1_MD5='1c60cd9f43cc6392fc7c5185580eb048' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='650000' ARCHIVE_BASE_1_VERSION='1.0-gog19071' ARCHIVE_BASE_1_URL='https://www.gog.com/game/oddworld_abes_oddysee' ARCHIVE_BASE_0_NAME='setup_abes_oddysee_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='c22a44d208e524dc2760ea6ce57829d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='2.1-gog2.0.0.4' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' abewin.exe' CONTENT_GAME_DATA_FILES=' *.ddv *.lvl' CONTENT_DOC_DATA_FILES=' *.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='abewin.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" # 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-old-world.sh0000755000000000000000000000741514471751340014072 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 contact@dotslashplay.it ### script_version=20240808.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='old-world' GAME_NAME='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='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='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='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='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='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" # 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-one-hand-clapping.sh0000755000000000000000000000437414471751340015454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # One Hand Clapping # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='one-hand-clapping' GAME_NAME='One Hand Clapping' ARCHIVE_BASE_0='setup_one_hand_clapping_1.0.41_release_(54430).exe' ARCHIVE_BASE_0_MD5='039da011a24466dc791b91c34ba1f6a3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.0.41-gog54430' ARCHIVE_BASE_0_URL='https://www.gog.com/game/one_hand_clapping' UNITY3D_NAME='one hand clapping' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bad Dream Games/One Hand Clapping' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-order-of-the-thorne.sh0000755000000000000000000000332414471751340015752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Order of the Thorne # send your bug reports to contact@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='order-of-the-thorne' GAME_NAME='Order of the Thorne: The Kingʼs Challenge' ARCHIVE_BASE_0_NAME='gog_order_of_the_thorne_the_king_s_challenge_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='16dde031dcfb730be1d94bde77306b0d' ARCHIVE_BASE_0_SIZE='790000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/order_of_the_thorne_the_kings_challenge' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' acsetup.cfg agsgame.dat modules.lst *.vox' CONTENT_DOC_MAIN_FILES=' licenses' APP_MAIN_SCUMMID='ags:oott' APP_MAIN_ICON='oott-tkc.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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ori-and-the-blind-forest.sh0000755000000000000000000000652014471751340016660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Thomas Vasileiou set -o errexit ### # Ori and the Blind Forest # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='ori-and-the-blind-forest' GAME_NAME='Ori and the Blind Forest' ARCHIVE_BASE_1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474).exe' ARCHIVE_BASE_1_MD5='510199277acd79e434ceaccf9b28a71c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-1.bin' ARCHIVE_BASE_1_PART1_MD5='44382e02153ed54ab4ed182c252fe9f5' ARCHIVE_BASE_1_PART2_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-2.bin' ARCHIVE_BASE_1_PART2_MD5='c8c12108e5e7cebd46a7a78c995a5f1a' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.0-gog28474' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ori_and_the_blind_forest_definitive_edition' ARCHIVE_BASE_0_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1dedfb0663ebbe82d051a62dc68149b5' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='d5ec4ea264c372a4fdd52b5ecbd9efe6' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='94c3d33701eadca15df9520de55f6f03' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='oride' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/*.assets ${UNITY3D_NAME}_data/*.assets.ress" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Ori and the Blind Forest DE' APP_MAIN_OPTIONS='-force-d3d9' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' 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" ## Ensure easy upgrade from packages generated using pre-20211129.5 game script PKG_DATA_ASSETS_PROVIDES=' ori-and-the-blind-forest-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-osmos.sh0000755000000000000000000000507614471751340013330 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Osmos # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='osmos' GAME_NAME='Osmos' ARCHIVE_BASE_0_NAME='Osmos_1.6.1.tar.gz' ARCHIVE_BASE_0_MD5='ed2cb029c20c25de719c28062e6fc9cf' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.6.1-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/osmos' CONTENT_PATH_DEFAULT='Osmos' CONTENT_GAME_BIN64_FILES=' Osmos.bin64' CONTENT_GAME_BIN32_FILES=' Osmos.bin32' CONTENT_GAME_DATA_FILES=' Fonts Icons Sounds Textures *.cfg *.loc' CONTENT_DOC_DATA_FILES=' *.html *.txt' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BIN64='Osmos.bin64' APP_MAIN_EXE_BIN32='Osmos.bin32' for icon_size in 16 22 32 36 48 64 72 96 128 192 256; do APP_MAIN_ICONS_LIST="${APP_MAIN_ICONS_LIST:-} APP_MAIN_ICON_${icon_size}" export "APP_MAIN_ICON_${icon_size}"="Icons/${icon_size}x${icon_size}.png" done 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 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libstdc++.so.6 libvorbisfile.so.3 libX11.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" # 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-our-life-beginning-and-always.sh0000755000000000000000000000456014471751340017703 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Our Life: Beginnings & Always # send your bug reports to contact@dotslashplay.it ### script_version=20230409.1 GAME_ID='our-life-beginning-and-always' GAME_NAME='Our Life: Beginnings & Always' ARCHIVE_BASE_0='our_life_beginnings_always_1_6_2_59318.sh' ARCHIVE_BASE_0_MD5='543ec491817a024342902bd379d56fe6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.6.2-gog59318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/our_life_beginnings_always' RENPY_NAME='OurLife' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=" lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/python2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/linux-x86_64/${RENPY_NAME}" APP_MAIN_ICON='icon.png' 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 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-out-of-line.sh0000755000000000000000000000353414471751340014323 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Out of Line # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='out-of-line' GAME_NAME='Out of Line' ARCHIVE_BASE_0_NAME='setup_out_of_line_1.0.1.2_(50411).exe' ARCHIVE_BASE_0_MD5='5cf39c90da563dc21776536b1904b0df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50411' ARCHIVE_BASE_0_URL='https://www.gog.com/game/out_of_line' UNITY3D_NAME='out of line' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nerd Monkeys/Out of Line' PACKAGES_LIST=' PKG_BIN 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' # 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-out-there.sh0000755000000000000000000000711014471751340014073 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Out There # send your bug reports to contact@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='out-there' GAME_NAME='Out There: Ω Edition' ARCHIVE_BASE_LINUX_0_NAME='OutThere2-4-2Linux.zip' ARCHIVE_BASE_LINUX_0_MD5='8ea51a42c9ad221e3d258e404c7106b0' ARCHIVE_BASE_LINUX_0_SIZE='340000' ARCHIVE_BASE_LINUX_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/out-there-edition' ## Support for the Windows version is included because of poor mouse support in the Linux build. ARCHIVE_BASE_WINDOWS_0_NAME='OutThere2-4-2.zip' ARCHIVE_BASE_WINDOWS_0_MD5='8b23dde3778ade4db73a3ed76c4134cd' ARCHIVE_BASE_WINDOWS_0_SIZE='300000' ARCHIVE_BASE_WINDOWS_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/out-there-edition' UNITY3D_NAME_LINUX='OutThereOmega' UNITY3D_NAME_WINDOWS='outthereomega' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/MiClos Studio/OutThereOmegaEdition' PACKAGES_LIST_LINUX=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_WINDOWS=' PKG_BIN PKG_DATA' 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' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN64_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN32_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN64_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN32_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' 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_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete Apple archives junk. find . -name '*.rsrc' -delete ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_WINDOWS_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overboard.sh0000755000000000000000000000334414471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overboard # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='overboard' GAME_NAME='Overboard!' ARCHIVE_BASE_0_NAME='setup_overboard_1.3.1_(64bit)_(48184).exe' ARCHIVE_BASE_0_MD5='7b8ad8c5b7325f9d7904880c1b72d064' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.3.1-gog48184' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overboard' UNITY3D_NAME='overboard!' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' userdata:users/${USER}/AppData/LocalLow/Inkle Ltd/Overboard!' 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" # 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-overgrowth.sh0000755000000000000000000000546214471751340014375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overgrowth # send your bug reports to contact@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='overgrowth' GAME_NAME='Overgrowth' ARCHIVE_BASE_0='overgrowth-1.4.0_build-5584-linux64.zip' ARCHIVE_BASE_0_MD5='748f6888386d842193218c53396ac844' ARCHIVE_BASE_0_SIZE='22000000' ARCHIVE_BASE_0_VERSION='1.4.0.5584-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/overgrowth' CONTENT_PATH_DEFAULT='Overgrowth' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" ## The game binary is linked against libsteam_api.so. CONTENT_LIBS_BIN_FILES=' libsteam_api.so' CONTENT_GAME_BIN_FILES=' Overgrowth.bin.x86_64' CONTENT_GAME_TEXTURES_TERRAIN_FILES=' Data/Textures/Terrain' CONTENT_GAME_TEXTURES_FILES=' Data/Textures' CONTENT_GAME_DATA_FILES=' Data' USER_PERSISTENT_DIRECTORIES=' Data/Levels Data/Mods Data/Scripts' APP_MAIN_EXE='Overgrowth.bin.x86_64' APP_MAIN_ICON='Data/Textures/ui/ogicon.png' PACKAGES_LIST='PKG_BIN PKG_TEXTURES_TERRAIN PKG_TEXTURES PKG_DATA' PKG_TEXTURES_TERRAIN_ID="${GAME_ID}-textures-terrain" PKG_TEXTURES_TERRAIN_DESCRIPTION='textures - terrain' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES_DEPS="$PKG_TEXTURES_TERRAIN_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreeimage.so.3 libgcc_s.so.1 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 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_net-2.0.so.0 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overload.sh0000755000000000000000000000454314471751340014001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Overload # send your bug reports to contact@dotslashplay.it ### script_version=20230713.1 GAME_ID='overload' GAME_NAME='Overload' ARCHIVE_BASE_0='overload_1_1_1886_38734.sh' ARCHIVE_BASE_0_MD5='63a7aa141098ec0b15ce1e01eec21f6b' ARCHIVE_BASE_0_SIZE='7300000' ARCHIVE_BASE_0_VERSION='1.1-gog38734' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overload' UNITY3D_NAME='Overload' ## The game fails to start if libCSteamworks.so is not found, ## and libsteam_api.so is a requirement of libCSteamworks.so. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' Licenses.txt ReadMe.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-owlboy.sh0000755000000000000000000001124214471751340013473 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Owlboy # send your bug reports to contact@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='owlboy' GAME_NAME='Owlboy' ARCHIVE_BASE_0_NAME='owlboy-01302020-bin' ARCHIVE_BASE_0_MD5='0d8d67c79b9359ee4b79913b6b640465' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='518307' ARCHIVE_BASE_0_VERSION='1.3.7013.40718-humble200130' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/owlboy' ARCHIVE_BASE_MULTIARCH_3_NAME='owlboy-03152019-bin' ARCHIVE_BASE_MULTIARCH_3_MD5='2966b183f43f220ade646cb3f7872c49' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_3_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_3_SIZE='550000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.3.7013.40178-humble190325' ARCHIVE_BASE_MULTIARCH_2_NAME='owlboy-12292017.bin' ARCHIVE_BASE_MULTIARCH_2_MD5='c2e99502013c7d2529bc2aefb6416dcf' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_2_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_2_SIZE='570000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.3.6564.30139-humble1' ARCHIVE_BASE_MULTIARCH_1_NAME='owlboy-11022017-bin' ARCHIVE_BASE_MULTIARCH_1_MD5='d3a1e4753a604431c58eb1ea26c35543' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_1_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_1_SIZE='570000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.6515.19883-humble171102' ARCHIVE_BASE_MULTIARCH_0_NAME='owlboy-05232017-bin' ARCHIVE_BASE_MULTIARCH_0_MD5='f35fba69fadffbf498ca8a38dbceeac1' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_0_SIZE='570000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.2.6382.15868-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_FILES=' libmojoshader.so libXNAFileDialog.so' ## The shipped FAudio must be used to prevent game crashes CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libFAudio.so.0" CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' content monoconfig monomachineconfig Owlboy.bmp Owlboy.exe FNA.dll FNA.dll.config GamedevUtility.dll MoonSharp.Interpreter.dll SharpFont.dll SharpFont.dll.config TimSort.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' USER_PERSISTENT_FILES=' content/fonts/*.ini content/localizations/*/speechbubbleconfig.ini' APP_MAIN_EXE='Owlboy.exe' APP_MAIN_ICON='Owlboy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64' PACKAGES_LIST_MULTIARCH=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-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.Design.dll System.Drawing.dll System.Management.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Convert .ini files to Unix-style line separators SCRIPT_DEPS="${SCRIPT_DEPS:-} find 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert .ini files to Unix-style line separators find . -type f -name '*.ini' \ -exec dos2unix --quiet '{}' + ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pacapong.sh0000755000000000000000000000402214471751340013746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pacapong # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='pacapong' GAME_NAME='Pacapong' ARCHIVE_BASE_0='pacapong_linux.zip' ARCHIVE_BASE_0_MD5='658c091abea7305cd0a33d367c251cc3' ARCHIVE_BASE_0_SIZE='8800' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://kingpenguin.itch.io/pacapong' CONTENT_PATH_DEFAULT='pacapong' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pan-pan.sh0000755000000000000000000000437414471751340013522 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pan-Pan # send your bug reports to contact@dotslashplay.it ### script_version=20231109.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pan-pan' GAME_NAME='Pan-Pan' ARCHIVE_BASE_1_NAME='gog_pan_pan_2.1.0.3.sh' ARCHIVE_BASE_1_MD5='8ed86bee78bd42b531d2969c898d0dc4' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.0.3-gog2.1.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/panpan' ARCHIVE_BASE_0_NAME='gog_pan_pan_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='a258086331e913f8cf8110983da234d1' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.3-gog2.1.0.2' UNITY3D_NAME='PAN-PAN' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pandemonium.sh0000755000000000000000000000372014471751340014476 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 ### # Pandemonium # send your bug reports to contact@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pandemonium' GAME_NAME='Pandemonium!' ARCHIVE_BASE_0_NAME='setup_pandemonium_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='dee53eb1c87be925d64e75ea01eca74f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pandemonium' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.bat *.cnf *.dll *.exe' CONTENT_GAME_DATA_FILES=' *.pkg' APP_MAIN_EXE='pandy.exe' APP_MAIN_ICON='gfw_high.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" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Rename some shipped files. mv 'pandy3.exe' 'pandy.exe' mv 'full3.cnf' 'resource.cnf' ) # 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-panmorphia.sh0000755000000000000000000000354014471751340014320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Panmorphia # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='panmorphia' GAME_NAME='Panmorphia' ARCHIVE_BASE_0_NAME='Panmorphia_LinuxNew.zip' ARCHIVE_BASE_0_MD5='09b08b517c792ca4ea4f0ccf5151fd95' ARCHIVE_BASE_0_SIZE='245308' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://lkmad.itch.io/panmorphia' UNITY3D_NAME='Panmorphia' UNITY3D_PLUGINS=' ScreenSelector.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 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" # 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-paper-sorcerer.sh0000755000000000000000000000464014471751340015115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paper Sorcerer # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='paper-sorcerer' GAME_NAME='Paper Sorcerer' UNITY3D_NAME='PaperSorcererLinux' ARCHIVE_BASE_0='PaperSorcerer2.5Linux.tar.bz2' ARCHIVE_BASE_0_MD5='243a14601379175b840e6878b211fe1a' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='2.5-humble150512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/paper-sorcerer' CONTENT_PATH_DEFAULT='PaperSorcerer2.5Linux' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-papers-please.sh0000755000000000000000000000377114471751340014731 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Papers, Please # send your bug reports to contact@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='papers-please' GAME_NAME='Papers, Please' ARCHIVE_BASE_0_NAME='papers-please_1.4.11.124_x64.tgz' ARCHIVE_BASE_0_MD5='694d7b4fcc0766df3c7c28dbc2154b94' ARCHIVE_BASE_0_SIZE='95754' ARCHIVE_BASE_0_VERSION='1.4.11.124-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/papers-please' UNITY3D_NAME='PapersPlease' CONTENT_PATH_DEFAULT='papers-please' CONTENT_DOC_DATA_FILES=' LICENSE README' 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' 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 empty Plugins directory rmdir "$(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-papetura.sh0000755000000000000000000000333614471751340014006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Papetura # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='papetura' GAME_NAME='Papetura' ARCHIVE_BASE_0_NAME='setup_papetura_1.1a_(49052).exe' ARCHIVE_BASE_0_MD5='d87f9c1f11d2c86b47d0df52feda06ef' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.1a-gog49052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/papetura' UNITY3D_NAME='papetura' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Petums/Papetura' 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-papo-and-yo.sh0000755000000000000000000000520514471751340014306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Papo and Yo # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='papo-and-yo' GAME_NAME='Papo and Yo' ARCHIVE_BASE_0='PapoYo_linux_1389070953.sh' ARCHIVE_BASE_0_MD5='d8222b87222f4eb05025584bf923da41' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='2014010601-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/papo-yo' CONTENT_PATH_DEFAULT='data/noarch' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/steam_appid.txt Binaries/Linux/PYGame-Linux' CONTENT_LIBS_BIN_PATH='data/x86/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libsteam_api.so libPhysXCooking.so libPhysXCore.so libtcmalloc.so.0' CONTENT_GAME_DATA_FILES=' Engine PYGame PapoYoIcon.bmp PapoYoIcon.png' CONTENT_DOC_DATA_FILES=' about.html BuildVersion.txt README.linux UpdateLog.txt' APP_MAIN_EXE='Binaries/Linux/PYGame-Linux' APP_MAIN_ICON='PapoYoIcon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 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' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-paradise-killer.sh0000755000000000000000000000350714471751340015235 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Paradise Killer # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='paradise-killer' GAME_NAME='Paradise Killer' ARCHIVE_BASE_0_NAME='setup_paradise_killer_1.2.04.0_(53942).exe' ARCHIVE_BASE_0_MD5='1d7daf90ae9ddb2516af904154fcec13' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_paradise_killer_1.2.04.0_(53942)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c52a3990f84a9daf47e5e27f2fc68d24' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.04.0-gog53942' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paradise_killer' UNREALENGINE4_NAME='paradisekiller' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='paradisekiller.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-paramedium-1.sh0000755000000000000000000000325014471751340014442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Paramedium 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='paramedium-1' GAME_NAME='Paramedium: A Noise in the Attic' ARCHIVE_BASE_0_NAME='Paramedium1.rar' ARCHIVE_BASE_0_MD5='7ce9c2a4779fde265a90975ab461b605' ARCHIVE_BASE_0_SIZE='540000' ARCHIVE_BASE_0_VERSION='1.3-itch' ARCHIVE_BASE_0_URL='https://dinmoney.itch.io/paramedium' UNITY3D_NAME='Paramedium' CONTENT_PATH_DEFAULT='Paramedium1.3' WINE_WINETRICKS_VERBS='arial' 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-particulars.sh0000755000000000000000000000464414471751340014521 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Particulars # send your bug reports to contact@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='particulars' GAME_NAME='Particulars' ARCHIVE_BASE_0_NAME='particulars_lin_latest1416421559.zip' ARCHIVE_BASE_0_MD5='b7b269b8e33d682a2fca5c548928dabf' ARCHIVE_BASE_0_SIZE='1308919' ARCHIVE_BASE_0_VERSION='1.0.0.2-humble141119' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/particulars' UNITY3D_NAME='p_1-0-0-2' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='particulars_1.0.0.2_lin' ## TODO: Check if the Steam libraries are required CONTENT_LIBS_BIN_FILES=' libsteam_api.so libSteamworksNative.so' CONTENT_DOC_DATA_FILES=' readme.txt release_notes.txt licenses' 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' 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-pavilion.sh0000755000000000000000000000414414471751340014004 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pavilion # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pavilion' GAME_NAME='Pavilion' ARCHIVE_BASE_0_NAME='Pavilion_Linux_v1.31' ARCHIVE_BASE_0_MD5='82fb0659f230ab2b01e79aeb80df1ec3' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='1820996' ARCHIVE_BASE_0_VERSION='1.31-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pavilion' UNITY3D_NAME='pavilion' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Pavilion Linux(v1.31)' CONTENT_DOC_DATA_FILES=' RELEASE_NOTES.txt' 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=' 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" # 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-peck-n-run.sh0000755000000000000000000000351314471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Peck N Run # send your bug reports to contact@dotslashplay.it ### script_version=20240404.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='peck-n-run' GAME_NAME='Peck N Run' ARCHIVE_BASE_0_NAME='peck-n-run-windows-release.zip' ARCHIVE_BASE_0_MD5='2b355dea05894f71c248cf0a4583cfb0' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.10-itch' ARCHIVE_BASE_0_URL='https://spiltmilkstudios.itch.io/peck-n-run' UNITY3D_NAME='PeckNRun' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Spilt Milk Studios\BirdGamePrototype' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pendula-swing.sh0000755000000000000000000000432714471751340014743 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pendula Swing # send your bug reports to contact@dotslashplay.it ### script_version=20230811.3 GAME_ID='pendula-swing' GAME_NAME='Pendula Swing: The Complete Journey' ARCHIVE_BASE_0='PendulaSwingTheCompleJourney.zip' ARCHIVE_BASE_0_MD5='afbec54341d36c29baa08feb538b9613' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='3.1.4-itch.2020.06.08' ARCHIVE_BASE_0_URL='https://valiant-game-studio.itch.io/pendula-swing-the-complete-journey' UNITY3D_NAME='PendulaSwing' CONTENT_PATH_DEFAULT='Build' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins MonoBleedingEdge UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Valiant Game Studio/PendulaSwing' APP_MAIN_EXE="${UNITY3D_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" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-perimeter.sh0000755000000000000000000000416614471751340014163 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 contact@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-phoning-home.sh0000755000000000000000000000410414471751340014547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Phoning Home # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='phoning-home' GAME_NAME='Phoning Home' ARCHIVE_BASE_0_NAME='setup_phoning_home_1.4.1_(21995).exe' ARCHIVE_BASE_0_MD5='8e3f9102af055a2efc1355156ac0e64a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_phoning_home_1.4.1_(21995)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ff6b6b6b4aea7335addd43fe611adec4' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='1.4.1-gog21995' ARCHIVE_BASE_0_URL='https://www.gog.com/game/phoning_home' UNITY3D_NAME='phoninghome' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ion Lands/Phoning Home' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Ion Lands\Phoning Home' ## Install required font. ## Without it, resolution options in the game menu are not shown. WINE_WINETRICKS_VERBS='arial' 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-pid.sh0000755000000000000000000000354214471751340012740 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pid # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pid' GAME_NAME='Pid' ARCHIVE_BASE_1_NAME='setup_pid_gog-1_(18421).exe' ARCHIVE_BASE_1_MD5='d6cd6899df3b2ad13071f58d0362ab3a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.0-gog18421' ARCHIVE_BASE_1_URL='https://www.gog.com/game/pid' ARCHIVE_BASE_0=_NAME'setup_pid_2.2.0.8.exe' ARCHIVE_BASE_0_MD5='02ebb3db7572b1e6c28dce439a76df9a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog2.2.0.8' UNITY3D_NAME='pid' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_DIRECTORIES=' saves' 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-pier-solar.sh0000755000000000000000000000547614471751340014251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Pier Solar and the Great Architects # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pier-solar' GAME_NAME='Pier Solar and the Great Architects' ARCHIVE_BASE_GOG_0_NAME='gog_pier_solar_and_the_great_architects_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='2de03fb6d69944e3f204d5ae45147a3e' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.3.2-gog2.1.0.4' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pier_solar_and_the_great_architects' ARCHIVE_BASE_HUMBLE_0_NAME='PierSolar_linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e5ceda3a75cab3fe9b1ad1cbaf2d4a1d' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.2-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/pier-solar-and-the-great-architects-special-edition' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='PierSolar_linux' CONTENT_GAME_BIN64_FILES=' pshd.linux64' CONTENT_GAME_BIN32_FILES=' pshd.linux32' CONTENT_GAME_DATA_FILES=' data icon.png' CONTENT_GAME_DOC_FILES=' README.txt' APP_MAIN_EXE_BIN64='pshd.linux64' APP_MAIN_EXE_BIN32='pshd.linux32' APP_MAIN_ICON='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" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pikuniku.sh0000755000000000000000000000415214471751340014021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pikuniku # send your bug reports to contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pikuniku' GAME_NAME='Pikuniku' ARCHIVE_BASE_0_NAME='Pikuniku_Linux.zip' ARCHIVE_BASE_0_MD5='93faafa1fe66c8038c61c87364caf121' ARCHIVE_BASE_0_SIZE='342205' ARCHIVE_BASE_0_VERSION='1.0.5-itch' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/pikuniku' UNITY3D_NAME='Pikuniku' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' 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 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" # 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-pilgrims.sh0000755000000000000000000000431114471751340014005 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pilgrims # send your bug reports to contact@dotslashplay.it ### script_version=20231128.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pilgrims' GAME_NAME='Pilgrims' ARCHIVE_BASE_0_NAME='pilgrims_1_0_8_274_43259.sh' ARCHIVE_BASE_0_MD5='9ca019527382dd91d565ae90c2f4c59e' ARCHIVE_BASE_0_SIZE='548596' ARCHIVE_BASE_0_VERSION='1.0.8.274-gog43259' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pilgrims' UNITY3D_NAME='Pilgrims' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x86" APP_MAIN_EXE="${UNITY3D_NAME}.x86" 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=' 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pine.sh0000755000000000000000000000513014471751340013112 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pine # send your bug reports to contact@dotslashplay.it ### script_version=20230324.1 GAME_ID='pine' GAME_NAME='Pine' ARCHIVE_BASE_0='pine_patch_13_ef57f2e2_41600.sh' ARCHIVE_BASE_0_MD5='0b5efc1376e27b95eed1380eb32ecb34' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.13-gog41600' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pine' UNITY3D_NAME='Pine' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" 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 target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-heaven.sh0000755000000000000000000000366414471751340014376 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Heaven # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-heaven' GAME_NAME='Pink Heaven' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHeavenEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7d1b3e193a5ba9618cba1ffb0c977762' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHeavenEn' CONTENT_GAME_BIN_FILES=' PinkHeaven.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHeaven.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-hour.sh0000755000000000000000000000364614471751340014105 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Hour # send your bug reports to contact@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-hour' GAME_NAME='Pink Hour' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHourEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7cd38735bf02634474eb8bf5a39439b2' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHourEn' CONTENT_GAME_BIN_FILES=' PinkHour.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHour.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pinstripe.sh0000755000000000000000000000427414471751340014204 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pinstripe # send your bug reports to contact@dotslashplay.it ### script_version=20241108.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pinstripe' GAME_NAME='Pinstripe' ARCHIVE_BASE_0_NAME='pinstripe_en_2_0_2_21609.sh' ARCHIVE_BASE_0_MD5='369f761e1cb1159838a2ae8f82313a92' ARCHIVE_BASE_0_SIZE='1450210' ## TODO: Check that 2.1.0 vs. "2_0_2" in the installer name is expected ARCHIVE_BASE_0_VERSION='2.1.0-gog21609' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pinstripe' UNITY3D_NAME='Pinstripe' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='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 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 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-pirates.sh0000755000000000000000000000620014471751340013625 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pirates series: # - Pirates # - Pirates Gold # send your bug reports to contact@dotslashplay.it ### script_version=20240621.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pirates' GAME_NAME='Pirates!' GAME_ID_GOLD='pirates-gold' GAME_NAME_GOLD='Pirates Gold' ARCHIVE_BASE_0_NAME='gog_pirates_2.0.0.8.sh' ARCHIVE_BASE_0_MD5='885cdb8f2119a278fb15a32cafad64a8' ARCHIVE_BASE_0_SIZE='12000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_GOLD_1_NAME='gog_pirates_gold_2.0.0.9.sh' ARCHIVE_BASE_GOLD_1_MD5='1eec642e9d7337b9456775d110760a80' ARCHIVE_BASE_GOLD_1_SIZE='39000' ARCHIVE_BASE_GOLD_1_VERSION='1.0-gog2.0.0.9' ARCHIVE_BASE_GOLD_1_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_GOLD_0_NAME='gog_pirates_gold_2.0.0.8.sh' ARCHIVE_BASE_GOLD_0_MD5='ea602d91950cffa615abae567f498989' ARCHIVE_BASE_GOLD_0_SIZE='39000' ARCHIVE_BASE_GOLD_0_VERSION='1.0-gog2.0.0.8' CONTENT_PATH_DEFAULT='data/noarch/classic/Pirates!' CONTENT_PATH_DEFAULT_GOLD='data/noarch/data' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES=' *' CONTENT_GAME_MAIN_FILES_GOLD=' MPS PIRATESC PIRATESG.CD DATA.DAT' CONTENT_DOC_MAIN_PATH_GOLD='data/noarch/docs' CONTENT_DOC_MAIN_FILES_GOLD=' flags.pdf manual.pdf' GAME_IMAGE_GOLD='DATA.DAT' GAME_IMAGE_TYPE='iso' APP_MAIN_EXE='pir.exe' APP_MAIN_EXE_GOLD='PIRATESG.EXE' APP_MAIN_OPTIONS_GOLD='%2 %3 %4 %5' APP_MAIN_DOSBOX_PRERUN_GOLD=' d: cd PIRATESG.CD lh cdpatch %1 ' APP_MAIN_DOSBOX_POSTRUN_GOLD=' cdpatch x ' APP_MAIN_ICON='../../support/icon.png' APP_MAIN_ICON_GOLD='piratesg.ico' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE_GOLD='dosbox' # 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 content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_GOLD_'*) ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } ## Set the context-specific values of some variables. GAME_IMAGE=$(context_value 'GAME_IMAGE') APP_MAIN_DOSBOS_PRERUN=$(context_value 'APP_MAIN_DOSBOS_PRERUN') APP_MAIN_DOSBOS_POSTRUN=$(context_value 'APP_MAIN_DOSBOS_POSTRUN') ;; esac launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pixel-piracy.sh0000755000000000000000000000467514471751340014602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pixel Piracy # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pixel-piracy' GAME_NAME='Pixel Piracy' ARCHIVE_BASE_GOG_0_NAME='gog_pixel_piracy_2.5.0.9.sh' ARCHIVE_BASE_GOG_0_MD5='b689db9e42afa0a83d364f95cfb4d6bf' ARCHIVE_BASE_GOG_0_SIZE='290000' ARCHIVE_BASE_GOG_0_VERSION='1.1.21-gog2.5.0.9' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pixel_piracy' ## This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_HUMBLE_0_NAME='pixelpiracy_Linux1.1.21.zip' ARCHIVE_BASE_HUMBLE_0_MD5='18fb2d3f8adf6f320d507653298dc504' ARCHIVE_BASE_HUMBLE_0_SIZE='284617' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.21-humble150612' UNITY3D_NAME='linux' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Linux' 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 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-planet-alpha.sh0000755000000000000000000000366014471751340014533 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Planet Alpha # send your bug reports to contact@dotslashplay.it ### script_version=20240611.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='planet-alpha' GAME_NAME='Planet Alpha' ARCHIVE_BASE_0_NAME='setup_planet_alpha_1.0.5.1_(64bit)_(29703).exe' ARCHIVE_BASE_0_MD5='34accc9442958f022da8a71965bf2fcd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_planet_alpha_1.0.5.1_(64bit)_(29703)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8e8b478e391a70f6e45e97b6def77155' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.0.5.1-gog29703' ARCHIVE_BASE_0_URL='https://www.gog.com/game/planet_alpha' UNREALENGINE4_NAME='planetalpha' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' 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-plant-daddy.sh0000755000000000000000000000457014471751340014367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Plant Daddy # send your bug reports to contact@dotslashplay.it ### script_version=20231002.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='plant-daddy' GAME_NAME='Plant Daddy' ARCHIVE_BASE_2='plantdaddy-linux-1.2.2.zip' ARCHIVE_BASE_2_MD5='e64ec41dec67d889cfac4763147af384' ARCHIVE_BASE_2_SIZE='130000' ARCHIVE_BASE_2_VERSION='1.2.2-itch1' ARCHIVE_BASE_2_URL='https://overfull.itch.io/plantdaddy' ARCHIVE_BASE_1='plantdaddy-linux-1.2.1.zip' ARCHIVE_BASE_1_MD5='1a863b49a4fe6e4c5ad136d808912058' ARCHIVE_BASE_1_SIZE='140000' ARCHIVE_BASE_1_VERSION='1.2.1-itch1' ARCHIVE_BASE_0='plantdaddy-linux-1.2.0.zip' ARCHIVE_BASE_0_MD5='b626d5a0512cc0334749de3ec137c492' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.2.0-itch1' UNITY3D_NAME='plantdaddy' UNITY3D_NAME_0='plantdaddy-linux-1.2' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES_0=" ${UNITY3D_NAME}_Data/MonoBleedingEdge UnityPlayer.so plantdaddy-linux-1.2.0" APP_MAIN_EXE_0='plantdaddy-linux-1.2.0' 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 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pokemon-insurgence.sh0000755000000000000000000000404614471751340015774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pokemon Insurgence # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='pokemon-insurgence' GAME_NAME='Pokemon Insurgence' ARCHIVE_BASE_0_NAME='Pokemon Insurgence 1.2.5 Core.zip' ARCHIVE_BASE_0_MD5='d992c31fe67ffc0a72c4274caaa4a977' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.2.5-insurgence1' ARCHIVE_BASE_0_URL='https://p-insurgence.com/' CONTENT_PATH_DEFAULT='Pokemon Insurgence 1.2.5 Core' CONTENT_GAME_BIN_FILES=' Game.exe Game.ini *.dll' CONTENT_GAME_DATA_FILES=' Audio Data Egglocke Eggs Fonts Graphics Game.rgssad' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Pokemon Insurgence' ## Ensure availability of fonts expected by the game engine. WINE_WINETRICKS_VERBS='arial' APP_MAIN_EXE='Game.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=' audio/mpeg, mpegversion=(int)1, layer=(int)3' # 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.sh0000755000000000000000000000471214471751340015566 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 contact@dotslashplay.it ### script_version=20241126.1 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' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.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 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-poly-bridge.sh0000755000000000000000000000477314471751340014410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Poly Bridge # send your bug reports to contact@dotslashplay.it ### script_version=20241130.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='poly-bridge' GAME_NAME='Poly Bridge' ## This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_0_NAME='polybridge-105-linux.zip' ARCHIVE_BASE_0_MD5='cb7644e3ee055addaa4e7a8a727282cb' ARCHIVE_BASE_0_SIZE='254181' ARCHIVE_BASE_0_VERSION='105-humble180330' UNITY3D_NAME='polybridge' UNITY3D_PLUGINS=' libfastlz.so liblz4.so liblzma.so libzipw.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='polybridge-105-linux' 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-populous-3.sh0000755000000000000000000000622014471751340014206 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 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='populous-3' GAME_NAME='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=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' data fmv language levels levluw objects rddata sound' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' SAVE' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='poptb.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" # Set required registry keys registry_dump_init_file='registry-dumps/init.reg' # shellcheck disable=SC1003 registry_dump_init_content='Windows Registry Editor Version 5.00 [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"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete unwanted files. rm --force --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ## Set required registry keys. mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_init_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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-populous.sh0000755000000000000000000000466714471751340014063 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Populous series: # - Populous 1 # - Populous 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240605.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='populous-1' GAME_NAME_EPISODE1='Populous: Promised Lands' GAME_ID_EPISODE2='populous-2' GAME_NAME_EPISODE2='Populous 2' 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' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/populous' 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='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='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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## TODO: APP_xxx_DOSBOX_PRERUN should be context-sensitive. APP_MAIN_DOSBOX_PRERUN=$(context_value 'APP_MAIN_DOSBOX_PRERUN') launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-potion-craft.sh0000755000000000000000000000502714471751340014571 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 contact@dotslashplay.it ### script_version=20241216.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='potion-craft' GAME_NAME='Potion Craft: Alchemy Simulator' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" 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_1_URL='https://www.gog.com/game/potion_craft_alchemist_simulator' 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 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-prince-of-persia-2008.sh0000755000000000000000000002321314471751340015713 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Prince of Persia (2008) # send your bug reports to contact@dotslashplay.it ### script_version=20240530.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='prince-of-persia-2008' GAME_NAME='Prince of Persia' ARCHIVE_BASE_0_NAME='setup_prince_of_persia_1.0_v2_(28572).exe' ARCHIVE_BASE_0_MD5='65143fe6dfb653d5fa95bb79c8022630' ## Conversion of file paths to lowercase should be skipped, to prevent a game crash on launch. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_prince_of_persia_1.0_v2_(28572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='caab8ceb59b30c75533ebd29ccd7a199' ARCHIVE_BASE_0_PART2_NAME='setup_prince_of_persia_1.0_v2_(28572)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ddc7e15fd6daf47e3085e2c66a4ca6cd' ARCHIVE_BASE_0_SIZE='8237644' ARCHIVE_BASE_0_VERSION='1.0-gog28572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/prince_of_persia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Launcher/regvs.cmd Launcher/detectionapi_rd.dll Launcher/directx9tests_rd.dll Launcher/local.dll Launcher/Launcher.exe Launcher/gameinterpreters_rd.intr Launcher/directxtests_rd.tst Launcher/systemtests_rd.tst Support binkw32.dll eax.dll Prince of Persia.exe PrinceOfPersia_Launcher.exe' CONTENT_GAME_L10N_EN_FILES=' Launcher/localization/EN/interpreter_local.ini Resources/us/GameUpdate.us DataPC_StreamedSoundsEng.forge' CONTENT_GAME_L10N_FR_FILES=' Launcher/localization/FR/interpreter_local.ini Resources/fr/GameUpdate.fr Videos/fre DataPC_StreamedSoundsFre.forge' CONTENT_GAME_DATA_FILES=' Videos/ArtGallery.bik Videos/ArtGallery_CityofLight.bik Videos/ArtGallery_DesertTemple.bik Videos/ArtGallery_RoyalePalace.bik Videos/ArtGallery_RuinedCitadel.bik Videos/ArtGallery_Vale.bik Videos/AttractMode.bik Videos/ComboList.bik Videos/Controls.bik Videos/Credits.bik Videos/DE1_001_CINV_GameIntro.bik Videos/Display.bik Videos/Extras.bik Videos/LoadGame.bik Videos/MainMenuE3.bik Videos/Options.bik Videos/SkinsManager.bik Videos/Sound.bik Videos/StartScreenE3.bik Videos/Ubi_Logo.bik Videos/VideoBlack.bik Videos/Vision1.bik Videos/Vision2.bik Videos/Vision3.bik Videos/Vision4.bik Videos/Vision5.bik ekshaderspccompress.bin DataPC.forge DataPC_Default.forge DataPC_DE.forge DataPC_Ext.forge DataPC_HC.forge DataPC_JCT.forge DataPC_lod.forge DataPC_LR.forge DataPC_OB.forge DataPC_POP0WORLD_Ext.forge DataPC_POP0WORLD.forge DataPC_RC.forge DataPC_StreamedSounds.forge' CONTENT_DOC_DATA_FILES=' ubisoft.html manual.pdf ReadMe.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Prince of Persia' APP_MAIN_EXE='Prince of Persia.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N_ID $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" # Set mandatory registry keys registry_dump_init_file='registry-dumps/init.reg' APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps ## English localization registry_dump_init_file_en='registry-dumps/init-en.reg' # shellcheck disable=SC1003 registry_dump_init_content_en='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Executable"="C:\\'"$(game_id)"'\\PrinceOfPersia_Launcher.exe" "InstallDir"="C:\\'"$(game_id)"'" "Language"="English" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "execPath"="C:\\'"$(game_id)"'\\Prince of Persia.exe" "info"="08a0f1c01d540ee143f7ee48a91898fa" "installdir"="C:\\'"$(game_id)"'" "language"="us" ' CONTENT_GAME_L10N_EN_FILES="$(content_files 'GAME_L10N_EN') $registry_dump_init_file_en" ## French localization registry_dump_init_file_fr='registry-dumps/init-fr.reg' # shellcheck disable=SC1003 registry_dump_init_content_fr='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Executable"="C:\\'"$(game_id)"'\\PrinceOfPersia_Launcher.exe" "InstallDir"="C:\\'"$(game_id)"'" "Language"="French" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000002 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "execPath"="C:\\'"$(game_id)"'\\Prince of Persia.exe" "info"="08a0f1c01d540ee143f7ee48a91898fa" "installdir"="C:\\'"$(game_id)"'" "language"="fr" ' CONTENT_GAME_L10N_FR_FILES="$(content_files 'GAME_L10N_FR') $registry_dump_init_file_fr" # Set default settings registry_dump_settings_file='registry-dumps/settings.reg' APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps ## English localization registry_dump_settings_file_en='registry-dumps/settings-en.reg' registry_dump_settings_content_en='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Engine] "AlternateVerticalSync"=dword:00000001 "AlternateVerticalSyncThreshold"=dword:00000000 "Antialiasing"=dword:00000000 "AspectRatioOverride"=dword:000000a6 "DegradedTextures"=dword:00000000 "LNG_Language"=dword:00000001 "ParticleEffectNumber"=dword:00000064 "PostEffects"=dword:00000002 "ScreenResolutionHeight"=dword:00000300 "ScreenResolutionWidth"=dword:00000500 "Shadows"=dword:00000002 "VerticalSync"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "AspectRatioOverrideCHKB"=dword:00000000 "DefaultSetting"=dword:00000001 "LauncherVersion"=dword:00000004 "LNG_Language"=dword:00000001 "Texture_lvl"=dword:00000001 "VerticalSync_lvl"=dword:00000001 "VisualQualityLvl"=dword:00000002 ' CONTENT_GAME_L10N_EN_FILES="$(content_files 'GAME_L10N_EN') $registry_dump_settings_file_en" ## French localization registry_dump_settings_file_fr='registry-dumps/settings-fr.reg' registry_dump_settings_content_fr='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Engine] "AlternateVerticalSync"=dword:00000001 "AlternateVerticalSyncThreshold"=dword:00000000 "Antialiasing"=dword:00000000 "AspectRatioOverride"=dword:000000a6 "DegradedTextures"=dword:00000000 "LNG_Language"=dword:00000002 "ParticleEffectNumber"=dword:00000064 "PostEffects"=dword:00000002 "ScreenResolutionHeight"=dword:00000300 "ScreenResolutionWidth"=dword:00000500 "Shadows"=dword:00000002 "VerticalSync"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "AspectRatioOverrideCHKB"=dword:00000000 "DefaultSetting"=dword:00000001 "LauncherVersion"=dword:00000004 "LNG_Language"=dword:00000002 "Texture_lvl"=dword:00000001 "VerticalSync_lvl"=dword:00000001 "VisualQualityLvl"=dword:00000002 ' CONTENT_GAME_L10N_FR_FILES="$(content_files 'GAME_L10N_FR') $registry_dump_settings_file_fr" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set mandatory registry keys mkdir --parents "$(dirname "$registry_dump_init_file_en")" printf '%s' "$registry_dump_init_content_en" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file_en" mkdir --parents "$(dirname "$registry_dump_init_file_fr")" printf '%s' "$registry_dump_init_content_fr" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file_fr" ## Set default settings mkdir --parents "$(dirname "$registry_dump_settings_file_en")" printf '%s' "$registry_dump_settings_content_en" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file_en" mkdir --parents "$(dirname "$registry_dump_settings_file_fr")" printf '%s' "$registry_dump_settings_content_fr" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file_fr" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Set mandatory registry keys ( cd "$(package_path 'PKG_L10N_EN')$(path_game_data)" mv "$registry_dump_init_file_en" "$registry_dump_init_file" ) ( cd "$(package_path 'PKG_L10N_FR')$(path_game_data)" mv "$registry_dump_init_file_fr" "$registry_dump_init_file" ) ## Set default settings ( cd "$(package_path 'PKG_L10N_EN')$(path_game_data)" mv "$registry_dump_settings_file_en" "$registry_dump_settings_file" ) ( cd "$(package_path 'PKG_L10N_FR')$(path_game_data)" mv "$registry_dump_settings_file_fr" "$registry_dump_settings_file" ) # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "${LANG%_*}" 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_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-prison-architect.sh0000755000000000000000000000664514471751340015451 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 contact@dotslashplay.it ### script_version=20231123.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='prison-architect' GAME_NAME='Prison Architect' ARCHIVE_BASE_GOG_0_NAME='prison_architect_clink_1_02_30664.sh' ARCHIVE_BASE_GOG_0_MD5='f261f6121e3fe9ae5023624098d3946d' ARCHIVE_BASE_GOG_0_SIZE='390000' ARCHIVE_BASE_GOG_0_VERSION='1.02-gog30664' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/prison_architect' ## This DRM-free archive is no longer available for sell from humblebundle.com, ## they now only sell a Steam key. ARCHIVE_BASE_HUMBLE_0_NAME='prisonarchitect-clink_1.02-linux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='ecf4cf68e10069c3c2cb99bcc52ef417' ARCHIVE_BASE_HUMBLE_0_SIZE='390000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.02-humble1' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='prisonarchitect-clink_1.0-linux' CONTENT_LIBS_BIN_FILES=' libpops_api.so' CONTENT_LIBS_BIN64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_BIN64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/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' 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 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" # 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 case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion ;; ('ARCHIVE_BASE_HUMBLE_'*) ## No icon is included in the humblebundle.com archive. ;; esac content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-privateer-1.sh0000755000000000000000000000466614471751340014333 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Privateer # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='privateer-1' GAME_NAME='Privateer' ARCHIVE_BASE_1_NAME='setup_wing_commander_privateer_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='482b990445b335ecf7f47ee18efccc14' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='180000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_privateer' ARCHIVE_BASE_0_NAME='setup_wing_commander_privateer_2.0.0.9.exe' ARCHIVE_BASE_0_MD5='53c77040cba69a642ec1302b5cf231b5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.9' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' GAME.GOG *.CFG *.DAT *.EXE *.NDA *.OVL *.PAK *.VDA' CONTENT_DOC_MAIN_FILES=' *.PDF' GAME_IMAGE='GAME.GOG' GAME_IMAGE_TYPE='iso' USER_PERSISTENT_FILES=' *.CFG *.IFF' APP_MAIN_EXE='PRIV.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658938.ICO' APP_MAIN_ICON_0='GFW_HIGH.ICO' ## Work around sound problems in the intro video APP_MAIN_PRERUN=' # Work around sound problems in the intro video export DOSBOX_SBLASTER_IRQ=5 ' APP_RF_ID="${GAME_ID}-righteous-fire" APP_RF_NAME="${GAME_NAME} - Righteous Fire" APP_RF_EXE='PRIV.EXE' APP_RF_EXE_OPTIONS='r' APP_RF_ICON='APP/GOGGAME-1207658938.ICO' APP_RF_ICON_0='GFW_HIGH.ICO' # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to upper case toupper . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-project-feline.sh0000755000000000000000000000474714471751340015102 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Project Feline # send your bug reports to contact@dotslashplay.it ### script_version=20240504.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='project-feline' GAME_NAME='Project Feline' ## This game archive used to be available from itch.io, ## but the developer decided to drop Linux support. ARCHIVE_BASE_0_NAME='feline-linux.zip' ARCHIVE_BASE_0_MD5='5d59dd8b486c250f7ee918d31fee3c69' ARCHIVE_BASE_0_SIZE='870000' ARCHIVE_BASE_0_VERSION='0.10.0-itch.2020.12.13' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='project-feline_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='a92f62d8bc80aa93c7d69ca1021f677a' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/project-feline/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' UNREALENGINE4_NAME='Feline' CONTENT_PATH_DEFAULT='Feline_0.10.0_Linux' CONTENT_LIBS_BIN_PATH='Feline_0.10.0_Linux/Engine/Binaries/ThirdParty/PhysX3/Linux/x86_64-unknown-linux-gnu' CONTENT_LIBS_BIN_FILES=' libAPEX_ClothingPROFILE.so libApexCommonPROFILE.so libApexFrameworkPROFILE.so libAPEX_LegacyPROFILE.so libApexSharedPROFILE.so libNvParameterizedPROFILE.so libRenderDebugPROFILE.so' APP_MAIN_EXE='Feline/Binaries/Linux/Feline' USER_PERSISTENT_DIRECTORIES=' Feline/Saved/Config' 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' # 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-proteus.sh0000755000000000000000000000432514471751340013665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Proteus # send your bug reports to contact@dotslashplay.it ### script_version=20240830.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='proteus' GAME_NAME='Proteus' ARCHIVE_BASE_0_NAME='proteus-05162014-bin' ARCHIVE_BASE_0_MD5='8a5911751382bcfb91483f52f781e283' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_VERSION='1.0-humble140516' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/proteus' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' resources Proteus.exe Proteus.png KopiLua.dll KopiLuaDll.dll KopiLuaInterface.dll SDL2-CS.dll SDL2-CS.dll.config Tao.OpenGl.dll Tao.OpenGl.dll.config Tianxia.dll Wuwei.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Proteus.exe' APP_MAIN_ICON='Proteus.png' PKG_MAIN_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_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.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.Security.dll System.Xml.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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-psychonauts.sh0000755000000000000000000000471514471751340014547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Psychonauts # send your bug reports to contact@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='psychonauts' GAME_NAME='Psychonauts' ARCHIVE_BASE_0_NAME='gog_psychonauts_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='7fc85f71494ff5d37940e9971c0b0c55' ARCHIVE_BASE_0_SIZE='5200000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/psychonauts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Psychonauts DisplaySettings.ini' CONTENT_GAME_DATA_FILES=' icon.bmp PsychonautsData2.pkg psychonauts.png WorkResource' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Psychonauts Manual Win.pdf' CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/Documents" ## FIXME: An explicit list of files should be set. CONTENT_DOC0_DATA_FILES=' *' USER_PERSISTENT_FILES=' DisplaySettings.ini psychonauts.ini' APP_MAIN_EXE='Psychonauts' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_PNG APP_MAIN_ICON_BMP' APP_MAIN_ICON_PNG='psychonauts.png' APP_MAIN_ICON_BMP='icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20211124.2 game script. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} psychonauts-sounds" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 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" # 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-puddle.sh0000755000000000000000000000507314471751340013442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Puddle # send your bug reports to contact@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='puddle' GAME_NAME='Puddle' ARCHIVE_BASE_0_NAME='setup_puddle_2.1.0.6.exe' ARCHIVE_BASE_0_MD5='e1773a7bd360125ad67ce864963be586' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.6' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/puddle' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_DATA_FILES=' data de es fr it' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Puddle' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='puddle.exe' APP_MAIN_ICON='puddle.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='launcher.exe' APP_SETTINGS_ICON='puddle.exe' ## Type must be set explicitly, ## or it will be wrongly identified as a Mono application. APP_SETTINGS_TYPE='wine' 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" # Automatically spawn game settings window on first launch ## Using desktop_field_exec here ensures that we get a path already escaped if required. settings_cmd=$(desktop_field_exec 'APP_SETTINGS') APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Automatically spawn game settings window on first launch settings_file="${WINEPREFIX}/drive_c/users/${USER}/Documents/Puddle/Settings.dat" if [ ! -e "$settings_file" ]; then '"${settings_cmd}"' exit 0 fi' # 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-pulse.sh0000755000000000000000000000373014471751340013313 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pulse # send your bug reports to contact@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pulse' GAME_NAME='Pulse' ARCHIVE_BASE_0_NAME='Pulse_Linux.zip' ARCHIVE_BASE_0_MD5='1ab2d48c55e88b1bc56cbcdfb72f09e9' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pulse' UNITY3D_NAME='Pulse' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Pulse - Linux' 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=' 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-qube-2.sh0000755000000000000000000000530414471751340013255 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Q.U.B.E. 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240404.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='qube-2' GAME_NAME='Q.U.B.E. 2' ARCHIVE_BASE_1_NAME='setup_q.u.b.e._2_1.8_(64bit)_(33108).exe' ARCHIVE_BASE_1_MD5='38e53c42845f1ea44ca2939d2d48571b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_q.u.b.e._2_1.8_(64bit)_(33108)-1.bin' ARCHIVE_BASE_1_PART1_MD5='838dbb204cd6eca9488d502ec16f28d0' ARCHIVE_BASE_1_SIZE='3800000' ARCHIVE_BASE_1_VERSION='1.8-gog33108' ARCHIVE_BASE_1_URL='https://www.gog.com/game/qube_2' ARCHIVE_BASE_0_NAME='setup_q.u.b.e._2_1.6_with_overlay_(64bit)_(23818).exe' ARCHIVE_BASE_0_MD5='b62f5e18bff2e9abcb591e1921538989' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_q.u.b.e._2_1.6_with_overlay_(64bit)_(23818)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7a397b6e7c20a13c00af2ee964952609' ARCHIVE_BASE_0_SIZE='3700000' ARCHIVE_BASE_0_VERSION='1.6-gog23818' UNREALENGINE4_NAME='qube' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.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" ## TODO: Check that native libopenal.so.1 is actually required. PKG_BIN_DEPENDENCIES_LIBRARIES=' libopenal.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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages ## Display the post-installation warning about wine build flags on Gentoo. option_package=$(option_value 'package') case "$option_package" in ('gentoo'|'egentoo') PKG_BIN_POSTINST_WARNINGS_GENTOO='You might need to compile wine with the openal or faudio USE flag' ;; esac packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-quench.sh0000755000000000000000000000327214471751340013447 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Quench # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='quench' GAME_NAME='Quench' ARCHIVE_BASE_0_NAME='quench-win.zip' ARCHIVE_BASE_0_MD5='51acb509e73ab3a9dd2183554f094cf2' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.1.0-itch.2019.08.16' ARCHIVE_BASE_0_URL='https://axoninteractive.itch.io/quench' UNITY3D_NAME='Quench' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Axon Interactive/Quench' 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-quern.sh0000755000000000000000000000446314471751340013321 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 edgar.vincent # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Quern - Undying Thoughts # Send your bug reports to contact@dotslashplay.it ### script_version=20240607.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='quern' GAME_NAME='Quern - Undying Thoughts' ARCHIVE_BASE_0_NAME='quern_undying_thoughts_en_1_2_0_19570.sh' ARCHIVE_BASE_0_MD5='b26bcebf9d441b900b1c165b62951016' ARCHIVE_BASE_0_SIZE='8656437' ARCHIVE_BASE_0_VERSION='1.2.0-gog19570' ARCHIVE_BASE_0_URL='https://www.gog.com/game/quern_undying_thoughts' UNITY3D_NAME='Quern' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.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_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 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" # 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-quiet-as-a-stone.sh0000755000000000000000000000335214471751340015257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Quiet as a Stone # send your bug reports to contact@dotslashplay.it ### script_version=20240226.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='quiet-as-a-stone' GAME_NAME='Quiet as a Stone' ARCHIVE_BASE_0_NAME='quietasastone-win64.zip' ARCHIVE_BASE_0_MD5='72cd64e689dd398afaa9909abb15cb15' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='0.6.1-itch.2019.07.19' ARCHIVE_BASE_0_URL='https://distantlantern.itch.io/quietasastone' UNITY3D_NAME='QuietasaStone' 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" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-race-the-sun-expansions.sh0000755000000000000000000000323314471751340016641 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Race The Sun expansions: # - Sunrise # send your bug reports to contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='race-the-sun' GAME_NAME='Race The Sun' EXPANSION_ID_SUNRISE='sunrise' EXPANSION_NAME_SUNRISE='Sunrise' ARCHIVE_BASE_SUNRISE_0_NAME='gog_race_the_sun_sunrise_dlc_2.0.0.1.sh' ARCHIVE_BASE_SUNRISE_0_MD5='5af9dee7941f63c310d83ac771d26884' ARCHIVE_BASE_SUNRISE_0_SIZE='1100' ARCHIVE_BASE_SUNRISE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_SUNRISE_0_URL='https://www.gog.com/game/sunrise' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' SunriseDLC' 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-race-the-sun.sh0000755000000000000000000000537314471751340014463 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Race The Sun # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='race-the-sun' GAME_NAME='Race The Sun' ARCHIVE_BASE_GOG_0_NAME='gog_race_the_sun_2.4.0.8.sh' ARCHIVE_BASE_GOG_0_MD5='e3f4e66a5fafe966000ab4e0dcfb7aeb' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.51-gog2.4.0.8' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/race_the_sun' ARCHIVE_BASE_HUMBLE_0_NAME='RaceTheSunLINUX_1.50.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e225afb660090b9aa8281574b658accf' ARCHIVE_BASE_HUMBLE_0_SIZE='190000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50-humble170131' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/race-the-sun' UNITY3D_NAME='RaceTheSun' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='RaceTheSunLINUX_1.50' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ravenous-devils.sh0000755000000000000000000000372014471751340015310 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 contact@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.sh0000755000000000000000000000532014471751340014326 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 contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='reassembly' GAME_NAME='Reassembly' ARCHIVE_BASE_GOG_0='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='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_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/linux/linux64" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/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_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 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' # 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rebel-galaxy.sh0000755000000000000000000000565114471751340014543 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Rebel Galaxy # send your bug reports to contact@dotslashplay.it ### script_version=20240328.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='rebel-galaxy' GAME_NAME='Rebel Galaxy' ARCHIVE_BASE_0_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097).exe' ARCHIVE_BASE_0_MD5='9746494be23b83bc2a44d8da6cb6e311' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e8e5d4450b5ad8f9cc757cc4153ba13c' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.08-gog23097' ARCHIVE_BASE_0_URL='https://www.gog.com/game/rebel_galaxy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.cfg *.dll *.exe' CONTENT_GAME_DATA_FILES=' media music paks video' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy' ## Microsoft Visual C++ 2012 Runtime is required by the settings window. WINE_WINETRICKS_VERBS='vcrun2012' APP_MAIN_EXE='rebelgalaxygog.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="${GAME_NAME} - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='goglauncher.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" # Disable Direct3D 11 on first launch to prevent a game crash. ## TODO: Check if this is sitll required with current WINE builds. APP_PRERUN_NOD3D11=' # Disable Direct3D 11 on first launch to prevent a game crash settings_file="${WINEPREFIX}/drive_c/users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy/local_settings.txt" if [ ! -e "$settings_file" ]; then mkdir --parents "$(dirname "$settings_file")" cat > "$settings_file" << EOF [SETTINGS] OPENGL:1 DX11:0 [/SETTINGS] EOF fi ' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-} $APP_PRERUN_NOD3D11" APP_SETTINGS_PRERUN="${APP_SETTINGS_PRERUN:-} $APP_PRERUN_NOD3D11" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-republique.sh0000755000000000000000000000525614471751340014345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Republique # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='republique' GAME_NAME='République' ## This game is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_republique_remastered_33555_(18824).exe' ARCHIVE_BASE_0_MD5='e1c57ea3489a5ffd222990ab28a9ffe7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_republique_remastered_33555_(18824)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f8d81dd49c0a17e772601880c1d76058' ARCHIVE_BASE_0_PART2_NAME='setup_republique_remastered_33555_(18824)-2.bin' ARCHIVE_BASE_0_PART2_MD5='485f3c68ca8bf61e328f2e659afc59b2' ARCHIVE_BASE_0_SIZE='7800000' ARCHIVE_BASE_0_VERSION='1.0-gog18824' ARCHIVE_BASE_RAR_0_NAME='setup_republique_remastered_2.2.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='e2a15feb5b9217bebf0fec26e2a81869' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_republique_remastered_2.2.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='b7a869b84db07e5981b9eb8be9ff2bda' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_PART2_NAME='setup_republique_remastered_2.2.0.4-2.bin' ARCHIVE_BASE_RAR_0_PART2_MD5='604d6b34fa4b2cc24f79659922f188e2' ARCHIVE_BASE_RAR_0_SIZE='7800000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.2.0.4' UNITY3D_NAME='republique' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Camouflaj/R__publique' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-restless-soul.sh0000755000000000000000000000351014471751340015003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Restless Soul # send your bug reports to contact@dotslashplay.it ### script_version=20231129.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='restless-soul' GAME_NAME='Restless Soul' ARCHIVE_BASE_0_NAME='restless_soul_1_0_61980.sh' ARCHIVE_BASE_0_MD5='c1a4ed609a1fd4562e26cd7410b1ee19' ARCHIVE_BASE_0_SIZE='244188' ARCHIVE_BASE_0_VERSION='1.0-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/restless_soul' UNITY3D_NAME='linux' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-retrace.sh0000755000000000000000000000345514471751340013614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Retrace # send your bug reports to contact@dotslashplay.it ### script_version=20240617.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='retrace' GAME_NAME='Retrace' ARCHIVE_BASE_0_NAME='retrace-win.zip' ARCHIVE_BASE_0_MD5='a953b09f1e1226ac24998ea68cacfe0e' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://spiderlilystudios.itch.io/retrace' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Retrace.exe options.ini' ## TODO: Move the fonts to the standard system path. CONTENT_GAME_DATA_FILES=' data fonts audiogroup?.dat data.win' USER_PERSISTENT_FILES=' options.ini' APP_MAIN_EXE='Retrace.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" # 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-retro-city-rampage.sh0000755000000000000000000000477614471751340015711 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Retro City Rampage # send your bug reports to contact@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='retro-city-rampage' GAME_NAME='Retro City Rampage' ARCHIVE_BASE_32BIT_0_NAME='retrocityrampage-1.0-linux.i386.bin' ARCHIVE_BASE_32BIT_0_MD5='35c776fa33af850158b0d6a886dfe2a0' ARCHIVE_BASE_32BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_32BIT_0_SIZE='17000' ARCHIVE_BASE_32BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' ARCHIVE_BASE_64BIT_0='retrocityrampage-1.0-linux.x86_64.bin' ARCHIVE_BASE_64BIT_0_MD5='4fc25ab742d5bd389bd4a76eb6ec987f' ARCHIVE_BASE_64BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_64BIT_0_SIZE='17000' ARCHIVE_BASE_64BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' retrocityrampage' CONTENT_GAME_DATA_FILES=' audio_music_Linux.bap audio_sfx_Linux.bap gamedata_sdl.bfp icon.png' USER_PERSISTEN_FILES=' rcr_sdl.cfg *.rsv' APP_MAIN_EXE='retrocityrampage' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='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' # 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-reventure.sh0000755000000000000000000000331114471751340014175 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Reventure # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='reventure' GAME_NAME='Reventure' ARCHIVE_BASE_0_NAME='setup_reventure_1.9.5_(46279).exe' ARCHIVE_BASE_0_MD5='66132b685451666250710036296edfa0' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='1.9.5-gog46279' ARCHIVE_BASE_0_URL='https://www.gog.com/game/reventure' UNITY3D_NAME='reventure' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Pixelatto/Reventure' 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-rime.sh0000755000000000000000000000504414471751340013117 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Rime # send your bug reports to contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='rime' GAME_NAME='RiME' ARCHIVE_BASE_1='setup_rime_1.04_(a)_(40568).exe' ARCHIVE_BASE_1_MD5='04c89d5de10df3c16c5e9b3512d559aa' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_rime_1.04_(a)_(40568)-1.bin' ARCHIVE_BASE_1_PART1_MD5='aa40d7bf862088c92b9a0dbe09c42012' ARCHIVE_BASE_1_PART2='setup_rime_1.04_(a)_(40568)-2.bin' ARCHIVE_BASE_1_PART2_MD5='c9cad9754731585b3e68a305eef4bd01' ARCHIVE_BASE_1_SIZE='7800000' ARCHIVE_BASE_1_VERSION='1.04-gog40568' ARCHIVE_BASE_1_URL='https://www.gog.com/game/rime' ARCHIVE_BASE_0='setup_rime_152498_signed_(14865).exe' ARCHIVE_BASE_0_MD5='303d41314564c753fcef92260c3e20f8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_rime_152498_signed_(14865)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ea9fc9eeaeeb2d7c58eab42cef31bb2e' ARCHIVE_BASE_0_PART2='setup_rime_152498_signed_(14865)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b65792a122d267cc799e9b044605c1a1' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.04-gog14865' UNREALENGINE4_NAME='sirengame' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' APP_MAIN_EXE='sirengame/binaries/win64/rime.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 target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rimworld.sh0000755000000000000000000000407314471751340014023 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 contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Add a list of required native 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 ## Errors during the game data extraction from the archive are expected, they should be ignored. archive_extraction_defayt 2>/dev/null || true # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-risk-of-rain.sh0000755000000000000000000000511614471751340014464 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Risk of Rain # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='risk-of-rain' GAME_NAME='Risk of Rain' ARCHIVE_BASE_GOG_1='gog_risk_of_rain_2.1.0.6.sh' ARCHIVE_BASE_GOG_1_MD5='423ea26f877eb8f0d72e04dffffbf81a' ARCHIVE_BASE_GOG_1_SIZE='180000' ARCHIVE_BASE_GOG_1_VERSION='1.2.8-gog2.1.0.6' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/risk_of_rain' ARCHIVE_BASE_GOG_0='gog_risk_of_rain_2.1.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='34f8e1e2dddc6726a18c50b27c717468' ARCHIVE_BASE_GOG_0_SIZE='180000' ARCHIVE_BASE_GOG_0_VERSION='1.2.8-gog2.1.0.5' ARCHIVE_BASE_HUMBLE_0='Risk_of_Rain_v1.3.0_DRM-Free_Linux_.zip' ARCHIVE_BASE_HUMBLE_0_MD5='21eb80a7b517d302478c4f86dd5ea9a2' ARCHIVE_BASE_HUMBLE_0_SIZE='100000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.0-humble160519' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/risk-of-rain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_GAME_BIN_FILES=' Risk_of_Rain' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='Risk_of_Rain' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-road-96.sh0000755000000000000000000000536214471751340013347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Road 96 # send your bug reports to contact@dotslashplay.it ### script_version=20230709.1 GAME_ID='road-96' GAME_NAME='Road 96' ARCHIVE_BASE_0='setup_road_96_1.04_(64bit)_(51993).exe' ARCHIVE_BASE_0_MD5='f0d88097b5e6c44687e073c4abef816b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_road_96_1.04_(64bit)_(51993)-1.bin' ARCHIVE_BASE_0_PART1_MD5='608d310ebb3154a0e85bad40175f9189' ARCHIVE_BASE_0_PART2='setup_road_96_1.04_(64bit)_(51993)-2.bin' ARCHIVE_BASE_0_PART2_MD5='f0d523facddf8c40c18fd6b1721a8855' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.04-gog51993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/road_96' UNITY3D_NAME='road 96' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins baselib.dll gameassembly.dll unityplayer.dll" CONTENT_GAME_DATA_RESOURCES_FILES=" ${UNITY3D_NAME}_data/*.ress" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DigixArt/Road 96' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA_RESOURCES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_RESOURCES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-robin-hood-the-legend-of-sherwood.sh0000755000000000000000000001432414471751340020470 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Robin Hood: The Legend of Sherwood # send your bug reports to contact@dotslashplay.it ### script_version=20240228.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' WINE_WINETRICKS_VERBS='vd=1024x768' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='robin hood.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION='localization' PKG_L10N_DESCRIPTION_EN="$PKG_L10N_DESCRIPTION - English" PKG_L10N_DESCRIPTION_FR="$PKG_L10N_DESCRIPTION - French" PKG_L10N_DESCRIPTION_DE="$PKG_L10N_DESCRIPTION - German" PKG_L10N_DESCRIPTION_PL="$PKG_L10N_DESCRIPTION - Polish" PKG_L10N_DESCRIPTION_ES="$PKG_L10N_DESCRIPTION - Spanish" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rogue-legacy.sh0000755000000000000000000000737514471751340014557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rogue Legacy # send your bug reports to contact@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='rogue-legacy' GAME_NAME='Rogue Legacy' ARCHIVE_BASE_GOG_1_NAME='rogue_legacy_en_1_4_0_22617.sh' ARCHIVE_BASE_GOG_1_MD5='60a1a7a7ff84a50e2ac52f2e44dce92d' ARCHIVE_BASE_GOG_1_SIZE='366454' ARCHIVE_BASE_GOG_1_VERSION='1.4.0-gog22617' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/rogue_legacy' ARCHIVE_BASE_GOG_0_NAME='gog_rogue_legacy_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='1b99d6122f0107b420cad9547efefc5e' ARCHIVE_BASE_GOG_0_SIZE='240000' ARCHIVE_BASE_GOG_0_VERSION='1.2.0b-gog2.0.0.2' ARCHIVE_BASE_HUMBLE_0_NAME='roguelegacy-12282013-bin' ARCHIVE_BASE_HUMBLE_0_MD5='b2a18745b911ed87a048440c2f8a0404' ARCHIVE_BASE_HUMBLE_0_SIZE='240000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.2.0b-humble131228' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/rogue-legacy' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_FILES=' libmojoshader.so' ## The shipped build of OpenAL must be used to prevent a crash on launch CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libopenal.so.1" CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' RogueLegacy.exe RogueCastle.exe Rogue Legacy.bmp Content mono* DS2DEngine.dll FNA.dll FNA.dll.config InputSystem.dll SpriteSystem.dll Tweener.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE_GOG='RogueLegacy.exe' APP_MAIN_EXE_GOG_0='RogueCastle.exe' APP_MAIN_EXE_HUMBLE='RogueCastle.exe' APP_MAIN_ICON='Rogue Legacy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-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.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-roki.sh0000755000000000000000000000331114471751340013122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Röki # send your bug reports to contact@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='roki' GAME_NAME='Röki' ARCHIVE_BASE_0_NAME='setup_roki_roki_master_v3.3_(64bit)_(43089).exe' ARCHIVE_BASE_0_MD5='e0a31cf756e51d2d70ed8a7635bc1d19' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='3.3-gog43089' ARCHIVE_BASE_0_URL='https://www.gog.com/game/roki' UNITY3D_NAME='roki' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Polygon Treehouse/Roki' 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" # 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-rymdkapsel.sh0000755000000000000000000000521114471751340014332 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 contact@dotslashplay.it ### script_version=20240728.3 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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" # 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. path_libraries_system=$( set_current_package 'PKG_BIN' path_libraries_system ) APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of system-provided SDL. export SDL_DYNAMIC_API='${path_libraries_system}/libSDL2-2.0.so.0' " launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sable.sh0000755000000000000000000000347014471751340013252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sable # send your bug reports to contact@dotslashplay.it ### script_version=20240408.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sable' GAME_NAME='Sable' ARCHIVE_BASE_0_NAME='setup_sable_4.3.4_(64bit)_(60909).exe' ARCHIVE_BASE_0_MD5='5f11322d659afe9bb2c5434470a05445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sable_4.3.4_(64bit)_(60909)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a1cc6c702d15a0fe99c00b913416f73b' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='4.3.4-gog60909' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sable' UNITY3D_NAME='sable' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Shedworks/Sable/SaveData' 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-sagebrush.sh0000755000000000000000000000334614471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sagebrush # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sagebrush' GAME_NAME='Sagebrush' ARCHIVE_BASE_0_NAME='sagebrush-windows-universal.zip' ARCHIVE_BASE_0_MD5='0af5ff01fdb4216f81b443a11c997ee1' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.41b-itch1' ARCHIVE_BASE_0_URL='https://redactgames.itch.io/sagebrush' UNITY3D_NAME='Sagebrush' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Redact Games/Sagebrush' WINE_VIRTUAL_DESKTOP='auto' 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-sally-face.sh0000755000000000000000000000406314471751340014203 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sally Face # send your bug reports to contact@dotslashplay.it ### script_version=20230411.1 GAME_ID='sally-face' GAME_NAME='Sally Face' ARCHIVE_BASE_1='sally_face_1_5_42_57397.sh' ARCHIVE_BASE_1_MD5='8ae0cd174db19cfd396b71edf99a1d40' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1800000' ARCHIVE_BASE_1_VERSION='1.5.42-gog57397' ARCHIVE_BASE_1_URL='https://www.gog.com/game/sally_face' UNITY3D_NAME='Sally Face' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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 libz.so.1' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-satellite-reign.sh0000755000000000000000000000555014471751340015255 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Satellite Reign # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so 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_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' 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete unwanted empty Mac OS directories. rm --recursive \ "$(unity3d_name)_Data/Plugins/CSteamworks.bundle" \ "$(unity3d_name)_Data/Plugins/ShroudUnityPlugin.bundle" ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarf.sh0000755000000000000000000000567314471751340013271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarf # send your bug reports to contact@dotslashplay.it ### script_version=20230706.1 GAME_ID='scarf' GAME_NAME='Scarf' ARCHIVE_BASE_0='setup_scarf_1.1_(64bit)_(53216).exe' ARCHIVE_BASE_0_MD5='128b44bb5ba007934e91ad2a0ff6f693' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_scarf_1.1_(64bit)_(53216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ef5faab9ebab9772dd159d5cafde0311' ARCHIVE_BASE_0_PART2='setup_scarf_1.1_(64bit)_(53216)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e388bd53a584a6bb9e58ae9b4af0b3b4' ARCHIVE_BASE_0_PART3='setup_scarf_1.1_(64bit)_(53216)-3.bin' ARCHIVE_BASE_0_PART3_MD5='000370e5c0bac838f8f50f9b2cfc3f18' ARCHIVE_BASE_0_PART4='setup_scarf_1.1_(64bit)_(53216)-4.bin' ARCHIVE_BASE_0_PART4_MD5='761da3606e1e2dfa741b5e8be51cd9f3' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.1-gog53216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarf' UNREALENGINE4_NAME='scarf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarlet-hood-and-the-wicked-wood.sh0000755000000000000000000000407514471751340020302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarlet Hood and the Wicked Wood # send your bug reports to contact@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='scarlet-hood-and-the-wicked-wood' GAME_NAME='Scarlet Hood and the Wicked Wood' ARCHIVE_BASE_0_NAME='scarlet_hood_and_the_wicked_wood_1_0_7_47145.sh' ARCHIVE_BASE_0_MD5='4661f6c64736fefe383c0c92860a5513' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0.7-gog47145' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarlet_hood_and_the_wicked_wood' UNITY3D_NAME='ScarletHood' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-seasons-after-fall.sh0000755000000000000000000000343214471751340015650 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Seasons After Fall # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='seasons-after-fall' GAME_NAME='Seasons After Fall' ARCHIVE_BASE_0_NAME='setup_seasons_after_fall_26129_(30224).exe' ARCHIVE_BASE_0_MD5='f7207d11fe8483d428d23ca4b62615d1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='26129-gog30224' ARCHIVE_BASE_0_URL='https://www.gog.com/game/seasons_after_fall' UNITY3D_NAME='seasons after fall' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Seasons after Fall' 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-secrets-of-raetikon.sh0000755000000000000000000000653514471751340016055 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Secrets of Raetikon # send your bug reports to contact@dotslashplay.it ### script_version=20231111.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='secrets-of-raetikon' GAME_NAME='Secrets of Raetikon' ARCHIVE_BASE_0_NAME='SecretsofRaetikonLinux1.1.zip' ARCHIVE_BASE_0_MD5='16a81710ce12480c9cd75a6992d2956c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.1-humble140731' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/secrets-of-rtikon' CONTENT_PATH_DEFAULT='Raetikon' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES=' libfmodex64-4.44.32.so libfmodex64.so' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib32" CONTENT_LIBS_BIN32_FILES=' libfmodex-4.44.32.so libfmodex.so' CONTENT_GAME_BIN64_FILES=' Raetikon64' CONTENT_GAME_BIN32_FILES=' Raetikon' CONTENT_GAME_DATA_FILES=' data steam_appid.txt' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' Manual.pdf' ## The game binaries are linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN64_FILES="${CONTENT_LIBS_BIN64_FILES:-} libsteam_api.so" CONTENT_LIBS_BIN32_FILES="${CONTENT_LIBS_BIN32_FILES:-} libsteam_api.so" APP_MAIN_EXE_BIN32='Raetikon' APP_MAIN_EXE_BIN64='Raetikon64' ## Create a minimal configuration file to avoid a black screen on Intel chipset. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Create a minimal configuration file to avoid a black screen on Intel chipset config_file="${HOME}/.secrets-of-raetikon/Options.xml" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF EOF fi ' 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=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXrandr.so.2' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sentris.sh0000755000000000000000000000447614471751340013662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sentris # send your bug reports to contact@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sentris' GAME_NAME='Sentris' ARCHIVE_BASE_0_NAME='Sentris_1.02_Linux.zip' ARCHIVE_BASE_0_MD5='b6ca5f3447a223efba73ae9138b16a45' ARCHIVE_BASE_0_SIZE='407940' ARCHIVE_BASE_0_VERSION='1.02-humble170110' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/sentris' UNITY3D_NAME='Sentris' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Sentris_1.02_Linux' 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-shantae-and-the-pirates-curse.sh0000755000000000000000000000365714471751340017720 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Shantae and the Pirate's Curse # send your bug reports to contact@dotslashplay.it ### script_version=20240706.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shantae-and-the-pirates-curse' GAME_NAME='Shantae and the Pirateʼs Curse' ARCHIVE_BASE_0_NAME='setup_shantae_and_the_pirates_curse_1.04g_(18994).exe' ARCHIVE_BASE_0_MD5='66e16f3a97328c2ba08c19a64d88c16c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.04g-gog18994' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shantae_and_the_pirates_curse' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=" shantae and the pirate's curse.exe" CONTENT_GAME_DATA_FILES=' shantaecurse.data' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE="shantae and the pirate's curse.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" # 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-shelter-1.sh0000755000000000000000000000506214471751340013767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Shelter 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230918.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='shelter-1' GAME_NAME='Shelter' ARCHIVE_BASE_HUMBLE_0_NAME='Shelter_PC_Gold_v5.zip' ARCHIVE_BASE_HUMBLE_0_MD5='32b84f87d7c24f57809670742adad3f7' ARCHIVE_BASE_HUMBLE_0_SIZE='550000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/shelter' ARCHIVE_BASE_GOG_1_NAME='setup_shelter_1.0_(18565).exe' ARCHIVE_BASE_GOG_1_MD5='7d1a2df224b43ce5a80008af13edde1d' ARCHIVE_BASE_GOG_1_TYPE='innosetup' ARCHIVE_BASE_GOG_1_SIZE='560000' ARCHIVE_BASE_GOG_1_VERSION='1.0-gog18565' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/shelter' ARCHIVE_BASE_GOG_0_NAME='setup_shelter_2.0.0.6.exe' ARCHIVE_BASE_GOG_0_MD5='06860af1df9a8120bce4e97d899b3edd' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='570000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.6' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='app' UNITY3D_NAME_HUMBLE='Shelter PC Gold v5' UNITY3D_NAME_GOG='shelter' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Might and Delight/Shelter' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrade from previous game id PKG_DATA_PROVIDES=' shelter-data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## Ensure smooth upgrade from previous game id PKG_BIN_PROVIDES=' shelter' # 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shelter-2-paws.sh0000755000000000000000000000525614471751340014745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paws: A Shelter 2 Game # send your bug reports to contact@dotslashplay.it ### script_version=20241126.2 GAME_ID='shelter-2-paws' GAME_NAME='Paws: A Shelter 2 Game' ARCHIVE_BASE_0_NAME='gog_paws_a_shelter_2_game_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='51423901b52f063e6b6561622a5a7bae' ARCHIVE_BASE_0_SIZE='1785679' ARCHIVE_BASE_0_VERSION='2017.05.11-gog2.1.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paws_a_shelter_2_game' UNITY3D_NAME='Paws' 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_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" 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_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 ## 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-shelter-2.sh0000755000000000000000000000461214471751340013770 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Shelter 2: # - Shelter 2 (base game) # - Shelter 2 + Mountains expansion # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shelter-2' GAME_NAME='Shelter 2' ARCHIVE_BASE_0_NAME='gog_shelter_2_2.5.0.10.sh' ARCHIVE_BASE_0_MD5='f2bf2e188667133ad117b5bff846e66e' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='20150708-gog2.5.0.10' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shelter_2' ARCHIVE_BASE_MOUNTAINS_0_NAME='gog_shelter_2_mountains_dlc_2.0.0.1.sh' ARCHIVE_BASE_MOUNTAINS_0_MD5='ffe25b4ac5d75b9a30ed983634397d85' ARCHIVE_BASE_MOUNTAINS_0_SIZE='2500000' ARCHIVE_BASE_MOUNTAINS_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_MOUNTAINS_0_URL='https://www.gog.com/game/shelter_2_mountains' UNITY3D_NAME='Shelter2' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' 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=' 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' # 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-shovel-knight.sh0000755000000000000000000000477014471751340014752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Shovel Knight # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shovel-knight' GAME_NAME='Shovel Knight: Treasure Trove' ARCHIVE_BASE_0_NAME='shovel_knight_treasure_trove_4_1b_arby_s_46298.sh' ARCHIVE_BASE_0_MD5='2f5e07e20ac615eb248ab81c25974d53' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='4.1b-gog46298' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shovel_knight' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: The libraries should be installed in the system libraries path. CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/64" CONTENT_GAME_BIN64_FILES=' ShovelKnight lib' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/32" CONTENT_GAME_BIN32_FILES=' ShovelKnight lib' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES='*.txt' APP_MAIN_EXE='ShovelKnight' 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" ## TODO: The list of required native libraries might not be complete. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.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-sigma-theory.sh0000755000000000000000000000464114471751340014575 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 contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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' ## TODO: Check if the Steam libraries are required 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_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-six-cats-under.sh0000755000000000000000000000404214471751340015026 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Six Cats Under # send your bug reports to contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='six-cats-under' GAME_NAME='Six Cats Under' ARCHIVE_BASE_0_NAME='Six Cats Under - Linux.zip' ARCHIVE_BASE_0_MD5='c352fa55e864cb4f8c021764c9e825dd' ARCHIVE_BASE_0_SIZE='190167' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://teambeanloop.itch.io/six-cats-under' UNITY3D_NAME='Six_Cats_Under' UNITY3D_PLUGINS=' ScreenSelector.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=' 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' # 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-skullgirls.sh0000755000000000000000000000626614471751340014365 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Skullgirls # send your bug reports to contact@dotslashplay.it ### script_version=20230208.1 GAME_ID='skullgirls' GAME_NAME='Skullgirls' # This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_1='Skullgirls-15719.tar' ARCHIVE_BASE_1_MD5='104a6976aec70d423756e008a5b8554c' ARCHIVE_BASE_1_SIZE='4200000' ARCHIVE_BASE_1_VERSION='15719-humble170628' ARCHIVE_BASE_0='Skullgirls-1.0.1.sh' ARCHIVE_BASE_0_MD5='bf110f7d29bfd4b9e075584e41fef402' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_VERSION='1.0.1-humble152310' CONTENT_PATH_DEFAULT='SkullGirls' CONTENT_PATH_DEFAULT_0='data' CONTENT_LIBS_BIN32_PATH='SkullGirls/lib/i686-pc-linux-gnu' CONTENT_LIBS_BIN32_PATH_0='data/i686/lib/i686-pc-linux-gnu' ## libSDL2_mixer-2.0.so.0 must be included, ## because it includes a non-standard symbol (SDL_AudioStreamGet) that libSDL2_locale.so.0 is relying on. ## libSDL2-2.0.so.0 must be included to prevent a silent crash on start-up. CONTENT_LIBS_BIN32_FILES=' libSDL2-2.0.so.0 libSDL2_locale.so.0 libSDL2_mixer-2.0.so.0' CONTENT_GAME_BIN32_PATH_0='data/i686' CONTENT_GAME_BIN32_FILES=' SkullGirls.i686-pc-linux-gnu' CONTENT_LIBS_BIN64_PATH='SkullGirls/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_PATH_0='data/x86_64/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN64_FILES=' libSDL2-2.0.so.0 libSDL2_locale.so.0 libSDL2_mixer-2.0.so.0' CONTENT_GAME_BIN64_PATH_0='data/x86_64' CONTENT_GAME_BIN64_FILES=' SkullGirls.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_PATH_0='data/noarch' CONTENT_GAME_DATA_FILES=' data01 Salmon Icon.png *.txt' APP_MAIN_EXE_BIN32='SkullGirls.i686-pc-linux-gnu' APP_MAIN_EXE_BIN64='SkullGirls.x86_64-pc-linux-gnu' APP_MAIN_ICON='Icon.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-skyshines-bedlam.sh0000755000000000000000000000431114471751340015421 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 contact@dotslashplay.it ### script_version=20230803.2 GAME_ID='skyshines-bedlam' GAME_NAME='Skyshineʼs Bedlam' ## This game is no longer available for sale from GOG.com ARCHIVE_BASE_0='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='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slay-the-spire.sh0000755000000000000000000000564714471751340015042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Slay the Spire # send your bug reports to contact@dotslashplay.it ### script_version=20240218.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='slay-the-spire' GAME_NAME='Slay the Spire' ARCHIVE_BASE_0_NAME='slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' ARCHIVE_BASE_0_MD5='1989ebecb2434f0480b42c4e576dfc78' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='2.2-gog43444' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slay_the_spire' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' desktop-1.0.jar mod-uploader.jar mts-launcher.jar' CONTENT_DOC_MAIN_FILES=' README.md' USER_PERSISTENT_DIRECTORIES=' betaPreferences runs saves' USER_PERSISTENT_FILES=' info.displayconfig' APP_MAIN_TYPE='java' APP_MAIN_EXE='desktop-1.0.jar' APP_MAIN_ICON='../support/icon.png' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} slay-the-spire-bin slay-the-spire-data" PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1' ## Prevent a crash on launch due to a failure to get the display dimensions. ## ## Exception in thread "LWJGL Application" java.lang.ExceptionInInitializerError ## at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:558) ## at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) ## Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 ## at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:954) ## at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738) ## at org.lwjgl.opengl.Display.(Display.java:138) ## ... 2 more PKG_MAIN_DEPENDENCIES_COMMANDS="${PKG_MAIN_DEPENDENCIES_COMMANDS:-}"' xrandr' # 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 # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slime-rancher.sh0000755000000000000000000000470714471751340014721 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 contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='slime-rancher' GAME_NAME='Slime Rancher' ARCHIVE_BASE_0='slime_rancher_1_4_4_51897.sh' ARCHIVE_BASE_0_MD5='1933e39e9f21f09b60312ced60640aa6' ARCHIVE_BASE_0_TYPE='mojosetup' 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' CONTENT_LIBS_BIN_FILES=' UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/GI ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" 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 libz.so.1' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slipways.sh0000755000000000000000000000407114471751340014035 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 contact@dotslashplay.it ### script_version=20240325.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="${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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-snk-neogeo.sh0000755000000000000000000002112014471751340014221 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # SNK Neo Geo games: # - King of the Monsters # - Baseball Stars 2 # - Fatal Fury Special # - Art of Fighting 2 # - Samurai Shodown 2 # - Metal Slug 2 # - Metal Slug 3 # - The King of Fighters 2000 # - Sengoku 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240615.9 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_KINGOFTHEMONSTERS='king-of-the-monsters' GAME_NAME_KINGOFTHEMONSTERS='King of the Monsters' GAME_ID_BASEBALLSTARS2='baseball-stars-2' GAME_NAME_BASEBALLSTARS2='Baseball Stars 2' GAME_ID_FATALFURYSPECIAL='fatal-fury-special' GAME_NAME_FATALFURYSPECIAL='Fatal Fury Special' GAME_ID_ARTOFFIGHTING2='art-of-fighting-2' GAME_NAME_ARTOFFIGHTING2='Art of Fighting 2' GAME_ID_SAMURAISHODOWN2='samurai-shodown-2' GAME_NAME_SAMURAISHODOWN2='Samurai Shodown II' GAME_ID_METALSLUG2='metal-slug-2' GAME_NAME_METALSLUG2='Metal Slug 2' GAME_ID_METALSLUG3='metal-slug-3' GAME_NAME_METALSLUG3='Metal Slug 3' GAME_ID_THEKINGOFFIGHTERS2000='the-king-of-fighter-2000' GAME_NAME_THEKINGOFFIGHTERS2000='The King of Fighters 2000' GAME_ID_SENGOKU3='sengoku-3' GAME_NAME_SENGOKU3='Sengoku 3' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_NAME='KingOfTheMonsters_jan2016.sh' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_MD5='7a82ccaada86bd1c4637f0e088afbfa3' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_SIZE='36000' ARCHIVE_BASE_BASEBALLSTARS2_0_NAME='BaseballStars2_jan2016.sh' ARCHIVE_BASE_BASEBALLSTARS2_0_MD5='efe7f4d90cc2e5db0efd00e7b32d8114' ARCHIVE_BASE_BASEBALLSTARS2_0_SIZE='36000' ARCHIVE_BASE_BASEBALLSTARS2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_FATALFURYSPECIAL_0_NAME='FatalFurySpecial_jan2016.sh' ARCHIVE_BASE_FATALFURYSPECIAL_0_MD5='b13a53d2944281ef2d139719ac727ef3' ARCHIVE_BASE_FATALFURYSPECIAL_0_SIZE='43000' ARCHIVE_BASE_FATALFURYSPECIAL_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_ARTOFFIGHTING2_0_NAME='ArtOfFighting2_jan2016.sh' ARCHIVE_BASE_ARTOFFIGHTING2_0_MD5='f50a3d75ecea5a1fbbfde30cd876d674' ARCHIVE_BASE_ARTOFFIGHTING2_0_SIZE='44000' ARCHIVE_BASE_ARTOFFIGHTING2_0_VERSION='1.0-humble.2016.01' ARCHIVE_BASE_SAMURAISHODOWN2_0_NAME='SamuraiShodown2_jan2016.sh' ARCHIVE_BASE_SAMURAISHODOWN2_0_MD5='11a6642f250c9ec322bc8d1a9f0f9b49' ARCHIVE_BASE_SAMURAISHODOWN2_0_SIZE='48000' ARCHIVE_BASE_SAMURAISHODOWN2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_METALSLUG2_0_NAME='MetalSlug2_jan2016.sh' ARCHIVE_BASE_METALSLUG2_0_MD5='c6ee0e16787b4ec5d497f96f9474ce80' ARCHIVE_BASE_METALSLUG2_0_SIZE='49000' ARCHIVE_BASE_METALSLUG2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_METALSLUG3_0_NAME='MetalSlug3_jan2016.sh' ARCHIVE_BASE_METALSLUG3_0_MD5='a6854b31e7757f447c9c05281b28f57a' ARCHIVE_BASE_METALSLUG3_0_SIZE='110000' ARCHIVE_BASE_METALSLUG3_0_VERSION='1.0-humble1601' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_NAME='KingOfFighters2000_jan2016.sh' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_MD5='98f3d87cd286c868f184fefe1c4222b9' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_SIZE='120000' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_SENGOKU3_0_NAME='Sengoku3_jan2016.sh' ARCHIVE_BASE_SENGOKU3_0_MD5='5ecd65661e4b35c1badebcb146c8a261' ARCHIVE_BASE_SENGOKU3_0_SIZE='76000' ARCHIVE_BASE_SENGOKU3_0_VERSION='1.0-humblejan2016' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libRocketControls.so.1 libRocketCore.so.1 libRocketDebugger.so.1' ## Using system-provided SDL2 instead of the shipped one, the game menu fails to render. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2-2.0.so.0" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64" CONTENT_GAME_BIN64_FILES=' NeogeoEmu.bin.x86_64' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN32_FILES=' NeogeoEmu.bin.x86' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' *.brm *.dat *.ini *.png *.rcss *.rml *.tga *.txt *.wav *.xor *.zip' ## TODO: Check if some shipped fonts could be replaced with system-provided ones. CONTENT_FONTS_DATA_FILES=' LiberationSerif-BoldItalic.ttf LiberationSerif-Bold.ttf LiberationSerif-Italic.ttf LiberationSerif-Regular.ttf TimesNewRomanPSBold.ttf' USER_PERSISTENT_FILES=' *.ini *.rml *.txt' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_ICON_KINGOFTHEMONSTERS='noarch/KingOfTheMonsters.png' APP_MAIN_ICON_BASEBALLSTARS2='noarch/BaseballStars2.png' APP_MAIN_ICON_FATALFURYSPECIAL='noarch/FatalFurySpecial.png' APP_MAIN_ICON_ARTOFFIGHTING2='noarch/ArtOfFighting2.png' APP_MAIN_ICON_SAMURAISHODOWN2='noarch/SamuraiShodown2.png' APP_MAIN_ICON_METALSLUG2='noarch/MetalSlug2.png' APP_MAIN_ICON_METALSLUG3='noarch/MetalSlug3.png' APP_MAIN_ICON_THEKINGOFFIGHTERS2000='noarch/KingOfFighters2000.png' APP_MAIN_ICON_SENGOKU3='noarch/Sengoku3.png' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN=' # The shipped build of SDL2 has no support for the wayland backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID_KINGOFTHEMONSTERS="${GAME_ID_KINGOFTHEMONSTERS}-data" PKG_DATA_ID_BASEBALLSTARS2="${GAME_ID_BASEBALLSTARS2}-data" PKG_DATA_ID_FATALFURYSPECIAL="${GAME_ID_FATALFURYSPECIAL}-data" PKG_DATA_ID_ARTOFFIGHTING2="${GAME_ID_ARTOFFIGHTING2}-data" PKG_DATA_ID_SAMURAISHODOWN2="${GAME_ID_SAMURAISHODOWN2}-data" PKG_DATA_ID_METALSLUG2="${GAME_ID_METALSLUG2}-data" PKG_DATA_ID_METALSLUG3="${GAME_ID_METALSLUG3}-data" PKG_DATA_ID_THEKINGOFFIGHTERS2000="${GAME_ID_THEKINGOFFIGHTERS2000}-data" PKG_DATA_ID_SENGOKU3="${GAME_ID_SENGOKU3}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS_KINGOFTHEMONSTERS="$PKG_DATA_ID_KINGOFTHEMONSTERS" PKG_BIN_DEPS_BASEBALLSTARS2="$PKG_DATA_ID_BASEBALLSTARS2" PKG_BIN_DEPS_FATALFURYSPECIAL="$PKG_DATA_ID_FATALFURYSPECIAL" PKG_BIN_DEPS_ARTOFFIGHTING2="$PKG_DATA_ID_ARTOFFIGHTING2" PKG_BIN_DEPS_SAMURAISHODOWN2="$PKG_DATA_ID_SAMURAISHODOWN2" PKG_BIN_DEPS_METALSLUG2="$PKG_DATA_ID_METALSLUG2" PKG_BIN_DEPS_METALSLUG3="$PKG_DATA_ID_METALSLUG3" PKG_BIN_DEPS_THEKINGOFFIGHTERS2000="$PKG_DATA_ID_THEKINGOFFIGHTERS2000" PKG_BIN_DEPS_SENGOKU3="$PKG_DATA_ID_SENGOKU3" PKG_BIN64_DEPS_KINGOFTHEMONSTERS="$PKG_BIN_DEPS_KINGOFTHEMONSTERS" PKG_BIN64_DEPS_BASEBALLSTARS2="$PKG_BIN_DEPS_BASEBALLSTARS2" PKG_BIN64_DEPS_FATALFURYSPECIAL="$PKG_BIN_DEPS_FATALFURYSPECIAL" PKG_BIN64_DEPS_ARTOFFIGHTING2="$PKG_BIN_DEPS_ARTOFFIGHTING2" PKG_BIN64_DEPS_SAMURAISHODOWN2="$PKG_BIN_DEPS_SAMURAISHODOWN2" PKG_BIN64_DEPS_METALSLUG2="$PKG_BIN_DEPS_METALSLUG2" PKG_BIN64_DEPS_METALSLUG3="$PKG_BIN_DEPS_METALSLUG3" PKG_BIN64_DEPS_THEKINGOFFIGHTERS2000="$PKG_BIN_DEPS_THEKINGOFFIGHTERS2000" PKG_BIN64_DEPS_SENGOKU3="$PKG_BIN_DEPS_SENGOKU3" PKG_BIN32_DEPS_KINGOFTHEMONSTERS="$PKG_BIN_DEPS_KINGOFTHEMONSTERS" PKG_BIN32_DEPS_BASEBALLSTARS2="$PKG_BIN_DEPS_BASEBALLSTARS2" PKG_BIN32_DEPS_FATALFURYSPECIAL="$PKG_BIN_DEPS_FATALFURYSPECIAL" PKG_BIN32_DEPS_ARTOFFIGHTING2="$PKG_BIN_DEPS_ARTOFFIGHTING2" PKG_BIN32_DEPS_SAMURAISHODOWN2="$PKG_BIN_DEPS_SAMURAISHODOWN2" PKG_BIN32_DEPS_METALSLUG2="$PKG_BIN_DEPS_METALSLUG2" PKG_BIN32_DEPS_METALSLUG3="$PKG_BIN_DEPS_METALSLUG3" PKG_BIN32_DEPS_THEKINGOFFIGHTERS2000="$PKG_BIN_DEPS_THEKINGOFFIGHTERS2000" PKG_BIN32_DEPS_SENGOKU3="$PKG_BIN_DEPS_SENGOKU3" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libpthread.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-softporn-adventure.sh0000755000000000000000000000335614471751340016034 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Softporn Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='softporn-adventure' GAME_NAME='Softporn Adventure' ## This installer is no longer distributed by gog.com. ARCHIVE_BASE_0_NAME='gog_softporn_adventure_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1e51094f928757140c5a0dacc70773c0' ARCHIVE_BASE_0_SIZE='11000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' FILE_ID.DIZ SOFTPORN.BIN SOFTPORN.EXE SOFTPORN.LOC SOFTPORN.TXT' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' SOFTPORN.DOC' USER_PERSISTENT_FILES=' *.GAM' APP_MAIN_EXE='SOFTPORN.EXE' APP_MAIN_ICON='../support/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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solar-2.sh0000755000000000000000000001457614471751340013454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Solar 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240831.5 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='solar-2' GAME_NAME='Solar 2' ARCHIVE_BASE_0_NAME='Solar2_v1.26_amd64.tar.gz' ARCHIVE_BASE_0_MD5='64e953238fbdce8d8671578ddba05559' ARCHIVE_BASE_0_SIZE='103714' ARCHIVE_BASE_0_VERSION='1.26-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/solar-2' ARCHIVE_BASE_XNA_0_NAME='solar2-linux-1.10_1409159048.tar.gz' ARCHIVE_BASE_XNA_0_MD5='243918907eea486fdc820b7cac0c260b' ARCHIVE_BASE_XNA_0_SIZE='130000' ARCHIVE_BASE_XNA_0_VERSION='1.10-humble1' ARCHIVE_BASE_XNA_0_URL='https://www.humblebundle.com/store/solar-2' ## Optional icons pack (only useful for the XNA build) ARCHIVE_OPTIONAL_ICONS_NAME_XNA='solar-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_XNA='d8f8557a575cb5b5824d72718428cd33' ARCHIVE_OPTIONAL_ICONS_URL_XNA='https://downloads.dotslashplay.it/resources/solar-2/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64' # Archives content CONTENT_PATH_DEFAULT='Solar2' CONTENT_LIBS_BIN_FILES=' libclrgc.so libclrjit.so libcoreclr.so libcoreclrtraceptprovider.so libhostfxr.so libhostpolicy.so libmscordaccore.so libmscordbi.so libSystem.Globalization.Native.so libSystem.IO.Compression.Native.so libSystem.Native.so libSystem.Net.Security.Native.so libSystem.Security.Cryptography.Native.OpenSsl.so' ## The game crashes on launch if the shipped OpenAL is not used: ## ## Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. ## at Solar2.Moosic..ctor(AudioManager audioManager, PowerMain main) ## at Solar2.World..ctor(Epsilon epsilon, SpriteSheet[] sheets) ## at Solar2.Epsilon.LoadContent() ## at Power.PowerMain.LoadScreen(GameScreen screen, Nullable`1 controllingPlayer) ## at Solar2.LoadingScreen.BackgroundWorkerThread() CONTENT_LIBS0_BIN_FILES=' libopenal.so.1' CONTENT_GAME_BIN_FILES=' Solar2 Solar2.deps.json Solar2.runtimeconfig.json' CONTENT_GAME_DATA_FILES=' Content solar2icon_512x512_transparent.png' ## TODO: Some of these shipped Mono libraries could probably be replaced by system-provided ones CONTENT_GAME0_DATA_FILES=' *.dll' ## Old XNA build CONTENT_GAME_MAIN_FILES_XNA=' mono Languages MonoContent display.txt Solar2.exe EasyStorage.Linux.dll GamepadBridge.dll Lidgren.Network.dll MonoGame.Framework.Linux.dll MonoGame.Framework.Linux.dll.config Power.Linux.dll PowerRuntime.Linux.dll Tao.Sdl.dll Tao.Sdl.dll.config' # Launchers ## TODO: Check if these paths are used by the current MonoGame builds USER_PERSISTENT_DIRECTORIES=' Languages' USER_PERSISTENT_FILES=' display.txt' APP_MAIN_EXE='Solar2' APP_MAIN_ICON='solar2icon_512x512_transparent.png' ## Prevent the game from escaping the prefix APP_MAIN_PRERUN=' # Prevent the game from escaping the prefix if [ -h "Solar2.dll" ]; then file_source=$(realpath "Solar2.dll") cp --remove-destination "$file_source" "Solar2.dll" fi ' ## Old XNA build APP_MAIN_EXE_XNA='Solar2.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 liblttng-ust.so.0 libm.so.6 libopenal.so.1 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' ## Old XNA build PACKAGES_LIST_XNA=' PKG_MAIN' PKG_MAIN_PROVIDES_XNA=' solar-2-data' PKG_MAIN_DEPENDENCIES_LIBRARIES_XNA=' libopenal.so.1 libSDL_mixer-1.2.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_XNA=' mscorlib.dll Mono.Posix.dll Mono.Security.dll OpenTK.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.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" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) ## Old XNA build - No icon is shipped (not even included in the .exe file), ## but an optional icons pack is supported unset APP_MAIN_ICON content_inclusion_icons ;; (*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) ## Old XNA build - libSDL_mixer-1.2.so.0 must be available at lib/libSDL_mixer-1.2.so.0 to avoid a game crash. ## WARNING: path_libraries_system can not be used when the package is architecture-agnostic case "$(option_value 'package')" in ('arch') path_libraries_64='/usr/lib' path_libraries_32='/usr/lib32' ;; ('deb') path_libraries_64='/usr/lib/x86_64-linux-gnu' path_libraries_32='/usr/lib/i386-linux-gnu' ;; ('gentoo'|'egentoo') path_libraries_64='/usr/lib64' path_libraries_32='/usr/lib' ;; esac APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # libSDL_mixer-1.2.so.0 must be available at lib/libSDL_mixer-1.2.so.0 to avoid a game crash if [ ! -e 'lib/libSDL_mixer-1.2.so.0' ]; then mkdir --parents 'lib' if [ -e '${path_libraries_64}/libSDL_mixer-1.2.so.0' ]; then ln --symbolic '${path_libraries_64}/libSDL_mixer-1.2.so.0' 'lib/libSDL_mixer-1.2.so.0' elif [ -e '${path_libraries_32}/libSDL_mixer-1.2.so.0' ]; then ln --symbolic '${path_libraries_32}/libSDL_mixer-1.2.so.0' 'lib/libSDL_mixer-1.2.so.0' fi fi " launchers_generation ;; (*) ## MonoGame builds - The game engine fails to find the shipped libraries if they are not in the game directory APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # The game engine fails to find the shipped libraries if they are not in the game directory ln --force --symbolic '$(path_libraries)'/*.so . " launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solar-flux.sh0000755000000000000000000000373014471751340014257 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 contact@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-solstice.sh0000755000000000000000000000367014471751340014013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Solstice # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='solstice' GAME_NAME='Solstice' ARCHIVE_BASE_0='setup_solstice_1.4.13_(33035).exe' ARCHIVE_BASE_0_MD5='4e5cd3affaf723a263ad828d49920e51' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.4.13-gog33035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/solstice' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' galaxy.dll gog.gml.dll solstice.exe' CONTENT_GAME_DATA_FILES=' data.win *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Solstice' APP_MAIN_EXE='solstice.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" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Get icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-soma.sh0000755000000000000000000000602314471751340013120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Soma # send your bug reports to contact@dotslashplay.it ### script_version=20230216.2 GAME_ID='soma' GAME_NAME='SOMA' ARCHIVE_BASE_1='SOMA_Linux_v110.zip' ARCHIVE_BASE_1_MD5='46e9dadf90d347e0f384e636e71ce746' ARCHIVE_BASE_1_SIZE='22000000' ARCHIVE_BASE_1_VERSION='1.10-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/soma' ARCHIVE_BASE_0='SOMA_Humble_Linux_1109.zip' ARCHIVE_BASE_0_MD5='63f4c611fed4df25bee3fb89177ab57f' ARCHIVE_BASE_0_VERSION='1109-humble1' ARCHIVE_BASE_0_SIZE='22000000' CONTENT_PATH_DEFAULT='SOMA' CONTENT_PATH_DEFAULT_0='Linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib64" CONTENT_LIBS_BIN_FILES=' libfmodevent64-4.44.62.so libfmodex64-4.44.62.so' CONTENT_GAME_BIN_FILES=' Soma.bin.x86_64' CONTENT_GAME_ENTITIES_FILES=' entities' CONTENT_GAME_SOUNDS_FILES=' sounds' CONTENT_GAME_DATA_FILES=' billboards combos config core detail_meshes fonts graphics gui lang lights maps music particles script _shadersource static_objects terminals textures undergrowth *.bmp *.cfg *.hps *.rar *.xml' CONTENT_DOC_DATA_FILES=' README.linux' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' config' APP_MAIN_EXE='Soma.bin.x86_64' APP_MAIN_ICON='Icon.bmp' PACKAGES_LIST='PKG_BIN PKG_ENTITIES PKG_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENTITIES_ID="${GAME_ID}-entities" PKG_ENTITIES_DESCRIPTION='entities' PKG_SOUNDS_ID="${GAME_ID}-sounds" PKG_SOUNDS_DESCRIPTION='sounds' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_ENTITIES_ID $PKG_SOUNDS_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sort-the-court.sh0000755000000000000000000000372314471751340015064 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sort the Court # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sort-the-court' GAME_NAME='Sort the Court' ARCHIVE_BASE_0_NAME='SortTheCourt_Linux.zip' ARCHIVE_BASE_0_MD5='70561aaeddc67f2c9c36139d1f747478' ARCHIVE_BASE_0_SIZE='86553' ARCHIVE_BASE_0_VERSION='2.2.0-itch' ARCHIVE_BASE_0_URL='https://graebor.itch.io/sort-the-court' UNITY3D_NAME='SortTheCourt' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_FILES=' *_save.dat' 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" # 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-south-scrimshaw-part-1.sh0000755000000000000000000000442414471751340016426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # South Scrimshaw, Part 1 # send your bug reports to contact@dotslashplay.it ### script_version=20231125.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='south-scrimshaw-part-1' GAME_NAME='South Scrimshaw, Part One' ARCHIVE_BASE_0_NAME='south_scrimshaw_part_one_1_0_66489.sh' ARCHIVE_BASE_0_MD5='b68e7e8fa9491d38a55f007911b94da0' ARCHIVE_BASE_0_SIZE='1699476' ARCHIVE_BASE_0_VERSION='1.0-gog66489' ARCHIVE_BASE_0_URL='https://www.gog.com/game/south_scrimshaw_part_one' RENPY_NAME='SouthScrimshaw' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/py2-linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=" lib/py2-linux-x86_64/python lib/py2-linux-x86_64/pythonw lib/py2-linux-x86_64/zsync lib/py2-linux-x86_64/zsyncmake lib/py2-linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/python2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/py2-linux-x86_64/${RENPY_NAME}" APP_MAIN_ICON='SouthScrimshaw.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sovereign-syndicate.sh0000755000000000000000000000465114471751340016150 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sovereign Syndicate # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sovereign-syndicate' GAME_NAME='Sovereign Syndicate' ARCHIVE_BASE_0_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092).exe' ARCHIVE_BASE_0_MD5='266029b31e13dc11b808cd87b4b31eb9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8872971818c95eee27f80f7684209c1c' ARCHIVE_BASE_0_PART2_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3de81fad53bfddf5c3eaa6c6598af2b7' ARCHIVE_BASE_0_SIZE='11071403' ARCHIVE_BASE_0_VERSION='1.0.36-gog72092' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sovereign_syndicate' UNITY3D_NAME='sovereign syndicate' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_data/sharedassets*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Crimson Herring Studios/Sovereign Syndicate' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS 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_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-space-pirates-and-zombies.sh0000755000000000000000000000430314471751340017126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Space Pirates and Zombies # send your bug reports to contact@dotslashplay.it ### script_version=20230206.1 GAME_ID='space-pirates-and-zombies' GAME_NAME='Space Pirates and Zombies' ARCHIVE_BASE_0='gog_space_pirates_and_zombies_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='46da2a84e78f8016e35f7c0e63e28581' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.605-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/space_pirates_and_zombies' CONTENT_PATH_DEFAULT='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' 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 libSDL-1.2.so.0 libstdc++.so.6' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "$PLAYIT_WORKDIR/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-space-tail.sh0000755000000000000000000000737514471751340014216 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Space Tail # send your bug reports to contact@dotslashplay.it ### script_version=20231111.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='space-tail' GAME_NAME='Space Tail: Every Journey Leads Home' # Archives ## Native Linux build ARCHIVE_BASE_LINUX_0_NAME='space_tail_every_journey_leads_home_1_0_2r9_61068.sh' ARCHIVE_BASE_LINUX_0_MD5='c267a2e1ef94cde68487e41cd3a4bbcf' ARCHIVE_BASE_LINUX_0_SIZE='7700000' ARCHIVE_BASE_LINUX_0_VERSION='1.0.2r9-gog61068' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' ## Windows build ### This is useful for users of nVIDIA non-free graphics driver, ### as the native Linux build suffers from rendering issues with this driver. ARCHIVE_BASE_WINDOWS_0_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065).exe' ARCHIVE_BASE_WINDOWS_0_MD5='5683d3493606fb5a2a60d9416e79c28d' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_PART1_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065)-1.bin' ARCHIVE_BASE_WINDOWS_0_PART1_MD5='3183c4b2d5db7c462a266e41ad683720' ARCHIVE_BASE_WINDOWS_0_SIZE='7800000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0.2r9-gog61065' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' UNITY3D_NAME_LINUX='Space Tail' UNITY3D_NAME_WINDOWS='space tail' UNITY3D_PLUGINS=' lib_burst_generated.so libfmodstudio.so libresonanceaudio.so' ## The game crashes on launch if the Steam library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Enjoy Studio/Space Tail' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='64' ## Native Linux build PKG_DATA_ID_LINUX="${GAME_ID}-linux-data" PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" 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' ## Windows build PKG_DATA_ID_WINDOWS="${GAME_ID}-windows-data" PKG_BIN_ID_WINDOWS="${GAME_ID}-windows" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # 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" # Native Linux build - Link libresonanceaudio.so in the game data path as the game engine fails to find it otherwise case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) library_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins" mkdir --parents "$library_destination" ln --symbolic "$(path_libraries)/libresonanceaudio.so" "$library_destination" ;; esac # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spacecom.sh0000755000000000000000000000636014471751340013757 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 contact@dotslashplay.it ### script_version=20230212.1 GAME_ID='spacecom' GAME_NAME='Spacecom' ARCHIVE_BASE_HUMBLE_0='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='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' CONTENT_PATH_DEFAULT_HUMBLE='Linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/${UNITY3D_NAME}/Plugins/x86" CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/${UNITY3D_NAME}/Plugins/x86" CONTENT_LIBS_BIN_FILES=' ScreenSelector.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png" CONTENT_DOC_DATA_FILES=' SPACECOM Game Manual.pdf' 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=' 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' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packageS write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spellforce.sh0000755000000000000000000000535714471751340014330 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 contact@dotslashplay.it ### script_version=20231107.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' CONTENT_GAME_DATA_FILES=' data map miles pak videos spellforce_addon.ico spellforce_addon2.ico' CONTENT_DOC_DATA_FILES=' manual.pdf readme.rtf' ## On first launch, register the game CD-key. CONTENT_GAME0_BIN_FILES=' cdkey' APP_MAIN_EXE='spellforce.exe' ## On first launch, register the game CD-key. APP_MAIN_PRERUN='# On first launch, register the game CD-key if [ ! -e .cdkey-registered ]; then cdkey=$(cat cdkey) $(wine_command) reg add "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\SpellForce" /v "CDKEY" /t REG_SZ /d "$cdkey" /f touch .cdkey-registered fi ' 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## On first launch, register the game CD-key. sed --silent '125s/.*"valueData": "\(.*\)",/\1/p' goggame-1207658719.script > 'cdkey' ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spelunky.sh0000755000000000000000000000347214471751340014040 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Spelunky # send your bug reports to contact@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='spelunky' GAME_NAME='Spelunky' ARCHIVE_BASE_0_NAME='setup_spelunky_2.1.0.9.exe' ARCHIVE_BASE_0_MD5='bff7c275053137881c9f2f6df16ee4b3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spelunky' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll spelunky.exe' CONTENT_GAME_DATA_FILES=' data' USER_PERSISTENT_FILES=' data/config.txt data/spelunky_save.sav data/spelunky_save.bak' APP_MAIN_EXE='spelunky.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" # 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-spiritfarer.sh0000755000000000000000000001161014471751340014511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Spiritfarer # send your bug reports to contact@dotslashplay.it ### script_version=20241209.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='spiritfarer' GAME_NAME='Spiritfarer' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_4_NAME='spiritfarer_35325c_linux_60321.sh' ARCHIVE_BASE_4_MD5='6c01cdd8cd04d23b46153367682722fb' ARCHIVE_BASE_4_SIZE='6308582' ARCHIVE_BASE_4_VERSION='35325c-gog60321' ARCHIVE_BASE_4_URL='https://www.gog.com/game/spiritfarer' ARCHIVE_BASE_3_NAME='spiritfarer_35325c_linux_54594.sh' ARCHIVE_BASE_3_MD5='39f342a2616f42406e8fd4d3f4576acb' ARCHIVE_BASE_3_SIZE='6400000' ARCHIVE_BASE_3_VERSION='35325c-gog54594' ARCHIVE_BASE_2_NAME='spiritfarer_34556_linux_50344.sh' ARCHIVE_BASE_2_MD5='7dd310caa09790c0b56d4a9a67e7f9dc' ARCHIVE_BASE_2_SIZE='7500000' ARCHIVE_BASE_2_VERSION='34556-gog50344' ARCHIVE_BASE_1_NAME='spiritfarer_32698_linux_42758.sh' ARCHIVE_BASE_1_MD5='2f1c327bd020676eabd78f99124a786f' ARCHIVE_BASE_1_SIZE='6900000' ARCHIVE_BASE_1_VERSION='32698-gog42758' ARCHIVE_BASE_0_NAME='spiritfarer_32513_linux_41748.sh' ARCHIVE_BASE_0_MD5='8e6e49ce7e7571091f91d82706d2df8e' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='32513-gog41748' ARCHIVE_BASE_DEMO_0_NAME='spiritfarer_demo_demo_20200525a_linux_38575.sh' ARCHIVE_BASE_DEMO_0_MD5='952e425281143b061462e9122e638531' ARCHIVE_BASE_DEMO_0_SIZE='2782689' ARCHIVE_BASE_DEMO_0_VERSION='2020.05.25-gog38575' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/spiritfarer_demo' UNITY3D_NAME='spiritfarer' UNITY3D_NAME_DEMO='Spiritfarer' ## TODO: Check if the shipped Galaxy libraries are required. UNITY3D_PLUGINS=' libGalaxy64.so libGalaxyCSharpGlue.so' UNITY3D_PLUGINS_DEMO=' ScreenSelector.so' ## TODO: Check if the shipped Steam libraries are required. UNITY3D_PLUGINS_DEMO="$UNITY3D_PLUGINS_DEMO libCSteamworks.so 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_BIN_DEPENDENCIES_LIBRARIES_DEMO=' 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_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 "$@" # GOG build 50344 - Check for the presence of required extra archives case "$(current_archive)" in ('ARCHIVE_BASE_2') ARCHIVE_REQUIRED_MISSING_PLUGINS_NAME='spiritfarer_missing-plugins.tar.xz' ARCHIVE_REQUIRED_MISSING_PLUGINS_MD5='0fe61aeadf3066e724dca3db627d6a49' ARCHIVE_REQUIRED_MISSING_PLUGINS_URL='https://downloads.dotslashplay.it/games/spiritfarer/' archive_initialize_required \ 'ARCHIVE_MISSING_PLUGINS' \ 'ARCHIVE_REQUIRED_MISSING_PLUGINS' ;; esac # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then archive_extraction 'ARCHIVE_MISSING_PLUGINS' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Enforce a consistent Unity3D name. unity3d_name=$(unity3d_name) alternative_name='Spiritfarer' ### Old builds ship the binary with a .exe file extension. if [ -e "${alternative_name}.exe" ]; then mv "${alternative_name}.exe" "${unity3d_name}.x86_64" mv "${alternative_name}_Data" "${unity3d_name}_Data" fi ) # Include game data content_inclusion_icons 'PKG_DATA' ## GOG build 50344 - Include missing plugins. if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then CONTENT_GAME_MISSING_PLUGINS_BIN_PATH='.' CONTENT_GAME_MISSING_PLUGINS_BIN_FILES=' libGalaxy64.so libGalaxyCSharpGlue.so' content_inclusion 'GAME_MISSING_PLUGINS_BIN' 'PKG_BIN' "$(path_game_data)/$(unity3d_name)_Data/Plugins" fi content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-spore.sh0000755000000000000000000001242414471751340013313 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 contact@dotslashplay.it ### script_version=20241026.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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_GAME_EP1_DATA_FILES=' dataep1' CONTENT_GAME_BP1_FILES=' bp1content' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/add" CONTENT_GAME0_DATA_PATH_0="${CONTENT_PATH_DEFAULT_0}/__support/add" CONTENT_GAME0_DATA_FILES=' login.prop' CONTENT_DOC_DATA_FILES=' support' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Spore users/${USER}/Documents/My Spore Creations' APP_MAIN_EXE='sporebin/sporeapp.exe' ## Include the login workaround ## TODO: With ./play.it 2.31, it could be done by overriding wine_wineprefix_init_actions ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/536 APP_MAIN_PRERUN=' # Include the login workaround login_file_destination="${WINEPREFIX}/drive_c/users/${USER}/AppData/Roaming/Spore/Preferences/login.prop" if [ ! -e "$login_file_destination" ]; then install -D --mode=644 \ "${PATH_GAME_DATA}/login.prop" \ "$login_file_destination" fi ' APP_EP1_ID="${GAME_ID}-galactic-adventures" APP_EP1_NAME="$GAME_NAME - Galactic Adventures" APP_EP1_EXE='sporebinep1/sporeapp.exe' ## Include the login workaround APP_EP1_PRERUN="$APP_MAIN_PRERUN" 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" # Set required registry keys game_id=$(game_id) # shellcheck disable=SC1003 installloc='C:\\'"${game_id}" # shellcheck disable=SC1003 datadir='C:\\'"${game_id}"'\\data' # shellcheck disable=SC1003 datadir_ep1='C:\\'"${game_id}"'\\dataep1\\' registry_dump_init_file='registry-dumps/init.reg' registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\electronic arts\spore] "appdir"="Spore" "installcompleted"=dword:00000001 "locale"="en-us" "playerdir"="My Spore Creations" "reindexyesorno"=dword:00000000 "installloc"="'"${installloc}"'" "datadir"="'"${datadir}"'" [HKEY_LOCAL_MACHINE\Software\electronic arts\spore_EP1] "AddOnID"=dword:00000002 "PackID"=dword:07a7f786 "DataDir"="'"${datadir_ep1}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data content_inclusion_icons 'PKG_DATA' 'APP_MAIN' content_inclusion_icons 'PKG_EP1_DATA' 'APP_EP1' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' 'APP_MAIN' launchers_generation 'PKG_EP1_BIN' 'APP_EP1' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-springback.sh0000755000000000000000000000411614471751340014305 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # SpringBack # send your bug reports to contact@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='springback' GAME_NAME='SpringBack' ARCHIVE_BASE_1_NAME='Springback_1.1.429.rar' ARCHIVE_BASE_1_MD5='13516502d68c29fd38851adf03b82934' ARCHIVE_BASE_1_SIZE='241965' ARCHIVE_BASE_1_VERSION='1.1.429-itch1' ARCHIVE_BASE_1_URL='https://sweet-arsenic.itch.io/springback' ARCHIVE_BASE_0_NAME='springback-windows-universal.zip' ARCHIVE_BASE_0_MD5='61b073d967bbd27433baaedc9d97c3e1' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch1' UNITY3D_NAME='SpringBack' CONTENT_PATH_DEFAULT='Springback_1.1.429' CONTENT_PATH_DEFAULT_0='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Sweet Arsenic\SpringBack' 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 ## Ignore some harmless errors during the extraction of some *.mdb files 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-star-twine.sh0000755000000000000000000000523514471751340014262 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 contact@dotslashplay.it ### script_version=20230129.1 GAME_ID='star-twine' GAME_NAME='Star-Twine' ARCHIVE_BASE_0='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_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' PKG_MAIN_DEPS='mono' 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' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS_FILES=' libFNA3D.so.0 libsteam_api.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icon # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-star-vikings.sh0000755000000000000000000000464214471751340014607 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 contact@dotslashplay.it ### script_version=20241126.1 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_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_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_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-star-wars-battlefront-2.sh0000755000000000000000000000737114471751340016574 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Star Wars Battlefront 2 # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='star-wars-battlefront-2' GAME_NAME='Star Wars Battlefront Ⅱ' ARCHIVE_BASE_1_NAME='setup_star_wars_battlefront_ii_1.1_(10935).exe' ARCHIVE_BASE_1_MD5='0b74c1d7cced6d6bde95605661b67673' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c7ad88e5eb89b3701dad3a6973d9918b' ARCHIVE_BASE_1_PART2_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3a52d98aa43cb78fd661a656e5cf96a2' ARCHIVE_BASE_1_SIZE='10000000' ARCHIVE_BASE_1_VERSION='1.1-gog10935' ARCHIVE_BASE_1_URL='https://www.gog.com/game/star_wars_battlefront_ii' ARCHIVE_BASE_0_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606).exe' ARCHIVE_BASE_0_MD5='f482ec251067336d3b8211774b4c44f6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c34b41f594e55b1522d8826f19cf958f' ARCHIVE_BASE_0_PART2_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c9423f3983c67575c1c531e0d18e6a0f' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1-gog17606' CONTENT_PATH_DEFAULT='gamedata' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_MOVIES_FILES=' data/_lvl_pc/movies' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='battlefrontii.exe' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # 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 ARCHIVE_OPTIONAL_ICONS_0_NAME='star-wars-battlefront-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='322275011d37ac219f1c06c196477fa4' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/star-wars-battlefront-2' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-stardew-valley.sh0000755000000000000000000002751314471751340015133 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 contact@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-stargunner.sh0000755000000000000000000000573514471751340014362 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Stargunner # send your bug reports to contact@dotslashplay.it ### script_version=20230428.5 GAME_ID='stargunner' GAME_NAME='Stargunner' ARCHIVE_BASE_1='gog_stargunner_2.0.0.10.sh' ARCHIVE_BASE_1_MD5='d04655b120bce07d7c840f49e89e6a83' ARCHIVE_BASE_1_SIZE='58000' ARCHIVE_BASE_1_VERSION='1.0b-gog2.0.0.10' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stargunner' ARCHIVE_BASE_0='gog_stargunner_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='4e90175d15754e05ad6cb0a0fa1af413' ARCHIVE_BASE_0_SIZE='57000' ARCHIVE_BASE_0_VERSION='1.0b-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_FILES=' STARGUN.CFG STARGUN.HI STARGUN.SAV' APP_MAIN_EXE='STARGUN.EXE' APP_MAIN_ICON='../support/icon.png' APP_HELP_ID="${GAME_ID}-help" APP_HELP_NAME="$GAME_NAME - help" APP_HELP_EXE='STARHELP.EXE' APP_HELP_ICON='../support/icon.png' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='SETUP.EXE' APP_SETUP_ICON='../support/icon.png' # Prevent the game from running too fast APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 25000' # Load common functions target_version='2.23' 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" # Generate a smaller icon from the shipped one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_HELP_ICONS_LIST="$(application_icons_list 'APP_HELP') APP_MAIN_ICON_512" APP_SETUP_ICONS_LIST="$(application_icons_list 'APP_SETUP') APP_MAIN_ICON_512" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Generate a smaller icon from the shipped one convert "$APP_MAIN_ICON" -resize 512x512 "$APP_MAIN_ICON_512" ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'DOC_MAIN')" # Convert documentation file names to lower case tolower . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-starship-titanic.sh0000755000000000000000000000314014471751340015444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Starship Titanic # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='starship-titanic' GAME_NAME='Starship Titanic' ARCHIVE_BASE_0_NAME='starship_titanic_1_0_53361.sh' ARCHIVE_BASE_0_MD5='a41b4da053b7d4191e0d864bc52e6a89' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.00.42-gog53361' ARCHIVE_BASE_0_URL='https://www.gog.com/game/starship_titanic' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' Assets newgame.st' CONTENT_DOC_MAIN_FILES=' *.doc *.txt' APP_MAIN_SCUMMID='titanic:titanic' APP_MAIN_ICON='../../support/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" # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-starship-traveller.sh0000755000000000000000000000506314471751340016017 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Starship Traveller # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='starship-traveller' GAME_NAME='Starship Traveller' UNITY3D_NAME='Starship Traveller' ARCHIVE_BASE_0='starship_linux_115274.zip' ARCHIVE_BASE_0_MD5='92d8dc4ac95568ac524daaf7ec4152e6' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.0-humble160523' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/starship-traveller' CONTENT_PATH_DEFAULT='STARSHIP_LINUX_115274' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-steamworld-games.sh0000755000000000000000000001225614471751340015441 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # SteamWorld games: # - SteamWorld Dig 1 # - SteamWorld Dig 2 # - SteamWorld Heist # - SteamWorld Quest # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_DIG1='steamworld-dig-1' GAME_NAME_DIG1='SteamWorld Dig: A Fistful of Dirt' GAME_ID_DIG2='steamworld-dig-2' GAME_NAME_DIG2='SteamWorld Dig 2' GAME_ID_HEIST='steamworld-heist' GAME_NAME_HEIST='SteamWorld Heist' GAME_ID_QUEST='steamworld-quest' GAME_NAME_QUEST='SteamWorld Quest: Hand of Gilgamech' # Archives ## SteamWorld Dig 1 ARCHIVE_BASE_DIG1_GOG_0_NAME='gog_steamworld_dig_2.0.0.7.sh' ARCHIVE_BASE_DIG1_GOG_0_MD5='2f2ed68e00f151ff3c4d0092d8d6b15b' ARCHIVE_BASE_DIG1_GOG_0_SIZE='79000' ARCHIVE_BASE_DIG1_GOG_0_VERSION='1.10-gog2.0.0.7' ARCHIVE_BASE_DIG1_GOG_0_URL='https://www.gog.com/game/steamworld_dig' ARCHIVE_BASE_DIG1_HUMBLE_0_NAME='SteamWorldDig_linux_1393468453.tar.gz' ARCHIVE_BASE_DIG1_HUMBLE_0_MD5='de6ff6273c4e397413d852472d51e788' ARCHIVE_BASE_DIG1_HUMBLE_0_SIZE='77000' ARCHIVE_BASE_DIG1_HUMBLE_0_VERSION='1.10-humble140220' ARCHIVE_BASE_DIG1_HUMBLE_0_URL='https://www.humblebundle.com/store/steamworld-dig' ## SteamWorld Dig 2 ARCHIVE_BASE_DIG2_0_NAME='steamworld_dig_2_en_1_1_15062.sh' ARCHIVE_BASE_DIG2_0_MD5='baafa458aaef7fc9c80e076d48e754f0' ARCHIVE_BASE_DIG2_0_SIZE='220000' ARCHIVE_BASE_DIG2_0_VERSION='1.1-gog15062' ARCHIVE_BASE_DIG2_0_URL='https://www.gog.com/game/steamworld_dig' ## SteamWorld Heist ARCHIVE_BASE_HEIST_0_NAME='SteamWorldHeist.tar.gz' ARCHIVE_BASE_HEIST_0_MD5='79a499459c09d7881efeb95be7abc559' ARCHIVE_BASE_HEIST_0_VERSION='1.0-humble170131' ARCHIVE_BASE_HEIST_0_SIZE='200000' ARCHIVE_BASE_HEIST_0_URL='https://www.humblebundle.com/store/steamworld-heist' ## SteamWorld Quest ARCHIVE_BASE_QUEST_0_NAME='steamworld_quest_hand_of_gilgamech_2_1_31741.sh' ARCHIVE_BASE_QUEST_0_MD5='cffa9b745ef4ca37123b5928c37effe0' ARCHIVE_BASE_QUEST_0_SIZE='1200000' ARCHIVE_BASE_QUEST_0_VERSION='2.1-gog31741' ARCHIVE_BASE_QUEST_0_URL='https://www.gog.com/game/steamworld_quest_hand_of_gilgamech' # Archives content CONTENT_GAME_DATA_FILES=' icon.bmp icon.png Bundle BundlePC' CONTENT_DOC_DATA_FILES=' Licenses readme.txt' ## SteamWorld Dig 1 CONTENT_PATH_DEFAULT_DIG1_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DIG1_HUMBLE='SteamWorldDig' CONTENT_GAME_BIN_FILES_DIG1=' SteamWorldDig' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_DIG2='data/noarch/game' CONTENT_GAME_BIN_FILES_DIG2=' Dig2' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_HEIST='SteamWorldHeist' CONTENT_GAME_BIN_FILES_HEIST=' Heist' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_QUEST='data/noarch/game' CONTENT_GAME_BIN_FILES_QUEST=' Quest' APP_MAIN_ICON='icon.png' APP_MAIN_EXE_DIG1='SteamWorldDig' APP_MAIN_EXE_DIG2='Dig2' APP_MAIN_EXE_HEIST='Heist' APP_MAIN_EXE_QUEST='Quest' ## The game crashes on launch when SDL_VIDEODRIVER is set to "wayland" ## TODO: Check if all supported games are affected 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 PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_DESCRIPTION='data' ## SteamWorld Dig 1 PKG_BIN_ARCH_DIG1='32' PKG_BIN_DEPENDENCIES_LIBRARIES_DIG1=' 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 libz.so.1' PKG_DATA_ID_DIG1="${GAME_ID_DIG1}-data" ## SteamWorld Dig 2 PKG_BIN_ARCH_DIG2='64' PKG_BIN_DEPENDENCIES_LIBRARIES_DIG2=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID_DIG2="${GAME_ID_DIG2}-data" ## SteamWorld Heist PKG_BIN_ARCH_HEIST='32' PKG_BIN_DEPENDENCIES_LIBRARIES_HEIST=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6' PKG_DATA_ID_HEIST="${GAME_ID_HEIST}-data" ## SteamWorld Quest PKG_BIN_ARCH_QUEST='64' PKG_BIN_DEPENDENCIES_LIBRARIES_QUEST=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID_QUEST="${GAME_ID_QUEST}-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-steel-rats.sh0000755000000000000000000000404314471751340014244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Steel Rats # send your bug reports to contact@dotslashplay.it ### script_version=20240611.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='steel-rats' GAME_NAME='Steel Rats' ARCHIVE_BASE_0_NAME='setup_steel_ratstm_1.03_(64bit)_(27036).exe' ARCHIVE_BASE_0_MD5='95ebd3a66fd410645947c0e3b0ae1528' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_steel_ratstm_1.03_(64bit)_(27036)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1624fd9677468f45741dfa57f88a714' ARCHIVE_BASE_0_PART2_NAME='setup_steel_ratstm_1.03_(64bit)_(27036)-2.bin' ARCHIVE_BASE_0_PART2_MD5='a72af4b2e4d64ac63c1cbe59e73501f0' ARCHIVE_BASE_0_SIZE='5600000' ARCHIVE_BASE_0_VERSION='1.03-gog27036' ARCHIVE_BASE_0_URL='https://www.gog.com/game/steel_rats' UNREALENGINE4_NAME='steelrats' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' 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-sticky-business.sh0000755000000000000000000000352614471751340015325 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sticky Business # send your bug reports to contact@dotslashplay.it ### script_version=20240315.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='sticky-business' GAME_NAME='Sticky Business' ARCHIVE_BASE_0_NAME='setup_sticky_business_2023.2084_(64bit)_(69872).exe' ARCHIVE_BASE_0_MD5='9d32598a90429c8464f6e44fd721ef46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='193345' ARCHIVE_BASE_0_VERSION='2023.2084-gog69872' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sticky_business' UNITY3D_NAME='stickybusiness' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Spellgarden Games/Sticky Business' 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-still-there.sh0000755000000000000000000000334414471751340014420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Still There # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='still-there' GAME_NAME='Still There' ARCHIVE_BASE_0_NAME='setup_still_there_1.07_(64bit)_(40001).exe' ARCHIVE_BASE_0_MD5='b95f8676d7c574b49ff7cf258f5b606d' ARCHIVE_BASE_0_SIZE='400000' ARCHIVE_BASE_0_VERSION='1.07-gog40001' ARCHIVE_BASE_0_URL='https://www.gog.com/game/still_there' UNITY3D_NAME='still there' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GhostShark Games/Still There' 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-stories-the-path-of-destinies.sh0000755000000000000000000000525114471751340017752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stories: The Path of Destinies # send your bug reports to contact@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='stories-the-path-of-destinies' GAME_NAME='Stories: The Path of Destinies' ARCHIVE_BASE_1_NAME='setup_stories_the_path_of_destinies_update_4_(25956).exe' ARCHIVE_BASE_1_MD5='61f632db33297ca2b178d4383545732c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.0-gog25956' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stories_the_path_of_destinies' ARCHIVE_BASE_0_NAME='setup_stories_-_the_path_of_destinies_0.0.13825_(16929).exe' ARCHIVE_BASE_0_MD5='6f81dbadddbb4b30b4edda9ced9ddef8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='0.0.13825-gog16929' ARCHIVE_BASE_0_SIZE='1700000' UNREALENGINE4_NAME='stories' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME0_BIN_FILES=' language_setup.exe language_setup.ini' CONTENT_GAME0_DATA_FILES=' language_setup.png' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' ## TODO: Check if the shipped language selector could be dropped APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' 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-strafe.sh0000755000000000000000000000476414471751340013457 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Strafe # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='strafe' GAME_NAME='Strafe' UNITY3D_NAME='STRAFE' ARCHIVE_BASE_1='strafe_gold_edition_1_4_38941.sh' ARCHIVE_BASE_1_MD5='f7e0bd39d0c6527f4205ec9d095de936' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='3000000' ARCHIVE_BASE_1_VERSION='1.4-gog38941' ARCHIVE_BASE_1_URL='https://www.gog.com/game/strafe' ARCHIVE_BASE_0='strafe_en_1_2_update_25_04_2018_20318.sh' ARCHIVE_BASE_0_MD5='3726412cdf951f5d4278a0a557a70db6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.180425-gog20318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/strafe' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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=' ld-linux-x86-64.so.2 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 target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-strike-suit-zero.sh0000755000000000000000000000654214471751340015427 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Strike Suit Zero # send your bug reports to contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='strike-suit-zero' GAME_NAME='Strike Suit Zero' ARCHIVE_BASE_0_NAME='StrikeSuitZero_linux_1389211698.zip' ARCHIVE_BASE_0_MD5='94b1c2907ae61deb27eb77fee3fb9c19' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/strike-suit-zero' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/linux/main/binary" ## TODO: Check if the Steam library could be dropped. CONTENT_LIBS_BIN_FILES=' libfmodevent.so libfmodeventnet.so libfmodex.so libfmodex-4.44.12.so libsteam_api.so' CONTENT_GAME_BIN_FILES=' linux/main/binary/StrikeSuitZero' CONTENT_GAME_DATA_FILES=' linux/main/art linux/main/audio linux/main/fonts linux/main/gui linux/main/level linux/main/levels linux/main/localisation linux/main/particles linux/main/scripts linux/main/shaders linux/main/system linux/main/textures linux/main/video linux/main/index.toc linux/main/index.toc.txt' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='linux/main/binary/StrikeSuitZero' ## Run the game binary from its parent directory. APP_MAIN_PRERUN='# Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_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_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' # 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 ARCHIVE_OPTIONAL_ICONS_0_NAME='strike-suit-zero_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='3fe8bbad7ecca5c0e3afdbbfedb8945d' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/strike-suit-zero' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sudden-strike-4-expansions.sh0000755000000000000000000000645414471751340017300 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 contact@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.sh0000755000000000000000000000415614471751340015110 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 contact@dotslashplay.it ### script_version=20240331.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so 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_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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sumatra-fate-of-yandi.sh0000755000000000000000000000347014471751340016261 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sumatra: Fate of Yandi # send your bug reports to contact@dotslashplay.it ### script_version=20230406.1 GAME_ID='sumatra-fate-of-yandi' GAME_NAME='Sumatra: Fate of Yandi' ARCHIVE_BASE_0='setup_sumatra_fate_of_yandi_1.2_(56037).exe' ARCHIVE_BASE_0_MD5='60b1734aa9e06bb5077f48200c0106bf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.2-gog56037' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sumatra_fate_of_yandi' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.tra *.vox' APP_MAIN_TYPE='scummvm' APP_MAIN_SCUMMID='ags:sumatra' APP_MAIN_ICON='sumatra fate of yandi.exe' PKG_MAIN_DEPS='scummvm' # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-summer-in-mara.sh0000755000000000000000000000370714471751340015021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Summer in Mara # send your bug reports to contact@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='summer-in-mara' GAME_NAME='Summer in Mara' ARCHIVE_BASE_0_NAME='setup_summer_in_mara_1.9_(39424).exe' ARCHIVE_BASE_0_MD5='d3fc24a65ff2adf8c42bb6fda639dc17' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.07-gog39424' ARCHIVE_BASE_0_URL='https://www.gog.com/game/summer_in_mara' UNITY3D_NAME='summer in mara' CONTENT_PATH_DEFAULT='.' ## The game works with the default wined3d renderer, ## but performances are poor. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Chibig/Summer in Mara' 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-sunblaze.sh0000755000000000000000000000346114471751340014007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunblaze # send your bug reports to contact@dotslashplay.it ### script_version=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunblaze' GAME_NAME='Sunblaze' ARCHIVE_BASE_0_NAME='setup_sunblaze_1.1.2.016_(64bit)_(48132).exe' ARCHIVE_BASE_0_MD5='85389b46e533fad6ec46188e17688798' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.1.2.016-gog48132' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sunblaze' UNITY3D_NAME='sunblaze' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Games From Earth/Sunblaze' 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 icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sundered.sh0000755000000000000000000000507114471751340013774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sundered # send your bug reports to contact@dotslashplay.it ### script_version=20240614.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='sundered' GAME_NAME='Sundered' ARCHIVE_BASE_ITCH_0_NAME='sundered-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='1be5d771f33fa95f3a567aef75314750' ARCHIVE_BASE_ITCH_0_SIZE='2439430' ARCHIVE_BASE_ITCH_0_VERSION='1.0-itch.2020.06.07' ARCHIVE_BASE_ITCH_0_URL='https://thunderlotus.itch.io/sundered' ARCHIVE_BASE_GOG_0_NAME='sundered_20190404_29317.sh' ARCHIVE_BASE_GOG_0_MD5='efd81d3e4b14d26cdef2362b888e0a56' ARCHIVE_BASE_GOG_0_SIZE='2500000' ARCHIVE_BASE_GOG_0_VERSION='20190404-gog23987' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/sundered' UNITY3D_NAME='Sundered' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_ITCH='linux' 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 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" # 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-sunlight.sh0000755000000000000000000000332214471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunlight # send your bug reports to contact@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunlight' GAME_NAME='Sunlight' ARCHIVE_BASE_0_NAME='Sunlight v1.1.5RC 211801 Windows.zip' ARCHIVE_BASE_0_MD5='fbe2840776c841d4582f40e68acfe8aa' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.1.5RC.211801-itch1' ARCHIVE_BASE_0_URL='https://krillbitestudio.itch.io/sunlight' UNITY3D_NAME='Sunlight' CONTENT_PATH_DEFAULT='Sunlight v1.1.5RC 211801 Windows' 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-super-meat-boy.sh0000755000000000000000000000647314471751340015043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Super Meat Boy # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='super-meat-boy' GAME_NAME='Super Meat Boy' ARCHIVE_BASE_0_NAME='supermeatboy-linux-11112013-bin' ARCHIVE_BASE_0_MD5='fc024d757395eebfdee342571671332b' ## This archive is a MojoSetup installer that is not using Makeself ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='250899' ARCHIVE_BASE_0_VERSION='1.0-humble131111' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/super-meat-boy' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN64_FILES=' amd64/SuperMeatBoy' ## TODO: The shipped libraries should be installed in the system libraries path ## TODO: Check if some shipped libraries can be dropped CONTENT_GAME0_BIN64_FILES=' amd64/libmariadb.so.1 amd64/libopenal.so.1 amd64/libSDL2-2.0.so.0' ## TODO: Check if the Steam library is required CONTENT_GAME1_BIN64_FILES=' amd64/libsteam_api.so' CONTENT_GAME_BIN32_FILES=' x86/SuperMeatBoy' ## TODO: The shipped libraries should be installed in the system libraries path ## TODO: Check if some shipped libraries can be dropped CONTENT_GAME0_BIN32_FILES=' x86/libmariadb.so.1 x86/libopenal.so.1 x86/libSDL2-2.0.so.0' ## TODO: Check if the Steam library is required CONTENT_GAME1_BIN32_FILES=' x86/libsteam_api.so' CONTENT_GAME_DATA_FILES=' Levels resources buttonmap.cfg gameaudio.dat gamedata.dat supermeatboy.png locdb.txt' ## TODO: Check if the Steam metadata is required CONTENT_GAME0_DATA_FILES=' steam_appid.txt' CONTENT_DOC_DATA_FILES=' README-licenses.txt README-linux.txt' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BIN32='x86/SuperMeatBoy' APP_MAIN_EXE_BIN64='amd64/SuperMeatBoy' APP_MAIN_ICON='supermeatboy.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 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.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" # 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-supercow.sh0000755000000000000000000000352314471751340014032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 tyzef # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Supercow # send your bug reports to contact@dotslashplay.it ### script_version=20250226.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='supercow' GAME_NAME='Supercow' ARCHIVE_BASE_0_NAME='Supercow.exe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='78363' ARCHIVE_BASE_0_VERSION='1.0-1' ARCHIVE_BASE_0_URL='https://www.gametop.com/download-free-games/supercow/' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' wrapgame.exe *.dll' CONTENT_GAME_DATA_FILES=' data' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Super-Cow' APP_MAIN_EXE='wrapgame.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-superhot.sh0000755000000000000000000000465714471751340014045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Superhot # send your bug reports to contact@dotslashplay.it ### script_version=20231104.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='superhot' GAME_NAME='Superhot' ARCHIVE_BASE_GOG_0_NAME='superhot_1_0_14_33249.sh' ARCHIVE_BASE_GOG_0_MD5='0cae1298bc41354a7d34d2211d6b07f2' ARCHIVE_BASE_GOG_0_SIZE='4100000' ARCHIVE_BASE_GOG_0_VERSION='1.0.14-gog33249' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/superhot' ## This DRM-free build is no longer available for sale from humblebundle.com, they only sell Steam keys. ARCHIVE_BASE_HUMBLE_0_NAME='SUPERHOT_LINUX.zip' ARCHIVE_BASE_HUMBLE_0_MD5='bbbbae191504b00cfb4a9509175014c2' ARCHIVE_BASE_HUMBLE_0_SIZE='4300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' UNITY3D_NAME='SUPERHOT' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='SUPERHOT' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-surviving-mars-expansions.sh0000755000000000000000000001343114471751340017343 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Janeene "dawnmist" 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 contact@dotslashplay.it ### script_version=20230414.1 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='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='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='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='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='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='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='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='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='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='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='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='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='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='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_MAIN_ID_DELUXE="${GAME_ID}-${EXPANSION_ID_DELUXE}" PKG_MAIN_ID_STELLARIS="${GAME_ID}-${EXPANSION_ID_STELLARIS}" PKG_MAIN_ID_MYSTERIES="${GAME_ID}-${EXPANSION_ID_MYSTERIES}" PKG_MAIN_DESCRIPTION_DELUXE="$EXPANSION_NAME_DELUXE" PKG_MAIN_DESCRIPTION_STELLARIS="$EXPANSION_NAME_STELLARIS" PKG_MAIN_DESCRIPTION_MYSTERIES="$EXPANSION_NAME_MYSTERIES" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-surviving-mars.sh0000755000000000000000000000621514471751340015160 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 contact@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-symmetry.sh0000755000000000000000000000542714471751340014061 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 contact@dotslashplay.it ### script_version=20240811.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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=' *.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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # An inner archive uses the cabinet archive format SCRIPT_DEPS="${SCRIPT_DEPS:-} 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" # 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_path 'ARCHIVE_INNER_CAB')" archive_extraction 'ARCHIVE_INNER_CAB' rm "$(archive_path 'ARCHIVE_INNER_CAB')" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Prevent inclusion of unwanted files. rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ## 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-symphonia.sh0000755000000000000000000000342714471751340014175 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Symphonia # send your bug reports to contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='symphonia' GAME_NAME='Symphonia' ## The game currently available for sale from gog.com seems to be a different build of the same game ARCHIVE_BASE_0_NAME='setup_symphonia_v1.0_(64bit)_(48230).exe' ARCHIVE_BASE_0_MD5='fc24a67551022a8e7e8984814575af15' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog48230' UNITY3D_NAME='symphonia' CONTENT_PATH_DEFAULT='.' 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-symphony.sh0000755000000000000000000000561414471751340014054 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Symphony # send your bug reports to contact@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='symphony' GAME_NAME='Symphony' ## This installer used to be available for free from Humble Bundle, ## during some time-limited event. ARCHIVE_BASE_0_NAME='Symphony-Linux-2014-07-15.sh' ARCHIVE_BASE_0_MD5='9218c0b803baf90c34bed2ac1501efa6' ARCHIVE_BASE_0_SIZE='405705' ARCHIVE_BASE_0_VERSION='2014.07.15-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libfmodex-4.44.20.so' CONTENT_LIBS_BIN64_RELATIVE_PATH='x86_64/lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='x86/lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH='x86_64' CONTENT_GAME_BIN64_FILES=' Symphony.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH='x86' CONTENT_GAME_BIN32_FILES=' Symphony.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' Symphony.png Symphony soundtrack *.mdf *.mtc' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN64='Symphony.bin.x86_64' APP_MAIN_EXE_BIN32='Symphony.bin.x86' APP_MAIN_ICON='noarch/Symphony.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 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" 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-system-shock-2.sh0000755000000000000000000000707214471751340014756 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # System Shock 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='system-shock-2' GAME_NAME='System Shock 2' ARCHIVE_BASE_2_NAME='setup_system_shocktm_2_2.48_(31077).exe' ARCHIVE_BASE_2_MD5='b8bbec00aef894db6641e46a0446cbb2' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='660000' ARCHIVE_BASE_2_VERSION='2.48-gog31077' ARCHIVE_BASE_2_URL='https://www.gog.com/game/system_shock_2' ARCHIVE_BASE_1_NAME='setup_system_shock_2_2.47_nd_(22087).exe' ARCHIVE_BASE_1_MD5='cc2ff390b566364447dc5bd05757fe57' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='670000' ARCHIVE_BASE_1_VERSION='2.47-gog22087' ARCHIVE_BASE_0_NAME='setup_system_shock_2_2.46_update_3_(19935).exe' ARCHIVE_BASE_0_MD5='cdafcdea01556eccab899f94503843df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='2.46.3-gog19935' ARCHIVE_BASE_OLDPATH_2_NAME='setup_system_shock_2_2.46_update_2_(18733).exe' ARCHIVE_BASE_OLDPATH_2_MD5='39fab64451ace95966988bb90c7bb17e' ARCHIVE_BASE_OLDPATH_2_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_2_SIZE='680000' ARCHIVE_BASE_OLDPATH_2_VERSION='2.46.2-gog18733' ARCHIVE_BASE_OLDPATH_1_NAME='setup_system_shock_2_2.46_update_(18248).exe' ARCHIVE_BASE_OLDPATH_1_MD5='b76803e4a632b58527eada8993999143' ARCHIVE_BASE_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_1_SIZE='690000' ARCHIVE_BASE_OLDPATH_1_VERSION='2.46.1-gog18248' ARCHIVE_BASE_OLDPATH_0_NAME='setup_system_shock_2_2.46_nd_(11004).exe' ARCHIVE_BASE_OLDPATH_0_MD5='98c3d01d53bb2b0dc25d7ed7093a67d3' ARCHIVE_BASE_OLDPATH_0_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_0_SIZE='680000' ARCHIVE_BASE_OLDPATH_0_VERSION='2.46-gog11004' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDPATH='app' CONTENT_GAME_BIN_FILES=' *.ax *.bnd *.cfg *.crt *.dll *.exe *.osm */*.cfg */*.dll */*.exe' CONTENT_GAME_DATA_FILES=' *.bin *.dif *.dml ilist.* patch* binds data sq_scripts' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_BIN_PATH_OLDPATH="${CONTENT_PATH_DEFAULT_OLDPATH}/__support/app" CONTENT_GAME0_BIN_FILES=' *.cfg *.ini' CONTENT_DOC_DATA_FILES=' *.pdf *.txt *.wri doc editor/*.txt' USER_PERSISTENT_DIRECTORIES=' current save_0 save_1 save_2 save_3 save_4 save_5 save_6 save_7 save_8 save_9 save_10 save_11 save_12 save_13 save_14' USER_PERSISTENT_FILES=' *.log *.bnd *.cfg *.ini' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='ss2.exe' APP_MAIN_EXE_0='shock2.exe' APP_MAIN_EXE_OLDPATH='shock2.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" # 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-tag-the-power-of-paint.sh0000755000000000000000000000421214471751340016355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tag: The Power of Paint # send your bug reports to contact@dotslashplay.it ### script_version=20231110.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='tag-the-power-of-paint' GAME_NAME='Tag: The Power of Paint' ARCHIVE_BASE_0_NAME='Tag_setup.exe' ARCHIVE_BASE_0_MD5='e46933ffbdc3fdf0816b3ebdd6c326d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='80000' ARCHIVE_BASE_0_VERSION='1.0-digipen' ARCHIVE_BASE_0_URL='https://arcade.digipen.edu/games/tag-the-power-of-paint' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll tag.exe' CONTENT_GAME_DATA_FILES=' assets game data' USER_PERSISTENT_FILES=' game data/*.ini game data/*.xml' ## Native d3dx9_35.dll is required to prevent a crash on launch with WINE 8.0: ## Unhandled exception: unimplemented function d3dx9_35.dll.D3DXComputeTangent called in 32-bit code (0x7b012866). WINE_WINETRICKS_VERBS='d3dx9_35' APP_MAIN_EXE='tag.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" # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tales-of-the-neon-sea.sh0000755000000000000000000000362314471751340016157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tales of the Neon Sea # send your bug reports to contact@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tales-of-the-neon-sea' GAME_NAME='Tales of the Neon Sea' ARCHIVE_BASE_0_NAME='setup_tales_of_the_neon_sea_1.0.85_(45944).exe' ARCHIVE_BASE_0_MD5='4b6f06e51f664378db816ba2b1cf01cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.85-gog45944' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tales_of_the_neon_sea' UNITY3D_NAME='talesoftheneonsea' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/palmpioneer/TalesoftheNeonSea' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\palmpioneer\TalesoftheNeonSea' 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-talk-to-me.sh0000755000000000000000000000331614471751340014135 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Talk to Me # send your bug reports to contact@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='talk-to-me' GAME_NAME='Talk to Me' ARCHIVE_BASE_0_NAME='TalkToMe-1.02-pc.zip' ARCHIVE_BASE_0_MD5='9f7ae1c12a4c7bcb6a40aa4157205e4b' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.02-itch1' ARCHIVE_BASE_0_URL='https://boop-studios.itch.io/talk-to-me' CONTENT_PATH_DEFAULT='TalkToMe-1.02-pc/game' CONTENT_GAME_MAIN_FILES=' cache gui archive.rpa script_version.txt' APP_MAIN_TYPE='renpy' APP_MAIN_ICON='../TalkToMe.exe' ## Ensure easy upgrades from packages generated with pre-20240428.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} talk-to-me-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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tandem-a-tale-of-shadows.sh0000755000000000000000000000355614471751340016652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tandem: A Tale of Shadows # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tandem-a-tale-of-shadows' GAME_NAME='Tandem: A Tale of Shadows' ARCHIVE_BASE_0_NAME='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868).exe' ARCHIVE_BASE_0_MD5='ec0afb495e85d52304278eb216064dcf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868)-1.bin' ARCHIVE_BASE_0_PART1_MD5='88942a26a5e530f17582eed63cf12a06' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50868' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tandem_a_tale_of_shadows' UNREALENGINE4_NAME='shadows' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='shadows.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-tangledeep.sh0000755000000000000000000000665114471751340014300 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tangledeep # send your bug reports to contact@dotslashplay.it ### script_version=20241218.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tangledeep' GAME_NAME='Tangledeep' ARCHIVE_BASE_0_NAME='Tangledeep_153a_LinuxUniversal.zip' ARCHIVE_BASE_0_MD5='b278678eeb55e55a73df389213afdeeb' ARCHIVE_BASE_0_SIZE='1194135' ARCHIVE_BASE_0_VERSION='1.53a-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/tangledeep' ARCHIVE_BASE_MULTIARCH_1_NAME='Tangledeep_124k_LinuxUniversal.zip' ARCHIVE_BASE_MULTIARCH_1_MD5='b708a12e20816dba8e863290dc5580d0' ARCHIVE_BASE_MULTIARCH_1_SIZE='730000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.24k-humble190410' ARCHIVE_BASE_MULTIARCH_0_NAME='tangledeep_linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='ce38aaab0bf4838697fd1f76e30722f1' ARCHIVE_BASE_MULTIARCH_0_SIZE='690000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.23e-humble1' UNITY3D_NAME='Tangledeep' UNITY3D_PLUGINS_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linuxuniversal' CONTENT_PATH_DEFAULT_MULTIARCH_0='tangledeep_123e_linux' 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_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 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' 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_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" 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 case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) # These archives already have an explicit list of plugins to include. ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # 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_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-teenagent.sh0000755000000000000000000000304214471751340014131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Teen Agent # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='teenagent' GAME_NAME='Teen Agent' ARCHIVE_BASE_0_NAME='setup_teenagent_1.0_(15595).exe' ARCHIVE_BASE_0_MD5='95126a8eba61b60e12535ebaa020c01b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0-gog15595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teenagent' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_MAIN_FILES=' *.res' APP_MAIN_SCUMMID='teenagent:teenagent' APP_MAIN_ICON='goggame-1207658753.ico' # 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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tengami.sh0000755000000000000000000000413514471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tengami # send your bug reports to contact@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tengami' GAME_NAME='Tengami' ## This game archive is no longer distributed, ## since Playism store closed down in favour of Steam. ARCHIVE_BASE_0_NAME='Tengami Win0113.zip' ARCHIVE_BASE_0_MD5='956f8bff6b8bdef8702e994dea23b8dc' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0113-playism' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' glew32.DLL SDL2.dll Tengami.exe' CONTENT_GAME_DATA_FILES=' Binary' USER_PERSISTENT_DIRECTORIES=' Save' APP_MAIN_EXE='Tengami.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" # Use persistent storage for user 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 ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Tengami Win/Tengami_Game_Win20150113.exe" ## Do not convert file paths to lowercase. ARCHIVE_INNER_EXTRACTOR='innoextract' ARCHIVE_INNER_EXTRACTOR_OPTIONS=' ' archive_extraction 'ARCHIVE_INNER' rm --force "$(archive_path 'ARCHIVE_INNER')" # 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-terraria.sh0000755000000000000000000001154314471751340013775 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Terraria # send your bug reports to contact@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='terraria' GAME_NAME='Terraria' ARCHIVE_BASE_4_NAME='terraria_v1_4_3_6_v2_54359.sh' ARCHIVE_BASE_4_MD5='da991dc72abb5763f148dacb543d65ca' ARCHIVE_BASE_4_SIZE='740000' ARCHIVE_BASE_4_VERSION='1.4.3.6.v2-gog54359' ARCHIVE_BASE_4_URL='https://www.gog.com/game/terraria' ARCHIVE_BASE_3_NAME='terraria_v1_4_3_2_51716.sh' ARCHIVE_BASE_3_MD5='fcc729577dd6a4b9ed2429c624cc6562' ARCHIVE_BASE_3_SIZE='740000' ARCHIVE_BASE_3_VERSION='1.4.3.2-gog51716' ARCHIVE_BASE_2_NAME='terraria_english_v1_4_1_2_42620.sh' ARCHIVE_BASE_2_MD5='c84d418147004790d97f47c36a1987ba' ARCHIVE_BASE_2_SIZE='730000' ARCHIVE_BASE_2_VERSION='1.4.1.2-gog42620' ARCHIVE_BASE_1_NAME='terraria_v1_4_1_1_41975.sh' ARCHIVE_BASE_1_MD5='e0158c754f9a7259d28f1cd3c1e1c747' ARCHIVE_BASE_1_SIZE='720000' ARCHIVE_BASE_1_VERSION='1.4.1.1-gog41975' ARCHIVE_BASE_0_NAME='terraria_v1_4_1_0_41944.sh' ARCHIVE_BASE_0_MD5='6d8fd3976503695205e80ba10e8249de' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.4.1.0-gog41944' ARCHIVE_BASE_MULTIARCH_4_NAME='terraria_v1_4_0_5_38805.sh' ARCHIVE_BASE_MULTIARCH_4_MD5='88940054c5d5a5f556f0bd955559426a' ARCHIVE_BASE_MULTIARCH_4_SIZE='760000' ARCHIVE_BASE_MULTIARCH_4_VERSION='1.4.0.5-gog38805' ARCHIVE_BASE_MULTIARCH_3_NAME='terraria_1_4_0_4_38513.sh' ARCHIVE_BASE_MULTIARCH_3_MD5='5704d188ab8374f0a36e86bad8adb5a1' ARCHIVE_BASE_MULTIARCH_3_SIZE='760000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.4.0.4-gog38513' ARCHIVE_BASE_MULTIARCH_2_NAME='terraria_v1_4_0_2_38384.sh' ARCHIVE_BASE_MULTIARCH_2_MD5='85d3ddcbafdef8412e4f96f3adbc2ed9' ARCHIVE_BASE_MULTIARCH_2_SIZE='760000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.4.0.2-gog38384' ARCHIVE_BASE_MULTIARCH_1_NAME='terraria_en_1_3_5_3_14602.sh' ARCHIVE_BASE_MULTIARCH_1_MD5='c99fdc0ae15dbff1e8147b550db4e31a' ARCHIVE_BASE_MULTIARCH_1_SIZE='490000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.5.3-gog14602' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_terraria_2.17.0.21.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='90ec196ec38a7f7a5002f5a8109493cc' ARCHIVE_BASE_MULTIARCH_0_SIZE='490000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.3.5.3-gog2.17.0.21' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libFNA3D.so.0 libmojoshader.so' CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content Terraria.png monoconfig monomachineconfig open-folder Terraria.exe TerrariaServer.exe FNA.dll FNA.dll.config SteelSeriesEngineWrapper.dll' CONTENT_DOC_MAIN_FILES=' changelog.txt' APP_MAIN_EXE='Terraria.exe' APP_MAIN_ICON='Terraria.png' APP_SERVER_ID="$GAME_ID-server" APP_SERVER_NAME="$GAME_NAME Server" APP_SERVER_EXE='TerrariaServer.exe' APP_SERVER_ICON='Terraria.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libGL.so.1 libopenal.so.1 libSDL2-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.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Windows.Forms.dll System.Xml.dll System.Xml.Linq.dll WindowsBase.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # 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 content_inclusion_default # Write launchers launchers_generation ## Always run the server in a terminal server_desktop_file=$(launcher_desktop_filepath 'PKG_MAIN' 'APP_SERVER') cat >> "$server_desktop_file" << EOF Terminal=true EOF # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teslagrad.sh0000755000000000000000000000462414471751340014134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Teslagrad # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='teslagrad' GAME_NAME='Teslagrad' ARCHIVE_BASE_0_NAME='gog_teslagrad_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='e9683e188615ddd341f8a95a2e8102ed' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='1555377' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teslagrad' UNITY3D_NAME='Teslagrad' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game/Teslagrad_linux32_fullversion_1_4' CONTENT_GAME_BIN64_RELATIVE_PATH='../Teslagrad_linux64_fullversion_1_4' 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 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 # 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-tetrobot-and-co.sh0000755000000000000000000000445414471751340015170 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 VA # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tetrobot and Co. # send your bug reports to contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tetrobot-and-co' GAME_NAME='Tetrobot and Co.' ARCHIVE_BASE_1_NAME='gog_tetrobot_and_co_2.1.0.6.sh' ARCHIVE_BASE_1_MD5='2ad2969e64e19d5753f8822e407c148c' ARCHIVE_BASE_1_SIZE='523264' ARCHIVE_BASE_1_VERSION='1.2.1-gog2.1.0.6' ARCHIVE_BASE_1_URL='https://www.gog.com/game/tetrobot_and_co' ARCHIVE_BASE_0_NAME='gog_tetrobot_and_co_2.1.0.5.sh' ARCHIVE_BASE_0_MD5='7d75f9813e1ec154158875c8e69e9dc8' ARCHIVE_BASE_0_SIZE='530000' ARCHIVE_BASE_0_VERSION='1.2.1-gog2.1.0.5' ## This game uses an unusual files structure for an Unity3D game, ## so most properties need to be explicitly set. UNITY3D_NAME='Tetrobot and Co' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Data/Mono Tetrobot and Co.x86' CONTENT_GAME_DATA_FILES=' Data' APP_MAIN_EXE='Tetrobot and Co.x86' APP_MAIN_ICON='Data/Resources/UnityPlayer.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" 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' # 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-the-7th-guest.sh0000755000000000000000000000346614471751340014576 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The 7th Guest # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-7th-guest' GAME_NAME='The 7th Guest' ARCHIVE_BASE_0_NAME='the_7th_guest_en_patch_3_21683.sh' ARCHIVE_BASE_0_MD5='eb2cd92e06e0594297e1d38e3552df6d' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.3-gog21683' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_7th_guest_25th_anniversary_edition' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' sphinx.fnt fat.* *.gjd *.grv *.rl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='groovie:t7g' APP_MAIN_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-adventures-of-shuggy.sh0000755000000000000000000000625314471751340017032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Adventures of Shuggy # send your bug reports to contact@dotslashplay.it ### script_version=20240603.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-adventures-of-shuggy' GAME_NAME='The Adventures of Shuggy' ARCHIVE_BASE_0_NAME='gog_the_adventures_of_shuggy_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='7d031b4cbbbf88beb5bdaa077892215d' ARCHIVE_BASE_0_SIZE='109602' ARCHIVE_BASE_0_VERSION='1.10.10222015-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_adventures_of_shuggy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libmojoshader.so libtheoraplay.so' ## The game audio does not work if the shipped build of OpenAL is not used. CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libopenal.so.1" CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' deadunderground fx gateways gfx growingpains maps recordings sfx text video Shuggy.exe Shuggy.bmp GameFont.xnb FNA.dll FNA.dll.config Lidgren.Network.dll MonoGame.Framework.Net.dll SpriteSheetRuntime.dll' CONTENT_DOC_MAIN_FILES=' info.txt Linux.README' APP_MAIN_EXE='Shuggy.exe' APP_MAIN_ICON='Shuggy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-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' ## Ensure easy upgrades from packages generated with pre-20240603.2 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-adventures-of-shuggy-data" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ID="$PKG_LIBS_ID" 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 libtheoradec.so.1 libvorbis.so.0' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="${PKG_MAIN_DEPS:-} $PKG_LIBS_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_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-aquatic-adventure-of-the-last-human.sh0000755000000000000000000000536014471751340021613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Aquatic Adventure of the Last Human # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-aquatic-adventure-of-the-last-human' GAME_NAME='The Aquatic Adventure of the Last Human' ARCHIVE_BASE_0='The Aquatic Adventure of the Last Human.zip' ARCHIVE_BASE_0_MD5='4699f7e0abfde9ded6addc432226b36f' ARCHIVE_BASE_0_EXTRACTOR='unar' # unzip fails on this archive ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0.9.1-itch1' ARCHIVE_BASE_0_URL='https://ycjy.itch.io/aquaticadventure' CONTENT_PATH_DEFAULT='linux' CONTENT_GAME_BIN_FILES=' TheAquaticAdventureOfTheLastHuman game.ini' CONTENT_GAME_DATA_FILES=' assets game.unx' CONTENT_DOC_DATA_FILES=' sound?credits.txt' APP_MAIN_EXE='TheAquaticAdventureOfTheLastHuman' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' 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 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true' # 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 rm "${PLAYIT_WORKDIR}/gamedata/mac.rar" rm "${PLAYIT_WORKDIR}/gamedata/windows.rar" ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/linux.rar" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-bards-tale-4.sh0000755000000000000000000001413714471751340015123 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bard's Tale 4 # send your bug reports to contact@dotslashplay.it ### script_version=20231110.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-bards-tale-4' GAME_NAME='The Bardʼs Tale Ⅳ' ARCHIVE_BASE_0_NAME='the_bard_s_tale_iv_director_s_cut_update_3_34066.sh' ARCHIVE_BASE_0_MD5='695a04c36fe4a5ff2a53b93062151047' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='4.20.1-gog34066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_bards_tale_iv_directors_cut_standard_edition' UNREALENGINE4_NAME='BardsTale4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_MOVIES_1_FILES=' BardsTale4/Content/Movies/*.mp3 BardsTale4/Content/Movies/*.mp4 BardsTale4/Content/Movies/*.wav BardsTale4/Content/Movies/Epilogue_Credits BardsTale4/Content/Movies/PoMMovies' CONTENT_GAME_DATA_MOVIES_2_FILES=' BardsTale4/Content/Movies/Anamatics BardsTale4/Content/Movies/BardIV_FireLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_InxileLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_LegalScreen_Img_Sequence BardsTale4/Content/Movies/Opening_Img_Sequence BardsTale4/Content/Movies/SpecialFeatures' CONTENT_GAME_DATA_PAKS_1_FILES=' BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk1-LinuxNoEditor.pak' CONTENT_GAME_DATA_PAKS_2_FILES=' BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk50-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk60-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk70-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk80-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk90-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk100-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk110-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk120-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk130-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk140-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk150-LinuxNoEditor.pak' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" ## 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. APP_MAIN_PRERUN="${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 ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # 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_MOVIES_1 PKG_DATA_MOVIES_2 PKG_DATA_PAKS_1 PKG_DATA_PAKS_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_1_ID="${PKG_DATA_MOVIES_ID}-1" PKG_DATA_MOVIES_2_ID="${PKG_DATA_MOVIES_ID}-2" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_MOVIES_1_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 1" PKG_DATA_MOVIES_2_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MOVIES_1_ID $PKG_DATA_MOVIES_2_ID" PKG_DATA_PAKS_ID="${PKG_DATA_ID}-paks" PKG_DATA_PAKS_1_ID="${PKG_DATA_PAKS_ID}-1" PKG_DATA_PAKS_2_ID="${PKG_DATA_PAKS_ID}-2" PKG_DATA_PAKS_DESCRIPTION="$PKG_DATA_DESCRIPTION - paks" PKG_DATA_PAKS_1_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 1" PKG_DATA_PAKS_2_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_PAKS_1_ID $PKG_DATA_PAKS_2_ID" 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' # 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" # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_0_NAME='the-bards-tale-4_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-bards-tale-4' ARCHIVE_OPTIONAL_ICONS_0_MD5='aede8ef2c559ecf8e69e1f5ffef7432d' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Set the package scripts rebuilding the full files from their chunks for huge_file in \ "$(unrealengine4_name)/Content/Paks/pakchunk0-LinuxNoEditor.pak" \ "$(unrealengine4_name)/Content/Paks/pakchunk2-LinuxNoEditor.pak" do PKG_DATA_POSTINST_RUN="$(package_postinst_actions 'PKG_DATA') $(huge_file_concatenate "$huge_file")" PKG_DATA_PRERM_RUN="$(package_prerm_actions 'PKG_DATA') $(huge_file_delete "$huge_file")" done # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 64x64 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else APP_MAIN_ICON='../support/icon.png' set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac-expansions.sh0000755000000000000000000000726714471751340020231 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac expansions: # - Afterbirth # - Afterbirth + # - Repentance # send your bug reports to contact@dotslashplay.it ### script_version=20230723.1 GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac' EXPANSION_ID_AFTERBIRTH='afterbirth' EXPANSION_NAME_AFTERBIRTH='Afterbirth' EXPANSION_ID_AFTERBIRTHPLUS='afterbirth-plus' EXPANSION_NAME_AFTERBIRTHPLUS='Afterbirth +' EXPANSION_ID_REPENTANCE='repentance' EXPANSION_NAME_REPENTANCE='Repentance' # Archives ## Afterbirth ARCHIVE_BASE_AFTERBIRTH_1='setup_the_binding_of_isaac_afterbirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTH_1_MD5='9cdb71b69a9b25e69df3f9dcdab2de9f' ARCHIVE_BASE_AFTERBIRTH_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_1_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTH_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth' ARCHIVE_BASE_AFTERBIRTH_0='setup_the_binding_of_isaac_afterbirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTH_0_MD5='f72a7c3d8f23627b6e4eaf1b0e71c304' ARCHIVE_BASE_AFTERBIRTH_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_0_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_0_VERSION='1.0.0.0-gog52089' ## Afterbirth + ARCHIVE_BASE_AFTERBIRTHPLUS_1='setup_the_binding_of_isaac_afterbirth__1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_1_MD5='23558f5eb97895659b5e594595aad247' ARCHIVE_BASE_AFTERBIRTHPLUS_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_1_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTHPLUS_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth_plus' ARCHIVE_BASE_AFTERBIRTHPLUS_0='setup_the_binding_of_isaac_afterbirth__1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_0_MD5='ca0d4b261b16ffca26d7f2f723bd8031' ARCHIVE_BASE_AFTERBIRTHPLUS_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_0_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_0_VERSION='1.0.0.0-gog52089' ## Repentance ARCHIVE_BASE_REPENTANCE_1='setup_the_binding_of_isaac_repentance_1.0.1.0_(54718).exe' ARCHIVE_BASE_REPENTANCE_1_MD5='b8eeaeb46b3b2ddb5aa6e04729d8085e' ARCHIVE_BASE_REPENTANCE_1_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_1_SIZE='490000' ARCHIVE_BASE_REPENTANCE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_REPENTANCE_1_URL='https://www.gog.com/game/the_binding_of_isaac_repentance' ARCHIVE_BASE_REPENTANCE_0='setup_the_binding_of_isaac_repentance_1.0.0.0_(52089).exe' ARCHIVE_BASE_REPENTANCE_0_MD5='b569c8fce392e5ec1083e5418d9a36d0' ARCHIVE_BASE_REPENTANCE_0_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_0_SIZE='440000' ARCHIVE_BASE_REPENTANCE_0_VERSION='1.0.0.0-gog52089' CONTENT_GAME_MAIN_PATH='.' CONTENT_GAME_MAIN_FILES=' resources' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac.sh0000755000000000000000000000543514471751340016037 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac # send your bug reports to contact@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac: Rebirth' ARCHIVE_BASE_1_NAME='setup_the_binding_of_isaac_rebirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_1_MD5='2e30949d6bc26c25692403daec6de446' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='380000' ARCHIVE_BASE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_binding_of_isaac_rebirth' ARCHIVE_BASE_0_NAME='setup_the_binding_of_isaac_rebirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_0_MD5='b65dc20d9f6cef55fdecd39a1a59380c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog52089' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Binding of Isaac Rebirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth+ (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Repentance (Galaxy)' ## Install required OpenAL32.dll library WINE_WINETRICKS_VERBS='openal' APP_MAIN_EXE='isaac-ng_launcher.exe' APP_MAIN_ICON='isaac-ng_rebirth.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)" # Prevent the inclusion of unwanted files ## FIXME: This could be avoided by using a more targeted list of .dll files to include rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # 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-coma-1.sh0000755000000000000000000000405214471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Coma # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-coma-1' GAME_NAME='The Coma' ARCHIVE_BASE_0_NAME='the_coma_recut_2_1_5_gog_40905.sh' ARCHIVE_BASE_0_MD5='05d35196c4a5ca8dce3e223d364fa139' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.1.5-gog40905' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_coma_recut' UNITY3D_NAME='TheComaRecut' CONTENT_PATH_DEFAULT='data/noarch/game' ## FIXME: The Unity3D plugins to include should be listed with UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Name/Plugins" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: The dependencies list should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libgtk-x11-2.0.so.0 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.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 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-council.sh0000755000000000000000000000605214471751340014375 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Council # send your bug reports to contact@dotslashplay.it ### script_version=20230730.7 GAME_ID='the-council' GAME_NAME='The Council' ARCHIVE_BASE_0='setup_the_council_0.9.5.6359_(33875).exe' ARCHIVE_BASE_0_MD5='7e49e444eaf67a95698dc1929979754a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_council_0.9.5.6359_(33875)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8567d5d7bb55af6b5a13b57144d32342' ARCHIVE_BASE_0_PART2='setup_the_council_0.9.5.6359_(33875)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2946c8da1f85f498da17661b159bfe4f' ARCHIVE_BASE_0_PART3='setup_the_council_0.9.5.6359_(33875)-3.bin' ARCHIVE_BASE_0_PART3_MD5='6d070987d39d722d3ceb1c7475f88c62' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='0.9.5.6359-gog33875' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_council' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' library crashreport.exe the council.exe *.dll' CONTENT_GAME_DATA_EPISODES_FILES=' data/packages/episode_*' CONTENT_GAME_DATA_SOUND_FILES=' data/sound' CONTENT_GAME_DATA_FILES=' defaultparameter data packagelist' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/The Council' APP_MAIN_EXE='the council.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_EPISODES PKG_DATA_SOUND PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_EPISODES_ID="${PKG_DATA_ID}-episodes" PKG_DATA_EPISODES_DESCRIPTION="$PKG_DATA_DESCRIPTION - episodes" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_EPISODES_ID" PKG_DATA_SOUND_ID="${PKG_DATA_ID}-sound" PKG_DATA_SOUND_DESCRIPTION="$PKG_DATA_DESCRIPTION - sound" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUND_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-deer-god.sh0000755000000000000000000000434414471751340014431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Deer God # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-deer-god' GAME_NAME='The Deer God' ARCHIVE_BASE_1_NAME='DeerGodBeta02.zip' ARCHIVE_BASE_1_MD5='84dda0d5e6708ddb5e7ceee307671f2c' ARCHIVE_BASE_1_SIZE='150000' ARCHIVE_BASE_1_VERSION='1.0~beta2-itch' ARCHIVE_BASE_1_URL='https://marumari.itch.io/the-deer-god' ARCHIVE_BASE_0_NAME='thedeergod_beta1.zip' ARCHIVE_BASE_0_MD5='e722cdbd4cc93c5d655735c6a1285cc0' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0~beta1-itch' ARCHIVE_BASE_0_URL='https://marumari.itch.io/the-deer-god' UNITY3D_NAME='DeerGodBeta' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Cinopt Studios LLC/The Deer God' 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name unity3d_name=$(unity3d_name) old_name='thedeergod_beta1' if [ -e "${old_name}.exe" ]; then mv "${old_name}.exe" "${unity3d_name}.exe" mv "${old_name}_Data" "${unity3d_name}_Data" fi ) # 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-the-difference-between-us.sh0000755000000000000000000001175414471751340017114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Difference Between Us # send your bug reports to contact@dotslashplay.it ### script_version=20240428.3 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-difference-between-us' GAME_NAME='The Difference Between Us' ARCHIVE_BASE_0_NAME='The-Difference-Between-Us-linux.tar.bz2' ARCHIVE_BASE_0_MD5='7888797ccda89452a2543ba35c46083c' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://robindaydream.itch.io/the-difference-between-us' CONTENT_PATH_DEFAULT='The-Difference-Between-Us-linux' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavformat.so.57 libavresample.so.3 libavutil.so.55 libGLEW.so.1.7 libpython2.7.so.1.0 libswresample.so.2 libswscale.so.4' ## libpng12.so.0 is not only a dependency of the shipped SDL2 build, ## it is actually required to prevent a crash on launch. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libpng12.so.0" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-x86_64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib/linux-i686" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' lib/linux-x86_64/eggs lib/linux-x86_64/lib lib/linux-x86_64/python lib/linux-x86_64/pythonw lib/linux-x86_64/zsync lib/linux-x86_64/zsyncmake lib/linux-x86_64/The-Difference-Between-Us' CONTENT_GAME_BIN32_FILES=' lib/linux-i686/eggs lib/linux-i686/lib lib/linux-i686/python lib/linux-i686/pythonw lib/linux-i686/zsync lib/linux-i686/zsyncmake lib/linux-i686/The-Difference-Between-Us' CONTENT_GAME_DATA_FILES=' game renpy lib/pythonlib2.7 The-Difference-Between-Us.py' CONTENT_DOC_DATA_FILES=' README.html' ## Using system-provided renpy (8.2.1) triggers an early crash, with the following trace: ## ## Full traceback: ## File "script.rpyc", line 197, in script ## File "/usr/share/games/renpy/renpy/ast.py", line 615, in execute ## renpy.exports.say(who, what, *args, **kwargs) ## File "/usr/share/games/renpy/renpy/exports.py", line 1493, in say ## who(what, *args, **kwargs) ## File "/usr/share/games/renpy/renpy/character.py", line 1394, in __call__ ## self.do_display(who, what, cb_args=self.cb_args, dtt=dtt, **display_args) ## File "/usr/share/games/renpy/renpy/character.py", line 1045, in do_display ## display_say(who, ## File "/usr/share/games/renpy/renpy/character.py", line 686, in display_say ## what_text = renpy.display.screen.get_widget(what_text[0], what_text[1], what_text[2]) ## File "/usr/share/games/renpy/renpy/display/screen.py", line 1534, in get_displayable ## screen.update() ## File "/usr/share/games/renpy/renpy/display/screen.py", line 697, in update ## self.screen.function(**self.scope) ## File "game/screens.rpy", line 13, in execute ## File "game/screens.rpy", line 13, in execute ## File "game/screens.rpy", line 58, in execute ## File "game/screens.rpy", line 592, in execute ## File "game/screens.rpy", line 592, in execute ## File "/usr/share/games/renpy/renpy/sl2/slast.py", line 2650, in execute ## self.const_ast.keywords(context) ## AttributeError: 'NoneType' object has no attribute 'keywords' APP_MAIN_EXE_BIN64='lib/linux-x86_64/The-Difference-Between-Us' APP_MAIN_EXE_BIN32='lib/linux-i686/The-Difference-Between-Us' APP_MAIN_OPTIONS='-EO The-Difference-Between-Us.py' 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 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libutil.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXmu.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" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Use the default Ren'Py icon, instead of a generic icon. desktop_field_icon() { printf 'renpy' } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-dig.sh0000755000000000000000000000523114471751340013502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Sébastien “Elzen” Dufromentel # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Dig # send your bug reports to contact@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-dig' GAME_NAME='The Dig' ARCHIVE_BASE_EN_0_NAME='the_dig_en_gog_2_20100.sh' ARCHIVE_BASE_EN_0_MD5='0fd830de17757f78dc9865dd7c06c785' ARCHIVE_BASE_EN_0_SIZE='760000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog20100' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/the_dig' ARCHIVE_BASE_FR_0_NAME='the_dig_fr_gog_2_20100.sh' ARCHIVE_BASE_FR_0_MD5='b4c2b87f0305a82bb0fa805b01b014f1' ARCHIVE_BASE_FR_0_SIZE='760000' ARCHIVE_BASE_FR_0_VERSION='1.0-gog20100' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/the_dig' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_L10N_FILES=' language.bnd digvoice.bun video/sq1.san video/sq2.san video/sq3.san video/sq4.san video/sq8a.san video/sq8b.san video/sq8c.san video/sq9.san video/sq14sc14.san video/sq14sc22.san video/sq17.san video/sq18b.san video/sq18sc15.san video/digtxt.trs' CONTENT_GAME_MAIN_FILES=' video digmusic.bun dig.la0 dig.la1' CONTENT_DOC_L10N_PATH_EN='data/noarch/docs/english' CONTENT_DOC_L10N_PATH_FR='data/noarch/docs/french' CONTENT_DOC_L10N_FILES=' *.pdf' APP_MAIN_SCUMMID='scumm:dig' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_L10N PKG_MAIN' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_MAIN_DEPS="$PKG_L10N_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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-1-arena.sh0000755000000000000000000000553714471751340016744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 1: Arena # send your bug reports to contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-elder-scrolls-1-arena' GAME_NAME='The Elder Scrolls: Arena' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_arena_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='53a12a1cc3955776f06fba5906cdc6fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.07-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0_NAME='setup_tes_arena_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='ca5a894aa852f9dbb3ede787e51ec828' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.07-gog2.0.0.5' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.inf *.ini *.65 *.ad *.adv *.bak *.bnk *.bsa *.cel *.cif *.clr *.col *.cpy *.dat *.flc *.gld *.img *.lgt *.lst *.me *.mif *.mnu *.ntz *.opl *.rci *.txt *.voc *.xfm cityintr citytxt extra speech' CONTENT_GAME0_MAIN_PATH='__support' CONTENT_GAME0_MAIN_PATH_0='app/__support' CONTENT_GAME0_MAIN_FILES=' save' CONTENT_DOC_MAIN_FILES=' *.pdf readme.txt' GAME_IMAGE='.' GAME_IMAGE_TYPE='cdrom' USER_PERSISTENT_DIRECTORIES=' save arena_cd' APP_MAIN_EXE='acd.exe' APP_MAIN_OPTIONS='-Ssbpdig.adv -IOS220 -IRQS7 -DMAS1 -Mgenmidi.adv -IOM330 -IRQM2 -DMAM1' APP_MAIN_ICON='app/goggame-1435828982.ico' APP_MAIN_DOSBOX_PRERUN='config -set cpu cycles=fixed 20000 d:' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' # Easier upgrade from packages generated with pre-20190302.3 scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-1-arena-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 content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-2-daggerfall.sh0000755000000000000000000000465514471751340017747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 2: Daggerfall # send your bug reports to contact@dotslashplay.it ### script_version=20240604.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-2-daggerfall' GAME_NAME='The Elder Scrolls II: Daggerfall' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_ii_daggerfall_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='94acfb7acfe2242241d4355ada481d98' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='560000' ARCHIVE_BASE_1_VERSION='1.07.213-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0='setup_tes_daggerfall_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='68f1eb4f257d8da4c4eab2104770c49b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.07.213-gog2.0.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' arena2 data dagger.ico dagger.exe fall.exe fixsave.exe setup.exe fixsave.txt patched.txt test.* *.386 *.bnk *.cfg *.ini *.scr' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' pics save0 save1 save2 save3 save4 save5' USER_PERSISTENT_FILES=' *.cfg arena2/bio.dat arena2/copyfile.dat arena2/rumor.dat arena2/mapsave.sav arena2/*.DAT arena2/*.AMF' APP_MAIN_EXE='fall.exe' APP_MAIN_OPTIONS='z.cfg' APP_MAIN_ICON='dagger.ico' ## Easier upgrade from packages generated with pre-20190302.3 scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-2-daggerfall-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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-5-expansions.sh0000755000000000000000000000541314471751340020042 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5 expansions: # - Anniversary Upgrade # send your bug reports to contact@dotslashplay.it ### script_version=20240310.1 GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' EXPANSION_ID_UPGRADE='anniversary-upgrade' EXPANSION_NAME_UPGRADE='Anniversary Upgrade' # Archives ## Anniversary Upgrade ARCHIVE_BASE_UPGRADE_0='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_UPGRADE_0_MD5='6ca1eaf78efe871db75aa2e870bf6154' ARCHIVE_BASE_UPGRADE_0_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_0_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_UPGRADE_0_PART1_MD5='44910bb282008aebb5c92cd97af12413' ARCHIVE_BASE_UPGRADE_0_SIZE='4700000' ARCHIVE_BASE_UPGRADE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_UPGRADE_0_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' ARCHIVE_BASE_UPGRADE_1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_UPGRADE_1_MD5='411afce1d728f456ef0989dc866feca2' ARCHIVE_BASE_UPGRADE_1_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_1_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_UPGRADE_1_PART1_MD5='97d7706343def94098e725f876cb1a64' ARCHIVE_BASE_UPGRADE_1_SIZE='4700000' ARCHIVE_BASE_UPGRADE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_UPGRADE_1_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' data' PKG_MAIN_ID_UPGRADE="${GAME_ID}-${EXPANSION_ID_UPGRADE}" PKG_MAIN_DESCRIPTION_UPGRADE="$EXPANSION_NAME_UPGRADE" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-5.sh0000755000000000000000000001555014471751340015660 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5: Skyrim # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_1_MD5='5a73debc2115209be1abd257aa0be329' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c8d28d38dc2a58102b4553ba61026591' ARCHIVE_BASE_1_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-2.bin' ARCHIVE_BASE_1_PART2_MD5='b262b033d7e30b1d7289e36e0901193c' ARCHIVE_BASE_1_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-3.bin' ARCHIVE_BASE_1_PART3_MD5='e249eaf58788328b47b4ba452cee0339' ARCHIVE_BASE_1_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-4.bin' ARCHIVE_BASE_1_PART4_MD5='3f82c21b9db4bc45adf65389125dd643' ARCHIVE_BASE_1_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-5.bin' ARCHIVE_BASE_1_PART5_MD5='20a789f518bfc5f5654315c6770ebeea' ARCHIVE_BASE_1_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-6.bin' ARCHIVE_BASE_1_PART6_MD5='1fc7001e970abf73f0e2cecfbddd6b9c' ARCHIVE_BASE_1_PART7_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-7.bin' ARCHIVE_BASE_1_PART7_MD5='11c895a76cb12719e6252757b301089b' ARCHIVE_BASE_1_SIZE='29202245' ARCHIVE_BASE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' ARCHIVE_BASE_0_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_0_MD5='0b6d1c931788f66d4a3b02138733f05a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_0_PART1_MD5='163b8af958071f85e78613834375209c' ARCHIVE_BASE_0_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c3852b6ae2bcc46fa0e4f085095bd12f' ARCHIVE_BASE_0_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a44293c54ebf39efd8f32cc4cc154220' ARCHIVE_BASE_0_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0dc37a5bd97295b5f163435c75868d03' ARCHIVE_BASE_0_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-5.bin' ARCHIVE_BASE_0_PART5_MD5='162f6baf1d24594f67a1710edef30c42' ARCHIVE_BASE_0_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-6.bin' ARCHIVE_BASE_0_PART6_MD5='5274ded2391553e9595b170af66ae0c3' ARCHIVE_BASE_0_SIZE='29000000' ARCHIVE_BASE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' skyrimselauncher.exe skyrimse.exe bink2w64.dll galaxy64.dll high.ini low.ini medium.ini ultra.ini skyrimconsoledefault.ini' CONTENT_GAME_L10N_EN_FILES=' skyrim_default_en.ini data/skyrim - voices_en0.bsa' CONTENT_GAME_L10N_FR_FILES=' skyrim_default_fr.ini data/skyrim - voices_fr0.bsa' CONTENT_GAME_DATA_TEXTURES_FILES=' data/skyrim - textures?.bsa' CONTENT_GAME_DATA_FILES=' data/ccbgssse001-fish.bsa data/ccbgssse001-fish.esm data/ccbgssse025-advdsgs.bsa data/ccbgssse025-advdsgs.esm data/ccbgssse037-curios.bsa data/ccbgssse037-curios.esl data/ccqdrsse001-survivalmode.bsa data/ccqdrsse001-survivalmode.esl data/dawnguard.esm data/dragonborn.esm data/hearthfires.esm data/marketplacetextures.bsa data/_resourcepack.bsa data/_resourcepack.esl data/skyrim.esm data/skyrim - animations.bsa data/skyrim - interface.bsa data/skyrim - meshes0.bsa data/skyrim - meshes1.bsa data/skyrim - misc.bsa data/skyrim - shaders.bsa data/skyrim - sounds.bsa data/update.esm data/video skyrim.ccc' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Skyrim Special Edition GOG' APP_MAIN_EXE='skyrimse.exe' APP_MAIN_ICON='skyrimselauncher.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_TEXTURES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/x-wma, wmaversion=(int)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 ## Rename language-specific configuration file mv \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default.ini mv \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default.ini # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation 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_L10N_EN' 'PKG_DATA' 'PKG_DATA_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_DATA_TEXTURES' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-fall.sh0000755000000000000000000000414214471751340013655 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Fall # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-fall' GAME_NAME='The Fall' ARCHIVE_BASE_1_NAME='TheFall_Linux_2_5.zip' ARCHIVE_BASE_1_MD5='5493c159ce23d13d68b60f064ab37297' ARCHIVE_BASE_1_SIZE='345335' ARCHIVE_BASE_1_VERSION='2.5-humble171207' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-fall' ARCHIVE_BASE_0_NAME='TheFall_2_31_Linux.rar' ARCHIVE_BASE_0_MD5='ffac594dc2c9b9e446da5fa375aac6fa' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='2.31-humble161116' UNITY3D_NAME='TheFall' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' 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 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-the-flame-in-the-flood.sh0000755000000000000000000000340014471751340016302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Flame in the Flood # send your bug reports to contact@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-flame-in-the-flood' GAME_NAME='The Flame in the Flood' ARCHIVE_BASE_0_NAME='setup_the_flame_in_the_flood_1.3.003_(31352).exe' ARCHIVE_BASE_0_MD5='c58e4985cb0a93a27f6bcd542a313ff1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.3.003-gog31352' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_flame_in_the_flood' UNREALENGINE4_NAME='rivergame' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='rivergame.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-the-girl-and-the-robot.sh0000755000000000000000000000502014471751340016331 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Girl and the Robot # send your bug reports to contact@dotslashplay.it ### script_version=20221210.1 GAME_ID='the-girl-and-the-robot' GAME_NAME='The Girl and the Robot' UNITY3D_NAME='GirlAndRobot' ARCHIVE_BASE_0='thegirlandtherobot-linux-1.006.rar' ARCHIVE_BASE_0_MD5='032b2f06a6d272be6ace53e6cda16683' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.006-humble170727' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-girl-and-the-robot' CONTENT_PATH_DEFAULT='LINUX' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-great-perhaps.sh0000755000000000000000000000470614471751340015507 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Great Perhaps # send your bug reports to contact@dotslashplay.it ### script_version=20230805.2 GAME_ID='the-great-perhaps' GAME_NAME='The Great Perhaps' ARCHIVE_BASE_0='the_great_perhaps_1_32_14_31714.sh' ARCHIVE_BASE_0_MD5='4f675ed32851ec790cd010aaba6dd4b7' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.32.14-gog31714' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_great_perhaps' UNITY3D_NAME='TheGreatPerhaps' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" 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 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' # Force the use of the Vulkan renderer, # as most text strings fail to render using the default one (OpenGL?). APP_MAIN_OPTIONS="${APP_MAIN_OPTIONS:-} -force-vulkan" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-guild-2-renaissance.sh0000755000000000000000000000511514471751340016474 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 contact@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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='--lowercase --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 *.raw db gui *.url mods movie msx objects particles resource savegames scenes scripts sfx shader shots sim_commands.dat textures worlds' 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' APP_MAIN_EXE='guildii.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" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-guild-2.sh0000755000000000000000000000453014471751340014203 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 contact@dotslashplay.it ### script_version=20231109.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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' APP_MAIN_EXE='guildii.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" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Disable intro movie 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 PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-hive.sh0000755000000000000000000000633414471751340013677 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 contact@dotslashplay.it ### script_version=20231130.1 GAME_ID='the-hive' GAME_NAME='The Hive' ARCHIVE_BASE_0='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' CONTENT_PATH_DEFAULT='Hive_linux' ## The game crashes on launch if libCSteamworks.so is not available, ## libsteam_api.so is included too because libCSteamworks.so is linked against it. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-kings-bird.sh0000755000000000000000000000410014471751340014762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The King's Bird # send your bug reports to contact@dotslashplay.it ### script_version=20230805.1 GAME_ID='the-kings-bird' GAME_NAME='The Kingʼs Bird' ARCHIVE_BASE_0='TheKingsBirdDRMFREE_v5.zip' ARCHIVE_BASE_0_MD5='fccb138fa993f1e983fcc6c08d1b0b96' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='5-itch' ARCHIVE_BASE_0_URL='https://graffiti-games.itch.io/the-kings-bird' UNITY3D_NAME='TheKingsBird' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Serenity Forge/The King's Bird" APP_MAIN_EXE='TheKingsBird.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" # Load common functions target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-last-tinker.sh0000755000000000000000000000702514471751340015177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Last Tinker # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-last-tinker' GAME_NAME='The Last Tinker: City of Colors' ARCHIVE_BASE_LINUX_0_NAME='last_tinker_city_of_colors_the_en_23_02_2018_18902.sh' ARCHIVE_BASE_LINUX_0_MD5='d0dbfac723aee309869c2404d88b4eb4' ARCHIVE_BASE_LINUX_0_SIZE='2100000' ARCHIVE_BASE_LINUX_0_VERSION='2018.02.23-gog18902' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831).exe' ARCHIVE_BASE_WINDOWS_1_MD5='ec303722fba022e2b1d04f69091213d9' ARCHIVE_BASE_WINDOWS_1_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_1_PART1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831)-1.bin' ARCHIVE_BASE_WINDOWS_1_PART1_MD5='91e843b4d7be0d842bf3dc1f9930f11d' ARCHIVE_BASE_WINDOWS_1_SIZE='2000000' ARCHIVE_BASE_WINDOWS_1_VERSION='2018.02.23-gog18831' ARCHIVE_BASE_WINDOWS_1_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_0_NAME='setup_the_last_tinker_2.0.0.2.exe' ARCHIVE_BASE_WINDOWS_0_MD5='7afa966efb4beb5535e19f2d69b245ae' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2100000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='the last tinker' UNITY3D_PLUGINS=' libRenderingPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT_WINDOWS='app' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' ## TODO: Check if the Steam libraries can be dropped CONTENT_LIBS_BIN_FILES=' libsteam_api.so libSteamworksNative.so' 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=' 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' 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 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-longing.sh0000755000000000000000000000523614471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Longing # send your bug reports to contact@dotslashplay.it ### script_version=20231113.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-longing' GAME_NAME='The Longing' ARCHIVE_BASE_0_NAME='the_longing_1_6_1_57129.sh' ARCHIVE_BASE_0_MD5='cb579de1e72469df601fe8199ba2db4c' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.6.1-gog57129' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_longing' ARCHIVE_BASE_MULTIARCH_0_NAME='the_longing_1_0_7_38629.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='98729196edafd2a223a5425f7de70c02' ARCHIVE_BASE_MULTIARCH_0_SIZE='5500000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.0.7-gog38629' UNITY3D_NAME='The Longing' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' 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 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write ;; (*) set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-night-fisherman.sh0000755000000000000000000000414114471751340016021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Night Fisherman # send your bug reports to contact@dotslashplay.it ### script_version=20230221.1 GAME_ID='the-night-fisherman' GAME_NAME='The Night Fisherman' ARCHIVE_BASE_0='The Night Fisherman WIN.zip' ARCHIVE_BASE_0_MD5='b7df1ae2b6665229870c2f8610ccd2c9' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://farfewgiants.itch.io/night-fisherman' UNITY3D_NAME='The Night Fisherman' CONTENT_PATH_DEFAULT='The Night Fisherman WIN' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge UnityCrashHandler64.exe UnityPlayer.dll ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}_Data/Managed" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_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 target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-planet-crafter.sh0000755000000000000000000000454514471751340015655 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Planet Crafter # send your bug reports to contact@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-planet-crafter' GAME_NAME='The Planet Crafter' ARCHIVE_BASE_0_NAME='setup_the_planet_crafter_v1.005_(73160).exe' ARCHIVE_BASE_0_MD5='60ece555d812bed78d38f571dc2ddaf8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_planet_crafter_v1.005_(73160)-1.bin' ARCHIVE_BASE_0_PART1_MD5='d0435d2e30c97cf7f1d5fa24e4290e3a' ARCHIVE_BASE_0_PART2_NAME='setup_the_planet_crafter_v1.005_(73160)-2.bin' ARCHIVE_BASE_0_PART2_MD5='22f21c99887225b814a2d2e55eb007c4' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.005' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_planet_crafter' UNITY3D_NAME='planet crafter' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/MijuGames/Planet Crafter' ## TODO: Check is these fonts are required with current WINE WINE_WINETRICKS_VERBS='corefonts' PACKAGES_LIST=' PKG_BIN 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' # 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-red-strings-club.sh0000755000000000000000000000422114471751340016121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Red Strings Club # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-red-strings-club' GAME_NAME='The Red Strings Club' ARCHIVE_BASE_0='the_red_strings_club_20180122_ch_update_40932.sh' ARCHIVE_BASE_0_MD5='6a11270a590a0151223cce6aae70858c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='2018.01.22-gog40932' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_red_strings_club' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-search.sh0000755000000000000000000000342514471751340014207 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Search # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-search' GAME_NAME='The Search' ARCHIVE_BASE_0_NAME='the-search-windows.zip' ARCHIVE_BASE_0_MD5='98b8ba6ac43c4df82511c55df099a533' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://jasongodbey.itch.io/the-search' UNITY3D_NAME='TheSearch' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Jason Godbey/The Search' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/QualitySettings.ini" 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" # 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-the-settlers-3.sh0000755000000000000000000001611014471751340014742 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 contact@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' 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' ## "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' PACKAGES_LIST=' PKG_BIN 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' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_L10N $PKG_DATA_ID" # Set required registry keys registry_dump_init_file='registry-dumps/init.reg' # shellcheck disable=SC1003 registry_dump_init_content='Windows Registry Editor Version 5.00 [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"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # Set serial number registry_dump_serial_file='registry-dumps/serial.reg' registry_dump_serial_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\BlueByte\Siedler3\1.0\General] "SingleNumber"="%SingleNumber%"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_serial_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_serial_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" APP_MAIN_PRERUN="$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_dump_serial_file'" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Include required extra DLL library. mv '__support/add/winmmxp.dll' '_inmm.dll' ## Set required registry keys. mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_init_file" ## Set serial number. game_serial=$(grep 'SingleNumber' 'regs.cmd' | cut --delimiter='"' --fields=4) mkdir --parents "$(dirname "$registry_dump_serial_file")" printf '%s' "$registry_dump_serial_content" | \ sed "s/%SingleNumber%/${game_serial}/" | \ iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_serial_file" ) # 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) "$APP_EXE" "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-silver-case.sh0000755000000000000000000000462714471751340015164 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Silver Case # send your bug reports to contact@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-silver-case' GAME_NAME='The Silver Case' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_ID (demo)" ARCHIVE_BASE_DEMO_GOG_0_NAME='setup_the_silver_case_demo_2.0.0.1.exe' ARCHIVE_BASE_DEMO_GOG_0_MD5='3c133cb2031160370917f120055c63b4' ARCHIVE_BASE_DEMO_GOG_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_GOG_0_SIZE='960000' ARCHIVE_BASE_DEMO_GOG_0_VERSION='1.0-gog2.0.0.1' ## This installer is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_DEMO_PLAYISM_0_NAME='TheSilverCase_DEMO_Playism0930.zip' ARCHIVE_BASE_DEMO_PLAYISM_0_MD5='a1bbd59ead01c4e1dc50c38b3a65c5ea' ARCHIVE_BASE_DEMO_PLAYISM_0_SIZE='950000' ARCHIVE_BASE_DEMO_PLAYISM_0_VERSION='1.0-playism0930' UNITY3D_NAME_DEMO='thesilvercase_trial' CONTENT_PATH_DEFAULT_DEMO_GOG='app' CONTENT_PATH_DEFAULT_DEMO_PLAYISM='thesilvercase_demo_0930' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. case "$(current_archive)" in ('ARCHIVE_BASE_PLAYISM_'*) tolower . ;; 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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-smurfs-mission-vileaf.sh0000755000000000000000000000437514471751340017211 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Smurfs: Mission Vileaf # send your bug reports to contact@dotslashplay.it ### script_version=20240319.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-smurfs-mission-vileaf' GAME_NAME='The Smurfs: Mission Vileaf' ARCHIVE_BASE_0_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727).exe' ARCHIVE_BASE_0_MD5='086cdfa541244a81b9e00e3c55daad1b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727)-1.bin' ARCHIVE_BASE_0_PART1_MD5='1f36f6b263cb1e983d8f6608e252671d' ARCHIVE_BASE_0_SIZE='5283712' ARCHIVE_BASE_0_VERSION='1.0.19.3-gog68727' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_smurfs_mission_vileaf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll libscepad.dll thesmurfsmissionvileaf.exe' ## thesmurfsmissionvileaf.exe is linked against Galaxy64.dll CONTENT_GAME0_BIN_FILES=' galaxy64.dll' CONTENT_GAME_DATA_FILES=' smurfsresources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Smurfs' APP_MAIN_EXE='thesmurfsmissionvileaf.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="${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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-sojourn.sh0000755000000000000000000000345014471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Sojourn # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-sojourn' GAME_NAME='The Sojourn' ARCHIVE_BASE_0_NAME='setup_the_sojourn_1.1_(64bit)_(41585).exe' ARCHIVE_BASE_0_MD5='dcb64504379bc323710bee15bf94deed' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_sojourn_1.1_(64bit)_(41585)-1.bin' ARCHIVE_BASE_0_PART1_MD5='6f1ba2e2348a794ba24ab0e5ae763e69' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.1-gog41585' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_sojourn' UNREALENGINE4_NAME='thesojourn' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='thesojourn.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-the-stanley-parable.sh0000755000000000000000000000751514471751340016031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Stanley Parable # send your bug reports to contact@dotslashplay.it ### script_version=20231114.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-stanley-parable' GAME_NAME='The Stanley Parable' ARCHIVE_BASE_0_NAME='The_Stanley_Parable_Setup.tar' ARCHIVE_BASE_0_MD5='10a98d7fb93017eb666281bf2d3da28d' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-humble161007' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-stanley-parable' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin" CONTENT_LIBS_BIN_FILES=' bsppack.so crashhandler.so datacache.so dedicated.so engine.so filesystem_stdio.so inputsystem.so launcher.so libtier0.so libtogl.so libvpx.so.1 libvpx.so.1.0 libvpx.so.1.0.0 libvstdlib.so localize.so materialsystem.so puzzlemaker_dll.so scenefilecache.so shaderapidx9.so shaderapiempty.so soundemittersystem.so stdshader_dx9.so studiorender.so valve_avi.so vaudio_speex.so vgui2.so vguimatsurface.so vphysics.so vrad_dll.so vscript.so vvis_dll.so' ## Several shipped libraries rely on the Steam libraries. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api_linux.so libsteam_api.so libsteam.so" CONTENT_GAME_BIN_FILES=' bin/*.bin bin/*.cfg bin/*.dat bin/*.fgd bin/*.so bin/*.txt bin/vbsp_linux bin/vrad_linux bin/vvis_linux thestanleyparable/bin stanley_linux' CONTENT_GAME_DATA_FILES=' platform stanley.png thestanleyparable' CONTENT_DOC_DATA_FILES=' thirdpartylegalnotices.doc' USER_PERSISTENT_DIRECTORIES=' thestanleyparable/cfg thestanleyparable/save' USER_PERSISTENT_FILES=' thestanleyparable/stats.vdf' APP_MAIN_EXE='stanley_linux' APP_MAIN_ICON='stanley.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtcmalloc_minimal.so.4 libuuid.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" # Some libraries are only found by the game engine if they are in a hardcoded path. libraries_path_source=$(path_libraries) libraries_path_destination="$(package_path 'PKG_BIN')$(path_game_data)/bin" mkdir --parents "$libraries_path_destination" ln --symbolic \ "${libraries_path_source}/launcher.so" \ "${libraries_path_source}/filesystem_stdio.so" \ "$libraries_path_destination" # Extract game data archive_extraction_default ARCHIVE_INNER_1_PATH="${PLAYIT_WORKDIR}/gamedata/The Stanley Parable Setup" ## This MojoSetup installer is not based on Makeself. ARCHIVE_INNER_1_EXTRACTOR='bsdtar' archive_extraction 'ARCHIVE_INNER_1' rm "$(archive_path 'ARCHIVE_INNER_1')" ARCHIVE_INNER_2_PATH="${PLAYIT_WORKDIR}/gamedata/data/tsp.tar" archive_extraction 'ARCHIVE_INNER_2' rm "$(archive_path 'ARCHIVE_INNER_2')" # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-stillness-of-the-wind.sh0000755000000000000000000000352114471751340017076 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Stillness of the Wind # send your bug reports to contact@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-stillness-of-the-wind' GAME_NAME='The Stillness of the Wind' ARCHIVE_BASE_0_NAME='Stillness1.1.1Win.zip' ARCHIVE_BASE_0_MD5='0d2a72ead3b9311c386b3f42ff7f1839' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.1.1-itch' ARCHIVE_BASE_0_URL='https://fellowtraveller.itch.io/the-stillness-of-the-wind' UNITY3D_NAME='StillnessWin' CONTENT_PATH_DEFAULT='Stillness1.1.1Win' CONTENT_GAME0_DATA_FILES=' Subtitles Videos' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Memory of God\The Stillness of the Wind' 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-the-subject.sh0000755000000000000000000000435214471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Subject # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-subject' GAME_NAME='The Subject' ARCHIVE_BASE_0_NAME='TheSubject_Linux.zip' ARCHIVE_BASE_0_MD5='09f72ac6554e430ed5aab8b887b1abbe' ARCHIVE_BASE_0_SIZE='2321446' ARCHIVE_BASE_0_VERSION='2.0.3-itch1' ARCHIVE_BASE_0_URL='https://darkstonedigital.itch.io/thesubject' UNITY3D_NAME='TheSubject' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='TheSubjectLinux' 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 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" # 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-the-swords-of-ditto.sh0000755000000000000000000000415414471751340016006 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Swords of Ditto # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-swords-of-ditto' GAME_NAME='The Swords of Ditto: Mormoʼs Curse' ARCHIVE_BASE_0='the_swords_of_ditto_1_17_02_204_30316.sh' ARCHIVE_BASE_0_MD5='9191f474d17f2744c1d6f9153be74780' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.02.204' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_swords_of_ditto' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' The_Swords_of_Ditto' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='The_Swords_of_Ditto' APP_MAIN_ICON='assets/icon.png' 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 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-temple-of-elemental-evil.sh0000755000000000000000000000462614471751340017537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Temple of Elemental Evil # send your bug reports to contact@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-temple-of-elemental-evil' GAME_NAME='The Temple of Elemental Evil' ARCHIVE_BASE_1_NAME='setup_temple_of_elemental_evil_1.0_(15416).exe' ARCHIVE_BASE_1_MD5='1c7b493f71c2c92050a63535b3abec67' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.3-gog15416' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_temple_of_elemental_evil' ARCHIVE_BASE_0_NAME='setup_temple_of_elemental_evil_2.0.0.13.exe' ARCHIVE_BASE_0_MD5='44ea1e38ed1da26aefb32a39a899f770' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3-gog2.0.0.13' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' miles *.dll *.exe *.pyd' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ## Required to override the previous value. CONTENT_GAME0_BIN_PATH_0="$CONTENT_PATH_DEFAULT_0" CONTENT_GAME0_BIN_FILES=' *.cfg' CONTENT_GAME_DATA_FILES=' data modules toee.ico *.dat' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' data/maps data/save data/scr modules/toee' USER_PERSISTENT_FILES=' toee.cfg' APP_MAIN_EXE='toee.exe' APP_MAIN_ICON='toee.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" # 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-the-vanishing-of-ethan-carter.sh0000755000000000000000000000607114471751340017705 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Vanishing of Ethan Carter # send your bug reports to contact@dotslashplay.it ### script_version=20230428.5 GAME_ID='the-vanishing-of-ethan-carter' GAME_NAME='The Vanishing of Ethan Carter' ARCHIVE_BASE_0='setup_the_vanishing_of_ethan_carter_1.04_(18494).exe' ARCHIVE_BASE_0_MD5='ac039c2c1dcfc093840b0a5ce15008c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_vanishing_of_ethan_carter_1.04_(18494)-1.bin' ARCHIVE_BASE_0_PART1_MD5='77dbaf659c02d6fbb77917be36bf463d' ARCHIVE_BASE_0_PART2='setup_the_vanishing_of_ethan_carter_1.04_(18494)-2.bin' ARCHIVE_BASE_0_PART2_MD5='35e0cc8447e782b57525aed48837bd1a' ARCHIVE_BASE_0_SIZE='10000000' ARCHIVE_BASE_0_VERSION='1.04-gog18494' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_vanishing_of_ethan_carter' UNREALENGINE4_NAME='astronautsgame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_DATA_FILES=" binaries/game binaries/build.properties engine ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/${USER}/Documents/My Games/The Vanishing of Ethan Carter/${UNREALENGINE4_NAME}" APP_MAIN_EXE_BIN32="binaries/win32/${UNREALENGINE4_NAME}-win32-shipping.exe" APP_MAIN_EXE_BIN64="binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON="binaries/win32/${UNREALENGINE4_NAME}-win32-shipping.exe" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_BIN32_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" PKG_BIN64_DEPENDENCIES_GSTREAMER_PLUGINS="$PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-warlock-of-firetop-mountain.sh0000755000000000000000000001015114471751340020276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Warlock of Firetop Mountain # send your bug reports to contact@dotslashplay.it ### script_version=20230222.1 GAME_ID='the-warlock-of-firetop-mountain' GAME_NAME='The Warlock of Firetop Mountain' ARCHIVE_BASE_1='WARLOCK_LINUX_487115.zip' ARCHIVE_BASE_1_MD5='ae29e02f78225d69a3bdb661e13f2a3f' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='1.0-humble180508' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-warlock-of-firetop-mountain' ARCHIVE_BASE_0='WARLOCK_LINUX_487088.zip' ARCHIVE_BASE_0_MD5='17d4e909dbed98cd420eee5bb6a828d3' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0-humble171022' UNITY3D_NAME='The Warlock of Firetop Mountain' CONTENT_PATH_DEFAULT='WARLOCK_LINUX_487115' CONTENT_PATH_DEFAULT_0='WARLOCK_LINUX_487088' ## The game fails to start if libCSteamworks.so is not available, ## libsteam_api.so is a requirement of libCSteamworks.so. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level* ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_DATA_ID" 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' 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 engine fails to load some plugins unless they are found in a hardcoded path file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" \ "$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-westport-independent.sh0000755000000000000000000000673014471751340017126 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 contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' 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' CONTENT_PATH_DEFAULT='data/noarch/game/linux32' CONTENT_GAME_BIN32_FILES=' the_westport_independent' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/../linux64" CONTENT_GAME_BIN64_FILES=' the_westport_independent' CONTENT_GAME_DATA_FILES=' config.json assets' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_FILES=' config.json' APP_MAIN_EXE='the_westport_independent' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" 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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_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 ARCHIVE_OPTIONAL_ICONS_0_NAME='the-westport-independent_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='054b51fe4c02f256b8130b40e93d28ae' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-westport-independent' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then ## Include the original game icons from the optional archive… CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else ## …or fall back on the GOG-specific icon. PKG='PKG_DATA' APP_MAIN_ICON='../../support/icon.png' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-2.sh0000755000000000000000000001265014471751340014546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # The Witcher 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-witcher-2' GAME_NAME='The Witcher 2: Assassins of Kings' ARCHIVE_BASE_1_NAME='the_witcher_2_assassins_of_kings_enhanced_edition_en_release_3_20150306204412_20992.sh' ARCHIVE_BASE_1_MD5='fd7b85d44e3da7fdf860ab4267574b36' ARCHIVE_BASE_1_SIZE='24000000' ARCHIVE_BASE_1_VERSION='1.3-gog.20992' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_witcher_2' ARCHIVE_BASE_0_NAME='gog_the_witcher_2_assassins_of_kings_enhanced_edition_2.2.0.8.sh' ARCHIVE_BASE_0_MD5='3fff5123677a7be2023ecdb6af3b82b6' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='1.3-gog.2.2.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libopenal-eon.so.1' CONTENT_GAME_BIN_FILES=' bin configurator eONprecompiledShaders32.dat sdlinput witcher2' CONTENT_GAME_VOICES_DE_FILES=' CookedPC/de0.w2speech' CONTENT_GAME_VOICES_EN_FILES=' CookedPC/en0.w2speech' CONTENT_GAME_VOICES_FR_FILES=' CookedPC/fr0.w2speech' CONTENT_GAME_VOICES_PL_FILES=' CookedPC/pl0.w2speech' CONTENT_GAME_VOICES_RU_FILES=' CookedPC/ru0.w2speech' CONTENT_GAME_DATA_PACK1_FILES=' CookedPC/pack0.dzip.split00' CONTENT_GAME_DATA_PACK2_FILES=' CookedPC/pack0.dzip.split01 CookedPC/pack0.dzip.split02' CONTENT_GAME_DATA_FILES=' CookedPC fontconfig linux icudt52l.dat SDLGamepad.config VPFS_registry.vpfsdb witcher2.vpfs' CONTENT_DOC_DATA_FILES=' *.rtf *.txt' APP_MAIN_EXE='witcher2' APP_MAIN_ICON='linux/icons/witcher2-icon.png' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configurator' APP_CONFIG_ICON='linux/icons/witcher2-configurator.png' PACKAGES_LIST=' PKG_BIN PKG_VOICES_DE PKG_VOICES_EN PKG_VOICES_FR PKG_VOICES_PL PKG_VOICES_RU PKG_DATA_PACK1 PKG_DATA_PACK2 PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DE_ID="${PKG_VOICES_ID}-de" PKG_VOICES_EN_ID="${PKG_VOICES_ID}-en" PKG_VOICES_FR_ID="${PKG_VOICES_ID}-fr" PKG_VOICES_PL_ID="${PKG_VOICES_ID}-pl" PKG_VOICES_RU_ID="${PKG_VOICES_ID}-ru" PKG_VOICES_PROVIDES=" $PKG_VOICES_ID" PKG_VOICES_DE_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_EN_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_FR_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_PL_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_RU_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_DESCRIPTION='voices' PKG_VOICES_DE_DESCRIPTION="$PKG_VOICES_DESCRIPTION - German" PKG_VOICES_EN_DESCRIPTION="$PKG_VOICES_DESCRIPTION - English" PKG_VOICES_FR_DESCRIPTION="$PKG_VOICES_DESCRIPTION - French" PKG_VOICES_PL_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Polish" PKG_VOICES_RU_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Russian" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PACK1_ID="${PKG_DATA_ID}-pack1" PKG_DATA_PACK2_ID="${PKG_DATA_ID}-pack2" PKG_DATA_DESCRIPTION='data' PKG_DATA_PACK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 1" PKG_DATA_PACK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 2" PKG_DATA_DEPS="$PKG_DATA_PACK1_ID $PKG_DATA_PACK2_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_VOICES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libstdc++.so.6 libX11.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" # 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 ## Set package scripts to rebuild the full files from their chunks. file_path='CookedPC/pack0.dzip' PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_PRERM_RUN="${PKG_DATA_PRERM_RUN:-} $(huge_file_delete "$file_path")" packages_generation case "$(messages_language)" in ('fr') lang_string='voix %s :' lang_de='allemandes' lang_en='anglaises' lang_fr='françaises' lang_pl='polonaises' lang_ru='russes' ;; ('en'|*) lang_string='%s voices:' lang_de='German' lang_en='English' lang_fr='French' lang_pl='Polish' lang_ru='Russian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_VOICES_DE' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_VOICES_EN' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_VOICES_FR' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_VOICES_PL' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_VOICES_RU' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-3.sh0000755000000000000000000001165014471751340014546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Witcher 3 # send your bug reports to contact@dotslashplay.it ### script_version=20241230.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-witcher-3' GAME_NAME='The Witcher 3: Wild Hunt' ARCHIVE_BASE_0_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709).exe' ARCHIVE_BASE_0_MD5='321ed8cc0faedb903190a708686a1b50' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8aab6124c22f1360585ee2285ea6d8f7' ARCHIVE_BASE_0_PART2_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3966e84f941b9fba384eb4a2b0b23c65' ARCHIVE_BASE_0_PART3_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-3.bin' ARCHIVE_BASE_0_PART3_MD5='bc80aa6b1538ecf757e7db6f3723e056' ARCHIVE_BASE_0_PART4_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-4.bin' ARCHIVE_BASE_0_PART4_MD5='71660541a0c358ef40802ba62a2c3c09' ARCHIVE_BASE_0_PART5_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-5.bin' ARCHIVE_BASE_0_PART5_MD5='9ad56c2efc7b09f480f7f8c7922c8b3f' ARCHIVE_BASE_0_PART6_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-6.bin' ARCHIVE_BASE_0_PART6_MD5='bd3699654b2e34668445219f2bbbc793' ARCHIVE_BASE_0_PART7_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-7.bin' ARCHIVE_BASE_0_PART7_MD5='1beb5a622e6695d0dd65cac5fab08793' ARCHIVE_BASE_0_PART8_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-8.bin' ARCHIVE_BASE_0_PART8_MD5='121adc43111562e354d9841800d0c613' ARCHIVE_BASE_0_PART9_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-9.bin' ARCHIVE_BASE_0_PART9_MD5='0f5329306515d6f41a1b4a7b2d38ad74' ARCHIVE_BASE_0_SIZE='38000000' ARCHIVE_BASE_0_VERSION='1.31a-gog9709' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher_3_wild_hunt_game_of_the_year_edition' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_MOVIES_FILES=' content/*/bundles/movies.bundle' CONTENT_GAME_BUNDLES_FILES=' content/*/bundles' CONTENT_GAME_VOICES_FILES=' content/*/soundspc.cache' CONTENT_GAME_DATA_FILES=' content' CONTENT_GAME_DLC_HEARTS_OF_STONE_FILES=' dlc/ep1' CONTENT_GAME_DLC_BLOOD_AND_WINE_FILES=' dlc/bob' CONTENT_GAME_DLC_FREE_PACK_FILES=' dlc/dlc*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/The Witcher 3' APP_MAIN_EXE='bin/x64/witcher3.exe' ## Run the game binary from its parent directory. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_BUNDLES PKG_VOICES PKG_DLC_HEARTS_OF_STONE PKG_DLC_BLOOD_AND_WINE PKG_DLC_FREE_PACK PKG_DATA' PKG_BUNDLES_ID="${GAME_ID}-bundles" PKG_BUNDLES_DESCRIPTION='bundles' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BUNDLES_DEPS="${PKG_BUNDLES_DEPS:-} $PKG_MOVIES_ID" PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DLC_HEARTS_OF_STONE_ID="${GAME_ID}-hearts-of-stone" PKG_DLC_HEARTS_OF_STONE_DESCRIPTION='Hearts of Stone' PKG_DLC_HEARTS_OF_STONE_DEPS="$GAME_ID" PKG_DLC_BLOOD_AND_WINE_ID="${GAME_ID}-blood-and-wine" PKG_DLC_BLOOD_AND_WINE_DESCRIPTION='Blood and Wine' PKG_DLC_BLOOD_AND_WINE_DEPS="$GAME_ID" PKG_DLC_FREE_PACK_ID="${GAME_ID}-free-dlc-pack" PKG_DLC_FREE_PACK_DESCRIPTION='Free DLC pack' PKG_DLC_FREE_PACK_DEPS="$GAME_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_BUNDLES_ID $PKG_VOICES_ID" 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions 'PKG_MOVIES' 'PKG_BUNDLES' 'PKG_VOICES' 'PKG_DATA' 'PKG_BIN' GAME_NAME=$(package_description 'PKG_DLC_HEARTS_OF_STONE') print_instructions 'PKG_DLC_HEARTS_OF_STONE' GAME_NAME=$(package_description 'PKG_DLC_BLOOD_AND_WINE') print_instructions 'PKG_DLC_BLOOD_AND_WINE' GAME_NAME=$(package_description 'PKG_DLC_FREE_PACK') print_instructions 'PKG_DLC_FREE_PACK' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-world-begins-with-you.sh0000755000000000000000000000335114471751340017117 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The World Begins With You # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-world-begins-with-you' GAME_NAME='The World Begins With You' ARCHIVE_BASE_0_NAME='TheWorldBeginsWithYou_v1_0_1_WIN.zip' ARCHIVE_BASE_0_MD5='ae72427190719de31f59b2cc1ed4baa3' ARCHIVE_BASE_0_SIZE='730000' ARCHIVE_BASE_0_VERSION='1.0.1-itch' ARCHIVE_BASE_0_URL='https://fabiandenter.itch.io/the-world-begins-with-you' UNITY3D_NAME='TheWorldBeginsWithYou_v1_0_1' CONTENT_PATH_DEFAULT='.' WINE_VIRTUAL_DESKTOP='auto' 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-the-world-next-door.sh0000755000000000000000000000336014471751340016004 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The World Next Door # send your bug reports to contact@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-world-next-door' GAME_NAME='The World Next Door' ARCHIVE_BASE_0_NAME='setup_the_world_next_door_1.2.0_(29529).exe' ARCHIVE_BASE_0_MD5='ec556aa20488836c92fdf6b2b0bdb3d9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.0-gog29529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_world_next_door' UNITY3D_NAME='theworldnextdoor' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_FILES=' *.bin' 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-thea-2.sh0000755000000000000000000000446314471751340013247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Thea 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230418.1 GAME_ID='thea-2' GAME_NAME='Thea 2: The Shattering' ARCHIVE_BASE_0='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='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' ARCHIVE_BASE_0_URL='https://www.gog.com/game/thea_2_the_shattering' UNITY3D_NAME='thea2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe mono galaxy64.dll galaxycsharpglue.dll unityplayer.dll unitycrashhandler64.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_data/Profiles ${UNITY3D_NAME}_data/streamingassets/DataHistory" APP_MAIN_EXE="${UNITY3D_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 target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-theme-hospital.sh0000755000000000000000000000724214471751340015110 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 contact@dotslashplay.it ### script_version=20240507.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='theme-hospital' GAME_NAME='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_1_URL='https://www.gog.com/game/theme_hospital' 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=' *.bat *.cfg *.exe *.ini' CONTENT_GAME_DATA_FILES=' anims cfg data datam intro levels qdata qdatam save sound' CONTENT_DOC_DATA_FILES=' *.txt *.pdf' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENGINE_ID="$GAME_ID" PKG_DOSBOX_ID="${PKG_ENGINE_ID}-dosbox" PKG_DOSBOX_PROVIDES=" $PKG_ENGINE_ID" PKG_DOSBOX_DEPS="$PKG_DATA_ID dosbox" PKG_CORSIXTH_ID="${PKG_ENGINE_ID}-corsixth" PKG_CORSIXTH_PROVIDES=" $PKG_ENGINE_ID" PKG_CORSIXTH_DEPS="$PKG_DATA_ID" PKG_CORSIXTH_DEPENDENCIES_COMMANDS=' corsix-th' # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'dosbox' \ 'tmp' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## DOSBox launchers_generation 'PKG_DOSBOX' ## CorsixTH custom_launcher() { launcher_headers cat <<- 'EOF' corsix-th "$@" EOF launcher_exit } launchers_generation 'PKG_CORSIXTH' # Build packages ## Set the path to game data in CorsixTH configuration. case "$(option_value 'package')" in ('arch') path_corsixth='/usr/share/CorsixTH' ;; ('deb') path_corsixth='/usr/share/games/corsix-th' ;; ('gentoo'|'egentoo') path_corsixth='/usr/share/corsix-th' ;; esac config_file_path="${path_corsixth}/Lua/config_finder.lua" PKG_CORSIXTH_POSTINST_RUN="$(package_postinst_actions 'PKG_CORSIXTH_POSTINST_RUN')"' # Set path to game data in CorsixTH configuration config_file_path="'"$config_file_path"'" sed_pattern="^ theme_hospital_install = .*$" sed_replacement=" theme_hospital_install = [['"$(path_game_data)"']]," sed_expression="s#${sed_pattern}#${sed_replacement}#" sed --in-place --expression="$sed_expression" "$config_file_path"' packages_generation printf '\n' printf 'CorsixTH:' print_instructions 'PKG_DATA' 'PKG_CORSIXTH' printf 'DOSBox:' print_instructions 'PKG_DATA' 'PKG_DOSBOX' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-there-is-no-game.sh0000755000000000000000000000351414471751340015224 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # There is no Game: Wrong Dimension # send your bug reports to contact@dotslashplay.it ### script_version=20240706.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='there-is-no-game' GAME_NAME='There is no Game: Wrong Dimension' ARCHIVE_BASE_0_NAME='setup_there_is_no_game__wrong_dimension_v1.0.30_(52258).exe' ARCHIVE_BASE_0_MD5='f9590da9c19a554e8154ffeacee9cdbb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0.30-gog52258' ARCHIVE_BASE_0_URL='https://www.gog.com/game/there_is_no_game_wrong_dimension' UNITY3D_NAME='ting' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DrawMeAPixel/Ting' 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-thief-3.sh0000755000000000000000000001131314471751340013416 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Thief 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240428.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='thief-3' GAME_NAME='Thief 3: Deadly Shadows' ARCHIVE_BASE_1_NAME='setup_thief_-_deadly_shadows_1.1_(21683).exe' ARCHIVE_BASE_1_MD5='153723f2908242cf27a23ad58d0608b5' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_thief_-_deadly_shadows_1.1_(21683)-1.bin' ARCHIVE_BASE_1_PART1_MD5='8c549826345776df192fb1721740096f' ARCHIVE_BASE_1_SIZE='2300000' ARCHIVE_BASE_1_VERSION='1.1-gog2.21683' ARCHIVE_BASE_1_URL='https://www.gog.com/game/thief_3' ARCHIVE_BASE_0_NAME='setup_thief3_2.0.0.6.exe' ARCHIVE_BASE_0_MD5='e5b84de58a1037f3e8aa3a1bb2a982be' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.6' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' system' CONTENT_GAME0_BIN_PATH='__support/app' CONTENT_GAME0_BIN_PATH_0='app' CONTENT_GAME0_BIN_FILES=' user.ini' CONTENT_GAME_DATA_FILES=' content' CONTENT_DOC_DATA_FILES=' eula.txt readme.rtf *.pdf' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='system/t3.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20201031.16 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} thief3-data" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID wine" ## Ensure easy upgrades from packages generated with pre-20201031.16 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} thief3" # Set up required registry keys registry_dump_required_file='registry-dumps/required-entries.reg' # shellcheck disable=SC1003 registry_dump_required_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows] "ION_ROOT"="C:\\'"${GAME_ID}"'" "SaveGamePath"="C:\\'"${GAME_ID}"'\\saves" [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows\SecuROM\Locale] "ADMIN_RIGHTS"="Application requires Windows administrator rights." "ANALYSIS_DISCLAIMER"="Dear Software User,\\n\\nThis test program has been developed with your personal interest in mind to check for possible hardware and/or software incompatibility on your PC. To shorten the analysis time, system information is collected (similar to the Microsoft'\''s msinfo32.exe program).\\n\\nData will be compared with our knowledge base to discover hardware/software conflicts. Submitting the log file is totally voluntary. The collected data is for evaluation purposes only and is not used in any other manner.\\n\\nYour Support Team\\n\\nDo you want to start?" "ANALYSIS_DONE"="The Information was successfully collected and stored to the following file:\\n\\n\\\"%FILE%\\\"\\n\\nPlease contact Customer Support for forwarding instructions." "AUTH_TIMEOUT"="Unable to authenticate original disc within time limit." "EMULATION_DETECTED"="Conflict with Disc Emulator Software detected." "NO_DISC"="No disc inserted." "NO_DRIVE"="No CD or DVD drive found." "NO_ORIG_FOUND"="Please insert the original disc instead of a backup." "TITLEBAR"="Thief: Deadly Shadows" "WRONG_DISC"="Wrong Disc inserted. Please insert the Thief: Deadly Shadows disc into your CD/DVD drive."' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_required_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_required_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" # 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set up required registry keys. mkdir --parents "$(dirname "$registry_dump_required_file")" printf '%s' "$registry_dump_required_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_required_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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-this-war-of-mine-stories.sh0000755000000000000000000000510314471751340016733 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 contact@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.sh0000755000000000000000000000327114471751340020264 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 contact@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.sh0000755000000000000000000001155514471751340015255 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # This War of Mine # send your bug reports to contact@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-thomas-was-alone.sh0000755000000000000000000000367614471751340015353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Thomas Was Alone # send your bug reports to contact@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='thomas-was-alone' GAME_NAME='Thomas Was Alone' ## This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='thomaswasalone-linux-1369349552.tar' ARCHIVE_BASE_0_MD5='e7f8e766188718e16880b1137c430f35' ARCHIVE_BASE_0_SIZE='242609' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='thomasWasAlone' CONTENT_PATH_DEFAULT='thomasLinuxStandalone' 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 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_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-tidalis.sh0000755000000000000000000000632114471751340013613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Tidalis # send your bug reports to contact@dotslashplay.it ### script_version=20240331.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='tidalis' GAME_NAME='Tidalis' ARCHIVE_BASE_64BIT_0_NAME='Tidalis_Linux64_v1.5.zip' ARCHIVE_BASE_64BIT_0_MD5='d5893c3ed40ab2266359c88b361ddb57' ARCHIVE_BASE_64BIT_0_SIZE='630000' ARCHIVE_BASE_64BIT_0_VERSION='1.5-humble160517' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/tidalis' ARCHIVE_BASE_32BIT_0_NAME='Tidalis_Linux32_v1.5.zip' ARCHIVE_BASE_32BIT_0_MD5='c5fd83dd7e6221a5a91e326fc36c9043' ARCHIVE_BASE_32BIT_0_SIZE='630000' ARCHIVE_BASE_32BIT_0_VERSION='1.5-humble160517' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/tidalis' UNITY3D_NAME='TidalisLinux' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' RuntimeData' ## The sysrequirements.txt file is actually what unlocks access to the full game. CONTENT_GAME1_DATA_FILES=' sysrequirements.txt' CONTENT_DOC_FILES=' TidalisManual.pdf TidalisLicense.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='32' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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" # Do not disable the MAP_32BIT flag, as it would cause a crash on launch unity3d_disable_map32bit() { return 0 ; } # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete Apple archives junk. rm --recursive '__MACOSX' find . -name '*.rsrc' -delete ## Prevent the inclusion of the game updater. rm --recursive 'UDA' ## Prevent inclusion of files for the wrong architecture. case "$(current_archive)" in ('ARCHIVE_BASE_64BIT_'*) rm --recursive \ "$(unity3d_name)_Data/Mono/x86" \ "$(unity3d_name)_Data/Plugins/x86" ;; ('ARCHIVE_BASE_32BIT_'*) rm --recursive \ "$(unity3d_name)_Data/Mono/x86_64" \ "$(unity3d_name)_Data/Plugins/x86_64" ;; esac ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-time-loader.sh0000755000000000000000000000353414471751340014367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Time Loader # send your bug reports to contact@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='time-loader' GAME_NAME='Time Loader' ARCHIVE_BASE_0_NAME='setup_time_loader_1.0.65_(53338).exe' ARCHIVE_BASE_0_MD5='3a2842ca85c3d20313a72d88615b8059' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_time_loader_1.0.65_(53338)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0c4f4eccb554f3905f12e6fded25c7df' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.0.65-gog53338' ARCHIVE_BASE_0_URL='https://www.gog.com/game/time_loader' UNITY3D_NAME='time loader' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/FLAZM/Time Loader' 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" # 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-tiny-and-big.sh0000755000000000000000000001005214471751340014440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tiny and Big: Grandpa's Leftovers # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tiny-and-big' GAME_NAME='Tiny and Big: Grandpaʼs Leftovers' ARCHIVE_BASE_GOG_0='tiny_and_big_grandpa_s_leftovers_en_1_4_2_15616.sh' ARCHIVE_BASE_GOG_0_MD5='bdcc1ea8366dedcfe00b50c439fd5ec9' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.4.2-gog15616' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/tiny_and_big_grandpas_leftovers' ARCHIVE_BASE_HUMBLE_0='tinyandbig_grandpasleftovers-retail-linux-1.4.1_1370968537.tar.bz2' ARCHIVE_BASE_HUMBLE_0_MD5='c6c2bc286f11e4a232211c5176105890' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.4.1-humble1370968537' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/tiny-big-grandpas-leftovers' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='tinyandbig' ## TODO: Check if some shipped libraries could be replaced with system-provided ones. CONTENT_LIBS_BIN_FILES=' libcal3d.so libCgGL.so libCg.so' CONTENT_LIBS_BIN32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin32" CONTENT_LIBS_BIN32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin32" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin64" CONTENT_LIBS_BIN64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_FILES=' bin32/tinyandbig' CONTENT_GAME_BIN64_FILES=' bin64/tinyandbig' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE_BIN32='bin32/tinyandbig' APP_MAIN_EXE_BIN64='bin64/tinyandbig' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" 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 libstdc++.so.6 libX11.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_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 ARCHIVE_OPTIONAL_ICONS_0_NAME='tiny-and-big_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='043fa61c838ba6b2ef301c52660352b1' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/tiny-and-big' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tiny-hunter.sh0000755000000000000000000000411314471751340014445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tiny Hunter # send your bug reports to contact@dotslashplay.it ### script_version=20240616.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tiny-hunter' GAME_NAME='Tiny Hunter' ARCHIVE_BASE_1_NAME='tinyhunter_linux.zip' ARCHIVE_BASE_1_MD5='cb14caf2a47efaee84c0cdc6f8be82c6' ARCHIVE_BASE_1_SIZE='157912' ARCHIVE_BASE_1_VERSION='1.0-itch.2020.10.15' ARCHIVE_BASE_1_URL='https://nojigames.itch.io/tinyhunter' ARCHIVE_BASE_0_NAME='TinyHunterWindowMacLinux.zip' ARCHIVE_BASE_0_MD5='9fa1ab03e2769365229a29b6b37995f7' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://nojigames.itch.io/tinyhunter' UNITY3D_NAME='tinyhunter_linux' UNITY3D_NAME_0='tinyhunter' ## No Unity3D plugin is shipped. CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='TinyHunterWindowMacLinux/Linux' 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 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-to-be-or-not-to-be.sh0000755000000000000000000000467714471751340015424 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # To Be or Not To Be # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='to-be-or-not-to-be' GAME_NAME='To Be or Not To Be' ARCHIVE_BASE_0_NAME='tobe_linux_3270.zip' ARCHIVE_BASE_0_MD5='2a7e51cfbcdae43c438557ffa0a9cff0' ARCHIVE_BASE_0_SIZE='1325068' ARCHIVE_BASE_0_VERSION='3270-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/ryan-norths-to-be-or-not-to-be' UNITY3D_NAME='To Be or Not To Be' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS=" libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='tobe_linux_3270' 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 archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete MacOS junk. find . -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 rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-toki-tori-2.sh0000755000000000000000000000530614471751340014244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Toki Tori 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='toki-tori-2' GAME_NAME='Toki Tori 2' ARCHIVE_BASE_0_NAME='TokiTori2-Linux-2017-06-22.sh' ARCHIVE_BASE_0_MD5='564ddc7b09982295732923bb7ac6f39e' ARCHIVE_BASE_0_SIZE='624185' ARCHIVE_BASE_0_VERSION='2017.06.22-humble.2017.10.02' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/toki-tori-2' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN64_RELATIVE_PATH='x86_64' CONTENT_GAME_BIN64_FILES=' TokiTori2.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH='x86' CONTENT_GAME_BIN32_FILES=' TokiTori2.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' audio color_grading config default levels levels_unsavedchanges localization metadata movement particles presentation scripts shaders spritestrip textures userlevels archive.ma app_icon.png' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux namespace.txt' APP_MAIN_ICON='app_icon.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 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.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 # 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-tooth-and-tail.sh0000755000000000000000000000560514471751340015012 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 contact@dotslashplay.it ### script_version=20230125.2 GAME_ID='tooth-and-tail' GAME_NAME='Tooth and Tail' ## This DRM-free archive used to be sold by Humble Bundle, ## but they now only provide a Steam key instead. ARCHIVE_BASE_0='toothandtail_linux.zip' ARCHIVE_BASE_0_MD5='5a01a61889e795b538d3db288a6f519d' ARCHIVE_BASE_0_VERSION='1.6.1.1-humble1' ARCHIVE_BASE_0_SIZE='600000' CONTENT_PATH_DEFAULT='Release' 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' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libtheora.so.0 libvorbisfile.so.3' 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' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmod.so.10 libfmodstudio.so.10 libmojoshader.so libtheorafile.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-toren.sh0000755000000000000000000000345014471751340013311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Toren # send your bug reports to contact@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='toren' GAME_NAME='Toren' ## This free installer is no longer available for sale from gog.com. ARCHIVE_BASE_0_NAME='setup_toren_gog-1_(17651).exe' ARCHIVE_BASE_0_MD5='4785b339bb5918722ff6a9f30f9d5c04' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_toren_gog-1_(17651)-1.bin' ARCHIVE_BASE_0_PART1_MD5='877ca6f3271cb03b46b5de71a6ff37de' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog17651' UNITY3D_NAME='toren' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_FILES=' *.sav' 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-total-annihilation-kingdoms.sh0000755000000000000000000000400214471751340017563 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 HS-157 # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Total Annihilation: Kingdoms # send your bug reports to contact@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-touhou.sh0000755000000000000000000002236714471751340013515 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2019 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Touhou series: # - Touhou 6 # - Touhou 9 # - Touhou 11 # - Touhou 12 # - Touhou 13 # - Touhou 14 # - Touhou 16.5 # send your bug reports to contact@dotslashplay.it ### script_version=20241103.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_EPISODE6='touhou-6' GAME_NAME_EPISODE6='Touhou Koumakyou ~ the Embodiment of Scarlet Devil' GAME_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6}-demo" GAME_NAME_EPISODE6_DEMO="$GAME_NAME_EPISODE6 (demo)" GAME_ID_EPISODE9='touhou-9' GAME_NAME_EPISODE9='Touhou Kaeizuka ~ Phantasmagoria of Flower View' GAME_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9}-demo" GAME_NAME_EPISODE9_DEMO="$GAME_NAME_EPISODE9 (demo)" GAME_ID_EPISODE11='touhou-11' GAME_NAME_EPISODE11='Touhou Chireiden ~ Subterranean Animism' GAME_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11}-demo" GAME_NAME_EPISODE11_DEMO="$GAME_NAME_EPISODE11 (demo)" GAME_ID_EPISODE12='touhou-12' GAME_NAME_EPISODE12='Touhou Seirensen ~ Undefined Fantastic Object' GAME_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12}-demo" GAME_NAME_EPISODE12_DEMO="$GAME_NAME_EPISODE12 (demo)" GAME_ID_EPISODE13='touhou-13' GAME_NAME_EPISODE13='Touhou Touhou Shinreibyou ~ Ten Desires' GAME_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13}-demo" GAME_NAME_EPISODE13_DEMO="$GAME_NAME_EPISODE13 (demo)" GAME_ID_EPISODE14='touhou-14' GAME_NAME_EPISODE14='Touhou Kishinjou ~ Double Dealing Character' GAME_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14}-demo" GAME_NAME_EPISODE14_DEMO="$GAME_NAME_EPISODE14 (demo)" GAME_ID_EPISODE165='touhou-16-5' GAME_NAME_EPISODE165='Touhou Hifuu Nightmare Diary ~ Violet Detector' ARCHIVE_BASE_EPISODE6_DEMO_0_NAME='kouma_tr013.lzh' ARCHIVE_BASE_EPISODE6_DEMO_0_MD5='7ea4be414a7f256429a2c5e4666c9881' ARCHIVE_BASE_EPISODE6_DEMO_0_TYPE='lha' ARCHIVE_BASE_EPISODE6_DEMO_0_SIZE='4500' ARCHIVE_BASE_EPISODE6_DEMO_0_VERSION='0.13-zun1' ARCHIVE_BASE_EPISODE6_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th06.html' ## All download links behind the provided URL seem to be dead, ## despite the download page itself still being available. ARCHIVE_BASE_EPISODE9_DEMO_0_NAME='kaei_ver002.lzh' ARCHIVE_BASE_EPISODE9_DEMO_0_MD5='e07878f414404ba2157c4f646ccf3708' ARCHIVE_BASE_EPISODE9_DEMO_0_TYPE='lha' ARCHIVE_BASE_EPISODE9_DEMO_0_SIZE='29000' ARCHIVE_BASE_EPISODE9_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE9_DEMO_0_URL='https://www16.big.or.jp/~zun/html/th09dl.html' ARCHIVE_BASE_EPISODE11_DEMO_0_NAME='th11tr002a_setup.exe' ARCHIVE_BASE_EPISODE11_DEMO_0_MD5='9b7c092a529fcc1f48590f0a2b3cca87' ## Do not try to convert file paths to lowercase. ARCHIVE_BASE_EPISODE11_DEMO_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EPISODE11_DEMO_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_EPISODE11_DEMO_0_SIZE='140000' ARCHIVE_BASE_EPISODE11_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE11_DEMO_0_URL='https://www16.big.or.jp/~zun/html/th11top.html' ARCHIVE_BASE_EPISODE12_DEMO_0_NAME='th12tr002a_setup.exe' ARCHIVE_BASE_EPISODE12_DEMO_0_MD5='61a77c94c2ef64d7afda477dda0594eb' ARCHIVE_BASE_EPISODE12_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE12_DEMO_0_SIZE='151620' ARCHIVE_BASE_EPISODE12_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE12_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th12dl.html' ARCHIVE_BASE_EPISODE13_DEMO_0_NAME='th13tr001a_setup.exe' ARCHIVE_BASE_EPISODE13_DEMO_0_MD5='5336b10545fd0b6cb0eb38c97199e9bc' ARCHIVE_BASE_EPISODE13_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE13_DEMO_0_SIZE='190000' ARCHIVE_BASE_EPISODE13_DEMO_0_VERSION='0.01a-zun1' ARCHIVE_BASE_EPISODE13_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th13dl.html' ## This DRM-free archive is no longer available from Playism store, ## since their owners closed it down in favour of Steam. ARCHIVE_BASE_EPISODE14_DEMO_0_NAME='DoubleDealingCharacterDemo.zip' ARCHIVE_BASE_EPISODE14_DEMO_0_MD5='76a751e8becb51689c2256d218cda788' ARCHIVE_BASE_EPISODE14_DEMO_0_SIZE='190000' ARCHIVE_BASE_EPISODE14_DEMO_0_VERSION='0.01b-playism' ARCHIVE_BASE_EPISODE165_DISC_0_NAME='violet-detector.iso' ARCHIVE_BASE_EPISODE165_DISC_0_MD5='d6198341c3c92befbeb713fdccc189e7' ARCHIVE_BASE_EPISODE165_DISC_0_VERSION='1.00a-disc' ARCHIVE_BASE_EPISODE165_DISC_0_SIZE='370000' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_NAME='violet-detector-raw.iso' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_MD5='7bbcf834290e33c0bb656a43a9d39ffe' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_VERSION='1.00a-disc' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_SIZE='370000' CONTENT_PATH_DEFAULT_EPISODE6_DEMO='東方紅魔郷 体験版' CONTENT_PATH_DEFAULT_EPISODE9_DEMO='kaei' CONTENT_PATH_DEFAULT_EPISODE11_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE12_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE13_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE14_DEMO='Double Dealing Character DEMO (Touhou14)' CONTENT_PATH_DEFAULT_EPISODE165='th165' CONTENT_GAME_BIN_FILES=' *.exe' CONTENT_GAME_DATA_FILES=' *.dat *.DAT' CONTENT_DOC_DATA_FILES=' html manual マニュアル index.html *.txt' USER_PERSISTENT_DIRECTORIES_EPISODE6_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE9_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE12_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE13_DEMO=' replay' USER_PERSISTENT_FILES_EPISODE6_DEMO=' 東方紅魔郷.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE9_DEMO=' th09tr.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE11_DEMO=' h11.cfg scoreth11.dat log.txt' USER_PERSISTENT_FILES_EPISODE12_DEMO=' th12.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE13_DEMO=' th13.cfg score.dat log.txt' WINE_PERSISTENT_DIRECTORIES_EPISODE14_DEMO=' users/${USER}/AppData/Roaming/ShanghaiAlice/th14tr' WINE_PERSISTENT_DIRECTORIES_EPISODE165=' users/${USER}/AppData/Roaming/ShanghaiAlice/th165' APP_MAIN_EXE_EPISODE6_DEMO='東方紅魔郷.exe' APP_MAIN_EXE_EPISODE9_DEMO='th09tr.exe' APP_MAIN_EXE_EPISODE11_DEMO='th11.exe' APP_MAIN_EXE_EPISODE12_DEMO='th12.exe' APP_MAIN_EXE_EPISODE13_DEMO='th13.exe' APP_MAIN_EXE_EPISODE14_DEMO='th14.exe' APP_MAIN_EXE_EPISODE165='th165.exe' APP_MAIN_PRERUN='export LANG=ja_JP.UTF-8' APP_CONFIG_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6_DEMO}-config" APP_CONFIG_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9_DEMO}-config" APP_CONFIG_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11_DEMO}-config" APP_CONFIG_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12_DEMO}-config" APP_CONFIG_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13_DEMO}-config" APP_CONFIG_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14_DEMO}-config" APP_CONFIG_ID_EPISODE165="${GAME_ID_EPISODE165}-config" APP_CONFIG_NAME_EPISODE6_DEMO="$GAME_NAME_EPISODE6_DEMO - configuration" APP_CONFIG_NAME_EPISODE9_DEMO="$GAME_NAME_EPISODE9_DEMO - configuration" APP_CONFIG_NAME_EPISODE11_DEMO="$GAME_NAME_EPISODE11_DEMO - configuration" APP_CONFIG_NAME_EPISODE12_DEMO="$GAME_NAME_EPISODE12_DEMO - configuration" APP_CONFIG_NAME_EPISODE13_DEMO="$GAME_NAME_EPISODE13_DEMO - configuration" APP_CONFIG_NAME_EPISODE14_DEMO="$GAME_NAME_EPISODE14_DEMO - configuration" APP_CONFIG_NAME_EPISODE165="$GAME_NAME_EPISODE165 - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='custom.exe' APP_CONFIG_PRERUN='export LANG=ja_JP.UTF-8' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: A dependency on the wqy-microhei.ttc font should be added. PKG_DATA_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6_DEMO}-data" PKG_DATA_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9_DEMO}-data" PKG_DATA_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11_DEMO}-data" PKG_DATA_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12_DEMO}-data" PKG_DATA_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13_DEMO}-data" PKG_DATA_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14_DEMO}-data" PKG_DATA_ID_EPISODE165="${GAME_ID_EPISODE165}-data" PKG_DATA_DESCRIPTION='data' # Convert the text files to UTF-8 encoding SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" SCRIPT_DEPS_EPISODE6_DEMO="${SCRIPT_DEPS:-} 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" # Check for the presence of extra requirements SCRIPT_DEPS=$(context_value 'SCRIPT_DEPS') check_deps # Extract game data archive_extraction_default ( ## Not going into $CONTENT_PATH_DEFAULT is expected. cd "${PLAYIT_WORKDIR}/gamedata" ## Convert all file paths to UTF-8 encoding. case "$(current_archive)" in ('ARCHIVE_BASE_EPISODE6_DEMO_'*) convmv -f CP932 -t UTF-8 --notest -r . >/dev/null ;; esac ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert the text files to UTF-8 encoding. find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c 'contents=$(iconv --from-code CP932 --to-code UTF-8 "$1"); printf "%s" "$contents" > "$1"' -- '{}' \; ) # 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-tower-of-guns.sh0000755000000000000000000000550014471751340014674 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Tower of Guns # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='tower-of-guns' GAME_NAME='Tower of Guns' ## This Linux native DRM-free installer is no longer avaiable for sale from humblebundle.com ARCHIVE_BASE_0='TowerOfGuns-Linux-1.27-2015021101-g_fix.sh' ARCHIVE_BASE_0_MD5='45fae40e529e678c9129f9ee2dc8694b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.27-humble160104' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/x86/Binaries/Linux/lib" CONTENT_LIBS_BIN_FILES=' libPhysXCore.so libPhysXCooking.so libSDL2_mixer-2.0.so.0 libtcmalloc.so.0' CONTENT_GAME_BIN_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN_FILES=' Binaries/Linux/UDKGame-Linux' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' Engine UDKGame ToGIcon.bmp TowerOfGunsIcon.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_DOC_DATA_FILES=' *.txt README.linux' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='noarch/TowerOfGunsIcon.png' APP_MAIN_PRERUN='export LANG=C' 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=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' # Run the game binary from its parent directory APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_EXE")' # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game date content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-townscaper.sh0000755000000000000000000000335714471751340014355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 VA # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Townscaper # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='townscaper' GAME_NAME='Townscaper' ARCHIVE_BASE_0_NAME='setup_townscaper_1.0_(49525).exe' ARCHIVE_BASE_0_MD5='1a1e0bd05b686bc6a5b0aabde0901cb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='108000' ARCHIVE_BASE_0_VERSION='1.0-gog49525' ARCHIVE_BASE_0_URL='https://www.gog.com/game/townscaper' UNITY3D_NAME='townscaper' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Oskar Stalberg/Townscaper' 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-trackmania-nations-forever.sh0000755000000000000000000000650514471751340017417 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2024 BetaRays set -o errexit ### # TrackMania Nations Forever # build native packages from the original installers # send your bug reports to contact@dotslashplay.it ### script_version=20240326.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='trackmania-nations-forever' GAME_NAME='TrackMania Nations Forever' ARCHIVE_BASE_0_NAME='tmnationsforever_setup.exe' ARCHIVE_BASE_0_MD5='2a36d70989f94ba9369993749ff20640' ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='2.11.26-1' ARCHIVE_BASE_0_URL='https://trackmaniaforever.com/nations/' ARCHIVE_OPTIONAL_TMCP_0_NAME='TMCompetitionPatch_1.5.1.zip' ARCHIVE_OPTIONAL_TMCP_0_MD5='6420ae68976973e57cf1d5a1e135bae7' ARCHIVE_OPTIONAL_TMCP_0_SIZE='2200' ARCHIVE_OPTIONAL_TMCP_0_VERSION='1.5.1' ARCHIVE_OPTIONAL_TMCP_0_URL='https://donadigo.com/tmcp' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll openal32.dll thumbgbx.dll thumbgbx.tlb tmforever.exe tmforeverlauncher.exe wrap_oal.dll' CONTENT_GAME_DATA_FILES=' gamedata packs tmforever.map gbx.ico launchicon.png nadeo.ini' # TMCP CONTENT_GAME0_BIN_PATH='.' CONTENT_GAME0_BIN_FILES=' dinput8.dll TMCompPatch.dll' APP_MAIN_TYPE='wine' APP_MAIN_EXE='tmforeverlauncher.exe' APP_MAIN_ICON='launchicon.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" WINE_DIRECT3D_RENDERER='dxvk' # Store game progress and configuration in persistent paths WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/TmForever' # innoextract is required to extract the content of an inner archive SCRIPT_DEPS="$SCRIPT_DEPS innoextract" # 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" archive_initialize_optional 'ARCHIVE_TMCP' 'ARCHIVE_OPTIONAL_TMCP_0' # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/TmNationsForever_Setup_Tmp.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" "${PLAYIT_WORKDIR}/gamedata/TmNationsForever_Setup_Tmp-1.bin" if archive_is_available 'ARCHIVE_TMCP'; then archive_extraction 'ARCHIVE_TMCP' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' export WINEDLLOVERRIDES="dinput8.dll=n,b;$WINEDLLOVERRIDES"' fi # Include game icons set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-trine-1.sh0000755000000000000000000000461114471751340013441 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Trine 1 # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='trine-1' GAME_NAME='Trine' ARCHIVE_BASE_0='gog_trine_enchanted_edition_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='0e8d2338b568222b28cf3c31059b4960' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.12.508-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/trine_enchanted_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/lib32' CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin/trine1_linux_32bit' CONTENT_GAME_DATA_FILES=' data *.fbq *.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='bin/trine1_linux_32bit' APP_MAIN_ICON='trine1.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" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-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 libogg.so.0 libpango-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 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" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trine-2.sh0000755000000000000000000000703314471751340013443 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Trine 2 # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='trine-2' GAME_NAME='Trine 2' ARCHIVE_BASE_GOG_1='gog_trine_2_complete_story_2.0.0.5.sh' ARCHIVE_BASE_GOG_1_MD5='dd7126c1a6210e56fde20876bdb0a2ac' ARCHIVE_BASE_GOG_1_SIZE='3700000' ARCHIVE_BASE_GOG_1_VERSION='2.01.425-gog2.0.0.5' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/trine_2_complete_story' ARCHIVE_BASE_GOG_0='gog_trine_2_complete_story_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='dae867bff938dde002eafcce0b72e5b4' ARCHIVE_BASE_GOG_0_SIZE='3700000' ARCHIVE_BASE_GOG_0_VERSION='2.01.425-gog2.0.0.4' ARCHIVE_BASE_HUMBLE_0='trine2_complete_story_v2_01_build_425_humble_linux_full.zip' ARCHIVE_BASE_HUMBLE_0_MD5='82049b65c1bce6841335935bc05139c8' ARCHIVE_BASE_HUMBLE_0_SIZE='3700000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.01build425-humble141016' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/trine-2-complete-story' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib/lib32" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib/lib32" CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libPhysXCooking.so libPhysXCooking.so.1 libPhysXCore.so libPhysXCore.so.1 libPhysXLoader.so libPhysXLoader.so.1 libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' data trine2.png *.fbq' CONTENT_DOC_DATA_FILES=' readme*' APP_MAIN_EXE='bin/trine2_linux_launcher_32bit' APP_MAIN_ICON='trine2.png' ## Work around a crash in fullscreen mode APP_MAIN_PRERUN='# Work around a crash in fullscreen mode export SDL_VIDEO_ALLOW_SCREENSAVER=1 ' 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=' libasound.so.2 libatk-1.0.so.0 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 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 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libvorbisfile.so.3 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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set execution permissions on all binaries chmod 755 bin/* ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-triple-triad-gold.sh0000755000000000000000000000365214471751340015511 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 contact@dotslashplay.it ### script_version=20230821.1 GAME_ID='triple-triad-gold' GAME_NAME='Triple Triad Gold' ARCHIVE_BASE_0='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' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-truberbrook.sh0000755000000000000000000000447614471751340014533 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Trüberbrook # send your bug reports to contact@dotslashplay.it ### script_version=20231115.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='truberbrook' GAME_NAME='Trüberbrook' ARCHIVE_BASE_0_NAME='tr_berbrook_1_6_31066.sh' ARCHIVE_BASE_0_MD5='d80939b1304181c5f755a768289d9189' ARCHIVE_BASE_0_SIZE='5500000' ARCHIVE_BASE_0_VERSION='1.6-gog31066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/truberbrook' UNITY3D_NAME='Truberbrook' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tulpa.sh0000755000000000000000000000541314471751340013310 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tulpa # send your bug reports to contact@dotslashplay.it ### script_version=20241127.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tulpa' GAME_NAME='Tulpa' ## This game is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='Tulpa_Linux_1423847478.zip' ARCHIVE_BASE_0_MD5='3e01614c5c1c562aaf423689a1f51df9' ARCHIVE_BASE_0_SIZE='527248' ARCHIVE_BASE_0_VERSION='1.0-humble150213' UNITY3D_NAME='Tulpa' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Tulpa (Linux)' 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=' 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_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 ## 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-tunic.sh0000755000000000000000000000347414471751340013312 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 berru # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # TUNIC # send your bug reports to contact@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tunic' GAME_NAME='TUNIC' ARCHIVE_BASE_0_NAME='setup_tunic_1.0-t1513-b45_(64bit)_(62831).exe' ARCHIVE_BASE_0_MD5='e10cb15ed3cf26a9491af2fe22bd83c5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gogt1513-b45' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tunic' UNITY3D_NAME='tunic' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Andrew Shouldice/Secret Legend' 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 icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-turnip-boy-commits-tax-evasion.sh0000755000000000000000000000443514471751340020203 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Turnip Boy Commits Tax Evasion # send your bug reports to contact@dotslashplay.it ### script_version=20241218.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='turnip-boy-commits-tax-evasion' GAME_NAME='Turnip Boy Commits Tax Evasion' ARCHIVE_BASE_1_NAME='setup_turnip_boy_commits_tax_evasion_v1.1.3f1_(64bit)_(58989).exe' ARCHIVE_BASE_1_MD5='89752267d5f53df91532cdb925d39ace' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='672316' ARCHIVE_BASE_1_VERSION='1.1.3f1-gog58989' ARCHIVE_BASE_1_URL='https://www.gog.com/game/turnip_boy_commits_tax_evasion' ARCHIVE_BASE_0_NAME='setup_turnip_boy_commits_tax_evasion_v1.1.0f2_(64bit)_(49701).exe' ARCHIVE_BASE_0_MD5='8253f3bec3d84f71f9fdf5e5ec1e5a18' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.1.0f2-gog49701' ARCHIVE_BASE_0_URL='https://www.gog.com/game/turnip_boy_commits_tax_evasion' UNITY3D_NAME='turnip boy commits tax evasion' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Snoozy Kazoo/Turnip Boy Commits Tax Evasion' 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-tzar.sh0000755000000000000000000000613214471751340013142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Tzar # send your bug reports to contact@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-ultima-4.sh0000755000000000000000000000415314471751340013617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ultima 4 # send your bug reports to contact@dotslashplay.it ### script_version=20250115.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ultima-4' GAME_NAME='Ultima IV: Quest of the Avatar' ARCHIVE_BASE_1_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_1_MD5='f4c943b03e576557a962bcd88470509f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='16714' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ultima_4' ARCHIVE_BASE_0_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_0_MD5='2c8adeb4cacfba84b611e9c28ddf12e0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='17589' ARCHIVE_BASE_0_VERSION='1.0-gog28045' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' ultima.com avatar.exe title.exe ultima4.txt *.cga *.con *.dng *.drv *.ega *.egz *.map *.new *.pic *.tlk *.ult' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_FILES=' *.sav' CONTENT_DOC_MAIN_FILES=' manual.pdf readme.rtf' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='ultima.com' APP_MAIN_ICON='app/goggame-1207658962.ico' # 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-undertale.sh0000755000000000000000000000534614471751340014153 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Undertale # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='undertale' GAME_NAME='Undertale' ARCHIVE_BASE_2='undertale_en_1_08_18328.sh' ARCHIVE_BASE_2_MD5='b134d85dd8bf723a74498336894ca723' ARCHIVE_BASE_2_SIZE='160000' ARCHIVE_BASE_2_VERSION='1.08-gog18328' ARCHIVE_BASE_2_URL='https://www.gog.com/game/undertale' ARCHIVE_BASE_1='undertale_en_1_06_15928.sh' ARCHIVE_BASE_1_MD5='54f9275d3def027e9f3f65a61094a662' ARCHIVE_BASE_1_SIZE='160000' ARCHIVE_BASE_1_VERSION='1.06-gog15928' ARCHIVE_BASE_0='gog_undertale_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e740df4e15974ad8c21f45ebe8426fb0' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.001-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' 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=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the binary name if [ -e 'UNDERTALE' ]; then mv 'UNDERTALE' "$(application_exe 'APP_MAIN')" fi ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unepic.sh0000755000000000000000000000606714471751340013454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # unEpic # send your bug reports to contact@dotslashplay.it ### script_version=20231112.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unepic' GAME_NAME='unEpic' ARCHIVE_BASE_HUMBLE_0_NAME='unepic-15005.run' ARCHIVE_BASE_HUMBLE_0_MD5='940824c4de6e48522845f63423e87783' ## This MojoSetup installer does not seem to be based on Makeself, ## so our regular type detection and extraction code do not work. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50.05-humble141208' ARCHIVE_BASE_HUMBLE_0_SIZE='360000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/unepic' ARCHIVE_BASE_GOG_1_NAME='unepic_en_1_51_01_20608.sh' ARCHIVE_BASE_GOG_1_MD5='88d98eb09d235fe3ca00f35ec0a014a3' ARCHIVE_BASE_GOG_1_VERSION='1.51.01-gog20608' ARCHIVE_BASE_GOG_1_SIZE='380000' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/unepic' ARCHIVE_BASE_GOG_0_NAME='gog_unepic_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='341556e144d5d17ae23d2b0805c646a1' ARCHIVE_BASE_GOG_0_SIZE='380000' ARCHIVE_BASE_GOG_0_VERSION='1.50.05-gog2.1.0.4' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN64_FILES=' unepic64' CONTENT_GAME_BIN32_FILES=' unepic32' CONTENT_GAME_DATA_FILES=' data image sound voices omaps dictios_pc unepic.png' APP_MAIN_EXE_BIN64='unepic64' APP_MAIN_EXE_BIN32='unepic32' APP_MAIN_ICON_HUMBLE='unepic.png' APP_MAIN_ICON_GOG='../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 libGL.so.1 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unsung-warriors.sh0000755000000000000000000000502414471751340015346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Unsung Warriors # send your bug reports to contact@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='unsung-warriors-prologue' GAME_NAME='Unsung Warriors Prologue' GAME_ID_PROLOGUE="${GAME_ID}-prologue" GAME_NAME_PROLOGUE="$GAME_NAME Prologue" ARCHIVE_BASE_PROLOGUE_0_NAME='unsung-warriors-prologue-linux.zip' ARCHIVE_BASE_PROLOGUE_0_MD5='09fd165d947d2eb02bc51a04b06e415a' ARCHIVE_BASE_PROLOGUE_0_SIZE='306303' ARCHIVE_BASE_PROLOGUE_0_VERSION='1.0.5.1-itch1' ARCHIVE_BASE_PROLOGUE_0_URL='https://unsungwarriors.itch.io/unsung-warriors-prologue' UNITY3D_NAME_PROLOGUE='UnsungWarriorsPrologue' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check is the Steam libraey is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES='readme.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID_PROLOGUE="${GAME_ID_PROLOGUE}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS_PROLOGUE="$PKG_DATA_ID_PROLOGUE" PKG_BIN64_DEPS_PROLOGUE="$PKG_BIN_DEPS_PROLOGUE" PKG_BIN32_DEPS_PROLOGUE="$PKG_BIN_DEPS_PROLOGUE" 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" # 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-unwording.sh0000755000000000000000000000370514471751340014201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Unwording # send your bug reports to contact@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unwording' GAME_NAME='Unwording' ARCHIVE_BASE_0_NAME='unwording_1_02_64447.sh' ARCHIVE_BASE_0_MD5='398d9c4d58b90b2632410d60704b9202' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.02-gog64447' ARCHIVE_BASE_0_URL='https://www.gog.com/game/unwording' UNITY3D_NAME='Unwording' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game comes with a generic Unity3D icon, ## so we use the GOG-provided icon instead. APP_MAIN_ICON='../support/icon.png' 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 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-urtuk-the-desolation.sh0000755000000000000000000000576114471751340016260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Urtuk: The Desolation # send your bug reports to contact@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='urtuk-the-desolation' GAME_NAME='Urtuk: The Desolation' ARCHIVE_BASE_0_NAME='urtuk_the_desolation_1_0_0_91b_53003.sh' ARCHIVE_BASE_0_MD5='4fddaaa42c70b75258a78d4a5b103473' ARCHIVE_BASE_0_SIZE='740000' ARCHIVE_BASE_0_VERSION='1.0.0.91b-gog53003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/urtuk_the_desolation' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=' desktop-1.0.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' jre config.json urtuk' USER_PERSISTENT_FILES=' *.bin *.bin.backup' APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='desktop-1.0.jar' APP_MAIN_EXE_BIN_SHIPPED='urtuk' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN_SYSTEM PKG_BIN_SHIPPED PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXrender.so.1 libXtst.so.6' PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' # 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_SYSTEM' launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_DATA' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_DATA' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-us-lovely-corpses.sh0000755000000000000000000000365214471751340015601 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Us Lovely Corpses # send your bug reports to contact@dotslashplay.it ### script_version=20240622.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='us-lovely-corpses' GAME_NAME='Us Lovely Corpses' ARCHIVE_BASE_0_NAME='UsLovelyCorpses-1.0-linux.tar.bz2' ARCHIVE_BASE_0_MD5='2df30ef88e4cc99662510f7e8b9efd3d' ARCHIVE_BASE_0_SIZE='136948' ARCHIVE_BASE_0_VERSION='1.0-itch.2018.03.08' ARCHIVE_BASE_0_URL='https://dmarielicea.itch.io/uslovelycorpses' CONTENT_PATH_DEFAULT='UsLovelyCorpses-1.0-linux/game' CONTENT_GAME_MAIN_FILES=' cache gui images script_version.txt *.ogg *.rpy *.rpyc' CONTENT_DOC_MAIN_PATH='UsLovelyCorpses-1.0-linux' CONTENT_DOC_MAIN_FILES=' README.html' APP_MAIN_TYPE='renpy' ## Ensure easy upgrade from packages generated with pre-20240622.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} us-lovely-corpses us-lovely-corpses-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" # Use the default Ren'Py icon, as none is provided desktop_field_icon() { printf 'renpy'; } # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-utopias.sh0000755000000000000000000000333214471751340013645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Utopias # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='utopias' GAME_NAME='Utopias' ARCHIVE_BASE_0_NAME='utopias-windows.zip' ARCHIVE_BASE_0_MD5='18094a207f2ab6f9edf31b8279ff7ec3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://aaa.itch.io/utopias' UNITY3D_NAME='UTOPIAS' CONTENT_PATH_DEFAULT='UTOPIAS/_contents' USER_PERSISTENT_FILES=' data/save.txt' 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-vagrus-the-riven-realms.sh0000755000000000000000000000604514471751340016654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Vagrus - The Riven Realms # send your bug reports to contact@dotslashplay.it ### script_version=20230130.1 GAME_ID='vagrus-the-riven-realms-prologue' GAME_NAME='Vagrus - The Riven Realms: Prologue' UNITY3D_NAME='Vagrus' ARCHIVE_BASE_GOG_0='vagrus_the_riven_realms_prologue_1_1150613h_56533.sh' ARCHIVE_BASE_GOG_0_MD5='b1c3ec004b8d49d9d40a7f54b12fea21' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='5500000' ARCHIVE_BASE_GOG_0_VERSION='1.1.15-gog56533' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vagrus_the_riven_realms_prologue' ARCHIVE_BASE_ITCH_0='vagrus-demolinux.zip' ARCHIVE_BASE_ITCH_0_MD5='4bddf380ed1355b455802cfd615d9ec7' ARCHIVE_BASE_ITCH_0_SIZE='3800000' ARCHIVE_BASE_ITCH_0_VERSION='0.5.31-itch.2021.05.12' ARCHIVE_BASE_ITCH_0_URL='https://lostpilgrims.itch.io/vagrus' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_PATH_ITCH="${CONTENT_PATH_DEFAULT_ITCH}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" 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 libz.so.1' # Load common functions target_version='2.21' 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 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-valhalla-hills.sh0000755000000000000000000000413114471751340015054 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 contact@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' 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' 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 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' # 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-vambrace-cold-soul.sh0000755000000000000000000000375214471751340015646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vambrace: Cold Soul # send your bug reports to contact@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='vambrace-cold-soul' GAME_NAME='Vambrace: Cold Soul' ARCHIVE_BASE_0_NAME='vambrace_cold_soul_1_10_b_37074.sh' ARCHIVE_BASE_0_MD5='91f0947bb96d6d5a0479d32ccc2d2770' ARCHIVE_BASE_0_SIZE='4998992' ARCHIVE_BASE_0_VERSION='1.10.b-gog37074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vambrace_cold_soul' UNITY3D_NAME='VambraceColdSoul' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' 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 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" # 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-vampire-the-masquerade-redemption.sh0000755000000000000000000000670014471751340020675 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Redemption # send your bug reports to contact@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='vampire-the-masquerade-redemption' GAME_NAME='Vampire: The Masquerade - Redemption' ARCHIVE_BASE_0_NAME='setup_vampire_the_masquerade_redemption_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='96c19b0ce487e53dd8fe24ef963d31fc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vampire_the_masquerade_redemption' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.inf *.isu extras/cs miles' CONTENT_GAME_DATA_FILES=' *.dat *.nob *.pub *.zip vampireankh.ico chronicles extras sounds video' CONTENT_DOC_DATA_FILES=' *.pdf *.rtf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='vampire.exe' APP_MAIN_ICON='vampireankh.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" ## TODO: The game can mess up with the display gamma setting, we should restore the previous value after exiting it. # 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" # Set required registry keys # shellcheck disable=SC1003 installdir='C:\\'"$(game_id)" # shellcheck disable=SC1003 installdirexe='C:\\'"$(game_id)"'\\vampire.exe' registry_dump_init_file='registry-dumps/init.reg' ## TODO: The CD key should be extracted from a file provided with the game installer, ## instead of hardcoded in this script. registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Activision\Vampire: The Masquerade - Redemption\v1.0] "CDDRIVE"="c:" "INSTALLDIR"="'"${installdir}"'" "INSTALLDIREXE"="'"${installdirexe}"'" "INSTALLTYPE"=dword:00000002 "Version"="0.1" [HKEY_LOCAL_MACHINE\Software\WON\CDKeys] "Vampire"=hex:4e,07,4a,bf,8e,4d,c1,71,9c,de,2b,b9,91,2e,a3,e9' CONTENT_GAME_BIN_FILES="$(content_files 'GAME_BIN') $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv" check_deps # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | \ iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-van-helsing.sh0000755000000000000000000001653214471751340014402 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Incredible Adventures of Van Helsing: Final Cut # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='van-helsing-final-cut' GAME_NAME='The Incredible Adventures of Van Helsing: Final Cut' ARCHIVE_BASE_0_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988).exe' ARCHIVE_BASE_0_MD5='11823fff68df72308f3f8ba8f9dfa820' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-1.bin' ARCHIVE_BASE_0_PART1_MD5='07fcaf654ce6cfb9026d1e6e40b06bf3' ARCHIVE_BASE_0_PART2_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-2.bin' ARCHIVE_BASE_0_PART2_MD5='de5281e71e9d68bb196da32c09048ec9' ARCHIVE_BASE_0_PART3_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-3.bin' ARCHIVE_BASE_0_PART3_MD5='721981718e036fb2fb4e848543241be7' ARCHIVE_BASE_0_PART4_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-4.bin' ARCHIVE_BASE_0_PART4_MD5='dc7981e674f6400d1919d56b735854fd' ARCHIVE_BASE_0_PART5_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-5.bin' ARCHIVE_BASE_0_PART5_MD5='0d9cec82a419c8abb5a7a414817e1446' ARCHIVE_BASE_0_SIZE='35870060' ARCHIVE_BASE_0_VERSION='1.1.0b-gog23988' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_incredible_adventures_of_van_helsing_final_cut' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' physx3common_x64.dll physx3cooking_x64.dll physx3_x64.dll vanhelsing_x64.exe' ## TODO: Check if the Galaxy libraries are required. CONTENT_GAME0_BIN_FILES=' galaxy64.dll galaxypeer64.dll' ## English voices should always be included, as there is no alternative localized voices. CONTENT_GAME_L10N_COMMON_FILES=' sounds/languages/eng' CONTENT_GAME_L10N_EN_FILES=' strings/eng ui/loadingscreens/eng videos/eng' CONTENT_GAME_L10N_FR_FILES=' ui/loadingscreens/fr strings/french videos/fr' CONTENT_GAME_DATA_TERRAINS_1_FILES=' terrains/barrikados terrains/belvaros terrains/bossc2 terrains/cave terrains/city1* terrains/clockwork_keep terrains/csatorna_* terrains/dark_carnival terrains/dr_csont terrains/driad_boss_arena terrains/final_boss terrains/floating_monastery terrains/gasmachine terrains/gergo_kezdoteszt terrains/giantwoods terrains/gorge_of_eternal_peril terrains/gyarnegyed terrains/haunted_forest_* terrains/hf_arena' CONTENT_GAME_DATA_TERRAINS_2_FILES=' terrains/ink* terrains/kapubirtok terrains/kisbarlang terrains/kohok* terrains/kristalyos_ink terrains/kutatolabor terrains/lair_01_03 terrains/memorial_perk terrains/nagyerdo terrains/nightmare_hollow_ring*' CONTENT_GAME_DATA_TERRAINS_3_FILES=' terrains/ostrom2 terrains/pokol* terrains/poksziklak terrains/pvp_karacsony terrains/steamhall terrains/szerpentin terrains/tetok2 terrains/tetok_final terrains/touchdown terrains/tutorial terrains/vh* terrains/viztisztito* terrains/wolf_den terrains/wormcave' CONTENT_GAME_DATA_FILES=' cfg cgshaders commontextures effects installutils models sounds textures ui remote_config_cache_production_worldwide.json' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' cfg/skills/monster/__gargoyle_zuhanas_effect.cfg cfg/soldier/02_normal_ranged/atd_inkmachine_generalis.cfg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/NeocoreGames/Van Helsing Final Cut' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\NeoCore Games\Van Helsing Final Cut' APP_MAIN_EXE='vanhelsing_x64.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_COMMON PKG_L10N_EN PKG_L10N_FR PKG_DATA_TERRAINS_1 PKG_DATA_TERRAINS_2 PKG_DATA_TERRAINS_3 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TERRAINS_ID="${PKG_DATA_ID}-terrains" PKG_DATA_TERRAINS_1_ID="${PKG_DATA_TERRAINS_ID}-1" PKG_DATA_TERRAINS_2_ID="${PKG_DATA_TERRAINS_ID}-2" PKG_DATA_TERRAINS_3_ID="${PKG_DATA_TERRAINS_ID}-3" PKG_DATA_TERRAINS_DESCRIPTION="$PKG_DATA_DESCRIPTION - terrains" PKG_DATA_TERRAINS_1_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 1" PKG_DATA_TERRAINS_2_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 2" PKG_DATA_TERRAINS_3_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 3" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TERRAINS_1_ID $PKG_DATA_TERRAINS_2_ID $PKG_DATA_TERRAINS_3_ID" PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_COMMON_ID="${PKG_L10N_ID}-common" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_COMMON_DESCRIPTION="$PKG_L10N_DESCRIPTION - common files" PKG_L10N_EN_DESCRIPTION="$PKG_L10N_DESCRIPTION - English" PKG_L10N_FR_DESCRIPTION="$PKG_L10N_DESCRIPTION - French" PKG_L10N_DEPS="$PKG_L10N_COMMON_ID" PKG_L10N_EN_DEPS="$PKG_L10N_DEPS" PKG_L10N_FR_DEPS="$PKG_L10N_DEPS" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' # 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 the localizations configuration ## English localization config_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/strings/languages.xml" cat > "$config_en" << EOF English eng EOF ## French localization config_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/strings/languages.xml" ## TODO: Check if including the English locale is required for the English voices to be used. cat > "$config_fr" << EOF French English FR;eng EOF # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vaporum.sh0000755000000000000000000000421114471751340013647 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vaporum # send your bug reports to contact@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='vaporum' GAME_NAME='Vaporum' ARCHIVE_BASE_0='vaporum_patch_14_27515.sh' ARCHIVE_BASE_0_MD5='2c65dd89fbeec16740e1d57263606ffa' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.14-gog27515' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vaporum' UNITY3D_NAME='VaporumGame' UNITY3D_PLUGINS=' libMouseLib.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data Localization" CONTENT_DOC_DATA_FILES=' BuildInfo.txt PatchNotes.txt' USER_PERSISTENT_DIRECTORIES=' Saves Settings' APP_MAIN_EXE="${UNITY3D_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" 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" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-volgarr-the-viking.sh0000755000000000000000000000457314471751340015710 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Volgarr the Viking # send your bug reports to contact@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='volgarr-the-viking' GAME_NAME='Volgarr the Viking' ARCHIVE_BASE_GOG_0_NAME='gog_volgarr_the_viking_2.1.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='8593287f13c3104aa45b9c91264b4260' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.36c-gog2.1.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/volgarr_the_viking' ARCHIVE_BASE_HUMBLE_0_NAME='VolgarrTheViking_v1.36c_Linux32.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='c3652629edb019838d8e1c7873f0716b' ARCHIVE_BASE_HUMBLE_0_SIZE='180000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.36c-humble' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/volgarr-the-viking' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Volgarr' CONTENT_GAME_BIN_FILES=' Volgarr' CONTENT_GAME_DATA_FILES=' Data.pk icon.png' CONTENT_GAME_DOC_FILES=' Readme.txt' APP_MAIN_EXE='Volgarr' APP_MAIN_ICON='icon.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" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.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" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vvvvvv.sh0000755000000000000000000000643614471751340013554 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # VVVVVV # send your bug reports to contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='vvvvvv' GAME_NAME='VVVVVV' ARCHIVE_BASE_HUMBLE_0_NAME='vvvvvv-10202016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='2a67882173f36c685f532e3cce0607af' ## This MojoSetup installer is not using a Makeself wrapper. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.2-humble.2016.10.20' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/vvvvvv' ARCHIVE_BASE_GOG_0_NAME='vvvvvv_2_3_4_49985.sh' ARCHIVE_BASE_GOG_0_MD5='76177a8ae3dede7c5cac1a90a00c0ca7' ARCHIVE_BASE_GOG_0_SIZE='67000' ARCHIVE_BASE_GOG_0_VERSION='2.3.4-gog49985' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vvvvvv' ARCHIVE_BASE_GOG_MULTIARCH_0_NAME='gog_vvvvvv_2.0.0.2.sh' ARCHIVE_BASE_GOG_MULTIARCH_0_MD5='f25b5dd11ea1778d17d4b2e0b54c7eed' ARCHIVE_BASE_GOG_MULTIARCH_0_SIZE='74000' ARCHIVE_BASE_GOG_MULTIARCH_0_VERSION='2.2-gog2.0.0.2' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' VVVVVV' CONTENT_GAME_BIN64_FILES=' x86_64/vvvvvv.x86_64' CONTENT_GAME_BIN32_FILES=' x86/vvvvvv.x86' CONTENT_GAME_DATA_FILES=' data.zip VVVVVV.png' CONTENT_DOC_DATA_FILES=' Linux.README' APP_MAIN_EXE='VVVVVV' APP_MAIN_EXE_BIN64='x86_64/vvvvvv.x86_64' APP_MAIN_EXE_BIN32='x86/vvvvvv.x86' APP_MAIN_ICON='VVVVVV.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_HUMBLE=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_GOG_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' 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 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-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 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_GOG_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wandersong.sh0000755000000000000000000000354614471751340014337 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Wandersong # send your bug reports to contact@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='wandersong' GAME_NAME='Wandersong' ARCHIVE_BASE_0_NAME='wandersong-drmfree.zip' ARCHIVE_BASE_0_MD5='27851a4ba540505f11e122f4c9a686b5' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://banov.itch.io/wandersong' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' GMFile.dll GMIni.dll wandersong.exe' CONTENT_GAME_DATA_FILES=' audioData levels palettes *.dat *.ogg' CONTENT_DOC_DATA_FILES=' ws_credits' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/wandersong' APP_MAIN_EXE='wandersong.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" # 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-warhammer-40k-dakka-squadron.sh0000755000000000000000000000531014471751340017441 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40,000: Dakka Squadron # send your bug reports to contact@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='warhammer-40k-dakka-squadron' GAME_NAME='Warhammer 40,000: Dakka Squadron' ARCHIVE_BASE_0_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795).exe' ARCHIVE_BASE_0_MD5='746ce7f112d089a2aca8dd6d4458dd26' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f32a0390b27c406063fcf7ad3bff4655' ARCHIVE_BASE_0_PART2_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9c978a8867a9747039bcfceb462d0a2e' ARCHIVE_BASE_0_PART3_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ffb1a9b6e5343e6cb8955d6c8814ef97' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.154277-gog46795' ARCHIVE_BASE_0_URL='https://www.gog.com/game/warhammer_40000_dakka_squadron' UNREALENGINE4_NAME='dakkagame' CONTENT_PATH_DEFAULT='.' ## Work around a crash related to shaders compilation ## Without these native libraries, the game crashes with the following error: ## SlateD3DShaders::CompileShader() - D3DCompilerFunc Result: DXGI_ERROR_80004005 WINE_WINETRICKS_VERBS='d3dcompiler_43 d3dcompiler_47' APP_MAIN_EXE='dakkagame/binaries/win64/dakkagame-win64-shipping.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123 --language=1033' 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-warhammer-40k-mechanicus.sh0000755000000000000000000000546014471751340016661 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40k: Mechanicus # send your bug reports to contact@dotslashplay.it ### script_version=20230415.1 GAME_ID='warhammer-40k-mechanicus' GAME_NAME='Warhammer 40,000: Mechanicus' ARCHIVE_BASE_1='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='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_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_Data/sharedassets*" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.x86_64" PACKAGES_LIST='PKG_BIN PKG_DATA_SHAREDASSETS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_SHAREDASSETS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" 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 target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-warsow.sh0000755000000000000000000000553314471751340013510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Warsow # send your bug reports to contact@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='warsow' GAME_NAME='War§ow' ## This installer is no longer available from gog.com. ARCHIVE_BASE_0_NAME='gog_warsow_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='028efe7a5f4dfd8851c2146431c7ca4a' ARCHIVE_BASE_0_SIZE='479771' ARCHIVE_BASE_0_VERSION='2.1-gog2.1.0.3' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/libs" CONTENT_LIBS_BIN64_PATH="$CONTENT_LIBS_BIN_PATH" CONTENT_LIBS_BIN64_FILES=' libangelwrap_x86_64.so libcin_x86_64.so libftlib_x86_64.so libirc_x86_64.so libref_gl_x86_64.so libsnd_openal_x86_64.so libsnd_qf_x86_64.so libui_x86_64.so' CONTENT_LIBS_BIN32_PATH="$CONTENT_LIBS_BIN_PATH" CONTENT_LIBS_BIN32_FILES=' libangelwrap_i386.so libcin_i386.so libftlib_i386.so libirc_i386.so libref_gl_i386.so libsnd_openal_i386.so libsnd_qf_i386.so libui_i386.so' CONTENT_GAME_BIN64_FILES=' warsow.x86_64 wsw_server.x86_64 wswtv_server.x86_64' CONTENT_GAME_BIN32_FILES=' warsow.i386 wsw_server.i386 wswtv_server.i386' CONTENT_GAME_DATA_FILES=' basewsw' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE_BIN64='warsow.x86_64' APP_MAIN_EXE_BIN32='warsow.i386' 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 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-wayward-manor.sh0000755000000000000000000000412014471751340014745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Wayward Manor # send your bug reports to contact@dotslashplay.it ### script_version=20240516.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='wayward-manor' GAME_NAME='Wayward Manor' ARCHIVE_BASE_0_NAME='WaywardManorWin78Version1.01.zip' ARCHIVE_BASE_0_MD5='1a832bc0fbf67f5c4675f47988ec2243' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.01-humble.2014.07.24' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/wayward-manor' UNITY3D_NAME='waywardmanor' CONTENT_PATH_DEFAULT='app' CONTENT_GAME0_BIN_FILES=' msvcr100d.dll' WINE_REGEDIT_PERSISTENT_KEYS='HKEY_CURRENT_USER\Software\TheOddGentlemen\Wayward Manor' WINE_VIRTUAL_DESKTOP='auto' 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_COMMANDS=' dos2unix sed' # The inner archive is based on InnoSetup SCRIPT_DEPS='innoextract' # 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 ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Wayward Manor Win 7 & 8 Version 1.01/WMSetup.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm "$(archive_path 'ARCHIVE_INNER')" # 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-we-the-revolution.sh0000755000000000000000000000610714471751340015561 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 contact@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' 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_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 ## Include the Steam libraries explicitly, as UNITY3D_PLUGINS can not handle a mix of architectures in a single path ## TODO: Check if the inclusion of the Steam libraries is required install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api64.so" \ "$(package_path 'PKG_BIN64')$(path_libraries)/libsteam_api64.so" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api.so" \ "$(package_path 'PKG_BIN32')$(path_libraries)/libsteam_api.so" rm \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api64.so" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api.so" 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-what-happened-to-survey-team-4.sh0000755000000000000000000000410714471751340017747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Happened to Survey Team 4? # send your bug reports to contact@dotslashplay.it ### script_version=20230805.1 GAME_ID='what-happened-to-survey-team-4' GAME_NAME='What Happened to Survey Team 4?' ARCHIVE_BASE_0='what-happened-to-survey-team-4-windows.zip' ARCHIVE_BASE_0_MD5='e1a85df1abe704c1d0e18324e3a73ae0' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://iaintheindie.itch.io/what-happened-to-survey-team-4' UNITY3D_NAME='What happened to Survey Team 4' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_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 target_version='2.24' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-what-remains-of-edith-finch.sh0000755000000000000000000000377214471751340017352 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Remains of Edith Finch # send your bug reports to contact@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='what-remains-of-edith-finch' GAME_NAME='What Remains of Edith Finch' ARCHIVE_BASE_0_NAME='setup_what_remains_of_edith_finch_1.0.0.0_(16929).exe' ARCHIVE_BASE_0_MD5='ec155243055cbd820f8f9056eea5eb10' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_what_remains_of_edith_finch_1.0.0.0_(16929)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1a06506b6899cb72d44be1b8d6f7f44' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog16929' ARCHIVE_BASE_0_URL='https://www.gog.com/game/what_remains_of_edith_finch' UNREALENGINE4_NAME='finchgame' CONTENT_PATH_DEFAULT='app' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' 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-while-true-learn.sh0000755000000000000000000000620214471751340015344 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # while True: learn() # send your bug reports to contact@dotslashplay.it ### script_version=20230405.1 GAME_ID='while-true-learn' GAME_NAME='while True: learn()' ARCHIVE_BASE_0='while_true_learn_1_2_95_5144b_46524.sh' ARCHIVE_BASE_0_MD5='0818a14ad1548264ca3540321b133231' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.2.95-gog46524' ARCHIVE_BASE_0_URL='https://www.gog.com/game/while_true_learn' UNITY3D_NAME='wtl' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource ${UNITY3D_NAME}_Data/*.resS" USER_PERSISTENT_DIRECTORIES=' Saves' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 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" # Load common functions target_version='2.22' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-windosill.sh0000755000000000000000000000372714471751340014175 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Windosill # send your bug reports to contact@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='windosill' GAME_NAME='Windosill' ARCHIVE_BASE_0_NAME='Windosill' ARCHIVE_BASE_0_MD5='853ab5f3ea6b2691718466f0479b867f' ARCHIVE_BASE_0_SIZE='19000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vectorpark.itch.io/windosill' APP_MAIN_EXE='Windosill' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libplc4.so libplds4.so libpthread.so.0 librt.so.1 libsmime3.so libssl3.so libX11.so.6 libXcursor.so.1 libXext.so.6 libXrender.so.1 libXt.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" # Include game data install -D --mode=755 \ --target-directory="$(package_path 'PKG_MAIN')$(path_game_data)" \ "$(archive_path "$(current_archive)")" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-windward.sh0000755000000000000000000000603314471751340014001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Windward # send your bug reports to contact@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='windward' GAME_NAME='Windward' ## This game used to be sold by GOG, ## but is no longer available. ARCHIVE_BASE_GOG_2='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='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='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 from Humble Store, ## they only sell Steam keys now. ARCHIVE_BASE_HUMBLE_1='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='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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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 icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-1.sh0000755000000000000000000000471414471751340015233 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Wing Commander 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='wing-commander-1' GAME_NAME='Wing Commander' ARCHIVE_BASE_1_NAME='setup_wing_commander_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='850542ba9a543378a4894156b41ce511' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='45000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_BASE_0='setup_wing_commander_2.1.0.18.exe' ARCHIVE_BASE_0_MD5='a4a3a355489e66bcecd34d1d9041ebb5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='49000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.18' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc.exe sm2.exe gamedat *.cfg' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_FILES=' gamedat' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' gamedat' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='wc.exe' APP_MAIN_ICON='app/goggame-1207662643.ico' APP_MAIN_DOSBOX_PRERUN='config -set cpu cycles=fixed 4000 loadfix -1' APP_SM2_ID="${GAME_ID}-the-secret-missions-2" APP_SM2_NAME="$GAME_NAME - The Secret Missions 2 - Crusade" APP_SM2_EXE='sm2.exe' APP_SM2_ICON='app/goggame-1207662643.ico' APP_SM2_DOSBOX_PRERUN='config -set cpu cycles=fixed 4000 loadfix -1' ## Easier upgrade from packages generated with pre-20190224.1 scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} wing-commander" # 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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-2.sh0000755000000000000000000000612314471751340015230 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Wing Commander 2 # send your bug reports to contact@dotslashplay.it ### script_version=20230103.1 GAME_ID='wing-commander-2' GAME_NAME='Wing Commander Ⅱ' ARCHIVE_BASE_1='setup_wing_commander_ii_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='f5288f26451f7c1c860a269a8198f554' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='46000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_BASE_0='setup_wing_commander2_2.1.0.18.exe' ARCHIVE_BASE_0_MD5='f94a7eb75e4ed454108d13189d003e9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='49000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.18' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc2.exe so1.exe so2.exe gamedat *.cfg' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='wc2.exe' APP_MAIN_ICON='app/goggame-1207662653.ico' APP_MAIN_ICON_0='goggame-1207662653.ico' APP_SO1_ID="${GAME_ID}-special-operations-1" APP_SO1_NAME="$GAME_NAME - Special Operations 1" APP_SO1_EXE='so1.exe' APP_SO1_ICON='app/goggame-1207662653.ico' APP_SO1_ICON_0='goggame-1207662653.ico' APP_SO2_ID="${GAME_ID}-special-operations-2" APP_SO2_NAME="$GAME_NAME - Special Operations 2" APP_SO2_EXE='so2.exe' APP_SO2_ICON='app/goggame-1207662653.ico' APP_SO2_ICON_0='goggame-1207662653.ico' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' gamedat' PKG_MAIN_DEPS='dosbox' # Work around performance issues APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 8000 loadfix -32' APP_SO1_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" APP_SO2_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" # Work around sound issues that can lock the game during the first intro speech APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around sound issues that can lock the game during the first intro speech export DOSBOX_SBLASTER_IRQ=5' APP_SO1_PRERUN="$APP_MAIN_PRERUN" APP_SO2_PRERUN="$APP_MAIN_PRERUN" # Load common functions target_version='2.20' 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 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' 'APP_SO1' 'APP_SO2' # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-3.sh0000755000000000000000000000467014471751340015236 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Wing Commander 3 # send your bug reports to contact@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='wing-commander-3' GAME_NAME='Wing Commander Ⅲ' ARCHIVE_BASE_1_NAME='setup_wing_commander_iii_1.4_(28045).exe' ARCHIVE_BASE_1_MD5='9418288d818315fbbede459bef76b82c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_wing_commander_iii_1.4_(28045)-1.bin' ARCHIVE_BASE_1_PART1_MD5='1caaf5ba29075e67a00b8009bc53e463' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_VERSION='1.4-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_3_heart_of_the_tiger' ARCHIVE_BASE_0_NAME='setup_wing_commander3_2.1.0.7.exe' ARCHIVE_BASE_0_MD5='c9c9b539e6e1f0b0509b6f777878d91e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc3 data.dat objects.tre' CONTENT_DOC_MAIN_FILES=' *.pdf' GAME_IMAGE='data.dat' USER_PERSISTENT_DIRECTORIES=' wc3' USER_PERSISTENT_FILES=' *.WSG' APP_MAIN_EXE='wc3.exe' APP_MAIN_ICON='app/goggame-1207658966.ico' APP_MAIN_ICON_0='goggame-1207658966.ico' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' ## Run the game from the mounted CD-ROM image. APP_MAIN_DOSBOX_PRERUN='d:' # 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 content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wingspan.sh0000755000000000000000000000475314471751340014017 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Wingspan # send your bug reports to contact@dotslashplay.it ### script_version=20240706.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='wingspan' GAME_NAME='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_2_URL='https://www.gog.com/game/wingspan' 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_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-witch-thief.sh0000755000000000000000000000331114471751340014371 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Witch Thief # send your bug reports to contact@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='witch-thief' GAME_NAME='Witch Thief' ARCHIVE_BASE_0_NAME='witch-thief-win.zip' ARCHIVE_BASE_0_MD5='e91763d8cca8574750a5220954536c73' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://cardboardkeep.itch.io/witch-thief' UNITY3D_NAME='WitchThief' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/CardboardKeep/WitchThief' 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-witchway.sh0000755000000000000000000000324014471751340014016 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Witchway # send your bug reports to contact@dotslashplay.it ### script_version=20240515.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='witchway' GAME_NAME='WitchWay' ARCHIVE_BASE_0_NAME='WitchWay 1-12 WIN .zip' ARCHIVE_BASE_0_MD5='70bc22f82227be0008332b5f5ce10585' ARCHIVE_BASE_0_SIZE='25000' ARCHIVE_BASE_0_VERSION='1.12-itch' ARCHIVE_BASE_0_URL='https://gleeson.itch.io/witchway' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' WitchWay.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/WitchWay' ## Work around a crash related to shaders compilation. WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='WitchWay.exe' PKG_MAIN_ARCH='32' # 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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-world-to-the-west.sh0000755000000000000000000000672114471751340015473 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # World to the West # send your bug reports to contact@dotslashplay.it ### script_version=20221210.2 GAME_ID='world-to-the-west' GAME_NAME='World to the West' UNITY3D_NAME='WorldToTheWest' ARCHIVE_BASE_1='world_to_the_west_en_1_3_0_23314.sh' ARCHIVE_BASE_1_MD5='ac200556d642b1529526375b65642574' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2100000' ARCHIVE_BASE_1_VERSION='1.3.0-gog23314' ARCHIVE_BASE_1_URL='https://www.gog.com/game/world_to_the_west' ARCHIVE_BASE_0='gog_world_to_the_west_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='dd393d192c7569cc19edb0e3fff7851a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.1-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 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_0=' ld-linux-x86-64.so.2 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_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES_0="$PKG_BIN32_DEPENDENCIES_LIBRARIES_0" # Load common functions target_version='2.19' 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 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the use of a common Unity3D name unity3d_name=$(unity3d_name) alternative_name='WTTW_GOG_1_3_0_Linux' for name_suffix in \ '.x86' \ '.x86_64' \ '_Data' do if [ -e "${alternative_name}${name_suffix}" ]; then mv "${alternative_name}${name_suffix}" "${unity3d_name}${name_suffix}" fi done ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-worms-1.sh0000755000000000000000000000534614471751340013475 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec set -o errexit ### # Worms 1 # send your bug reports to contact@dotslashplay.it ### script_version=20240720.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='worms-1' GAME_NAME='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_1_URL='https://www.gog.com/game/worms_united' 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" # 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 application_exe_path application_exe=$(application_exe "$application" | sed 's#\\#/#') application_exe_path=$(application_exe_path "$application_exe") test -f "$application_exe_path" } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-x-morph-defense.sh0000755000000000000000000000457214471751340015171 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 contact@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' 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' ## Run the game binary from its parent directory APP_MAIN_PRERUN=' # Run the game binary from its parent directory cd "$(dirname "$APP_EXE")" APP_EXE=$(basename "$APP_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" # 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-xenonauts.sh0000755000000000000000000000653214471751340014212 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Xenonauts # send your bug reports to contact@dotslashplay.it ### script_version=20240224.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' 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_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' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/xenonauts' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data/noarch' CONTENT_GAME_BIN_PATH_HUMBLE='data/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_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_GAME_BIN_PATH_HUMBLE}/lib" CONTENT_LIBS_BIN_FILES=' libsteam_api.so' CONTENT_GAME_DATA_FILES=' assets extras Icon.*' CONTENT_DOC_DATA_FILES=' README.linux *.pdf' APP_MAIN_EXE='Xenonauts.bin.x86' APP_MAIN_ICON='Icon.png' ## Skip the launcher, as it can cause a crash related to fonts rendering on some setups. APP_MAIN_OPTIONS="${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="${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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" 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' # 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 set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yokus-island-express.sh0000755000000000000000000000437614471751340016303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Yoku's Island Express # send your bug reports to contact@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='yokus-island-express' GAME_NAME='Yoku’s Island Express' ARCHIVE_BASE_1_NAME='setup_gog_yoku_latest_drm_free_210927_(50319).exe' ARCHIVE_BASE_1_MD5='5a1241ffdda722df9c7c4c8fc1b661fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='2021.09.27-gog50319' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yokus_island_express' ARCHIVE_BASE_0_NAME='setup_yokus_island_express_aug_24_2018_205911_(24871).exe' ARCHIVE_BASE_0_MD5='49d3a80f0a039e7b7a4d5fcd4860e445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='2018.08.24-gog24871' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bugsplat64.dll bugsplatrc64.dll d3dcompiler_47.dll yoku.exe bssndrpt64.exe' CONTENT_GAME_DATA_FILES=' data processed' CONTENT_DOC_DATA_FILES=' licenses' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Villa Gorilla/Yoku's Island Express" WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='yoku.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-yono-and-the-celestial-elephants.sh0000755000000000000000000000433714471751340020415 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Yono and the Celestial Elephants # send your bug reports to contact@dotslashplay.it ### script_version=20240517.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='yono-and-the-celestial-elephants' GAME_NAME='Yono and the Celestial Elephants' ARCHIVE_BASE_1_NAME='setup_yono_and_the_celestial_elephants_01.01_cn_update_(40286).exe' ARCHIVE_BASE_1_MD5='1503a970416ab3cd2e68db7f577f9701' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='01.01-gog40286' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yono_and_the_celestial_elephants' ARCHIVE_BASE_0_NAME='setup_yono_and_the_celestial_elephants_01.01_(15299).exe' ARCHIVE_BASE_0_MD5='c16fddaa24eded544fb9ee42d5b4e2a2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='01.01-gog15299' UNITY3D_NAME='yono and the celestial elephants' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Neckbolt/Yono and the Celestial Elephants' ## Improve controller support. ## Tested only with an XBox 360 controller. WINE_WINETRICKS_VERBS='xinput' 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-yooka-laylee.sh0000755000000000000000000000513714471751340014561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yooka Laylee # send your bug reports to contact@dotslashplay.it ### script_version=20230419.1 GAME_ID='yooka-laylee' GAME_NAME='Yooka Laylee' ARCHIVE_BASE_0='gog_yooka_laylee_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='151e4f41960d50047d41bb3c010da187' ARCHIVE_BASE_0_VERSION='1.08-gog2.1.0.2' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/yookalaylee' UNITY3D_NAME='YookaLaylee' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 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_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ys-1.sh0000755000000000000000000000432114471751340012751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ys 1 # send your bug reports to contact@dotslashplay.it ### script_version=20230428.3 GAME_ID='ys-1' GAME_NAME='Ys Ⅰ: Ancient Ys Vanished Omen' ARCHIVE_BASE_0='setup_ys_1_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='ff6c2e8ab34ea15226521fb8b6c8c23b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ys_i_ii_chronicles' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' config.exe ys1plus.exe' CONTENT_GAME_DATA_FILES=' release' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/FALCOM/ys12c' APP_MAIN_EXE='ys1plus.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_EXE='config.exe' APP_CONFIG_CAT='Settings' 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=' video/mpeg, systemstream=(boolean)true, mpegversion=(int)1' # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yume-nikki.sh0000755000000000000000000000615614471751340014252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yume Nikki # send your bug reports to contact@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='yume-nikki' GAME_NAME='Yume Nikki' ## This archive is no longer available for sale from Playism store, ## as they are now only a Steam keys reseller. ARCHIVE_BASE_0_NAME='YumeNikki_EN.zip' ARCHIVE_BASE_0_MD5='fd1e659f777ad81bd61ebd6df573140e' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='0.10a-playism' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' RPG_RT.* Harmony.dll' CONTENT_GAME_DATA_FILES=' Map*.lmu Backdrop Battle Battle2 BattleCharSet BattleWeapon CharSet ChipSet FaceSet Frame GameOver Monster Movie Music Panorama Picture Sound System System2 Title' CONTENT_DOC_DATA_PATH='YumeNikki_EN' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='RPG_RT.exe' ## Japanese locale is required for correct fonts display. APP_MAIN_PRERUN=' # Japanese locale is required for correct fonts display export LC_ALL=ja_JP.UTF-8 ' 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" ## TODO: A dependency on the wqy-microhei.ttc font should be added. # Add requirement for the extration of the inner .lzh archive SCRIPT_DEPS="${SCRIPT_DEPS:-} lha" # Add requirements for tweaking the encoding of file names and contents SCRIPT_DEPS="${SCRIPT_DEPS:-} iconv 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" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/YumeNikki_EN/YumeNikki.lzh" ARCHIVE_INNER_TYPE='lha' archive_extraction 'ARCHIVE_INNER' rm "$(archive_path 'ARCHIVE_INNER')" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to UTF-8 encoding. find . -exec \ convmv --notest -f SHIFT-JIS -t UTF-8 {} + >/dev/null 2>/dev/null ## Fix Windows-style paths. sed --in-place 's/¥/\\/g' 'YumeNikki_EN/YumeNikkiREADME.txt' ## Convert the text files contents to UTF-8 encoding. shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' shell_command="$shell_command"'; printf "%s" "$contents" > "$1"' find 'YumeNikki_EN' -name '*.txt' -exec \ sh -c "$shell_command" -- '{}' \; ) # 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-zak-mckracken-and-the-alien-mindbenders.sh0000755000000000000000000000405614471751340021602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Zak McKracken and the Alien Mindbenders # send your bug reports to contact@dotslashplay.it ### script_version=20240506.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='zak-mckracken-and-the-alien-mindbenders' GAME_NAME='Zak McKracken and the Alien Mindbenders' ARCHIVE_BASE_0_NAME='zak_mckracken_and_the_alien_mindbenders_en_gog_2_20099.sh' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zak_mckracken_and_the_alien_mindbenders' ARCHIVE_BASE_0_MD5='eb144295c6387b71ac2e78986067ba30' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-gog20099' ARCHIVE_BASE_0_TYPE='mojosetup' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.lfl *.mp3' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Zak McKracken - The National Inquisitor.pdf Zak McKraken and the Alien Mindbenders - Hintbook.pdf Zak McKraken and the Alien Mindbenders - Manual.pdf' APP_MAIN_SCUMMID='scumm:zak' APP_MAIN_ICON='../support/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" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ziggurat.sh0000755000000000000000000000560114471751340014016 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ziggurat # send your bug reports to contact@dotslashplay.it ### script_version=20230419.1 GAME_ID='ziggurat' GAME_NAME='Ziggurat' ## This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_HUMBLE_0='ZigguratLinux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f990c99e4351b1ae465d551f0c5030be' ARCHIVE_BASE_HUMBLE_0_SIZE='1200000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_GOG_0='gog_ziggurat_2.3.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='3b5ac4a4fd7470d04f72680d8cce8b09' ARCHIVE_BASE_GOG_0_SIZE='1200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.3.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/ziggurat' UNITY3D_NAME='Ziggurat' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 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_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_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_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' 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 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zniw-adventure.sh0000755000000000000000000000357214471751340015151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zniw Adventure # send your bug reports to contact@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='zniw-adventure' GAME_NAME='Zniw Adventure' ARCHIVE_BASE_0_NAME='zniw_adventure_1_3_4_1l_gog_60121.sh' ARCHIVE_BASE_0_MD5='37fb48f55d4e36d6692a8e13b7f07623' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.3.4.1l-gog60121' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zniw_adventure' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' acsetup.cfg CTGAME.??? *.cdf *.cvf *.ogv *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses' CONTENT_DOC0_MAIN_PATH='data/noarch/game' CONTENT_DOC0_MAIN_FILES=' manualEn.pdf manualPl.pdf refCardLinEnglish.pdf refCardLinPolish.pdf' CONTENT_DOC1_MAIN_PATH='data/noarch/game/Walkthrough' CONTENT_DOC1_MAIN_FILES=' SpoilerFreeWalkthrough.pdf' APP_MAIN_SCUMMID='ags:zniwadventure' APP_MAIN_ICON='../../support/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" # Extract game data archive_extraction_default # Include game data content_inclusion_default content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-zodiacats.sh0000755000000000000000000000356214471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Zodiacats # send your bug reports to contact@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='zodiacats' GAME_NAME='Zodiacats' ARCHIVE_BASE_0_NAME='setup_zodiacats_1.0003_(64bit)_(62419).exe' ARCHIVE_BASE_0_MD5='ad9c318bba0464f6bcdf3079ebd8f1c9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.0003-gog62419' ARCHIVE_BASE_0_URL='https://www.gog.com/game/zodiacats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' zodiacats.exe' ## TODO: Check if the Steam library is required CONTENT_GAME0_MAIN_FILES=' steam_api64.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Godot/app_userdata/Zodiacats' APP_MAIN_EXE='zodiacats.exe' ## The .exe file is too big, wrestool fails to handle it with: ## wrestool: (…)/gamedata/zodiacats.exe: premature end APP_MAIN_ICON='app/goggame-1435098189.ico' PKG_MAIN_ARCH='64' # 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 content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 LICENSE0000644000000000000000000000501214471751340010565 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 © 2015 mortalius Copyright © 2016 Mopi Copyright © 2017 HS-157 Copyright © 2017 Jacek Szafarkiewicz Copyright © 2017 Phil Morrell Copyright © 2018 BetaRays Copyright © 2018 Janeene "dawnmist" Beeforth Copyright © 2018 Sébastien “Elzen” Dufromentel Copyright © 2018 VA Copyright © 2018 Andrey Butirsky Copyright © 2018 Dominique Derrier Copyright © 2019 Erwann Duclos Copyright © 2019 Emmanuel Gil Peyrot Copyright © 2020 berru Copyright © 2020 Hoël Bézier Copyright © 2020 macaron Copyright © 2020 Alarig Le Lay Copyright © 2020 Igor Telmenko Copyright © 2020 bbob Copyright © 2020 edgar.vincent Copyright © 2021 Anna Lea Copyright © 2021 Daguhh Copyright © 2021 briaguya Copyright © 2021 Christian Stalp Copyright © 2021 dany_wilde Copyright © 2021 Thomas Vasileiou Copyright © 2023 Fabien Givors Copyright © 2023 locynaeh Copyright © 2025 tyzef 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. Makefile0000644000000000000000000000452714471751340011232 0ustar rootrootcollection_name = 50_community 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 LICENSE Makefile README.md mkdir --parents dist LC_ALL=C tar cf dist/$(TARBALL) $(TAR_OPTIONS) games/*.sh LICENSE Makefile README.md ifeq ($(NO_SIGN),0) rm --force dist/$(TARBALL).asc gpg --armor --detach-sign dist/$(TARBALL) endif # Run syntax checks, relying on ShellCheck GAME_SCRIPTS := $(wildcard games/play-*.sh) GAME_SCRIPTS_TESTS := $(addprefix shellcheck_, $(GAME_SCRIPTS)) .PHONY: check $(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.md0000644000000000000000000005203114471751340011042 0ustar rootroot# ./play.it community-maintained games collection The codebase is maintained at [https://git.dotslashplay.it/games-community/] Bug reports and feature requests are tracked at [https://forge.dotslashplay.it/play.it/games/-/issues] [https://git.dotslashplay.it/games-community/]: https://git.dotslashplay.it/games-community/ [https://forge.dotslashplay.it/play.it/games/-/issues]: https://forge.dotslashplay.it/play.it/games/-/issues ## 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 repository provides game scripts that can be used with ./play.it to install a collection of DRM-free games. It is maintained by the same team than the ./play.it library and tools. ## 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 ./play.it, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-community play.it-community.git cd play.it-community.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-community ``` 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 - 1365 - 1954 Alcatraz - 6180 The Moon - 80 Days - A Bewitching Revolution - A Boy and His Blob - A Hat in Time - A House of Many Doors - A Jugglerʼs Tale - A Lullaby of Colors - A Musical Story - A Plague Tale: Innocence - A Short Hike - A Story About My Uncle - A Tale of Paper: Refolded (full game and free demo) - Abandon Ship - Abzû - Accelerate - Action Henk - AER: Memories of Old - Affinity - Afterdream - Afterlife - Age of Wonders series: - Age of Wonders - Age of Wonders: Planetfall - Airline Tycoon Deluxe - AI War 2 - Akalabeth: World of Doom - Alan Wake’s American Nightmare - Alba: A Wildlife Adventure - Amnesia: The Dark Descent - Among the Sleep - Anarcute - Anima: Gate of Memories - Anno series: - Anno 1404 - Anno 1503 - Anodyne - Anomaly series: - Anomaly: Warzone Earth - Anomaly 2 - Anomaly Defenders - Ape Out - Apocalipsis - Aquamarine - Aquaria - Aragami - Arcanum: Of Steamworks and Magick Obscura - Armikrog - Art of Fighting 2 - Ascendant - As Far As The Eye - Ash of Gods - Assassinʼs Creed - Assault Android Cactus - Asura - Atlantis: The Lost Tales - Atone: Heart of the Elder Tree - Aven Colony - Aztez - Backbone - Bad Dream series: - Bad Dream: Coma - Bad Dream Fever - Bad Mojo - Banished - Baseball Stars 2 - Basingstoke - Batman: Arkham series: - Batman: Arkham Asylum - Batman: Arkham City - Batman: Arkham Origins - Batman: Arkham Knight - Battle Chef Brigade - Battlefleet Gothic: Armada - Battle Worlds: Kronos - Beacon Pines - Bear and Breakfast - Beatbuddy: Tale of the Guardians - Beat Cop - Bee Simulator - Beholder series: - Beholder - Beholder 2 - Besiege - BFF or Die - Binaries - Bio Menace - Biped - BIT RAT: Singularity - Bit.Trip games: - Bit.Trip BEAT - Bit.Trip Runner - Bit.Trip Presents… Runner2: Future Legend of Rhythm Alien - Bit.Trip: Runner 3 - Blade Runner - Bleed series: - Bleed - Bleed 2 - Blind Men - Blocks that matter - Bombshell - Book of Demons - Book of Hours - Boxville - Braid - Braveland series: - Braveland - Braveland Pirate - Braveland Wizard - Breach & Clear: - Breach & Clear - Breach & Clear - DEADline - Broforce - Brothers: A Tale of Two Sons - Brütal Legend - Bubbles the Cat - Butcher (full game and free demo) - Calico - Call of Cthulhu adventure games: - Prisoner of Ice - Shadow of the Comet - Candleman - Capsized - Caravan - Card City Nights - Carto (full game and free demo) - Cat Quest series: - Cat Quest - Cat Quest 2 - Cats are Liquid series: - A Light in the Shadows - A Better Place - Cayne - Celeste - Chained Echoes - Chaos Reborn - Charterstone - Chroma Squad - Chronology - Chuchel - Cineris Somnia - Civilization 4 - Cleo - A Pirate’s Tale - Cloud Gardens - Codemancer - Coffee Noir - Business Detective Game (full game and free demo) - Commandos 3: Destination Berlin - Convoy - Cook, Serve, Delicious! 2!! - Cornerstone: The Song of Tyrim - Costume Quest - Cotrio - Creaks - Creepy Tale series: - Creepy Tale - Creepy Tale 2 - CrossCode (full game and free demo) - Crossing Souls (free demo only) - Cryptark - Crypt of the NecroDancer: - Crypt of the NecroDancer - Amplified - Cube Escape - Dark Echo - Darksiders 2 - Darwinia - Dawnmaker - Deadbolt - Dead Cells: - Dead Cells - Rise of the Giant - The Bad Seed - Deadlight - Dear Esther - Death’s Door - Death’s Life - Deep Sky Derelicts - Defenderʼs Quest: Valley of the Forgotten - Delores: A Thimbleweed Park Mini-Adventure - Deltarune - Chapter 1 - Detention - Dex - Dicey Dungeons - Dinʼs Curse - Disney 1994 games: - Aladdin - The Jungle Book - The Lion King - Divinity series: - Divine Divinity - Divinity: Original Sin - Doctor Who: The Lonely Assassins - Donʼt Starve: - Donʼt Starve - Reign of Giants - Shipwrecked - Donut County - Door Kickers - Dorfromantik - Dracula: Love Kills - Dragon Age: Origins - Dragonsphere - Dream - Dreaming Sarah - D: The Game - Duet - Duke Nukem 3D - Dungeons 2: - Dungeons 2 - A Chance of Dragons - A Song of Sand and Fire - Dungeons & Lesbians - Dust: An Elysian Tail - Dustforce DX - Earthlock - Earthworm Jim - The Indifferent Wonder of an Edible Place - Element4l - Elephantasy - else Heart.Break() - Empire Earth: - Empire Earth - The Art of Conquest - Encodya (full game and free demo) - Endless Space - Endzone: A World Apart - Enter the Gungeon - Epistory - Typing Chronicles - Equaboreal 12.21 - Escape Goat series: - Escape Goat - Escape Goat 2 - Eschalon: Book 1 - Ether One - Etherlords - Europa Universalis 2 - Evan’s Remains - Everspace - Everything - Everything is Garbage - Evoland series: - Evoland - Evoland 2, A Slight Case of Spacetime Continuum Disorder - Factory Town - Fall of Porcupine - Fallout series: - Fallout - Fallout 2 - Fallout Tactics - Fallout: New Vegas - Fantasy General - Farabel - Far From Noise - FAR: Lone Sails - Fatal Fury Special - Fear Equation - Feist - Fez - Figment series: - Figment - Figment 2: Creed Valley - FixFox - Flashout 3D: Enhanced Edition - Flat Kingdom - FlatOut 2 - Florence - Flower - Flux Caves - Forced - Forgotton Anne - Fossil Echo - Fotonica - Four Sided Fantasy - Fox & Flock - Fragments of Euclid - Fruits of a Feather - Fugue - Full Throttle Remastered - Gabriel Knight 1: Sins of the Fathers - Gangsters: Organized Crime - Garden In! - Gathering Sky - GemCraft - Frostborn Wrath - Ghost of a Tale - Giana Sisters series: - Giana Sisters: Twisted Dreams - Giana Sisters: Rise of the Owlverlord - Giants: Citizen Kabuto - Glittermitten Grove - Gnomoria - Godhood - Golden Treasure - Gorogoa - Graveyard Keeper - GreedCorp - Grip - Gris - Growbot - Grow: Song of the Evertree - Guide of the Butterfly - Gun-Toting Cats - Habitat - Hacknet - Haimrik - Halcyon 6 - Hammerwatch - Hand Of Fate - Hard West - Haven - Headspun - Heal - Heavenʼs Vault - Helium Rain - Hellblade: Senuaʼs Sacrifice - Helltaker - Help Will Come Tomorrow - Her Majestyʼs SPIFFING - Heroes Chronicles: - Chapter 1 - Warlords of the Wasteland - Chapter 2 - Conquest of the Underworld - Chapter 3 - Masters of the Elements - Chapter 4 - Clash of the Dragons - Chapter 5 - The World Tree - Chapter 6 - The Fiery Moon - Chapter 7 - Revolt of the Beastmasters - Chapter 8 - The Sword of Frost - Heroes of Might and Magic series: - Heroes of Might and Magic: A Strategic Quest - Heroes of Might and Magic 2: The Price of Loyalty - Heroes of Might and Magic 3 - Heroine’s Quest: The Herald of Ragnarok - Her Story - Hitman: Codename 47 - Hiveswap: Act 1 - Hive Time - Hoa - Hob - Hollow Knight - Homeseek - Horizon Zero Dawn - Hotline Miami - Hot Pot Panic - Hot Tin Roof: The Cat That Wore a Fedora - Hounds of Valor (demo) - Hugo 1: Hugo’s House of Horrors - HuniePop - Iconoclasts - Ikenfell - Impossible Creatures - inbento - Indivisible - Infinium Strike - Inkulinati (full game and free demo) - Inner - Inner Space - Intrusion 2 - Invisible Inc. - Iratus: Lord of the Dead - Iris and the Giant - Ironclad Tactics - Itorah - Ixion - Jars - Jazzpunk - Jotun - Journey of a Roach - Journey to the Savage Planet - Just Cause 2 - Just one, must choose - JYDGE - Kapital: Sparks of Revolution - Kerbal Space Program - Kero Blaster - Kind Words - Kingdom Come: Deliverance: - Kingdom Come: Deliverance - A woman's lot - Band of bastards - From the ashes - HD Sound pack - HD Texture pack - HD Voice pack - The amorous adventures of bold sir Hans Capon - Treasures of the past - Kingdom New Lands - King of the Monsters - King’s Bounty: The Legend - Kingsway - Knights of Pen and Paper - Kona - Kraken Academy - Kyn - La•Mulana - Last Day of June - Layers of Fear - Legend of Grimrock - Legend of Keepers: - Legend of Keepers: Prologue (free demo) - Legend of Keepers: Career of a Dungeon Manager (full game) - Lego Batman: The Videogame - Lego Harry Potter: Years 1-4 - Lennaʼs Inception - Lieve Oma - Lilaʼs Sky Ark - Limbo - Litil Divil - Little Big Adventure series: - Little Big Adventure - Little Big Adventure 2 - Little Bug - Little Nightmares 1 - Location Withheld - Lo-Fi Room - Lonesome Village - Long Live the Queen - Lords of Xulima - Lorelai - Loria (full game and free demo) - Lost Ruins - Lost Words: Beyond the Page - Lovers in a Dangerous Spacetime - Lumini - Lumino City - Lumo - Luna - LUNA The Shadow Dust - Lynn, The Girl Drawn On Puzzles - Mable & the Wood - Maniac Mansion - Man Oʼ War: Corsair - Warhammer Naval Battles - Marble Age - Mark of the Ninja: - Mark of the Ninja - Mark of the Ninja - Special Edition - Master of Magic - Master of Orion 2: Battle at Antares - Medieval Dynasty - Melodyʼs Escape - Mesmer - Metal Slug series: - Metal Slug 2 - Metal Slug 3 - Mhakna Gramura and Fairy Bell - Mimo - Minecraft 4K - Mini Metro - Minit - Minute of Islands - Mirrorʼs Edge - Mobius - Momodora: Reverie Under the Moonlight - Monad - Mon-cuties for All - Monster Prom - Monster Sanctuary - Monstrata Fracture - Moon Hunters - Morphopolis - Mortal Kombat series: - Mortal Kombat 1 - Mortal Kombat 2 - Mortal Kombat 3 - Multiwinia - Museum of Mechanics: Lockpicking - Mushroom 11 - Mutazione - My Memory of Us - Oh Jeez, Oh No, My Rabbits Are Gone !!! - My Time at Portia - Nanotale - Typing Chronicles - Nebuchadnezzar - Neon Code - neon Drive - Neurodeck: Psychological Deckbuilder - Never Alone - Neverending Nightmares - Neverwinter Nights: - Neverwinter Nights - Neverwinter Nights: Enhanced Edition - Niche - Night in the Woods - Nihilumbra - Noctropolis - Noita - Nomads of Driftland - No Manʼs Sky - Nonsense at Nightfall - No Pineapple Left Behind - Nowhere Prophet - NyxQuest: Kindred Spirits - Obduction - Ocean’s Heart - Octodad Dadliest Catch - Oddworld: Abeʼs Oddysee - Old World - One Hand Clapping - Order of the Thorne: The Kingʼs Challenge - Ori and the Blind Forest - Osmos - Our Life: Beginnings & Always - Out of Line - Out There: Ω Edition - Overboard! - Overgrowth - Overload - Owlboy - Pacapong - Pandemonium! - Panmorphia - Pan-Pan - Paper Sorcerer - Papers, Please - Papetura - Papo and Yo - Paradise Killer - Paramedium: A Noise in the Attic - Particulars - Pavilion - Peck N Run - Pendula Swing: The Complete Journey - Perimeter - Phoning Home - Pid - Pier Solar and the Great Architects - Pikuniku - Pilgrims - Pine - Pink Heaven - Pink Hour - Pinstripe - Pirates: - Pirates! - Pirates Gold - Pixel Piracy - Planet Alpha - Plant Daddy - Pokemon Insurgence - Political Animals - Poly Bridge - Populous series: - Populous: Promised Lands - Populous 2 - Populous: The Beginning - Potion Craft: Alchemy simulator (full game and free demo) - Prince of Persia (2008) - Prison Architect - Privateer - Project Feline - Proteus - Psychonauts - Puddle - Pulse - Q.U.B.E. 2 - Quench - Quern - Undying Thoughts - Quiet as a Stone - Race The Sun: - Race The Sun - Sunrise - Ravenous Devils - Reassembly - Rebel Galaxy - République - Restless Soul - Retrace - Retro City Rampage - Reventure - RiME - Rimworld - Risk of Rain - Road 96 - Robin Hood: The Legend of Sherwood - Rogue legacy - Röki - Rymdkapsel - Sable - Sagebrush - Sally Face - Samurai Shodown 2 - Satellite Reign - Scarf - Scarlet Hood and the Wicked Wood - Seasons After Fall - Secrets of Raetikon - Sengoku 3 - Sentris - Shantae and the Pirateʼs Curse - Shelter series: - Shelter - Shelter 2 - Paws: A Shelter 2 Game - Shovel Knight: Treasure Trove - Sigma Theory: Global Cold War - Six Cats Under - Skullgirls - Skyshineʼs Bedlam - Slay the Spire - Slime Rancher - Slipways - Softporn Adventure - Solar 2 - Solar Flux - Solstice - SOMA - Sort the Court - South Scrimshaw, Part One - Sovereign Syndicate - Spacecom - Space Pirates and Zombies - Space Tail: Every Journey Leads Home - Spellforce - Spelunky - Spiritfarer - Spore - SpringBack - Stardew Valley - Stargunner - Starship Titanic - Starship Traveller - Star-Twine - Star Vikings (free demo only) - Star Wars Battlefront 2 - SteamWorld games: - SteamWorld Dig - SteamWorld Dig 2 - SteamWorld Heist - SteamWorld Quest - Steel Rats - Sticky Business - Still There - Stories: The Path of Destinies - Strafe - Strike Suit Zero - Sudden Strike 4: - Sudden Strike 4 - Africa: Desert War - Battle of Kursk - Finland: Winter Storm - Road to Dunkirk - The Pacific War - Sumatra: Fate of Yandi - Summer in Mara - Sunblaze - Sundered - Sunlight - Superhot - Super Meat Boy - Supercow - Surviving Mars: - Surviving Mars - Digital Deluxe - Mysteries Resupply Pack - Stellaris Dome Set - Symmetry - Symphonia - Symphony - System Shock 2 - Tag: The Power of Paint - Tales of the Neon Sea - Talk to Me - Tandem: A Tale of Shadows - Tangledeep - Teen Agent - Tengami - Terraria - Teslagrad - Tetrobot and Co. - The 7th Guest - Thea 2: The Shattering - The Adventures of Shuggy - The Aquatic Adventure of the Last Human - The Bardʼs Tale 4 - The Binding of Isaac: - Rebirth - Afterbirth - Afterbirth + - Repentance - The Coma - The Council - The Deer God - The Difference Between Us - The Dig - The Elder Scrolls series: - The Elder Scrolls: Arena - The Elder Scrolls 2: Daggerfall - The Elder Scrolls 5: Skyrim - The Elder Scrolls 5: Skyrim - Anniversary Upgrade - The Fall - The Flame in the Flood - The Girl and the Robot - The Great Perhaps - The Guild: - The Guild 2 - The Guild 2 Renaissance - The Hive - The King of Fighters 2000 - The Kingʼs Bird - The Last Tinker: City of Colors - The Longing - Theme Hospital - The Night Fisherman - The Planet Crafter - The Red Strings Club - There is no Game: Wrong Dimension - The Search - The Settlers 3 - The Silver Case (free demo) - The Smurfs: Mission Vileaf - The Sojourn - The Stanley Parable - The Stillness of the Wind - The Subject - The Swords of Ditto: Mormoʼs Curse - The Temple of Elemental Evil - The Vanishing of Ethan Carter - The Warlock of Firetop Mountain - The Westport Independent - The Witcher series: - The Witcher 2: Assassins of Kings - The Witcher 3: Wild Hunt - The World Begins With You - The World Next Door - Thief 3: Deadly Shadows - This War of Mine: - This War of Mine - The Little Ones - Fading Embers - Fatherʼs Promise - The Last Broadcast - Thomas Was Alone - Tidalis - Time Loader - Tiny and Big: Grandpaʼs Leftovers - Tiny Hunter - To Be or Not To Be - Toki Tori 2 - Tooth and Tail - Toren - Total Annihilation: Kingdoms - Touhou series: - Touhou Chireiden ~ Subterranean Animism (free demo only) - Touhou Seirensen ~ Undefined Fantastic Object (free demo only) - Touhou Touhou Shinreibyou ~ Ten Desires (free demo only) - Touhou Kishinjou ~ Double Dealing Character (free demo only) - Touhou Hifuu Nightmare Diary ~ Violet Detector - Touhou Koumakyou ~ the Embodiment of Scarlet Devil (free demo only) - Touhou Kaeizuka ~ Phantasmagoria of Flower View (free demo only) - Tower of Guns - Townscaper - TrackMania Nations Forever - Trine series: - Trine - Trine 2 - Triple Triad Gold - Trüberbrook - Tulpa - TUNIC - Turnip Boy Commits Tax Evasion - Tzar: The Burden of the Crown - Ultima 4: Quest of the Avatar - Undertale - unEpic - Unsung Warriors Prologue Prologue - Unwording - Urtuk: The Desolation - Us Lovely Corpses - Utopias - Vagrus - The Riven Realms: Prologue - Valhalla Hills - Vambrace: Cold Soul - Vampire: The Masquerade - Redemption - The Incredible Adventures of Van Helsing: Final Cut - Vaporum - Volgarr the Viking - VVVVVV - Wandersong - Warhammer 40,000: - Dakka Squadron - Mechanicus - War§ow - Wayward Manor - We, the Revolution - What Happened to Survey Team 4? - What Remains of Edith Finch - while True: learn() - Windosill - Windward - Wing Commander series: - Wing Commander - Wing Commander 2 - Wing Commander 3 - Wingspan - Witch Thief - WitchWay - World to the West - Worms United - Xenonauts - X-Morph: Defense - Yoku’s Island Express - Yono and the Celestial Elephants - Yooka Laylee - Ys 1: Ancient Ys Vanished Omen - Yume Nikki - Zak McKracken and the Alien Mindbenders - Ziggurat - Zniw Adventure - Zodiacats ## 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 some of us understand French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script. Open one of these files with any text editor to see the contact e-mail.