games/play-a-good-snowman-is-hard-to-build.sh0000755000000000000000000000744514471751340020062 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Good Snowman is Hard to Build # send your bug reports to contact@dotslashplay.it ### script_version=20250228.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='a-good-snowman-is-hard-to-build' GAME_NAME='A Good Snowman is Hard to Build' ARCHIVE_BASE_ITCH_0_NAME='snowman-linux.tar.gz' ARCHIVE_BASE_ITCH_0_MD5='3136269cf9d5d81483705c433660b7ab' ARCHIVE_BASE_ITCH_0_SIZE='206249' ARCHIVE_BASE_ITCH_0_VERSION='1.0-itch.2025.02.26' ARCHIVE_BASE_ITCH_0_URL='https://draknek.itch.io/a-good-snowman' ## This DRM-free installer is no longer available for sale from humblebundle.com. ARCHIVE_BASE_HUMBLE_0_NAME='snowman-linux-1.0.8.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='4461dfdcaba9e8793e3044b458b0e301' ARCHIVE_BASE_HUMBLE_0_SIZE='120000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.8-humble160421' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='a-good-snowman-is-hard-to-build_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='8d595a7758ae8cd6dbc441ab79579fb4' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/a-good-snowman-is-hard-to-build/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 24x24 32x32 40x40 48x48 64x64 96x96 128x128 256x256 512x512 768x768' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_PATH_DEFAULT_HUMBLE='snowman' CONTENT_LIBS_FILES=' lime-legacy.ndll regexp.dso std.dso zlib.dso' CONTENT_LIBS_BIN64_RELATIVE_PATH='bin64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='bin32' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' bin64/Snowman' CONTENT_GAME_BIN32_FILES=' bin32/Snowman' CONTENT_GAME_DATA_FILES=' atlases crashdumper fonts libraries music resources sounds spritesheets manifest strings' APP_MAIN_EXE_BIN64='bin64/Snowman' APP_MAIN_EXE_BIN32='bin32/Snowman' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN64_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 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default ## The game engine looks for lime-legacy.ndll in a hardcoded path ln --symbolic \ "$(path_libraries)/lime-legacy.ndll" \ "$(package_path 'PKG_BIN64')$(path_game_data)" ln --symbolic \ "$(path_libraries)/lime-legacy.ndll" \ "$(package_path 'PKG_BIN32')$(path_game_data)" # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-a-monsters-expedition.sh0000755000000000000000000000376414471751340016430 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Monster's Expedition # send your bug reports to contact@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='a-monsters-expedition' GAME_NAME='A Monsterʼs Expedition' ARCHIVE_BASE_0_NAME='a-monsters-expedition-linux.zip' ARCHIVE_BASE_0_MD5='0bf9d7b9d7df996024716145d5fa0074' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://draknek.itch.io/a-monsters-expedition' UNITY3D_NAME='a-monsters-expedition' CONTENT_PATH_DEFAULT='.' ## FIXME: The Unity3D plugins to include should be listed through UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/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' 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-a-place-full-of-cats.sh0000755000000000000000000000621114471751340015754 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Place Full of Cats series: # - A Building Full of Cats # - A Castle Full of Cats # send your bug reports to contact@dotslashplay.it ### script_version=20241002.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_BUILDING='a-building-full-of-cats' GAME_NAME_BUILDING='A Building Full of Cats' GAME_ID_CASTLE='a-castle-full-of-cats' GAME_NAME_CASTLE='A Castle Full of Cats' ARCHIVE_BASE_BUILDING_0_NAME='setup_a_building_full_of_cats_1.01-gog_(64bit)_(62634).exe' ARCHIVE_BASE_BUILDING_0_MD5='0c1fc138578320932322f774670f655b' ARCHIVE_BASE_BUILDING_0_TYPE='innosetup' ARCHIVE_BASE_BUILDING_0_SIZE='150000' ARCHIVE_BASE_BUILDING_0_VERSION='1.01-gog62634' ARCHIVE_BASE_BUILDING_0_URL='https://www.gog.com/en/game/a_building_full_of_cats' ARCHIVE_BASE_CASTLE_0_NAME='setup_a_castle_full_of_cats_1.07_gog_w_leaderboards_(63211).exe' ARCHIVE_BASE_CASTLE_0_MD5='f0490493f27c903c5e07f87da5e1dde5' ARCHIVE_BASE_CASTLE_0_TYPE='innosetup' ARCHIVE_BASE_CASTLE_0_SIZE='300000' ARCHIVE_BASE_CASTLE_0_VERSION='1.07-gog63211' ARCHIVE_BASE_CASTLE_0_URL='https://www.gog.com/en/game/a_castle_full_of_cats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES_BUILDING=' building.exe' CONTENT_GAME_BIN_FILES_CASTLE=' castle.exe' ## The game fails to start if steam_api64.dll is missing CONTENT_GAME0_BIN_FILES=' steam_api64.dll' ## TODO: A Castle Full of Cats - Check if the Galaxy library is required CONTENT_GAME1_BIN_FILES_CASTLE=' galaxyconfig.json galaxy64.dll' CONTENT_GAME_DATA_FILES_BUILDING=' building.pck' CONTENT_GAME_DATA_FILES_CASTLE=' castle.pck' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BUILDING='building.exe' APP_MAIN_EXE_CASTLE='castle.exe' ## Warning: xxx_WRESTOOL_OPTIONS has no support for contextual values APP_MAIN_ICON_WRESTOOL_OPTIONS_CASTLE='--type=14 --name=GODOT_ICON --language=1033' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_BUILDING="${GAME_ID_BUILDING}-data" PKG_DATA_ID_CASTLE="${GAME_ID_CASTLE}-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 ## Explicitly set the contextual value for wrestool options APP_MAIN_ICON_WRESTOOL_OPTIONS=$(context_value 'APP_MAIN_ICON_WRESTOOL_OPTIONS') 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-virus-named-tom.sh0000755000000000000000000000601414471751340015426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Virus Named Tom # send your bug reports to contact@dotslashplay.it ### script_version=20240917.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-virus-named-tom' GAME_NAME='A Virus Named Tom' ARCHIVE_BASE_0_NAME='avnt-09172013-bin' ARCHIVE_BASE_0_MD5='85d11d3f05ad966a06a7e2f77e2fee45' ## This MojoSetup installer is not using a Makeself wrapper. ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='270000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/a-virus-named-tom' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_FILES=' 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 Xml CircuitGame.exe AVNTCommon.dll Lidgren.Network.dll MonoGame.Framework.dll MySql.Data.dll SDL2#.dll SDL2#.dll.config Steamworks#.dll Steamworks#.dll.config TheoraPlay#.dll TheoraPlay#.dll.config' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='CircuitGame.exe' APP_MAIN_ICON='A Virus Named TOM.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.Configuration.Install.dll System.Core.dll System.Data.dll System.Design.dll System.Drawing.dll System.Management.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.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 libogg.so.0 libpthread.so.0 libtheoradec.so.1 libtheora.so.0 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 # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-wish-upon-a-star.sh0000755000000000000000000000437414471751340015524 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Wish Upon a Star # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='a-wish-upon-a-star' GAME_NAME='A Wish Upon a Star' ARCHIVE_BASE_64BIT_0_NAME='AWishUponAStar_WIN_v1_2_0.zip' ARCHIVE_BASE_64BIT_0_MD5='1c76b283aabf5d64bc05fbf489cf3a25' ARCHIVE_BASE_64BIT_0_SIZE='260000' ARCHIVE_BASE_64BIT_0_VERSION='1.2.0-itch.2018.07.07' ARCHIVE_BASE_64BIT_0_URL='https://fabiandenter.itch.io/wish-upon-a-star' ARCHIVE_BASE_32BIT_0_NAME='AWishUponAStar_v1_2_0_WIN32.zip' ARCHIVE_BASE_32BIT_0_MD5='6644015a399d7485f7c73491f9462854' ARCHIVE_BASE_32BIT_0_SIZE='260000' ARCHIVE_BASE_32BIT_0_VERSION='1.2.0-itch.2018.07.07' ARCHIVE_BASE_32BIT_0_URL='https://fabiandenter.itch.io/wish-upon-a-star' UNITY3D_NAME='AWishUponAStar' CONTENT_PATH_DEFAULT_64BIT='AWishUponAStar_WIN_v1_2_0' CONTENT_PATH_DEFAULT_32BIT='AWishUponAStar_v1_2_0_WIN32' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Fabian Denter\A Wish Upon A Star' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='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-about-love-hate-and-the-other-ones.sh0000755000000000000000000000625214471751340020560 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # About Love, Hate and the Other Ones # send your bug reports to contact@dotslashplay.it ### script_version=20240917.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='about-love-hate-and-the-other-ones' GAME_NAME='About Love, Hate and the Other Ones' ARCHIVE_BASE_0_NAME='aboutloveandhate-1.3.1.deb' ARCHIVE_BASE_0_MD5='65c314a2a970b5c787d4e7e2a837e211' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.3.1-humble150312' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/about-love-hate-and-the-other-ones' CONTENT_PATH_DEFAULT='usr/local/games/loveandhate' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bin64" CONTENT_GAME_BIN64_FILES=' loveandhate' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bin32" CONTENT_GAME_BIN32_FILES=' loveandhate' CONTENT_GAME_DATA_FILES=' bin' CONTENT_DOC_DATA_FILES=' README' FAKE_HOME_PERSISTENT_DIRECTORIES=' .aboutloveandhate' APP_MAIN_EXE='loveandhate' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_16 APP_MAIN_ICON_24 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_64 APP_MAIN_ICON_128 APP_MAIN_ICON_256' APP_MAIN_ICON_16='../../../share/icons/hicolor/16x16/apps/loveandhate.png' APP_MAIN_ICON_24='../../../share/icons/hicolor/24x24/apps/loveandhate.png' APP_MAIN_ICON_32='../../../share/icons/hicolor/32x32/apps/loveandhate.png' APP_MAIN_ICON_48='../../../share/icons/hicolor/48x48/apps/loveandhate.png' APP_MAIN_ICON_64='../../../share/icons/hicolor/64x64/apps/loveandhate.png' APP_MAIN_ICON_128='../../../share/icons/hicolor/128x128/apps/loveandhate.png' APP_MAIN_ICON_256='../../../share/icons/hicolor/256x256/apps/loveandhate.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 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 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-antichamber.sh0000755000000000000000000000576014471751340014445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Antichamber # send your bug reports to contact@dotslashplay.it ### script_version=20241024.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='antichamber' GAME_NAME='Antichamber' ARCHIVE_BASE_0_NAME='antichamber_1.01_linux_1392664980.sh' ARCHIVE_BASE_0_MD5='37bca01c411d813c8729259b7db2dba0' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.01-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/antichamber' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_PATH='data/x86/Binaries/Linux/lib' ## - The game binary is linked against libsteam_api.so, ## so we can not drop it. ## - The libSDL2_mixer-2.0.so.0 library is a custom build, ## it must be included to avoid the following error: ## undefined symbol: MinorityMix_SetPosition CONTENT_LIBS_BIN_FILES=' libPhysXCooking.so libPhysXCore.so libSDL2_mixer-2.0.so.0 libsteam_api.so libtcmalloc.so.0' CONTENT_GAME_BIN_PATH='data/x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/UDKGame-Linux' CONTENT_GAME_DATA_PATH='data/noarch' CONTENT_GAME_DATA_FILES=' Engine UDKGame AntichamberIcon.bmp AntichamberIcon.png' CONTENT_DOC_DATA_PATH='data/noarch' CONTENT_DOC_DATA_FILES=' README.linux BuildVersion.txt UpdateLog.txt' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='noarch/AntichamberIcon.png' ## Work around the game engine incompatibility with the wayland backend of SDL APP_MAIN_PRERUN=' # Work around the game engine incompatibility with the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux ./UDKGame-Linux "$@" EOF } launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-arrow-patterns.sh0000755000000000000000000000443214471751340015153 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Arrow Patterns # send your bug reports to contact@dotslashplay.it ### script_version=20241217.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='arrow-patterns' GAME_NAME='Arrow Patterns' ARCHIVE_BASE_1_NAME='setup_arrow_patterns_1.2_(72714).exe' ARCHIVE_BASE_1_MD5='1d67bfe9488ccaadbba781b809626304' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='20117' ARCHIVE_BASE_1_VERSION='1.2-gog72714' ARCHIVE_BASE_1_URL='https://www.gog.com/game/arrow_patterns' ARCHIVE_BASE_0_NAME='setup_arrow_patterns_1.0.0_(67004).exe' ARCHIVE_BASE_0_MD5='236ff841e84ba5bf09c5e47b517de840' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='21027' ARCHIVE_BASE_0_VERSION='1.0.0-gog67004' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' almixer.dll coronalabs.corona.native.dll lua.dll openal32.dll plugin_hwcursor.dll pthreads.dll arrow patterns.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/AleC Games/Arrow Patterns users/${USER}/AppData/Local/AleC Games/Arrow Patterns' APP_MAIN_EXE='arrow patterns.exe' APP_MAIN_ICON='resources/icon-win32.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" # 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-arrow.sh0000755000000000000000000000427414471751340013321 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Arrow # send your bug reports to contact@dotslashplay.it ### script_version=20241217.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='arrow' GAME_NAME='Arrow' ARCHIVE_BASE_1_NAME='setup_arrow_1.4_(72714).exe' ARCHIVE_BASE_1_MD5='0ef643cae5b5ed1c4eb945878bb286f4' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='19128' ARCHIVE_BASE_1_VERSION='1.4-gog72714' ARCHIVE_BASE_1_URL='https://www.gog.com/game/arrow' ARCHIVE_BASE_0_NAME='setup_arrow_1.3_(70348).exe' ARCHIVE_BASE_0_MD5='8a697981bef580f95f8aa6cf13a7ccf2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='18955' ARCHIVE_BASE_0_VERSION='1.3-gog70348' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' almixer.dll coronalabs.corona.native.dll lua.dll openal32.dll plugin_hwcursor.dll pthreads.dll arrow.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/AleC Games/Arrow users/${USER}/AppData/Local/AleC Games/Arrow' APP_MAIN_EXE='arrow.exe' APP_MAIN_ICON='resources/icon-win32.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" # 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-baba-is-you.sh0000755000000000000000000000632014471751340014271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2023 HS-157 set -o errexit ### # Baba Is You # send your bug reports to contact@dotslashplay.it ### script_version=20240804.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='baba-is-you' GAME_NAME='Baba Is You' ARCHIVE_BASE_1_NAME='BIY_linux.tar.gz' ARCHIVE_BASE_1_MD5='d32487c5a6789c6c6b24064088708cab' ARCHIVE_BASE_1_SIZE='121230' ARCHIVE_BASE_1_VERSION='478f-itch.2024.02.24' ARCHIVE_BASE_1_URL='https://hempuli.itch.io/baba' ## Support for this archive is disabled until ./play.it can handle name collisions, ## cf. https://forge.dotslashplay.it/play.it/scripts/-/issues/355 #ARCHIVE_BASE_0_NAME='BIY_linux.tar.gz' #ARCHIVE_BASE_0_MD5='555d408a45b47d68042bb82e9a2ebcfc' #ARCHIVE_BASE_0_SIZE='150000' #ARCHIVE_BASE_0_VERSION='477-itch.2023.03.07' CONTENT_PATH_DEFAULT='Baba Is You' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bin64" CONTENT_GAME_BIN64_FILES=' Chowdren' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bin32" CONTENT_GAME_BIN32_FILES=' Chowdren' CONTENT_GAME_DATA_FILES=' Data icon.bmp Assets.dat gamecontrollerdb.txt' APP_MAIN_EXE_BIN64='Chowdren' APP_MAIN_EXE_BIN32='Chowdren' APP_MAIN_ICON='icon.bmp' ## Work around the shipped SDL lack of support for Wayland. ## Using system-provided SDL is not an option because with it the game fails to render anything, with the following error: ## Could not create OpenGL context: Could not create EGL context (call to eglCreateContext failed, reporting an error of EGL_BAD_ATTRIBUTE) APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Work around the shipped SDL lack of support for Wayland if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 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" 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-back-to-bed.sh0000755000000000000000000000476714471751340014246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Back to Bed # send your bug reports to contact@dotslashplay.it ### script_version=20240925.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='back-to-bed' GAME_NAME='Back to Bed' ARCHIVE_BASE_0_NAME='Back to Bed Linux Universal 1.1.6.zip' ARCHIVE_BASE_0_MD5='27947f187ecf27a5ce8ed98dff3bef8e' ARCHIVE_BASE_0_SIZE='560000' ARCHIVE_BASE_0_VERSION='1.1.6-itch1' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/back-to-bed' UNITY3D_NAME='BackToBed' CONTENT_PATH_DEFAULT='Back to Bed Linux Universal 1.1.6' ## FIXME: The shipped libraries to include should be listed using UNITY3D_PLUGINS CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_DOC_DATA_FILES=' version.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" ## TODO: The list of required libraries should be updated PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 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 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-candle.sh0000755000000000000000000000423714471751340013414 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Candle # send your bug reports to contact@dotslashplay.it ### script_version=20241101.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='candle' GAME_NAME='Candle' ## This installer is no longer available for sale from gog.com since 2024-10-31, ## cf. https://www.gog.com/forum/general/urgent_delisting_candle/post1 ARCHIVE_BASE_0_NAME='gog_candle_2.3.0.5.sh' ARCHIVE_BASE_0_MD5='4d60d0a24f5932207f6406a8ad0545be' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1.17-gog2.3.0.5' UNITY3D_NAME='Candle' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MOVIES_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets" PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_MOVIES 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_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' 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-cats-hidden-in-places-expansions.sh0000755000000000000000000000346414471751340020410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cats Hidden in Places expansions: # - Cats Hidden in Paris - Extra level # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_PARIS='cats-hidden-in-paris' GAME_NAME_PARIS='Cats Hidden in Paris' EXPANSION_ID_PARIS='extra-level' EXPANSION_NAME_PARIS='Extra level' # Archives ## Cats Hidden in Paris - Extra level ARCHIVE_BASE_PARIS_0_NAME='setup_cats_hidden_in_paris_-_extra_level_1.0_gog_dlc_fix6_(69829).exe' ARCHIVE_BASE_PARIS_0_MD5='d440ba3300af973579e5cef269b94962' ARCHIVE_BASE_PARIS_0_TYPE='innosetup' ARCHIVE_BASE_PARIS_0_SIZE='6687' ARCHIVE_BASE_PARIS_0_VERSION='1.0-gog69829' ARCHIVE_BASE_PARIS_0_URL='https://www.gog.com/game/cats_hidden_in_paris_extra_level' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES_PARIS=' goggame-2143975614.info' PKG_PARENT_ID_PARIS="$GAME_ID_PARIS" 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-cats-hidden-in-places.sh0000755000000000000000000001053214471751340016215 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Cats Hidden in Places: # - Cats Hidden in Paris # - Cats Hidden in Italy # - Cats Hidden in Bali # - Cats Hidden in Maple Hollow # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_PARIS='cats-hidden-in-paris' GAME_NAME_PARIS='Cats Hidden in Paris' GAME_ID_ITALY='cats-hidden-in-italy' GAME_NAME_ITALY='Cats Hidden in Italy' GAME_ID_BALI='cats-hidden-in-bali' GAME_NAME_BALI='Cats Hidden in Bali' GAME_ID_MAPLE='cats-hidden-in-maple-hollow' GAME_NAME_MAPLE='Cats Hidden in Maple Hollow' # Archives ## Cats Hidden in Paris ARCHIVE_BASE_PARIS_0_NAME='setup_cats_hidden_in_paris_1.0_gog_dlc_fix6_(69829).exe' ARCHIVE_BASE_PARIS_0_MD5='6b55ff57a52f1edd2990133737c870cd' ARCHIVE_BASE_PARIS_0_TYPE='innosetup' ARCHIVE_BASE_PARIS_0_SIZE='106572' ARCHIVE_BASE_PARIS_0_VERSION='1.0-gog69829' ARCHIVE_BASE_PARIS_0_URL='https://www.gog.com/game/cats_hidden_in_paris' ## Cats Hidden in Italy ARCHIVE_BASE_ITALY_0_NAME='setup_cats_hidden_in_italy_1.0_gog_savefix_proper_(69657).exe' ARCHIVE_BASE_ITALY_0_MD5='7564fdad50e6e655cb16bca17db30058' ARCHIVE_BASE_ITALY_0_TYPE='innosetup' ARCHIVE_BASE_ITALY_0_SIZE='102010' ARCHIVE_BASE_ITALY_0_VERSION='1.0-gog69657' ARCHIVE_BASE_ITALY_0_URL='https://www.gog.com/game/cats_hidden_in_italy' ## Cats Hidden in Bali ARCHIVE_BASE_BALI_0_NAME='setup_cats_hidden_in_bali_1.0_gog_(69565).exe' ARCHIVE_BASE_BALI_0_MD5='23ce61713a61919f9724a3377feca967' ARCHIVE_BASE_BALI_0_TYPE='innosetup' ARCHIVE_BASE_BALI_0_SIZE='104429' ARCHIVE_BASE_BALI_0_VERSION='1.0-gog69565' ARCHIVE_BASE_BALI_0_URL='https://www.gog.com/game/cats_hidden_in_bali' ## Cats Hidden in Maple Hollow ARCHIVE_BASE_MAPLE_0_NAME='setup_cats_hidden_in_maple_hollow_1.0_gog_(69635).exe' ARCHIVE_BASE_MAPLE_0_MD5='2a3c9c4b7bc81efd01d62e45cf8f43e3' ARCHIVE_BASE_MAPLE_0_TYPE='innosetup' ARCHIVE_BASE_MAPLE_0_SIZE='97744' ARCHIVE_BASE_MAPLE_0_VERSION='1.0-gog69635' ARCHIVE_BASE_MAPLE_0_URL='https://www.gog.com/game/cats_hidden_in_maple_hollow' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' modules' CONTENT_GAME0_BIN_FILES_PARIS=' cats hidden in paris.exe' CONTENT_GAME0_BIN_FILES_ITALY=' cats hidden in italy.exe' CONTENT_GAME0_BIN_FILES_BALI=' cats hidden in bali.exe' CONTENT_GAME0_BIN_FILES_MAPLE=' cats hidden in maple hollow.exe' CONTENT_GAME_DATA_FILES=' sounds' CONTENT_GAME0_DATA_FILES_PARIS=' cats hidden in paris.dat' CONTENT_GAME0_DATA_FILES_ITALY=' cats hidden in italy.dat' CONTENT_GAME0_DATA_FILES_BALI=' cats hidden in bali.dat' CONTENT_GAME0_DATA_FILES_MAPLE=' cats hidden in maple hollow.dat' WINE_PERSISTENT_DIRECTORIES_PARIS=' users/${USER}/AppData/Roaming/Cats Hidden in Paris' WINE_PERSISTENT_DIRECTORIES_ITALY=' users/${USER}/AppData/Roaming/Cats Hidden in Italy' WINE_PERSISTENT_DIRECTORIES_BALI=' users/${USER}/AppData/Roaming/Cats Hidden in Bali' WINE_PERSISTENT_DIRECTORIES_MAPLE=' users/${USER}/AppData/Roaming/Cats Hidden in Maple Hollow' APP_MAIN_EXE_PARIS='cats hidden in paris.exe' APP_MAIN_EXE_ITALY='cats hidden in italy.exe' APP_MAIN_EXE_BALI='cats hidden in bali.exe' APP_MAIN_EXE_MAPLE='cats hidden in maple hollow.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_PARIS="${GAME_ID_PARIS}-data" PKG_DATA_ID_ITALY="${GAME_ID_ITALY}-data" PKG_DATA_ID_BALI="${GAME_ID_BALI}-data" PKG_DATA_ID_MAPLE="${GAME_ID_MAPLE}-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-contraption-maker.sh0000755000000000000000000001137114471751340015620 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Contraption Maker # send your bug reports to contact@dotslashplay.it ### script_version=20241210.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='contraption-maker' GAME_NAME='Contraption Maker' ARCHIVE_BASE_GOG_1_NAME='contraption_maker_1_4_11_70403.sh' ARCHIVE_BASE_GOG_1_MD5='14d482ccff969ae97cdf8d4b0d6d4f74' ARCHIVE_BASE_GOG_1_SIZE='308082' ARCHIVE_BASE_GOG_1_VERSION='1.4.11-gog70403' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/contraption_maker' ARCHIVE_BASE_GOG_0_NAME='contraption_maker_1_4_9_67880.sh' ARCHIVE_BASE_GOG_0_MD5='8ab8c87a6d1a0e122ea9432a7a74d96c' ARCHIVE_BASE_GOG_0_SIZE='320396' ARCHIVE_BASE_GOG_0_VERSION='1.4.9.0-gog67880' ## This DRM-free installer is no longer available from humblebundle.com, ## they now only sell this game to Steam users. ARCHIVE_BASE_HUMBLE_0_NAME='ContraptionMaker-linux-11410.sh' ARCHIVE_BASE_HUMBLE_0_MD5='7d7a7a4a56cfff722d0654563aee482a' ARCHIVE_BASE_HUMBLE_0_SIZE='251700' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.2015.04.07' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_BIN_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN_FILES_GOG=' ContraptionMaker' CONTENT_GAME_BIN_FILES_HUMBLE=' ContraptionMakerLauncher' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES_GOG=' assets' CONTENT_GAME_DATA_FILES_HUMBLE=' assets ContraptionMakerPatcher_staging ContraptionMaker_staging icon.png' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES_HUMBLE=' eula.txt' APP_MAIN_EXE_GOG='ContraptionMaker' APP_MAIN_EXE_HUMBLE='ContraptionMakerLauncher' APP_MAIN_ICON_GOG='assets/gui/skins/default/mainmenu/mainmenu_logo_icon.png' APP_MAIN_ICON_HUMBLE='noarch/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfontconfig.so.1 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXxf86vm.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Work around a crash on XWayland due to the old shipped GLFW build # cf. https://forge.dotslashplay.it/play.it/games-puzzle/-/issues/7 ## TODO: Check if it is still required with the current game build PRELOAD_HACKS_LIST=' HACK_XKBLIB' HACK_XKBLIB_NAME='xkblib' HACK_XKBLIB_DESCRIPTION='LD_PRELOAD shim working around a crash on XWayland due to the old shipped GLFW build cf. https://forge.dotslashplay.it/play.it/games/-/issues/909' HACK_XKBLIB_PACKAGE='PKG_BIN' HACK_XKBLIB_SOURCE=' #define _GNU_SOURCE #include #include XkbDescPtr XkbGetKeyboard(Display *display, unsigned int _, unsigned int device_spec) { XkbDescPtr desc = XkbGetMap(display, 0, device_spec); XkbGetNames(display, XkbKeyNamesMask, desc); return desc; } void XkbFreeKeyboard(XkbDescPtr xkb, unsigned int which, Bool free_all) { XkbFreeNames(xkb, XkbKeyNamesMask, free_all); XkbFreeClientMap(xkb, which, free_all); } ' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; 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 ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## gog.com - Convert the shipped icon to use a square ratio. case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) convert \ -background none -gravity center "$(icon_path 'APP_MAIN_ICON')" \ -resize 192x192 -extent 192x192 'temp_icon.png' mv 'temp_icon.png' "$(icon_path 'APP_MAIN_ICON')" ;; esac ## humblebundle.com - Convert the shipped icon to a smaller size. case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) convert "$(icon_path 'APP_MAIN_ICON')" -resize 512x512 'temp_icon.png' mv 'temp_icon.png' "$(icon_path 'APP_MAIN_ICON')" ;; 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-cosmic-express.sh0000755000000000000000000000535114471751340015130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cosmic Express # send your bug reports to contact@dotslashplay.it ### script_version=20240925.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='cosmic-express' GAME_NAME='Cosmic Express' ARCHIVE_BASE_ITCH_0_NAME='cosmic-express-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='145789ba0550e5a7e440577f0aec7963' ARCHIVE_BASE_ITCH_0_SIZE='243517' ARCHIVE_BASE_ITCH_0_VERSION='1.0.4-itch.2017.04.04' ARCHIVE_BASE_ITCH_0_URL='https://draknek.itch.io/cosmic-express' ## This DRM-free archive is no longer available from humblebundle.com, ## they now only sell Steam keys for this game. ARCHIVE_BASE_HUMBLE_0_NAME='cosmic-express-linux-1.0.4.zip' ARCHIVE_BASE_HUMBLE_0_MD5='145789ba0550e5a7e440577f0aec7963' ARCHIVE_BASE_HUMBLE_0_SIZE='860000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0.4-humble' UNITY3D_NAME='Cosmic Express' 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" # 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-doodle-god.sh0000755000000000000000000000353014471751340014176 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Doodle God # send your bug reports to contact@dotslashplay.it ### script_version=20240927.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='doodle-god' GAME_NAME='Doodle God' ## This archive used to be available from freebies.indiegala.com. ARCHIVE_BASE_0_NAME='doodle-god_win.zip' ARCHIVE_BASE_0_MD5='cdba1abf1c909c7145da975dac82945d' ## unzip can not be used for this archive, ## because it does not treat "\" as a path separator. ARCHIVE_BASE_0_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='3.1.64-indiegala1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' DoodleGod.exe *.dll' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='DoodleGod.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-doors-paradox.sh0000755000000000000000000000356414471751340014752 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Doors: Paradox # send your bug reports to contact@dotslashplay.it ### script_version=20240927.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='doors-paradox' GAME_NAME='Doors: Paradox' ARCHIVE_BASE_1_NAME='setup_doors_paradox_1.01_(65794).exe' ARCHIVE_BASE_1_MD5='cdae131a2fb76a2c3cee4176acfb4b8f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_doors_paradox_1.01_(65794)-1.bin' ARCHIVE_BASE_1_PART1_MD5='bf9609151ca9b9daa4517db4b3643fdc' ARCHIVE_BASE_1_SIZE='4161487' ARCHIVE_BASE_1_VERSION='1.01-gog65794' ARCHIVE_BASE_1_URL='https://www.gog.com/game/doors_paradox' UNITY3D_NAME='doors paradox' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Big Loop Studios/Doors_ Paradox' 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-down-in-bermuda.sh0000755000000000000000000000343214471751340015152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Down in Bermuda # send your bug reports to contact@dotslashplay.it ### script_version=20240927.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='down-in-bermuda' GAME_NAME='Down in Bermuda' ARCHIVE_BASE_0_NAME='setup_down_in_bermuda_1.6.3_(340)_(64bit)_(44306).exe' ARCHIVE_BASE_0_MD5='814b6cc189d0277899ac3dce355aec4f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.6.3.340-gog44306' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/down_in_bermuda' UNITY3D_NAME='downinbermuda' CONTENT_PATH_DEFAULT='.' ## FIXME: Add persistent storage for game progress and settings. 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-dr-livingstone-i-presume.sh0000755000000000000000000000514214471751340017032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dr Livingstone, I Presume? # send your bug reports to contact@dotslashplay.it ### script_version=20240927.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='dr-livingstone-i-presume' GAME_NAME='Dr Livingstone, I Presume?' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_dr_livingstone_i_presume_220419_0803_(55205).exe' ARCHIVE_BASE_0_MD5='d6fdb1ce7ee00f5068b1d93f4592dad0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_dr_livingstone_i_presume_220419_0803_(55205)-1.bin' ARCHIVE_BASE_0_PART1_MD5='36b0f92cde1b8ccbd42f339fbc752ada' ARCHIVE_BASE_0_SIZE='5300000' ARCHIVE_BASE_0_VERSION='2022.04.19-gog55205' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dr_livingstone_i_presume' ## This installer is no longer available from gog.com ARCHIVE_BASE_DEMO_0_NAME='setup_dr_livingstone_i_presume_demo_210726_1631_(48828).exe' ARCHIVE_BASE_DEMO_0_MD5='57f69d1473e4c24706fe2cc70c56d62b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_PART1_NAME='setup_dr_livingstone_i_presume_demo_210726_1631_(48828)-1.bin' ARCHIVE_BASE_DEMO_0_PART1_MD5='4adc9914d1629ff3849f9d1d1f139b5c' ARCHIVE_BASE_DEMO_0_SIZE='3800000' ARCHIVE_BASE_DEMO_0_VERSION='2021.07.26-gog48828' UNREALENGINE4_NAME='drlivingstone' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' 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" # 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-eets-munchies.sh0000755000000000000000000000477314471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Eets Munchies # send your bug reports to contact@dotslashplay.it ### script_version=20241103.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='eets-munchies' GAME_NAME='Eets Munchies' ARCHIVE_BASE_32BIT_0_NAME='eets2-32x_linux_1394496804.tar' ARCHIVE_BASE_32BIT_0_MD5='cdbae24ea2579ff9169f2b3d68be8a09' ARCHIVE_BASE_32BIT_0_SIZE='740000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-humble.2014.03.10' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/eets-munchies' ARCHIVE_BASE_64BIT_0_NAME='eets2-64x_linux_1394496804.tar' ARCHIVE_BASE_64BIT_0_MD5='ee7694ca24aabb4c3890123f8cb2474e' ARCHIVE_BASE_64BIT_0_SIZE='740000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-humble.2014.03.10' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/eets-munchies' CONTENT_PATH_DEFAULT='eets2' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/bin/lib" CONTENT_LIBS_BIN_FILES_32BIT=' libfmodevent.so libfmodevent-4.44.18.so libfmodex.so libfmodex-4.44.18.so' CONTENT_LIBS_BIN_FILES_64BIT=' libfmodevent64.so libfmodevent64-4.44.18.so libfmodex64.so libfmodex64-4.44.18.so' CONTENT_GAME_BIN_FILES=' bin/eets2-bin' CONTENT_GAME_DATA_FILES=' Data *.json *.kwad *.lua *.png *.xpm' APP_MAIN_EXE='bin/eets2-bin' APP_MAIN_ICON='eets2.xpm' 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=' 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' 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-english-country-tune.sh0000755000000000000000000000463214471751340016270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # English Country Tune # send your bug reports to contact@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='english-country-tune' GAME_NAME='English Country Tune' ARCHIVE_BASE_0_NAME='EnglishCountryTune_Linux_1370040672.tar.gz' ARCHIVE_BASE_0_MD5='1097749402732c31348fd430b94e9350' ARCHIVE_BASE_0_SIZE='325208' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/english-country-tune' UNITY3D_NAME='English Country Tune' CONTENT_PATH_DEFAULT='English Country Tune' 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 # 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-enigmatis.sh0000755000000000000000000001544514471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Enigmatis series: # - Enigmatis: The Ghosts of Maple Creek # - Enigmatis 2: The Mists of Ravenwood # - Enigmatis 3: The Shadow of Karkhala # send your bug reports to contact@dotslashplay.it ### script_version=20241218.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_ENIGMATIS1='enigmatis-1' GAME_NAME_ENIGMATIS1='Enigmatis: The Ghosts of Maple Creek' GAME_ID_ENIGMATIS2='enigmatis-2' GAME_NAME_ENIGMATIS2='Enigmatis 2: The Mists of Ravenwood' GAME_ID_ENIGMATIS3='enigmatis-3' GAME_NAME_ENIGMATIS3='Enigmatis 3: The Shadow of Karkhala' ARCHIVE_BASE_ENIGMATIS1_EN_0_NAME='enigmatis_the_ghosts_of_maple_creek_en_gog_1_22618.sh' ARCHIVE_BASE_ENIGMATIS1_EN_0_MD5='f689351491589ff01153d7e81200954c' ARCHIVE_BASE_ENIGMATIS1_EN_0_SIZE='508525' ARCHIVE_BASE_ENIGMATIS1_EN_0_VERSION='1.0-gog22618' ARCHIVE_BASE_ENIGMATIS1_EN_0_URL='https://www.gog.com/game/enigmatis_the_ghosts_of_maple_creek' ARCHIVE_BASE_ENIGMATIS1_FR_0_NAME='enigmatis_the_ghosts_of_maple_creek_fr_gog_1_22618.sh' ARCHIVE_BASE_ENIGMATIS1_FR_0_MD5='062a547532f2be20d3868acd554fefaa' ARCHIVE_BASE_ENIGMATIS1_FR_0_SIZE='508495' ARCHIVE_BASE_ENIGMATIS1_FR_0_VERSION='1.0-gog22618' ARCHIVE_BASE_ENIGMATIS1_FR_0_URL='https://www.gog.com/game/enigmatis_the_ghosts_of_maple_creek' ARCHIVE_BASE_ENIGMATIS2_EN_0_NAME='enigmatis_2_the_mists_of_ravenwood_en_gog_1_22643.sh' ARCHIVE_BASE_ENIGMATIS2_EN_0_MD5='3b632c015135e9dd361c045de98efd34' ARCHIVE_BASE_ENIGMATIS2_EN_0_SIZE='1620915' ARCHIVE_BASE_ENIGMATIS2_EN_0_VERSION='1.0-gog22643' ARCHIVE_BASE_ENIGMATIS2_EN_0_URL='https://www.gog.com/game/enigmatis_2_the_mists_of_ravenwood' ARCHIVE_BASE_ENIGMATIS2_FR_0_NAME='enigmatis_2_the_mists_of_ravenwood_fr_gog_1_22643.sh' ARCHIVE_BASE_ENIGMATIS2_FR_0_MD5='2feeafc1a69c4ca11a37c631bf8701bb' ARCHIVE_BASE_ENIGMATIS2_FR_0_SIZE='1620922' ARCHIVE_BASE_ENIGMATIS2_FR_0_VERSION='1.0-gog22643' ARCHIVE_BASE_ENIGMATIS2_FR_0_URL='https://www.gog.com/game/enigmatis_2_the_mists_of_ravenwood' ARCHIVE_BASE_ENIGMATIS3_EN_0_NAME='enigmatis_3_the_shadow_of_karkhala_en_gog_1_22690.sh' ARCHIVE_BASE_ENIGMATIS3_EN_0_MD5='2a140d0ad6e3de74484d105c02959940' ARCHIVE_BASE_ENIGMATIS3_EN_0_SIZE='2917314' ARCHIVE_BASE_ENIGMATIS3_EN_0_VERSION='1.0-gog22690' ARCHIVE_BASE_ENIGMATIS3_EN_0_URL='https://www.gog.com/game/enigmatis_3_the_shadow_of_karkhala' ARCHIVE_BASE_ENIGMATIS3_FR_0_NAME='enigmatis_3_the_shadow_of_karkhala_fr_gog_1_22690.sh' ARCHIVE_BASE_ENIGMATIS3_FR_0_MD5='5d7ebdf1bc2cf2769ed4ebd9bb4755a0' ARCHIVE_BASE_ENIGMATIS3_FR_0_SIZE='2917443' ARCHIVE_BASE_ENIGMATIS3_FR_0_VERSION='1.0-gog22690' ARCHIVE_BASE_ENIGMATIS3_FR_0_URL='https://www.gog.com/game/enigmatis_3_the_shadow_of_karkhala' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' *_amd64' CONTENT_GAME_BIN32_FILES=' *_i386' CONTENT_GAME_L10N_FILES=' Game_??.cub Game_768_??.cub Game_900_??.cub Game_1080_??.cub Game_1080_900_??.cub' CONTENT_GAME_DATA_FILES=' Game.cub Game_768.cub Game_900.cub Game_1080.cub Game_1080_900.cub *.json' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Artifex Mundi' APPLICATIONS_LIST='APP_MAIN' APP_MAIN_EXE_BIN64_ENIGMATIS1='Enigmatis_TheGhostsOfMapleCreek_amd64' APP_MAIN_EXE_BIN64_ENIGMATIS2='Enigmatis_TheMistsOfRavenwood_amd64' APP_MAIN_EXE_BIN64_ENIGMATIS3='Enigmatis3_amd64' APP_MAIN_EXE_BIN32_ENIGMATIS1='Enigmatis_TheGhostsOfMapleCreek_i386' APP_MAIN_EXE_BIN32_ENIGMATIS2='Enigmatis_TheMistsOfRavenwood_i386' APP_MAIN_EXE_BIN32_ENIGMATIS3='Enigmatis3_i386' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_L10N PKG_DATA' PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE 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 libXext.so.6 libXinerama.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN64_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3" PKG_BIN32_DEPENDENCIES_LIBRARIES_ENIGMATIS3="$PKG_BIN_DEPENDENCIES_LIBRARIES_ENIGMATIS3" PKG_L10N_BASE_ID_ENIGMATIS1="${GAME_ID_ENIGMATIS1}-l10n" PKG_L10N_BASE_ID_ENIGMATIS2="${GAME_ID_ENIGMATIS2}-l10n" PKG_L10N_BASE_ID_ENIGMATIS3="${GAME_ID_ENIGMATIS3}-l10n" PKG_L10N_ID_ENIGMATIS1_EN="${PKG_L10N_BASE_ID_ENIGMATIS1}-en" PKG_L10N_ID_ENIGMATIS1_FR="${PKG_L10N_BASE_ID_ENIGMATIS1}-fr" PKG_L10N_ID_ENIGMATIS2_EN="${PKG_L10N_BASE_ID_ENIGMATIS2}-en" PKG_L10N_ID_ENIGMATIS2_FR="${PKG_L10N_BASE_ID_ENIGMATIS2}-fr" PKG_L10N_ID_ENIGMATIS3_EN="${PKG_L10N_BASE_ID_ENIGMATIS3}-en" PKG_L10N_ID_ENIGMATIS3_FR="${PKG_L10N_BASE_ID_ENIGMATIS3}-fr" PKG_L10N_PROVIDES_ENIGMATIS1=" $PKG_L10N_BASE_ID_ENIGMATIS1" PKG_L10N_PROVIDES_ENIGMATIS2=" $PKG_L10N_BASE_ID_ENIGMATIS2" PKG_L10N_PROVIDES_ENIGMATIS3=" $PKG_L10N_BASE_ID_ENIGMATIS3" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='English localization' PKG_L10N_DESCRIPTION_ENIGMATIS1_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_ENIGMATIS1_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_ENIGMATIS2_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_ENIGMATIS2_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_ENIGMATIS3_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_ENIGMATIS3_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_ENIGMATIS1="${GAME_ID_ENIGMATIS1}-data" PKG_DATA_ID_ENIGMATIS2="${GAME_ID_ENIGMATIS2}-data" PKG_DATA_ID_ENIGMATIS3="${GAME_ID_ENIGMATIS3}-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 APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-faerie-solitaire.sh0000755000000000000000000000677514471751340015423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Faerie Solitaire: # - Faerie Solitaire Harvest # - Faerie Solitaire Remastered # send your bug reports to contact@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_REMASTERED='faerie-solitaire-remastered' GAME_NAME_REMASTERED='Faerie Solitaire Remastered' GAME_ID_HARVEST='faerie-solitaire-harvest' GAME_NAME_HARVEST='Faerie Solitaire Harvest' ARCHIVE_BASE_REMASTERED_0_NAME='FaerieSolitaireRemastered_x86_64-linux.zip' ARCHIVE_BASE_REMASTERED_0_MD5='a225276e98b580bf76afa1d1b0f2780b' ARCHIVE_BASE_REMASTERED_0_SIZE='143721' ARCHIVE_BASE_REMASTERED_0_VERSION='2.0.19.12.15-itch.2019.12.19' ARCHIVE_BASE_REMASTERED_0_URL='https://subsoap.itch.io/faerie-solitaire-remastered-linux' ARCHIVE_BASE_HARVEST_0_NAME='FaerieSolitaireHarvest_x86_64-linux.tar.gz' ARCHIVE_BASE_HARVEST_0_MD5='8871ffc902d5ce3896cca715eebb3fd9' ARCHIVE_BASE_HARVEST_0_SIZE='173848' ARCHIVE_BASE_HARVEST_0_VERSION='1.1.19.9.21-itch.2019.09.21' ARCHIVE_BASE_HARVEST_0_URL='https://puppygames001.itch.io/faerie-solitaire-harvest' CONTENT_PATH_DEFAULT_REMASTERED='Faerie Solitaire Remastered' CONTENT_PATH_DEFAULT_HARVEST='FaerieSolitaireHarvest' CONTENT_LIBS_BIN_FILES_HARVEST=' libfmod.so libfmodstudio.so' CONTENT_GAME_BIN_FILES_REMASTERED=' FaerieSolitaireRemastered.x86_64' CONTENT_GAME_BIN_FILES_HARVEST=' FaerieSolitaireHarvest.x86_64' CONTENT_GAME_DATA_FILES=' game.arcd game.arci game.dmanifest game.projectc game.public.der' CONTENT_GAME0_DATA_FILES_HARVEST=' assets/banks/master.bank assets/banks/master.strings.bank' APP_MAIN_EXE_REMASTERED='FaerieSolitaireRemastered.x86_64' APP_MAIN_EXE_HARVEST='FaerieSolitaireHarvest.x86_64' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_REMASTERED=' 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 libstdc++.so.6 libX11.so.6 libXext.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_HARVEST=' 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 libstdc++.so.6 libX11.so.6 libXext.so.6' PKG_DATA_ID_REMASTERED="${GAME_ID_REMASTERED}-data" PKG_DATA_ID_HARVEST="${GAME_ID_HARVEST}-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 ## Fearie Solitaire Harvest - The game engine looks for FMOD libraries in a hardcoded path case "$(current_archive)" in ('ARCHIVE_BASE_HARVEST_'*) ln --symbolic "$(path_libraries)/libfmod.so" "$(package_path 'PKG_BIN')$(path_game_data)" ln --symbolic "$(path_libraries)/libfmodstudio.so" "$(package_path 'PKG_BIN')$(path_game_data)" ;; esac # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-filament.sh0000755000000000000000000000352114471751340013760 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Filament # send your bug reports to contact@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='filament' GAME_NAME='Filament' ARCHIVE_BASE_0_NAME='filament_1_0_2825_39570.sh' ARCHIVE_BASE_0_MD5='b4d3dfcdb34c007e3317ce474d105a89' ARCHIVE_BASE_0_SIZE='1313564' ARCHIVE_BASE_0_VERSION='1.0.2825-gog39570' ARCHIVE_BASE_0_URL='https://www.gog.com/game/filament' UNREALENGINE4_NAME='Filament' CONTENT_PATH_DEFAULT='data/noarch/game' APP_MAIN_EXE='Filament/Binaries/Linux/Filament-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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' 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-fill-multicolor.sh0000755000000000000000000000445014471751340015300 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Fill Multicolor # send your bug reports to contact@dotslashplay.it ### script_version=20241224.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='fill-multicolor' GAME_NAME='Fill Multicolor' ARCHIVE_BASE_1_NAME='setup_fill_multicolor_1.0.7_(77444).exe' ARCHIVE_BASE_1_MD5='b98a3ab69230a60c456d4c4eb2448a9c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='16000' ARCHIVE_BASE_1_VERSION='1.0.7-gog77444' ARCHIVE_BASE_1_URL='https://www.gog.com/game/fill_multicolor' ARCHIVE_BASE_0_NAME='setup_fill_multicolor_1.0.1_(70326).exe' ARCHIVE_BASE_0_MD5='c934cb4e7bf11097cb4a18a422bc805e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='14335' ARCHIVE_BASE_0_VERSION='1.0.1-gog70326' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' almixer.dll coronalabs.corona.native.dll lua.dll openal32.dll plugin_hwcursor.dll pthreads.dll fill multicolor.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/AleC Games/Fill Multicolor users/${USER}/AppData/Local/AleC Games/Fill Multicolor' APP_MAIN_EXE='fill multicolor.exe' APP_MAIN_ICON='resources/icon-win32.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" # 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-gnog.sh0000755000000000000000000000342714471751340013120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gnog # send your bug reports to contact@dotslashplay.it ### script_version=20240927.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gnog' GAME_NAME='GNOG' ARCHIVE_BASE_0_NAME='gnog-win.zip' ARCHIVE_BASE_0_MD5='b3ec6cf96b200ef12604eaffb26e7753' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0.6-itch.2019.08.13' ARCHIVE_BASE_0_URL='https://ko-op.itch.io/gnog' UNITY3D_NAME='gnog' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/KO_OP/GNOG' 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)" ## 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-grim-legends.sh0000755000000000000000000001441214471751340014537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grim Legends series: # - Grim Legends: The Forsaken Bride # - Grim Legends 2: Song of the Dark Swan # - Grim Legends 3: The Dark City # send your bug reports to contact@dotslashplay.it ### script_version=20241224.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_BRIDE='grim-legends-1' GAME_NAME_BRIDE='Grim Legends: The Forsaken Bride' GAME_ID_SWAN='grim-legends-2' GAME_NAME_SWAN='Grim Legends 2: Song of the Dark Swan' GAME_ID_CITY='grim-legends-3' GAME_NAME_CITY='Grim Legends 3: The Dark City' ARCHIVE_BASE_BRIDE_EN_0_NAME='grim_legends_the_forsaken_bride_gog_1_25983.sh' ARCHIVE_BASE_BRIDE_EN_0_MD5='3200efbc08fd59726bf9cedaadc8dee4' ARCHIVE_BASE_BRIDE_EN_0_SIZE='2507375' ARCHIVE_BASE_BRIDE_EN_0_VERSION='1.0-gog25983' ARCHIVE_BASE_BRIDE_EN_0_URL='https://www.gog.com/game/grim_legends_the_forsaken_bride' ARCHIVE_BASE_BRIDE_FR_0_NAME='grim_legends_the_forsaken_bride_french_gog_1_25983.sh' ARCHIVE_BASE_BRIDE_FR_0_MD5='ef7c7798d16b384eae58f89c8c09a753' ARCHIVE_BASE_BRIDE_FR_0_SIZE='2507374' ARCHIVE_BASE_BRIDE_FR_0_VERSION='1.0-gog25983' ARCHIVE_BASE_BRIDE_FR_0_URL='https://www.gog.com/game/grim_legends_the_forsaken_bride' ARCHIVE_BASE_SWAN_EN_0_NAME='grim_legends_2_song_of_the_dark_swan_gog_1_25983.sh' ARCHIVE_BASE_SWAN_EN_0_MD5='6add597284fece79a12410cd50c914d8' ARCHIVE_BASE_SWAN_EN_0_SIZE='1007775' ARCHIVE_BASE_SWAN_EN_0_VERSION='1.0-gog25983' ARCHIVE_BASE_SWAN_EN_0_URL='https://www.gog.com/game/grim_legends_2_song_of_the_dark_swan' ARCHIVE_BASE_SWAN_FR_0_NAME='grim_legends_2_song_of_the_dark_swan_french_gog_1_25983.sh' ARCHIVE_BASE_SWAN_FR_0_MD5='c87bffef7cbd2450ebda37cb5242b9af' ARCHIVE_BASE_SWAN_FR_0_SIZE='1007755' ARCHIVE_BASE_SWAN_FR_0_VERSION='1.0-gog25983' ARCHIVE_BASE_SWAN_FR_0_URL='https://www.gog.com/game/grim_legends_2_song_of_the_dark_swan' ARCHIVE_BASE_CITY_EN_0_NAME='grim_legends_3_the_dark_city_gog_1_25984.sh' ARCHIVE_BASE_CITY_EN_0_MD5='57cb3309f7207a6d2a1a7db811d63117' ARCHIVE_BASE_CITY_EN_0_SIZE='1131903' ARCHIVE_BASE_CITY_EN_0_VERSION='1.0-gog25984' ARCHIVE_BASE_CITY_EN_0_URL='https://www.gog.com/game/grim_legends_3_the_dark_city' ARCHIVE_BASE_CITY_FR_0_NAME='grim_legends_3_the_dark_city_french_gog_1_25984.sh' ARCHIVE_BASE_CITY_FR_0_MD5='9c6d027fe97b10d6dbc7b1544288aaea' ARCHIVE_BASE_CITY_FR_0_SIZE='1132071' ARCHIVE_BASE_CITY_FR_0_VERSION='1.0-gog25984' ARCHIVE_BASE_CITY_FR_0_URL='https://www.gog.com/game/grim_legends_3_the_dark_city' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' *_amd64' CONTENT_GAME_BIN32_FILES=' *_i386' CONTENT_GAME_L10N_FILES=' Game_??.cub Game_768_??.cub Game_900_??.cub Game_1080_??.cub Game_1080_900_??.cub' CONTENT_GAME_DATA_FILES=' Game Game.cub Game_768.cub Game_900.cub Game_1080.cub Game_1080_900.cub *.json' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Artifex Mundi' APP_MAIN_EXE_BIN64_BRIDE='GrimLegends_TheForsakenBride_amd64' APP_MAIN_EXE_BIN64_SWAN='GrimLegends_SongOfTheDarkSwan_amd64' APP_MAIN_EXE_BIN64_CITY='DarkCity_amd64' APP_MAIN_EXE_BIN32_BRIDE='GrimLegends_TheForsakenBride_i386' APP_MAIN_EXE_BIN32_SWAN='GrimLegends_SongOfTheDarkSwan_i386' APP_MAIN_EXE_BIN32_CITY='DarkCity_i386' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_L10N PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE 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 libXext.so.6 libXinerama.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN64_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES_CITY" PKG_BIN32_DEPENDENCIES_LIBRARIES_CITY="$PKG_BIN_DEPENDENCIES_LIBRARIES_CITY" PKG_L10N_BASE_ID_BRIDE="${GAME_ID_BRIDE}-l10n" PKG_L10N_BASE_ID_SWAN="${GAME_ID_SWAN}-l10n" PKG_L10N_BASE_ID_CITY="${GAME_ID_CITY}-l10n" PKG_L10N_ID_BRIDE_EN="${PKG_L10N_BASE_ID_BRIDE}-en" PKG_L10N_ID_BRIDE_FR="${PKG_L10N_BASE_ID_BRIDE}-fr" PKG_L10N_ID_SWAN_EN="${PKG_L10N_BASE_ID_SWAN}-en" PKG_L10N_ID_SWAN_FR="${PKG_L10N_BASE_ID_SWAN}-fr" PKG_L10N_ID_CITY_EN="${PKG_L10N_BASE_ID_CITY}-en" PKG_L10N_ID_CITY_FR="${PKG_L10N_BASE_ID_CITY}-fr" PKG_L10N_PROVIDES_BRIDE=" $PKG_L10N_BASE_ID_BRIDE" PKG_L10N_PROVIDES_SWAN=" $PKG_L10N_BASE_ID_SWAN" PKG_L10N_PROVIDES_CITY=" $PKG_L10N_BASE_ID_CITY" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='English localization' PKG_L10N_DESCRIPTION_BRIDE_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_BRIDE_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_SWAN_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_SWAN_FR="$PKG_L10N_DESCRIPTION_FR" PKG_L10N_DESCRIPTION_CITY_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_CITY_FR="$PKG_L10N_DESCRIPTION_FR" PKG_DATA_ID_BRIDE="${GAME_ID_BRIDE}-data" PKG_DATA_ID_SWAN="${GAME_ID_SWAN}-data" PKG_DATA_ID_CITY="${GAME_ID_CITY}-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 APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hidden-paws.sh0000755000000000000000000000406114471751340014364 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hidden Paws # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hidden-paws' GAME_NAME='Hidden Paws' ARCHIVE_BASE_1_NAME='HiddenPaws.zip' ARCHIVE_BASE_1_MD5='24821800ac3a2ae506de8660e0a628c6' ARCHIVE_BASE_1_SIZE='502654' ARCHIVE_BASE_1_VERSION='1.0-itch.2020.11.19' ARCHIVE_BASE_1_URL='https://manichyena.itch.io/hidden-paws' ## ./play.it 2.30 does not have support for multiple archives sharing a same name ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/355 #ARCHIVE_BASE_0_NAME='HiddenPaws.zip' #ARCHIVE_BASE_0_MD5='ae78aab96f9cebf5ecee47846505acc0' #ARCHIVE_BASE_0_SIZE='410000' #ARCHIVE_BASE_0_VERSION='1.0-itch' UNITY3D_NAME='Hidden Paws' UNITY3D_NAME_0='HiddenPaws' CONTENT_PATH_DEFAULT='HiddenPaws' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Manic Hyena/Hidden Paws' 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-hidden-through-time-1-expansions.sh0000755000000000000000000001135314471751340020353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Mopi set -o errexit ### # Hidden Through Time expansions: # - Viking Tales # - Legends of Japan # - Road to Rome # - Pirate Treasures # - Aztec Rituals # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hidden-through-time-1' GAME_NAME='Hidden Through Time' EXPANSION_ID_VIKING='viking-tales' EXPANSION_NAME_VIKING='Viking Tales' EXPANSION_ID_JAPAN='legends-of-japan' EXPANSION_NAME_JAPAN='Legends of Japan' EXPANSION_ID_ROME='road-to-rome' EXPANSION_NAME_ROME='Road to Rome' EXPANSION_ID_PIRATES='pirate-treasures' EXPANSION_NAME_PIRATES='Pirate Treasures' EXPANSION_ID_AZTEC='aztec-rituals' EXPANSION_NAME_AZTEC='Aztec Rituals' # Archives ## Viking Tales ARCHIVE_BASE_VIKING_1_NAME='setup_hidden_through_time_-_viking_tales_1.0.9b_(56935).exe' ARCHIVE_BASE_VIKING_1_MD5='ab9b8a7349085128affe778fcc0f84e9' ARCHIVE_BASE_VIKING_1_TYPE='innosetup' ARCHIVE_BASE_VIKING_1_SIZE='10457' ARCHIVE_BASE_VIKING_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_VIKING_1_URL='https://www.gog.com/game/hidden_through_time_viking_tales' ARCHIVE_BASE_VIKING_0_NAME='setup_hidden_through_time_-_viking_tales_1.0.7_(46929).exe' ARCHIVE_BASE_VIKING_0_MD5='0367e7a34d784d6aca0f54e56bd0d47e' ARCHIVE_BASE_VIKING_0_TYPE='innosetup' ARCHIVE_BASE_VIKING_0_SIZE='7200' ARCHIVE_BASE_VIKING_0_VERSION='1.0.7-gog46929' ## Legends of Japan ARCHIVE_BASE_JAPAN_1_NAME='setup_hidden_through_time_-_legends_of_japan_1.0.9b_(56935).exe' ARCHIVE_BASE_JAPAN_1_MD5='f5c129fcb7f481badd11465d726b018a' ARCHIVE_BASE_JAPAN_1_TYPE='innosetup' ARCHIVE_BASE_JAPAN_1_SIZE='10413' ARCHIVE_BASE_JAPAN_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_JAPAN_1_URL='https://www.gog.com/game/hidden_through_time_legends_of_japan' ARCHIVE_BASE_JAPAN_0_NAME='setup_hidden_through_time_-_legends_of_japan_1.0.7_(46929).exe' ARCHIVE_BASE_JAPAN_0_MD5='d05628b0410b21559e8aebc99e1543c6' ARCHIVE_BASE_JAPAN_0_TYPE='innosetup' ARCHIVE_BASE_JAPAN_0_SIZE='7400' ARCHIVE_BASE_JAPAN_0_VERSION='1.0.7-gog46929' ## Road to Rome ARCHIVE_BASE_ROME_1_NAME='setup_hidden_through_time_road_to_rome_1.0.9b_(56935).exe' ARCHIVE_BASE_ROME_1_MD5='6a0f909d0759c4f899cefcd0bac0ebe9' ARCHIVE_BASE_ROME_1_TYPE='innosetup' ARCHIVE_BASE_ROME_1_SIZE='10594' ARCHIVE_BASE_ROME_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_ROME_1_URL='https://www.gog.com/game/hidden_through_time_road_to_rome' ARCHIVE_BASE_ROME_0_NAME='setup_hidden_through_time_road_to_rome_1.0.7_(46929).exe' ARCHIVE_BASE_ROME_0_MD5='2e08360a0232df11d7016fe0ef2b5629' ARCHIVE_BASE_ROME_0_TYPE='innosetup' ARCHIVE_BASE_ROME_0_SIZE='8200' ARCHIVE_BASE_ROME_0_VERSION='1.0.7-gog46929' ## Pirate Treasures ARCHIVE_BASE_PIRATES_1_NAME='setup_hidden_through_time_-_pirate_treasures_1.0.9b_(56935).exe' ARCHIVE_BASE_PIRATES_1_MD5='d9f92a4d9673a1a5236d242ea0240a6d' ARCHIVE_BASE_PIRATES_1_TYPE='innosetup' ARCHIVE_BASE_PIRATES_1_SIZE='6620' ARCHIVE_BASE_PIRATES_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_PIRATES_1_URL='https://www.gog.com/game/hidden_through_time_pirate_treasures' ## Aztec Rituals ARCHIVE_BASE_AZTEC_1_NAME='setup_hidden_through_time_-_aztec_rituals_1.0.9b_(56935).exe' ARCHIVE_BASE_AZTEC_1_MD5='378bd5618bbbe3f3d2746593cd988c52' ARCHIVE_BASE_AZTEC_1_TYPE='innosetup' ARCHIVE_BASE_AZTEC_1_SIZE='7043' ARCHIVE_BASE_AZTEC_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_AZTEC_1_URL='https://www.gog.com/game/hidden_through_time_aztec_rituals' CONTENT_GAME_MAIN_PATH='.' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' ## Ensure smooth upgrades from packages generated with pre-20240220.4 game scripts. PKG_MAIN_PROVIDES_VIKING="${PKG_MAIN_PROVIDES_VIKING:-} hidden-through-time-viking-tales" PKG_MAIN_PROVIDES_JAPAN="${PKG_MAIN_PROVIDES_JAPAN:-} hidden-through-time-legends-of-japan" PKG_MAIN_PROVIDES_ROME="${PKG_MAIN_PROVIDES_ROME:-} hidden-through-time-road-to-rome" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' 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-hidden-through-time-1.sh0000755000000000000000000000450614471751340016170 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Hidden Through Time # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hidden-through-time-1' GAME_NAME='Hidden Through Time' ARCHIVE_BASE_1_NAME='setup_hidden_through_time_1.0.9b_(56935).exe' ARCHIVE_BASE_1_MD5='fafb6b639f687a13c2c6c293550a0ec6' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='632768' ARCHIVE_BASE_1_VERSION='1.0.9b-gog56935' ARCHIVE_BASE_1_URL='https://www.gog.com/game/hidden_through_time' ARCHIVE_BASE_0_NAME='setup_hidden_through_time_1.0.7_(46929).exe' ARCHIVE_BASE_0_MD5='f64269fa2f3627fe5ad74cae5ff11869' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='1.0.7-gog46929' UNITY3D_NAME='hidden' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Crazy Monkey Studios/Hidden Through Time' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure smooth upgrades from packages generated with pre-20240220.1 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} hidden-through-time" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrades from packages generated with pre-20240220.1 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} hidden-through-time-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-hidden-through-time-2.sh0000755000000000000000000000346614471751340016175 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hidden Through Time 2 # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hidden-through-time-2' GAME_NAME='Hidden Through Time 2: Myths & Magic' ARCHIVE_BASE_0_NAME='setup_hidden_through_time_2_myths__magic_1.0.30a_(64bit)_(68025).exe' ARCHIVE_BASE_0_MD5='20b5488ad9f819ea3e008f8df2a28ab1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='682606' ARCHIVE_BASE_0_VERSION='1.0.30a-gog68025' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hidden_through_time_2_myths_magic' UNITY3D_NAME='htt2' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Rogueside/HTT2' 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-infinifactory.sh0000755000000000000000000000454214471751340015031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Infinifactory # send your bug reports to contact@dotslashplay.it ### script_version=20241019.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='infinifactory' GAME_NAME='Infinifactory' ARCHIVE_BASE_0_NAME='infinifactory_11_14_2020_43258.sh' ARCHIVE_BASE_0_MD5='c0b873dde4f29d49f0c7aa3fec2b1384' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2020.11.14-gog43258' ARCHIVE_BASE_0_URL='https://www.gog.com/game/infinifactory' UNITY3D_NAME='infinifactory' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' *.pdf *.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_SIBLING="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLING="$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-interrogation.sh0000755000000000000000000000516314471751340015051 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Interrogation: You Will Be Deceived # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='interrogation' GAME_NAME='Interrogation: You Will Be Deceived' ARCHIVE_BASE_0_NAME='interrogation_you_will_be_deceived_1_1_9_a1704342_39945.sh' ARCHIVE_BASE_0_MD5='6e5c4d0ed24129d10a7781d034665b89' ARCHIVE_BASE_0_SIZE='630000' ARCHIVE_BASE_0_VERSION='1.1.9.a1704342-gog39954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/interrogation_you_will_be_deceived' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so libfmodstudio.so' ## The game binary is linked against libGalaxy64.so. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libGalaxy64.so" CONTENT_GAME_BIN_FILES=' Interrogation.x86_64' CONTENT_GAME_DATA_FILES=' banks game.*' CONTENT_DOC_FILES=' licenses.html' APP_MAIN_EXE='Interrogation.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## A link to libfmod.so.12 is omitted, the shipped libfmod.so is probably used for it. 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 libstdc++.so.6 libX11.so.6 libXext.so.6 libXi.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 ## The game engine looks for some libraries in a hardcoded path ln --symbolic "$(path_libraries)/libfmod.so" "$(package_path 'PKG_BIN')$(path_game_data)" ln --symbolic "$(path_libraries)/libfmodstudio.so" "$(package_path 'PKG_BIN')$(path_game_data)" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lake-ridden.sh0000755000000000000000000000411714471751340014342 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lake Ridden # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='lake-ridden' GAME_NAME='Lake Ridden' ARCHIVE_BASE_1_NAME='setup_lake_ridden_1.7.1853_(64bit)_(45634).exe' ARCHIVE_BASE_1_MD5='e5629cee62ab9e90c59a079697674fa4' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='2700000' ARCHIVE_BASE_1_VERSION='1.7.1853-gog45634' ARCHIVE_BASE_1_URL='https://www.gog.com/game/lake_ridden' ARCHIVE_BASE_0_NAME='setup_lake_ridden_1.6.1526_(64bit)_(25884).exe' ARCHIVE_BASE_0_MD5='12b62c3399e51b27b5f91d9276d1aabe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.6.1526-gog25884' UNITY3D_NAME='lakeridden' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Midnight Hub/Lake Ridden' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Midnight Hub\Lake Ridden' 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-links-puzzle.sh0000755000000000000000000000441214471751340014630 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Links Puzzle # send your bug reports to contact@dotslashplay.it ### script_version=20241217.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='links-puzzle' GAME_NAME='Links Puzzle' ARCHIVE_BASE_1_NAME='setup_links_puzzle_1.0.2_(72721).exe' ARCHIVE_BASE_1_MD5='5bc0a87e2bdfcf204feda0cb3d3e9ad8' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='26071' ARCHIVE_BASE_1_VERSION='1.0.2-gog72721' ARCHIVE_BASE_1_URL='https://www.gog.com/game/links_puzzle' ARCHIVE_BASE_0_NAME='setup_links_puzzle_1.0.1_(70326).exe' ARCHIVE_BASE_0_MD5='60c9021cdf833b2ee3feeead1f0ffe56' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='24412' ARCHIVE_BASE_0_VERSION='1.0.1-gog70326' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' almixer.dll coronalabs.corona.native.dll lua.dll openal32.dll plugin_hwcursor.dll pthreads.dll links puzzle.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/AleC Games/Links Puzzle users/${USER}/AppData/Local/AleC Games/Links Puzzle' APP_MAIN_EXE='links puzzle.exe' APP_MAIN_ICON='resources/icon-win32.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" # 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-lyne.sh0000755000000000000000000000771414471751340013140 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lyne # send your bug reports to contact@dotslashplay.it ### script_version=20241224.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='lyne' GAME_NAME='Lyne' ARCHIVE_BASE_ITCH_0_NAME='LYNE_linux.zip' ARCHIVE_BASE_ITCH_0_MD5='71ffe45ef87ce65c3f8b29987aa602db' ARCHIVE_BASE_ITCH_0_SIZE='168723' ARCHIVE_BASE_ITCH_0_VERSION='1.5.0-itch.2024.08.16' ARCHIVE_BASE_ITCH_0_URL='https://thomasbowker.itch.io/lyne' ARCHIVE_BASE_HUMBLE_0_NAME='LYNE_145_linux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='85c9ca3cd3c7dda1d351c8ab0441d877' ARCHIVE_BASE_HUMBLE_0_SIZE='142863' ARCHIVE_BASE_HUMBLE_0_VERSION='1.4.5-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/lyne' ARCHIVE_BASE_HUMBLE_MULTIARCH_0_NAME='LYNE_120_lin.zip' ARCHIVE_BASE_HUMBLE_MULTIARCH_0_MD5='f05951586a5b8cf42e20e0e6f04e65da' ARCHIVE_BASE_HUMBLE_MULTIARCH_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_MULTIARCH_0_VERSION='1.2.0.30-humble171211' UNITY3D_NAME='LYNE' UNITY3D_PLUGINS_HUMBLE_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_PATH_DEFAULT_HUMBLE='LYNE_145_lin' CONTENT_PATH_DEFAULT_HUMBLE_MULTIARCH='LYNE_120_lin' CONTENT_GAME0_BIN_FILES_ITCH=' LYNE.x64' CONTENT_GAME0_BIN_FILES_HUMBLE_0=' LYNE.x64' CONTENT_DOC_DATA_FILES=' readme.txt' APP_MAIN_EXE_ITCH_0='LYNE.x64' APP_MAIN_EXE_HUMBLE_0='LYNE.x64' ## Force windowed mode to prevent mouse input problems APP_MAIN_OPTIONS='-screen-fullscreen 0' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_HUMBLE_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_ITCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE=' 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_HUMBLE_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_HUMBLE_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_HUMBLE_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_HUMBLE_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_HUMBLE_MULTIARCH_'*) # The multiarch archives rely on UNITY3D_PLUGINS to exclude unwanted libraries. ;; (*) 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_HUMBLE_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-mousecraft.sh0000755000000000000000000000521614471751340014334 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # MouseCraft # send your bug reports to contact@dotslashplay.it ### script_version=20241201.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='mousecraft' GAME_NAME='MouseCraft' ARCHIVE_BASE_0_NAME='gog_mousecraft_2.1.0.7.sh' ARCHIVE_BASE_0_MD5='5d99353d6ef0db693cc3a492cfb8ae4c' ARCHIVE_BASE_0_SIZE='861107' ARCHIVE_BASE_0_VERSION='1.20-gog2.1.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mousecraft' UNITY3D_NAME='MouseCraft' 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' 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 package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-murder-by-numbers.sh0000755000000000000000000000357314471751340015547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Murder by Numbers # send your bug reports to contact@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='murder-by-numbers' GAME_NAME='Murder by Numbers' ARCHIVE_BASE_0_NAME='setup_murder_by_numbers_1.26_(39758).exe' ARCHIVE_BASE_0_MD5='46ad317048a0f9d51d2811ec4bb104ff' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.26-gog39758' ARCHIVE_BASE_0_URL='https://www.gog.com/game/murder_by_numbers' UNITY3D_NAME='murderbynumbers' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Mediatonic/Murder by Numbers' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' 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-murder-mystery-machine.sh0000755000000000000000000000351614471751340016577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Murder Mystery Machine # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='murder-mystery-machine' GAME_NAME='Murder Mystery Machine' ARCHIVE_BASE_0_NAME='setup_murder_mystery_machine_1.0.3_(52168).exe' ARCHIVE_BASE_0_MD5='69ded10c35ef888f13823fe5ebc8d2ac' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0.3-gog52168' ARCHIVE_BASE_0_URL='https://www.gog.com/game/murder_mystery_machine' UNITY3D_NAME='murdermysterymachine' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Blazing Griffin/Murder Mystery Machine' 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-my-brother-rabbit.sh0000755000000000000000000000466514471751340015524 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # My Brother Rabbit # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='my-brother-rabbit' GAME_NAME='My Brother Rabbit' ARCHIVE_BASE_0_NAME='my_brother_rabbit_gog_2_23945.sh' ARCHIVE_BASE_0_MD5='e8dd42bb3ac4e10c56cd5da36cb60c99' ARCHIVE_BASE_0_SIZE='860634' ARCHIVE_BASE_0_VERSION='2-gog23945' ARCHIVE_BASE_0_URL='https://www.gog.com/game/my_brother_rabbit' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' MyBrotherRabbit_amd64' CONTENT_GAME_BIN32_FILES=' MyBrotherRabbit_i386' CONTENT_GAME_DATA_FILES=' linux game.json game.sparkconfig' APP_MAIN_EXE_BIN32='MyBrotherRabbit_i386' APP_MAIN_EXE_BIN64='MyBrotherRabbit_amd64' APP_MAIN_ICON='../support/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 libdl.so.2 libgcc_s.so.1 libGL.so.1 libidn.so.11 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.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" # 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-myths-of-orion.sh0000755000000000000000000000412714471751340015056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Myths Of Orion: Light From The North # send your bug reports to contact@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='myths-of-orion' GAME_NAME='Myths Of Orion: Light From The North' ARCHIVE_BASE_0_NAME='myths_of_orion_light_from_the_north_1_11_7_7_75947.sh' ARCHIVE_BASE_0_MD5='e2ea5b1cb3b0a8f5ad62f6020902cd1a' ARCHIVE_BASE_0_SIZE='522971' ARCHIVE_BASE_0_VERSION='1.11.7.7-gog75947' ARCHIVE_BASE_0_URL='https://www.gog.com/game/myths_of_orion_light_from_the_north' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' cfg witch_gog_linux_x64' CONTENT_GAME_DATA_FILES=' data icon.png' CONTENT_DOC_DATA_FILES=' linux_readme.txt version.txt' APP_MAIN_EXE='witch_gog_linux_x64' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-nightmares-from-the-deep.sh0000755000000000000000000001074414471751340016761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Nightmares From the Deep series: # - Nightmares From the Deep 1: The Cursed Heart # - Nightmares From the Deep 2: The Siren's Call # - Nightmares From the Deep 3: Davy Jones # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='nightmares-from-the-deep' GAME_ID_EPISODE1="${GAME_ID}-1" GAME_ID_EPISODE2="${GAME_ID}-2" GAME_ID_EPISODE3="${GAME_ID}-3" GAME_NAME='Nightmares From the Deep' GAME_NAME_EPISODE1="${GAME_NAME}: The Cursed Heart" GAME_NAME_EPISODE2="${GAME_NAME} 2: The Sirenʼs Call" GAME_NAME_EPISODE3="${GAME_NAME} 3: Davy Jones" ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE1_0_NAME='nightmares_from_the_deep_the_cursed_heart_en_gog_1_22620.sh' ARCHIVE_BASE_EPISODE1_0_MD5='9978e7f6b340574f855d530c65752bab' ARCHIVE_BASE_EPISODE1_0_SIZE='1000000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog22620' ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE2_0_NAME='nightmares_from_the_deep_2_the_siren_s_call_en_gog_1_22645.sh' ARCHIVE_BASE_EPISODE2_0_MD5='668260739c20276cfaac8dc3c6efdbb6' ARCHIVE_BASE_EPISODE2_0_SIZE='1200000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog22645' ## This installer used to be sold by gog.com, ## but has been dropped from their store on 2022-01-30. ARCHIVE_BASE_EPISODE3_0_NAME='nightmares_from_the_deep_3_davy_jones_en_gog_1_22689.sh' ARCHIVE_BASE_EPISODE3_0_MD5='e5d0d8122840ba20e5d23d4c0524b6b0' ARCHIVE_BASE_EPISODE3_0_SIZE='1500000' ARCHIVE_BASE_EPISODE3_0_VERSION='1.0-gog22689' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' NightmaresFromTheDeep_*_amd64' CONTENT_GAME_BIN32_FILES=' NightmaresFromTheDeep_*_i386' CONTENT_GAME_DATA_FILES=' Game out Game.cub Game_en.cub game.json' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Artifex Mundi' APP_MAIN_EXE_BIN64_EPISODE1='NightmaresFromTheDeep_TheCursedHeart_amd64' APP_MAIN_EXE_BIN64_EPISODE2='NightmaresFromTheDeep_TheSirensCall_amd64' APP_MAIN_EXE_BIN64_EPISODE3='NightmaresFromTheDeep_DavyJones_amd64' APP_MAIN_EXE_BIN32_EPISODE1='NightmaresFromTheDeep_TheCursedHeart_i386' APP_MAIN_EXE_BIN32_EPISODE2='NightmaresFromTheDeep_TheSirensCall_i386' APP_MAIN_EXE_BIN32_EPISODE3='NightmaresFromTheDeep_DavyJones_i386' APP_MAIN_ICON='../support/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 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 libXext.so.6 libXinerama.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES libidn.so.11" PKG_BIN64_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1" PKG_BIN32_DEPENDENCIES_LIBRARIES_EPISODE1="$PKG_BIN_DEPENDENCIES_LIBRARIES_EPISODE1" PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_ID_EPISODE3="${GAME_ID_EPISODE3}-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 APP_MAIN_EXE_BIN64=$(context_value 'APP_MAIN_EXE_BIN64') APP_MAIN_EXE_BIN32=$(context_value 'APP_MAIN_EXE_BIN32') launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-one-action-heroes.sh0000755000000000000000000000465014471751340015504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # One Action Heroes # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='one-action-heroes' GAME_NAME='One Action Heroes' ARCHIVE_BASE_0_NAME='One Action Heroes (linux).zip' ARCHIVE_BASE_0_MD5='12e501d79f2dcfe38a7ae7b789397390' ARCHIVE_BASE_0_SIZE='100000' ARCHIVE_BASE_0_VERSION='1.1.1-itch' ARCHIVE_BASE_0_URL='https://tapehead-co.itch.io/one-action-heroes' UNITY3D_NAME='One Action Heroes' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='One Action Heroes (linux)' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_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 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 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-pixross.sh0000755000000000000000000000400614471751340013667 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pixross # send your bug reports to contact@dotslashplay.it ### script_version=20241108.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pixross' GAME_NAME='Pixross' ARCHIVE_BASE_0_NAME='Pixross-1.3.0 (Linux).zip' ARCHIVE_BASE_0_MD5='c0dbe9011d184404c4e85f080f417161' ARCHIVE_BASE_0_SIZE='80960' ARCHIVE_BASE_0_VERSION='1.3.0-itch' ARCHIVE_BASE_0_URL='https://kenney.itch.io/pixross' UNITY3D_NAME='Pixross' 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_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-please-fix-the-road.sh0000755000000000000000000000377314471751340015730 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Please Fix The Road # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='please-fix-the-road' GAME_NAME='Please Fix the Road' ARCHIVE_BASE_0_NAME='please_fix_the_road_1_1_7_56794.sh' ARCHIVE_BASE_0_MD5='090724f6715935a3db3c012e2969538e' ARCHIVE_BASE_0_SIZE='480000' ARCHIVE_BASE_0_VERSION='1.1.7-gog56794' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/please_fix_the_road' UNITY3D_NAME='Please Fix The Road' ## The Steam library must be included to avoid game crashes 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" # 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-pony-island.sh0000755000000000000000000000417614471751340014425 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pony Island # send your bug reports to contact@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pony-island' GAME_NAME='Pony Island' ARCHIVE_BASE_0_NAME='ponyisland_linux_v1.20.zip' ARCHIVE_BASE_0_MD5='30c4f063e360de53cdb6a945df82cca4' ARCHIVE_BASE_0_SIZE='358612' ARCHIVE_BASE_0_VERSION='1.20-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pony-island' UNITY3D_NAME='PonyIsland' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIRES=' 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 libsteam_api.so libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-puzzle-agent.sh0000755000000000000000000000636614471751340014620 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Puzzle Agent series: # - Puzzle Agent # - Puzzle Agent 2 # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_EPISODE1='puzzle-agent-1' GAME_NAME_EPISODE1='Puzzle Agent' GAME_ID_EPISODE2='puzzle-agent-2' GAME_NAME_EPISODE2='Puzzle Agent 2' ARCHIVE_BASE_EPISODE1_1_NAME='setup_puzzle_agent_1.0_(21444).exe' ARCHIVE_BASE_EPISODE1_1_MD5='b986c9a9ed5bce6f8329cc76965ee295' ARCHIVE_BASE_EPISODE1_1_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_1_SIZE='260000' ARCHIVE_BASE_EPISODE1_1_VERSION='1.0-gog21444' ARCHIVE_BASE_EPISODE1_1_URL='https://www.gog.com/game/puzzle_agent' ARCHIVE_BASE_EPISODE1_0_NAME='setup_puzzle_agent_2.0.0.3.exe' ARCHIVE_BASE_EPISODE1_0_MD5='68155b4aff9aa9e28c107f5b2ff994b5' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='260000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_EPISODE2_0_NAME='setup_puzzle_agent_2_1.0_(21444).exe' ARCHIVE_BASE_EPISODE2_0_MD5='f3065abf496f53be933c2ab8a2b70dd7' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='410000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-gog21444' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/puzzle_agent_2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EPISODE1_0='app' CONTENT_GAME_BIN_FILES=' fmodex.dll grickle101.exe grickle102.exe' ## TODO: Check if the Steam library is required. CONTENT_GAME0_BIN_FILES=' steam_api.dll' CONTENT_GAME_DATA_FILES=' pack' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/Documents/Telltale Games/puzzle-agent' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/Documents/Telltale Games/puzzle-agent-2' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE_EPISODE1='grickle101.exe' APP_MAIN_EXE_EPISODE2='grickle102.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure smooth upgrade from packages generated with pre-20210928.2 game scripts PKG_BIN_PROVIDES_EPISODE1="${PKG_BIN_PROVIDES_EPISODE1:-} puzzle-agent" PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrade from packages generated with pre-20210928.2 game scripts PKG_DATA_PROVIDES_EPISODE1="${PKG_DATA_PROVIDES_EPISODE1:-} puzzle-agent-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-qube-1.sh0000755000000000000000000000676514471751340013270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Q.U.B.E. # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='qube-1' GAME_NAME='Q.U.B.E.' ARCHIVE_BASE_0_NAME='QUBE-Linux-2015052901.sh' ARCHIVE_BASE_0_MD5='5da6f592bad4aa71c6e2a469f7435453' ARCHIVE_BASE_0_VERSION='2.8-humble2015052901' ARCHIVE_BASE_0_SIZE='1269181' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/qube-directors-cut' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_RELATIVE_PATH='noarch' CONTENT_GAME_BIN_FILES=' Engine' ## FIXME: The shipped libraries should be listed using CONTENT_LIBS_xxx variables CONTENT_GAME0_BIN_RELATIVE_PATH='x86' CONTENT_GAME0_BIN_FILES=' Binaries/Linux/QUBEGame-Linux Binaries/Linux/lib/libPhysXCooking.so Binaries/Linux/lib/libPhysXCore.so Binaries/Linux/lib/libPhysXExtensions.so.1 Binaries/Linux/lib/libPhysXLoader.so.1 Binaries/Linux/lib/libtcmalloc.so.0' ## The game ships a patched SDL2_Mixer that has an additional symbol: MinorityMix_SetPosition, ## the SDL2_Mixer source code has no reference to it (only Mix_SetPosition) ## and online searching only shows similar problems with other Unreal Engine games. ## TODO: It might be possible to fix this using preloading or using an SDL2_Mixer wrapper instead. ## Analysis of the binary's MinorityMix_SetPosition function is welcome. CONTENT_GAME1_BIN_RELATIVE_PATH='x86' CONTENT_GAME1_BIN_FILES=' Binaries/Linux/lib/libSDL2_mixer-2.0.so.0' ## The game binary is linked against libsteam_api.so, so this library can not be dropped. CONTENT_GAME2_BIN_RELATIVE_PATH='x86' CONTENT_GAME2_BIN_FILES=' Binaries/Linux/lib/libsteam_api.so' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' QUBEGame QUBEIcon.*' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux BuildVersion.txt UpdateLog.txt' USER_PERSISTENT_FILES=' Binaries/Linux/SaveGame.bin' APP_MAIN_EXE='Binaries/Linux/QUBEGame-Linux' APP_MAIN_ICON='noarch/QUBEIcon.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 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux ./QUBEGame-Linux "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-regency-solitaire.sh0000755000000000000000000000430714471751340015611 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Regency Solitaire # send your bug reports to contact@dotslashplay.it ### script_version=20240929.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='regency-solitaire' GAME_NAME='Regency Solitaire' ARCHIVE_BASE_0_NAME='RegencySolitaireV117b_1472495785.tar.gz' ARCHIVE_BASE_0_MD5='15e8377d2cac99a52407cb399bd1ee7c' ARCHIVE_BASE_0_SIZE='71000' ARCHIVE_BASE_0_VERSION='1.17b-humble160829' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/regency-solitaire' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='regency-solitaire_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='01a7c7b168e2cb315d2058ff5e6a53aa' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/regency-solitaire/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 256x256' CONTENT_PATH_DEFAULT='RegencySolitaireV117b' CONTENT_GAME_BIN_FILES=' RegencySolitaire' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='RegencySolitaire' 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 libGLU.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # 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-rusty-lake.sh0000755000000000000000000000733514471751340014270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rusty Lake series: # - Rusty Lake Hotel # - Rusty Lake Roots # - Rusty Lake Paradise # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID_BASE='rusty-lake' GAME_ID_HOTEL="${GAME_ID_BASE}-hotel" GAME_ID_ROOTS="${GAME_ID_BASE}-roots" GAME_ID_PARADISE="${GAME_ID_BASE}-paradise" GAME_NAME_BASE='Rusty Lake' GAME_NAME_HOTEL="$GAME_NAME_BASE Hotel" GAME_NAME_ROOTS="$GAME_NAME_BASE Roots" GAME_NAME_PARADISE="$GAME_NAME_BASE Paradise" ARCHIVE_BASE_HOTEL_0_NAME='setup_rusty_lake_hotel_gog-1_(30681).exe' ARCHIVE_BASE_HOTEL_0_MD5='a6121ae5cd353c8e86342e7b45cef9b4' ARCHIVE_BASE_HOTEL_0_TYPE='innosetup' ARCHIVE_BASE_HOTEL_0_SIZE='58000' ARCHIVE_BASE_HOTEL_0_VERSION='1.0-gog30681' ARCHIVE_BASE_HOTEL_0_URL='https://www.gog.com/game/rusty_lake_hotel' ARCHIVE_BASE_ROOTS_0_NAME='setup_rusty_lake_roots_gog-1_(30681).exe' ARCHIVE_BASE_ROOTS_0_MD5='dae526768d941d55dc80700cc4d3a678' ARCHIVE_BASE_ROOTS_0_TYPE='innosetup' ARCHIVE_BASE_ROOTS_0_SIZE='110000' ARCHIVE_BASE_ROOTS_0_VERSION='1.0-gog30681' ARCHIVE_BASE_ROOTS_0_URL='https://www.gog.com/game/rusty_lake_roots' ARCHIVE_BASE_PARADISE_0_NAME='setup_rusty_lake_paradise_gog-1_(30704).exe' ARCHIVE_BASE_PARADISE_0_MD5='5ff0a14bcc068232cb9948987474b503' ARCHIVE_BASE_PARADISE_0_TYPE='innosetup' ARCHIVE_BASE_PARADISE_0_SIZE='130000' ARCHIVE_BASE_PARADISE_0_VERSION='1.0-gog30704' ARCHIVE_BASE_PARADISE_0_URL='https://www.gog.com/game/rusty_lake_paradise' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' adobe air meta-inf' CONTENT_GAME_BIN_FILES_HOTEL="$CONTENT_GAME_BIN_FILES rustylakehotel.exe" CONTENT_GAME_BIN_FILES_ROOTS="$CONTENT_GAME_BIN_FILES rustylakeroots.exe" CONTENT_GAME_BIN_FILES_PARADISE="$CONTENT_GAME_BIN_FILES rustylakeparadise.exe" CONTENT_GAME_DATA_FILES=' icons' CONTENT_GAME_DATA_FILES_HOTEL="$CONTENT_GAME_DATA_FILES rustylakehotel.swf" CONTENT_GAME_DATA_FILES_ROOTS="$CONTENT_GAME_DATA_FILES rustylakeroots.swf" CONTENT_GAME_DATA_FILES_PARADISE="$CONTENT_GAME_DATA_FILES paradise.swf paradise-translations.xml" CONTENT_DOC_DATA_FILES=' rusty lake*read me.pdf' APP_MAIN_EXE_HOTEL='rustylakehotel.exe' APP_MAIN_EXE_ROOTS='rustylakeroots.exe' APP_MAIN_EXE_PARADISE='rustylakeparadise.exe' WINE_PERSISTENT_DIRECTORIES_HOTEL=' users/${USER}/AppData/Roaming/com.RustyLake.RustyLakeHotel' WINE_PERSISTENT_DIRECTORIES_ROOTS=' users/${USER}/Documents/Rusty Lake/Roots' WINE_PERSISTENT_DIRECTORIES_PARADISE=' users/${USER}/Documents/Rusty Lake/Paradise' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_HOTEL="${GAME_ID_HOTEL}-data" PKG_DATA_ID_ROOTS="${GAME_ID_ROOTS}-data" PKG_DATA_ID_PARADISE="${GAME_ID_PARADISE}-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-save-room-organization-puzzle.sh0000755000000000000000000000347714471751340020134 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Save Room - Organization Puzzle # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='save-room-organization-puzzle' GAME_NAME='Save Room - Organization Puzzle' ARCHIVE_BASE_0_NAME='save_room_organization_puzzle_1_0_61593.sh' ARCHIVE_BASE_0_MD5='00a148fa8e4339e800587d48847606e9' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='1.0-gog61593' ARCHIVE_BASE_0_URL='https://www.gog.com/game/save_room_organization_puzzle' UNITY3D_NAME='Save Room GOG' 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" # 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-shenzhen-io.sh0000755000000000000000000000637614471751340014423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Shenzhen I/O # send your bug reports to contact@dotslashplay.it ### script_version=20240718.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='shenzhen-io' GAME_NAME='Shenzhen I/O' ARCHIVE_BASE_2_NAME='shenzhen_i_o_gog_4_26_03_2023_63470.sh' ARCHIVE_BASE_2_MD5='50afcbddbb5226c26d1bd4a2fc780f58' ARCHIVE_BASE_2_SIZE='449123' ARCHIVE_BASE_2_VERSION='2023.03.26-gog63470' ARCHIVE_BASE_2_URL='https://www.gog.com/game/shenzhen_io' ARCHIVE_BASE_1_NAME='shenzhen_i_o_gog_3_11_14_2020_43142.sh' ARCHIVE_BASE_1_MD5='e804f591f8a65193e54964d9186ab6e8' ARCHIVE_BASE_1_SIZE='460000' ARCHIVE_BASE_1_VERSION='2020.11.14-gog43142' ARCHIVE_BASE_0_NAME='shenzhen_io_en_13_02_18613.sh' ARCHIVE_BASE_0_MD5='d7a3ccb58512bdc511d4fe8977480ff9' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='13.02-gog18613' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' Shenzhen.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Shenzhen.bin.x86' CONTENT_GAME_DATA_FILES=' Shenzhen.exe Shenzhen.exe.config Content PackedContent monoconfig monomachineconfig *.dll' CONTENT_DOC_DATA_FILES=' LICENSE.txt' ## Write access to some files is required. USER_PERSISTENT_DIRECTORIES=' Content/textures PackedContent/fonts' ## The shipped binaries are used instead of system-provided mono to avoid a crash when using the in-game command editor. ## See notes/shenzhen-io for details. APP_MAIN_EXE_BIN64='Shenzhen.bin.x86_64' APP_MAIN_EXE_BIN32='Shenzhen.bin.x86' APP_MAIN_ICON='Content/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=' ld-linux-x86-64.so.2 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 libvorbisfile.so.3' 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 ## 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-sherlock-holmes-and-the-hound-of-the-baskervilles.sh0000755000000000000000000000437214471751340023562 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sherlock Holmes and the Hound of the Baskervilles # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sherlock-holmes-and-the-hound-of-the-baskervilles' GAME_NAME='Sherlock Holmes and the Hound of the Baskervilles' ARCHIVE_BASE_0_NAME='setup_sherlock_holmes_and_the_hound_of_the_baskervilles_1.0_(31691).exe' ARCHIVE_BASE_0_MD5='26b5d3a72d919ffd084efbb660b7607d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0-gog31691' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sherlock_holmes_and_the_hound_of_the_baskervilles' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_32.dll msvcr71.dll sherlockholmes_thehoundofthebaskervilles.exe game.ini user.ini' CONTENT_GAME_DATA_FILES=' 000 cursor game logo shaders.0050 data.txt' ## TODO: Check if write access to these files is required USER_PERSISTENT_FILES=' game.ini user.ini' ## TODO: Check if some path under C:\Users should be saved in a persistent path APP_MAIN_EXE='sherlockholmes_thehoundofthebaskervilles.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-spring-falls.sh0000755000000000000000000000420414471751340014561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Spring Falls # send your bug reports to contact@dotslashplay.it ### script_version=20241108.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='spring-falls' GAME_NAME='Spring Falls' ARCHIVE_BASE_1_NAME='Spring Falls v1.23 Linux.zip' ARCHIVE_BASE_1_MD5='67bdbc6f8aca62d13de738ed126a9d30' ARCHIVE_BASE_1_SIZE='137613' ARCHIVE_BASE_1_VERSION='1.23-itch.2021.02.16' ARCHIVE_BASE_1_URL='https://sparsegamedev.itch.io/spring-falls' ARCHIVE_BASE_0_NAME='Spring Falls v1.22 Linux.zip' ARCHIVE_BASE_0_MD5='4dfc2f3dde0d1f2abac252157413047c' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.22-itch1' UNITY3D_NAME='SpringFalls' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 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-stacking.sh0000755000000000000000000000513214471751340013764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stacking # send your bug reports to contact@dotslashplay.it ### script_version=20241219.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='stacking' GAME_NAME='Stacking' ARCHIVE_BASE_HUMBLE_0_NAME='Stacking-Linux-2013-06-04-setup.bin' ARCHIVE_BASE_HUMBLE_0_MD5='4194bb869d537d40da7ad7f65b1102ed' ## This is a MojoSetup installer not relying on a Makeself wrapper. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='1505540' ARCHIVE_BASE_HUMBLE_0_VERSION='2013.06.04-humble160616' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/stacking' ARCHIVE_BASE_GOG_0_NAME='gog_stacking_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='c32245091358bd97ac3e73c7f8bb937b' ## FIXME: The size of the archive content sould be included. ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/stacking' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so' CONTENT_GAME_BIN_FILES=' Stack.bin.x86' CONTENT_GAME_DATA_FILES=' Data Linux OGL Win Stack.png DFCONFIG' APP_MAIN_EXE='Stack.bin.x86' APP_MAIN_ICON='Stack.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 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-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 package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-strange-horticulture.sh0000755000000000000000000000501214471751340016350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Strange Horticulture # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='strange-horticulture' GAME_NAME='Strange Horticulture' ARCHIVE_BASE_3_NAME='setup_strange_horticulture_1.1.26_(64bit)_(59461).exe' ARCHIVE_BASE_3_MD5='f73097c90b89c86b55f164fe42744b0b' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='695749' ARCHIVE_BASE_3_VERSION='1.1.26-gog59461' ARCHIVE_BASE_3_URL='https://www.gog.com/game/strange_horticulture' ARCHIVE_BASE_2_NAME='setup_strange_horticulture_1.1.9.1_(64bit)_(54071).exe' ARCHIVE_BASE_2_MD5='3f4294de0f17a31ea936052e8e820059' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='920000' ARCHIVE_BASE_2_VERSION='1.1.9.1-gog54071' ARCHIVE_BASE_1_NAME='setup_strange_horticulture_1.0.4_(64bit)_(53097).exe' ARCHIVE_BASE_1_MD5='6217dd2e77993a5af36954bc19e453c3' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='850000' ARCHIVE_BASE_1_VERSION='1.0.4-gog53097' ARCHIVE_BASE_0_NAME='setup_strange_horticulture_1.0.3_(64bit)_(53030).exe' ARCHIVE_BASE_0_MD5='56551c39d923f593b161a5b56d28c904' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='850000' ARCHIVE_BASE_0_VERSION='1.0.3-gog53030' UNITY3D_NAME='strange horticulture' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/BadVikingLtd/Strange Horticulture' 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-sudocats.sh0000755000000000000000000000474014471751340014012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sudocats # send your bug reports to contact@dotslashplay.it ### script_version=20241002.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sudocats' GAME_NAME='Sudocats' ARCHIVE_BASE_2_NAME='setup_sudocats_1.11_(json_achievements_fix)_(64bit)_(69928).exe' ARCHIVE_BASE_2_MD5='ad7da533bc7b59c7b0f62c468e2bae85' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='250280' ARCHIVE_BASE_2_VERSION='1.11-gog69928' ARCHIVE_BASE_2_URL='https://www.gog.com/en/game/sudocats' ARCHIVE_BASE_1_NAME='setup_sudocats_1.1_(random_puzzles_with_gog_wrapper)_(64bit)_(68010).exe' ARCHIVE_BASE_1_MD5='c4a1e2a5cabddeedf73832c5841d576c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='250591' ARCHIVE_BASE_1_VERSION='1.1-gog68010' ARCHIVE_BASE_0_NAME='setup_sudocats_1.0_gog_(64bit)_(62585).exe' ARCHIVE_BASE_0_MD5='c75b4230f05cc5b4d875abd855767dcf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-gog62585' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' sudocats.exe' ## The game fails to start if steam_api64.dll is missing. CONTENT_GAME0_BIN_FILES=' steam_api64.dll' ## Starting with game build 1.1, galaxy64.dll is required. CONTENT_GAME1_BIN_FILES=' galaxyconfig.json galaxy64.dll' CONTENT_GAME_DATA_FILES=' sudocats.pck' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='sudocats.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-superliminal.sh0000755000000000000000000001020514471751340014662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Superliminal # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='superliminal' GAME_NAME='Superliminal' ARCHIVE_BASE_1_NAME='superliminal_1_3_53848.sh' ARCHIVE_BASE_1_MD5='b22c23f799a18f97f4dad185d713a556' ARCHIVE_BASE_1_SIZE='16000000' ## Yes, previous version of the game was 1.15. And the current one is 1.3. ## You can blame Pillow Castle developers for not being able to count up to 20. ARCHIVE_BASE_1_VERSION='1.3-gog53848' ARCHIVE_BASE_1_URL='https://www.gog.com/game/superliminal' ARCHIVE_BASE_0_NAME='superliminal_1_15_46618.sh' ARCHIVE_BASE_0_MD5='e2a90cc5c087b5e2e779e07f7524f089' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.15-gog46618' UNITY3D_NAME='SuperliminalGOG' UNITY3D_PLUGINS=' libfmodsuper.so libgvraudio.so libopenvr_api.so libresonanceaudio.so libStandaloneFileBrowser.so libvhacd.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_ASSETS_1_FILES=" ${UNITY3D_NAME}_Data/sharedassets0.* ${UNITY3D_NAME}_Data/sharedassets1.* ${UNITY3D_NAME}_Data/sharedassets2.* ${UNITY3D_NAME}_Data/sharedassets3.* ${UNITY3D_NAME}_Data/sharedassets4.* ${UNITY3D_NAME}_Data/sharedassets5.*" CONTENT_GAME_DATA_ASSETS_2_FILES=" ${UNITY3D_NAME}_Data/sharedassets*" ## 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 ' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS_1 PKG_DATA_ASSETS_2 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETS_1 PKG_DATA_ASSETS_2' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_1_ID="${PKG_DATA_ASSETS_ID}-1" PKG_DATA_ASSETS_2_ID="${PKG_DATA_ASSETS_ID}-2" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" PKG_DATA_ASSETS_1_DESCRIPTION="$PKG_DATA_ASSETS_DESCRIPTION - 1" PKG_DATA_ASSETS_2_DESCRIPTION="$PKG_DATA_ASSETS_DESCRIPTION - 2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Work around Unity3D regressions APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Work around Unity3D regressions, comments are from the original game launcher ## Another Unity regression! WHO WOULD HAVE THOUGHT : "${SDL_MOUSE_RELATIVE_SPEED_SCALE:=4.0f}" export SDL_MOUSE_RELATIVE_SPEED_SCALE ## Unity _seriously_ dropped the ball here. ## 2019.3 adds -rdynamic which means all Linux games will fail to load FMOD ## properly, and while FMOD can be compiled monolithically we still run into ## symbol override issues. Why Unity didnʼt say anything about possibly the ## worldʼs most popular middleware I have absolutely no clue. ## ## So, we do both the monolithic build (thanks FMOD support!) and the preload, to ## ensure that our stupid hack is "safe". Unityʼs Linux team is fired. -flibit export LD_PRELOAD="${LD_PRELOAD:-}:'"$(path_libraries)"'/libfmodsuper.so" ' launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-terra-nil.sh0000755000000000000000000000565614471751340014071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Terra Nil # send your bug reports to contact@dotslashplay.it ### script_version=20241224.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='terra-nil' GAME_NAME='Terra Nil' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME Prototype" ARCHIVE_BASE_2_NAME='terra_nil_v1_1_10_76773.sh' ARCHIVE_BASE_2_MD5='4a6b16920e761984407092f10dce0885' ARCHIVE_BASE_2_SIZE='1642434' ARCHIVE_BASE_2_VERSION='1.1.10-gog76773' ARCHIVE_BASE_2_URL='https://www.gog.com/game/terra_nil' ARCHIVE_BASE_1_NAME='terra_nil_1_1_9_linux_76072.sh' ARCHIVE_BASE_1_MD5='3b077213a089c1d631899d684cd57eb7' ARCHIVE_BASE_1_SIZE='2213191' ARCHIVE_BASE_1_VERSION='1.1.9-gog76072' ARCHIVE_BASE_0_NAME='terra_nil_1_04_linux_68121.sh' ARCHIVE_BASE_0_MD5='d71c5f1da5d78d3a61c048240c2ecdb5' ARCHIVE_BASE_0_SIZE='2092001' ARCHIVE_BASE_0_VERSION='1.04-gog68121' ARCHIVE_BASE_DEMO_0_NAME='Terra Nil 0.41 Linux.zip' ARCHIVE_BASE_DEMO_0_MD5='0179d82ebf76eed15c519d419ecdcab1' ARCHIVE_BASE_DEMO_0_SIZE='167423' ARCHIVE_BASE_DEMO_0_VERSION='0.41-itch.2020.09.03' ARCHIVE_BASE_DEMO_0_URL='https://vfqd.itch.io/terra-nil' UNITY3D_NAME='Terra Nil' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_DEMO='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Full game only - Drop duplicated files case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ;; (*) find . -name 'PaxHeader' -exec rm --recursive {} + ;; esac # Full game only - Do not include the shipped Steam libraries case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-adventures-of-wolf-and-hood-a-jigsaw-tale.sh0000755000000000000000000000412014471751340022574 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Adventures of Wolf and Hood - A Jigsaw Tale # send your bug reports to contact@dotslashplay.it ### script_version=20241108.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-adventures-of-wolf-and-hood-a-jigsaw-tale' GAME_NAME='The Adventures of Wolf and Hood - A Jigsaw Tale' ARCHIVE_BASE_0_NAME='the-adventures-of-wolf-and-hood-a-jigsaw-tale-for-linux.zip' ARCHIVE_BASE_0_MD5='a85bc8da1c3e313fdfe9e920754d982f' ARCHIVE_BASE_0_SIZE='457093' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://stone-baked-games.itch.io/the-adventures-of-wolf-and-hood-a-jigsaw-tale' UNITY3D_NAME='Wolf and Hood - a Jigsaw Tale' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-bridge.sh0000755000000000000000000000435314471751340014177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bridge # send your bug reports to contact@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-bridge' GAME_NAME='The Bridge' ARCHIVE_BASE_0_NAME='TheBridgeLinux_1410196636.zip' ARCHIVE_BASE_0_MD5='6d3f5e7ff8d10d47f04ffabb8b9a031e' ARCHIVE_BASE_0_SIZE='302758' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-bridge' UNITY3D_NAME='TheBridge' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='TheBridgeLinux/TheBridge' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-cat-machine.sh0000755000000000000000000000412014471751340015104 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Cat Machine # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-cat-machine' GAME_NAME='The Cat Machine' ARCHIVE_BASE_0_NAME='TheCatMachineLinux.zip' ARCHIVE_BASE_0_MD5='5f9faf2a56be1fa244d7d795831cbdae' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-cat-machine' UNITY3D_NAME='TheCatMachine' 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_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-the-even-more-incredible-machine.sh0000755000000000000000000000341114471751340020332 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Even More Incredible Machine # send your bug reports to contact@dotslashplay.it ### script_version=20240604.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-even-more-incredible-machine' GAME_NAME='The Even More Incredible Machine' ARCHIVE_BASE_0_NAME='setup_the_even_more_incredible_machine_2.1.0.24.exe' ARCHIVE_BASE_0_MD5='0486b8d5e65ea49ebf59b62a06cb9edd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='21000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.24' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_incredible_machine_mega_pack' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_MAIN_FILES=' install.exe tim.exe install* resource* *.tim *.drv' USER_PERSISTENT_FILES=' *.cfg *.CFG *.tim *.TIM' APP_MAIN_EXE='tim.exe' APP_MAIN_ICON='goggame-1207664023.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-the-house-of-da-vinci.sh0000755000000000000000000000377714471751340016171 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The House of Da Vinci # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-house-of-da-vinci' GAME_NAME='The House of Da Vinci' ARCHIVE_BASE_0_NAME='setup_the_house_of_da_vinci_1.0.3_(64bit)_(52072).exe' ARCHIVE_BASE_0_MD5='2cf6dce4524fe1b2ce1429f19438c38f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_house_of_da_vinci_1.0.3_(64bit)_(52072)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3b3e636a1697fa84161b57fc18bfacba' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.0.3-gog52072' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_house_of_da_vinci' UNITY3D_NAME='the house of da vinci' CONTENT_PATH_DEFAULT='the house of da vinci' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Blue Brain Games/The House of da Vinci' 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-the-incredible-machine-contraptions.sh0000755000000000000000000000415314471751340021164 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Return of the Incredible Machine: Contraptions # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-incredible-machine-contraptions' GAME_NAME='Return of the Incredible Machine: Contraptions' ARCHIVE_BASE_0_NAME='setup_return_of_tim_contraptions_2.1.0.21.exe' ARCHIVE_BASE_0_MD5='827015fe4244d09f5f5aee17db6f65cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='260000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.21' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_incredible_machine_mega_pack' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.cnt *.dll *.exe *.gid *.hlp *.ini *.inf saved games' CONTENT_GAME_DATA_FILES=' *.tbv *.mid' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_DIRECTORIES=' homemade saved games' ## Mouse inputs do not register unless the game is run in a virtual desktop. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='contraptions.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-the-inheritance-of-crimson-manor.sh0000755000000000000000000000374314471751340020422 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Inheritance of Crimson Manor # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-inheritance-of-crimson-manor' GAME_NAME='The Inheritance of Crimson Manor' ARCHIVE_BASE_0_NAME='setup_the_inheritance_of_crimson_manor_1.032_(56232).exe' ARCHIVE_BASE_0_MD5='2ec5ed427135ca0d6389c3b404729e8a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_inheritance_of_crimson_manor_1.032_(56232)-1.bin' ARCHIVE_BASE_0_PART1_MD5='32dc765801cb0cfe2b864be1c4a04f07' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.032-gog56232' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_inheritance_of_crimson_manor' UNITY3D_NAME='crimsonmanor' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/MediaCity Games/CrimsonManor' 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-the-pedestrian.sh0000755000000000000000000000522114471751340015074 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Pedestrian # send your bug reports to contact@dotslashplay.it ### script_version=20240930.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-pedestrian' GAME_NAME='The Pedestrian' ARCHIVE_BASE_0_NAME='the_pedestrian_1_0_9_36404.sh' ARCHIVE_BASE_0_MD5='8c57947cdd3e1384024bceb508ec36ac' ARCHIVE_BASE_0_SIZE='1907337' ARCHIVE_BASE_0_VERSION='1.0.9-gog36404' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_pedestrian' UNITY3D_NAME='ThePed_Linux_64' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.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' ## Work around screen resolution detection problems APP_MAIN_PRERUN=' # Work around screen resolution detection problems config_file="$HOME/.config/unity3d/Skookum Arts/The Pedestrian/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 768 1024 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 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" # 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-sexy-brutale.sh0000755000000000000000000000424314471751340015365 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Sexy Brutale # send your bug reports to contact@dotslashplay.it ### script_version=20241004.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-sexy-brutale' GAME_NAME='The Sexy Brutale' ARCHIVE_BASE_1_NAME='setup_the_sexy_brutale_gog-2_(40574).exe' ARCHIVE_BASE_1_MD5='ff1e34c2727d01a9f16a1c6d1acedd8e' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.0-gog40574' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_sexy_brutale' ARCHIVE_BASE_0_NAME='setup_the_sexy_brutale_gog-1_(11101).exe' ARCHIVE_BASE_0_MD5='6d94492d797e199c1e67b05dabbc52e5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_sexy_brutale_gog-1_(11101)-1.bin' ARCHIVE_BASE_0_PART1_MD5='3158c4b5d6e9eafb9c4d1a79812601e0' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.0-gog11101' UNITY3D_NAME='tsb' UNITY3D_NAME_0='the sexy brutale' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/CGS/TSB' 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-spirit-and-the-mouse.sh0000755000000000000000000000347514471751340016725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Spirit and the Mouse # send your bug reports to contact@dotslashplay.it ### script_version=20241015.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-spirit-and-the-mouse' GAME_NAME='The Spirit and the Mouse' ARCHIVE_BASE_0_NAME='setup_the_spirit_and_the_mouse_1.32d3_gog_(64bit)_(68465).exe' ARCHIVE_BASE_0_MD5='1ee2ab0c472b8b3c56a76f7743305035' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='928786' ARCHIVE_BASE_0_VERSION='1.32d3-gog68465' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_spirit_and_the_mouse' UNITY3D_NAME='thespiritandthemouse' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Alblune/TheSpiritAndTheMouse' 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-the-swapper.sh0000755000000000000000000000760114471751340014423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Swapper # send your bug reports to contact@dotslashplay.it ### script_version=20250226.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-swapper' GAME_NAME='The Swapper' ARCHIVE_BASE_0_NAME='the-swapper-linux-1.24_1409159048.sh' ARCHIVE_BASE_0_MD5='4f9627d245388edc320f61fae7cbd29f' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.24-humble140404' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-swapper' CONTENT_PATH_DEFAULT='data/noarch' CONTENT_LIBS_FILES=' libfmodex.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=' data mono TheSwapper.exe TheSwapper.exe.config BugReporter.exe mainSettings.ini config.xml AdvanceMath.dll Antlr3.Runtime.dll C5.dll FarseerPhysics331.dll HackFlipcodeDecomposer.dll ImageManipulation.dll Jint.dll Lidgren.Network.dll MiniTK.dll MiniTK.dll.config MonoGame.Framework.dll Newtonsoft.Json.dll OptimusSwitcher.dll Poly2Tri.dll SDL2#.dll SDL2#.dll.config SteamManagedWrapper.dll Steamworks.NET.dll TargaImage.dll TrueEngine.dll TrueEngine.dll.config' CONTENT_DOC_MAIN_FILES=' Licences README*' APP_MAIN_EXE='TheSwapper.exe' ## The icon must be explicitly set for mono games. APP_MAIN_ICON='TheSwapper.exe' 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 OpenTK.dll OpenTK.Compatibility.dll OpenTK.GLControl.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 libstdc++.so.6' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Delete unwanted Dropbox metadata files REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} find" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted Dropbox metadata files find . \ -name '*:com.dropbox.attributes:$DATA' \ -delete ) # Include game data content_inclusion_icons ## Use the shipped build of OpenTK on Arch Linux and Gentoo, ## as they do not provide it from their repositories. case "$(option_value 'package')" in ('arch'|'gentoo'|'egentoo') CONTENT_LIBS0_MAIN_FILES=' OpenTK.dll OpenTK.Compatibility.dll OpenTK.GLControl.dll' ;; esac content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-talos-principle.sh0000755000000000000000000000726214471751340016052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Talos Principle # send your bug reports to contact@dotslashplay.it ### script_version=20250225.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-talos-principle' GAME_NAME='The Talos Principle' ARCHIVE_BASE_1_NAME='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512).exe' ARCHIVE_BASE_1_MD5='b011b16d09532b2e709700477bc96017' ## Do not convert the file paths to lowercase ARCHIVE_BASE_1_EXTRACTOR='innoextract' ARCHIVE_BASE_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_1_PART1_NAME='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512)-1.bin' ARCHIVE_BASE_1_PART1_MD5='2e2430b8a2991a4d24f1aaec583b2ec3' ARCHIVE_BASE_1_PART2_NAME='setup_the_talos_principle_gold_edition_1.01_(64bit)_(42512)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3b8770c9fdcf8f670ff6d0b06f011cf0' ARCHIVE_BASE_1_SIZE='6800000' ARCHIVE_BASE_1_VERSION='1.01-gog42512' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_talos_principle_gold_edition' ARCHIVE_BASE_0_NAME='setup_the_talos_principle_1.0_(64bit)_(41435).exe' ARCHIVE_BASE_0_MD5='769f3ba085c913d2bc44e22726bdadc8' ## Do not convert the file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_the_talos_principle_1.0_(64bit)_(41435)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4b94687328d0017b219e932ce73c44f5' ARCHIVE_BASE_0_PART2_NAME='setup_the_talos_principle_1.0_(64bit)_(41435)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4216d66194c80ef8cfbfb5eeff82a54a' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='1.0-gog41435' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Bin' CONTENT_GAME_DATA_FILES=' Content' USER_PERSISTENT_DIRECTORIES=' UserData' USER_PERSISTENT_FILES=' UserCfg.lua' APP_MAIN_EXE='Bin/x64/Talos.exe' ## Set a minimal configuration file APP_MAIN_PRERUN=' # Set a minimal configuration file CONF_FILE="UserData/Talos.ini" if [ ! -e "$CONF_FILE" ] ; then cat > "$CONF_FILE" <<- EOF gfx_strAPI = "Vulkan"; sfx_strAPI = "XAudio"; sfx_strAudioDevice = "ID:0"; EOF fi ' 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' # Work around broken graphics driver detection code checkdriver_lua_file='Content/Talos/Config/CheckDriver.lua' checkdriver_lua_content='-- assume no driver version detection gfx_iReqDriverVersion = 0; gfx_bWrongDriver = 0;' REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} dos2unix" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Work around broken graphics driver detection code printf '%s' "$checkdriver_lua_content" > "$checkdriver_lua_file" unix2dos --quiet "$checkdriver_lua_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-tiny-bang-story.sh0000755000000000000000000000545214471751340016012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Tiny Bang Story # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-tiny-bang-story' GAME_NAME='The Tiny Bang Story' # Game archives ## French version ARCHIVE_BASE_FR_1_NAME='setup_the_tiny_bang_story_gog-1(a)_(french)_(23028).exe' ARCHIVE_BASE_FR_1_MD5='e66f1b4bf1eb19b1e569a38d897e3f27' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_SIZE='200000' ARCHIVE_BASE_FR_1_VERSION='1.0-gog23028' ARCHIVE_BASE_FR_1_URL='https://www.gog.com/game/the_tiny_bang_story' ## English version ARCHIVE_BASE_EN_1_NAME='setup_the_tiny_bang_story_gog-1(a)_(23028).exe' ARCHIVE_BASE_EN_1_MD5='a416471e10da3b374f4f43664cc4f179' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_SIZE='200000' ARCHIVE_BASE_EN_1_VERSION='1.0-gog23028' ARCHIVE_BASE_EN_1_URL='https://www.gog.com/game/the_tiny_bang_story' ARCHIVE_BASE_EN_0_NAME='setup_the_tiny_bang_story_gog-1_(22449).exe' ARCHIVE_BASE_EN_0_MD5='7b4e54787f46f81242e39f16f75fd8f0' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_SIZE='190000' ARCHIVE_BASE_EN_0_VERSION='1.0-gog22449' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' game.exe' CONTENT_GAME_L10N_FILES=' assets/strings.xml' CONTENT_GAME_DATA_FILES=' assets' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Colibri Games/The Tiny Bang Story' APP_MAIN_EXE='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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' 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-witness.sh0000755000000000000000000000553214471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Witness # send your bug reports to contact@dotslashplay.it ### script_version=20241015.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-witness' GAME_NAME='The Witness' ARCHIVE_BASE_0_NAME='setup_the_witness_21-12-2017_(19091).exe' ARCHIVE_BASE_0_MD5='5bfb0d687fb80cdd64cdee7b6b567400' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witness_21-12-2017_(19091)-1.bin' ARCHIVE_BASE_0_PART1_MD5='90a24fed5d8e2e52ab1bf2de84349984' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='2017.12.21-gog19091' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witness' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN64_FILES=' amd_ags_x64.dll anselsdk64.dll bink2w64.dll openvr_api.dll witness64_d3d11.exe' CONTENT_GAME_BIN32_FILES=' amd_ags_x86.dll anselsdk32.dll bink2w32.dll witness_d3d11.exe' ## TODO: Check it the Steam libraries can be dropped CONTENT_GAME_BIN64_FILES="$CONTENT_GAME_BIN64_FILES steam_api64.dll" CONTENT_GAME_BIN32_FILES="$CONTENT_GAME_BIN32_FILES steam_api.dll" CONTENT_GAME_DATA_FILES=' data data-pc controller.vdf data-pc.zip' CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_DATA_FILES=' language.ini' CONTENT_DOC_DATA_FILE=' software licenses.txt steam_enabled.txt' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/The Witness' USER_PERSISTENT_FILES=' language.ini' APP_MAIN_EXE_BIN32='witness_d3d11.exe' APP_MAIN_EXE_BIN64='witness64_d3d11.exe' APP_MAIN_ICON='witness_d3d11.exe' 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_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-timelie.sh0000755000000000000000000000355114471751340013614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Timelie # send your bug reports to contact@dotslashplay.it ### script_version=20241026.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='timelie' GAME_NAME='Timelie' ARCHIVE_BASE_0_NAME='setup_timelie_1.1.0_(64bit)_(41792).exe' ARCHIVE_BASE_0_MD5='7786ab76c953fda21ee196a69ad2b4ee' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.1.0-gog41792' ARCHIVE_BASE_0_URL='https://www.gog.com/game/timelie' UNITY3D_NAME='timelie' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Urnique Studio/Timelie' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Urnique Studio\Timelie' 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-tis-100.sh0000755000000000000000000000543714471751340013266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # TIS-100 # send your bug reports to contact@dotslashplay.it ### script_version=20241019.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='tis-100' GAME_NAME='TIS-100' ARCHIVE_BASE_1_NAME='tis_100_11_14_2020_43142.sh' ARCHIVE_BASE_1_MD5='ce632a3b15de61222f79d3c4f506bac1' ARCHIVE_BASE_1_SIZE='84000' ARCHIVE_BASE_1_VERSION='2020.11.14-gog43142' ARCHIVE_BASE_1_URL='https://www.gog.com/game/tis100' ARCHIVE_BASE_0_NAME='tis_100_en_11_27_2017_16765.sh' ARCHIVE_BASE_0_MD5='70518ec82ee8148697b704ed2c3c8953' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='2017.11.27-gog16765' UNITY3D_NAME='tis100' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Copy the manual in the game directory manual_source="$(package_path 'PKG_DATA')$(path_documentation)/TIS-100 Reference Manual.pdf" manual_destination="$(package_path 'PKG_DATA')$(path_game_data)/TIS-100 Reference Manual.pdf" mkdir --parents "$(dirname "$manual_destination")" cp --link "$manual_source" "$manual_destination" # 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-tri-of-friendship-and-madness.sh0000755000000000000000000000556114471751340017710 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tri: Of Friendship and Madness # send your bug reports to contact@dotslashplay.it ### script_version=20241015.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='tri-of-friendship-of-madness' GAME_NAME='TRI: Of Friendship and Madness' ARCHIVE_BASE_2_NAME='tri_of_friendship_and_madness_1_2_1_stunnedfox_56365.sh' ARCHIVE_BASE_2_MD5='7daf33ea8d0e13fc9d5988bc02e8d1d3' ARCHIVE_BASE_2_SIZE='480000' ARCHIVE_BASE_2_VERSION='1.2.1-gog56365' ARCHIVE_BASE_2_URL='https://www.gog.com/game/tri' ARCHIVE_BASE_1_NAME='tri_of_friendship_and_madness_1_2_30878.sh' ARCHIVE_BASE_1_MD5='3240ccae6723c2fdba20910246a4c068' ARCHIVE_BASE_1_SIZE='480000' ARCHIVE_BASE_1_VERSION='1.2-gog30878' ARCHIVE_BASE_0_NAME='gog_tri_2.6.0.9.sh' ARCHIVE_BASE_0_MD5='c2bf151b58766740e52db9559d61e3d6' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.2-gog2.6.0.9' UNITY3D_NAME='tri' 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" CONTENT_DOC_FILES=' *.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build package packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-under-leaves.sh0000755000000000000000000000400414471751340014550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Under Leaves # send your bug reports to contact@dotslashplay.it ### script_version=20241016.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='under-leaves' GAME_NAME='Under Leaves' ARCHIVE_BASE_0='UnderLeaves_v1_1_0_Linux.zip' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/under-leaves' ARCHIVE_BASE_0_MD5='800ccb204e5bbd9abb820309c0968a13' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='1.1.0-humble180124' UNITY3D_NAME='UnderLeaves' CONTENT_PATH_DEFAULT='UnderLeavesLinux' ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" 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" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unmechanical.sh0000755000000000000000000000601614471751340014612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Unmechanical # send your bug reports to contact@dotslashplay.it ### script_version=20241022.3 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='unmechanical' GAME_NAME='Unmechanical' ARCHIVE_BASE_1_NAME='gog_unmechanical_2.1.0.5.sh' ARCHIVE_BASE_1_MD5='a99865ecd58e895334d405523a23eee3' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='2.0-gog2.1.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/unmechanical' ARCHIVE_BASE_0_NAME='gog_unmechanical_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='44453abb32e21b94e9731938486c71f7' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='2.0-gog2.1.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Engine Binaries/Linux/UDKGame-Linux' ## TODO: Check if the shipped libSDL2_mixer-2.0.so.0 could be replaced by a system-provided build CONTENT_LIBS_BIN_PATH='data/noarch/game/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libPhysXCooking.so libSDL2_mixer-2.0.so.0 libtcmalloc.so.0' ## TODO: Check if the Steam library is required CONTENT_LIBS0_BIN_PATH='data/noarch/game/Binaries/Linux/lib' CONTENT_LIBS0_BIN_FILES=' libsteam_api.so' CONTENT_GAME_DATA_FILES=' UDKGame UnmechanicalIcon.bmp' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='UnmechanicalIcon.bmp' ## Work around the game engine incompatibility with the wayland backend of SDL APP_MAIN_PRERUN=' # Work around the game engine incompatibility with the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 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' 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 ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux ./UDKGame-Linux "$@" EOF } launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-untitled-cat-unboxing.sh0000755000000000000000000000341314471751340016405 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Untitled Cat Unboxing # send your bug reports to contact@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='untitled-cat-unboxing' GAME_NAME='Untitled Cat Unboxing' ARCHIVE_BASE_0_NAME='Untitled cat unboxing.x86_64' ARCHIVE_BASE_0_MD5='96366d6a04c6f3081aee60ba9a167b65' ARCHIVE_BASE_0_SIZE='42000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://reispfannenfresser.itch.io/untitled-cat-unboxing' APP_MAIN_EXE='Untitled cat unboxing.x86_64' PKG_MAIN_ARCH='64' PKG_MAIN_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" # Include game data install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path 'PKG_MAIN')$(path_game_data)/Untitled cat unboxing.x86_64" # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-where-is-my-heart.sh0000755000000000000000000000376514471751340015442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Where Is My Heart # send your bug reports to contact@dotslashplay.it ### script_version=20240509.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='where-is-my-heart' GAME_NAME='Where Is My Heart' ARCHIVE_BASE_0_NAME='setup_where_is_my_heart_1.0_(22335).exe' ARCHIVE_BASE_0_MD5='1204a8799d050a4c49e3eac069d040db' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0-gog223335' ARCHIVE_BASE_0_URL='https://www.gog.com/game/where_is_my_heart' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' *.dll where is my heart.exe' CONTENT_GAME0_MAIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_MAIN_FILES=' *.xml' CONTENT_GAME1_MAIN_PATH="${CONTENT_PATH_DEFAULT}/__support/save" CONTENT_GAME1_MAIN_FILES=' saves' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' controls.xml settings.xml' ## The game performances are poor, unless it is run in a virtual desktop. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='where is my heart.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 LICENSE0000644000000000000000000000336514471751340010576 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 © 2016 Mopi Copyright © 2017 Antoine Le Gonidec Copyright © 2018 BetaRays Copyright © 2019 Erwann Duclos Copyright © 2020 Jacek Szafarkiewicz Copyright © 2020 Hoël Bézier Copyright © 2021 Daguhh Copyright © 2023 HS-157 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. Makefile0000644000000000000000000000452414471751340011227 0ustar rootrootcollection_name = 45_puzzle 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.md0000644000000000000000000001745314471751340011053 0ustar rootroot# ./play.it puzzle games collection The codebase is maintained at [https://git.dotslashplay.it/games-puzzle/] Bug reports and feature requests are tracked at [https://forge.dotslashplay.it/play.it/games-puzzle/-/issues] [https://git.dotslashplay.it/games-puzzle/]: https://git.dotslashplay.it/games-puzzle/ [https://forge.dotslashplay.it/play.it/games-puzzle/-/issues]: https://forge.dotslashplay.it/play.it/games-puzzle/-/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 collection includes only puzzle games. These games focus on problem solving, most of the time puzzles based on logic. Games included in this collection should not require fast play, so timed puzzles and arcade-like puzzle games can not be found here. ## 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-puzzle play.it-puzzle.git cd play.it-puzzle.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-puzzle ``` 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 - A Good Snowman is Hard to Build - A Monster's Expedition - A Place Full of Cats series: - A Building Full of Cats - A Castle Full of Cats - A Virus Named Tom - A Wish Upon a Star - About Love, Hate and the Other Ones - Antichamber - Arrow - Arrow Patterns - Baba Is You - Back to Bed - Candle - Cats Hidden in places series: - Cats Hidden in Bali - Cats Hidden in Italy - Cats Hidden in Maple Hollow - Cats Hidden in Paris - Contraption Maker - Cosmic Express - Doodle God - Doors: Paradox - Down in Bermuda - Dr Livingstone, I Presume? - Eets Munchies - English Country Tune - Enigmatis series: - Enigmatis 1: The Ghosts of Maple Creek - Enigmatis 2: The Mists of Ravenwood - Enigmatis 3: The Shadow of Karkhala - Faerie Solitaire: - Faerie Solitaire Harvest - Faerie Solitaire Remastered - Filament - Fill Multicolor - Gnog - Grim Legends series: - Grim Legends 1: The Forsaken Bride - Grim Legends 2: Song of the Dark Swan - Grim Legends 3: The Dark City - Hidden Paws - Hidden Through Time series: - Hidden Through Time - Hidden Through Time 2: Myths & Magic - Infinifactory - Interrogation: You Will Be Deceived - Lake Ridden - Links Puzzle - Lyne - MouseCraft - Murder by Numbers - Murder Mystery Machine - My Brother Rabbit - Myths Of Orion: Light From The North - Nightmares From the Deep series: - Nightmares From the Deep 1: The Cursed Heart - Nightmares From the Deep 2: The Siren's Call - Nightmares From the Deep 3: Davy Jones - One Action Heroes - Pixross - Please Fix the Road - Pony Island - Puzzle Agent series: - Puzzle Agent - Puzzle Agent 2 - Q.U.B.E. - Regency Solitaire - Rusty Lake series: - Rusty Lake Hotel - Rusty Lake Paradise - Rusty Lake Roots - Save Room - Organization Puzzle - Shenzhen I/O - Sherlock Holmes and the Hound of the Baskervilles - Spring Falls - Stacking - Strange Horticulture - Sudocats - Superliminal - Terra Nil - The Adventures of Wolf and Hood - A Jigsaw Tale - The Bridge - The Cat Machine - The House of Da Vinci - The Incredible Machine series: - The Even More Incredible Machine - Return of the Incredible Machine: Contraptions - The Inheritance of Crimson Manor - The Pedestrian - The Sexy Brutale - The Spirit and the Mouse - The Swapper - The Talos Principle - The Tiny Bang Story - The Witness - Timelie - TIS-100 - TRI: Of Friendship and Madness - Under Leaves - Unmechanical - Untitled Cat Unboxing - Where Is My Heart ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail. ### Fediverse ./play.it has an account on the Fediverse, you can follow it for news about the development or use it to contact us: [@playit@fediverse.dotslashplay.it] [@playit@fediverse.dotslashplay.it]: https://fediverse.dotslashplay.it/snac/playit