games/play-1365.sh0000700000000000000000000000375614471751340012557 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 1365 # send your bug reports to bugs@dotslashplay.it ### script_version=20240504.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='1365-game' GAME_NAME='1365' ARCHIVE_BASE_0_NAME='1365 Linux 1.0' ARCHIVE_BASE_0_MD5='8cb8fb11a2df4af72154f2909238c09c' ARCHIVE_BASE_0_TYPE='file' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://shadybug.itch.io/1365' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='1356_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f820888c924fed091c5d64d9aaa2d467' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/1365/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256 512x512' APP_MAIN_EXE='1365 Linux 1.0' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Include game data content_inclusion_icons install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path 'PKG_MAIN')$(path_game_data)/$(application_exe 'APP_MAIN')" # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-140.sh0000700000000000000000000002005714471751340012456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # 140 # send your bug reports to bugs@dotslashplay.it ### script_version=20250325.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='140-game' GAME_NAME='140' ARCHIVE_BASE_GOG_3_NAME='140_1010_2019_33250.sh' ARCHIVE_BASE_GOG_3_MD5='cbfdc455cf49c88aea3cb62d23fccb55' ARCHIVE_BASE_GOG_3_SIZE='130000' ARCHIVE_BASE_GOG_3_VERSION='2019.10.10.r473-gog33250' ARCHIVE_BASE_GOG_3_URL='https://www.gog.com/game/140_game' ARCHIVE_BASE_GOG_2_NAME='140_en_171409_r400_22641.sh' ARCHIVE_BASE_GOG_2_MD5='69a67be9632ad2b7db02b3d11486d81b' ARCHIVE_BASE_GOG_2_SIZE='130000' ARCHIVE_BASE_GOG_2_VERSION='2017.09.14.r400-gog22641' ARCHIVE_BASE_GOG_1_NAME='gog_140_2.2.0.3.sh' ARCHIVE_BASE_GOG_1_MD5='03e760fa1b667059db7713a9e6c06b6d' ARCHIVE_BASE_GOG_1_SIZE='130000' ARCHIVE_BASE_GOG_1_VERSION='2017.07.19.r370-gog2.2.0.3' ARCHIVE_BASE_GOG_0_NAME='gog_140_2.1.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='6139b77721657a919085aea9f13cf42b' ARCHIVE_BASE_GOG_0_SIZE='130000' ARCHIVE_BASE_GOG_0_VERSION='2017.06.19-gog2.1.0.2' ARCHIVE_BASE_GOG_OLDNAME_0_NAME='gog_140_2.0.0.1.sh' ARCHIVE_BASE_GOG_OLDNAME_0_MD5='49ec4cff5fa682517e640a2d0eb282c8' ARCHIVE_BASE_GOG_OLDNAME_0_SIZE='110000' ARCHIVE_BASE_GOG_OLDNAME_0_VERSION='2.0-gog2.0.0.1' ARCHIVE_BASE_HUMBLE_1_NAME='140-2019-09-10-145438-r473-linux-nodrm.zip' ARCHIVE_BASE_HUMBLE_1_MD5='5b5e46c1c4c4dd31f8f29d8fa1207562' ARCHIVE_BASE_HUMBLE_1_SIZE='130000' ARCHIVE_BASE_HUMBLE_1_VERSION='2019.10.10.r473-humble.2019.10.11' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/140' ARCHIVE_BASE_HUMBLE_ALTPATH_0_NAME='140-nodrm-linux-2017-07-19-r370.zip' ARCHIVE_BASE_HUMBLE_ALTPATH_0_MD5='2444ec7803c5d6dcf161b722705f0402' ARCHIVE_BASE_HUMBLE_ALTPATH_0_SIZE='130000' ARCHIVE_BASE_HUMBLE_ALTPATH_0_VERSION='2017.07.19.r370-humble.2017.08.04' ARCHIVE_BASE_HUMBLE_0_NAME='140-nodrm-linux-2017-06-20.zip' ARCHIVE_BASE_HUMBLE_0_MD5='5bbc48b203291ca9a0b141e3d07dacbe' ARCHIVE_BASE_HUMBLE_0_SIZE='130000' ARCHIVE_BASE_HUMBLE_0_VERSION='2017.06.19-humble.2017.06.20' ARCHIVE_BASE_HUMBLE_OLDNAME_0_NAME='140_Linux.zip' ARCHIVE_BASE_HUMBLE_OLDNAME_0_MD5='0829eb743010653633571b3da20502a8' ARCHIVE_BASE_HUMBLE_OLDNAME_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_OLDNAME_0_VERSION='2.0-humble.2016.09.14' UNITY3D_NAME='140Linux' UNITY3D_NAME_HUMBLE_OLDNAME='140' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='linux' CONTENT_PATH_DEFAULT_HUMBLE_ALTPATH='.' CONTENT_PATH_DEFAULT_HUMBLE_OLDNAME='.' CONTENT_GAME_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' # Use persistent storage for game progress USER_PERSISTENT_FILES=' 140.sav' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" pkg_setup() { option_package=$(option_value 'package') case "$option_package" in ('arch'|'gentoo') PKG_BIN64_ARCH='64' PKG_BIN64_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_ARCH='32' PKG_BIN32_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" ;; ('deb') PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN64_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_ARCH='32' PKG_BIN32_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN32_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" ;; ('egentoo') PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_DEPENDENCIES_LIBRARIES" # play.it 2.20 uses 64-bit binary packages dependencies ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } src_extract() { archive_extraction_default } src_prepare() { # Nothing to do here return 0 } pkg_prepare() { option_package=$(option_value 'package') case "$option_package" in ('deb'|'egentoo') content_inclusion_default ;; ('arch'|'gentoo') content_inclusion_default # Copy data files into both binary packages local GAME_DATA_PATH target_path_bin32 target_path_bin64 GAME_DATA_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_DATA')" target_path_bin32="$(realpath --canonicalize-missing "$(package_path 'PKG_BIN32')$(path_game_data)")" target_path_bin64="$(realpath --canonicalize-missing "$(package_path 'PKG_BIN64')$(path_game_data)")" ( cd "$GAME_DATA_PATH" local file_pattern file_path while read -r file_pattern; do pwd if [ -z "$file_pattern" ]; then continue fi if [ -e "$file_pattern" ]; then mkdir --parents "$target_path_bin32" mkdir --parents "$target_path_bin64" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin32" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin64" rm --force --recursive "$file_pattern" else while read -r file_path; do mkdir --parents "$target_path_bin32" mkdir --parents "$target_path_bin64" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin32" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin64" rm --force --recursive "$file_pattern" done <<- EOF $(find . -path "./${file_pattern#./}") EOF fi done <<- EOF $(content_files 'GAME_DATA') EOF ) ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } src_clean() { # Nothing to do here return 0 } pkg_icons() { option_package=$(option_value 'package') case "$option_package" in ('deb'|'egentoo') content_inclusion_icons 'PKG_DATA' ;; ('arch'|'gentoo') content_inclusion_icons 'PKG_BIN64' content_inclusion_icons 'PKG_BIN32' ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } pkg_launchers() { launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' } pkg_build() { packages_generation } pkg_clean() { working_directory_cleanup } pkg_instructions() { print_instructions } ## Ensure that the default package is correctly set, ## despite PACKAGES_LIST not being set early init_package() { option_package=$(option_value 'package') case "$option_package" in ('arch'|'gentoo') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32' ;; ('deb') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' ;; ('egentoo') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac set_default_package 'PKG_BIN64' } ## Run the default initialization actions initialization_default "$@" pkg_setup src_extract src_prepare pkg_icons ## must be called before pkg_prepare pkg_prepare src_clean pkg_launchers pkg_build pkg_instructions pkg_clean ## must be called after pkg_instructions exit 0 games/play-6180-the-moon.sh0000700000000000000000000000435014471751340014272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # 6180 The Moon # send your bug reports to bugs@dotslashplay.it ### script_version=20250627.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='6180-the-moon' GAME_NAME='6180 The Moon' ARCHIVE_BASE_0_NAME='6180_the_moon_2.1.0_Linux.zip' ARCHIVE_BASE_0_MD5='79e81fb57d8d5dbf27a7c4be2dd0efd9' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='2.1.0-humble141209' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/6180-the-moon' UNITY3D_NAME='6180 the moon' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' 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-a-boy-and-his-blob.sh0000700000000000000000000000523214471751340015414 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # A Boy and His Blob # send your bug reports to bugs@dotslashplay.it ### script_version=20250628.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='a-boy-and-his-blob' GAME_NAME='A Boy and His Blob' ARCHIVE_BASE_ZOOM_0_NAME='A Boy and His Blob.tar.gz' ARCHIVE_BASE_ZOOM_0_MD5='4e56d18404f82a2c6f6489661df807c8' ARCHIVE_BASE_ZOOM_0_SIZE='1300000' ARCHIVE_BASE_ZOOM_0_VERSION='2016.04.21-zoom1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/a-boy-and-his-blob' ARCHIVE_BASE_GOG_0_NAME='gog_a_boy_and_his_blob_2.1.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='7025963a3a26f838877374f72ce3760d' ARCHIVE_BASE_GOG_0_SIZE='1300000' ARCHIVE_BASE_GOG_0_VERSION='2016.04.21-gog2.1.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/a_boy_and_his_blob' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='a-boy-and-his-blob_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='2a555c1f6b02a45b8932c8e72a9c1dd6' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/a-boy-and-his-blob/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64' CONTENT_PATH_DEFAULT_ZOOM='A Boy And His Blob/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.7 libGLEW.so.1.10' CONTENT_GAME_BIN_FILES=' Blob' CONTENT_GAME_DATA_FILES=' content' APP_MAIN_EXE='Blob' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 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-a-hat-in-time.sh0000700000000000000000000000526514471751340014510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Hat in Time # send your bug reports to bugs@dotslashplay.it ### script_version=20240522.12 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='a-hat-in-time' GAME_NAME='A Hat in Time' ARCHIVE_BASE_0_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607).exe' ARCHIVE_BASE_0_MD5='b488a803f372891556adde2589b87643' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c0b7186f04d9d07baa835cd4186a5fb9' ARCHIVE_BASE_0_PART2_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-2.bin' ARCHIVE_BASE_0_PART2_MD5='7ce5f0d9d40007cb4c12e9312f0cfc57' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.12-gog35607' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_hat_in_time' ## Despite the similar directories structure, ## this is not an Unreal Engine 4 game but an Unreal Engine 3 one. CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' hatintimegame' CONTENT_GAME0_BIN_PATH='app' CONTENT_GAME0_BIN_FILES=' engine' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' hatintimegame' ## Prevent keyboard inputs from being ignored. WINE_VIRTUAL_DESKTOP='auto' ## Cursor is prevented from leaving the game window, ## preventing problems with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' USER_PERSISTENT_DIRECTORIES=' hatintimegame/config hatintimegame/SaveData' APP_MAIN_EXE='binaries/win64/hatintimegame.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-a-story-about-my-uncle.sh0000700000000000000000000000645114471751340016411 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Story About My Uncle # send your bug reports to bugs@dotslashplay.it ### script_version=20240327.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='a-story-about-my-uncle' GAME_NAME='A Story About My Uncle' ## This DRM-free archive is no longer sold by humblebundle.com, ## they currently sell only Steam keys for this game. ARCHIVE_BASE_0_NAME='Linux-NoDRM-ASAMU_5188.zip' ARCHIVE_BASE_0_MD5='71f9f3add29a733c4a1a7d18d738d3d6' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='5188-humble170516' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_FILES=' libPhysXCooking.so libPhysXCore.so libPhysXExtensions.so.1 libPhysXLoader.so.1 libSDL2-2.0.so.0 libsteam_api.so PhysXUpdateLoader.so' CONTENT_LIBS_BIN64_PATH='Binaries/linux-amd64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_BIN32_PATH='Binaries/linux-x86' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_BIN64_FILES=' Binaries/linux-amd64/ASAMU' CONTENT_GAME_BIN32_FILES=' Binaries/linux-x86/ASAMU' CONTENT_GAME_DATA_FILES=' ASAMU Engine' APP_MAIN_EXE_BIN64='Binaries/linux-amd64/ASAMU' APP_MAIN_EXE_BIN32='Binaries/linux-x86/ASAMU' USER_PERSISTENT_DIRECTORIES=' ASAMU/Cloud ASAMU/Config' USER_PERSISTENT_FILES=' ASAMU/Saves' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional archives ARCHIVE_OPTIONAL_ICONS_NAME='a-story-about-my-uncle_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='db4eb7ab666e61ea5fc983102099ab31' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/resources/a-story-about-my-uncle/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 32x32' content_inclusion 'ICONS' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-tale-of-paper.sh0000755000000000000000000000512414471751340015034 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Tale of Paper # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 GAME_ID='a-tale-of-paper' GAME_NAME='A Tale of Paper: Refolded' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_0_NAME='setup_a_tale_of_paper_1.0_(56083).exe' ARCHIVE_BASE_0_MD5='8a1acfc78e34a89ce608e275674a829a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_tale_of_paper_1.0_(56083)-1.bin' ARCHIVE_BASE_0_PART1_MD5='664731f03da4cffe8a9771d298476cb2' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0-gog56083' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_tale_of_paper_refolded' ARCHIVE_BASE_DEMO_0_NAME='setup_a_tale_of_paper_demo_1.0_(54424).exe' ARCHIVE_BASE_DEMO_0_MD5='9c154ee673c94bc896b1b08ac7c6b13b' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='930000' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog54424' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/a_tale_of_paper_demo' UNREALENGINE4_NAME='ataleofpaper' UNREALENGINE4_NAME_DEMO='prototipo' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/prototipo-win64-shipping.exe" APP_MAIN_EXE_DEMO="${UNREALENGINE4_NAME_DEMO}/binaries/win64/${UNREALENGINE4_NAME_DEMO}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-arise-a-simple-story.sh0000755000000000000000000000437314471751340016155 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Arise: A Simple Story # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='arise-a-simple-story' GAME_NAME='Arise: A Simple Story' ARCHIVE_BASE_0_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242).exe' ARCHIVE_BASE_0_MD5='7b0ce5207861d990aa4d2c4ba9baefb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a364d73d653de062ff7f2808614bd6ef' ARCHIVE_BASE_0_PART2_NAME='setup_arise_a_simple_story_1.20.3_(64bit)_(53242)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ab2a758bd1885455e45336ba70cbc018' ARCHIVE_BASE_0_SIZE='5800000' ARCHIVE_BASE_0_VERSION='1.20.3-gog53242' ARCHIVE_BASE_0_URL='https://www.gog.com/game/arise_a_simple_story' UNREALENGINE4_NAME='arise' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ascendant.sh0000755000000000000000000001132614471751340014123 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 mortalius # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Ascendant # send your bug reports to bugs@dotslashplay.it ### script_version=20250615.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ascendant' GAME_NAME='Ascendant' ARCHIVE_BASE_0_NAME='gog_ascendant_2.2.0.7.sh' ARCHIVE_BASE_0_MD5='8cdcd59a2f8363b7237e9cbe2675adda' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.2.2-gog2.2.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ascendant' UNITY3D_NAME='Ascendant' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "$PLAYIT_WORKDIR/gamedata/$(content_path_default)" # Work around massive files duplication between 32-bit and 64-bit builds. ## Merge data directories for 32-bit and 64-bit builds. UNITY3D_NAME_64BIT='Ascendant_64' cp --force --recursive --link "${UNITY3D_NAME_64BIT}_Data"/* "$(unity3d_name)_Data" rm --force --recursive "${UNITY3D_NAME_64BIT}_Data" ## Rename 64-bit binary. mv "${UNITY3D_NAME_64BIT}.x86_64" "$(unity3d_name).x86_64" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable MAP_32BIT flag, as it would lead to the following crash: ## ## #0 __pthread_kill_implementation (threadid=, signo=signo@entry=11, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 ## #1 0x00007ffff7a9c9ff in __pthread_kill_internal (threadid=, signo=11) at ./nptl/pthread_kill.c:89 ## #2 0x00007ffff7a47cc2 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 ## #3 0x00007ffff239a244 in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #4 0x00007ffff239a2ce in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #5 0x00007ffff22d186c in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #6 0x00007ffff22946ef in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #7 0x00007ffff7fa7171 in ?? () ## #8 0x00007ffff23affb9 in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #9 0x0000000001ec3120 in ?? () ## #10 0x00007ffff7344d48 in ?? () ## #11 0x00007ffff2230986 in ?? () from (…)/Ascendant_Data/Mono/x86_64/libmono.so ## #12 0x00007ffff7aa8690 in _int_free_chunk (av=av@entry=0x7ffff7befac0 , p=p@entry=0x1ec8390, size=4112, have_lock=, have_lock@entry=0) at ./malloc/malloc.c:4667 ## #13 0x00007ffff7aab3c0 in _int_free (av=0x7ffff7befac0 , p=0x1ec8390, have_lock=0) at ./malloc/malloc.c:4699 ## #14 __GI___libc_free (mem=) at ./malloc/malloc.c:3476 ## #15 0x0000000000000060 in ?? () ## #16 0x0000000001eb9470 in ?? () ## #17 0x00007ffff7befac0 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 ## #18 0x0000000000004040 in ?? () ## #19 0x00007ffff7befac0 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 ## #20 0x0000000000000000 in ?? () 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-beatbuddy.sh0000700000000000000000000000404014471751340014107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Beatbuddy: Tale of the Guardians # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='beatbuddy' GAME_NAME='Beatbuddy: Tale of the Guardians' ARCHIVE_BASE_0_NAME='BeatbuddyLinux1439603370.zip' ARCHIVE_BASE_0_MD5='156d19b327a02ac4a277f6f6ad4e188e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-humble150815' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/beatbuddy' UNITY3D_NAME='Beatbuddy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Beatbuddy' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTIOn='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-binaries.sh0000700000000000000000000000465214471751340013751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Binaries # send your bug reports to bugs@dotslashplay.it ### script_version=20250613.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='binaries' GAME_NAME='Binaries' ARCHIVE_BASE_0_NAME='Binaries_Linux_v1.1.0.zip' ARCHIVE_BASE_0_MD5='ed3756af1ebe72560d6e52ab67013f4c' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/binaries' UNITY3D_NAME='Binaries' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete Apple archives junk. find . -name '*.rsrc' -delete ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-biped.sh0000700000000000000000000000433114471751340013232 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Biped # send your bug reports to bugs@dotslashplay.it ### script_version=20250629.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='biped' GAME_NAME='Biped' ARCHIVE_BASE_1_NAME='setup_biped_2.6_(81326).exe' ARCHIVE_BASE_1_MD5='8e9189bef236ee081f2daf8343c90a12' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_biped_2.6_(81326)-1.bin' ARCHIVE_BASE_1_PART1_MD5='57f64fb6ad15e1c22395e662b338d2ba' ARCHIVE_BASE_1_SIZE='4307875' ARCHIVE_BASE_1_VERSION='2.6-gog81326' ARCHIVE_BASE_1_URL='https://www.gog.com/game/biped' ARCHIVE_BASE_0_NAME='setup_biped_1.6_(39586).exe' ARCHIVE_BASE_0_MD5='c58ee9791defa88ef1bb92ba3b2f01d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_biped_1.6_(39586)-1.bin' ARCHIVE_BASE_0_PART1_MD5='48103181d4c54a068db5eec37e10d7e5' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.6-gog39586' UNITY3D_NAME='biped' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PostmetaGamesLimited/Biped' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-braid.sh0000700000000000000000000000465614471751340013242 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Braid # send your bug reports to bugs@dotslashplay.it ### script_version=20250624.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='braid' GAME_NAME='Braid' ARCHIVE_BASE_1_NAME='gog_braid_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='0d60f92ed8d1c72afb11c217cc907264' ARCHIVE_BASE_1_SIZE='170000' ARCHIVE_BASE_1_VERSION='2015.06.11-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/braid' ARCHIVE_BASE_0_NAME='gog_braid_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='22bac5c37b44916fea3e23092706d55d' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2015.06.11-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Braid.bin.x86' CONTENT_GAME_DATA_FILES=' data Icon.png' CONTENT_DOC_DATA_FILES=' licenses *.txt' APP_MAIN_EXE='Braid.bin.x86' APP_MAIN_ICON='Icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN=' # The game crashes on launch when using the wayland backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' 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-bubbles-the-cat.sh0000700000000000000000000000560514471751340015115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bubbles the Cat # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='bubbles-the-cat' GAME_NAME='Bubbles the Cat' ARCHIVE_BASE_0_NAME='BubblesTheCat._v1016_Standalone.zip' ARCHIVE_BASE_0_MD5='75c5130b47cd1bb4cf3f9f9d8239ba31' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1016-itch' ARCHIVE_BASE_0_URL='https://teamcatsandbears.itch.io/bubbles-the-cat' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' BubblesTheCat.exe' CONTENT_GAME_DATA_FILES=' data.win' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/BubblesTheCat' APP_MAIN_EXE='BubblesTheCat.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ## Generate smaller icons from the provided 1024×1024 one icon_source="$(package_path 'PKG_DATA')$(path_icons)/1024x1024/apps/$(game_id).png" icon_destination_512="$(package_path 'PKG_DATA')$(path_icons)/512x512/apps/$(game_id).png" icon_destination_256="$(package_path 'PKG_DATA')$(path_icons)/256x256/apps/$(game_id).png" icon_destination_128="$(package_path 'PKG_DATA')$(path_icons)/128x128/apps/$(game_id).png" icon_destination_64="$(package_path 'PKG_DATA')$(path_icons)/64x64/apps/$(game_id).png" mkdir --parents \ "$(dirname "$icon_destination_512")" \ "$(dirname "$icon_destination_256")" \ "$(dirname "$icon_destination_128")" \ "$(dirname "$icon_destination_64")" ### -filter Point is used to preserve the pixel-art style. convert "$icon_source" -resize 512 -filter Point "$icon_destination_512" convert "$icon_source" -resize 256 -filter Point "$icon_destination_256" convert "$icon_source" -resize 128 -filter Point "$icon_destination_128" convert "$icon_source" -resize 64 -filter Point "$icon_destination_64" # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-candleman.sh0000755000000000000000000000366014471751340014107 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Candleman # send your bug reports to bugs@dotslashplay.it ### script_version=20250905.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='candleman' GAME_NAME='Candleman' ARCHIVE_BASE_0_NAME='setup_candleman_the_complete_journey_1.07_(50980).exe' ARCHIVE_BASE_0_MD5='4b16554e2acc81d44fb7c90e2cae9854' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_candleman_the_complete_journey_1.07_(50980)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b5e19beda13aae27d5aa27256771d6d8' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.07-gog50980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/candleman' UNITY3D_NAME='candleman' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Candleman Games/Candleman' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-capsized.sh0000755000000000000000000000711314471751340013764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Capsized # send your bug reports to bugs@dotslashplay.it ### script_version=20240830.3 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='capsized' GAME_NAME='Capsized' ARCHIVE_BASE_GOG_0_NAME='gog_capsized_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='f516c52b4614d63c3cfa4e1ed43934b8' ARCHIVE_BASE_GOG_0_SIZE='670000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/capsized' ARCHIVE_BASE_HUMBLE_0_NAME='capsized-12212015-bin' ARCHIVE_BASE_HUMBLE_0_MD5='10515ca5f73e38151e17766cba97f3ed' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='650000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble151221' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/capsized' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_FILES=' libmojoshader.so libtheoraplay.so' ## The shipped build of OpenAL must be used, to prevent a crash on launch CONTENT_LIBS_FILES="${CONTENT_LIBS_FILES:-} libopenal.so.1" CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content mono de es fr it Capsized.bmp NePlusUltra.exe FarseerPhysicsXNA.dll FNA.dll FNA.dll.config Lidgren.Network.dll ProjectMercury.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='NePlusUltra.exe' APP_MAIN_ICON='Capsized.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libtheoradec.so.1 libtheora.so.0 libvorbis.so.0' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cats-are-liquid-series.sh0000700000000000000000000000566414471751340016435 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cats are Liquid series: # - Cats are Liquid: A Light in the Shadows # - Cats are Liquid: A Better Place # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_EPISODE1='cats-are-liquid-1' GAME_NAME_EPISODE1='Cats are Liquid - A Light in the Shadows' GAME_ID_EPISODE2='cats-are-liquid-2' GAME_NAME_EPISODE2='Cats are Liquid - A Better Place' ARCHIVE_BASE_EPISODE1_0_NAME='CatsAreLiquidLinux.zip' ARCHIVE_BASE_EPISODE1_0_MD5='eb01e4f7c44543051e95bc78b777bb5b' ARCHIVE_BASE_EPISODE1_0_SIZE='171981' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-itch1' ARCHIVE_BASE_EPISODE1_0_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-light-in-the-shadows' ARCHIVE_BASE_EPISODE2_1_NAME='CaL-ABP-Linux.zip' ARCHIVE_BASE_EPISODE2_1_MD5='b4a50d0bb0c81a6862c1fac196281306' ARCHIVE_BASE_EPISODE2_1_SIZE='315863' ARCHIVE_BASE_EPISODE2_1_VERSION='1.0-itch2' ARCHIVE_BASE_EPISODE2_1_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-better-place' ARCHIVE_BASE_EPISODE2_0_NAME='CaL-ABP-Linux.zip' ARCHIVE_BASE_EPISODE2_0_MD5='a61524e809870b026dc8a993b177b9b9' ARCHIVE_BASE_EPISODE2_0_SIZE='437281' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-itch1' UNITY3D_NAME_EPISODE1='CatsAreLiquidLinux' UNITY3D_NAME_EPISODE2='CaL-ABP-Linux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_EPISODE1='CatsAreLiquidLinux' CONTENT_PATH_DEFAULT_EPISODE2='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_EPISODE1='32' PKG_BIN_ARCH_EPISODE2='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_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-celeste.sh0000755000000000000000000000620214471751340013604 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Celeste # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='celeste' GAME_NAME='Celeste' ARCHIVE_BASE_1_NAME='celeste-linux.zip' ARCHIVE_BASE_1_MD5='518ea69d60079109a2575d428eff8a53' ARCHIVE_BASE_1_SIZE='1176905' ARCHIVE_BASE_1_VERSION='1.4.0.0-itch.2021.03.29' ARCHIVE_BASE_1_URL='https://maddymakesgamesinc.itch.io/celeste' ARCHIVE_BASE_0_NAME='celeste-linux.zip' ARCHIVE_BASE_0_MD5='b27c983b95b2a2a35a272b7ecd94cbc2' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3.1.2-itch' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_FILES=' libfmod*.so* libmojoshader.so libFNA3D.so.0' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content Celeste.exe Celeste.exe.config Celeste.png gamecontrollerdb.txt Celeste.Content.dll FNA.dll FNA.dll.config FNA3D.dll' APP_MAIN_EXE='Celeste.exe' APP_MAIN_ICON='Celeste.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## This game expects an executable stack through dynamically loaded libraries. game_exec_line() { cat <<- 'EOF' GLIBC_TUNABLES=glibc.rtld.execstack=2 mono Celeste.exe "$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-chronology.sh0000755000000000000000000000476714471751340014361 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chronology # send your bug reports to bugs@dotslashplay.it ### script_version=20250710.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='chronology' GAME_NAME='Chronology' ARCHIVE_BASE_0_NAME='Chronology Windows 1.0.20.zip' ARCHIVE_BASE_0_MD5='08236874d0553d9953c56ee3472468f2' ARCHIVE_BASE_0_SIZE='240000' ARCHIVE_BASE_0_VERSION='1.0.20-itch1' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/chronology' CONTENT_PATH_DEFAULT='Chronology Windows 1.0.20' CONTENT_GAME_BIN_FILES=' Chronology.exe *.dll' CONTENT_GAME_DATA_FILES=' Content Screengroup.dat' CONTENT_DOC_DATA_FILES=' BuildDate.txt License.txt' ## The game engine expects write access to files under Content. USER_PERSISTENT_DIRECTORIES=' Content' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The game fails to start if Mono is used instead of .NET. WINE_WINETRICKS_VERBS='dotnet40' ## The game crashes when trying to play if the PE32 OpenAL library is missing. WINE_WINETRICKS_VERBS="$WINE_WINETRICKS_VERBS openal" ## Keyboards input are not registered ## unless the game is run in a virtual desktop. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='Chronology.exe' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-closure.sh0000755000000000000000000000662214471751340013642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Closure # send your bug reports to bugs@dotslashplay.it ### script_version=20241009.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='closure' GAME_NAME='Closure' ARCHIVE_BASE_0_NAME='Closure-Linux-1.1-2012-12-28.sh' ARCHIVE_BASE_0_MD5='a7c2f7fe17ff67f376da70611abdce97' ARCHIVE_BASE_0_SIZE='800000' ARCHIVE_BASE_0_VERSION='1.1-humble.2012.12.28' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/closure' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN64_FILES=' Closure.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Closure.bin.x86' CONTENT_GAME_DATA_FILES=' resources Closure.png' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN64='Closure.bin.x86_64' APP_MAIN_EXE_BIN32='Closure.bin.x86' APP_MAIN_ICON='Closure.png' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN=' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## The game renders nothing but a black screen when using the SDL1 → SDL2 compatibility wrapper APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-} # The game renders nothing but a black screen when using the SDL1 → SDL2 compatibility wrapper export SDL12COMPAT_OPENGL_SCALING=0 " PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libalut.so.0 libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_INNER_BIN64_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_linux_x86_64" ARCHIVE_INNER_BIN64_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_BIN64' rm "$(archive_path 'ARCHIVE_INNER_BIN64')" ARCHIVE_INNER_BIN32_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_linux_x86" ARCHIVE_INNER_BIN32_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_BIN32' rm "$(archive_path 'ARCHIVE_INNER_BIN32')" ARCHIVE_INNER_DATA_PATH="${PLAYIT_WORKDIR}/gamedata/instarchive_all" ARCHIVE_INNER_DATA_TYPE='tar.xz' archive_extraction 'ARCHIVE_INNER_DATA' rm "$(archive_path 'ARCHIVE_INNER_DATA')" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-creaks.sh0000755000000000000000000000346714471751340013442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Creaks # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='creaks' GAME_NAME='Creaks' ARCHIVE_BASE_0_NAME='setup_creaks_1.0.9_(46052).exe' ARCHIVE_BASE_0_MD5='53c45d5337970ae4f3cd33ac846a4b34' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_creaks_1.0.9_(46052)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a6dd1d513945b49753918f7031936a1d' ARCHIVE_BASE_0_SIZE='4300000' ARCHIVE_BASE_0_VERSION='1.0.9-gog46052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/creaks' UNITY3D_NAME='creaks' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Amanita Design/Creaks' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dark-echo.sh0000755000000000000000000000464014471751340014021 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Dark Echo # send your bug reports to bugs@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dark-echo' GAME_NAME='Dark Echo' ARCHIVE_BASE_0_NAME='DarkEcho_Linux.zip' ARCHIVE_BASE_0_MD5='b629b5c47729d8213f89f92ae28d6076' ARCHIVE_BASE_0_SIZE='113641' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/dark-echo' UNITY3D_NAME='DarkEcho' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dead-cells-expansions.sh0000755000000000000000000000463214471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Dead Cells expansions: # - Rise of the Giant # - The Bad Seed # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dead-cells' GAME_NAME='Dead Cells' EXPANSION_ID_GIANT='rise-of-the-giant' EXPANSION_NAME_GIANT='Rise of the Giant' EXPANSION_ID_SEED='the-bad-seed' EXPANSION_NAME_SEED='The Bad Seed' ARCHIVE_BASE_GIANT_1_NAME='dead_cells_rise_of_the_giant_1_9_1_39495.sh' ARCHIVE_BASE_GIANT_1_MD5='c1d123c88c3e1f85a11ae9d090f626b0' ARCHIVE_BASE_GIANT_1_SIZE='1100' ARCHIVE_BASE_GIANT_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_GIANT_1_URL='https://www.gog.com/game/dead_cells_rise_of_the_giant' ARCHIVE_BASE_GIANT_0='dead_cells_rise_of_the_giant_1_8_0_37766.sh' ARCHIVE_BASE_GIANT_0_MD5='855ef837a9766e5b30ee34d212e5b16b' ARCHIVE_BASE_GIANT_0_SIZE='1100' ARCHIVE_BASE_GIANT_0_VERSION='1.8.0-gog37766' ARCHIVE_BASE_SEED_1_NAME='dead_cells_the_bad_seed_1_9_1_39495.sh' ARCHIVE_BASE_SEED_1_MD5='745aa46480a45d4bf4904361a4d06110' ARCHIVE_BASE_SEED_1_SIZE='1100' ARCHIVE_BASE_SEED_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_SEED_1_URL='https://www.gog.com/game/dead_cells_the_bad_seed' ARCHIVE_BASE_SEED_0='dead_cells_the_bad_seed_1_8_0_37766.sh' ARCHIVE_BASE_SEED_0_MD5='3ab8b8c71c1a9079be384a7788592d83' ARCHIVE_BASE_SEED_0_SIZE='1100' ARCHIVE_BASE_SEED_0_VERSION='1.8.0-gog37766' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_MAIN_DEPS="$GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dead-cells.sh0000755000000000000000000000426114471751340014160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dead Cells # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dead-cells' GAME_NAME='Dead Cells' ARCHIVE_BASE_1_NAME='dead_cells_1_9_1_39495.sh' ARCHIVE_BASE_1_MD5='d39f39354e1546e9fb940e7738992b16' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='1.9.1-gog39495' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dead_cells' ARCHIVE_BASE_0_NAME='dead_cells_1_8_0_37766.sh' ARCHIVE_BASE_0_MD5='93a03894720c4e232566300c61ee153b' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='1.8.0-gog37766' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libhl.so' CONTENT_GAME_BIN_FILES=' deadcells *.hdll' CONTENT_GAME_DATA_FILES=' hlboot.dat res.pak' USER_PERSISTENT_DIRECTORIES=' logs save' APP_MAIN_EXE='deadcells' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libmbedtls.so.12 libopenal.so.1 libpng16.so.16 libSDL2-2.0.so.0 libturbojpeg.so.0 libuv.so.1 libvorbisfile.so.3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deadlight.sh0000755000000000000000000000547214471751340014115 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Deadlight # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='deadlight' GAME_NAME='Deadlight' ARCHIVE_BASE_1_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167).exe' ARCHIVE_BASE_1_MD5='70b8df3f8162cc0a9a43e531b6a723c5' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167)-1.bin' ARCHIVE_BASE_1_PART1_MD5='6392568bcc7c4a4613e09cdbb40afafd' ARCHIVE_BASE_1_PART2_NAME='setup_deadlight_directors_cut_gog-2(cs)_(19167)-2.bin' ARCHIVE_BASE_1_PART2_MD5='fa080fbdd39369969be4ac54c2aa7bd2' ARCHIVE_BASE_1_SIZE='5100000' ARCHIVE_BASE_1_VERSION='1.0-gog19167' ARCHIVE_BASE_1_URL='https://www.gog.com/game/deadlight_directors_cut' ARCHIVE_BASE_0_NAME='setup_deadlight_directors_cut_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1a753e4f9a209de5bd916ac98b88a9b7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_deadlight_directors_cut_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='246b4684d801ea84b6490e01bcf5c659' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_deadlight_directors_cut_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='3cb7cdd9fea50a66d7f06a6b2d0426c6' ARCHIVE_BASE_0_SIZE='5100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' engine binaries' CONTENT_GAME_DATA_FILES=' lotdgame' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/UnrealEngine3/LOTDGame' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='binaries/win64/lotdgame.exe' ## The application type must be set explicitly, or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-disney-classics.sh0000755000000000000000000000633014471751340015257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Disney 1994 games: # - Aladdin # - The Jungle Book # - The Lion King # send your bug reports to bugs@dotslashplay.it ### script_version=20250809.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_ALADDIN='aladdin' GAME_NAME_ALADDIN='Aladdin' GAME_ID_JUNGLE='the-jungle-book' GAME_NAME_JUNGLE='The Jungle Book' GAME_ID_LION='the-lion-king' GAME_NAME_LION='The Lion King' ## The following installers used to be sold by gog.com, ## but they have been retired in favour of a Windows-only collection. ARCHIVE_BASE_ALADDIN_0_NAME='gog_disney_s_aladdin_2.0.0.2.sh' ARCHIVE_BASE_ALADDIN_0_MD5='9dd6d84c2276809c5630320335e3415b' ARCHIVE_BASE_ALADDIN_0_SIZE='18000' ARCHIVE_BASE_ALADDIN_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_JUNGLE_0_NAME='gog_disney_s_the_jungle_book_2.0.0.2.sh' ARCHIVE_BASE_JUNGLE_0_MD5='bcb57f4ff5cb1662ba3d4a9e34f263ad' ARCHIVE_BASE_JUNGLE_0_SIZE='15000' ARCHIVE_BASE_JUNGLE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_LION_0_NAME='gog_the_lion_king_2.0.0.2.sh' ARCHIVE_BASE_LION_0_MD5='3b4f1118785e1f1cc769ae41379b7940' ARCHIVE_BASE_LION_0_SIZE='16000' ARCHIVE_BASE_LION_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES_ALADDIN=' LEVEL.AMF WNW.AMF SOUND.CFG BBC.CHR ALADDIN.EXE SETSND.EXE *.DAT *.FLR *.JAM *.OBT *.PAC *.RAW *.RGB *.SPE *.XIS *.XUN' CONTENT_GAME_MAIN_FILES_JUNGLE=' JUNGLE.CFG JUNGLE.EPF INSTALL.EXE JUNGLE.EXE JUNGLEW.EXE' CONTENT_GAME_MAIN_FILES_LION=' LIONKING.CFG LIONKING.EPF INSTALL.EXE LIONKING.EXE' CONTENT_DOC_MAIN_FILES=' README' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' Manual.pdf' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_ALADDIN='ALADDIN.EXE' APP_MAIN_EXE_JUNGLE='JUNGLE.EXE' APP_MAIN_EXE_LION='LIONKING.EXE' APP_MAIN_ICON='../support/icon.png' ## Aladdin - Ensure good performances. APP_MAIN_DOSBOX_PRERUN_ALADDIN=' config -set cpu cycles=max' ## The Lion King - Prevent a demo loop. APP_MAIN_DOSBOX_PRERUN_LION=' config -set cpu cycles=fixed 15000' ## TODO: DOS binaries detection has been fixed with ./play.it 2.33.1, ## this explicit property can be removed when bumping the compatibility level to 2.34. APP_MAIN_TYPE_JUNGLE='dosbox' APP_MAIN_TYPE_LION='dosbox' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dreaming-sarah.sh0000700000000000000000000000562314471751340015036 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dreaming Sarah # send your bug reports to bugs@dotslashplay.it ### script_version=20250629.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dreaming-sarah' GAME_NAME='Dreaming Sarah' ARCHIVE_BASE_32BIT_0_NAME='DreamingSarah-linux32_1.3.zip' ARCHIVE_BASE_32BIT_0_MD5='73682a545e979ad9a2b6123222ddb517' ARCHIVE_BASE_32BIT_0_SIZE='200000' ARCHIVE_BASE_32BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' ARCHIVE_BASE_64BIT_0_NAME='DreamingSarah-linux64_1.3.zip' ARCHIVE_BASE_64BIT_0_MD5='a68f3956eb09ea7b34caa20f6e89b60c' ARCHIVE_BASE_64BIT_0_SIZE='200000' ARCHIVE_BASE_64BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' CONTENT_PATH_DEFAULT_32BIT='DreamingSarah-linux32' CONTENT_PATH_DEFAULT_64BIT='DreamingSarah-linux64' CONTENT_GAME_BIN_FILES=' nw nacl_helper*' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_DATA_FILES=' locales *.bin *.dat *.nw *.pak' APP_MAIN_EXE='nw' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dustforce.sh0000700000000000000000000000670214471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Dustforce DX # send your bug reports to bugs@dotslashplay.it ### script_version=20241218.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dustforce' GAME_NAME='Dustforce DX' ARCHIVE_BASE_HUMBLE_0_NAME='Dustforce-Linux-2014-12-22.sh' ARCHIVE_BASE_HUMBLE_0_MD5='e2fa7efd5b9ec64fc453f32480f63ad4' ARCHIVE_BASE_HUMBLE_0_SIZE='409003' ARCHIVE_BASE_HUMBLE_0_VERSION='2024.12.22-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dustforce-dx' ARCHIVE_BASE_GOG_0_NAME='gog_dustforce_dx_2.2.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='5423718cf31f2602c9d0b30b79d1f409' ARCHIVE_BASE_GOG_0_SIZE='409517' ARCHIVE_BASE_GOG_0_VERSION='2014.12.22-gog2.2.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/dustforce_dx' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libcurl.so.3' CONTENT_LIBS_BIN64_RELATIVE_PATH_HUMBLE='x86_64/lib64' CONTENT_LIBS_BIN64_RELATIVE_PATH_GOG='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH_HUMBLE='x86/lib' CONTENT_LIBS_BIN32_RELATIVE_PATH_GOG='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH_HUMBLE='x86_64' CONTENT_GAME_BIN64_FILES=' Dustforce.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH_HUMBLE='x86' CONTENT_GAME_BIN32_FILES=' Dustforce.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_GAME_DATA_FILES=' content Dustforce.png' CONTENT_DOC_DATA_RELATIVE_PATH_HUMBLE='noarch' CONTENT_DOC_DATA_FILES=' Linux.README ReadMe.txt' APP_MAIN_EXE_BIN64='Dustforce.bin.x86_64' APP_MAIN_EXE_BIN32='Dustforce.bin.x86' APP_MAIN_ICON_HUMBLE='noarch/Dustforce.png' APP_MAIN_ICON_GOG='Dustforce.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ## libidn.so.11 is required by the shipped libcurl.so.3 library PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libidn.so.11 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-earthworm-jim-1.sh0000755000000000000000000000367014471751340015111 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Earthworm Jim # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='earthworm-jim-1' GAME_NAME='Earthworm Jim' ARCHIVE_BASE_0_NAME='earthworm_jim_en_1_0_16595.sh' ARCHIVE_BASE_0_MD5='87b487f85654763347433dc0952b0118' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-gog16595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthworm_jim_1_2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.cfg *.dat *.exe *.gog *.hlp *.ico *.id *.inst' CONTENT_DOC_MAIN_FILES=' readme.txt' DOSBOX_DISK_IMAGE_PATH='ewj1.inst' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='ewj1.exe' APP_MAIN_OPTIONS='320x224' APP_MAIN_ICON='../support/icon.png' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lower case. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-element4l.sh0000755000000000000000000000345614471751340014061 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Element4l # send your bug reports to bugs@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='element4l' GAME_NAME='Element4l' ## This DRM-free archive is no longer available from playism.com, ## as their store turned into yet another Steam keys reseller. ARCHIVE_BASE_0_NAME='Element4l-WIN-1.2.3.zip' ARCHIVE_BASE_0_MD5='04f761ddf4e9e9b14cad67ae32c1598e' ARCHIVE_BASE_0_SIZE='320000' ARCHIVE_BASE_0_VERSION='1.2.3-playism' UNITY3D_NAME='element4l' CONTENT_PATH_DEFAULT='Update-1.2.3-WIN' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\I-Illusions\element4l' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-elephantasy.sh0000755000000000000000000000445414471751340014504 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Elephantasy # send your bug reports to bugs@dotslashplay.it ### script_version=20250319.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='elephantasy' GAME_NAME='Elephantasy' ARCHIVE_BASE_0_NAME='Elephantasy Release Build_Itch.zip' ARCHIVE_BASE_0_MD5='d0a7deaccf9b5fbbd3f3c879adb61a6a' ARCHIVE_BASE_0_SIZE='35000' ARCHIVE_BASE_0_VERSION='1.6-itch.2021.04.24' ARCHIVE_BASE_0_URL='https://linker.itch.io/elephantasy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' d3dx9_43.dll elephant.exe options.ini' CONTENT_GAME_DATA_FILES=' data.win' CONTENT_DOC_DATA_FILES=' README.txt' WINE_PERSISTENT_DIRECTORIES=' userdata:users/${USER}/Local Settings/Application Data/Elephant' APP_MAIN_EXE='elephant.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # The .zip archive contains a .exe file, # that is actually a cabinet archive. ARCHIVE_INNER_TYPE='cabinet' REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} cabextract" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ## The .zip archive contains a .exe file, ## that is actually a cabinet archive. ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Elephantasy.exe" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" # Include 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-escape-goat-series.sh0000700000000000000000000000654314471751340015636 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Escape Goat series: # - Escape Goat 1 # - Escape Goat 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='escape-goat-1' GAME_ID_EPISODE2='escape-goat-2' GAME_NAME_EPISODE1='Escape Goat' GAME_NAME_EPISODE2='Escape Goat 2' # Archives ## Escape Goat ARCHIVE_BASE_EPISODE1_0_NAME='gog_escape_goat_2.0.0.8.sh' ARCHIVE_BASE_EPISODE1_0_MD5='772eda5c48d59b7528a9d85b3f1f84e3' ARCHIVE_BASE_EPISODE1_0_SIZE='110000' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0.6-gog2.0.0.8' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/game/escape_goat' ## Escapt Goat 2 ARCHIVE_BASE_EPISODE2_0_NAME='gog_escape_goat_2_2.0.0.11.sh' ARCHIVE_BASE_EPISODE2_0_MD5='50e77abfe8737c6d0e1e37e8ad2460cc' ARCHIVE_BASE_EPISODE2_0_SIZE='260000' ARCHIVE_BASE_EPISODE2_0_VERSION='1.1.0-gog2.0.0.11' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/game/escape_goat_2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES_EPISODE1=' Content fr EscapeGoat.exe Escape Goat.bmp Common.dll Lidgren.Network.dll MonoGame.Framework.dll Physics.dll SDL2#.dll SDL2#.dll.config' CONTENT_GAME_MAIN_FILES_EPISODE2=' Content fr EscapeGoat2.exe Escape Goat 2.bmp Common.dll EG2.ICSharpCode.SharpZipLib.dll EG2.Newtonsoft.Json.dll EscapeGoat2.resources.dll Illuminant.dll MonoGame.Framework.dll Physics.dll SDL2-CS.dll SDL2-CS.dll.config Squared.*.dll' CONTENT_DOC_MAIN_FILES=' Linux.README ReadMe.txt' APP_MAIN_EXE_EPISODE1='EscapeGoat.exe' APP_MAIN_EXE_EPISODE2='EscapeGoat2.exe' APP_MAIN_ICON_EPISODE1='Escape Goat.bmp' APP_MAIN_ICON_EPISODE2='Escape Goat 2.bmp' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_EPISODE1=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_EPISODE2=' mscorlib.dll I18N.dll I18N.West.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' ## Ensure easy upgrades from packages generated from pre-20240603.1 game scripts. PKG_MAIN_PROVIDES_EPISODE1="${PKG_MAIN_PROVIDES_EPISODE1:-} escape-goat escapt-goat-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evans-remains.sh0000755000000000000000000000572014471751340014734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Evan's Remains # send your bug reports to bugs@dotslashplay.it ### script_version=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='evans-remains' GAME_NAME='Evan’s Remains' ARCHIVE_BASE_0_NAME='setup_evans_remains_1.0_(41967).exe' ARCHIVE_BASE_0_MD5='a91b5a8801daa0befc00e581e28d676a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='3.3.3-gog41967' ARCHIVE_BASE_0_URL='https://www.gog.com/game/evans_remains' CONTENT_PATH_DEFAULT='.' CONTENT_FONTS_DATA_FILES=' basis33.ttf jf-dot-ayu18.ttf koharufont.ttf unifont-13.0.01.ttf' CONTENT_GAME_BIN_FILES=' evansremains.exe options.ini' CONTENT_GAME_DATA_FILES=' data.win *.csv' CONTENT_DOC_DATA_FILES=' license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Evan_v_3_3_3' APP_MAIN_EXE='evansremains.exe' 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' # Work around the shipped icon not using a square ratio REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Work around the shipped icon not using a square ratio icon_source_png='tmp/evansremains.exe_14_152_2057.png' icon_source_png_cropped='tmp/evansremains.exe_14_152_2057_cropped.png' icon_converted_128='evansremains_128.png' icon_converted_192='evansremains_192.png' icon_extract_png_from_file 'APP_MAIN_ICON' 'tmp' convert "$icon_source_png" -crop 149x149+1x0 "$icon_source_png_cropped" convert "$icon_source_png_cropped" -resize 128x128 "$icon_converted_128" convert "$icon_source_png_cropped" -resize 192x192 "$icon_converted_192" rm --recursive 'tmp' ) # Include game data ## Work around the shipped icon not using a square ratio. APP_MAIN_ICON_128='evansremains_128.png' APP_MAIN_ICON_192='evansremains_192.png' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_128 APP_MAIN_ICON_192' content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-feist.sh0000755000000000000000000000574614471751340013306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Feist # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='feist' GAME_NAME='Feist' ARCHIVE_BASE_0_NAME='feist_en_1_3_0_22450.sh' ARCHIVE_BASE_0_MD5='f9561b4faddb9789a5c97833af935d09' ARCHIVE_BASE_0_SIZE='186520' ARCHIVE_BASE_0_VERSION='1.3.0-gog22450' ARCHIVE_BASE_0_URL='https://www.gog.com/game/feist' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_feist_2.4.0.7.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='ce0b128c23defc946535ec180dcef121' ARCHIVE_BASE_MULTIARCH_0_SIZE='459990' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.1.2-gog2.4.0.7' UNITY3D_NAME='Feist' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES_MUTLIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MUTLIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MUTLIARCH" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fez.sh0000700000000000000000000000556114471751340012741 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fez # send your bug reports to bugs@dotslashplay.it ### script_version=20240830.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fez' GAME_NAME='Fez' ARCHIVE_BASE_0_NAME='fez-11282016-bin' ARCHIVE_BASE_0_MD5='333d2e5f55adbd251b09e01d4da213c6' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='440000' ARCHIVE_BASE_0_VERSION='1.12-humble161128' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fez' CONTENT_PATH_DEFAULT='data' ## Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_FILES=' libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content monoconfig FEZ.bmp Common.dll ContentSerialization.dll EasyStorage.dll FezEngine.dll FNA.dll FNA.dll.config SimpleDefinitionLanguage.dll XnaWordWrapCore.dll FEZ.exe gamecontrollerdb.txt' CONTENT_DOC_MAIN_FILES=' Linux.README Changelog.txt README.txt' APP_MAIN_EXE='FEZ.exe' APP_MAIN_ICON='FEZ.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libvorbis.so.0 libvorbisfile.so.3' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.IO.Compression.dll System.IO.Compression.FileSystem.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flat-kingdom.sh0000755000000000000000000000333514471751340014540 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Flat Kingdom # send your bug reports to bugs@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='flat-kingdom' GAME_NAME='Flat Kingdom' ARCHIVE_BASE_0_NAME='Flat Kingdom PC.zip' ARCHIVE_BASE_0_MD5='2b824a3f57dac2bda8d9b60efcc85ee7' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://gamesstarter.itch.io/flatkingdom' UNITY3D_NAME='Flat kingdom rework' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fat Panda/Flat Kingdom' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-forgotton-anne.sh0000700000000000000000000000433014471751340015106 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Forgotton Anne # send your bug reports to bugs@dotslashplay.it ### script_version=20250627.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='forgotton-anne' GAME_NAME='Forgotton Anne' ARCHIVE_BASE_0_NAME='setup_forgotton_anne_5.5.3_(29552).exe' ARCHIVE_BASE_0_MD5='2f6b17e78651f6ccc9070705b879a6ae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_forgotton_anne_5.5.3_(29552)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8f6e836ff3519e4759af8c51ed89655d' ARCHIVE_BASE_0_PART2_NAME='setup_forgotton_anne_5.5.3_(29552)-2.bin' ARCHIVE_BASE_0_PART2_MD5='728970d510b82fc1d9d336c9e26fb8c3' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='5.5.3-gog29552' ARCHIVE_BASE_0_URL='https://www.gog.com/game/forgotton_anne' UNITY3D_NAME='forgottonanne' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/51445449926814491' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_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-fossil-echo.sh0000755000000000000000000000451114471751340014374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fossil Echo # send your bug reports to bugs@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fossil-echo' GAME_NAME='Fossil Echo' ARCHIVE_BASE_0_NAME='FossilEcho_setup.zip' ARCHIVE_BASE_0_MD5='079e62f826016c1d3edd35e8fe40bb3a' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://awaceb.itch.io/fossilecho' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' datatypes.dll fmod.dll fmodstudio.dll fossilecho.exe' CONTENT_GAME_DATA_FILES=' content data level media' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/SavedGames/fossilecho' ## Install the Microsoft XNA 4.0 runtime WINE_WINETRICKS_VERBS='xna40' ## Do not disable the mscoree library, as it is required by the Microsoft XNA 4.0 runtime WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' USER_PERSISTENT_DIRECTORIES=' data level' APP_MAIN_EXE='fossilecho.exe' ## Handle this binary with WINE, not with Mono APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/FossilEcho_setup.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm --force "$(archive_path 'ARCHIVE_INNER')" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fotonica.sh0000700000000000000000000000521214471751340013750 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fotonica # send your bug reports to bugs@dotslashplay.it ### script_version=20241123.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='fotonica' GAME_NAME='Fotonica' ARCHIVE_BASE_0_NAME='FOTONICA_LINUX.tar.gz' ARCHIVE_BASE_0_MD5='33b8918b21c03ae0289e7050c661b534' ARCHIVE_BASE_0_SIZE='293117' ARCHIVE_BASE_0_VERSION='1.0-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/fotonica' UNITY3D_NAME='FOTONICA' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='FOTONICA' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-four-sided-fantasy.sh0000700000000000000000000000341014471751340015650 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Four Sided Fantasy # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='four-sided-fantasy' GAME_NAME='Four Sided Fantasy' ARCHIVE_BASE_0_NAME='FourSidedFantasy.zip' ARCHIVE_BASE_0_MD5='3e6b74bb365bd75cf79f089ff9ddc619' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.0-itch.2016.11.14' ARCHIVE_BASE_0_URL='https://serenity-forge.itch.io/four-sided-fantasy' UNITY3D_NAME='FourSidedFantasy' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\AppDataLow\Software\LudoLand\Four Sided Fantasy' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-giana-sisters-series.sh0000700000000000000000000001354214471751340016214 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Giana Sisters series: # - Giana Sisters: Twisted Dreams # - Giana Sisters: Rise of the Owlverlord # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.4 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_DREAMS='giana-sisters-twisted-dreams' GAME_NAME_DREAMS='Giana Sisters: Twisted Dreams' GAME_ID_OWL='giana-sisters-rise-of-the-owlverlord' GAME_NAME_OWL='Giana Sisters: Rise of the Owlverlord' # Archives ## Giana Sisters: Twisted Dreams ARCHIVE_BASE_DREAMS_1_NAME='setup_giana_sisters_twisted_dreams_1.2.1_(19142).exe' ARCHIVE_BASE_DREAMS_1_MD5='e5605f4890984375192bd37545e51ff8' ARCHIVE_BASE_DREAMS_1_TYPE='innosetup' ARCHIVE_BASE_DREAMS_1_SIZE='2800000' ARCHIVE_BASE_DREAMS_1_VERSION='1.2.1-gog19142' ARCHIVE_BASE_DREAMS_1_URL='https://www.gog.com/game/giana_sisters_twisted_dreams' ARCHIVE_BASE_DREAMS_0_NAME='setup_giana_sisters_twisted_dreams_2.2.0.16.exe' ARCHIVE_BASE_DREAMS_0_MD5='31b2a0431cfd764198834faec314f0b2' ARCHIVE_BASE_DREAMS_0_TYPE='innosetup' ARCHIVE_BASE_DREAMS_0_SIZE='2900000' ARCHIVE_BASE_DREAMS_0_VERSION='1.0-gog2.2.0.16' ## Giana Sisters: Rise of the Owlverlord ARCHIVE_BASE_OWL_1_NAME='setup_giana_sisters_rise_of_the_owlverlord_2.1.0.8.exe' ARCHIVE_BASE_OWL_1_MD5='bebb3a09c10b8e34b88b6d9f64dedeab' ARCHIVE_BASE_OWL_1_TYPE='innosetup' ARCHIVE_BASE_OWL_1_SIZE='2556034' ARCHIVE_BASE_OWL_1_VERSION='1.0-gog2.1.0.8' ARCHIVE_BASE_OWL_1_URL='https://www.gog.com/game/giana_sisters_rise_of_the_owlverlord' CONTENT_PATH_DEFAULT_DREAMS='.' CONTENT_PATH_DEFAULT_DREAMS_0='app' CONTENT_PATH_DEFAULT_OWL='app' CONTENT_GAME_BIN_FILES=' launcher 7z.dll gsgameexe.exe gsgameexe_dx9.exe' CONTENT_GAME_DATA_FILES=' bundles added_content data_common' CONTENT_GAME0_DATA_PATH='__support/app' CONTENT_GAME0_DATA_FILES=' data_common' CONTENT_DOC_DATA_FILES=' 7z_copying.txt 7z_license.txt 7z_readme.txt' WINE_PERSISTENT_DIRECTORIES_DREAMS=' users/${USER}/Documents/Giana Sisters - Twisted Dreams' WINE_PERSISTENT_DIRECTORIES_OWL=' users/${USER}/Documents/Giana Sisters - Rise of the Owlverlord' ## Despite the needed GStreamer decoders being available, the game freezes when it should play the introduction video: ## ## mmap() failed: Cannot allocate memory ## mmap() failed: Cannot allocate memory ## 0024:err:pulse:pulse_test_connect Failed to create context ## ## (wine:388328): GStreamer-WARNING **: 17:59:53.832: Failed to load plugin '/usr/lib/i386-linux-gnu/gstreamer-1.0/libgstlibav.so': libopenmpt.so.0: failed to map segment from shared object ## winegstreamer error: decodebin1: Your GStreamer installation is missing a plug-in. ## winegstreamer error: decodebin1: ../gst/playback/gstdecodebin2.c(4720): gst_decode_bin_expose (): /GstBin:bin0/GstDecodeBin:decodebin1: ## no suitable plugins found: ## Missing decoder: Windows Media Video 9 (video/x-wmv, wmvversion=(int)3, format=(string)WMV3, width=(int)1920, height=(int)1080, codec_data=(buffer)4ff1080100, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333) ## ## 0:00:00.034232127 388328 0x58932820 ERROR WINE dlls/winegstreamer/wg_parser.c:1616:wg_parser_connect: Failed to play stream. ## winegstreamer error: decodebin2: Your GStreamer installation is missing a plug-in. ## winegstreamer error: decodebin2: ../gst/playback/gstdecodebin2.c(4720): gst_decode_bin_expose (): /GstBin:bin0/GstDecodeBin:decodebin2: ## no suitable plugins found: ## Missing decoder: Windows Media Audio 8 (audio/x-wma, wmaversion=(int)2, bitrate=(int)48024, depth=(int)16, rate=(int)44100, channels=(int)2, block_align=(int)2230, codec_data=(buffer)008800001f0000000000) ## ## 0024:err:wmvcore:init_stream Failed to connect parser, hr 0x80004005. ## ## Using native Windows codecs instead of relying on GStreamers decoders works around this freeze. ## (WINE 10.0) WINE_WINETRICKS_VERBS='wmp9' ## The game launcher, used to tweaks settings, relies on .NET/Mono support. WINE_WINEPREFIX_TWEAKS='mono' ## Both games suffer from problems using the default wined3d renderer: ## - Twisted Dreams is badly rendered, making it unplayable; ## - Rise of the Owlverlord crashes a couple seconds into the first level. ## (WINE 10.0) WINE_DIRECT3D_RENDERER='dxvk' APP_MAIN_EXE='gsgameexe.exe' APP_SETTINGS_ID_DREAMS="${GAME_ID_DREAMS}-settings" APP_SETTINGS_ID_OWL="${GAME_ID_OWL}-settings" APP_SETTINGS_NAME_DREAMS="$GAME_NAME_DREAMS - Settings" APP_SETTINGS_NAME_OWL="$GAME_NAME_OWL - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='launcher/gslauncher.exe' ## Ensure the settings application is run through WINE, not Mono. APP_SETTINGS_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' decodebin audio/x-wma video/x-wmv video/x-ms-asf' PKG_DATA_ID_DREAMS="${GAME_ID_DREAMS}-data" PKG_DATA_ID_OWL="${GAME_ID_OWL}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-gris.sh0000700000000000000000000000344314471751340013116 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Gris # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='gris' GAME_NAME='Gris' ARCHIVE_BASE_0_NAME='setup_gris_1.03_(28074).exe' ARCHIVE_BASE_0_MD5='04f25b3c789a549c0a9c4a94c6385aa0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='1.03-gog28074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/gris' UNITY3D_NAME='gris' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/nomada studio/GRIS' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hoa.sh0000700000000000000000000000400714471751340012716 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hoa # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hoa-game' GAME_NAME='Hoa' ARCHIVE_BASE_0_NAME='setup_hoa_1.03_(49429).exe' ARCHIVE_BASE_0_MD5='d713ecdb56059e5b4ee430d2f0e2731d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.03-gog49429' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hoa' UNITY3D_NAME='hoa' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_BIN_FILES=' fmodstudio.dll xinputinterface32.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/PMStudioGoG/Hoa' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240707.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} hoa-data" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## Ensure easy upgrades from packages generated with pre-20240707.2 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} hoa" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hollow-knight.sh0000755000000000000000000000722214471751340014751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Hollow Knight # send your bug reports to bugs@dotslashplay.it ### script_version=20250910.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='hollow-knight' GAME_NAME='Hollow Knight' ARCHIVE_BASE_3_NAME='hollow_knight_1_5_78_11833_51218.sh' ARCHIVE_BASE_3_MD5='ad36d98ec636b09796667f0b124ff5bb' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.5.78-gog51218' ARCHIVE_BASE_3_URL='https://www.gog.com/game/hollow_knight' ARCHIVE_BASE_2_NAME='hollow_knight_1_4_3_2_23987.sh' ARCHIVE_BASE_2_MD5='520af5ebe8ac3977faaafc5d2ed8a779' ARCHIVE_BASE_2_SIZE='7800000' ARCHIVE_BASE_2_VERSION='1.4.3.2-gog23987' ARCHIVE_BASE_1_NAME='hollow_knight_en_1_3_1_5_20240.sh' ARCHIVE_BASE_1_MD5='197d9ffc7e0be447849e22a04da836e4' ARCHIVE_BASE_1_SIZE='7100000' ARCHIVE_BASE_1_VERSION='1.3.1.5-gog20240' ARCHIVE_BASE_0_NAME='gog_hollow_knight_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='0d18baf29d5552dc094ca2bfe5fcaae6' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.0.3.1-gog2.1.0.2' UNITY3D_NAME='Hollow Knight' UNITY3D_NAME_2='hollow_knight' UNITY3D_NAME_1="$UNITY3D_NAME_2" UNITY3D_NAME_0="$UNITY3D_NAME_2" ## Only older builds include the ScreenSelector.so plugin. UNITY3D_PLUGINS_2=' ScreenSelector.so' UNITY3D_PLUGINS_1="$UNITY3D_PLUGINS_2" UNITY3D_PLUGINS_0="$UNITY3D_PLUGINS_2" CONTENT_PATH_DEFAULT='data/noarch/game' ## The game runs without displaying anything when using the wayland backend of SDL. APP_MAIN_PRERUN=' # The game runs without displaying anything when using the wayland backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='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' ## Only older builds include the ScreenSelector.so plugin. PKG_BIN_DEPENDENCIES_LIBRARIES_2=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_1="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" PKG_BIN_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20230406.2 packages PKG_DATA_PROVIDES=' hollow-knight-assets' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Drop the "Plugins" directory if it is empty. rmdir --ignore-fail-on-non-empty \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-indivisible.sh0000755000000000000000000000533414471751340014466 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Indivisible # send your bug reports to bugs@dotslashplay.it ### script_version=20250711.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='indivisible' GAME_NAME='Indivisible' ARCHIVE_BASE_0_NAME='indivisible_42940_39272.sh' ARCHIVE_BASE_0_MD5='7328915691beb21dc77494faf915cfbe' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='42940-gog39272' ARCHIVE_BASE_0_URL='https://www.gog.com/game/indivisible' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavfilter.so.6 libavformat.so.57 libavutil.so.55 libSDL2_locale.so.0 libswresample.so.2 libswscale.so.4 libvpx.so.5' ## Use shipped build of libSDL_kitchensink.so.1 ## to avoid a symbol lookup error: ## undefined symbol: Kit_GetPlayerVideoDataOGL CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL_kitchensink.so.1" ## TODO: Check if the Galaxy library can be dropped. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libGalaxy64.so" ## TODO: Check if the Discord library can be dropped. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libdiscord-rpc.so" CONTENT_GAME_BIN_FILES=' Indivisible.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_FILES=' pkgs' CONTENT_DOC_DATA_FILES=' LICENSES.md' APP_MAIN_EXE='Indivisible.x86_64-pc-linux-gnu' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFAudio.so.0 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisenc.so.2 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 launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-itorah.sh0000755000000000000000000000352414471751340013452 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Itorah # send your bug reports to bugs@dotslashplay.it ### script_version=20240808.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='itorah' GAME_NAME='Itorah' ARCHIVE_BASE_0_NAME='setup_itorah_1.1.0.0_(64bit)_(55208).exe' ARCHIVE_BASE_0_MD5='bb342c5fad11d52235e78a4de89899af' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_itorah_1.1.0.0_(64bit)_(55208)-1.bin' ARCHIVE_BASE_0_PART1_MD5='dd70af89b506ef5276b5cc1921b44462' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.1.0.0-gog55208' ARCHIVE_BASE_0_URL='https://www.gog.com/game/itorah' UNITY3D_NAME='itorah' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Grimbart Tales/Itorah/Itorah' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kero-blaster-series.sh0000755000000000000000000000564614471751340016055 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kero Blaster series: # - Kero Blaster # - Pink Heaven # - Pink Hour # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_BLASTER='kero-blaster' GAME_NAME_BLASTER='Kero Blaster' GAME_ID_HEAVEN='pink-heaven' GAME_NAME_HEAVEN='Pink Heaven' GAME_ID_HOUR='pink-hour' GAME_NAME_HOUR='Pink Hour' # The following archives used to be sold from Playism store, # before it closed down in favour of Steam. ARCHIVE_BASE_BLASTER_0_NAME='KeroBlaster_EN_v1501a.zip' ARCHIVE_BASE_BLASTER_0_MD5='c6ba58d37b5344d08c7d9a94506266b0' ARCHIVE_BASE_BLASTER_0_SIZE='20000' ARCHIVE_BASE_BLASTER_0_VERSION='1.501-playism1501a' ARCHIVE_BASE_HEAVEN_0_NAME='PinkHeavenEn-v1430a.zip' ARCHIVE_BASE_HEAVEN_0_MD5='7d1b3e193a5ba9618cba1ffb0c977762' ARCHIVE_BASE_HEAVEN_0_SIZE='15000' ARCHIVE_BASE_HEAVEN_0_VERSION='1.43-playism1430a' ARCHIVE_BASE_HOUR_0_NAME='PinkHourEn-v1430a.zip' ARCHIVE_BASE_HOUR_0_MD5='7cd38735bf02634474eb8bf5a39439b2' ARCHIVE_BASE_HOUR_0_SIZE='15000' ARCHIVE_BASE_HOUR_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT_BLASTER='KeroBlasterEn' CONTENT_PATH_DEFAULT_HEAVEN='PinkHeavenEn' CONTENT_PATH_DEFAULT_HOUR='PinkHourEn' CONTENT_GAME_BIN_FILES_BLASTER=' KeroBlaster.exe' CONTENT_GAME_BIN_FILES_HEAVEN=' PinkHeaven.exe' CONTENT_GAME_BIN_FILES_HOUR=' PinkHour.exe' CONTENT_GAME_DATA_FILES=' rsc_?' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE_BLASTER='KeroBlaster.exe' APP_MAIN_EXE_HEAVEN='PinkHeaven.exe' APP_MAIN_EXE_HOUR='PinkHour.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libmpg123.so.0' PKG_DATA_ID_BLASTER="${GAME_ID_BLASTER}-data" PKG_DATA_ID_HEAVEN="${GAME_ID_HEAVEN}-data" PKG_DATA_ID_HOUR="${GAME_ID_HOUR}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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-la-mulana.sh0000700000000000000000000000525414471751340014023 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # La-Mulana # send your bug reports to bugs@dotslashplay.it ### script_version=20250331.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='la-mulana' GAME_NAME='La•Mulana' ## This DRM-free build is no longer available for sale from Humble Bundle. ARCHIVE_BASE_0_NAME='20170404_LaMulana_Linux.zip' ARCHIVE_BASE_0_MD5='e7a597ea2588ae975a7cc7b59c17d50d' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.6.6-humble180409' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_RELATIVE_PATH='x86' CONTENT_GAME_BIN_FILES=' LaMulana.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' data *.bmp *.png' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux' CONTENT_DOC0_DATA_PATH='.' CONTENT_DOC0_DATA_FILES=' License Manual ReadMe_??.txt' APP_MAIN_EXE='LaMulana.bin.x86' APP_MAIN_ICON='noarch/Icon.png' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN=' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # The .zip archive includes a MojoSetup installer. REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} bsdtar" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 INNER_ARCHIVE_PATH="${PLAYIT_WORKDIR}/gamedata/LaMulanaSetup-2017-01-27.sh" archive_extraction 'INNER_ARCHIVE' rm "$INNER_ARCHIVE_PATH" # Include 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-limbo.sh0000755000000000000000000000467514471751340013276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Limbo # send your bug reports to bugs@dotslashplay.it ### script_version=20250710.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='limbo' GAME_NAME='Limbo' # The following native Linux installers are no longer sold from Humble Bundle, # they now only sell a Windows build. ARCHIVE_BASE_1_NAME='Limbo-Linux-2014-06-18.zip' ARCHIVE_BASE_1_MD5='5bb49941722ff6d4d6a494e064fd197e' ARCHIVE_BASE_1_SIZE='190000' ARCHIVE_BASE_1_VERSION='1.3-humble2' ARCHIVE_BASE_0_NAME='Limbo-Linux-2014-06-18.sh' ARCHIVE_BASE_0_MD5='9b453abcb859c31cc645a7207de08329' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.3-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' limbo' CONTENT_GAME_DATA_FILES=' data settings.txt limbo.png *.pkg' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_FILES=' settings.txt' APP_MAIN_EXE='limbo' APP_MAIN_ICON='limbo.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' case "$(current_archive)" in ('ARCHIVE_BASE_1') ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Limbo-Linux-2014-06-18.sh" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-bug.sh0000755000000000000000000000405114471751340014230 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Bug # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='little-bug' GAME_NAME='Little Bug' ARCHIVE_BASE_0_NAME='little_bug_v1_1_4_26003.sh' ARCHIVE_BASE_0_MD5='3bbc574d9b8a0279cb023184cb81dd63' ARCHIVE_BASE_0_SIZE='662802' ARCHIVE_BASE_0_VERSION='1.1.4-gog26003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_bug' UNITY3D_NAME='Little Bug' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-little-nightmares-1.sh0000755000000000000000000000403214471751340015751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Nightmares # send your bug reports to bugs@dotslashplay.it ### script_version=20250909.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='little-nightmares-1' GAME_NAME='Little Nightmares' ARCHIVE_BASE_0_NAME='setup_little_nightmares_1.0.43.1_(18471).exe' ARCHIVE_BASE_0_MD5='6e1ac1107650aeb03abc17cf0e614e4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_little_nightmares_1.0.43.1_(18471)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0732121bf0da7db6dc6f5e5a3bc8705b' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='1.0.43.1-gog18471' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_nightmares' UNREALENGINE4_NAME='atlas' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=" ${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/littlenightmares.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-lost-ruins.sh0000755000000000000000000000355014471751340014302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lost Ruins # send your bug reports to bugs@dotslashplay.it ### script_version=20250809.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lost-ruins' GAME_NAME='Lost Ruins' ARCHIVE_BASE_0_NAME='lost_ruins_1_0_9a_48364.sh' ARCHIVE_BASE_0_MD5='ae4fabbe98718fad2c02712e4104ee6b' ARCHIVE_BASE_0_SIZE='497160' ARCHIVE_BASE_0_VERSION='1.0.9a-gog48364' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lost_ruins' UNITY3D_NAME='LostRuins' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-lost-words.sh0000755000000000000000000000407714471751340014305 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Lost Words: Beyond the Page # send your bug reports to bugs@dotslashplay.it ### script_version=20250908.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lost-words' GAME_NAME='Lost Words: Beyond the Page' ARCHIVE_BASE_0_NAME='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551).exe' ARCHIVE_BASE_0_MD5='0c36cfe013e3196442d77a128a38aa9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c632a4a1f22c8f2587e1d224547f00eb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='2021.04.23.8-gog46551' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/lost_words_beyond_the_page' UNITY3D_NAME='lost words' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fourth State/Lost Words' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-mable-and-the-wood.sh0000700000000000000000000000415414471751340015516 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mable and the Wood # send your bug reports to bugs@dotslashplay.it ### script_version=20250629.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='mable-and-the-wood' GAME_NAME='Mable & the Wood' ARCHIVE_BASE_0_NAME='mable_the_wood_1_7_37606.sh' ARCHIVE_BASE_0_MD5='d88e40a5927c67c3974becd19d64c940' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.7-gog37606' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mable_the_wood' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Mable_PC' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/config.ini' APP_MAIN_EXE='Mable_PC' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mark-of-the-ninja-expansions.sh0000700000000000000000000000611614471751340017546 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja expansions: # - Special Edition # send your bug reports to bugs@dotslashplay.it ### script_version=20250615.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' EXPANSION_ID='special-edition' EXPANSION_NAME='Special Edition' ## This Linux build is no longer available for sale from GOG, ## they now only sell a Windows build. ARCHIVE_BASE_0_NAME='gog_mark_of_the_ninja_special_edition_dlc_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='bbce70b80932ec9c14fbedf0b6b33eb1' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' ninja-bin64' CONTENT_GAME_BIN32_FILES=' ninja-bin32' CONTENT_GAME_DATA_FILES=' dlc' APP_MAIN_EXE_BIN64='bin/ninja-bin64' APP_MAIN_EXE_BIN32='bin/ninja-bin32' ## Work around a rendering failure with sdl12-compat. ## cf. https://github.com/libsdl-org/sdl12-compat/issues/315 APP_MAIN_PRERUN=' # Work around a rendering failure with sdl12-compat. # cf. https://github.com/libsdl-org/sdl12-compat/issues/315 export SDL12COMPAT_OPENGL_SCALING=0 ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_PROVIDES=" $GAME_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT_LIBS PKG_PARENT_DATA 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 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_PARENT_LIBS_ID="${GAME_ID}-libs" PKG_PARENT_DATA_ID="${GAME_ID}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## Run the game binary from its parent directory. game_exec_line() { cat <<- EOF cd bin ./$(basename "$(application_exe 'APP_MAIN')") "\$@" EOF } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mark-of-the-ninja.sh0000700000000000000000000000761614471751340015367 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja # send your bug reports to bugs@dotslashplay.it ### script_version=20250312.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' ## This Linux build is no longer available for sale from gog.com. ARCHIVE_BASE_GOG_0_NAME='gog_mark_of_the_ninja_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='126ded567b38580f574478fd994e3728' ARCHIVE_BASE_GOG_0_SIZE='2200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ## This game is no longer available for sale from humblebundle.com. ARCHIVE_BASE_HUMBLE_0_NAME='markoftheninja_linux38_1380755375.zip' ARCHIVE_BASE_HUMBLE_0_MD5='7871a48068ef43e93916325eedd6913e' ARCHIVE_BASE_HUMBLE_0_SIZE='2300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130310' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_LIBS64_RELATIVE_PATH='bin/lib64' CONTENT_LIBS_LIBS64_FILES=' libfmodevent64.so libfmodevent64-4.44.14.so libfmodex64.so libfmodex64-4.44.14.so' CONTENT_LIBS_LIBS32_RELATIVE_PATH='bin/lib32' CONTENT_LIBS_LIBS32_FILES=' libfmodevent.so libfmodevent-4.44.14.so libfmodex.so libfmodex-4.44.14.so' CONTENT_GAME_BIN64_FILES=' bin/ninja-bin64' CONTENT_GAME_BIN32_FILES=' bin/ninja-bin32' CONTENT_GAME_DATA_FILES=' data data-pc bin/*.xpm' CONTENT_DOC_DATA_RELATIVE_PATH='bin' CONTENT_DOC_DATA_FILES=' motn_readme.txt' APP_MAIN_EXE_BIN32='bin/ninja-bin32' APP_MAIN_EXE_BIN64='bin/ninja-bin64' APP_MAIN_ICON='bin/motn_icon.xpm' ## Work around a rendering failure with sdl12-compat ## cf. https://github.com/libsdl-org/sdl12-compat/issues/315 APP_MAIN_PRERUN=' # Work around a rendering failure with sdl12-compat # cf. https://github.com/libsdl-org/sdl12-compat/issues/315 export SDL12COMPAT_OPENGL_SCALING=0 ' PACKAGES_LIST=' PKG_BIN32 PKG_BIN64 PKG_LIBS32 PKG_LIBS64 PKG_DATA' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS 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 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- EOF cd bin ./$(basename "$(application_exe 'APP_MAIN')") "\$@" EOF } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-minute-of-islands.sh0000755000000000000000000000377014471751340015525 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Minute of Islands # send your bug reports to bugs@dotslashplay.it ### script_version=20250908.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='minute-of-islands' GAME_NAME='Minute of Islands' ARCHIVE_BASE_0_NAME='setup_minute_of_islands_1.0_(64bit)_(46572).exe' ARCHIVE_BASE_0_MD5='637bf2569af75d362de916fdf4ed570a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_minute_of_islands_1.0_(64bit)_(46572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='612f7cd620f9055a8f45b408b06a0a8e' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog46572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/minute_of_islands' UNITY3D_NAME='minute of islands' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Studio Fizbin/Minute of Islands' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-mirrors-edge.sh0000755000000000000000000001011014471751340014550 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Mirror's Edge # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='mirrors-edge' GAME_NAME='Mirrorʼs Edge' ARCHIVE_BASE_2_NAME='setup_mirrors_edge_1.01_jpfix_(41238).exe' ARCHIVE_BASE_2_MD5='58078b7594476adf72d58dc01e024327' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-1.bin' ARCHIVE_BASE_2_PART1_MD5='9a202aeca8eaa63d18c24fcdc62a7890' ARCHIVE_BASE_2_PART2_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-2.bin' ARCHIVE_BASE_2_PART2_MD5='3ee19c143f7d85e5393fc51d705ed61c' ARCHIVE_BASE_2_PART3_NAME='setup_mirrors_edge_1.01_jpfix_(41238)-3.bin' ARCHIVE_BASE_2_PART3_MD5='2a961e5b6f2ce2ef42169c0a023e5c4c' ARCHIVE_BASE_2_SIZE='12000000' ARCHIVE_BASE_2_VERSION='1.01-gog41238' ARCHIVE_BASE_2_URL='https://www.gog.com/game/mirrors_edge' ARCHIVE_BASE_1_NAME='setup_mirrors_edge_1.01_(40566).exe' ARCHIVE_BASE_1_MD5='f0faffb76a2b46c3aca8342265a5f41b' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_mirrors_edge_1.01_(40566)-1.bin' ARCHIVE_BASE_1_PART1_MD5='cdfea6d6412de910eae6748eeb6af54e' ARCHIVE_BASE_1_PART2_NAME='setup_mirrors_edge_1.01_(40566)-2.bin' ARCHIVE_BASE_1_PART2_MD5='6b4a66c9ac31c8c2f4e647957c64370a' ARCHIVE_BASE_1_PART3_NAME='setup_mirrors_edge_1.01_(40566)-3.bin' ARCHIVE_BASE_1_PART3_MD5='8529e17c8faa54be07219106ffe00774' ARCHIVE_BASE_1_SIZE='12000000' ARCHIVE_BASE_1_VERSION='1.01-gog40566' ARCHIVE_BASE_0_NAME='setup_mirrors_edge_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='89381d67169f5c6f8f300e172a64f99c' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1_NAME='setup_mirrors_edge_2.0.0.3-1.bin' ARCHIVE_BASE_0_PART1_MD5='406b99108e1edd17fc60435d1f2c27f9' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_mirrors_edge_2.0.0.3-2.bin' ARCHIVE_BASE_0_PART2_MD5='18f2bd62201904c8e98a4b805a90ab2d' ARCHIVE_BASE_0_PART2_TYPE='rar' ARCHIVE_BASE_0_SIZE='7700000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_L10N_FILES=' tdgame/localization tdgame/cookedpc/audio/??? tdgame/cookedpc/startup_???.upk tdgame/cookedpc/ts_loc_???.upk tdgame/cookedpc/ui/ui_fonts_final_???.upk tdgame/cookedpc/maps/sp??/*_loc_???.upk' CONTENT_GAME_MAPS_FILES=' tdgame/cookedpc/maps' CONTENT_GAME_DATA_FILES=' me_icon.ico tdgame' USER_PERSISTENT_DIRECTORIES=' tdgame/config tdgame/savefiles' ## TODO: Check if the inclusion of this library is required WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='binaries/mirrorsedge.exe' APP_MAIN_ICON='me_icon.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_MAPS PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_MAPS PKG_DATA' ## TODO: Check if the localizations package could be splitted into lang-specific ones PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DESCRIPTION='localizations' PKG_MAPS_ID="${GAME_ID}-maps" PKG_MAPS_DESCRIPTION='maps' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mobius.sh0000755000000000000000000000326114471751340013460 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mobius # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mobius' GAME_NAME='Mobius' ARCHIVE_BASE_0_NAME='Mobius v1.1.zip' ARCHIVE_BASE_0_MD5='d1d9ddf376bddb431f7d11d21b2de6e7' ARCHIVE_BASE_0_SIZE='70000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.02.17' ARCHIVE_BASE_0_URL='https://papercookies.itch.io/mobius' UNITY3D_NAME='Mobius' CONTENT_PATH_DEFAULT='Mobius v1.1' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Adam Pype\Mobius' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-momodora-reverie-under-the-moonlight.sh0000700000000000000000000000556614471751340021325 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Momodora: Reverie Under the Moonlight # send your bug reports to bugs@dotslashplay.it ### script_version=20250624.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='momodora-reverie-under-the-moonlight' GAME_NAME='Momodora: Reverie Under the Moonlight' ARCHIVE_BASE_2_NAME='momodora_reverie_under_the_moonlight_1_063_43451.sh' ARCHIVE_BASE_2_MD5='b10b3d929d6ccac6249581cefcc43285' ARCHIVE_BASE_2_SIZE='330000' ARCHIVE_BASE_2_VERSION='1.063-gog43451' ARCHIVE_BASE_2_URL='https://www.gog.com/game/momodora_reverie_under_the_moonlight' ARCHIVE_BASE_1_NAME='momodora_reverie_under_the_moonlight_1_062_24682.sh' ARCHIVE_BASE_1_MD5='9da233f084d0a86e4068ca90c89e4f05' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='1.062-gog24682' ARCHIVE_BASE_0_NAME='momodora_reverie_under_the_moonlight_en_20180418_20149.sh' ARCHIVE_BASE_0_MD5='5ec0d0e8475ced69fbaf3881652d78c1' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.02a-gog20149' CONTENT_PATH_DEFAULT='data/noarch/game/GameFiles' CONTENT_GAME_BIN_FILES=' MomodoraRUtM' CONTENT_GAME_DATA_FILES=' assets' CONTENT_DOC_DATA_PATH='data/noarch/game' CONTENT_DOC_DATA_FILES=' Installation Notes.pdf Update.txt' USER_PERSISTENT_FILES=' assets/*.ini' APP_MAIN_EXE='MomodoraRUtM' APP_MAIN_ICON='assets/icon.png' ## Work around broken support for non-US locales. APP_MAIN_PRERUN=' # Work around broken support for non-US locales. export LANG=C ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mushroom-11.sh0000755000000000000000000000444214471751340014254 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Mushroom 11 # send your bug reports to bugs@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mushroom-11' GAME_NAME='Mushroom 11' ARCHIVE_BASE_0_NAME='Mushroom_11_v1.07b4_Humble_Linux.zip' ARCHIVE_BASE_0_MD5='0c257b149a3636ba839fba4cffe7b3db' ARCHIVE_BASE_0_SIZE='475248' ARCHIVE_BASE_0_VERSION='1.07b4-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/mushroom-11' UNITY3D_NAME='Mushroom_11' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-rabbits-are-gone.sh0000700000000000000000000000503514471751340015715 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Rabbits Are Gone # send your bug reports to bugs@dotslashplay.it ### script_version=20250626.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='my-rabbits-are-gone' GAME_NAME='Oh Jeez, Oh No, My Rabbits Are Gone !!!' ARCHIVE_BASE_1_NAME='oh-jeez-oh-no-my-rabbits-are-gone-linux.zip' ARCHIVE_BASE_1_MD5='5fd3335ca1a517bd733d2692bda6dd35' ARCHIVE_BASE_1_SIZE='210000' ARCHIVE_BASE_1_VERSION='1.3.1.2a-itch1' ARCHIVE_BASE_1_URL='https://studionevermore.itch.io/oh-jeez-oh-no-my-rabbits-are-gone' ARCHIVE_BASE_0_NAME='MyRabbitsAreGone1.1.0.5ItchLinux.zip' ARCHIVE_BASE_0_MD5='4666fb50124c7076b1a9e493b5ff4883' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.5-itch1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' MyRabbitsAreGone' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='MyRabbitsAreGone' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl.so.4 libssl.so.1.1" PKG_BIN_DEPENDENCIES_LIBRARIES_0=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl-gnutls.so.4 libssl.so.1.0.0" 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-never-alone.sh0000755000000000000000000000456114471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Never Alone # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='never-alone' GAME_NAME='Never Alone' ARCHIVE_BASE_0_NAME='NeverAlone_ArcticCollection_Linux.1.04.tar.gz' ARCHIVE_BASE_0_MD5='3da062abaaa9e3e6ff97d4c82c8ea3c3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.04-humble161008' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/never-alone-arctic-collection' UNITY3D_NAME='Never_Alone' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeverAlone_ArcticCollection_Linux.1.04' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" CONTENT_GAME_VIDEOS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/Videos" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_VIDEOS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_VIDEOS PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_VIDEOS_ID="$GAME_ID-videos" PKG_VIDEOS_DESCRIPTION='videos' 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-nihilumbra.sh0000700000000000000000000000615514471751340014307 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Nihilumbra # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='nihilumbra' GAME_NAME='Nihilumbra' ARCHIVE_BASE_64BIT_0_NAME='Nihilumbra-1.35-linux64.tar.gz' ARCHIVE_BASE_64BIT_0_MD5='18aa096020cedea4f208ca55f7e5c85f' ARCHIVE_BASE_64BIT_0_SIZE='2304011' ARCHIVE_BASE_64BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' ARCHIVE_BASE_32BIT_0_NAME='Nihilumbra-1.35-linux32.tar.gz' ARCHIVE_BASE_32BIT_0_MD5='24ba59112bdb95b05651ebe48ec5882d' ARCHIVE_BASE_32BIT_0_SIZE='2301254' ARCHIVE_BASE_32BIT_0_VERSION='1.35-humble150122' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/nihilumbra' UNITY3D_NAME='Nihilumbra' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_64BIT='Nihilumbra-1.35-linux64' CONTENT_PATH_DEFAULT_32BIT='Nihilumbra-1.35-linux32' ## APP_MAIN_ICON is set implicitly for all Unity3D games APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_32 APP_MAIN_ICON_48_PNG APP_MAIN_ICON_48_XPM APP_MAIN_ICON_64 APP_MAIN_ICON_128' APP_MAIN_ICON_32='icon32x32.png' APP_MAIN_ICON_48_PNG='icon48x48.png' APP_MAIN_ICON_48_XPM='icon48x48.xpm' APP_MAIN_ICON_64='icon64x64.png' APP_MAIN_ICON_128='icon128x128.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, as this game is not affected by the bug it works around unity3d_disable_map32bit() { true; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-noita.sh0000755000000000000000000000610414471751340013273 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Noita # send your bug reports to bugs@dotslashplay.it ### script_version=20250320.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='noita' GAME_NAME='Noita' ARCHIVE_BASE_0_NAME='setup_noita_20231221-_050_(69862).exe' ARCHIVE_BASE_0_MD5='106a6244f5d69eccfb690e2a5d5e3100' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1446784' ARCHIVE_BASE_0_VERSION='2023.12.21-gog69862' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noita' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' tools_modding fmod.dll fmodstudio.dll lua51.dll msvcp120.dll msvcr120.dll sdl2.dll noita.exe noita_dev.exe config.xml' ## TODO: Check if the Galaxy library is required CONTENT_GAME0_BIN_FILES=' galaxy.dll' CONTENT_GAME_DATA_FILES=' data mods' CONTENT_DOC_DATA_FILES=' licenses _branch.txt _release_notes.txt _version_hash.txt readme.txt screenshot_paths.txt' USER_PERSISTENT_DIRECTORIES=' mods' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nolla_Games_Noita' ## The game fails to start unless Microsoft Visual C++ 2013 libraries are available. WINE_WINETRICKS_VERBS='vcrun2013' APP_MAIN_EXE='noita.exe' APP_MAIN_ICON='data/icon.bmp' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN=' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Convert icon to standard resolutions REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} convert" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert icon to standard resolutions. icon_source=$(icon_path 'APP_MAIN_ICON') convert "$icon_source" -resize 64x64 'icon_64.png' convert "$icon_source" -resize 96x96 'icon_96.png' ) # Include game data ## Convert icon to standard resolutions. APP_MAIN_ICON_64='icon_64.png' APP_MAIN_ICON_96='icon_96.png' APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_64 APP_MAIN_ICON_96" 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-nyx-quest.sh0000700000000000000000000000366714471751340014137 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nyx Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='nyx-quest' GAME_NAME='NyxQuest: Kindred Spirits' ARCHIVE_BASE_0_NAME='setup_nyxquest_kindred_spirits_1.3_(36614).exe' ARCHIVE_BASE_0_MD5='eb9e6d7fd8136bbf581ab350fe7bb85b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.3-gog36614' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nyxquest_kindred_spirits' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' devil.dll openal32.dll wrap_oal.dll nyxquest.exe' CONTENT_GAME_DATA_FILES=' datapc nyx_icon.ico' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Over the Top Games/NyxQuest' APP_MAIN_EXE='nyxquest.exe' APP_MAIN_ICON='nyx_icon.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oddworld-abes-oddysee.sh0000755000000000000000000000412114471751340016336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Oddworld: Abe's Oddysee # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='oddworld-abes-oddysee' GAME_NAME='Oddworld: Abeʼs Oddysee' ARCHIVE_BASE_1_NAME='setup_abes_oddysee_1.0_(19071).exe' ARCHIVE_BASE_1_MD5='1c60cd9f43cc6392fc7c5185580eb048' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='650000' ARCHIVE_BASE_1_VERSION='1.0-gog19071' ARCHIVE_BASE_1_URL='https://www.gog.com/game/oddworld_abes_oddysee' ARCHIVE_BASE_0_NAME='setup_abes_oddysee_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='c22a44d208e524dc2760ea6ce57829d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='2.1-gog2.0.0.4' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' abewin.exe' CONTENT_GAME_DATA_FILES=' *.ddv *.lvl' CONTENT_DOC_DATA_FILES=' *.txt *.pdf' USER_PERSISTENT_DIRECTORIES=' save' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='abewin.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-one-hand-clapping.sh0000755000000000000000000000357514471751340015456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # One Hand Clapping # send your bug reports to bugs@dotslashplay.it ### script_version=20250627.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='one-hand-clapping' GAME_NAME='One Hand Clapping' ARCHIVE_BASE_0_NAME='setup_one_hand_clapping_1.0.41_release_(54430).exe' ARCHIVE_BASE_0_MD5='039da011a24466dc791b91c34ba1f6a3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.0.41-gog54430' ARCHIVE_BASE_0_URL='https://www.gog.com/game/one_hand_clapping' UNITY3D_NAME='one hand clapping' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bad Dream Games/One Hand Clapping' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ori-and-the-blind-forest.sh0000700000000000000000000000651514471751340016652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Thomas Vasileiou set -o errexit ### # Ori and the Blind Forest # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='ori-and-the-blind-forest' GAME_NAME='Ori and the Blind Forest' ARCHIVE_BASE_1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474).exe' ARCHIVE_BASE_1_MD5='510199277acd79e434ceaccf9b28a71c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-1.bin' ARCHIVE_BASE_1_PART1_MD5='44382e02153ed54ab4ed182c252fe9f5' ARCHIVE_BASE_1_PART2_NAME='setup_ori_and_the_blind_forest_definitive_edition_1.0_(28474)-2.bin' ARCHIVE_BASE_1_PART2_MD5='c8c12108e5e7cebd46a7a78c995a5f1a' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.0-gog28474' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ori_and_the_blind_forest_definitive_edition' ARCHIVE_BASE_0_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='1dedfb0663ebbe82d051a62dc68149b5' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='d5ec4ea264c372a4fdd52b5ecbd9efe6' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_ori_and_the_blind_forest_de_2.0.0.2-2.bin' ARCHIVE_BASE_0_PART2_MD5='94c3d33701eadca15df9520de55f6f03' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='oride' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_DATA_ASSETS_FILES=" ${UNITY3D_NAME}_data/*.assets ${UNITY3D_NAME}_data/*.assets.ress" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/Ori and the Blind Forest DE' APP_MAIN_OPTIONS='-force-d3d9' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETS PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETS' PKG_DATA_ASSETS_ID="${PKG_DATA_ID}-assets" PKG_DATA_ASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - assets" ## Ensure easy upgrade from packages generated using pre-20211129.5 game script PKG_DATA_ASSETS_PROVIDES=' ori-and-the-blind-forest-assets' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-out-of-line.sh0000700000000000000000000000353114471751340014306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Out of Line # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='out-of-line' GAME_NAME='Out of Line' ARCHIVE_BASE_0_NAME='setup_out_of_line_1.0.1.2_(50411).exe' ARCHIVE_BASE_0_MD5='5cf39c90da563dc21776536b1904b0df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50411' ARCHIVE_BASE_0_URL='https://www.gog.com/game/out_of_line' UNITY3D_NAME='out of line' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nerd Monkeys/Out of Line' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-owlboy.sh0000700000000000000000000001131414471751340013461 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Owlboy # send your bug reports to bugs@dotslashplay.it ### script_version=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='owlboy' GAME_NAME='Owlboy' ARCHIVE_BASE_0_NAME='owlboy-01302020-bin' ARCHIVE_BASE_0_MD5='0d8d67c79b9359ee4b79913b6b640465' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='518307' ARCHIVE_BASE_0_VERSION='1.3.7013.40718-humble200130' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/owlboy' ARCHIVE_BASE_MULTIARCH_3_NAME='owlboy-03152019-bin' ARCHIVE_BASE_MULTIARCH_3_MD5='2966b183f43f220ade646cb3f7872c49' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_3_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_3_SIZE='550000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.3.7013.40178-humble190325' ARCHIVE_BASE_MULTIARCH_2_NAME='owlboy-12292017.bin' ARCHIVE_BASE_MULTIARCH_2_MD5='c2e99502013c7d2529bc2aefb6416dcf' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_2_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_2_SIZE='570000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.3.6564.30139-humble1' ARCHIVE_BASE_MULTIARCH_1_NAME='owlboy-11022017-bin' ARCHIVE_BASE_MULTIARCH_1_MD5='d3a1e4753a604431c58eb1ea26c35543' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_1_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_1_SIZE='570000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.6515.19883-humble171102' ARCHIVE_BASE_MULTIARCH_0_NAME='owlboy-05232017-bin' ARCHIVE_BASE_MULTIARCH_0_MD5='f35fba69fadffbf498ca8a38dbceeac1' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_MULTIARCH_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_MULTIARCH_0_SIZE='570000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.2.6382.15868-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_FILES=' libmojoshader.so libXNAFileDialog.so' ## The shipped FAudio must be used to prevent game crashes CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libFAudio.so.0" CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' content monoconfig monomachineconfig Owlboy.bmp Owlboy.exe FNA.dll FNA.dll.config GamedevUtility.dll MoonSharp.Interpreter.dll SharpFont.dll SharpFont.dll.config TimSort.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' USER_PERSISTENT_FILES=' content/fonts/*.ini content/localizations/*/speechbubbleconfig.ini' APP_MAIN_EXE='Owlboy.exe' APP_MAIN_ICON='Owlboy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64' PACKAGES_LIST_MULTIARCH=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Design.dll System.Drawing.dll System.Management.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Transactions.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Convert .ini files to Unix-style line separators REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} find dos2unix" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert .ini files to Unix-style line separators find . -type f -name '*.ini' \ -exec dos2unix --quiet '{}' + ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pandemonium.sh0000755000000000000000000000371514471751340014502 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pandemonium # send your bug reports to bugs@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pandemonium' GAME_NAME='Pandemonium!' ARCHIVE_BASE_0_NAME='setup_pandemonium_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='dee53eb1c87be925d64e75ea01eca74f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.15' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pandemonium' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.bat *.cnf *.dll *.exe' CONTENT_GAME_DATA_FILES=' *.pkg' APP_MAIN_EXE='pandy.exe' APP_MAIN_ICON='gfw_high.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Rename some shipped files. mv 'pandy3.exe' 'pandy.exe' mv 'full3.cnf' 'resource.cnf' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-papo-and-yo.sh0000700000000000000000000000560014471751340014273 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Papo and Yo # send your bug reports to bugs@dotslashplay.it ### script_version=20250312.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='papo-and-yo' GAME_NAME='Papo and Yo' ARCHIVE_BASE_0_NAME='PapoYo_linux_1389070953.sh' ARCHIVE_BASE_0_MD5='d8222b87222f4eb05025584bf923da41' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='2014010601-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/papo-yo' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_RELATIVE_PATH='x86/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libPhysXCooking.so libPhysXCore.so libtcmalloc.so.0' ## The game binary is linked against libsteam_api.so, ## so this library can not be omitted. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libsteam_api.so" CONTENT_GAME_BIN_RELATIVE_PATH='x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/steam_appid.txt Binaries/Linux/PYGame-Linux' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' Engine PYGame PapoYoIcon.bmp PapoYoIcon.png' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' about.html BuildVersion.txt README.linux UpdateLog.txt' APP_MAIN_EXE='Binaries/Linux/PYGame-Linux' APP_MAIN_ICON='noarch/PapoYoIcon.png' ## Prevent a game crash when using the wayland backend of SDL APP_MAIN_PRERUN=' # Prevent a game crash when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 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 ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux ./PYGame-Linux "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pid.sh0000700000000000000000000000353714471751340012732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Pid # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pid' GAME_NAME='Pid' ARCHIVE_BASE_1_NAME='setup_pid_gog-1_(18421).exe' ARCHIVE_BASE_1_MD5='d6cd6899df3b2ad13071f58d0362ab3a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.0-gog18421' ARCHIVE_BASE_1_URL='https://www.gog.com/game/pid' ARCHIVE_BASE_0=_NAME'setup_pid_2.2.0.8.exe' ARCHIVE_BASE_0_MD5='02ebb3db7572b1e6c28dce439a76df9a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog2.2.0.8' UNITY3D_NAME='pid' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_DIRECTORIES=' saves' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pikuniku.sh0000755000000000000000000000417714471751340014030 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pikuniku # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pikuniku' GAME_NAME='Pikuniku' ARCHIVE_BASE_0_NAME='Pikuniku_Linux.zip' ARCHIVE_BASE_0_MD5='93faafa1fe66c8038c61c87364caf121' ARCHIVE_BASE_0_SIZE='342205' ARCHIVE_BASE_0_VERSION='1.0.5-itch' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/pikuniku' UNITY3D_NAME='Pikuniku' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pinstripe.sh0000755000000000000000000000427114471751340014201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pinstripe # send your bug reports to bugs@dotslashplay.it ### script_version=20241108.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pinstripe' GAME_NAME='Pinstripe' ARCHIVE_BASE_0_NAME='pinstripe_en_2_0_2_21609.sh' ARCHIVE_BASE_0_MD5='369f761e1cb1159838a2ae8f82313a92' ARCHIVE_BASE_0_SIZE='1450210' ## TODO: Check that 2.1.0 vs. "2_0_2" in the installer name is expected ARCHIVE_BASE_0_VERSION='2.1.0-gog21609' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pinstripe' UNITY3D_NAME='Pinstripe' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-prince-of-persia-2008.sh0000755000000000000000000001574314471751340015724 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Prince of Persia (2008) # send your bug reports to bugs@dotslashplay.it ### script_version=20250809.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='prince-of-persia-2008' GAME_NAME='Prince of Persia' ARCHIVE_BASE_0_NAME='setup_prince_of_persia_1.0_v2_(28572).exe' ARCHIVE_BASE_0_MD5='65143fe6dfb653d5fa95bb79c8022630' ## Conversion of file paths to lowercase should be skipped, to prevent a game crash on launch. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_prince_of_persia_1.0_v2_(28572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='caab8ceb59b30c75533ebd29ccd7a199' ARCHIVE_BASE_0_PART2_NAME='setup_prince_of_persia_1.0_v2_(28572)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ddc7e15fd6daf47e3085e2c66a4ca6cd' ARCHIVE_BASE_0_SIZE='8237644' ARCHIVE_BASE_0_VERSION='1.0-gog28572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/prince_of_persia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Launcher/regvs.cmd Launcher/detectionapi_rd.dll Launcher/directx9tests_rd.dll Launcher/local.dll Launcher/Launcher.exe Launcher/gameinterpreters_rd.intr Launcher/directxtests_rd.tst Launcher/systemtests_rd.tst Support binkw32.dll eax.dll Prince of Persia.exe PrinceOfPersia_Launcher.exe' CONTENT_GAME_L10N_EN_FILES=' Launcher/localization/EN/interpreter_local.ini Resources/us/GameUpdate.us DataPC_StreamedSoundsEng.forge' CONTENT_GAME_L10N_FR_FILES=' Launcher/localization/FR/interpreter_local.ini Resources/fr/GameUpdate.fr Videos/fre DataPC_StreamedSoundsFre.forge' CONTENT_GAME_DATA_FILES=' Videos/ArtGallery.bik Videos/ArtGallery_CityofLight.bik Videos/ArtGallery_DesertTemple.bik Videos/ArtGallery_RoyalePalace.bik Videos/ArtGallery_RuinedCitadel.bik Videos/ArtGallery_Vale.bik Videos/AttractMode.bik Videos/ComboList.bik Videos/Controls.bik Videos/Credits.bik Videos/DE1_001_CINV_GameIntro.bik Videos/Display.bik Videos/Extras.bik Videos/LoadGame.bik Videos/MainMenuE3.bik Videos/Options.bik Videos/SkinsManager.bik Videos/Sound.bik Videos/StartScreenE3.bik Videos/Ubi_Logo.bik Videos/VideoBlack.bik Videos/Vision1.bik Videos/Vision2.bik Videos/Vision3.bik Videos/Vision4.bik Videos/Vision5.bik ekshaderspccompress.bin DataPC.forge DataPC_Default.forge DataPC_DE.forge DataPC_Ext.forge DataPC_HC.forge DataPC_JCT.forge DataPC_lod.forge DataPC_LR.forge DataPC_OB.forge DataPC_POP0WORLD_Ext.forge DataPC_POP0WORLD.forge DataPC_RC.forge DataPC_StreamedSounds.forge' CONTENT_DOC_DATA_FILES=' ubisoft.html manual.pdf ReadMe.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Prince of Persia' ## Set mandatory registry keys and default settings. # shellcheck disable=SC1003 WINE_REGISTRY_INIT=' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Executable"="C:\\'"${GAME_ID}"'\\PrinceOfPersia_Launcher.exe" "InstallDir"="C:\\'"${GAME_ID}"'" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "execPath"="C:\\'"${GAME_ID}"'\\Prince of Persia.exe" "info"="08a0f1c01d540ee143f7ee48a91898fa" "installdir"="C:\\'"${GAME_ID}"'" [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Engine] "AlternateVerticalSync"=dword:00000001 "AlternateVerticalSyncThreshold"=dword:00000000 "Antialiasing"=dword:00000000 "AspectRatioOverride"=dword:000000a6 "DegradedTextures"=dword:00000000 "ParticleEffectNumber"=dword:00000064 "PostEffects"=dword:00000002 "ScreenResolutionHeight"=dword:00000300 "ScreenResolutionWidth"=dword:00000500 "Shadows"=dword:00000002 "VerticalSync"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "AspectRatioOverrideCHKB"=dword:00000000 "DefaultSetting"=dword:00000001 "LauncherVersion"=dword:00000004 "Texture_lvl"=dword:00000001 "VerticalSync_lvl"=dword:00000001 "VisualQualityLvl"=dword:00000002 ' WINE_REGISTRY_INIT_L10N_EN="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Language"="English" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "language"="us" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "LNG_Language"=dword:00000001 ' WINE_REGISTRY_INIT_L10N_FR="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Language"="French" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "language"="fr" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000002 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "LNG_Language"=dword:00000002 ' ## The dedicated settings program requires mfc80u.dll WINE_WINETRICKS_VERBS='mfc80' APP_MAIN_EXE='Prince of Persia.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Configuration" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='Launcher/Launcher.exe' APP_SETTINGS_ICON='Prince of Persia.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 for package in \ 'PKG_L10N_EN' \ 'PKG_L10N_FR' do ( set_current_package "$package" ## TODO: Compatibility level 2.34 adds context support to WINE_REGISTRY_INIT. WINE_REGISTRY_INIT=$(context_value 'WINE_REGISTRY_INIT') # shellcheck disable=SC2218 wine_registry_script_write "$package" ) done wine_registry_script_write() { return 0; } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up working_directory_cleanup exit 0 games/play-project-feline.sh0000700000000000000000000000474414471751340015065 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Project Feline # send your bug reports to bugs@dotslashplay.it ### script_version=20240504.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='project-feline' GAME_NAME='Project Feline' ## This game archive used to be available from itch.io, ## but the developer decided to drop Linux support. ARCHIVE_BASE_0_NAME='feline-linux.zip' ARCHIVE_BASE_0_MD5='5d59dd8b486c250f7ee918d31fee3c69' ARCHIVE_BASE_0_SIZE='870000' ARCHIVE_BASE_0_VERSION='0.10.0-itch.2020.12.13' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='project-feline_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='a92f62d8bc80aa93c7d69ca1021f677a' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/project-feline/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 256x256' UNREALENGINE4_NAME='Feline' CONTENT_PATH_DEFAULT='Feline_0.10.0_Linux' CONTENT_LIBS_BIN_PATH='Feline_0.10.0_Linux/Engine/Binaries/ThirdParty/PhysX3/Linux/x86_64-unknown-linux-gnu' CONTENT_LIBS_BIN_FILES=' libAPEX_ClothingPROFILE.so libApexCommonPROFILE.so libApexFrameworkPROFILE.so libAPEX_LegacyPROFILE.so libApexSharedPROFILE.so libNvParameterizedPROFILE.so libRenderDebugPROFILE.so' APP_MAIN_EXE='Feline/Binaries/Linux/Feline' USER_PERSISTENT_DIRECTORIES=' Feline/Saved/Config' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-psychonauts.sh0000755000000000000000000001100114471751340014531 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # Psychonauts # send your bug reports to bugs@dotslashplay.it ### script_version=20251015.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='psychonauts' GAME_NAME='Psychonauts' ARCHIVE_BASE_0_NAME='gog_psychonauts_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='7fc85f71494ff5d37940e9971c0b0c55' ARCHIVE_BASE_0_SIZE='5200000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/psychonauts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Psychonauts DisplaySettings.ini' CONTENT_GAME_L10N_FR_FILES=' WorkResource/Localization/French WorkResource/Sounds/French' CONTENT_GAME_L10N_DE_FILES=' WorkResource/Localization/German WorkResource/Sounds/German' ## Because of the Sounds/*voice.isb pattern matching Sounds/*/*voice.isb, ## the English localisation package must be prepared last. CONTENT_GAME_L10N_EN_FILES=' WorkResource/Localization/English WorkResource/Sounds/*voice.isb' CONTENT_GAME_DATA_FILES=' WorkResource/cutscenes WorkResource/Fonts WorkResource/PCLevelPackFiles WorkResource/PixelShaders WorkResource/SAVEDGAMES WorkResource/Scripts WorkResource/Textures WorkResource/VertexShaders WorkResource/Localization/Nonsense WorkResource/Localization/localstrings.str WorkResource/Sounds/cagpfx_night.isb WorkResource/Sounds/*fx.isb WorkResource/Sounds/*fxmem.isb WorkResource/Sounds/*music.isb WorkResource/Sounds/*.icb icon.bmp PsychonautsData2.pkg psychonauts.png' CONTENT_DOC_L10N_EN_RELATIVE_PATH='Documents/Readmes' CONTENT_DOC_L10N_EN_FILES=' ReadMe.txt' CONTENT_DOC_L10N_FR_RELATIVE_PATH='Documents/Readmes' CONTENT_DOC_L10N_FR_FILES=' LisezMoi.txt' CONTENT_DOC_L10N_DE_RELATIVE_PATH='Documents/Readmes' CONTENT_DOC_L10N_DE_FILES=' LiesMich.txt' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Psychonauts Manual Win.pdf' APP_MAIN_EXE='Psychonauts' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_PNG APP_MAIN_ICON_BMP' APP_MAIN_ICON_PNG='psychonauts.png' APP_MAIN_ICON_BMP='icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_L10N_DE PKG_L10N_EN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localisation' PKG_L10N_DE_DESCRIPTION='German localisation' PKG_L10N_EN_DESCRIPTION='English localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrade from pre-20211124.2 packages PKG_DATA_PROVIDES=' psychonauts-sounds' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Create localisation setting file. cat > "$(package_path 'PKG_L10N_FR')$(path_game_data)/Psychonauts.ini" << EOF language french EOF cat > "$(package_path 'PKG_L10N_DE')$(path_game_data)/Psychonauts.ini" << EOF language german EOF cat > "$(package_path 'PKG_L10N_EN')$(path_game_data)/Psychonauts.ini" << EOF language english EOF # Write launchers. launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_fr='française' lang_de='allemande' lang_en='anglaise' ;; ('en'|*) lang_string='%s version:' lang_fr='French' lang_de='German' lang_en='English' ;; esac printf '\n' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_FR' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_DE' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_EN' # Clean up. working_directory_cleanup exit 0 games/play-puddle.sh0000755000000000000000000000507014471751340013437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Puddle # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='puddle' GAME_NAME='Puddle' ARCHIVE_BASE_0_NAME='setup_puddle_2.1.0.6.exe' ARCHIVE_BASE_0_MD5='e1773a7bd360125ad67ce864963be586' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.6' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/puddle' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe *.dll' CONTENT_GAME_DATA_FILES=' data de es fr it' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Puddle' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='puddle.exe' APP_MAIN_ICON='puddle.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="$GAME_NAME - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='launcher.exe' APP_SETTINGS_ICON='puddle.exe' ## Type must be set explicitly, ## or it will be wrongly identified as a Mono application. APP_SETTINGS_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Automatically spawn game settings window on first launch ## Using desktop_field_exec here ensures that we get a path already escaped if required. settings_cmd=$(desktop_field_exec 'APP_SETTINGS') APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Automatically spawn game settings window on first launch settings_file="${WINEPREFIX}/drive_c/users/${USER}/Documents/Puddle/Settings.dat" if [ ! -e "$settings_file" ]; then '"${settings_cmd}"' exit 0 fi' # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rogue-legacy.sh0000755000000000000000000000747614471751340014561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Rogue Legacy # send your bug reports to bugs@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='rogue-legacy' GAME_NAME='Rogue Legacy' ARCHIVE_BASE_GOG_1_NAME='rogue_legacy_en_1_4_0_22617.sh' ARCHIVE_BASE_GOG_1_MD5='60a1a7a7ff84a50e2ac52f2e44dce92d' ARCHIVE_BASE_GOG_1_SIZE='366454' ARCHIVE_BASE_GOG_1_VERSION='1.4.0-gog22617' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/rogue_legacy' ARCHIVE_BASE_GOG_0_NAME='gog_rogue_legacy_2.0.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='1b99d6122f0107b420cad9547efefc5e' ARCHIVE_BASE_GOG_0_SIZE='240000' ARCHIVE_BASE_GOG_0_VERSION='1.2.0b-gog2.0.0.2' ARCHIVE_BASE_HUMBLE_0_NAME='roguelegacy-12282013-bin' ARCHIVE_BASE_HUMBLE_0_MD5='b2a18745b911ed87a048440c2f8a0404' ARCHIVE_BASE_HUMBLE_0_SIZE='240000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.2.0b-humble131228' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/rogue-legacy' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_FILES=' libmojoshader.so' ## The shipped build of OpenAL must be used to prevent a crash on launch CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libopenal.so.1" CONTENT_LIBS_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_LIBS_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' RogueLegacy.exe RogueCastle.exe Rogue Legacy.bmp Content mono* DS2DEngine.dll FNA.dll FNA.dll.config InputSystem.dll SpriteSystem.dll Tweener.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE_GOG='RogueLegacy.exe' APP_MAIN_EXE_GOG_0='RogueCastle.exe' APP_MAIN_EXE_HUMBLE='RogueCastle.exe' APP_MAIN_ICON='Rogue Legacy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarf.sh0000755000000000000000000000601014471751340013253 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarf # send your bug reports to bugs@dotslashplay.it ### script_version=20251011.6 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='scarf' GAME_NAME='Scarf' ARCHIVE_BASE_0_NAME='setup_scarf_1.1_(64bit)_(53216).exe' ARCHIVE_BASE_0_MD5='128b44bb5ba007934e91ad2a0ff6f693' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_scarf_1.1_(64bit)_(53216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ef5faab9ebab9772dd159d5cafde0311' ARCHIVE_BASE_0_PART2_NAME='setup_scarf_1.1_(64bit)_(53216)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e388bd53a584a6bb9e58ae9b4af0b3b4' ARCHIVE_BASE_0_PART3_NAME='setup_scarf_1.1_(64bit)_(53216)-3.bin' ARCHIVE_BASE_0_PART3_MD5='000370e5c0bac838f8f50f9b2cfc3f18' ARCHIVE_BASE_0_PART4_NAME='setup_scarf_1.1_(64bit)_(53216)-4.bin' ARCHIVE_BASE_0_PART4_MD5='761da3606e1e2dfa741b5e8be51cd9f3' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.1-gog53216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarf' UNREALENGINE4_NAME='scarf' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## Override the default wrestool options for Unreal Engine 4 games. APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20251011.5 packages PKG_DATA_PROVIDES=' scarf-movies' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Delete unused debug symbols. find "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" -type f -name '*.pdb' -delete ## Delete unused UE Prerequisites installer. rm --recursive "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/engine/extras" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Do not install the Visual C++ Runtime, as it triggers a loop of UE Prerequisites install on launch. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-seasons-after-fall.sh0000700000000000000000000000342714471751340015642 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Seasons After Fall # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='seasons-after-fall' GAME_NAME='Seasons After Fall' ARCHIVE_BASE_0_NAME='setup_seasons_after_fall_26129_(30224).exe' ARCHIVE_BASE_0_MD5='f7207d11fe8483d428d23ca4b62615d1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='26129-gog30224' ARCHIVE_BASE_0_URL='https://www.gog.com/game/seasons_after_fall' UNITY3D_NAME='seasons after fall' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Seasons after Fall' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shantae-and-the-pirates-curse.sh0000700000000000000000000000365414471751340017703 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2022 Mopi set -o errexit ### # Shantae and the Pirate's Curse # send your bug reports to bugs@dotslashplay.it ### script_version=20240706.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shantae-and-the-pirates-curse' GAME_NAME='Shantae and the Pirateʼs Curse' ARCHIVE_BASE_0_NAME='setup_shantae_and_the_pirates_curse_1.04g_(18994).exe' ARCHIVE_BASE_0_MD5='66e16f3a97328c2ba08c19a64d88c16c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.04g-gog18994' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shantae_and_the_pirates_curse' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=" shantae and the pirate's curse.exe" CONTENT_GAME_DATA_FILES=' shantaecurse.data' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE="shantae and the pirate's curse.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shovel-knight.sh0000700000000000000000000000566514471751340014744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Shovel Knight # send your bug reports to bugs@dotslashplay.it ### script_version=20250629.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='shovel-knight' GAME_NAME='Shovel Knight: Treasure Trove' ARCHIVE_BASE_0_NAME='shovel_knight_treasure_trove_4_1b_arby_s_46298.sh' ARCHIVE_BASE_0_MD5='2f5e07e20ac615eb248ab81c25974d53' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='4.1b-gog46298' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shovel_knight' CONTENT_PATH_DEFAULT='data/noarch/game' ## FIXME: An explicit list of libraries should be set. CONTENT_LIBS_BIN_FILES=' *' CONTENT_LIBS_BIN64_RELATIVE_PATH='64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='32' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH='64' CONTENT_GAME_BIN64_FILES=' ShovelKnight' CONTENT_GAME_BIN32_RELATIVE_PATH='32' CONTENT_GAME_BIN32_FILES=' ShovelKnight' CONTENT_GAME_DATA_FILES=' data' ## TODO: Check if these documentation files are actually related to the game itself. ## (boring EULA and installer documentation can be dropped) CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='ShovelKnight' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_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 native libraries might not be complete. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-space-tail.sh0000700000000000000000000000727514471751340014203 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Space Tail # send your bug reports to bugs@dotslashplay.it ### script_version=20250616.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='space-tail' GAME_NAME='Space Tail: Every Journey Leads Home' # Archives ## Native Linux build ARCHIVE_BASE_LINUX_0_NAME='space_tail_every_journey_leads_home_1_0_2r9_61068.sh' ARCHIVE_BASE_LINUX_0_MD5='c267a2e1ef94cde68487e41cd3a4bbcf' ARCHIVE_BASE_LINUX_0_SIZE='7700000' ARCHIVE_BASE_LINUX_0_VERSION='1.0.2r9-gog61068' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' ## Windows build ### This is useful for users of nVIDIA non-free graphics driver, ### as the native Linux build suffers from rendering issues with this driver. ARCHIVE_BASE_WINDOWS_0_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065).exe' ARCHIVE_BASE_WINDOWS_0_MD5='5683d3493606fb5a2a60d9416e79c28d' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_PART1_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065)-1.bin' ARCHIVE_BASE_WINDOWS_0_PART1_MD5='3183c4b2d5db7c462a266e41ad683720' ARCHIVE_BASE_WINDOWS_0_SIZE='7800000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0.2r9-gog61065' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' UNITY3D_NAME_LINUX='Space Tail' UNITY3D_NAME_WINDOWS='space tail' UNITY3D_PLUGINS=' libfmodstudio.so libresonanceaudio.so' ## The game crashes on launch if the Steam library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Enjoy Studio/Space Tail' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' ## Native Linux build PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID_LINUX="${GAME_ID}-linux-data" ## Windows build PKG_BIN_ID_WINDOWS="${GAME_ID}-windows" PKG_DATA_ID_WINDOWS="${GAME_ID}-windows-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then 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 ## Native Linux build - Link libresonanceaudio.so in the game data path, ## the game engine fails to find it otherwise. case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) library_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins" mkdir --parents "$library_destination" ln --symbolic "$(path_libraries)/libresonanceaudio.so" "$library_destination" ;; esac # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-spelunky.sh0000700000000000000000000000346714471751340014032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Spelunky # send your bug reports to bugs@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='spelunky' GAME_NAME='Spelunky' ARCHIVE_BASE_0_NAME='setup_spelunky_2.1.0.9.exe' ARCHIVE_BASE_0_MD5='bff7c275053137881c9f2f6df16ee4b3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='180000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/spelunky' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll spelunky.exe' CONTENT_GAME_DATA_FILES=' data' USER_PERSISTENT_FILES=' data/config.txt data/spelunky_save.sav data/spelunky_save.bak' APP_MAIN_EXE='spelunky.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spiritfarer.sh0000700000000000000000000000766214471751340014513 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Spiritfarer # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='spiritfarer' GAME_NAME='Spiritfarer' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_4_NAME='spiritfarer_35325c_linux_60321.sh' ARCHIVE_BASE_4_MD5='6c01cdd8cd04d23b46153367682722fb' ARCHIVE_BASE_4_SIZE='6308582' ARCHIVE_BASE_4_VERSION='35325c-gog60321' ARCHIVE_BASE_4_URL='https://www.gog.com/game/spiritfarer' ARCHIVE_BASE_3_NAME='spiritfarer_35325c_linux_54594.sh' ARCHIVE_BASE_3_MD5='39f342a2616f42406e8fd4d3f4576acb' ARCHIVE_BASE_3_SIZE='6400000' ARCHIVE_BASE_3_VERSION='35325c-gog54594' ARCHIVE_BASE_1_NAME='spiritfarer_32698_linux_42758.sh' ARCHIVE_BASE_1_MD5='2f1c327bd020676eabd78f99124a786f' ARCHIVE_BASE_1_SIZE='6900000' ARCHIVE_BASE_1_VERSION='32698-gog42758' ARCHIVE_BASE_0_NAME='spiritfarer_32513_linux_41748.sh' ARCHIVE_BASE_0_MD5='8e6e49ce7e7571091f91d82706d2df8e' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='32513-gog41748' ARCHIVE_BASE_DEMO_0_NAME='spiritfarer_demo_demo_20200525a_linux_38575.sh' ARCHIVE_BASE_DEMO_0_MD5='952e425281143b061462e9122e638531' ARCHIVE_BASE_DEMO_0_SIZE='2782689' ARCHIVE_BASE_DEMO_0_VERSION='2020.05.25-gog38575' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/spiritfarer_demo' UNITY3D_NAME='spiritfarer' UNITY3D_NAME_DEMO='Spiritfarer' UNITY3D_PLUGINS_DEMO=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then archive_extraction 'ARCHIVE_MISSING_PLUGINS' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name. unity3d_name=$(unity3d_name) alternative_name='Spiritfarer' ## Old builds ship the binary with a .exe file extension. if [ -e "${alternative_name}.exe" ]; then mv "${alternative_name}.exe" "${unity3d_name}.x86_64" mv "${alternative_name}_Data" "${unity3d_name}_Data" fi # Drop unused Steam and/or Galaxy libraries. case "$(current_archive)" in ## No deletion required for the demo, ## it is already handled through UNITY3D_PLUGINS. ('ARCHIVE_BASE_DEMO_'*) ;; (*) rm --force --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-steamworld-dig-series.sh0000755000000000000000000000674714471751340016410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # SteamWorld Dig series: # - SteamWorld Dig # - SteamWorld Dig 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20251024.3 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_DIG1='steamworld-dig-1' GAME_NAME_DIG1='SteamWorld Dig: A Fistful of Dirt' GAME_ID_DIG2='steamworld-dig-2' GAME_NAME_DIG2='SteamWorld Dig 2' ARCHIVE_BASE_DIG1_GOG_0_NAME='gog_steamworld_dig_2.0.0.7.sh' ARCHIVE_BASE_DIG1_GOG_0_MD5='2f2ed68e00f151ff3c4d0092d8d6b15b' ARCHIVE_BASE_DIG1_GOG_0_SIZE='79000' ARCHIVE_BASE_DIG1_GOG_0_VERSION='1.10-gog2.0.0.7' ARCHIVE_BASE_DIG1_GOG_0_URL='https://www.gog.com/game/steamworld_dig' ARCHIVE_BASE_DIG1_HUMBLE_0_NAME='SteamWorldDig_linux_1393468453.tar.gz' ARCHIVE_BASE_DIG1_HUMBLE_0_MD5='de6ff6273c4e397413d852472d51e788' ARCHIVE_BASE_DIG1_HUMBLE_0_SIZE='77000' ARCHIVE_BASE_DIG1_HUMBLE_0_VERSION='1.10-humble140220' ARCHIVE_BASE_DIG1_HUMBLE_0_URL='https://www.humblebundle.com/store/steamworld-dig' ARCHIVE_BASE_DIG2_0_NAME='steamworld_dig_2_en_1_1_15062.sh' ARCHIVE_BASE_DIG2_0_MD5='baafa458aaef7fc9c80e076d48e754f0' ARCHIVE_BASE_DIG2_0_SIZE='220000' ARCHIVE_BASE_DIG2_0_VERSION='1.1-gog15062' ARCHIVE_BASE_DIG2_0_URL='https://www.gog.com/game/steamworld_dig' CONTENT_PATH_DEFAULT_DIG1_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DIG1_HUMBLE='SteamWorldDig' CONTENT_PATH_DEFAULT_DIG2='data/noarch/game' CONTENT_GAME_BIN_FILES_DIG1=' SteamWorldDig' CONTENT_GAME_BIN_FILES_DIG2=' Dig2' CONTENT_GAME_DATA_FILES=' Bundle BundlePC icon.bmp icon.png' CONTENT_DOC_DATA_FILES=' Licenses readme.txt' APP_MAIN_ICON='icon.png' APP_MAIN_EXE_DIG1='SteamWorldDig' APP_MAIN_EXE_DIG2='Dig2' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_DIG1='32' PKG_BIN_ARCH_DIG2='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID_DIG1="${GAME_ID_DIG1}-data" PKG_DATA_ID_DIG2="${GAME_ID_DIG2}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" ## Prevent a game crash when using the Wayland video backend of SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Prevent a game crash when using the Wayland video backend of SDL. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-steel-rats.sh0000700000000000000000000000404014471751340014227 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Steel Rats # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='steel-rats' GAME_NAME='Steel Rats' ARCHIVE_BASE_0_NAME='setup_steel_ratstm_1.03_(64bit)_(27036).exe' ARCHIVE_BASE_0_MD5='95ebd3a66fd410645947c0e3b0ae1528' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_steel_ratstm_1.03_(64bit)_(27036)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f1624fd9677468f45741dfa57f88a714' ARCHIVE_BASE_0_PART2_NAME='setup_steel_ratstm_1.03_(64bit)_(27036)-2.bin' ARCHIVE_BASE_0_PART2_MD5='a72af4b2e4d64ac63c1cbe59e73501f0' ARCHIVE_BASE_0_SIZE='5600000' ARCHIVE_BASE_0_VERSION='1.03-gog27036' ARCHIVE_BASE_0_URL='https://www.gog.com/game/steel_rats' UNREALENGINE4_NAME='steelrats' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sunblaze.sh0000755000000000000000000000343514471751340014010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunblaze # send your bug reports to bugs@dotslashplay.it ### script_version=20250713.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='sunblaze' GAME_NAME='Sunblaze' ARCHIVE_BASE_0_NAME='setup_sunblaze_1.1.2.016_(64bit)_(48132).exe' ARCHIVE_BASE_0_MD5='85389b46e533fad6ec46188e17688798' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.1.2.016-gog48132' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sunblaze' UNITY3D_NAME='sunblaze' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Games From Earth/Sunblaze' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-sundered.sh0000755000000000000000000000511614471751340013774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Hoël Bézier # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sundered # send your bug reports to bugs@dotslashplay.it ### script_version=20240614.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='sundered' GAME_NAME='Sundered' ARCHIVE_BASE_ITCH_0_NAME='sundered-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='1be5d771f33fa95f3a567aef75314750' ARCHIVE_BASE_ITCH_0_SIZE='2439430' ARCHIVE_BASE_ITCH_0_VERSION='1.0-itch.2020.06.07' ARCHIVE_BASE_ITCH_0_URL='https://thunderlotus.itch.io/sundered' ARCHIVE_BASE_GOG_0_NAME='sundered_20190404_29317.sh' ARCHIVE_BASE_GOG_0_MD5='efd81d3e4b14d26cdef2362b888e0a56' ARCHIVE_BASE_GOG_0_SIZE='2500000' ARCHIVE_BASE_GOG_0_VERSION='20190404-gog23987' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/sundered' UNITY3D_NAME='Sundered' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_ITCH='linux' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-super-meat-boy.sh0000700000000000000000000000605014471751340015020 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Super Meat Boy # send your bug reports to bugs@dotslashplay.it ### script_version=20250630.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='super-meat-boy' GAME_NAME='Super Meat Boy' ARCHIVE_BASE_0_NAME='supermeatboy-linux-11112013-bin' ARCHIVE_BASE_0_MD5='fc024d757395eebfdee342571671332b' ## This archive is a MojoSetup installer that is not using Makeself ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='250899' ARCHIVE_BASE_0_VERSION='1.0-humble131111' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/super-meat-boy' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libmariadb.so.1' ## The game binary is linked against libsteam_api.so, ## so it can not be dropped. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libsteam_api.so" CONTENT_LIBS_BIN64_RELATIVE_PATH='amd64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='x86' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' amd64/SuperMeatBoy' CONTENT_GAME_BIN32_FILES=' x86/SuperMeatBoy' CONTENT_GAME_DATA_FILES=' Levels resources buttonmap.cfg gameaudio.dat gamedata.dat supermeatboy.png locdb.txt steam_appid.txt' CONTENT_DOC_DATA_FILES=' README-licenses.txt README-linux.txt' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BIN64='amd64/SuperMeatBoy' APP_MAIN_EXE_BIN32='x86/SuperMeatBoy' APP_MAIN_ICON='supermeatboy.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-supercow.sh0000700000000000000000000000352014471751340014015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 tyzef # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Supercow # send your bug reports to bugs@dotslashplay.it ### script_version=20250226.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='supercow' GAME_NAME='Supercow' ARCHIVE_BASE_0_NAME='Supercow.exe' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='78363' ARCHIVE_BASE_0_VERSION='1.0-1' ARCHIVE_BASE_0_URL='https://www.gametop.com/download-free-games/supercow/' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' wrapgame.exe *.dll' CONTENT_GAME_DATA_FILES=' data' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Super-Cow' APP_MAIN_EXE='wrapgame.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-symphonia.sh0000700000000000000000000000342414471751340014160 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Symphonia # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='symphonia' GAME_NAME='Symphonia' ## The game currently available for sale from gog.com seems to be a different build of the same game ARCHIVE_BASE_0_NAME='setup_symphonia_v1.0_(64bit)_(48230).exe' ARCHIVE_BASE_0_MD5='fc24a67551022a8e7e8984814575af15' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.0-gog48230' UNITY3D_NAME='symphonia' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tag-the-power-of-paint.sh0000755000000000000000000000444614471751340016366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tag: The Power of Paint # send your bug reports to bugs@dotslashplay.it ### script_version=20250627.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='tag-the-power-of-paint' GAME_NAME='Tag: The Power of Paint' ARCHIVE_BASE_0_NAME='Tag_setup.exe' ARCHIVE_BASE_0_MD5='e46933ffbdc3fdf0816b3ebdd6c326d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='80000' ARCHIVE_BASE_0_VERSION='1.0-digipen' ARCHIVE_BASE_0_URL='https://arcade.digipen.edu/games/tag-the-power-of-paint' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll tag.exe' CONTENT_GAME_DATA_FILES=' assets game data' USER_PERSISTENT_FILES=' game data/*.ini game data/*.xml' ## Native d3dx9_35.dll is required to prevent a crash on launch: ## Unhandled exception: unimplemented function d3dx9_35.dll.D3DXComputeTangent called in 32-bit code (0x7b012866). ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dx9_35' ## Native d3dcompiler prevents some texture display problems. ## (WINE 10.0) WINE_WINETRICKS_VERBS="$WINE_WINETRICKS_VERBS d3dcompiler_47" APP_MAIN_EXE='tag.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tandem-a-tale-of-shadows.sh0000700000000000000000000000355314471751340016635 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tandem: A Tale of Shadows # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tandem-a-tale-of-shadows' GAME_NAME='Tandem: A Tale of Shadows' ARCHIVE_BASE_0_NAME='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868).exe' ARCHIVE_BASE_0_MD5='ec0afb495e85d52304278eb216064dcf' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_tandem_a_tale_of_shadows_1.0.1.2_(50868)-1.bin' ARCHIVE_BASE_0_PART1_MD5='88942a26a5e530f17582eed63cf12a06' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='1.0.1.2-gog50868' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tandem_a_tale_of_shadows' UNREALENGINE4_NAME='shadows' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='shadows.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teslagrad.sh0000700000000000000000000000462114471751340014117 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Teslagrad # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='teslagrad' GAME_NAME='Teslagrad' ARCHIVE_BASE_0_NAME='gog_teslagrad_2.1.0.4.sh' ARCHIVE_BASE_0_MD5='e9683e188615ddd341f8a95a2e8102ed' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.4' ARCHIVE_BASE_0_SIZE='1555377' ARCHIVE_BASE_0_URL='https://www.gog.com/game/teslagrad' UNITY3D_NAME='Teslagrad' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game/Teslagrad_linux32_fullversion_1_4' CONTENT_GAME_BIN64_RELATIVE_PATH='../Teslagrad_linux64_fullversion_1_4' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-adventures-of-shuggy.sh0000700000000000000000000000625014471751340017015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Adventures of Shuggy # send your bug reports to bugs@dotslashplay.it ### script_version=20240603.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-adventures-of-shuggy' GAME_NAME='The Adventures of Shuggy' ARCHIVE_BASE_0_NAME='gog_the_adventures_of_shuggy_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='7d031b4cbbbf88beb5bdaa077892215d' ARCHIVE_BASE_0_SIZE='109602' ARCHIVE_BASE_0_VERSION='1.10.10222015-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_adventures_of_shuggy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libmojoshader.so libtheoraplay.so' ## The game audio does not work if the shipped build of OpenAL is not used. CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libopenal.so.1" CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' deadunderground fx gateways gfx growingpains maps recordings sfx text video Shuggy.exe Shuggy.bmp GameFont.xnb FNA.dll FNA.dll.config Lidgren.Network.dll MonoGame.Framework.Net.dll SpriteSheetRuntime.dll' CONTENT_DOC_MAIN_FILES=' info.txt Linux.README' APP_MAIN_EXE='Shuggy.exe' APP_MAIN_ICON='Shuggy.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' ## Ensure easy upgrades from packages generated with pre-20240603.2 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-adventures-of-shuggy-data" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libtheoradec.so.1 libvorbis.so.0' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_MAIN_DEPS="${PKG_MAIN_DEPS:-} $PKG_LIBS_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-deer-god.sh0000755000000000000000000000434114471751340014426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Deer God # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-deer-god' GAME_NAME='The Deer God' ARCHIVE_BASE_1_NAME='DeerGodBeta02.zip' ARCHIVE_BASE_1_MD5='84dda0d5e6708ddb5e7ceee307671f2c' ARCHIVE_BASE_1_SIZE='150000' ARCHIVE_BASE_1_VERSION='1.0~beta2-itch' ARCHIVE_BASE_1_URL='https://marumari.itch.io/the-deer-god' ARCHIVE_BASE_0_NAME='thedeergod_beta1.zip' ARCHIVE_BASE_0_MD5='e722cdbd4cc93c5d655735c6a1285cc0' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0~beta1-itch' ARCHIVE_BASE_0_URL='https://marumari.itch.io/the-deer-god' UNITY3D_NAME='DeerGodBeta' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Cinopt Studios LLC/The Deer God' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce a consistent Unity3D name unity3d_name=$(unity3d_name) old_name='thedeergod_beta1' if [ -e "${old_name}.exe" ]; then mv "${old_name}.exe" "${unity3d_name}.exe" mv "${old_name}_Data" "${unity3d_name}_Data" fi ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-girl-and-the-robot.sh0000700000000000000000000000473014471751340016326 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Girl and the Robot # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-girl-and-the-robot' GAME_NAME='The Girl and the Robot' ARCHIVE_BASE_0_NAME='thegirlandtherobot-linux-1.006.rar' ARCHIVE_BASE_0_MD5='032b2f06a6d272be6ace53e6cda16683' ARCHIVE_BASE_0_SIZE='2457873' ARCHIVE_BASE_0_VERSION='1.006-humble170727' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-girl-and-the-robot' UNITY3D_NAME='GirlAndRobot' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game fails to run if the Steam libraries are not included. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='LINUX' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTIOn='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-kings-bird.sh0000755000000000000000000000350714471751340014774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The King's Bird # send your bug reports to bugs@dotslashplay.it ### script_version=20251011.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-kings-bird' GAME_NAME='The Kingʼs Bird' ARCHIVE_BASE_0_NAME='TheKingsBirdDRMFREE_v5.zip' ARCHIVE_BASE_0_MD5='fccb138fa993f1e983fcc6c08d1b0b96' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='5-itch' ARCHIVE_BASE_0_URL='https://graffiti-games.itch.io/the-kings-bird' UNITY3D_NAME='TheKingsBird' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Serenity Forge/The King's Bird" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-smurfs-mission-vileaf.sh0000755000000000000000000000433514471751340017205 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Smurfs: Mission Vileaf # send your bug reports to bugs@dotslashplay.it ### script_version=20250903.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-smurfs-mission-vileaf' GAME_NAME='The Smurfs: Mission Vileaf' ARCHIVE_BASE_0_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727).exe' ARCHIVE_BASE_0_MD5='086cdfa541244a81b9e00e3c55daad1b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727)-1.bin' ARCHIVE_BASE_0_PART1_MD5='1f36f6b263cb1e983d8f6608e252671d' ARCHIVE_BASE_0_SIZE='5283712' ARCHIVE_BASE_0_VERSION='1.0.19.3-gog68727' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_smurfs_mission_vileaf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll libscepad.dll thesmurfsmissionvileaf.exe' ## thesmurfsmissionvileaf.exe is linked against Galaxy64.dll. CONTENT_GAME0_BIN_FILES=' galaxy64.dll' CONTENT_GAME_DATA_FILES=' smurfsresources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Smurfs' APP_MAIN_EXE='thesmurfsmissionvileaf.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-thomas-was-alone.sh0000700000000000000000000000367314471751340015336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Thomas Was Alone # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='thomas-was-alone' GAME_NAME='Thomas Was Alone' ## This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='thomaswasalone-linux-1369349552.tar' ARCHIVE_BASE_0_MD5='e7f8e766188718e16880b1137c430f35' ARCHIVE_BASE_0_SIZE='242609' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='thomasWasAlone' CONTENT_PATH_DEFAULT='thomasLinuxStandalone' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-time-loader.sh0000755000000000000000000000353114471751340014364 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Time Loader # send your bug reports to bugs@dotslashplay.it ### script_version=20240807.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='time-loader' GAME_NAME='Time Loader' ARCHIVE_BASE_0_NAME='setup_time_loader_1.0.65_(53338).exe' ARCHIVE_BASE_0_MD5='3a2842ca85c3d20313a72d88615b8059' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_time_loader_1.0.65_(53338)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0c4f4eccb554f3905f12e6fded25c7df' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.0.65-gog53338' ARCHIVE_BASE_0_URL='https://www.gog.com/game/time_loader' UNITY3D_NAME='time loader' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/FLAZM/Time Loader' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tiny-and-big.sh0000755000000000000000000000635414471751340014452 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tiny & Big in Grandpa's Leftovers # send your bug reports to bugs@dotslashplay.it ### script_version=20251010.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='tiny-and-big' GAME_NAME='Tiny & Big in Grandpa’s Leftovers' ARCHIVE_BASE_GOG_0_NAME='tiny_and_big_grandpa_s_leftovers_en_1_4_2_15616.sh' ARCHIVE_BASE_GOG_0_MD5='bdcc1ea8366dedcfe00b50c439fd5ec9' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.4.2-gog15616' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/tiny_and_big_grandpas_leftovers' ARCHIVE_BASE_HUMBLE_0_NAME='tinyandbig_grandpasleftovers-retail-linux-1.4.1_1370968537.tar.bz2' ARCHIVE_BASE_HUMBLE_0_MD5='c6c2bc286f11e4a232211c5176105890' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.4.1-humble1370968537' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/tiny-big-grandpas-leftovers' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='tiny-and-big_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='043fa61c838ba6b2ef301c52660352b1' ARCHIVE_OPTIONAL_ICONS_URL='http://downloads.dotslashplay.it/games/tiny-and-big/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='tinyandbig' ## TODO: Check if some shipped libraries could be replaced with system-provided ones. CONTENT_LIBS_BIN_FILES=' libcal3d.so libCgGL.so libCg.so' CONTENT_LIBS_BIN64_RELATIVE_PATH='bin64"' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='bin32' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' bin64/tinyandbig' CONTENT_GAME_BIN32_FILES=' bin32/tinyandbig' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE_BIN64='bin64/tinyandbig' APP_MAIN_EXE_BIN32='bin32/tinyandbig' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6 libX11.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-tiny-hunter.sh0000755000000000000000000000411014471751340014442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tiny Hunter # send your bug reports to bugs@dotslashplay.it ### script_version=20240616.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tiny-hunter' GAME_NAME='Tiny Hunter' ARCHIVE_BASE_1_NAME='tinyhunter_linux.zip' ARCHIVE_BASE_1_MD5='cb14caf2a47efaee84c0cdc6f8be82c6' ARCHIVE_BASE_1_SIZE='157912' ARCHIVE_BASE_1_VERSION='1.0-itch.2020.10.15' ARCHIVE_BASE_1_URL='https://nojigames.itch.io/tinyhunter' ARCHIVE_BASE_0_NAME='TinyHunterWindowMacLinux.zip' ARCHIVE_BASE_0_MD5='9fa1ab03e2769365229a29b6b37995f7' ARCHIVE_BASE_0_SIZE='350000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://nojigames.itch.io/tinyhunter' UNITY3D_NAME='tinyhunter_linux' UNITY3D_NAME_0='tinyhunter' ## No Unity3D plugin is shipped. CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='TinyHunterWindowMacLinux/Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-toki-tori-2.sh0000700000000000000000000000530314471751340014227 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Toki Tori 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='toki-tori-2' GAME_NAME='Toki Tori 2' ARCHIVE_BASE_0_NAME='TokiTori2-Linux-2017-06-22.sh' ARCHIVE_BASE_0_MD5='564ddc7b09982295732923bb7ac6f39e' ARCHIVE_BASE_0_SIZE='624185' ARCHIVE_BASE_0_VERSION='2017.06.22-humble.2017.10.02' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/toki-tori-2' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN64_RELATIVE_PATH='x86_64' CONTENT_GAME_BIN64_FILES=' TokiTori2.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH='x86' CONTENT_GAME_BIN32_FILES=' TokiTori2.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' audio color_grading config default levels levels_unsavedchanges localization metadata movement particles presentation scripts shaders spritestrip textures userlevels archive.ma app_icon.png' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux namespace.txt' APP_MAIN_ICON='app_icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-toren.sh0000700000000000000000000000344514471751340013303 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Toren # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='toren' GAME_NAME='Toren' ## This free installer is no longer available for sale from gog.com. ARCHIVE_BASE_0_NAME='setup_toren_gog-1_(17651).exe' ARCHIVE_BASE_0_MD5='4785b339bb5918722ff6a9f30f9d5c04' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_toren_gog-1_(17651)-1.bin' ARCHIVE_BASE_0_PART1_MD5='877ca6f3271cb03b46b5de71a6ff37de' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog17651' UNITY3D_NAME='toren' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_FILES=' *.sav' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trine-1.sh0000700000000000000000000000636414471751340013436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2016 Mopi set -o errexit ### # Trine # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.5 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='trine-1' GAME_NAME='Trine' ARCHIVE_BASE_0_NAME='gog_trine_enchanted_edition_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='0e8d2338b568222b28cf3c31059b4960' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.12.508-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/trine_enchanted_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='lib/lib32' CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so' CONTENT_GAME_BIN_FILES=' bin/trine1_bin_starter.sh bin/trine1_linux_32bit bin/trine1_linux_launcher_32bit' CONTENT_GAME_DATA_FILES=' data *.fbq *.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='bin/trine1_linux_launcher_32bit' APP_MAIN_ICON='trine1.png' ## The game fails to start if the wayland SDL backend is used. APP_MAIN_PRERUN=' # The game fails to start if the wayland SDL backend is used. if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## Keep hold of the terminal until the game process actually ends, ## instead of returning as soon as the launcher is closed. APP_MAIN_POSTRUN=' # Keep hold of the terminal until the game process actually ends, # instead of returning as soon as the launcher is closed. sleep 3s pidwait --euid "$USER" --full trine1_linux_32bit ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libogg.so.0 libpango-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set execution permissions on all binaries. chmod 755 bin/* ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_list_native_libraries 'PKG_BIN') libSDL2-2.0.so.0" launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-trine-2.sh0000755000000000000000000001047214471751340013444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Trine 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250612.6 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='trine-2' GAME_NAME='Trine 2' ARCHIVE_BASE_GOG_1_NAE='gog_trine_2_complete_story_2.0.0.5.sh' ARCHIVE_BASE_GOG_1_MD5='dd7126c1a6210e56fde20876bdb0a2ac' ARCHIVE_BASE_GOG_1_SIZE='3700000' ARCHIVE_BASE_GOG_1_VERSION='2.01.425-gog2.0.0.5' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/trine_2_complete_story' ARCHIVE_BASE_GOG_0_NAME='gog_trine_2_complete_story_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='dae867bff938dde002eafcce0b72e5b4' ARCHIVE_BASE_GOG_0_SIZE='3700000' ARCHIVE_BASE_GOG_0_VERSION='2.01.425-gog2.0.0.4' ARCHIVE_BASE_HUMBLE_0_NAME='trine2_complete_story_v2_01_build_425_humble_linux_full.zip' ARCHIVE_BASE_HUMBLE_0_MD5='82049b65c1bce6841335935bc05139c8' ARCHIVE_BASE_HUMBLE_0_SIZE='3700000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.01build425-humble141016' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/trine-2-complete-story' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_BIN_RELATIVE_PATH='lib/lib32' CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libPhysXCooking.so libPhysXCooking.so.1 libPhysXCore.so libPhysXCore.so.1 libPhysXLoader.so libPhysXLoader.so.1' ## The shipped SDL library must be used, as it provides a non-standard symbol. ## Using system-provided SDL instead leads to the following error, preventing the game launch: ## ## ./bin/trine2_linux_32bit: undefined symbol: SDL_SetVideoMode CONTENT_LIBS0_BIN_RELATIVE_PATH='lib/lib32' CONTENT_LIBS0_BIN_FILES=' libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' data trine2.png *.fbq' CONTENT_DOC_DATA_FILES=' readme*' APP_MAIN_EXE='bin/trine2_linux_launcher_32bit' APP_MAIN_ICON='trine2.png' ## Work around a crash in fullscreen mode. APP_MAIN_PRERUN=' # Work around a crash in fullscreen mode export SDL_VIDEO_ALLOW_SCREENSAVER=1 ' ## The game fails to start if the x11 SDL backend is not used. APP_MAIN_PRERUN=' # The game fails to start if the x11 SDL backend is not used. export SDL_VIDEODRIVER=x11 ' ## Keep hold of the terminal until the game process actually ends, ## instead of returning as soon as the launcher is closed. APP_MAIN_POSTRUN=' # Keep hold of the terminal until the game process actually ends, # instead of returning as soon as the launcher is closed. sleep 3s pidwait --euid "$USER" --full trine2_linux_32bit ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libvorbisfile.so.3 libX11.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_COMMANDS=' pidwait' 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)" # Set execution permissions on all binaries. chmod 755 bin/* ) # Include 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-tulpa.sh0000755000000000000000000000541014471751340013305 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tulpa # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tulpa' GAME_NAME='Tulpa' ## This game is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='Tulpa_Linux_1423847478.zip' ARCHIVE_BASE_0_MD5='3e01614c5c1c562aaf423689a1f51df9' ARCHIVE_BASE_0_SIZE='527248' ARCHIVE_BASE_0_VERSION='1.0-humble150213' UNITY3D_NAME='Tulpa' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Tulpa (Linux)' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-volgarr-the-viking.sh0000755000000000000000000000455414471751340015707 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 HS-157 set -o errexit ### # Volgarr the Viking # send your bug reports to bugs@dotslashplay.it ### script_version=20251014.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='volgarr-the-viking' GAME_NAME='Volgarr the Viking' ARCHIVE_BASE_GOG_0_NAME='gog_volgarr_the_viking_2.1.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='8593287f13c3104aa45b9c91264b4260' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.36c-gog2.1.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/volgarr_the_viking' ARCHIVE_BASE_HUMBLE_0_NAME='VolgarrTheViking_v1.36c_Linux32.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='c3652629edb019838d8e1c7873f0716b' ARCHIVE_BASE_HUMBLE_0_SIZE='180000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.36c-humble' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/volgarr-the-viking' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Volgarr' CONTENT_GAME_BIN_FILES=' Volgarr' CONTENT_GAME_DATA_FILES=' Data.pk icon.png' CONTENT_GAME_DOC_FILES=' Readme.txt' APP_MAIN_EXE='Volgarr' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.so.1 libSDL2-2.0.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-vvvvvv.sh0000755000000000000000000000646314471751340013554 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2019 BetaRays set -o errexit ### # VVVVVV # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='vvvvvv' GAME_NAME='VVVVVV' ARCHIVE_BASE_HUMBLE_0_NAME='vvvvvv-10202016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='2a67882173f36c685f532e3cce0607af' ## This MojoSetup installer is not using a Makeself wrapper. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.2-humble.2016.10.20' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/vvvvvv' ARCHIVE_BASE_GOG_0_NAME='vvvvvv_2_3_4_49985.sh' ARCHIVE_BASE_GOG_0_MD5='76177a8ae3dede7c5cac1a90a00c0ca7' ARCHIVE_BASE_GOG_0_SIZE='67000' ARCHIVE_BASE_GOG_0_VERSION='2.3.4-gog49985' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vvvvvv' ARCHIVE_BASE_GOG_MULTIARCH_0_NAME='gog_vvvvvv_2.0.0.2.sh' ARCHIVE_BASE_GOG_MULTIARCH_0_MD5='f25b5dd11ea1778d17d4b2e0b54c7eed' ARCHIVE_BASE_GOG_MULTIARCH_0_SIZE='74000' ARCHIVE_BASE_GOG_MULTIARCH_0_VERSION='2.2-gog2.0.0.2' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' VVVVVV' CONTENT_GAME_BIN64_FILES=' x86_64/vvvvvv.x86_64' CONTENT_GAME_BIN32_FILES=' x86/vvvvvv.x86' CONTENT_GAME_DATA_FILES=' data.zip VVVVVV.png' CONTENT_DOC_DATA_FILES=' Linux.README' APP_MAIN_EXE='VVVVVV' APP_MAIN_EXE_BIN64='x86_64/vvvvvv.x86_64' APP_MAIN_EXE_BIN32='x86/vvvvvv.x86' APP_MAIN_ICON='VVVVVV.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_HUMBLE=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_GOG_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_GOG_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wandersong.sh0000700000000000000000000000354314471751340014322 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Wandersong # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='wandersong' GAME_NAME='Wandersong' ARCHIVE_BASE_0_NAME='wandersong-drmfree.zip' ARCHIVE_BASE_0_MD5='27851a4ba540505f11e122f4c9a686b5' ARCHIVE_BASE_0_SIZE='2000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://banov.itch.io/wandersong' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' GMFile.dll GMIni.dll wandersong.exe' CONTENT_GAME_DATA_FILES=' audioData levels palettes *.dat *.ogg' CONTENT_DOC_DATA_FILES=' ws_credits' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/wandersong' APP_MAIN_EXE='wandersong.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-witchway.sh0000755000000000000000000000323514471751340014022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Witchway # send your bug reports to bugs@dotslashplay.it ### script_version=20240515.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='witchway' GAME_NAME='WitchWay' ARCHIVE_BASE_0_NAME='WitchWay 1-12 WIN .zip' ARCHIVE_BASE_0_MD5='70bc22f82227be0008332b5f5ce10585' ARCHIVE_BASE_0_SIZE='25000' ARCHIVE_BASE_0_VERSION='1.12-itch' ARCHIVE_BASE_0_URL='https://gleeson.itch.io/witchway' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' WitchWay.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/WitchWay' ## Work around a crash related to shaders compilation. WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='WitchWay.exe' PKG_MAIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wonder-boy.sh0000700000000000000000000001427714471751340014246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Hoël Bézier # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Wonder Boy: The Dragon's Trap # send your bug reports to bugs@dotslashplay.it ### script_version=20250407.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='wonder-boy' GAME_NAME='Wonder Boy: The Dragon’s Trap' ARCHIVE_BASE_0_NAME='wonder_boy_the_dragon_s_trap_en_1_03f_02_20817.sh' ARCHIVE_BASE_0_MD5='775ac16ded3d2aca7ebcb27c7a2caf48' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.03f.02-gog20817' ARCHIVE_BASE_0_URL='https://www.gog.com/game/wonder_boy_the_dragons_trap' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' x86_64' CONTENT_GAME_BIN32_FILES=' x86' CONTENT_GAME_DATA_FILES=' bin_pc gamecontrollerdb.txt WonderBoy.png' CONTENT_DOC_DATA_FILES=' Linux.README' CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.so.1' APP_MAIN_EXE_BIN32='x86/wb.x86' APP_MAIN_EXE_BIN64='x86_64/wb.x86_64' APP_MAIN_ICON='WonderBoy.png' # Load common functions if [ -z "$PLAYIT_LIB2" ]; then : "${XDG_DATA_HOME:="$HOME/.local/share"}" for path in\ "$PWD"\ "$XDG_DATA_HOME/play.it"\ '/usr/local/share/games/play.it'\ '/usr/local/share/play.it'\ '/usr/share/games/play.it'\ '/usr/share/play.it' do if [ -e "$path/libplayit2.sh" ]; then PLAYIT_LIB2="$path/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" pkg_setup() { option_package=$(option_value 'package') case "$option_package" in ('arch'|'gentoo') PKG_BIN32_ARCH='32' PKG_BIN32_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_ARCH='64' PKG_BIN64_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" ;; ('deb') PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN64_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_ARCH='32' PKG_BIN32_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" ;; ('egentoo') PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_DEPENDENCIES_LIBRARIES" # play.it 2.20 uses 64-bit binary packages dependencies ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } src_extract() { archive_extraction_default } src_prepare() { : } pkg_prepare() { option_package=$(option_value 'package') case "$option_package" in ('deb'|'egentoo') content_inclusion_default ;; ('arch'|'gentoo') content_inclusion_default # Copy data files into both binary packages local GAME_DATA_PATH target_path_bin32 target_path_bin64 GAME_DATA_PATH="${PLAYIT_WORKDIR}/gamedata/$(content_path 'GAME_DATA')" target_path_bin32="$(realpath --canonicalize-missing "$(package_path 'PKG_BIN32')$(path_game_data)")" target_path_bin64="$(realpath --canonicalize-missing "$(package_path 'PKG_BIN64')$(path_game_data)")" ( cd "$GAME_DATA_PATH" local file_pattern file_path while read -r file_pattern; do pwd if [ -z "$file_pattern" ]; then continue fi if [ -e "$file_pattern" ]; then mkdir --parents "$target_path_bin32" mkdir --parents "$target_path_bin64" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin32" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin64" rm --force --recursive "$file_pattern" else while read -r file_path; do mkdir --parents "$target_path_bin32" mkdir --parents "$target_path_bin64" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin32" cp \ --force \ --link \ --recursive \ --no-dereference \ --parents \ --preserve=links \ "$file_pattern" "$target_path_bin64" rm --force --recursive "$file_pattern" done <<- EOF $(find . -path "./${file_pattern#./}") EOF fi done <<- EOF $(content_files 'GAME_DATA') EOF ) ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } src_clean() { # Nothing to do here return 0 } pkg_icons() { option_package=$(option_value 'package') case "$option_package" in ('deb'|'egentoo') content_inclusion_icons 'PKG_DATA' ;; ('arch'|'gentoo') content_inclusion_icons 'PKG_BIN64' content_inclusion_icons 'PKG_BIN32' ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac } pkg_launchers() { launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' } pkg_build() { packages_generation } pkg_clean() { working_directory_cleanup } pkg_instructions() { print_instructions } ## Ensure that the default package is correctly set, ## despite PACKAGES_LIST not being set early init_package() { option_package=$(option_value 'package') case "$option_package" in ('arch'|'gentoo') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32' ;; ('deb') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' ;; ('egentoo') PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' ;; (*) error_option_invalid 'package' "$option_package" return 1 ;; esac set_default_package 'PKG_BIN64' } ## Run the default initialization actions initialization_default "$@" pkg_setup src_extract src_prepare pkg_icons ## must be called before pkg_prepare pkg_prepare src_clean pkg_launchers pkg_build pkg_instructions pkg_clean ## must be called after pkg_instructions exit 0 games/play-world-to-the-west.sh0000755000000000000000000000566414471751340015500 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # World to the West # send your bug reports to bugs@dotslashplay.it ### script_version=20250802.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='world-to-the-west' GAME_NAME='World to the West' ARCHIVE_BASE_1_NAME='world_to_the_west_en_1_3_0_23314.sh' ARCHIVE_BASE_1_MD5='ac200556d642b1529526375b65642574' ARCHIVE_BASE_1_SIZE='2100000' ARCHIVE_BASE_1_VERSION='1.3.0-gog23314' ARCHIVE_BASE_1_URL='https://www.gog.com/game/world_to_the_west' ARCHIVE_BASE_0_NAME='gog_world_to_the_west_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='dd393d192c7569cc19edb0e3fff7851a' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.1-gog2.0.0.2' UNITY3D_NAME_1='WTTW_GOG_1_3_0_Linux' UNITY3D_NAME_0='WorldToTheWest' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_0=' 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_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_0" PKG_BIN32_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_0" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-yokus-island-express.sh0000700000000000000000000000437314471751340016266 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Yoku's Island Express # send your bug reports to bugs@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='yokus-island-express' GAME_NAME='Yoku’s Island Express' ARCHIVE_BASE_1_NAME='setup_gog_yoku_latest_drm_free_210927_(50319).exe' ARCHIVE_BASE_1_MD5='5a1241ffdda722df9c7c4c8fc1b661fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='2021.09.27-gog50319' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yokus_island_express' ARCHIVE_BASE_0_NAME='setup_yokus_island_express_aug_24_2018_205911_(24871).exe' ARCHIVE_BASE_0_MD5='49d3a80f0a039e7b7a4d5fcd4860e445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='2018.08.24-gog24871' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' bugsplat64.dll bugsplatrc64.dll d3dcompiler_47.dll yoku.exe bssndrpt64.exe' CONTENT_GAME_DATA_FILES=' data processed' CONTENT_DOC_DATA_FILES=' licenses' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Villa Gorilla/Yoku's Island Express" WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='yoku.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yooka-laylee.sh0000700000000000000000000000464614471751340014553 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yooka Laylee # send your bug reports to bugs@dotslashplay.it ### script_version=20250616.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='yooka-laylee' GAME_NAME='Yooka Laylee' ARCHIVE_BASE_0_NAME='gog_yooka_laylee_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='151e4f41960d50047d41bb3c010da187' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='1.08-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/yookalaylee' UNITY3D_NAME='YookaLaylee' UNITY3D_PLUGINS=' libAkFlanger.so libAkHarmonizer.so libAkSoundEngine.so libAkStereoDelay.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-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" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 tests/check-license.sh0000700000000000000000000000064314471751340013751 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000644000000000000000000000375014471751340010574 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2015 Antoine Le Gonidec Copyright © 2015 mortalius Copyright © 2016 Mopi Copyright © 2018 Jacek Szafarkiewicz Copyright © 2018 BetaRays Copyright © 2018 VA Copyright © 2018 Phil Morrell Copyright © 2020 Hoël Bézier Copyright © 2020 Emmanuel Gil Peyrot Copyright © 2020 HS-157 Copyright © 2021 Daguhh Copyright © 2021 Thomas Vasileiou Copyright © 2025 tyzef All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000600000000000000000000000502314471751340011212 0ustar rootrootcollection_name = 45_platform UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif collections_path = $(DESTDIR)$(datadir)/play.it/collections # Install the game scripts .PHONY: install uninstall install: install -D --mode=755 --target-directory=$(collections_path)/$(collection_name) games/* uninstall: rm $(collections_path)/$(collection_name)/play-*.sh rmdir -p --ignore-fail-on-non-empty $(collections_path)/$(collection_name) # Generate tarballs, for easier packaging .PHONY: dist ## The generated tarball is signed with gpg by default, ## NO_SIGN should be set to a non-0 value to skip the signature. NO_SIGN := 0 dist: DATE := $(shell date +%F) dist: TARBALL := $(collection_name)_$(DATE).tar.gz dist: TAR_OPTIONS := --sort=name --mtime=2023-08-25 --owner=root:0 --group=root:0 --use-compress-program='gzip --no-name' dist: games/*.sh tests/check-license.sh LICENSE Makefile README.md mkdir --parents dist LC_ALL=C tar cf dist/$(TARBALL) $(TAR_OPTIONS) games/*.sh tests/check-license.sh LICENSE Makefile README.md ifeq ($(NO_SIGN),0) rm --force dist/$(TARBALL).asc gpg --armor --detach-sign dist/$(TARBALL) endif # Run license check, to ensure no contributor is missing .PHONY: check check-license check: check-license check-license: ./tests/check-license.sh # Run syntax checks, relying on ShellCheck GAME_SCRIPTS := $(wildcard games/play-*.sh) GAME_SCRIPTS_TESTS := $(addprefix shellcheck_, $(GAME_SCRIPTS)) .PHONY: $(GAME_SCRIPTS_TESTS) check: $(GAME_SCRIPTS_TESTS) $(GAME_SCRIPTS_TESTS): SHELLCHECK_SOURCES := /usr/share/games/play.it:/usr/share/play.it ## This is a unicode quote. Delete and retype it (or ignore/doublequote for literal). $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC1112 ## Expressions don't expand in single quotes, use double quotes for that. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2016 ## foo appears unused. Verify it or export it. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2034 ## Don't use variables in the printf format string. Use printf '..%s..' "$foo". $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC2059 ## In POSIX sh, 'local' is undefined. $(GAME_SCRIPTS_TESTS): SHELLCHECK_EXCLUDE += --exclude=SC3043 $(GAME_SCRIPTS_TESTS): shellcheck_%: % shellcheck --extended-analysis=false --external-sources --source-path=$(SHELLCHECK_SOURCES) $(SHELLCHECK_EXCLUDE) $< README.md0000644000000000000000000002010214471751340011034 0ustar rootroot# ./play.it platform games collection The codebase is maintained at [https://git.dotslashplay.it/games-platform/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-platform/]: https://git.dotslashplay.it/games-platform/ [bugs@dotslashplay.it]: mailto:bugs@dotslashplay.it [requests@dotslashplay.it]: mailto:requests@dotslashplay.it ## Description ./play.it is a free software building native packages from installers for Windows or Linux, mainly those sold by stores focusing on DRM-free games distribution. The goal is that a game installed via ./play.it is indistinguishable from a game installed via the official repositories of your favourite distribution. This specific collection includes only platform games. These games focus on navigating through levels, often requiring precise jumps. Some of them may include puzzles, time constraints, or action-based combat. Player dexterity is expected to play a big part. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for this ./play.it collection, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-platform play.it-platform.git cd play.it-platform.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-platform ``` 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 - 140 - 1365 - 6180 The Moon - A Boy and His Blob - A Hat in Time - A Story About My Uncle - A Tale of Paper - Arise: A Simple Story - Ascendant - Beatbuddy: Tale of the Guardians - Binaries - Biped - Braid - Bubbles the Cat - Candleman - Capsized - Cats are Liquid series: - Cats are Liquid: A Light in the Shadows - Cats are Liquid: A Better Place - Celeste - Chronology - Closure - Creaks - Dark Echo - Dead Cells - Deadlight - Disney 1993-1994 platformers: - Aladdin - The Jungle Book - The Lion King - Dreaming Sarah - Dustforce DX - Earthworm Jim - Element4l - Elephantasy - Escape Goat series: - Escape Goat - Escape Goat 2 - Evan's Remains - Feist - Fez - Flat Kingdom - Forgotton Anne - Fossil Echo - Fotonica - Four Sided Fantasy - Giana Sisters series: - Giana Sisters: Twisted Dreams - Giana Sisters: Rise of the Owlverlord - Gris - Hoa - Hollow Knight - Indivisible - Itorah - Kero Blaster series: - Kero Blaster - Pink Heaven - Pink Hour - La-Mulana - Limbo - Little Bug - Little Nightmares - Lost Ruins - Lost Words: Beyond the Page - Mable and the Wood - Mark of the Ninja - Minute of Islands - Mirror's Edge - Mobius - Momodora: Reverie Under the Moonlight - Mushroom 11 - My Rabbits Are Gone - Never Alone - Nihilumbra - Noita - NyxQuest: Kindred Spirits - Oddworld: Abe's Oddysee - One Hand Clapping - Ori and the Blind Forest - Out of Line - Owlboy - Papo and Yo - Pandemonium - Pikuniku - Pid - Pinstripe - Prince of Persia series: - Prince of Persia: The Sands of Time, supported in another collection: [https://git.vv221.fr/play.it/games-vv221/about/] - Prince of Persia (2008) - Project Feline - Psychonauts - Puddle - Rogue Legacy - Scarf - Seasons After Fall - Shantae and the Pirate's Curse - Shovel Knight - Space Tail: Every Journey Leads Home - Spelunky - Spiritfarer - SteamWorld setting: - SteamWorld Dig - SteamWorld Dig 2 - SteamWorld Heist, supported in another collection: [https://git.dotslashplay.it/games-action-adventure/about/] - SteamWorld Quest, supported in another collection: [https://git.dotslashplay.it/games-rpg/about/] - Steel Rats - Sunblaze - Sundered - Super Meat Boy - Supercow - Symphonia - Tag: The Power of Paint - Tandem: A Tale of Shadows - Teslagrad - The Adventures of Shuggy - The Deer God - The Girl and the Robot - The King's Bird - The Smurfs: Mission Vileaf - Thomas Was Alone - Time Loader - Tiny & Big in Grandpa's Leftovers - Tiny Hunter - Toki Tori 2 - Toren - Trine series: - Trine - Trine 2 - Tulpa - Volgarr the Viking - VVVVVV - Wandersong - WitchWay - Wonder Boy: The Dragon's Trap - World to the West - Yoku's Island Express - Yooka Laylee [https://git.dotslashplay.it/games-action-adventure/about/]: https://git.dotslashplay.it/games-action-adventure/about/ [https://git.dotslashplay.it/games-rpg/about/]: https://git.dotslashplay.it/games-rpg/about/ [https://git.vv221.fr/play.it/games-vv221/about/]: https://git.vv221.fr/play.it/games-vv221/about/ ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail.