games/play-1365.sh0000750000000000000000000000375614471751340012564 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.sh0000750000000000000000000002005714471751340012463 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.sh0000750000000000000000000000467314471751340014307 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=20221210.1 GAME_ID='6180-the-moon' GAME_NAME='6180 The Moon' UNITY3D_NAME='6180 the moon' ARCHIVE_BASE_0='6180_the_moon_2.1.0_Linux.zip' ARCHIVE_BASE_0_MD5='79e81fb57d8d5dbf27a7c4be2dd0efd9' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='2.1.0-humble141209' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/6180-the-moon' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-bewitching-revolution.sh0000750000000000000000000000365314471751340016727 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Bewitching Revolution # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-bewitching-revolution' GAME_NAME='A Bewitching Revolution' ARCHIVE_BASE_0_NAME='BewitchingRevolutionLinux.zip' ARCHIVE_BASE_0_MD5='89d7a3deb6dab12eda2845d91c556a02' ARCHIVE_BASE_0_SIZE='128391' ARCHIVE_BASE_0_VERSION='2.2.0-itch' ARCHIVE_BASE_0_URL='https://colestia.itch.io/a-bewitching-revolution' UNITY3D_NAME='BewitchingRevolutionLinux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-boy-and-his-blob.sh0000750000000000000000000000562414471751340015426 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=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='a-boy-and-his-blob' GAME_NAME='A Boy and His Blob' ARCHIVE_BASE_ZOOM_0_NAME='A Boy and His Blob.tar.gz' ARCHIVE_BASE_ZOOM_0_MD5='4e56d18404f82a2c6f6489661df807c8' ARCHIVE_BASE_ZOOM_0_SIZE='1300000' ARCHIVE_BASE_ZOOM_0_VERSION='2016.04.21-zoom1' ARCHIVE_BASE_ZOOM_0_URL='https://www.zoom-platform.com/product/a-boy-and-his-blob' ARCHIVE_BASE_GOG_0_NAME='gog_a_boy_and_his_blob_2.1.0.2.sh' ARCHIVE_BASE_GOG_0_MD5='7025963a3a26f838877374f72ce3760d' ARCHIVE_BASE_GOG_0_SIZE='1300000' ARCHIVE_BASE_GOG_0_VERSION='2016.04.21-gog2.1.0.2' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/a_boy_and_his_blob' CONTENT_PATH_DEFAULT_ZOOM='A Boy And His Blob/game' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libfmod.so.7 libGLEW.so.1.10' CONTENT_GAME_BIN_FILES=' Blob' CONTENT_GAME_DATA_FILES=' content' APP_MAIN_EXE='Blob' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='a-boy-and-his-blob_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='2a555c1f6b02a45b8932c8e72a9c1dd6' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/game/a-boy-and-his-blob/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-hat-in-time.sh0000750000000000000000000000501014471751340014501 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.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='a-hat-in-time' GAME_NAME='A Hat in Time' ARCHIVE_BASE_0_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607).exe' ARCHIVE_BASE_0_MD5='b488a803f372891556adde2589b87643' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c0b7186f04d9d07baa835cd4186a5fb9' ARCHIVE_BASE_0_PART2_NAME='setup_a_hat_in_time_nyakuza_metro_1.12_(64bit)_(35607)-2.bin' ARCHIVE_BASE_0_PART2_MD5='7ce5f0d9d40007cb4c12e9312f0cfc57' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.12-gog35607' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_hat_in_time' ## Despite the similar directories structure, ## this is not an Unreal Engine 4 game but an Unreal Engine 3 one. CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' hatintimegame' CONTENT_GAME0_BIN_PATH='app' CONTENT_GAME0_BIN_FILES=' engine' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' hatintimegame' ## .NET Framework 4 is required for controller support. ## TODO: Check if Mono could be used instead. WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' WINE_WINETRICKS_VERBS='dotnet40' APP_MAIN_EXE='binaries/win64/hatintimegame.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-house-of-many-doors.sh0000750000000000000000000000362514471751340016212 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A House of Many Doors # send your bug reports to bugs@dotslashplay.it ### script_version=20240531.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-house-of-many-doors' GAME_NAME='A House of Many Doors' ARCHIVE_BASE_0_NAME='A House of Many Doors.zip' ARCHIVE_BASE_0_MD5='bf3714af567c8e6290577af2d744dd0a' ARCHIVE_BASE_0_SIZE='463417' ARCHIVE_BASE_0_VERSION='1.2-itch.2017.03.30' ARCHIVE_BASE_0_URL='https://pixeltrickery.itch.io/a-house-of-many-doors' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' D3DX9_43.dll A House of Many Doors.exe HOMD.homd Game Data.ini options.ini' CONTENT_GAME_DATA_FILES=' Images audiogroup*.dat *.ogg penumbra_s.png data.win' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/A_House_of_Many_Doors' APP_MAIN_EXE='A House of Many Doors.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-lullaby-of-colors.sh0000750000000000000000000000334614471751340015744 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # A Lullaby of Colors # send your bug reports to bugs@dotslashplay.it ### script_version=20240616.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-lullaby-of-colors' GAME_NAME='A Lullaby of Colors' ARCHIVE_BASE_0_NAME='A_Lullaby_of_Colors_v1.1.0_win_NonVR.zip' ARCHIVE_BASE_0_MD5='afbc3fd204650fb26f7dd5d12438006e' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.1.0-itch' ARCHIVE_BASE_0_URL='https://andyman404.itch.io/lullaby-of-colors' UNITY3D_NAME='A Lullaby of Colors' CONTENT_PATH_DEFAULT='.' ## TODO: Add persistent storage of saved games and settings. PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-musical-story.sh0000750000000000000000000000406314471751340015207 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # A Musical Story # send your bug reports to bugs@dotslashplay.it ### script_version=20221231.1 GAME_ID='a-musical-story' GAME_NAME='A Musical Story' UNITY3D_NAME='MusicalStory' ARCHIVE_BASE_0='a_musical_story_1_0_5_53408.sh' ARCHIVE_BASE_0_MD5='028d274ff2f597d5fb5ed0116bee990a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0.5-gog53408' ARCHIVE_BASE_0_URL='https://www.gog.com/game/' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" GameAssembly.so UnityPlayer.so ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID pulseaudio" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-plague-tale-1.sh0000750000000000000000000001111314471751340014724 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Plague Tale: Innocence # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='a-plague-tale-1' GAME_NAME='A Plague Tale: Innocence' ARCHIVE_BASE_0_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188).exe' ARCHIVE_BASE_0_MD5='002096bcb7eac4d9aa111b692aab6f07' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-1.bin' ARCHIVE_BASE_0_PART1_MD5='7a16ee379e97a11a56a60bb77f645c50' ARCHIVE_BASE_0_PART2_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c7f7e9b44ecd895ef80cea83aba52ae7' ARCHIVE_BASE_0_PART3_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-3.bin' ARCHIVE_BASE_0_PART3_MD5='dd99c6c9beb00ef3357622c1782d6406' ARCHIVE_BASE_0_PART4_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-4.bin' ARCHIVE_BASE_0_PART4_MD5='03b15312c67fe6e5c65b8889056632c1' ARCHIVE_BASE_0_PART5_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-5.bin' ARCHIVE_BASE_0_PART5_MD5='a8b63b353fa0b59a10895daad970058c' ARCHIVE_BASE_0_PART6_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-6.bin' ARCHIVE_BASE_0_PART6_MD5='b6f49327c40dda4d25dd78ea2ea47317' ARCHIVE_BASE_0_PART7_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-7.bin' ARCHIVE_BASE_0_PART7_MD5='d5288ea2b0992bb0f440e8a4dfbe6a0f' ARCHIVE_BASE_0_PART8_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-8.bin' ARCHIVE_BASE_0_PART8_MD5='e426750fae1e573b1acfbd5301b8a90d' ARCHIVE_BASE_0_PART9_NAME='setup_a_plague_tale_innocence_1.07_(64bit)_(34188)-9.bin' ARCHIVE_BASE_0_PART9_MD5='a0612cdb2a6d619588c8ded2622751f5' ARCHIVE_BASE_0_SIZE='44000000' ARCHIVE_BASE_0_VERSION='1.07-gog34188' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_plague_tale_innocence' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' amd_ags_x64.dll anselsdk64.dll binkw64.dll common64.dll galaxy64.dll gfsdk_aftermath_lib.x64.dll sdkencryptedappticket64.dll wwiselibpcx64r.dll zlibd.dll zlib.dll aplaguetaleinnocence_x64.exe' CONTENT_GAME_DATA_LEVELS1_FILES=' levels/battlefield levels/battlefield2 levels/cathedral levels/corrupted_domain' CONTENT_GAME_DATA_LEVELS2_FILES=' levels/domain levels/epilogue levels/farm levels/illusion' CONTENT_GAME_DATA_LEVELS3_FILES=' levels/inquisition levels/menu levels/shelter_forest levels/shelter_morning levels/shelter_safe levels/shelter_siege' CONTENT_GAME_DATA_LEVELS4_FILES=' levels/university levels/university2 levels/village levels/village2' CONTENT_GAME_DATA_FILES=' datas font input rtc shaders soundbanks trtext videos all.psc initfont.tsc langdef.tsc' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/A Plague Tale Innocence' APP_MAIN_EXE='aplaguetaleinnocence_x64.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_LEVELS1 PKG_DATA_LEVELS2 PKG_DATA_LEVELS3 PKG_DATA_LEVELS4 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_LEVELS1 PKG_DATA_LEVELS2 PKG_DATA_LEVELS3 PKG_DATA_LEVELS4' PKG_DATA_LEVELS_ID="${PKG_DATA_ID}-levels" PKG_DATA_LEVELS1_ID="${PKG_DATA_LEVELS_ID}-1" PKG_DATA_LEVELS2_ID="${PKG_DATA_LEVELS_ID}-2" PKG_DATA_LEVELS3_ID="${PKG_DATA_LEVELS_ID}-3" PKG_DATA_LEVELS4_ID="${PKG_DATA_LEVELS_ID}-4" PKG_DATA_LEVELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - levels" PKG_DATA_LEVELS1_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 1" PKG_DATA_LEVELS2_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 2" PKG_DATA_LEVELS3_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 4" PKG_DATA_LEVELS4_DESCRIPTION="$PKG_DATA_LEVELS_DESCRIPTION - 5" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-story-about-my-uncle.sh0000750000000000000000000000645114471751340016416 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.sh0000750000000000000000000000512414471751340015027 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-abzu.sh0000750000000000000000000000335314471751340013120 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Abzû # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='abzu' GAME_NAME='Abzû' ARCHIVE_BASE_0_NAME='setup_abzu_1.0_(19143).exe' ARCHIVE_BASE_0_MD5='959dbb83bfa8b147a9571a10256cd574' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4800000' ARCHIVE_BASE_0_VERSION='1.0-gog19143' ARCHIVE_BASE_0_URL='https://www.gog.com/game/abzu' UNREALENGINE4_NAME='abzugame' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-accelerate.sh0000750000000000000000000000400414471751340014241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Accelerate # send your bug reports to bugs@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='accelerate' GAME_NAME='Accelerate' ARCHIVE_BASE_0_NAME='acceleratelinux.zip' ARCHIVE_BASE_0_MD5='42d13702bbec46f8cd2c357886fde0c0' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://whitehatcat.itch.io/accelerate' CONTENT_PATH_DEFAULT='acceleratelinux' CONTENT_GAME_BIN_FILES=' acceleratelinux.x86_64' CONTENT_GAME_DATA_FILES=' acceleratelinux.pck' APP_MAIN_EXE='acceleratelinux.x86_64' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-action-henk.sh0000750000000000000000000000467214471751340014364 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Action Henk # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='action-henk' GAME_NAME='Action Henk' ## This DRM-free archive is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='actionhenk_bundle_linux.zip' ARCHIVE_BASE_0_MD5='eb0d74c8fd2832a4d39de9d52af514f3' ARCHIVE_BASE_0_SIZE='2325670' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='ActionHenk' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-afterdream.sh0000750000000000000000000000321314471751340014264 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Afterdream # send your bug reports to bugs@dotslashplay.it ### script_version=20240111.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='afterdream' GAME_NAME='Afterdream' ARCHIVE_BASE_0_NAME='setup_afterdream_v0.1_(67625).exe' ARCHIVE_BASE_0_MD5='22736bca94a5b4da06fcdd85f490dc6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='405972' ARCHIVE_BASE_0_VERSION='0.1-gog67625' ARCHIVE_BASE_0_URL='https://www.gog.com/game/afterdream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' afterdream_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/afterdream' APP_MAIN_EXE='afterdream_gog.exe' PKG_MAIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-akalabeth.sh0000750000000000000000000000362714471751340014077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Akalabeth # send your bug reports to bugs@dotslashplay.it ### script_version=20230626.1 GAME_ID='akalabeth' GAME_NAME='Akalabeth: World of Doom' ARCHIVE_BASE_0='gog_akalabeth_world_of_doom_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='11a770db592af2ac463e6cdc453b555b' ARCHIVE_BASE_0_SIZE='13000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/akalabeth_world_of_doom' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='aklabeth.exe' APP_MAIN_ICON='../support/icon.png' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all paths to lowercase. tolower . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-alan-wakes-american-nightmare.sh0000750000000000000000000000436714471751340017741 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Alan Wake's American Nightmare # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='alan-wakes-american-nightmare' GAME_NAME='Alan Wake’s American Nightmare' ARCHIVE_BASE_0_NAME='setup_alan_wake_american_nightmare_2.1.0.24.exe' ARCHIVE_BASE_0_MD5='dc500730b639a48897c00f5791e5b2f3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.24' ARCHIVE_BASE_0_URL='https://www.gog.com/game/alan_wakes_american_nightmare' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' data shaders' ## Grant required write access to some paths to the user. ## TODO: The ./play.it library should provide a way to give write access to a volatile path, ## without automatically moving this path to persistent storage. USER_PERSISTENT_DIRECTORIES=' shaders' ## Apply d3dcompiler_43 winetricks verb. ## TODO: Check if it is still required with current WINE builds. WINE_WINETRICKS_VERBS='d3dcompiler_43' APP_MAIN_EXE='alan_wakes_american_nightmare.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-amnesia-1-the-dark-descent.sh0000750000000000000000000000723614471751340017056 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Amnesia: The Dark Descent # send your bug reports to bugs@dotslashplay.it ### script_version=20231107.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='amnesia-1-the-dark-descent' GAME_NAME='Amnesia: The Dark Descent' ARCHIVE_BASE_0_NAME='amnesia_the_dark_descent_1_41_a_40599.sh' ARCHIVE_BASE_0_MD5='6ef56415f02d611f83f12a064f144379' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.41a-gog40599' ARCHIVE_BASE_0_URL='https://www.gog.com/game/amnesia_the_dark_descent' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if the Steam library can be dropped. ## TODO: Check if some shipped libraries can be replaced with system ones. CONTENT_LIBS_BIN_FILES=' libIL.so.1 libSDL2-2.0.so.0 libsteam_api.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' Amnesia.bin.x86_64 Launcher.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Amnesia.bin.x86 Launcher.bin.x86' CONTENT_GAME_DATA_FILES=' billboards commentary config core custom_stories data entities flashbacks fonts graphics gui lang launcher lights main_menu maps misc models music particles shaders sounds static_objects textures materials.cfg ptest_materials.cfg resources.cfg super_secret.rar' CONTENT_DOC_DATA_FILES=' Manual_en.pdf Remember - Short Story Collection.pdf EULA_en.rtf 1.3_ChangeLog.txt' APP_MAIN_EXE_BIN32='Amnesia.bin.x86' APP_MAIN_EXE_BIN64='Amnesia.bin.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} amnesia-1-data" PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfontconfig.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libogg.so.0 libopenal.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libXext.so.6 libXft.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_BIN64_PROVIDES="${PKG_BIN64_PROVIDES:-} amnesia-1" PKG_BIN32_PROVIDES="${PKG_BIN32_PROVIDES:-} amnesia-1" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-among-the-sleep.sh0000750000000000000000000000557214471751340015151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Among the Sleep # send your bug reports to bugs@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='among-the-sleep' GAME_NAME='Among the Sleep' ARCHIVE_BASE_GOG_0_NAME='among_the_sleep_en_3_0_1_16406.sh' ARCHIVE_BASE_GOG_0_MD5='de6e5fc26d7d5954782a6e98966f34cf' ARCHIVE_BASE_GOG_0_SIZE='3800000' ARCHIVE_BASE_GOG_0_VERSION='3.0.1-gog16406' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/among_the_sleep' ARCHIVE_BASE_HUMBLE_0_NAME='Among_the_Sleep_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='0d7296eb48bfebeb9a37827ee94bd34c' ARCHIVE_BASE_HUMBLE_0_SIZE='2900000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/among-the-sleep' UNITY3D_NAME_GOG='Among The Sleep' UNITY3D_NAME_HUMBLE='Among the Sleep' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-anarcute.sh0000750000000000000000000000375414471751340013766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Anarcute # send your bug reports to bugs@dotslashplay.it ### script_version=20240508.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='anarcute' GAME_NAME='Anarcute' ARCHIVE_BASE_32BIT_0_NAME='anarcute-windows-32.zip' ARCHIVE_BASE_32BIT_0_MD5='837ee19a38698bc71b1b78e5c05f9644' ARCHIVE_BASE_32BIT_0_SIZE='1400000' ARCHIVE_BASE_32BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_32BIT_0_URL='https://plug-in-digital.itch.io/anarcute' ARCHIVE_BASE_64BIT_0_NAME='anarcute-windows-64.zip' ARCHIVE_BASE_64BIT_0_MD5='f6af6f32f587cd195581358c1ed5f0c7' ARCHIVE_BASE_64BIT_0_SIZE='1400000' ARCHIVE_BASE_64BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_64BIT_0_URL='https://plug-in-digital.itch.io/anarcute' UNITY3D_NAME='anarcute' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Anarcute' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anima-gate-of-memories.sh0000750000000000000000000000571314471751340016404 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Anima: Gate of Memories # send your bug reports to bugs@dotslashplay.it ### script_version=20230623.1 GAME_ID='anima-gate-of-memories' GAME_NAME='Anima: Gate of Memories' ARCHIVE_BASE_1='gog_anima_gate_of_memories_2.0.0.2.sh' ARCHIVE_BASE_1_MD5='97335d9741d3ae17c5d9e58a22165043' ARCHIVE_BASE_1_SIZE='8900000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_1_URL='https://www.gog.com/game/anima_gate_of_memories' ARCHIVE_BASE_0='gog_anima_gate_of_memories_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='681d05255e1a162947af69d3e7537748' ARCHIVE_BASE_0_SIZE='8900000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.1' UNITY3D_NAME='GoMLinux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_ASSETS_FILES=" ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_ASSETS PKG_DATA' PKG_ASSETS_ID="${GAME_ID}-assets" PKG_ASSETS_DESCRIPTION='assets' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_ASSETS_ID $PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-anodyne.sh0000750000000000000000000000431714471751340013615 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Anodyne # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='anodyne' GAME_NAME='Anodyne' ARCHIVE_BASE_0_NAME='1_6winanodyne.zip' ARCHIVE_BASE_0_MD5='5e7be131731a8073f3dbf4489d7e414a' ARCHIVE_BASE_0_SIZE='110000' ARCHIVE_BASE_0_VERSION='1.60-itch1' ARCHIVE_BASE_0_URL='https://han-tani.itch.io/anodyne' CONTENT_PATH_DEFAULT='windows' CONTENT_DOC_DATA_FILES=' README.txt' CONTENT_GAME_BIN_FILES=' Adobe AIR *.dll *.exe' CONTENT_GAME_DATA_FILES=' icons js META-INF mimetype *.der *.dylib *.html *.png *.ssp4 *.swf *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/.Anodyne' APP_MAIN_EXE='Anodyne.exe' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_29 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_57 APP_MAIN_ICON_128 APP_MAIN_ICON_512' APP_MAIN_ICON_29='icons/IntraAIR29.png' APP_MAIN_ICON_32='icons/IntraAIR32.png' APP_MAIN_ICON_48='icons/IntraAIR48.png' APP_MAIN_ICON_57='icons/IntraAIR57.png' APP_MAIN_ICON_512='icons/IntraAIR512.png' APP_MAIN_ICON_128='icons/IntraAIR128.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ape-out.sh0000750000000000000000000000323614471751340013531 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ape Out # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ape-out' GAME_NAME='Ape Out' ARCHIVE_BASE_0_NAME='windows.zip' ARCHIVE_BASE_0_MD5='cccf8136c915b46691edd440e7c7f269' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/ape-out' UNITY3D_NAME='ApeOut' CONTENT_PATH_DEFAULT='windows' ## FIXME: Use persistent storage for game progress and settings. PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aquaria.sh0000750000000000000000000000435314471751340013603 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aquaria # send your bug reports to bugs@dotslashplay.it ### script_version=20240603.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='aquaria' GAME_NAME='Aquaria' ARCHIVE_BASE_1_NAME='gog_aquaria_2.0.0.5.sh' ARCHIVE_BASE_1_MD5='4235398debdf268f233881fade9e0530' ARCHIVE_BASE_1_SIZE='240000' ARCHIVE_BASE_1_VERSION='1.1.3-gog2.0.0.5' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aquaria' ARCHIVE_BASE_0_NAME='gog_aquaria_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='1810de0d68028c6ec01d33181086180d' ARCHIVE_BASE_0_SIZE='280000' ARCHIVE_BASE_0_VERSION='1.1.3-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' config aquaria *.xml' CONTENT_GAME_DATA_FILES=' _mods data gfx mus scripts sfx vox aquaria.png' CONTENT_DOC_DATA_FILES=' docs *.txt' ## TODO: Check that these path must be writable. USER_PERSISTENT_DIRECTORIES=' config' USER_PERSISTENT_FILES=' *.xml' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Aquaria' APP_MAIN_EXE='aquaria' APP_MAIN_ICON='aquaria.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libSDL-1.2.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-aragami.sh0000750000000000000000000000654514471751340013566 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Aragami # send your bug reports to bugs@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='aragami' GAME_NAME='Aragami' # Archives ## Base game ARCHIVE_BASE_GOG_1_NAME='aragami_en_01_09_20943.sh' ARCHIVE_BASE_GOG_1_MD5='46c8315350a4036dcc09b6c3946ddc02' ARCHIVE_BASE_GOG_1_SIZE='6800000' ARCHIVE_BASE_GOG_1_VERSION='01.09-gog20943' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/aragami' ARCHIVE_BASE_GOG_0_NAME='gog_aragami_2.9.0.12.sh' ARCHIVE_BASE_GOG_0_MD5='42d0952de9b0373786f2902aa596b4ff' ARCHIVE_BASE_GOG_0_SIZE='6800000' ARCHIVE_BASE_GOG_0_VERSION='01.08-gog2.9.0.12' ## This installer used to be sold at humblebundle.com, but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0_NAME='aragami_01_08_Linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='4be0b7f674eec62184df216fcaba77b5' ARCHIVE_BASE_HUMBLE_0_SIZE='6800000' ARCHIVE_BASE_HUMBLE_0_VERSION='01.08-humble170503' ## Nightfall expansion ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_NIGHTFALL_0_NAME='aragami_nightfall_dlc_en_gog_1_21278.sh' ARCHIVE_OPTIONAL_NIGHTFALL_0_MD5='40920a28f030147a524e5ac89e2cf14b' ARCHIVE_OPTIONAL_NIGHTFALL_0_SIZE='7400000' ARCHIVE_OPTIONAL_NIGHTFALL_0_URL='https://www.gog.com/game/aragami_nightfall' UNITY3D_NAME='Aragami' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_NIGHTFALL' \ 'ARCHIVE_OPTIONAL_NIGHTFALL_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_NIGHTFALL' ; then archive_extraction 'ARCHIVE_NIGHTFALL' fi # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-arcanum.sh0000750000000000000000000000722314471751340013605 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Arcanum: Of Steamworks and Magick Obscura # send your bug reports to bugs@dotslashplay.it ### script_version=20250113.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='arcanum' GAME_NAME='Arcanum: Of Steamworks and Magick Obscura' ARCHIVE_BASE_3_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_ddrawfix_(77721).exe' ARCHIVE_BASE_3_MD5='7a00ac83478518ae287e4f532f5c84ab' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='1177294' ARCHIVE_BASE_3_VERSION='1.0.7.4-gog77721' ARCHIVE_BASE_3_URL='https://www.gog.com/game/arcanum_of_steamworks_and_magick_obscura' ARCHIVE_BASE_2_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_hotfix_(24155).exe' ARCHIVE_BASE_2_MD5='6d14d07f7cc8c9823cba5322cf2336f4' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='1200000' ARCHIVE_BASE_2_VERSION='1.0.7.4-gog24155' ARCHIVE_BASE_1_NAME='setup_arcanum_-_of_steamworks_and_magick_obscura_1.0.7.4_(19476).exe' ARCHIVE_BASE_1_MD5='298a3315baebf40f3cc6cee4acae9947' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.0.7.4-gog19476' ARCHIVE_BASE_0_NAME='setup_arcanum_2.0.0.15.exe' ARCHIVE_BASE_0_MD5='c09523c61edd18abb97da97463e07a88' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.7.4-gog2.0.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' sierraup.cfg binkw32.dll ddraw.dll mm_won.dll mss32.dll sierrapt.dll arcanum.exe msiexec.exe removeprotos.exe sierra.inf *.asi' CONTENT_GAME_DATA_FILES=' data modules *.dat' CONTENT_DOC_DATA_FILES=' documents eula.doc customer_support.htm manual.pdf eula.txt readme.txt version.txt' CONTENT_DOC0_DATA_PATH='__support/app' CONTENT_DOC0_DATA_FILES=' eula.*' USER_PERSISTENT_DIRECTORIES=' data modules/arcanum/maps modules/arcanum/saves' USER_PERSISTENT_FILES=' *.cfg' ## TODO: Check if this is still required with current WINE WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='arcanum.exe' ## Disable 3D acceleration ## cf. https://bugs.winehq.org/show_bug.cgi?id=23676 - Arcanum essentially unusable due to graphics errors ## TODO: Check if this is still required with current WINE APP_MAIN_OPTIONS='-no3d' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # In some archives, the game binary is compressed using UPX REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} upx" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Decompress UPX-packed game binary binary_file=$(application_exe 'APP_MAIN') if upx -t -qqq "$binary_file"; then upx -d -qqq "$binary_file" fi ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ascendant.sh0000750000000000000000000000565514471751340014126 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Ascendant # send your bug reports to bugs@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='ascendant' GAME_NAME='Ascendant' ARCHIVE_BASE_0_NAME='gog_ascendant_2.2.0.7.sh' ARCHIVE_BASE_0_MD5='8cdcd59a2f8363b7237e9cbe2675adda' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.2.2-gog2.2.0.7' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ascendant' UNITY3D_NAME='Ascendant' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "$PLAYIT_WORKDIR/gamedata/$(content_path_default)" # Work around the massive files duplication between the 32-bit and 64-bit builds ## Merge assets directories for the 32-bit and 64-bit builds UNITY3D_NAME_64BIT='Ascendant_64' cp --force --recursive --link "${UNITY3D_NAME_64BIT}_Data"/* "$(unity3d_name)_Data" rm --force --recursive "${UNITY3D_NAME_64BIT}_Data" ## Rename the 64-bit binary mv "${UNITY3D_NAME_64BIT}.x86_64" "$(unity3d_name).x86_64" ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-assassins-creed-1.sh0000750000000000000000000001225114471751340015401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Assassin's Creed # send your bug reports to bugs@dotslashplay.it ### script_version=20250228.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='assassins-creed-1' GAME_NAME='Assassinʼs Creed' ARCHIVE_BASE_EN_0_NAME='setup_assassins_creed_1.02_v2_(28524).exe' ARCHIVE_BASE_EN_0_MD5='b14aa9508ce9653597558a6d834e2766' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_assassins_creed_1.02_v2_(28524)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_EN_0_PART2_NAME='setup_assassins_creed_1.02_v2_(28524)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='150870977feb60c9f344e35d220e1198' ARCHIVE_BASE_EN_0_SIZE='7200000' ARCHIVE_BASE_EN_0_VERSION='1.02-gog28524' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' ARCHIVE_BASE_FR_0_NAME='setup_assassins_creed_1.02_v2_(french)_(28524).exe' ARCHIVE_BASE_FR_0_MD5='eb346d8ec12bb055f941446d24207dbd' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='08f2ac5b1c558483ea27c921a7d7aad7' ARCHIVE_BASE_FR_0_PART2_NAME='setup_assassins_creed_1.02_v2_(french)_(28524)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='2e31309a834daa7c7640a4848e701574' ARCHIVE_BASE_FR_0_SIZE='7200000' ARCHIVE_BASE_FR_0_VERSION='1.02-gog28524' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/assassins_creed_directors_cut' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' assassinscreed_dx10.exe assassinscreed_dx9.exe assassinscreed_game.exe binkw32.dll eax.dll' CONTENT_GAME_L10N_FILES=' datapc_streamedsounds???.forge' CONTENT_GAME_DATA_FILES=' *.forge defaultbindings.map resources videos' CONTENT_DOC_L10N_FILES_EN=' manual eula/english* readme/english*' CONTENT_DOC_L10N_FILES_FR=' manual eula/french* readme/french*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Ubisoft/Assassin's Creed" APP_MAIN_EXE='assassinscreed_dx9.exe' APP_MAIN_ICON='assassinscreed_game.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Ensure ability fo fully control the camera with the mouse # cf. https://appdb.winehq.org/objectManager.php?sClass=version&iId=28057#notes registry_dump_mouse_grab_file='registry-dumps/mouse-grab.reg' registry_dump_mouse_grab_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_mouse_grab_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_mouse_grab_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Set game text language registry_dump_language_file='registry-dumps/mouse-grab.reg' registry_dump_language_content_EN='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="English"' registry_dump_language_content_FR='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="French"' CONTENT_L10N_DATA_FILES="${CONTENT_L10N_DATA_FILES:-} $registry_dump_language_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_language_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure ability fo fully control the camera with the mouse mkdir --parents "$(dirname "$registry_dump_mouse_grab_file")" printf '%s' "$registry_dump_mouse_grab_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_mouse_grab_file" # Set game text language registry_dump_language_content=$(context_value 'registry_dump_language_content') mkdir --parents "$(dirname "$registry_dump_language_file")" printf '%s' "$registry_dump_language_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_language_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-assault-android-cactus.sh0000750000000000000000000000550214471751340016527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Assault Android Cactus # send your bug reports to bugs@dotslashplay.it ### script_version=20230627.1 GAME_ID='assault-android-cactus' GAME_NAME='Assault Android Cactus' ## This archive is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_1='AssaultAndroidCactus_linux_20200121.zip' ARCHIVE_BASE_1_MD5='015e7a107514339abfbd05d831bc9e91' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='2020.01.21-playism' ARCHIVE_BASE_0='AssaultAndroidCactus_linux_Ver1.0_0401.zip' ARCHIVE_BASE_0_MD5='7a6e18fd525c46603cdd3f19f945d44b' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.0401-playism' UNITY3D_NAME='cactus' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-asura.sh0000750000000000000000000000571014471751340013271 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Asura # send your bug reports to bugs@dotslashplay.it ### script_version=20230222.3 GAME_ID='asura' GAME_NAME='Asura' ARCHIVE_BASE_0='asura_en_29046_16209.sh' ARCHIVE_BASE_0_MD5='cbfe1067fdf0cfe3e8361d08df55787c' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='29046-gog16209' ARCHIVE_BASE_0_URL='https://www.gog.com/game/asura' UNITY3D_NAME='AsuraVengeance' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=" ScreenSelector.so" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=" ScreenSelector.so" CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/mainData ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-atone-heart-of-the-elder-tree.sh0000750000000000000000000000361714471751340017577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Atone: Heart of the Elder Tree # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='atone-heart-of-the-elder-tree' GAME_NAME='Atone: Heart of the Elder Tree' ARCHIVE_BASE_0_NAME='setup_atone_heart_of_the_elder_tree_1.0_(61735).exe' ARCHIVE_BASE_0_MD5='34a404cf77b1d07ff9a693543ca1f54e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gog61735' ARCHIVE_BASE_0_URL='https://www.gog.com/game/atone_heart_of_the_elder_tree' UNITY3D_NAME='atone' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-aztez.sh0000750000000000000000000000403114471751340013306 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Aztez # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='aztez' GAME_NAME='Aztez' ARCHIVE_BASE_0_NAME='aztez_linux_8278.zip' ARCHIVE_BASE_0_MD5='a55092525d52960ad36932918dcadc5b' ARCHIVE_BASE_0_SIZE='705163' ARCHIVE_BASE_0_VERSION='1.02.8278-humble.2017.09.04' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/aztez' UNITY3D_NAME='Aztez' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Drop unused x86_64 libraries rm --recursive "$(unity3d_name)_Data/Mono/x86_64" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-backbone.sh0000750000000000000000000000337414471751340013726 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Backbone # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='backbone' GAME_NAME='Backbone' ## This archive used to be available from itch.io, ## but is no longer sold. ARCHIVE_BASE_0_NAME='backbone_windows.zip' ARCHIVE_BASE_0_MD5='c306e782f7c1f62bd3e247d6eb682182' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.0-itch.2022.03.06' UNREALENGINE4_NAME='detective' CONTENT_PATH_DEFAULT='backbone_windows' APP_MAIN_EXE='detective.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-basingstoke.sh0000750000000000000000000000372414471751340014472 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Basingstoke # send your bug reports to bugs@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='basingstoke' GAME_NAME='Basingstoke' ARCHIVE_BASE_0_NAME='basingstoke-linux.zip' ARCHIVE_BASE_0_MD5='46c7127a2bbf07f158b8a70eb44185f2' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://puppygames001.itch.io/basingstoke' UNITY3D_NAME='Basingstoke' UNITY3D_PLUGINS=' libzipw.so ScreenSelector.so' CONTENT_PATH_DEFAULT='basingstoke' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-batman-arkham-1.sh0000750000000000000000000001077414471751340015025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Asylum # send your bug reports to bugs@dotslashplay.it ### script_version=20250330.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='batman-arkham-1' GAME_NAME='Batman: Arkham Asylum' ARCHIVE_BASE_0_NAME='setup_batman_arkham_asylum_goty_1.1_(38915).exe' ARCHIVE_BASE_0_MD5='46dc5afd1cf4a41f4c910a8c43fe8023' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-1.bin' ARCHIVE_BASE_0_PART1_MD5='59df55da8ffce48afd9a196c816769c3' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_asylum_goty_1.1_(38915)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8b7b283f4ea74c7f208bdd26c2f7a5b4' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.1-gog38915' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_asylum_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries bmgdfbinary.dll' CONTENT_GAME_DATA_FILES=' bmgame engine' CONTENT_DOC_DATA_FILES=' *.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Batman Arkham Asylum GOTY' WINE_WINEPREFIX_TWEAKS='mono' ## Prevent loss of keyboard input on loss of focus WINE_VIRTUAL_DESKTOP='auto' ## Cursor is prevented to leave the game window, avoiding issues with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game will throw an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" ## Prevent a shader compilation failure (WINE 10.0-rc2): ## 0140:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -5. ## 0140:err:d3dcompiler:D3DCompile2 Shader log: ## 0140:err:d3dcompiler:D3DCompile2 :35:1: W4300: Redefinition of MOTION_BLUR. ## 0140:err:d3dcompiler:D3DCompile2 :306:25: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :307:20: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :319:8: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :398:8: W5300: Implicit truncation of vector type. ## 0140:err:d3dcompiler:D3DCompile2 :446:36: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :517:15: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :546:23: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0140:err:d3dcompiler:D3DCompile2 :546:23: E5007: Expected 4 components in initializer, but got 2. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} d3dcompiler_47" APP_MAIN_EXE='binaries/bmlauncher.exe' APP_MAIN_ICON='binaries/shippingpc-bmgame.exe' ## Force the application type, or it will be mistaken for a Mono one. APP_MAIN_TYPE='wine' 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 ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd binaries $(wine_command) bmlauncher.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-batman-arkham-2.sh0000750000000000000000000001747314471751340015031 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham City # send your bug reports to bugs@dotslashplay.it ### script_version=20250328.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='batman-arkham-2' GAME_NAME='Batman: Arkham City' ARCHIVE_BASE_0_NAME='setup_batman_arkham_city_goty_1.1_(38264).exe' ARCHIVE_BASE_0_MD5='e8bfd823cfcfec2147f736bb696a85c8' ## Do not convert the file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_city_goty_1.1_(38264)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5e1213208d59a42ec0fd808bfee2f189' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_city_goty_1.1_(38264)-2.bin' ARCHIVE_BASE_0_PART2_MD5='fa9fcbaf8ef9de81dc1638bbc9db0353' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_city_goty_1.1_(38264)-3.bin' ARCHIVE_BASE_0_PART3_MD5='685be8b8bbd0fe3f831fb5cf0506a735' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_city_goty_1.1_(38264)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0ccafb2161130774710b470692ba8b39' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_city_goty_1.1_(38264)-5.bin' ARCHIVE_BASE_0_PART5_MD5='2122f11dc24618e8c902e6706c26f7c2' ARCHIVE_BASE_0_SIZE='20000000' ARCHIVE_BASE_0_VERSION='1.1-gog38264' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_city_goty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries engine Setup BmGame/Config BmGDFBinary.dll BmSysCheckDll.dll' CONTENT_GAME_L10N_EN_FILES=' BmGame/Localization/INT BmGame/CookedPCConsole/English(US)' CONTENT_GAME_L10N_FR_FILES=' BmGame/Localization/FRA BmGame/CookedPCConsole/French(France)' CONTENT_GAME_DATA_MOVIES_FILES=' BmGame/Movies BmGame/MoviesStereo' CONTENT_GAME_DATA_TEXTURES_FILES=' BmGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/*.upk BmGame/CookedPCConsole/CookedBanks.txt BmGame/CookedPCConsole/GuidMap BmGame/CookedPCConsole/SFX BmGame/Splash' CONTENT_DOC_L10N_EN_FILES=' readme.rtf' CONTENT_DOC_L10N_FR_FILES=' readme_FRA.rtf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham City GOTY' WINE_WINEPREFIX_TWEAKS='mono' ## Prevent loss of keyboard input on loss of focus WINE_VIRTUAL_DESKTOP='auto' ## Cursor is prevented from leaving the game window, avoiding problems with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game throws an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='Binaries/Win32/BmLauncher.exe' ## Force the application type, or it will be mistaken for a Mono one APP_MAIN_TYPE='wine' ## Force language environment, to work around the lack of a game setting APP_MAIN_PRERUN=' # Force language environment, to work around the lack of a game setting. if [ -e "BmGame/Localization/FRA" ]; then export LANG=fr elif [ -e "BmGame/Localization/INT" ]; then export LANG=en fi ' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_MOVIES PKG_DATA_TEXTURES 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' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_MOVIES PKG_DATA_TEXTURES' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" # Set the game language based on the installed localization REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} unix2dos" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Set the game language based on the installed localization ## TODO: Dump all this mess and redo it in a cleaner way during the content inclusion step. config_file_launcher_source="$(package_path 'PKG_BIN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_ini_section='\[Launcher\.Settings\]' config_file_launcher_ini_field='ForceUseCulture' config_file_launcher_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_en_ini_value='en' mkdir --parents "$(dirname "$config_file_launcher_en_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_en_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_en_destination" unix2dos --quiet "$config_file_launcher_en_destination" config_file_launcher_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/BmGame/Config/Launcher.ini" config_file_launcher_fr_ini_value='fr' mkdir --parents "$(dirname "$config_file_launcher_fr_destination")" sed --expression="s/^${config_file_launcher_ini_section}/&\\n${config_file_launcher_ini_field}=${config_file_launcher_fr_ini_value}/" \ "$config_file_launcher_source" > "$config_file_launcher_fr_destination" unix2dos --quiet "$config_file_launcher_fr_destination" rm "$config_file_launcher_source" config_file_engine_source="$(package_path 'PKG_BIN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_ini_field='Language' config_file_engine_en_destination="$(package_path 'PKG_L10N_EN')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_en_ini_value='INT' mkdir --parents "$(dirname "$config_file_engine_en_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_en_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_en_destination" unix2dos --quiet "$config_file_engine_en_destination" config_file_engine_fr_destination="$(package_path 'PKG_L10N_FR')$(path_game_data)/engine/config/BaseEngine.ini" config_file_engine_fr_ini_value='FRA' mkdir --parents "$(dirname "$config_file_engine_fr_destination")" sed --expression="s/^${config_file_engine_ini_field}=.*/${config_file_engine_ini_field}=${config_file_engine_fr_ini_value}/" \ "$config_file_engine_source" > "$config_file_engine_fr_destination" unix2dos --quiet "$config_file_engine_fr_destination" rm "$config_file_engine_source" # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Win32 $(wine_command) BmLauncher.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' 'PKG_DATA_MOVIES' 'PKG_DATA_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_DATA_MOVIES' 'PKG_DATA_TEXTURES' # Clean up working_directory_cleanup exit 0 games/play-batman-arkham-3.sh0000750000000000000000000000737214471751340015027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Origins # send your bug reports to bugs@dotslashplay.it ### script_version=20250329.7 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='batman-arkham-3' GAME_NAME='Batman: Arkham Origins' ARCHIVE_BASE_0_NAME='setup_batman_arkham_origins_1.0_(37592).exe' ARCHIVE_BASE_0_MD5='954bfc571f142dbcd8c21bb53aff9476' ## Do not convert file paths to lowercase ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_origins_1.0_(37592)-1.bin' ARCHIVE_BASE_0_PART1_MD5='379e08cdded22ca72de6ef1592cf9ec3' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_origins_1.0_(37592)-2.bin' ARCHIVE_BASE_0_PART2_MD5='483e7b78a963a844dc49fe0d563dba51' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_origins_1.0_(37592)-3.bin' ARCHIVE_BASE_0_PART3_MD5='7bb72091ee2ca1499c4d4e4245b92a5f' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_origins_1.0_(37592)-4.bin' ARCHIVE_BASE_0_PART4_MD5='d705ed0ace1d108a97433e0474e8dbdb' ARCHIVE_BASE_0_SIZE='18000000' ARCHIVE_BASE_0_VERSION='1.0-gog37592' ARCHIVE_BASE_0_URL='https://www.gog.com/game/batman_arkham_origins' CONTENT_PATH_DEFAULT='SinglePlayer' CONTENT_GAME_BIN_FILES=' Binaries Engine BMGame/Config' CONTENT_GAME_L10N_EN_FILES=' BMGame/CookedPCConsole/English(US) BMGame/Localization/INT BMGame/PCConsoleTOC.txt' CONTENT_GAME_TEXTURES_FILES=' BMGame/CookedPCConsole/*.tfc' CONTENT_GAME_DATA_FILES=' BMGame/EP2.dat BMGame/EP3.dat BMGame/EP4.dat BMGame/Movies BMGame/Splash BMGame/WBID BMGame/CookedPCConsole/SFX BMGame/CookedPCConsole/*.bin BMGame/CookedPCConsole/*.txt BMGame/CookedPCConsole/*.upk' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham Origins' ## Prevent loss of keyboard input on loss of focus WINE_VIRTUAL_DESKTOP='auto' ## Cursor is prevented from leaving the game window, avoiding problems with mouse look. WINE_WINETRICKS_VERBS='grabfullscreen=y' ## The game throws an error on launch if PhysX is not installed. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} physx" APP_MAIN_EXE='Binaries/Win32/BatmanOrigins.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_TEXTURES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_TEXTURES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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/Win32 $(wine_command) BatmanOrigins.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-batman-arkham-4.sh0000750000000000000000000002007214471751340015020 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Batman: Arkham Knight # send your bug reports to bugs@dotslashplay.it ### script_version=20241215.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='batman-arkham-4' GAME_NAME='Batman: Arkham Knight' ARCHIVE_BASE_1_NAME='setup_batman_arkham_knight_1.999_(74718).exe' ARCHIVE_BASE_1_MD5='5cbbe0e90a025b815cbd41ee424306f0' ARCHIVE_BASE_1_EXTRACTOR='innoextract' ## Do not convert file paths to lower case ARCHIVE_BASE_1_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_1_PART1_NAME='setup_batman_arkham_knight_1.999_(74718)-1.bin' ARCHIVE_BASE_1_PART1_MD5='a65b7f94f1742b520eba4fe1833dea10' ARCHIVE_BASE_1_PART2_NAME='setup_batman_arkham_knight_1.999_(74718)-2.bin' ARCHIVE_BASE_1_PART2_MD5='8ec21e3f6d589b435741a7c479d6dc2c' ARCHIVE_BASE_1_PART3_NAME='setup_batman_arkham_knight_1.999_(74718)-3.bin' ARCHIVE_BASE_1_PART3_MD5='df3dc59d8c937e5ecc82bbf7cdb569a3' ARCHIVE_BASE_1_PART4_NAME='setup_batman_arkham_knight_1.999_(74718)-4.bin' ARCHIVE_BASE_1_PART4_MD5='f2ca1ca49a6ec9f889bb7fe512d33656' ARCHIVE_BASE_1_PART5_NAME='setup_batman_arkham_knight_1.999_(74718)-5.bin' ARCHIVE_BASE_1_PART5_MD5='36cb7c2a6a3312c14f50e8a0ed62d368' ARCHIVE_BASE_1_PART6_NAME='setup_batman_arkham_knight_1.999_(74718)-6.bin' ARCHIVE_BASE_1_PART6_MD5='615673312299f977c4c224538915382e' ARCHIVE_BASE_1_PART7_NAME='setup_batman_arkham_knight_1.999_(74718)-7.bin' ARCHIVE_BASE_1_PART7_MD5='106965231ab2888f9ecf59df76238366' ARCHIVE_BASE_1_PART8_NAME='setup_batman_arkham_knight_1.999_(74718)-8.bin' ARCHIVE_BASE_1_PART8_MD5='19849206fc9004fd7e662d6fb2d3fa8e' ARCHIVE_BASE_1_PART9_NAME='setup_batman_arkham_knight_1.999_(74718)-9.bin' ARCHIVE_BASE_1_PART9_MD5='15578850acef4289fc0ea670803fa28b' ARCHIVE_BASE_1_PART10_NAME='setup_batman_arkham_knight_1.999_(74718)-10.bin' ARCHIVE_BASE_1_PART10_MD5='e9d915384e205b4005b0152da61e4d7c' ARCHIVE_BASE_1_PART11_NAME='setup_batman_arkham_knight_1.999_(74718)-11.bin' ARCHIVE_BASE_1_PART11_MD5='1bb779b16400790d1ac09a224712f9bb' ARCHIVE_BASE_1_PART12_NAME='setup_batman_arkham_knight_1.999_(74718)-12.bin' ARCHIVE_BASE_1_PART12_MD5='ba347af6291479505292b7214c0821b2' ARCHIVE_BASE_1_SIZE='52303886' ARCHIVE_BASE_1_VERSION='1.999-gog74718' ARCHIVE_BASE_1_URL='https://www.gog.com/game/batman_arkham_knight' ARCHIVE_BASE_0_NAME='setup_batman_arkham_knight_1.98_(37902).exe' ARCHIVE_BASE_0_MD5='73307c30caaf63052132968a923f13ec' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ## Do not convert file paths to lower case ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_batman_arkham_knight_1.98_(37902)-1.bin' ARCHIVE_BASE_0_PART1_MD5='82a14c0140c2d3bfb587d55559edd3ab' ARCHIVE_BASE_0_PART2_NAME='setup_batman_arkham_knight_1.98_(37902)-2.bin' ARCHIVE_BASE_0_PART2_MD5='075b116c6f6c79bc682a1dcd020e4910' ARCHIVE_BASE_0_PART3_NAME='setup_batman_arkham_knight_1.98_(37902)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ccf091fe25df898fb692854ffba23e95' ARCHIVE_BASE_0_PART4_NAME='setup_batman_arkham_knight_1.98_(37902)-4.bin' ARCHIVE_BASE_0_PART4_MD5='128dcddb67ed6c9838e802a82d29267f' ARCHIVE_BASE_0_PART5_NAME='setup_batman_arkham_knight_1.98_(37902)-5.bin' ARCHIVE_BASE_0_PART5_MD5='e4a186a946e10780ddc58e8ca79d6794' ARCHIVE_BASE_0_PART6_NAME='setup_batman_arkham_knight_1.98_(37902)-6.bin' ARCHIVE_BASE_0_PART6_MD5='ea31bab1b5ff9410a30663f2cd8ca35f' ARCHIVE_BASE_0_PART7_NAME='setup_batman_arkham_knight_1.98_(37902)-7.bin' ARCHIVE_BASE_0_PART7_MD5='e7726a1f658c9b29387bad9b10e8e4a3' ARCHIVE_BASE_0_PART8_NAME='setup_batman_arkham_knight_1.98_(37902)-8.bin' ARCHIVE_BASE_0_PART8_MD5='647176434aa98a19cce3edf625ef8631' ARCHIVE_BASE_0_PART9_NAME='setup_batman_arkham_knight_1.98_(37902)-9.bin' ARCHIVE_BASE_0_PART9_MD5='c8f4833b789186d3b03ff44af93b883b' ARCHIVE_BASE_0_PART10_NAME='setup_batman_arkham_knight_1.98_(37902)-10.bin' ARCHIVE_BASE_0_PART10_MD5='389d3f38c987268dfdb85c489b2e4831' ARCHIVE_BASE_0_PART11_NAME='setup_batman_arkham_knight_1.98_(37902)-11.bin' ARCHIVE_BASE_0_PART11_MD5='18947e9bd6b4a0b4ec35998f78961c88' ARCHIVE_BASE_0_PART12_NAME='setup_batman_arkham_knight_1.98_(37902)-12.bin' ARCHIVE_BASE_0_PART12_MD5='d67afeb3f4a687255d79ad1c1f45516e' ARCHIVE_BASE_0_SIZE='53000000' ARCHIVE_BASE_0_VERSION='1.98-gog37902' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Binaries Engine BmGame/Config' CONTENT_GAME_TEXTURES1_FILES=' BmGame/CookedPCConsole/Chunk0.tfc BmGame/CookedPCConsole/Chunk1.tfc BmGame/CookedPCConsole/Chunk2.tfc BmGame/CookedPCConsole/Chunk3.tfc BmGame/CookedPCConsole/Chunk4.tfc BmGame/CookedPCConsole/Chunk5.tfc' CONTENT_GAME_TEXTURES2_FILES=' BmGame/CookedPCConsole/Chunk6.tfc BmGame/CookedPCConsole/Chunk7.tfc BmGame/CookedPCConsole/Chunk8.tfc BmGame/CookedPCConsole/Textures.tfc' CONTENT_GAME_PACKAGES1_FILES=' BmGame/CookedPCConsole/City*.upk' CONTENT_GAME_PACKAGES2_FILES=' BmGame/CookedPCConsole/*.upk' CONTENT_GAME_MOVIES_FILES=' BmGame/Movies' CONTENT_GAME_DATA_FILES=' BmGame/Splash BmGame/CookedPCConsole/SFX BmGame/CookedPCConsole/*.bin BmGame/CookedPCConsole/English(US) BmGame/Localization/INT' USER_PERSISTENT_DIRECTORIES=' BmGame/Config BmGame/SaveData' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/WB Games/Batman Arkham Knight' ## TODO: Check why a virtual desktop is required WINE_VIRTUAL_DESKTOP='auto' WINE_WINETRICKS_VERBS='physx' APP_MAIN_EXE='Binaries/Win64/BatmanAK.exe' PACKAGES_LIST=' PKG_BIN PKG_TEXTURES1 PKG_TEXTURES2 PKG_PACKAGES1 PKG_PACKAGES2 PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_TEXTURES1 PKG_TEXTURES2 PKG_PACKAGES1 PKG_PACKAGES2 PKG_MOVIES' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES1_ID="${PKG_TEXTURES_ID}-1" PKG_TEXTURES2_ID="${PKG_TEXTURES_ID}-2" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES1_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 1" PKG_TEXTURES2_DESCRIPTION="$PKG_TEXTURES_DESCRIPTION - 2" PKG_PACKAGES_ID="${GAME_ID}-packages" PKG_PACKAGES1_ID="${PKG_PACKAGES_ID}-1" PKG_PACKAGES2_ID="${PKG_PACKAGES_ID}-2" PKG_PACKAGES_DESCRIPTION='packages' PKG_PACKAGES1_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 1" PKG_PACKAGES2_DESCRIPTION="$PKG_PACKAGES_DESCRIPTION - 2" PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' # Ensure ability fo fully control the camera with the mouse registry_dump_mouse_grab_file='registry-dumps/mouse-grab.reg' registry_dump_mouse_grab_content='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_mouse_grab_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_mouse_grab_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure ability fo fully control the camera with the mouse mkdir --parents "$(dirname "$registry_dump_mouse_grab_file")" printf '%s' "$registry_dump_mouse_grab_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_mouse_grab_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Win64 $(wine_command) BatmanAK.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-battle-chef-brigade.sh0000750000000000000000000000520114471751340015722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Battle Chef Brigade # send your bug reports to bugs@dotslashplay.it ### script_version=20230222.3 GAME_ID='battle-chef-brigade' GAME_NAME='Battle Chef Brigade' ARCHIVE_BASE_0='battle_chef_brigade_14725_624_23675.sh' ARCHIVE_BASE_0_MD5='d35140bf757e387a2e47198f96356d00' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='14725.624-gog23675' ARCHIVE_BASE_0_URL='https://www.gog.com/game/battle_chef_brigade' UNITY3D_NAME='BattleChefBrigade' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN_FILES=" ScreenSelector.so" CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bear-and-breakfast.sh0000750000000000000000000000414214471751340015565 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Bear and Breakfast # send your bug reports to bugs@dotslashplay.it ### script_version=20250114.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='bear-and-breakfast' GAME_NAME='Bear and Breakfast' ARCHIVE_BASE_1_NAME='setup_bear_and_breakfast_1.8.29_(64bit)_(78616).exe' ARCHIVE_BASE_1_MD5='79ff1d75fbba105e26596e2f95e3b4ea' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1339579' ARCHIVE_BASE_1_VERSION='1.8.29-gog78616' ARCHIVE_BASE_1_URL='https://www.gog.com/en/game/bear_and_breakfast' ARCHIVE_BASE_0_NAME='setup_bear_and_breakfast_1.7.3_(64bit)_(63113).exe' ARCHIVE_BASE_0_MD5='fe6328ca58e77fde90a595d81ae56954' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.7.3-gog63113' UNITY3D_NAME='bearandbreakfast' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/GummyCat/BearAndBreakfast' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-beatbuddy.sh0000750000000000000000000000404514471751340014121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Beatbuddy: Tale of the Guardians # send your bug reports to bugs@dotslashplay.it ### script_version=20240422.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='beatbuddy' GAME_NAME='Beatbuddy: Tale of the Guardians' ARCHIVE_BASE_0_NAME='BeatbuddyLinux1439603370.zip' ARCHIVE_BASE_0_MD5='156d19b327a02ac4a277f6f6ad4e188e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-humble150815' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/beatbuddy' UNITY3D_NAME='Beatbuddy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Beatbuddy' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTIOn='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bee-simulator.sh0000750000000000000000000000520514471751340014725 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Bee Simulator # send your bug reports to bugs@dotslashplay.it ### script_version=20230706.1 GAME_ID='bee-simulator' GAME_NAME='Bee Simulator' ARCHIVE_BASE_0='setup_bee_simulator_1.0_(55451).exe' ARCHIVE_BASE_0_MD5='74cbfd6873ed784201bea56a857d6222' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_bee_simulator_1.0_(55451)-1.bin' ARCHIVE_BASE_0_PART1_MD5='214c92f714f12bdf6a3408f0650ec2d2' ARCHIVE_BASE_0_PART2='setup_bee_simulator_1.0_(55451)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9dcca7e498376ff76b40e86d7fae8cf4' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.0-gog55451' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bee_simulator' UNREALENGINE4_NAME='bebee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bff-or-die.sh0000750000000000000000000000435214471751340014071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # BFF or Die # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bff-or-die' GAME_NAME='BFF or Die' ARCHIVE_BASE_0_NAME='BffOrDie_Linux.zip' ARCHIVE_BASE_0_MD5='52968da91f57da3619c3ae8a666d660a' ARCHIVE_BASE_0_SIZE='788644' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://asa-studio.itch.io/bff-or-die' UNITY3D_NAME='BffOrDie' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='BffOrDie_Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-binaries.sh0000750000000000000000000000467414471751340013762 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=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='binaries' GAME_NAME='Binaries' ARCHIVE_BASE_0_NAME='Binaries_Linux_v1.1.0.zip' ARCHIVE_BASE_0_MD5='ed3756af1ebe72560d6e52ab67013f4c' ARCHIVE_BASE_0_SIZE='470000' ARCHIVE_BASE_0_VERSION='1.1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/binaries' UNITY3D_NAME='Binaries' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete Apple archives junk find . -name '*.rsrc' -delete ) # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bio-menace.sh0000750000000000000000000000432514471751340014156 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Bio Menace # send your bug reports to bugs@dotslashplay.it ### script_version=20240422.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='bio-menace' GAME_NAME='Bio Menace' ARCHIVE_BASE_0_NAME='gog_bio_menace_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='75167ee3594dd44ec8535b29b90fe4eb' ARCHIVE_BASE_0_SIZE='14000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bio_menace' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.bm? *.conf *.exe biopatch.zip' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.conf config.bm? SAVEGAM*' APP_1_ID="${GAME_ID}-1" APP_1_NAME="$GAME_NAME - Episode 1: Dr. Mangle’s Lab" APP_1_EXE='bmenace1.exe' APP_1_ICON='../support/icon.png' APP_2_ID="${GAME_ID}-2" APP_2_NAME="$GAME_NAME - Episode 2: The Hidden Lab" APP_2_EXE='bmenace2.exe' APP_2_ICON='../support/icon.png' APP_3_ID="${GAME_ID}-3" APP_3_NAME="$GAME_NAME - Episode 3: Master Cain" APP_3_EXE='bmenace3.exe' APP_3_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-biped.sh0000750000000000000000000000345614471751340013246 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=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='biped' GAME_NAME='Biped' ARCHIVE_BASE_0_NAME='setup_biped_1.6_(39586).exe' ARCHIVE_BASE_0_MD5='c58ee9791defa88ef1bb92ba3b2f01d2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_biped_1.6_(39586)-1.bin' ARCHIVE_BASE_0_PART1_MD5='48103181d4c54a068db5eec37e10d7e5' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.6-gog39586' ARCHIVE_BASE_0_URL='https://www.gog.com/game/biped' UNITY3D_NAME='biped' CONTENT_PATH_DEFAULT='.' ## FIXME: Add persistent storage for saved games and settings. PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-beat.sh0000750000000000000000000000521014471751340014614 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Bit.Trip Beat # send your bug reports to bugs@dotslashplay.it ### script_version=20230101.1 # Set game-specific variables GAME_ID='bit-trip-beat' GAME_NAME='BIT.TRIP BEAT' ARCHIVE_BASE_0='gog_bit_trip_beat_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='32b6fd23c32553aa7c50eaf4247ba664' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_beat' CONTENT_PATH_DEFAULT='data/noarch/game/bit.trip.beat-1.0-32/bit.trip.beat' CONTENT_GAME_BIN32_FILES=' bit.trip.beat' CONTENT_GAME_BIN64_PATH='data/noarch/game/bit.trip.beat-1.0-64/bit.trip.beat' CONTENT_GAME_BIN64_FILES=' bit.trip.beat' CONTENT_GAME_DATA_FILES=' Effects Fonts Sounds Models Shaders Textures BEAT.png' CONTENT_DOC0_DATA_PATH='data/noarch/game/bit.trip.beat-1.0-32' CONTENT_DOC0_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.beat' APP_MAIN_ICON='BEAT.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-1.sh0000750000000000000000000000550414471751340015356 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230205.1 GAME_ID='bit-trip-runner-1' GAME_NAME='Bit.Trip Runner' ARCHIVE_BASE_0='gog_bit_trip_runner_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='b6f0fe70e1a2d9408967b8fd6bd881e1' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.5-gog.2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bittrip_runner' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_BIN32_FILES=' bit.trip.runner' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-64/bit.trip.runner" CONTENT_GAME_BIN64_FILES=' bit.trip.runner' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32/bit.trip.runner" CONTENT_GAME_DATA_FILES=' Effects Fonts Layouts Sounds Models Shaders Textures2d RUNNER.png' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/bit.trip.runner-1.0-32" CONTENT_DOC_DATA_FILES=' README* *.txt' APP_MAIN_EXE='bit.trip.runner' APP_MAIN_ICON='bit.trip.runner-1.0-32/bit.trip.runner/RUNNER.png' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-2.sh0000750000000000000000000001117214471751340015355 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Bit.Trip Runner 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bit-trip-runner-2' GAME_NAME='Bit.Trip Presents… Runner2: Future Legend of Rhythm Alien' ARCHIVE_BASE_GOG_0_NAME='gog_bit_trip_presents_runner2_future_legend_of_rhythm_alien_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='28c003bae691aa46d841547da8e3def6' ARCHIVE_BASE_GOG_0_SIZE='1600000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/bittrip_presents_runner2_future_legend_of_rhythm_alien' ## These native Linux DRM-free builds are no longer available from the Humble Store. ## Only builds for Windows and MacOS are provided. ARCHIVE_BASE_HUMBLE_32BIT_0_NAME='runner2_i386_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_32BIT_0_MD5='ea105bdcd486879fb99889b87e90eed5' ARCHIVE_BASE_HUMBLE_32BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_32BIT_0_VERSION='1.0-humble1388171186' ## These native Linux DRM-free builds are no longer available from the Humble Store. ## Only builds for Windows and MacOS are provided. ARCHIVE_BASE_HUMBLE_64BIT_0_NAME='runner2_amd64_1388171186.tar.gz' ARCHIVE_BASE_HUMBLE_64BIT_0_MD5='2f7ccdb675a63a5fc152514682e97480' ARCHIVE_BASE_HUMBLE_64BIT_0_SIZE='770000' ARCHIVE_BASE_HUMBLE_64BIT_0_VERSION='1.0-humble1388171186' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN32='data/noarch/game/runner2-1.0-32/runner2' CONTENT_PATH_DEFAULT_GOG_BIN64='data/noarch/game/runner2-1.0-64/runner2' CONTENT_PATH_DEFAULT_HUMBLE='runner2-1.0/runner2' CONTENT_LIBS_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_LIBS_BIN64_FILES=' libfmodevent64.so libfmodevent64-4.44.07.so libfmodex64.so libfmodex64-4.44.07.so' CONTENT_LIBS_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_LIBS_BIN32_FILES=' libfmodevent.so libfmodevent-4.44.08.so libfmodex.so libfmodex-4.44.08.so' CONTENT_GAME_BIN64_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN64" CONTENT_GAME_BIN64_FILES=' runner2' CONTENT_GAME_BIN32_PATH_GOG="$CONTENT_PATH_DEFAULT_GOG_BIN32" CONTENT_GAME_BIN32_FILES=' runner2' CONTENT_GAME_DATA_FILES=' Effects Fonts Gameplay Graphics Menus Models Shaders Sounds Textures package.toc Runner2.png' CONTENT_DOC_DATA_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/.." CONTENT_DOC_DATA_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/.." CONTENT_DOC_DATA_FILES=' README README.html' APP_MAIN_EXE='runner2' APP_MAIN_ICON='Runner2.png' PACKAGES_LIST_GOG=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_HUMBLE_32BIT=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_HUMBLE_64BIT=' PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20211125.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} runner-2-data" PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL-1.2.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## Ensure easy upgrade from packages generated using pre-20211125.2 game script PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} runner-2" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_32BIT_'*) launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_HUMBLE_64BIT_'*) launchers_generation 'PKG_BIN64' ;; ('ARCHIVE_BASE_GOG_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bit-trip-runner-3.sh0000750000000000000000000000354314471751340015361 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Bit.Trip: Runner 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240424.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='bit-trip-runner-3' GAME_NAME='Bit.Trip: Runner 3' ARCHIVE_BASE_0_NAME='Runner3WIN.zip' ARCHIVE_BASE_0_MD5='d13f6fa59e9b55a259a078328a87c9f9' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='2018.11.12-itch1' ARCHIVE_BASE_0_URL='https://choice-provisions.itch.io/runner3' UNITY3D_NAME='Runner3' CONTENT_PATH_DEFAULT='.' ## Despite the unusual path for a Unity3D game, saved games are .sav files at the root of the game directory. USER_PERSISTENT_FILES=' *.sav' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bleed-series.sh0000750000000000000000000001002614471751340014515 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bleed series: # - Bleed # - Bleed 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_BLEED1='bleed-1' GAME_NAME_BLEED1='Bleed' GAME_ID_BLEED2='bleed-2' GAME_NAME_BLEED2='Bleed 2' # Archives ## Bleed 1 ARCHIVE_BASE_BLEED1_0_NAME='bleed-linux-05052016-bin' ARCHIVE_BASE_BLEED1_0_MD5='a4522f679d7e7038e0085aaf1319f41f' ## This archive is a MojoSetup installer, but it is not based on Makeself. ARCHIVE_BASE_BLEED1_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_BLEED1_0_SIZE='110000' ARCHIVE_BASE_BLEED1_0_VERSION='1.7.0-itch.2016.05.05' ARCHIVE_BASE_BLEED1_0_URL='https://bootdiskrevolution.itch.io/bleed' ## Bleed 2 ARCHIVE_BASE_BLEED2_0_NAME='bleed2-02112018-bin' ARCHIVE_BASE_BLEED2_0_MD5='756324f1843c289719c6630a834e8f59' ## This archive is a MojoSetup installer, but it is not based on Makeself. ARCHIVE_BASE_BLEED2_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_BLEED2_0_SIZE='350000' ARCHIVE_BASE_BLEED2_0_VERSION='1.0-itch.2018.02.11' ARCHIVE_BASE_BLEED2_0_URL='https://bootdiskrevolution.itch.io/bleed-2' # Archives content CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_GAME_MAIN_FILES=' Content monoconfig FNA.dll FNA.dll.config' CONTENT_DOC_MAIN_FILES=' Linux.README' ## Bleed 1 ## Shipped OpenAL library must be included, or the game will crash on launch. CONTENT_LIBS_LIBS_FILES_BLEED1=' libmojoshader.so libopenal.so.1' CONTENT_LIBS_LIBS64_FILES_BLEED1="$CONTENT_LIBS_LIBS_FILES_BLEED1" CONTENT_LIBS_LIBS32_FILES_BLEED1="$CONTENT_LIBS_LIBS_FILES_BLEED1" CONTENT_GAME_MAIN_FILES_BLEED1="$CONTENT_GAME_MAIN_FILES Bleed.exe" ## Bleed 2 ## Shipped OpenAL library must be included, or the game will crash on launch. ## Shipped Steamworks library must be included, or the game will crash on launch. CONTENT_LIBS_LIBS_FILES_BLEED2=' libCSteamworks.so libmojoshader.so libopenal.so.1 libsteam_api.so' CONTENT_LIBS_LIBS64_FILES_BLEED2="$CONTENT_LIBS_LIBS_FILES_BLEED2" CONTENT_LIBS_LIBS32_FILES_BLEED2="$CONTENT_LIBS_LIBS_FILES_BLEED2" ## The game will crash on launch if the Steamworks library is omitted. CONTENT_GAME_MAIN_FILES_BLEED2="$CONTENT_GAME_MAIN_FILES Bleed2.exe Steamworks.NET.dll" APP_MAIN_EXE_BLEED1='Bleed.exe' APP_MAIN_EXE_BLEED2='Bleed2.exe' APP_MAIN_ICON_BLEED1='Bleed.bmp' APP_MAIN_ICON_BLEED2='Bleed 2.bmp' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID_BLEED1="${GAME_ID_BLEED1}-libs" PKG_LIBS_ID_BLEED2="${GAME_ID_BLEED2}-libs" PKG_LIBS64_ID_BLEED1="$PKG_LIBS_ID_BLEED1" PKG_LIBS64_ID_BLEED2="$PKG_LIBS_ID_BLEED2" PKG_LIBS32_ID_BLEED1="$PKG_LIBS_ID_BLEED1" PKG_LIBS32_ID_BLEED2="$PKG_LIBS_ID_BLEED2" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-bombshell.sh0000750000000000000000000000535614471751340014133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Bombshell # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='bombshell' GAME_NAME='Bombshell' ARCHIVE_BASE_0_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762).exe' ARCHIVE_BASE_0_MD5='05b5188629b378360154420be32296aa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762)-1.bin' ARCHIVE_BASE_0_PART1_MD5='9a779d8df62ca33c5215ac7f3403f999' ARCHIVE_BASE_0_PART2_NAME='setup_bombshell__1.2.10466(ion_furry)_(34762)-2.bin' ARCHIVE_BASE_0_PART2_MD5='186058e6d9058ed65ffaf4382ce8a1a0' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.2.10466-gog34762' ARCHIVE_BASE_0_URL='https://www.gog.com/game/bombshell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN64_FILES=' binaries/win64' CONTENT_GAME_BIN32_FILES=' binaries/win32' CONTENT_GAME_DATA_FILES=' engine shellgame' CONTENT_DOC_DATA_PATH='help' CONTENT_DOC_DATA_FILES=' gdf_fieldmanual.pdf' WINE_PERSISTENT_DIRECTORIE=' users/${USER}/Documents/My Games/Bombshell/ShellGame' WINE_WINEPREFIX_TWEAKS='mono' ## Grab the mouse cursor, to prevent issues when aiming with a mouse. WINE_WINETRICKS_VERBS='grabfullscreen=y' APP_MAIN_EXE_BIN64='binaries/win64/bombshell.exe' APP_MAIN_EXE_BIN32='binaries/win32/bombshell.exe' APP_MAIN_ICON='binaries/win32/bombshell.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=117' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-book-of-demons.sh0000750000000000000000000000534514471751340015001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Book of Demons # send your bug reports to bugs@dotslashplay.it ### script_version=20240325.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='book-of-demons' GAME_NAME='Book of Demons' ARCHIVE_BASE_3_NAME='setup_book_of_demons_1.05.240321_(72057).exe' ARCHIVE_BASE_3_MD5='d569fc4dddcec04aadea70ef49207566' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_SIZE='946740' ARCHIVE_BASE_3_VERSION='1.05.240321-gog72057' ARCHIVE_BASE_3_URL='https://www.gog.com/game/book_of_demons' ARCHIVE_BASE_2_NAME='setup_book_of_demons_1.05.221221_(61311).exe' ARCHIVE_BASE_2_MD5='fc7148454bba56db0bb1b8942d1bfa85' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='950000' ARCHIVE_BASE_2_VERSION='1.05.221221-gog61311' ARCHIVE_BASE_1_NAME='setup_book_of_demons_1.05.220217_(53747).exe' ARCHIVE_BASE_1_MD5='6d33342267e0b05af5f493339d450d60' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='900000' ARCHIVE_BASE_1_VERSION='1.05.220217-gog53747' ARCHIVE_BASE_0_NAME='setup_book_of_demons_1.05.211021_(50897).exe' ARCHIVE_BASE_0_MD5='ef098c3f8dd9bc7c82ec2e8ebd6c8ec5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='900000' ARCHIVE_BASE_0_VERSION='1.05.211021-gog50897' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.xml r2g_launcher.exe' CONTENT_GAME_DATA_FILES=' *.pac supporters.utf8' CONTENT_DOC_DATA_FILES=' changelog.txt' USER_PERSISTENT_FILES=' custom_settings.txt *.xml' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/R2G_Common_WIP1/GOG users/${USER}/AppData/Roaming/Return2Games_WIP21/GOG' APP_MAIN_EXE='r2g_launcher.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-braid.sh0000750000000000000000000000471014471751340013236 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=20241114.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='braid' GAME_NAME='Braid' ARCHIVE_BASE_1_NAME='gog_braid_2.0.0.3.sh' ARCHIVE_BASE_1_MD5='0d60f92ed8d1c72afb11c217cc907264' ARCHIVE_BASE_1_SIZE='170000' ARCHIVE_BASE_1_VERSION='2015.06.11-gog2.0.0.3' ARCHIVE_BASE_1_URL='https://www.gog.com/game/braid' ARCHIVE_BASE_0_NAME='gog_braid_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='22bac5c37b44916fea3e23092706d55d' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='2015.06.11-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Braid.bin.x86' CONTENT_GAME_DATA_FILES=' data Icon.png' CONTENT_DOC_DATA_FILES=' licenses *.txt' APP_MAIN_EXE='Braid.bin.x86' APP_MAIN_ICON='Icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-broforce.sh0000750000000000000000000000616314471751340013762 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Broforce # send your bug reports to bugs@dotslashplay.it ### script_version=20231115.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='broforce' GAME_NAME='Broforce' ARCHIVE_BASE_0_NAME='broforce_1034_20190611_30229.sh' ARCHIVE_BASE_0_MD5='8cbe5d69f77aaf36f99a74f39b9d200f' ARCHIVE_BASE_0_SIZE='460000' ARCHIVE_BASE_0_VERSION='1034.20190611-gog30229' ARCHIVE_BASE_0_URL='https://www.gog.com/game/broforce' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_broforce_2.3.0.4.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='1187889af4979b1718c5529ccfb4d741' ARCHIVE_BASE_MULTIARCH_0_SIZE='1400000' ARCHIVE_BASE_MULTIARCH_0_VERSION='5399v201606232041-gog15203' UNITY3D_NAME='Broforce' ## TODO: Add an explicit list of plugins to include. CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libstdc++.so.6 libfreetype.so.6 libXrandr.so.2 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" ## TODO: Check if the xrandr commmand is actually required. PKG_BIN_DEPENDENCIES_COMMANDS=' xrandr' PKG_BIN64_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" PKG_BIN32_DEPENDENCIES_COMMANDS="$PKG_BIN_DEPENDENCIES_COMMANDS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write ;; (*) set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-brutal-legend.sh0000750000000000000000000000651114471751340014703 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Brütal Legend # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='brutal-legend' GAME_NAME='Brütal Legend' ARCHIVE_BASE_GOG_0_NAME='gog_brutal_legend_2.0.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='f5927fb8b3959c52e2117584475ffe49' ARCHIVE_BASE_GOG_0_SIZE='8800000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/brutal_legend' ## This installer used to be sold at Humble Bundle, ## but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_0_NAME='BrutalLegend-Linux-2013-06-15-setup.bin' ARCHIVE_BASE_HUMBLE_0_MD5='cbda6ae12aafe20a76f4d45367430d32' ## The Humble Bundle installer looks like some custom MojoSetup installer, ## but it does not seem to be based on Makeself like the ones we usually work with. ## We force its extraction using unzip, ignoring errors due to the installer not being a real .zip archive. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='unzip' ARCHIVE_BASE_HUMBLE_0_SIZE='8800000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble130616' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libsteam_api.so' CONTENT_GAME_BIN_FILES=' Buddha.bin.x86 DFCONFIG' CONTENT_GAME_AUDIO_FILES=' Win' CONTENT_GAME_DATA_FILES=' Buddha.png Data Linux OGL' USER_PERSISTENT_FILES=' DFCONFIG' APP_MAIN_EXE='Buddha.bin.x86' APP_MAIN_ICON='Buddha.png' PACKAGES_LIST=' PKG_AUDIO PKG_DATA PKG_BIN' PKG_AUDIO_ID="${GAME_ID}-audio" PKG_AUDIO_DESCRIPTION='audio' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_AUDIO_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) ## The Humble Bundle installer looks like some custom MojoSetup installer, ## but it does not seem to be based on Makeself like the ones we usually work with. ## We force its extraction using unzip, ignoring errors due to the installer not being a real .zip archive. archive_extraction_default 2>/dev/null || true ;; (*) archive_extraction_default ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-bubbles-the-cat.sh0000750000000000000000000000527714471751340015127 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=20250324.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' # Use icotool for the .ico → .png icon conversion REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} icotool" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Use icotool for the .ico → .png icon conversion ## TODO: Check why convert from ImageMagick can not be used icon_extract_png_from_ico() { local icon destination icon="$1" destination="$2" local icon_file icon_file=$(icon_full_path "$icon") icotool --extract --output="$destination" "$icon_file" # Generate smaller variants of the icon from the original 1024×1024 one local png_original png_original=$(find "$destination" -name '*.png') convert "$png_original" -resize 512 "${png_original%.png}_512.png" convert "$png_original" -resize 256 "${png_original%.png}_256.png" convert "$png_original" -resize 128 "${png_original%.png}_128.png" convert "$png_original" -resize 64 "${png_original%.png}_64.png" } content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-butcher.sh0000750000000000000000000000577714471751340013627 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 berru set -o errexit ### # Butcher # send your bug reports to bugs@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='butcher' GAME_NAME='Butcher' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## Archives ### Full game ARCHIVE_BASE_0_NAME='butcher_w_i_m_p_gog_10_33399.sh' ARCHIVE_BASE_0_MD5='88f2e3d426f8dbcc0b78c53a43063329' ARCHIVE_BASE_0_SIZE='206121' ARCHIVE_BASE_0_VERSION='1.0-gog33399' ARCHIVE_BASE_0_URL='https://www.gog.com/game/butcher' ### Free demo ARCHIVE_BASE_DEMO_0_NAME='gog_butcher_demo_2.0.0.1.sh' ARCHIVE_BASE_DEMO_0_MD5='03ed5d89ef38ef10a3318b8da7e62525' ARCHIVE_BASE_DEMO_0_SIZE='106381' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/butcher_demo' UNITY3D_NAME='Butcher' UNITY3D_NAME_DEMO='butcher' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so libSteamworksWrapper64.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_DEMO=' PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) launchers_generation 'PKG_BIN64' ;; (*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-candleman.sh0000750000000000000000000000430114471751340014073 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=20230415.1 GAME_ID='candleman' GAME_NAME='Candleman' ARCHIVE_BASE_0='setup_candleman_the_complete_journey_1.07_(50980).exe' ARCHIVE_BASE_0_MD5='4b16554e2acc81d44fb7c90e2cae9854' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_candleman_the_complete_journey_1.07_(50980)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b5e19beda13aae27d5aa27256771d6d8' ARCHIVE_BASE_0_SIZE='3400000' ARCHIVE_BASE_0_VERSION='1.07-gog50980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/candleman' UNITY3D_NAME='candleman' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Candleman Games/Candleman' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-capsized.sh0000750000000000000000000000711314471751340013757 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-card-city-nights.sh0000750000000000000000000000413414471751340015326 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Card City Nights # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='card-city-nights' GAME_NAME='Card City Nights' ARCHIVE_BASE_0_NAME='cardcitynights_linux.zip' ARCHIVE_BASE_0_MD5='c843bd5642e2448e3a2c3e56c053fc84' ARCHIVE_BASE_0_SIZE='241947' ARCHIVE_BASE_0_VERSION='1.0.4-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/card-city-nights' UNITY3D_NAME='ccn' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cat-quest.sh0000750000000000000000000000500714471751340014063 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cat Quest series: # - Cat Quest 1 # - Cat Quest 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='cat-quest-1' GAME_NAME_EPISODE1='Cat Quest' GAME_ID_EPISODE2='cat-quest-2' GAME_NAME_EPISODE2='Cat Quest II' ARCHIVE_BASE_EPISODE1_0_NAME='setup_cat_quest_1.2.10.2_(42782).exe' ARCHIVE_BASE_EPISODE1_0_MD5='496d069ea28098aa6d575fc56f8c71ec' ARCHIVE_BASE_EPISODE1_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE1_0_SIZE='334416' ARCHIVE_BASE_EPISODE1_0_VERSION='1.2.10.2-gog42782' ARCHIVE_BASE_EPISODE1_0_URL='https://www.gog.com/en/game/cat_quest' ARCHIVE_BASE_EPISODE2_0_NAME='setup_cat_quest_ii_1.7.7.3_(51746).exe' ARCHIVE_BASE_EPISODE2_0_MD5='78f1001f07099b398ce66d971bf9b17c' ARCHIVE_BASE_EPISODE2_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE2_0_SIZE='511796' ARCHIVE_BASE_EPISODE2_0_VERSION='1.7.7.3-gog51746' ARCHIVE_BASE_EPISODE2_0_URL='https://www.gog.com/en/game/cat_quest_ii' UNITY3D_NAME_EPISODE1='cat quest' UNITY3D_NAME_EPISODE2='cat quest ii' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES_EPISODE1=' users/${USER}/AppData/LocalLow/The Gentlebros Pte_ Ltd_/Cat Quest' WINE_PERSISTENT_DIRECTORIES_EPISODE2=' users/${USER}/Documents/Cat Quest II' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cats-are-liquid.sh0000750000000000000000000000557514471751340015153 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Cats are Liquid series: # - Cats are Liquid 1 # - Cats are Liquid 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_EPISODE1='cats-are-liquid-1' GAME_NAME_EPISODE1='Cats are Liquid - A Light in the Shadows' GAME_ID_EPISODE2='cats-are-liquid-2' GAME_NAME_EPISODE2='Cats are Liquid - A Better Place' ARCHIVE_BASE_EPISODE1_0_NAME='CatsAreLiquidLinux.zip' ARCHIVE_BASE_EPISODE1_0_MD5='eb01e4f7c44543051e95bc78b777bb5b' ARCHIVE_BASE_EPISODE1_0_SIZE='171981' ARCHIVE_BASE_EPISODE1_0_VERSION='1.0-itch1' ARCHIVE_BASE_EPISODE1_0_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-light-in-the-shadows' ARCHIVE_BASE_EPISODE2_0_NAME='CaL-ABP-Linux.zip' ARCHIVE_BASE_EPISODE2_0_MD5='a61524e809870b026dc8a993b177b9b9' ARCHIVE_BASE_EPISODE2_0_SIZE='437281' ARCHIVE_BASE_EPISODE2_0_VERSION='1.0-itch1' ARCHIVE_BASE_EPISODE2_0_URL='https://lastquarterstudios.itch.io/cats-are-liquid-a-better-place' UNITY3D_NAME_EPISODE1='CatsAreLiquidLinux' UNITY3D_NAME_EPISODE2='CaL-ABP-Linux' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS_EPISODE1="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" UNITY3D_PLUGINS_EPISODE2="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT_EPISODE1='CatsAreLiquidLinux' CONTENT_PATH_DEFAULT_EPISODE2='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_EPISODE1="${GAME_ID_EPISODE1}-data" PKG_DATA_ID_EPISODE2="${GAME_ID_EPISODE2}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_EPISODE1='32' PKG_BIN_ARCH_EPISODE2='64' PKG_BIN_DEPS_EPISODE1="$PKG_DATA_ID_EPISODE1" PKG_BIN_DEPS_EPISODE2="$PKG_DATA_ID_EPISODE2" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cayne.sh0000750000000000000000000000417214471751340013256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Cayne # send your bug reports to bugs@dotslashplay.it ### script_version=20240603.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cayne' GAME_NAME='Cayne' ARCHIVE_BASE_0_NAME='gog_cayne_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e1f78fd010c6185b828378aa7af3d7a8' ARCHIVE_BASE_0_SIZE='4063719' ARCHIVE_BASE_0_VERSION='1.26-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/cayne' UNITY3D_NAME='cayne' UNITY3D_PLUGINS=' libMouseLib64.so libMouseLib.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' Library/Application Support/The Brotherhood' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-celeste.sh0000750000000000000000000000554414471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Celeste # send your bug reports to bugs@dotslashplay.it ### script_version=20240226.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='celeste' GAME_NAME='Celeste' ARCHIVE_BASE_1_NAME='celeste-linux.zip' ARCHIVE_BASE_1_MD5='518ea69d60079109a2575d428eff8a53' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='1.4.0.0-itch.2021.03.29' ARCHIVE_BASE_1_URL='https://maddymakesgamesinc.itch.io/celeste' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' Content Celeste.exe Celeste.exe.config Celeste.png gamecontrollerdb.txt Celeste.Content.dll FNA.dll FNA.dll.config FNA3D.dll' ## Include shipped libraries that can not be replaced by system ones. CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libfmod*.so* libmojoshader.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libfmod*.so* libmojoshader.so libFNA3D.so.0' APP_MAIN_EXE='Celeste.exe' APP_MAIN_ICON='Celeste.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libGL.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libXrandr.so.2' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' ## Include shipped libraries that can not be replaced by system ones. ## TODO: These shipped libraries probably depend on some system native libraries being available. PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="${PKG_MAIN_DEPS:-} $PKG_LIBS_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-chained-echoes.sh0000750000000000000000000000422514471751340015015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Chained Echoes # send your bug reports to bugs@dotslashplay.it ### script_version=20241217.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='chained-echoes' GAME_NAME='Chained Echoes' ARCHIVE_BASE_1_NAME='chained_echoes_1_322_71539.sh' ARCHIVE_BASE_1_MD5='1bfa6fc06f6f6dce5943d5a28ed92951' ARCHIVE_BASE_1_SIZE='822597' ARCHIVE_BASE_1_VERSION='1.322-gog71539' ARCHIVE_BASE_1_URL='https://www.gog.com/game/chained_echoes' ARCHIVE_BASE_0_NAME='chained_echoes_1_3_65510.sh' ARCHIVE_BASE_0_MD5='b319014ce49e39b8ff4aa3540a79e874' ARCHIVE_BASE_0_SIZE='830524' ARCHIVE_BASE_0_VERSION='1.3-gog65510' UNITY3D_NAME='Chained_Echoes' UNITY3D_NAME_0='Chained Echoes' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of shipped Steam libraries rm --recursive "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-chronology.sh0000750000000000000000000000463214471751340014343 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=20240122.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='chronology' GAME_NAME='Chronology' ARCHIVE_BASE_0_NAME='Chronology Windows 1.0.20.zip' ARCHIVE_BASE_0_MD5='08236874d0553d9953c56ee3472468f2' ARCHIVE_BASE_0_SIZE='240000' ARCHIVE_BASE_0_VERSION='1.0.20-itch1' ARCHIVE_BASE_0_URL='https://bedtimedigitalgames.itch.io/chronology' CONTENT_PATH_DEFAULT='Chronology Windows 1.0.20' CONTENT_GAME_BIN_FILES=' Chronology.exe *.dll' CONTENT_GAME_DATA_FILES=' Content Screengroup.dat' CONTENT_DOC_DATA_FILES=' BuildDate.txt License.txt' ## The game engine expects write access to files under Content. USER_PERSISTENT_DIRECTORIES=' Content' WINE_DLLOVERRIDES_DEFAULT='winemenubuilder.exe,mshtml=' ## The game fails to start if Mono is used instead of .NET. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} dotnet40" ## The game crashes when trying to play if the PE32 OpenAL library is missing. WINE_WINETRICKS_VERBS="${WINE_WINETRICKS_VERBS:-} openal" APP_MAIN_EXE='Chronology.exe' ## The application type must be set explicitly, ## or it would be wrongly guessed as a Mono one. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cineris-somnia.sh0000750000000000000000000000353214471751340015076 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Cineris Somnia # send your bug reports to bugs@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='cineris-somnia' GAME_NAME='Cineris Somnia' ## This game installer is no longer available from playism.com, ## as they closed their store down in favour of Steam. ARCHIVE_BASE_0_NAME='CINERIS_SOMNIA_PLAYISM_20181109.zip' ARCHIVE_BASE_0_MD5='c25ea529ffb12b0e055d05117c5bc24d' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.01-playism20181109' UNITY3D_NAME='Cineris Somnia' CONTENT_PATH_DEFAULT='20181109_101' CONTENT_DOC_DATA_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Nayuta Studio/Cineris Somnia' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-closure.sh0000750000000000000000000000662214471751340013635 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-codemancer.sh0000750000000000000000000000404014471751340014251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Codemancer # send your bug reports to bugs@dotslashplay.it ### script_version=20230328.2 GAME_ID='codemancer' GAME_NAME='Codemancer' ARCHIVE_BASE_0='Codemancer.msi' ARCHIVE_BASE_0_MD5='727dfcf3640ce064f455a023c1c50e1e' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.0.2-itch.2020.03.17' ARCHIVE_BASE_0_URL='https://importantlittlegames.itch.io/codemancer-ch-1' CONTENT_PATH_DEFAULT='appdir:.' CONTENT_GAME_BIN_FILES=' adobe air codemancer chapter 1.exe' CONTENT_GAME_DATA_FILES=' assets meta-inf mimetype icon.ico *.swf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/CodemancerChapter1' APP_MAIN_EXE='codemancer chapter 1.exe' APP_MAIN_ICON='icon.ico' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-convoy.sh0000750000000000000000000000534214471751340013474 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Convoy # send your bug reports to bugs@dotslashplay.it ### script_version=20231115.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='convoy' GAME_NAME='Convoy' ARCHIVE_BASE_3_NAME='convoy_1_1_54_27852.sh' ARCHIVE_BASE_3_MD5='2f7dd6c597e07638650cc01883e0367f' ARCHIVE_BASE_3_SIZE='860000' ARCHIVE_BASE_3_VERSION='1.1.54-gog27852' ARCHIVE_BASE_3_URL='https://www.gog.com/game/convoy' ARCHIVE_BASE_2_NAME='convoy_1_1_53_27205.sh' ARCHIVE_BASE_2_MD5='cda02a99f12adc608a0193f75fc9d7d3' ARCHIVE_BASE_2_SIZE='860000' ARCHIVE_BASE_2_VERSION='1.1.53-gog27205' ARCHIVE_BASE_1_NAME='convoy_1_1_52_26363.sh' ARCHIVE_BASE_1_MD5='99b331906d75443f08c4f787bc83a7ef' ARCHIVE_BASE_1_SIZE='860000' ARCHIVE_BASE_1_VERSION='1.1.52-gog26363' ARCHIVE_BASE_0='gog_convoy_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='2d66599173990eb202a43dbc547c80f5' ARCHIVE_BASE_0_SIZE='860000' ARCHIVE_BASE_0_VERSION='1.1.51-gog2.4.0.7' UNITY3D_NAME='Convoy' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cook-serve-delicious-2.sh0000750000000000000000000000422614471751340016351 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Cook, Serve, Delicious 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='cook-serve-delicious-2' GAME_NAME='Cook, Serve, Delicious! 2!!' ARCHIVE_BASE_0='CSD2_Linux_v2_60m1_1.zip' ARCHIVE_BASE_0_MD5='1842d43dc715a61d1776a3432b7bf758' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://chubigans.itch.io/cook-serve-delicious-2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' NEW_CSD2_PS4Steam' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='NEW_CSD2_PS4Steam' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-cornerstone-the-song-of-tyrim.sh0000750000000000000000000000420414471751340020002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Cornerstone: The Song of Tyrim # send your bug reports to bugs@dotslashplay.it ### script_version=20240528.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='cornerstone-the-song-of-tyrim' GAME_NAME='Cornerstone: The Song of Tyrim' ARCHIVE_BASE_0_NAME='Cornerstone_1.00_Linux.zip' ARCHIVE_BASE_0_MD5='ba8e257c18d3606d4b7e4295be893b9c' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.00-humble160425' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/cornerstone-the-song-of-tyrim' UNITY3D_NAME='Cornerstone' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-costume-quest.sh0000750000000000000000000000464314471751340015000 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Costume Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20230227.2 GAME_ID='costume-quest' GAME_NAME='Costume Quest' ARCHIVE_BASE_0='gog_costume_quest_2.0.0.3.sh' ARCHIVE_BASE_0_MD5='3c2f2126be1ca2148f333c453341b810' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/costume_quest' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_BIN_FILES=' libfmodevent-4.42.16.so libfmodeventnet-4.42.16.so libfmodex-4.42.16.so libSDL2-2.0.so.0' CONTENT_GAME_BIN_FILES=' Cq.bin.x86' CONTENT_GAME_DATA_FILES=' DFCONFIG Data/Config Linux/Packs OGL/Shaders Win/Audio/Music Win/Audio/Music_DLC Win/Audio/SFX Win/Audio/CostumeQuest_USEnglish Win/Audio/Voice' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES='*' APP_MAIN_EXE='Cq.bin.x86' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libopenal.so.1 libGL.so.1 libGLU.so.1 libSDL2-2.0.so.0' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-crosscode.sh0000750000000000000000000001104714471751340014142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # CrossCode # send your bug reports to bugs@dotslashplay.it ### script_version=20241201.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crosscode' GAME_NAME='CrossCode' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_64BIT_0_NAME='crosscode-new-linux64.zip' ARCHIVE_BASE_64BIT_0_MD5='2fece5dc78bf6bfdde7e6b3239da73b6' ARCHIVE_BASE_64BIT_0_SIZE='1019175' ARCHIVE_BASE_64BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_32BIT_0_NAME='crosscode-new-linux32.zip' ARCHIVE_BASE_32BIT_0_MD5='630cfd22cd5e9e168f833dfa3fce9931' ARCHIVE_BASE_32BIT_0_SIZE='1021105' ARCHIVE_BASE_32BIT_0_VERSION='1.4.2-itch.2022.04.19' ARCHIVE_BASE_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_64BIT_0_NAME='crosscode-demo-linux64.zip' ARCHIVE_BASE_DEMO_64BIT_0_MD5='242e4cc9f48bd70a04f2d5d5e3258207' ARCHIVE_BASE_DEMO_64BIT_0_SIZE='211392' ARCHIVE_BASE_DEMO_64BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_64BIT_0_URL='https://radicalfishgames.itch.io/crosscode' ARCHIVE_BASE_DEMO_32BIT_0_NAME='crosscode-demo-linux32.zip' ARCHIVE_BASE_DEMO_32BIT_0_MD5='6b6c85bcd7ad315ee42a4c785e3e85a6' ARCHIVE_BASE_DEMO_32BIT_0_SIZE='221220' ARCHIVE_BASE_DEMO_32BIT_0_VERSION='1.0-itch1' ARCHIVE_BASE_DEMO_32BIT_0_URL='https://radicalfishgames.itch.io/crosscode' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_RELATIVE_PATH='lib' CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_LIBS0_BIN_RELATIVE_PATH='swiftshader' CONTENT_LIBS0_BIN_FILES=' libEGL.so libGLESv2.so' CONTENT_GAME_BIN_FILES=' CrossCode' ## TODO: Check if the Steam id file is required CONTENT_GAME_DATA_FILES=' assets locales natives_blob.bin v8_context_snapshot.bin icudtl.dat credits.html package.json favicon.png nw_100_percent.pak nw_200_percent.pak resources.pak steam_appid.txt' APP_MAIN_EXE='CrossCode' APP_MAIN_ICON='favicon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH_64BIT='64' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_DEMO_64BIT='64' PKG_BIN_ARCH_DEMO_32BIT='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libatspi.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libgcc_s.so.1 libgdk-3.so.0 libgdk_pixbuf-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libuuid.so.1 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_DEMO_'*) # No icon is provided with the demo builds ;; (*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-crossing-souls.sh0000750000000000000000000000512414471751340015147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Erwann Duclos # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Crossing Souls # send your bug reports to bugs@dotslashplay.it ### script_version=20240604.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='crossing-souls' GAME_NAME='Crossing Souls' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0='crossing_souls_demo_en_1_1_0_18420.sh' ARCHIVE_BASE_DEMO_0_MD5='05c1eb7a25516ae42138edb6781d8271' ARCHIVE_BASE_DEMO_0_SIZE='1071310' ARCHIVE_BASE_DEMO_0_VERSION='1.1.0-gog18420' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/crossing_souls_demo' UNITY3D_NAME='crossingsouls' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS_DEMO="$PKG_BIN_DEPS_DEMO" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS_DEMO="$PKG_BIN_DEPS_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-crypt-of-the-necrodancer-expansions.sh0000750000000000000000000014652014471751340021152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Crypt of the NecroDancer expansions: # - Amplified # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' EXPANSION_ID_AMPLIFIED='amplified' EXPANSION_NAME_AMPLIFIED='Amplified' ARCHIVE_BASE_AMPLIFIED_5_NAME='crypt_of_the_necrodancer_amplified_4_1_1_b5421_75773.sh' ARCHIVE_BASE_AMPLIFIED_5_MD5='7781e21a31338b55478e85ac9e275d6f' ARCHIVE_BASE_AMPLIFIED_5_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_5_VERSION='4.1.1-gog75773' ARCHIVE_BASE_AMPLIFIED_5_URL='https://www.gog.com/game/crypt_of_the_necrodancer_amplified' ARCHIVE_BASE_AMPLIFIED_4_NAME='crypt_of_the_necrodancer_amplified_4_0_0_b5095_71873.sh' ARCHIVE_BASE_AMPLIFIED_4_MD5='f102e0705e1333dd622cb23464c76555' ARCHIVE_BASE_AMPLIFIED_4_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_4_VERSION='4.0.0-gog71873' ARCHIVE_BASE_AMPLIFIED_3_NAME='crypt_of_the_necrodancer_amplified_3_7_5_b4897_68999.sh' ARCHIVE_BASE_AMPLIFIED_3_MD5='afbe68f105b71e8d918a4768498d8c24' ARCHIVE_BASE_AMPLIFIED_3_SIZE='786163' ARCHIVE_BASE_AMPLIFIED_3_VERSION='3.7.5-gog68999' ARCHIVE_BASE_AMPLIFIED_2_NAME='crypt_of_the_necrodancer_amplified_3_7_4_b4860_68330.sh' ARCHIVE_BASE_AMPLIFIED_2_MD5='e56eb1c2e7595ced5b67075dc08d65c9' ARCHIVE_BASE_AMPLIFIED_2_SIZE='794448' ARCHIVE_BASE_AMPLIFIED_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_AMPLIFIED_1_NAME='crypt_of_the_necrodancer_amplified_3_4_0_b3655_61079.sh' ARCHIVE_BASE_AMPLIFIED_1_MD5='410df53bd1efe43dfc6fd41cb9cdf694' ARCHIVE_BASE_AMPLIFIED_1_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_AMPLIFIED_0_NAME='crypt_of_the_necrodancer_amplified_3_1_5_b3223_59419.sh' ARCHIVE_BASE_AMPLIFIED_0_MD5='67c2111ad6116ea68c343f9d7694eb1c' ARCHIVE_BASE_AMPLIFIED_0_SIZE='600000' ARCHIVE_BASE_AMPLIFIED_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' ## These files overwrite the ones provided by the base game CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_MAIN_FILES=' data' PACKAGES_LIST=' PKG_DATA_COMMON PKG_MAIN' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_DATA_COMMON PKG_PARENT' PKG_DATA_COMMON_ID="${GAME_ID}-data-common" PKG_DATA_COMMON_ID_AMPLIFIED="${PKG_DATA_COMMON_ID}-${EXPANSION_ID_AMPLIFIED}" PKG_DATA_COMMON_PROVIDES=" $PKG_DATA_COMMON_ID" PKG_DATA_COMMON_DESCRIPTION='data - common files between base game and expansion' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-crypt-of-the-necrodancer.sh0000750000000000000000000015252414471751340016766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Crypt of the Necrodancer # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='crypt-of-the-necrodancer' GAME_NAME='Crypt of the NecroDancer' ARCHIVE_BASE_5_NAME='crypt_of_the_necrodancer_4_1_1_b5421_75773.sh' ARCHIVE_BASE_5_MD5='3a5518a8f98c4ffe8a8000889cd2d916' ARCHIVE_BASE_5_SIZE='1582395' ARCHIVE_BASE_5_VERSION='4.1.1-gog75773' ARCHIVE_BASE_5_URL='https://www.gog.com/game/crypt_of_the_necrodancer' ARCHIVE_BASE_4_NAME='crypt_of_the_necrodancer_4_0_0_b5095_71873.sh' ARCHIVE_BASE_4_MD5='1834813b492806b13635a756d32716c6' ARCHIVE_BASE_4_SIZE='1571042' ARCHIVE_BASE_4_VERSION='4.0.0-gog71873' ARCHIVE_BASE_3_NAME='crypt_of_the_necrodancer_3_7_5_b4897_68999.sh' ARCHIVE_BASE_3_MD5='b9dec663522ad9632340dbfe8c859a2f' ARCHIVE_BASE_3_SIZE='1527261' ARCHIVE_BASE_3_VERSION='3.7.5-gog68999' ARCHIVE_BASE_2_NAME='crypt_of_the_necrodancer_3_7_4_b4860_68330.sh' ARCHIVE_BASE_2_MD5='3a513a9089ca9b9383bee224d44af64f' ARCHIVE_BASE_2_SIZE='1558404' ARCHIVE_BASE_2_VERSION='3.7.4-gog68330' ARCHIVE_BASE_1_NAME='crypt_of_the_necrodancer_3_4_0_b3655_61079.sh' ARCHIVE_BASE_1_MD5='f53c2736647e577036d1d014e8e81656' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='3.4.0-gog61079' ARCHIVE_BASE_0_NAME='crypt_of_the_necrodancer_3_1_5_b3223_59419.sh' ARCHIVE_BASE_0_MD5='006d720a727a05048ea8028b1d3b0332' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='3.1.5-gog59419' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS_BIN_FILES=' libnecrolevel.so' ## Shipped libsfml-*.so.2.5 must be used to avoid a symbol lookup error. CONTENT_LIBS0_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS0_BIN_FILES=' libsfml-*.so.2.5' ## The shipped build of libluajit-5.1.so.2 must be included to prevent a crash: ## [LocalGame] [error] scripts/core/jit/p.lua:44: LuaJIT core/library version mismatch CONTENT_LIBS1_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS1_BIN_FILES=' libluajit-5.1.so.2' ## TODO: Check if the shipped Galaxy library is required. CONTENT_LIBS2_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS2_BIN_FILES=' libGalaxy64.so' ## TODO: Check if the shipped Discord library is required. CONTENT_LIBS3_BIN_RELATIVE_PATH='NecroDancer64/lib' CONTENT_LIBS3_BIN_FILES=' libdiscord_game_sdk.so' CONTENT_GAME_BIN_FILES=' NecroDancer64/dlc NecroDancer64/config.json NecroDancer64/Compat.wsp NecroDancer64/NecroDancer.wsp NecroDancer64/NecroDancer.x64' ## These files are overriden by the Amplified expansion CONTENT_GAME_DATA_COMMON_FILES=' data/entities/beastmaster.png data/entities/bossmaster.png data/entities/char1_armor_body.png data/entities/char1_heads.png data/entities/char2_armor_body.png data/entities/char2_heads.png data/entities/char3_armor_body.png data/entities/char3_heads.png data/entities/char4_armor_body.png data/entities/char4_heads.png data/entities/char5_armor_body.png data/entities/char5_heads.png data/entities/char6_armor_body.png data/entities/char6_heads.png data/entities/char7_armor_body.png data/entities/char7_heads.png data/entities/char8_armor_body.png data/entities/char8_heads.png data/entities/char9_armor_body.png data/entities/char9_heads.png data/entities/dragon_blue.png data/entities/dragon_green.png data/entities/dragon_red.png data/entities/golem_ooze.png data/entities/jp10_armor_body.png data/entities/jp10_heads.png data/entities/jp11_armor_body.png data/entities/jp11_heads.png data/entities/jp1_armor_body.png data/entities/jp1_heads.png data/entities/jp2_armor_body.png data/entities/jp2_heads.png data/entities/jp3_armor_body.png data/entities/jp3_heads.png data/entities/jp4_armor_body.png data/entities/jp4_heads.png data/entities/jp5_armor_body.png data/entities/jp5_heads.png data/entities/jp6_armor_body.png data/entities/jp6_heads.png data/entities/jp7_armor_body.png data/entities/jp7_heads.png data/entities/jp8_armor_body.png data/entities/jp8_heads.png data/entities/jp9_armor_body.png data/entities/jp9_heads.png data/entities/player1_armor_body.png data/entities/player1_heads.png data/entities/player2_armor_body.png data/entities/player2_heads.png data/entities/player3_armor_body.png data/entities/player3_heads.png data/entities/player4_armor_body.png data/entities/player4_heads.png data/entities/skeleton_black.png data/entities/skeleton.png data/entities/skeleton_yellow.png data/items/resource_hoard_gold_small.png data/languages/brazilianportuguese/localization/characterselect_aria1.png data/languages/brazilianportuguese/localization/characterselect_bard1.png data/languages/brazilianportuguese/localization/characterselect_bolt1.png data/languages/brazilianportuguese/localization/characterselect_deathless2.png data/languages/brazilianportuguese/localization/characterselect_eli1.png data/languages/brazilianportuguese/localization/characterselect_hint1.png data/languages/brazilianportuguese/localization/characterselect_monk1.png data/languages/brazilianportuguese/localization/characterselect_monk3.png data/languages/brazilianportuguese/localization/characterselect_story2.png data/languages/brazilianportuguese/localization/enemybig_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_chestmimic.png data/languages/brazilianportuguese/localization/enemy_deadringer.png data/languages/brazilianportuguese/localization/enemy_firecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_icecauldronmimic.png data/languages/brazilianportuguese/localization/enemy_lockedchestmimic.png data/languages/brazilianportuguese/localization/enemy_mommy.png data/languages/brazilianportuguese/localization/enemy_shopkeeperghost.png data/languages/brazilianportuguese/localization/enemy_shrineofpace.png data/languages/brazilianportuguese/localization/enemy_whitechestmimic.png data/languages/brazilianportuguese/localization/game_story2.png data/languages/brazilianportuguese/localization/game_story3.png data/languages/brazilianportuguese/localization/hint_1visiontrapsight.png data/languages/brazilianportuguese/localization/hint_alreadycomplete.png data/languages/brazilianportuguese/localization/hint_completemonk.png data/languages/brazilianportuguese/localization/hint_enchantweapon2.png data/languages/brazilianportuguese/localization/hint_exitunlocked.png data/languages/brazilianportuguese/localization/hint_giveswhatyouneed.png data/languages/brazilianportuguese/localization/hint_shrineofblood1.png data/languages/brazilianportuguese/localization/hint_shrineofglass1.png data/languages/brazilianportuguese/localization/hint_shrineofnoreturn2.png data/languages/brazilianportuguese/localization/hint_shrineofpace1.png data/languages/brazilianportuguese/localization/hint_shrineofphasing2.png data/languages/brazilianportuguese/localization/hint_shrineofrhythm2.png data/languages/brazilianportuguese/localization/hint_sloth.png data/languages/brazilianportuguese/localization/item_balletshoes.png data/languages/brazilianportuguese/localization/item_enchantweaponscroll.png data/languages/brazilianportuguese/localization/item_glassshardshovel.png data/languages/brazilianportuguese/localization/item_ringofmana.png data/languages/brazilianportuguese/localization/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/leveleditor_saveandpublish.png data/languages/brazilianportuguese/localization/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/leveleditor_workshop.png data/languages/brazilianportuguese/localization/lobby_allzones.png data/languages/brazilianportuguese/localization/lobby_character.png data/languages/brazilianportuguese/localization/lobby_dailychallenge3.png data/languages/brazilianportuguese/localization/lobby_dancepad.png data/languages/brazilianportuguese/localization/lobby_diamonddealerexplain2.png data/languages/brazilianportuguese/localization/lobby_janitorexplain2.png data/languages/brazilianportuguese/localization/lobby_modeeasier.png data/languages/brazilianportuguese/localization/lobby_mode.png data/languages/brazilianportuguese/localization/lobby_select.png data/languages/brazilianportuguese/localization/options_buttonbig_joy1button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy2button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy3button.png data/languages/brazilianportuguese/localization/options_buttonbig_joy4button.png data/languages/brazilianportuguese/localization/options_button_joy1button.png data/languages/brazilianportuguese/localization/options_button_joy2button.png data/languages/brazilianportuguese/localization/options_button_joy3button.png data/languages/brazilianportuguese/localization/options_button_joy4button.png data/languages/brazilianportuguese/localization/options_random.png data/languages/brazilianportuguese/localization/options_steamworkshop.png data/languages/brazilianportuguese/localization/options_workshop.png data/languages/brazilianportuguese/localization/selection/leveleditor_dirtwall.png data/languages/brazilianportuguese/localization/selection/leveleditor_placecontainer.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineblood.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrineglass.png data/languages/brazilianportuguese/localization/selection/leveleditor_shrinepace.png data/languages/brazilianportuguese/localization/selection/leveleditor_travelrune.png data/languages/brazilianportuguese/localization/selection/options_button_joy1button.png data/languages/brazilianportuguese/localization/selection/options_button_joy2button.png data/languages/brazilianportuguese/localization/selection/options_button_joy3button.png data/languages/brazilianportuguese/localization/selection/options_button_joy4button.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsscore.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeed.png data/languages/brazilianportuguese/localization/selection/options_leaderboardsspeedseeded.png data/languages/brazilianportuguese/localization/selection/options_random.png data/languages/brazilianportuguese/localization/selection/options_steamworkshop.png data/languages/brazilianportuguese/localization/training_cauldronmimic.png data/languages/brazilianportuguese/localization/training_chestmimic.png data/languages/brazilianportuguese/localization/training_hellhound.png data/languages/brazilianportuguese/localization/training_mommy.png data/languages/brazilianportuguese/localization.xml data/languages/brazilianportuguese/subtitles.xml data/languages/chinese/language_name.png data/languages/chinese/localization/boss_kingcongasplash.png data/languages/chinese/localization/characterselect_story2.png data/languages/chinese/localization/custommusic_kingconga.png data/languages/chinese/localization/enemybig_blooddrum.png data/languages/chinese/localization/enemybig_bloodnightmare.png data/languages/chinese/localization/enemybig_bloodshovel.png data/languages/chinese/localization/enemybig_kingconga.png data/languages/chinese/localization/enemybig_shrineofnoreturn.png data/languages/chinese/localization/enemybig_shrineofpace.png data/languages/chinese/localization/enemybig_shrineofrisk.png data/languages/chinese/localization/enemy_blooddrum.png data/languages/chinese/localization/enemy_bloodnightmare.png data/languages/chinese/localization/enemy_bloodshovel.png data/languages/chinese/localization/enemy_kingconga.png data/languages/chinese/localization/enemy_shrineofnoreturn.png data/languages/chinese/localization/enemy_shrineofpace.png data/languages/chinese/localization/enemy_shrineofrisk.png data/languages/chinese/localization/game_lowpercent.png data/languages/chinese/localization/game_story2.png data/languages/chinese/localization/game_story3.png data/languages/chinese/localization/hint_charm.png data/languages/chinese/localization/hint_charmshattered.png data/languages/chinese/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/chinese/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/chinese/localization/hint_helpswithsometerrain.png data/languages/chinese/localization/hint_helpswithtrapsandice.png data/languages/chinese/localization/hint_phasingattack2dmg.png data/languages/chinese/localization/hint_rangedattackneedsloadingpiercing.png data/languages/chinese/localization/hint_rangedattackneedsreloadingpiercing.png data/languages/chinese/localization/hint_shrineofblood1.png data/languages/chinese/localization/hint_shrineofchance1.png data/languages/chinese/localization/hint_shrineofdarkness1.png data/languages/chinese/localization/hint_shrineofglass1.png data/languages/chinese/localization/hint_shrineofnoreturn1.png data/languages/chinese/localization/hint_shrineofpace1.png data/languages/chinese/localization/hint_shrineofpeace1.png data/languages/chinese/localization/hint_shrineofphasing1.png data/languages/chinese/localization/hint_shrineofrhythm1.png data/languages/chinese/localization/hint_shrineofrisk1.png data/languages/chinese/localization/hint_shrineofsacrifice1.png data/languages/chinese/localization/hint_shrineofsacrifice2.png data/languages/chinese/localization/hint_shrineofspace1.png data/languages/chinese/localization/hint_shrineofwar1.png data/languages/chinese/localization/hint_sloth.png data/languages/chinese/localization/hint_thorn.png data/languages/chinese/localization/item_bloodbow.png data/languages/chinese/localization/item_bloodbroadsword.png data/languages/chinese/localization/item_bloodcat.png data/languages/chinese/localization/item_bloodcrossbow.png data/languages/chinese/localization/item_blooddagger.png data/languages/chinese/localization/item_blooddrum.png data/languages/chinese/localization/item_bloodflail.png data/languages/chinese/localization/item_bloodlongsword.png data/languages/chinese/localization/item_bloodrapier.png data/languages/chinese/localization/item_bloodshovel.png data/languages/chinese/localization/item_bloodspear.png data/languages/chinese/localization/item_bloodwhip.png data/languages/chinese/localization/item_charmspell.png data/languages/chinese/localization/item_daggerofphasing.png data/languages/chinese/localization/item_drumstick.png data/languages/chinese/localization/item_frostcharm.png data/languages/chinese/localization/item_gluttonycharm.png data/languages/chinese/localization/item_goldenbow.png data/languages/chinese/localization/item_goldenbroadsword.png data/languages/chinese/localization/item_goldencat.png data/languages/chinese/localization/item_goldencrossbow.png data/languages/chinese/localization/item_goldendagger.png data/languages/chinese/localization/item_goldenflail.png data/languages/chinese/localization/item_goldenlongsword.png data/languages/chinese/localization/item_goldenrapier.png data/languages/chinese/localization/item_goldenspear.png data/languages/chinese/localization/item_goldenwhip.png data/languages/chinese/localization/item_infernaltorch.png data/languages/chinese/localization/item_luckycharm.png data/languages/chinese/localization/item_nazarcharm.png data/languages/chinese/localization/item_ringofmana.png data/languages/chinese/localization/item_ringofphasing.png data/languages/chinese/localization/item_ringofshielding.png data/languages/chinese/localization/item_riskcharm.png data/languages/chinese/localization/item_strengthcharm.png data/languages/chinese/localization/item_titaniumbow.png data/languages/chinese/localization/item_titaniumbroadsword.png data/languages/chinese/localization/item_titaniumcat.png data/languages/chinese/localization/item_titaniumcrossbow.png data/languages/chinese/localization/item_titaniumdagger.png data/languages/chinese/localization/item_titaniumflail.png data/languages/chinese/localization/item_titaniumlongsword.png data/languages/chinese/localization/item_titaniumrapier.png data/languages/chinese/localization/item_titaniumshovel.png data/languages/chinese/localization/item_titaniumspear.png data/languages/chinese/localization/item_titaniumwhip.png data/languages/chinese/localization/leaderboard_watch.png data/languages/chinese/localization/leveleditor_kingconga.png data/languages/chinese/localization/leveleditor_placeshrine.png data/languages/chinese/localization/leveleditor_shopfloor.png data/languages/chinese/localization/leveleditor_shopwall.png data/languages/chinese/localization/leveleditor_shrineblood.png data/languages/chinese/localization/leveleditor_shrinechance.png data/languages/chinese/localization/leveleditor_shrinedarkness.png data/languages/chinese/localization/leveleditor_shrineglass.png data/languages/chinese/localization/leveleditor_shrinenoreturn.png data/languages/chinese/localization/leveleditor_shrinepace.png data/languages/chinese/localization/leveleditor_shrinepeace.png data/languages/chinese/localization/leveleditor_shrinephasing.png data/languages/chinese/localization/leveleditor_shrinerhythm.png data/languages/chinese/localization/leveleditor_shrinerisk.png data/languages/chinese/localization/leveleditor_shrinesacrifice.png data/languages/chinese/localization/leveleditor_shrinespace.png data/languages/chinese/localization/leveleditor_shrinewar.png data/languages/chinese/localization/options_language.png data/languages/chinese/localization/options_lowpercent.png data/languages/chinese/localization/selection/custommusic_kingconga.png data/languages/chinese/localization/selection/leaderboard_watch.png data/languages/chinese/localization/selection/leveleditor_kingconga.png data/languages/chinese/localization/selection/leveleditor_placeshrine.png data/languages/chinese/localization/selection/leveleditor_shopfloor.png data/languages/chinese/localization/selection/leveleditor_shopwall.png data/languages/chinese/localization/selection/leveleditor_shrineblood.png data/languages/chinese/localization/selection/leveleditor_shrinechance.png data/languages/chinese/localization/selection/leveleditor_shrinedarkness.png data/languages/chinese/localization/selection/leveleditor_shrineglass.png data/languages/chinese/localization/selection/leveleditor_shrinenoreturn.png data/languages/chinese/localization/selection/leveleditor_shrinepace.png data/languages/chinese/localization/selection/leveleditor_shrinepeace.png data/languages/chinese/localization/selection/leveleditor_shrinephasing.png data/languages/chinese/localization/selection/leveleditor_shrinerhythm.png data/languages/chinese/localization/selection/leveleditor_shrinerisk.png data/languages/chinese/localization/selection/leveleditor_shrinesacrifice.png data/languages/chinese/localization/selection/leveleditor_shrinespace.png data/languages/chinese/localization/selection/leveleditor_shrinewar.png data/languages/chinese/localization/selection/options_language.png data/languages/chinese/localization/shop_shriner.png data/languages/chinese/localization/training_bloodnightmare.png data/languages/chinese/localization/training_kingconga1.png data/languages/chinese/localization/training_kingconga2.png data/languages/chinese/localization/training_kingconga3.png data/languages/chinese/localization/training_kingconga4.png data/languages/chinese/localization.xml data/languages/chinesesimplified/language_name.png data/languages/chinesesimplified/localization/characterbig_mage.png data/languages/chinesesimplified/localization/character_mage.png data/languages/chinesesimplified/localization/lobby_diamonddealerexplain2.png data/languages/chinesesimplified/localization/lobby_janitorexplain1.png data/languages/chinesesimplified/localization/lobby_janitorexplain2.png data/languages/chinesesimplified/localization/options_language.png data/languages/chinesesimplified/localization/selection/options_language.png data/languages/chinesesimplified/localization.xml data/languages/chinesesimplified/subtitles.xml data/languages/chinese/subtitles.xml data/languages/english/subtitles.xml data/languages/example/localization.xml data/languages/french/localization/characterselect_hint2.png data/languages/french/localization/characterselect_story2.png data/languages/french/localization/game_scoresubmitting.png data/languages/french/localization/game_story2.png data/languages/french/localization/game_story3.png data/languages/french/localization/hint_4damagebreakable.png data/languages/french/localization/hint_doubletime.png data/languages/french/localization/hint_shrineofnoreturn2.png data/languages/french/localization/item_bloodlongsword.png data/languages/french/localization/item_glasslongsword.png data/languages/french/localization/item_goldenlongsword.png data/languages/french/localization/item_longsword.png data/languages/french/localization/item_obsidianlongsword.png data/languages/french/localization/item_titaniumlongsword.png data/languages/french/localization/leaderboard_watch.png data/languages/french/localization/lobby_codexexplain.png data/languages/french/localization/lobby_janitorclean1.png data/languages/french/localization/lobby_janitorclean2.png data/languages/french/localization/options_cutscenes.png data/languages/french/localization/options_modchooseplay.png data/languages/french/localization/options_modchoosepublish.png data/languages/french/localization/options_moddeactivate.png data/languages/french/localization/options_moddefault.png data/languages/french/localization/options_moderror2.png data/languages/french/localization/options_moderror3.png data/languages/french/localization/options_modplay.png data/languages/french/localization/options_modpublished.png data/languages/french/localization/options_modpublishfail.png data/languages/french/localization/options_modpublish.png data/languages/french/localization/options_mods.png data/languages/french/localization/options_modwarning1.png data/languages/french/localization/options_modwarning2.png data/languages/french/localization/options_prebosseffect.png data/languages/french/localization/options_workshop.png data/languages/french/localization/selection/leaderboard_watch.png data/languages/french/localization/selection/options_cutscenes.png data/languages/french/localization/selection/options_modchooseplay.png data/languages/french/localization/selection/options_modchoosepublish.png data/languages/french/localization/selection/options_moddeactivate.png data/languages/french/localization/selection/options_moddefault.png data/languages/french/localization/selection/options_modplay.png data/languages/french/localization/selection/options_modpublish.png data/languages/french/localization/selection/options_mods.png data/languages/french/localization/selection/options_prebosseffect.png data/languages/french/localization/shop_transmog.png data/languages/french/localization.xml data/languages/french/subtitles.xml data/languages/german/localization/characterselect_bard1.png data/languages/german/localization/characterselect_coda2.png data/languages/german/localization/characterselect_story2.png data/languages/german/localization/enemybig_magicmonkey.png data/languages/german/localization/enemybig_mommy.png data/languages/german/localization/enemybig_necrodancer.png data/languages/german/localization/enemy_magicmonkey.png data/languages/german/localization/enemy_mommy.png data/languages/german/localization/enemy_necrodancer.png data/languages/german/localization/game_daily2.png data/languages/german/localization/game_dancepad1.png data/languages/german/localization/game_randomseed.png data/languages/german/localization/game_story2.png data/languages/german/localization/game_story3.png data/languages/german/localization/hint_1dmgstrangevision.png data/languages/german/localization/hint_1visiontrapsight.png data/languages/german/localization/hint_completecadence.png data/languages/german/localization/hint_completemelody.png data/languages/german/localization/hint_completemonk.png data/languages/german/localization/hint_completezone4cadence.png data/languages/german/localization/hint_conjuringfail.png data/languages/german/localization/hint_doubletime.png data/languages/german/localization/hint_freezeenemieskillfrozenenemiespiercing.png data/languages/german/localization/hint_goldenkeybuy.png data/languages/german/localization/hint_shrineofrhythm2.png data/languages/german/localization/hint_takeshealthincreasesdamage.png data/languages/german/localization/hint_transformnearbyitems.png data/languages/german/localization/item_frostcharm.png data/languages/german/localization/item_glassjaw.png data/languages/german/localization/item_leadboots.png data/languages/german/localization/item_luckycharm.png data/languages/german/localization/item_protectioncharm.png data/languages/german/localization/item_riskcharm.png data/languages/german/localization/item_strengthcharm.png data/languages/german/localization/leaderboard_allzones_speedrun.png data/languages/german/localization/leveleditor_generate.png data/languages/german/localization/leveleditor_generatewarning1.png data/languages/german/localization/leveleditor_levelgen.png data/languages/german/localization/lobby_bossselection1.png data/languages/german/localization/lobby_bosstraining3.png data/languages/german/localization/lobby_enterseed2.png data/languages/german/localization/lobby_itemhints3.png data/languages/german/localization/lobby_minibosstraining1.png data/languages/german/localization/lobby_minibosstraining3.png data/languages/german/localization/lobby_weaponmasterhint.png data/languages/german/localization/options_beatdetectionongoing.png data/languages/german/localization/options_currentresolution.png data/languages/german/localization/options_cutscenes.png data/languages/german/localization/options_deletewarning1.png data/languages/german/localization/options_modwarning2.png data/languages/german/localization/selection/leveleditor_generate.png data/languages/german/localization/selection/leveleditor_levelgen.png data/languages/german/localization/selection/lobby_leavelosediamonds.png data/languages/german/localization/selection/options_cutscenes.png data/languages/german/localization/training_magicmonkey1.png data/languages/german/localization.xml data/languages/german/subtitles.xml data/languages/italian/localization/characterselect_story2.png data/languages/italian/localization/game_story2.png data/languages/italian/localization/game_story3.png data/languages/italian/localization.xml data/languages/italian/subtitles.xml data/languages/japanese/localization/characterselect_story2.png data/languages/japanese/localization/game_story2.png data/languages/japanese/localization/game_story3.png data/languages/japanese/localization.xml data/languages/japanese/subtitles.xml data/languages/korean/localization/boss_kingcongasplash.png data/languages/korean/localization/characterbig_eli.png data/languages/korean/localization/characterbig_monk.png data/languages/korean/localization/character_eli.png data/languages/korean/localization/character_monk.png data/languages/korean/localization/characterselect_aria3.png data/languages/korean/localization/characterselect_cadence1.png data/languages/korean/localization/characterselect_coda2.png data/languages/korean/localization/characterselect_deathless1.png data/languages/korean/localization/characterselect_deathless.png data/languages/korean/localization/characterselect_dove2.png data/languages/korean/localization/characterselect_eli1.png data/languages/korean/localization/characterselect_hint1.png data/languages/korean/localization/characterselect_monk1.png data/languages/korean/localization/characterselect_story2.png data/languages/korean/localization/character_unlockmelody1.png data/languages/korean/localization/custommusic_1-2xspeed.png data/languages/korean/localization/custommusic_2xspeed.png data/languages/korean/localization/custommusic_kingconga.png data/languages/korean/localization/custommusic_manualbeatslobby.png data/languages/korean/localization/custommusic_manualbeats.png data/languages/korean/localization/enemy_barrel.png data/languages/korean/localization/enemybig_apprenticeblademaster.png data/languages/korean/localization/enemybig_barrel.png data/languages/korean/localization/enemybig_bishop.png data/languages/korean/localization/enemybig_blackarmoredskeleton.png data/languages/korean/localization/enemybig_blackbat.png data/languages/korean/localization/enemybig_blacklich.png data/languages/korean/localization/enemybig_blacksarcophagus.png data/languages/korean/localization/enemybig_blackskeletonknight.png data/languages/korean/localization/enemybig_blackskeletonmage.png data/languages/korean/localization/enemybig_blackskeleton.png data/languages/korean/localization/enemybig_bluebanshee.png data/languages/korean/localization/enemybig_bluebat.png data/languages/korean/localization/enemybig_bluedragon.png data/languages/korean/localization/enemybig_bluemushroom.png data/languages/korean/localization/enemybig_blueslime.png data/languages/korean/localization/enemybig_bootsofpain.png data/languages/korean/localization/enemybig_browndirebat.png data/languages/korean/localization/enemybig_firebeetle.png data/languages/korean/localization/enemybig_firecauldronmimic.png data/languages/korean/localization/enemybig_goblinbomber.png data/languages/korean/localization/enemybig_grayshovemonster.png data/languages/korean/localization/enemybig_greenbanshee.png data/languages/korean/localization/enemybig_greenbat.png data/languages/korean/localization/enemybig_greendragon.png data/languages/korean/localization/enemybig_greenmonkey.png data/languages/korean/localization/enemybig_greenslime.png data/languages/korean/localization/enemybig_icebeetle.png data/languages/korean/localization/enemybig_icecauldronmimic.png data/languages/korean/localization/enemybig_kingconga.png data/languages/korean/localization/enemybig_leprechaun.png data/languages/korean/localization/enemybig_missedbeat.png data/languages/korean/localization/enemybig_mommy.png data/languages/korean/localization/enemybig_monstrousshopkeeper.png data/languages/korean/localization/enemybig_neonwarlock.png data/languages/korean/localization/enemybig_ogre.png data/languages/korean/localization/enemybig_redbat.png data/languages/korean/localization/enemybig_redbishop.png data/languages/korean/localization/enemybig_reddragon.png data/languages/korean/localization/enemybig_redking.png data/languages/korean/localization/enemybig_redknight.png data/languages/korean/localization/enemybig_redlich.png data/languages/korean/localization/enemybig_redpawn.png data/languages/korean/localization/enemybig_redqueen.png data/languages/korean/localization/enemybig_redrook.png data/languages/korean/localization/enemybig_shopkeeperghost.png data/languages/korean/localization/enemybig_shopkeeper.png data/languages/korean/localization/enemybig_shovemonster.png data/languages/korean/localization/enemybig_shove.png data/languages/korean/localization/enemybig_shrineofnoreturn.png data/languages/korean/localization/enemybig_shrineofpace.png data/languages/korean/localization/enemybig_shrineofrisk.png data/languages/korean/localization/enemybig_spider.png data/languages/korean/localization/enemybig_spiketrap.png data/languages/korean/localization/enemybig_tarmonster.png data/languages/korean/localization/enemybig_tentacle.png data/languages/korean/localization/enemybig_warlock.png data/languages/korean/localization/enemybig_whitearmadillo.png data/languages/korean/localization/enemybig_whitearmoredskeleton.png data/languages/korean/localization/enemybig_whitechestmimic.png data/languages/korean/localization/enemybig_whitemonkey.png data/languages/korean/localization/enemybig_whiteskeletonknight.png data/languages/korean/localization/enemybig_whiteskeletonmage.png data/languages/korean/localization/enemybig_whiteskeleton.png data/languages/korean/localization/enemybig_yellowarmadillo.png data/languages/korean/localization/enemybig_yellowarmoredskeleton.png data/languages/korean/localization/enemybig_yellowdirebat.png data/languages/korean/localization/enemybig_yellowsarcophagus.png data/languages/korean/localization/enemybig_yellowskeletonknight.png data/languages/korean/localization/enemybig_yellowskeletonmage.png data/languages/korean/localization/enemybig_yellowskeleton.png data/languages/korean/localization/enemy_blackarmoredskeleton.png data/languages/korean/localization/enemy_blackbat.png data/languages/korean/localization/enemy_blacklich.png data/languages/korean/localization/enemy_blacksarcophagus.png data/languages/korean/localization/enemy_blackskeletonknight.png data/languages/korean/localization/enemy_blackskeletonmage.png data/languages/korean/localization/enemy_blackskeleton.png data/languages/korean/localization/enemy_bluebanshee.png data/languages/korean/localization/enemy_bluebat.png data/languages/korean/localization/enemy_bluedragon.png data/languages/korean/localization/enemy_bluemushroom.png data/languages/korean/localization/enemy_blueslime.png data/languages/korean/localization/enemy_browndirebat.png data/languages/korean/localization/enemy_firebeetle.png data/languages/korean/localization/enemy_firecauldronmimic.png data/languages/korean/localization/enemy_grayshovemonster.png data/languages/korean/localization/enemy_greenbanshee.png data/languages/korean/localization/enemy_greenbat.png data/languages/korean/localization/enemy_greendragon.png data/languages/korean/localization/enemy_greenmonkey.png data/languages/korean/localization/enemy_greenslime.png data/languages/korean/localization/enemy_icecauldronmimic.png data/languages/korean/localization/enemy_kingconga.png data/languages/korean/localization/enemy_leprechaun.png data/languages/korean/localization/enemy_missedbeat.png data/languages/korean/localization/enemy_monstrousshopkeeper.png data/languages/korean/localization/enemy_ogre.png data/languages/korean/localization/enemy_oozegolem.png data/languages/korean/localization/enemy_redbat.png data/languages/korean/localization/enemy_redbishop.png data/languages/korean/localization/enemy_reddragon.png data/languages/korean/localization/enemy_redking.png data/languages/korean/localization/enemy_redknight.png data/languages/korean/localization/enemy_redlich.png data/languages/korean/localization/enemy_redpawn.png data/languages/korean/localization/enemy_redqueen.png data/languages/korean/localization/enemy_redrook.png data/languages/korean/localization/enemy_shovemonster.png data/languages/korean/localization/enemy_shove.png data/languages/korean/localization/enemy_shrineofnoreturn.png data/languages/korean/localization/enemy_shrineofpace.png data/languages/korean/localization/enemy_shrineofrisk.png data/languages/korean/localization/enemy_tarmonster.png data/languages/korean/localization/enemy_whitearmadillo.png data/languages/korean/localization/enemy_whitearmoredskeleton.png data/languages/korean/localization/enemy_whitechestmimic.png data/languages/korean/localization/enemy_whitemonkey.png data/languages/korean/localization/enemy_whiteskeletonknight.png data/languages/korean/localization/enemy_whiteskeletonmage.png data/languages/korean/localization/enemy_whiteskeleton.png data/languages/korean/localization/enemy_yellowarmadillo.png data/languages/korean/localization/enemy_yellowarmoredskeleton.png data/languages/korean/localization/enemy_yellowdirebat.png data/languages/korean/localization/enemy_yellowsarcophagus.png data/languages/korean/localization/enemy_yellowskeletonknight.png data/languages/korean/localization/enemy_yellowskeletonmage.png data/languages/korean/localization/enemy_yellowskeleton.png data/languages/korean/localization/game_coinmultiplierlost.png data/languages/korean/localization/game_death1.png data/languages/korean/localization/game_deathless1.png data/languages/korean/localization/game_loading.png data/languages/korean/localization/game_speedleaderboards.png data/languages/korean/localization/game_speedrun.png data/languages/korean/localization/game_story2.png data/languages/korean/localization/game_story3.png data/languages/korean/localization/hint_10killsheal.png data/languages/korean/localization/hint_1dmgkilldash.png data/languages/korean/localization/hint_1dmgmoreenemies.png data/languages/korean/localization/hint_1dmgstrangevision.png data/languages/korean/localization/hint_1heartfewerenemies.png data/languages/korean/localization/hint_1visiontrapsight.png data/languages/korean/localization/hint_2defenseheavy.png data/languages/korean/localization/hint_2dmgatlowhealth.png data/languages/korean/localization/hint_bombimmunity3bombs.png data/languages/korean/localization/hint_brokerreject.png data/languages/korean/localization/hint_chancelose.png data/languages/korean/localization/hint_cheapershops.png data/languages/korean/localization/hint_completebomblore.png data/languages/korean/localization/hint_completecadence.png data/languages/korean/localization/hint_completedragonlore.png data/languages/korean/localization/hint_completemonk.png data/languages/korean/localization/hint_completetraplore.png data/languages/korean/localization/hint_completezone4cadence.png data/languages/korean/localization/hint_conicalblastneedsreloadingpiercing.png data/languages/korean/localization/hint_damageenemies.png data/languages/korean/localization/hint_diganythingbuttakedamage.png data/languages/korean/localization/hint_dodamageasyouwalk.png data/languages/korean/localization/hint_gold.png data/languages/korean/localization/hint_helpswithsometerrain.png data/languages/korean/localization/hint_helpswithtrapsandice.png data/languages/korean/localization/hint_horizontalfireblast2.png data/languages/korean/localization/hint_horizontalfireblast.png data/languages/korean/localization/hint_immune.png data/languages/korean/localization/hint_longjumpattack.png data/languages/korean/localization/hint_longjump.png data/languages/korean/localization/hint_moveandattack.png data/languages/korean/localization/hint_oldweaponholstered.png data/languages/korean/localization/hint_opencage.png data/languages/korean/localization/hint_opencagewithglasslock.png data/languages/korean/localization/hint_opencagewithgoldenlock.png data/languages/korean/localization/hint_rewardsovereatingonce.png data/languages/korean/localization/hint_shoppingspree.png data/languages/korean/localization/hint_shrineofblood1.png data/languages/korean/localization/hint_shrineofchance1.png data/languages/korean/localization/hint_shrineofdarkness1.png data/languages/korean/localization/hint_shrineofglass1.png data/languages/korean/localization/hint_shrineofnoreturn1.png data/languages/korean/localization/hint_shrineofnoreturn2.png data/languages/korean/localization/hint_shrineofpace1.png data/languages/korean/localization/hint_shrineofpace2.png data/languages/korean/localization/hint_shrineofpeace1.png data/languages/korean/localization/hint_shrineofphasing1.png data/languages/korean/localization/hint_shrineofrhythm1.png data/languages/korean/localization/hint_shrineofrhythm2.png data/languages/korean/localization/hint_shrineofrisk1.png data/languages/korean/localization/hint_shrineofsacrifice1.png data/languages/korean/localization/hint_shrineofsacrifice2.png data/languages/korean/localization/hint_shrineofspace1.png data/languages/korean/localization/hint_shrineofwar1.png data/languages/korean/localization/hint_sloth.png data/languages/korean/localization/hint_standstillincreasedamage.png data/languages/korean/localization/hint_tempotrapdown.png data/languages/korean/localization/hint_tempotrapup.png data/languages/korean/localization/hud_0-5heart.png data/languages/korean/localization/hud_1-5hearts.png data/languages/korean/localization/hud_1heart.png data/languages/korean/localization/hud_1kill.png data/languages/korean/localization/hud_kills.png data/languages/korean/localization/item_10diamonds.png data/languages/korean/localization/item_15diamonds.png data/languages/korean/localization/item_20diamonds.png data/languages/korean/localization/item_2diamonds.png data/languages/korean/localization/item_3bombs.png data/languages/korean/localization/item_3diamonds.png data/languages/korean/localization/item_4diamonds.png data/languages/korean/localization/item_5diamonds.png data/languages/korean/localization/item_additionalblackchest.png data/languages/korean/localization/item_additionalredchest.png data/languages/korean/localization/item_blasthelm.png data/languages/korean/localization/item_bloodbroadsword.png data/languages/korean/localization/item_bloodcrossbow.png data/languages/korean/localization/item_bloodlongsword.png data/languages/korean/localization/item_bootsofleaping.png data/languages/korean/localization/item_bootsoflunging.png data/languages/korean/localization/item_broadsword.png data/languages/korean/localization/item_cat.png data/languages/korean/localization/item_crossbow.png data/languages/korean/localization/item_daggeroffrost.png data/languages/korean/localization/item_earthquakescroll.png data/languages/korean/localization/item_enchantweaponscroll.png data/languages/korean/localization/item_explorersboots.png data/languages/korean/localization/item_fearscroll.png data/languages/korean/localization/item_fireballscroll.png data/languages/korean/localization/item_freezescroll.png data/languages/korean/localization/item_gigantismscroll.png data/languages/korean/localization/item_glassbroadsword.png data/languages/korean/localization/item_glasscrossbow.png data/languages/korean/localization/item_glasslongsword.png data/languages/korean/localization/item_goldenbroadsword.png data/languages/korean/localization/item_goldencrossbow.png data/languages/korean/localization/item_goldenlongsword.png data/languages/korean/localization/item_heavyplate.png data/languages/korean/localization/item_karategi.png data/languages/korean/localization/item_leadboots.png data/languages/korean/localization/item_longsword.png data/languages/korean/localization/item_obsidianbroadsword.png data/languages/korean/localization/item_obsidiancrossbow.png data/languages/korean/localization/item_obsidianlongsword.png data/languages/korean/localization/item_richesscroll.png data/languages/korean/localization/item_rifle.png data/languages/korean/localization/item_scrollofneed.png data/languages/korean/localization/item_shieldscroll.png data/languages/korean/localization/item_titaniumbroadsword.png data/languages/korean/localization/item_titaniumcrossbow.png data/languages/korean/localization/item_titaniumlongsword.png data/languages/korean/localization/item_transmutescroll.png data/languages/korean/localization/item_wingedboots.png data/languages/korean/localization/leaderboard_allzones_speedrun.png data/languages/korean/localization/leaderboard_allzones_speedrun_seeded.png data/languages/korean/localization/leaderboard_deathless.png data/languages/korean/localization/leaderboard_loading.png data/languages/korean/localization/leveleditor_catacombwall.png data/languages/korean/localization/leveleditor_headgear.png data/languages/korean/localization/leveleditor_kingconga.png data/languages/korean/localization/leveleditor_ooze.png data/languages/korean/localization/leveleditor_placecontainer.png data/languages/korean/localization/leveleditor_placeshrine.png data/languages/korean/localization/leveleditor_shrineblood.png data/languages/korean/localization/leveleditor_shrinechance.png data/languages/korean/localization/leveleditor_shrinedarkness.png data/languages/korean/localization/leveleditor_shrineglass.png data/languages/korean/localization/leveleditor_shrinenoreturn.png data/languages/korean/localization/leveleditor_shrinepace.png data/languages/korean/localization/leveleditor_shrinepeace.png data/languages/korean/localization/leveleditor_shrinephasing.png data/languages/korean/localization/leveleditor_shrinerhythm.png data/languages/korean/localization/leveleditor_shrinerisk.png data/languages/korean/localization/leveleditor_shrinesacrifice.png data/languages/korean/localization/leveleditor_shrinespace.png data/languages/korean/localization/leveleditor_shrinewar.png data/languages/korean/localization/leveleditor_spiketrap.png data/languages/korean/localization/leveleditor_travelrune.png data/languages/korean/localization/leveleditor_zone3cold.png data/languages/korean/localization/leveleditor_zone3hot.png data/languages/korean/localization/lobby_bomblore.png data/languages/korean/localization/lobby_diamonddealerexplain1.png data/languages/korean/localization/lobby_diamonddealerexplain2.png data/languages/korean/localization/lobby_dragonlore.png data/languages/korean/localization/lobby_howtogetaway.png data/languages/korean/localization/lobby_janitorexplain1.png data/languages/korean/localization/lobby_janitorexplain2.png data/languages/korean/localization/lobby_traplore.png data/languages/korean/localization/lobby_unspent1.png data/languages/korean/localization/lobby_unspentdiamonds1.png data/languages/korean/localization/lobby_weaponblood.png data/languages/korean/localization/lobby_withmurder.png data/languages/korean/localization/options_beatdetectionongoing.png data/languages/korean/localization/options_cutscenes.png data/languages/korean/localization/options_enemyhearts.png data/languages/korean/localization/options_latencybeat.png data/languages/korean/localization/options_leaderboardsdeathless.png data/languages/korean/localization/options_leaderboardsspeedseeded.png data/languages/korean/localization/selection/character_eli.png data/languages/korean/localization/selection/character_monk.png data/languages/korean/localization/selection/custommusic_1-2xspeed.png data/languages/korean/localization/selection/custommusic_2xspeed.png data/languages/korean/localization/selection/custommusic_kingconga.png data/languages/korean/localization/selection/custommusic_manualbeatslobby.png data/languages/korean/localization/selection/custommusic_manualbeats.png data/languages/korean/localization/selection/game_speedleaderboards.png data/languages/korean/localization/selection/leveleditor_catacombwall.png data/languages/korean/localization/selection/leveleditor_headgear.png data/languages/korean/localization/selection/leveleditor_kingconga.png data/languages/korean/localization/selection/leveleditor_ooze.png data/languages/korean/localization/selection/leveleditor_placecontainer.png data/languages/korean/localization/selection/leveleditor_placeshrine.png data/languages/korean/localization/selection/leveleditor_shrineblood.png data/languages/korean/localization/selection/leveleditor_shrinechance.png data/languages/korean/localization/selection/leveleditor_shrinedarkness.png data/languages/korean/localization/selection/leveleditor_shrineglass.png data/languages/korean/localization/selection/leveleditor_shrinenoreturn.png data/languages/korean/localization/selection/leveleditor_shrinepace.png data/languages/korean/localization/selection/leveleditor_shrinepeace.png data/languages/korean/localization/selection/leveleditor_shrinephasing.png data/languages/korean/localization/selection/leveleditor_shrinerhythm.png data/languages/korean/localization/selection/leveleditor_shrinerisk.png data/languages/korean/localization/selection/leveleditor_shrinesacrifice.png data/languages/korean/localization/selection/leveleditor_shrinespace.png data/languages/korean/localization/selection/leveleditor_shrinewar.png data/languages/korean/localization/selection/leveleditor_spiketrap.png data/languages/korean/localization/selection/leveleditor_travelrune.png data/languages/korean/localization/selection/leveleditor_zone3cold.png data/languages/korean/localization/selection/leveleditor_zone3hot.png data/languages/korean/localization/selection/options_cutscenes.png data/languages/korean/localization/selection/options_enemyhearts.png data/languages/korean/localization/selection/options_leaderboardsdeathless.png data/languages/korean/localization/selection/options_leaderboardsspeedseeded.png data/languages/korean/localization/shop_shriner.png data/languages/korean/localization/training_armoredskeleton1.png data/languages/korean/localization/training_blackarmoredskeleton1.png data/languages/korean/localization/training_blackbat.png data/languages/korean/localization/training_blacklich.png data/languages/korean/localization/training_blacksarcophagus1.png data/languages/korean/localization/training_blackskeletonknight1.png data/languages/korean/localization/training_blackskeletonmage1.png data/languages/korean/localization/training_blackskeleton.png data/languages/korean/localization/training_bluedragon.png data/languages/korean/localization/training_blueslime.png data/languages/korean/localization/training_cauldronmimic.png data/languages/korean/localization/training_direbat.png data/languages/korean/localization/training_firebeetle.png data/languages/korean/localization/training_graydirebat.png data/languages/korean/localization/training_grayshovemonster2.png data/languages/korean/localization/training_greenbanshee1.png data/languages/korean/localization/training_greenbat.png data/languages/korean/localization/training_greendragon.png data/languages/korean/localization/training_greenmonkey1.png data/languages/korean/localization/training_greenslime.png data/languages/korean/localization/training_neonwarlock.png data/languages/korean/localization/training_ogre.png data/languages/korean/localization/training_oozegolem.png data/languages/korean/localization/training_redbat.png data/languages/korean/localization/training_reddragon.png data/languages/korean/localization/training_redlich.png data/languages/korean/localization/training_shovemonster.png data/languages/korean/localization/training_tarmonster.png data/languages/korean/localization/training_whitemonkey.png data/languages/korean/localization/training_yellowarmadillo.png data/languages/korean/localization/training_yellowarmoredskeleton1.png data/languages/korean/localization/training_yellowsarcophagus1.png data/languages/korean/localization/training_yellowskeletonknight1.png data/languages/korean/localization/training_yellowskeletonmage1.png data/languages/korean/localization/training_yellowskeleton.png data/languages/korean/localization.xml data/languages/korean/subtitles.xml data/languages/russian/localization/characterselect_story2.png data/languages/russian/localization/game_story2.png data/languages/russian/localization/game_story3.png data/languages/russian/localization.xml data/languages/russian/subtitles.xml data/languages/spanish/localization/characterselect_story2.png data/languages/spanish/localization/game_story2.png data/languages/spanish/localization/game_story3.png data/languages/spanish/localization.xml data/languages/spanish/subtitles.xml data/music/boss_1_2.ogg data/music/boss_2_2.ogg data/music/boss_3_2.ogg data/music/boss_4_2.ogg data/music/credits_1.ogg data/music/credits_2.ogg data/music/credits_3.ogg data/music/credits_4.ogg data/music/lobby_2.ogg data/music/zone1_1_2.ogg data/music/zone1_2_2.ogg data/music/zone1_3_2.ogg data/music/zone2_1_2.ogg data/music/zone2_2_2.ogg data/music/zone2_3_2.ogg data/music/zone3_1_2c.ogg data/music/zone3_1_2h.ogg data/music/zone3_2_2c.ogg data/music/zone3_2_2h.ogg data/music/zone3_3_2c.ogg data/music/zone3_3_2h.ogg data/music/zone4_1_2.ogg data/music/zone4_2_2.ogg data/music/zone4_3_2.ogg data/necrodancer.xml data/sounds.xml data/video/credits_1.ogv data/video/credits_2.ogv data/video/credits_3.ogv data/video/credits_4.ogv' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_FILES=' TROUBLESHOOTING.txt' USER_PERSISTENT_DIRECTORIES=' data/custom_music dungeons downloaded_dungeons downloaded_mods mods replays' USER_PERSISTENT_FILES=' data/played.dat data/save_data.xml' APP_MAIN_EXE='NecroDancer64/NecroDancer.x64' APP_MAIN_ICON='NecroDancer.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA_COMMON PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.1 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_COMMON' PKG_DATA_COMMON_ID="${PKG_DATA_ID}-common" PKG_DATA_COMMON_DESCRIPTION="$PKG_DATA_DESCRIPTION - common files between base game and expansion" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link libnecrolevel.so to the hard-coded path where the engine expects to find it mkdir --parents "$(package_path 'PKG_BIN')$(path_game_data)/NecroDancer64/lib" ln --symbolic \ "$(path_libraries)/libnecrolevel.so" \ "$(package_path 'PKG_BIN')$(path_game_data)/NecroDancer64/lib/libnecrolevel.so" # Write launchers ## Force the use of system-provided SDL, ## and prevent a game crash when using the wayland backend of SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Force the use of the system SDL library export SDL_DYNAMIC_API="'"$(path_libraries_system)"'/libSDL2-2.0.so.0" # Prevent a game crash when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd NecroDancer64 ./NecroDancer.x64 "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-cryptark.sh0000750000000000000000000000622014471751340014012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Cryptark # send your bug reports to bugs@dotslashplay.it ### script_version=20230207.1 GAME_ID='cryptark' GAME_NAME='Cryptark' ARCHIVE_BASE_1='cryptark_en_1_23_22933.sh' ARCHIVE_BASE_1_MD5='7fbca12cab4fae1a36a365fdf004a678' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='700000' ARCHIVE_BASE_1_VERSION='1.23-gog22933' ARCHIVE_BASE_1_URL='https://www.gog.com/game/cryptark' ARCHIVE_BASE_0='cryptark_en_1_2_15203.sh' ARCHIVE_BASE_0_MD5='53083f1fef847a30eb99914821c8649a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.2-gog15203' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' Content monoconfig monomachineconfig Cryptark.exe Cryptark.png gamecontrollerdb.txt BrashMonkeySpriterXNA.dll CommandConsoleSharedTypes.dll FNA.dll FNA.dll.config Lidgren.Network.dll MSCommon.dll ProjectMercury.dll spine-csharp_xna.dll spine-xna.dll TexturePackingRuntime.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Cryptark.exe' APP_MAIN_ICON='Cryptark.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Web.dll System.Web.Extensions.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES=' libmojoshader.so libtheorafile.so' CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES=' libmojoshader.so libtheorafile.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS32 PKG_LIBS64' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-d-the-game.sh0000750000000000000000000000322114471751340014061 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # D: The Game # send your bug reports to bugs@dotslashplay.it ### script_version=20240621.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='d-the-game' GAME_NAME='D: The Game' ARCHIVE_BASE_0_NAME='gog_d_the_game_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='4a9f18efc065a80723130b73c5327095' ARCHIVE_BASE_0_SIZE='930000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/d_the_game' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' AVI BMP DRV EFC VESA.AVI SOUND.BAT DS.DAT LAURA.PIF *.EXE' GAME_IMAGE='DS.DAT' USER_PERSISTENT_DIRECTORIES=' data' APP_MAIN_EXE='LAURA.EXE' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dark-echo.sh0000750000000000000000000000464014471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Dark Echo # send your bug reports to 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-darksiders-2.sh0000750000000000000000000000631014471751340014445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Darksiders 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='darksiders-2' GAME_NAME='Darksiders Ⅱ' ARCHIVE_BASE_0_NAME='setup_darksiders2_deathinitive_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='5b39f665a8367f4ebe7c845b2ebbac81' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOROPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_darksiders2_deathinitive_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='ec9c85b15f23b79bd87668282b8101ed' ARCHIVE_BASE_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_0_PART2_NAME='setup_darksiders2_deathinitive_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='4eb87fd00792a0e35b0abd8b7bc124e0' ARCHIVE_BASE_0_PART2_EXTRACTOR='unar' ARCHIVE_BASE_0_PART3_NAME='setup_darksiders2_deathinitive_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='113f5a09d0289db3b1c5a5f85a82849e' ARCHIVE_BASE_0_PART3_EXTRACTOR='unar' ARCHIVE_BASE_0_PART4_NAME='setup_darksiders2_deathinitive_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='ca12e47f9cce195b09a66c7ff27121ab' ARCHIVE_BASE_0_PART4_EXTRACTOR='unar' ARCHIVE_BASE_0_SIZE='16000000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/darksiders_ii_deathinitive_edition' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' darksiders2.exe *.dll' CONTENT_GAME_DATA_MEDIA_FILES=' media/media.upak' CONTENT_GAME_DATA_SOUNDS_FILES=' media/sounds_streamed' CONTENT_GAME_DATA_FILES=' darksiders2.dsl media' CONTENT_DOC_DATA_FILES=' manual.pdf' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Darksiders2 users/${USER}/Documents/My Games/Darksiders2' APP_MAIN_EXE='darksiders2.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_MEDIA PKG_DATA_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MEDIA_ID="${PKG_DATA_ID}-media" PKG_DATA_MEDIA_DESCRIPTION="$PKG_DATA_DESCRIPTION - media" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MEDIA_ID" PKG_DATA_SOUNDS_ID="${PKG_DATA_ID}-sounds" PKG_DATA_SOUNDS_DESCRIPTION="$PKG_DATA_DESCRIPTION - sounds" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUNDS_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dead-cells-expansions.sh0000750000000000000000000000463214471751340016342 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.sh0000750000000000000000000000426114471751340014153 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-deadbolt.sh0000750000000000000000000000377714471751340013747 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Deadbolt # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='deadbolt' GAME_NAME='Deadbolt' ARCHIVE_BASE_0='gog_deadbolt_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='bc7831a069546d18f5e12a5ee3da4850' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deadbolt' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' deadbolt' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='deadbolt' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deadlight.sh0000750000000000000000000000547214471751340014110 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-deaths-door.sh0000750000000000000000000000332114471751340014363 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Death's Door # send your bug reports to bugs@dotslashplay.it ### script_version=20240426.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='deaths-door' GAME_NAME='Death’s Door' ARCHIVE_BASE_0_NAME='setup_deaths_door_1.1.5_(50052).exe' ARCHIVE_BASE_0_MD5='03fa124342c649739dc2212dba2e11da' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3863071' ARCHIVE_BASE_0_VERSION='1.1.5-gog50052' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deaths_door' UNITY3D_NAME='deathsdoor' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Acid Nerve/DeathsDoor' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-deep-sky-derelicts.sh0000750000000000000000000000377414471751340015663 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deep Sky Derelicts # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='deep-sky-derelicts' GAME_NAME='Deep Sky Derelicts' ARCHIVE_BASE_0_NAME='deep_sky_derelicts_1_5_3_37791.sh' ARCHIVE_BASE_0_MD5='a55656f3033c2d339d0cbaeba7503270' ARCHIVE_BASE_0_SIZE='1131190' ARCHIVE_BASE_0_VERSION='1.5.3-gog37791' ARCHIVE_BASE_0_URL='https://www.gog.com/game/deep_sky_derelicts' UNITY3D_NAME='Deep Sky Derelicts' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' LICENSE README.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-deltarune-chapter-1.sh0000750000000000000000000000364414471751340015727 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Deltarune - Chapter 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240704.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='deltarune-chapter-1' GAME_NAME='Deltarune - Chapter 1' ARCHIVE_BASE_0_NAME='SURVEY_PROGRAM_WINDOWS_ENGLISH.exe' ARCHIVE_BASE_0_MD5='2f92f4ad09d41287b36650aaf1e5359e' ARCHIVE_BASE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_0_VERSION='1.0-deltarune' ARCHIVE_BASE_0_SIZE='95000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' deltarune.exe' CONTENT_GAME_DATA_FILES=' mus lang data.win *.dat *.ogg' CONTENT_DOC_DATA_FILES=' license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/DELTARUNE' APP_MAIN_EXE='deltarune.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-detention.sh0000750000000000000000000000426114471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Detention # send your bug reports to bugs@dotslashplay.it ### script_version=20241112.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='detention' GAME_NAME='Detention' ARCHIVE_BASE_0_NAME='Detention-linux(7821293f).zip' ARCHIVE_BASE_0_MD5='44f4a6847260f6ef460b4e44239e1859' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='7821293f-1' ARCHIVE_BASE_0_URL='https://shop.redcandlegames.com/games/detention' UNITY3D_NAME='Detention' CONTENT_PATH_DEFAULT='Detention' ## The game binary uses a non-standard name CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" ## FIXME: The list of Unity3D plugins to include should be set using UNITY3D_PLUGINS CONTENT_GAME1_BIN_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: The list of dependencies should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk-x11-2.0.so.0 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dex.sh0000750000000000000000000000442314471751340012736 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # Dex # send your bug reports to bugs@dotslashplay.it ### script_version=20231016.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='dex-game' GAME_NAME='Dex' ARCHIVE_BASE_1_NAME='dex_en_6_0_0_0_build_5553_17130.sh' ARCHIVE_BASE_1_MD5='3d6f8797fab72dcb867c92bf5a84b4dd' ARCHIVE_BASE_1_SIZE='6300000' ARCHIVE_BASE_1_VERSION='6.0.0.0.5553-gog17130' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dex' ARCHIVE_BASE_0_NAME='gog_dex_2.3.0.4.sh' ARCHIVE_BASE_0_MD5='199a1acc59879124e8e1c532909fd879' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='5.4.0.0-gog2.3.0.4' UNITY3D_NAME='Dex' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Controller_readme.pdf' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dicey-dungeons.sh0000750000000000000000000000526114471751340015074 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 berru # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dicey Dungeons # send your bug reports to bugs@dotslashplay.it ### script_version=20250319.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dicey-dungeons' GAME_NAME='Dicey Dungeons' ARCHIVE_BASE_1_NAME='dicey-dungeons-linux64.zip' ARCHIVE_BASE_1_MD5='7561697f602e3a0af054569e3a8114b3' ARCHIVE_BASE_1_SIZE='110000' ARCHIVE_BASE_1_VERSION='1.11-itch.2021.03.18' ARCHIVE_BASE_1_URL='https://terrycavanagh.itch.io/dicey-dungeons' ARCHIVE_BASE_0_NAME='dicey-dungeons-linux64.zip' ARCHIVE_BASE_0_MD5='14879aa94aef2291d6aec0c4c9e760c5' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='1.10-itch.2020.11.05' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' diceydungeons lime.ndll' CONTENT_GAME_DATA_FILES=' data manifest mods soundstuff' APP_MAIN_EXE='diceydungeons' APP_MAIN_ICON='data/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Build 512×512 icon from the 1024×1024 provided one 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)" # Build 512×512 icon from the 1024×1024 provided one icon_source="$APP_MAIN_ICON" icon_destination="${APP_MAIN_ICON%.png}_512.png" convert "$icon_source" -resize 512 "$icon_destination" ) # Include game data ## Build 512×512 icon from the 1024×1024 provided one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST='APP_MAIN_ICON APP_MAIN_ICON_512' 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-dins-curse.sh0000750000000000000000000000405714471751340014235 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Din's Curse # send your bug reports to bugs@dotslashplay.it ### script_version=20230620.2 GAME_ID='dins-curse' GAME_NAME='Dinʼs Curse' ARCHIVE_BASE_0='gog_din_s_curse_2.0.0.6.sh' ARCHIVE_BASE_0_MD5='abead770d1fe9a2c7adb6d250318b698' ARCHIVE_BASE_0_SIZE='170000' ARCHIVE_BASE_0_VERSION='1.034-gog2.0.0.6' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dins_curse' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' DinsCurse' CONTENT_GAME_DATA_FILES=' DCIcon.png Assets User' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='DinsCurse' APP_MAIN_ICON='DCIcon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-disney-classics.sh0000750000000000000000000000474314471751340015260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Disney 1994 games: # - Aladdin # - The Jungle Book # - The Lion King # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_ALADDIN='aladdin' GAME_NAME_ALADDIN='Aladdin' GAME_ID_JUNGLE='the-jungle-book' GAME_NAME_JUNGLE='The Jungle Book' GAME_ID_LION='the-lion-king' GAME_NAME_LION='The Lion King' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_ALADDIN_0_NAME='gog_disney_s_aladdin_2.0.0.2.sh' ARCHIVE_BASE_ALADDIN_0_MD5='9dd6d84c2276809c5630320335e3415b' ARCHIVE_BASE_ALADDIN_0_SIZE='18000' ARCHIVE_BASE_ALADDIN_0_VERSION='1.0-gog2.0.0.2' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_JUNGLE_0_NAME='gog_disney_s_the_jungle_book_2.0.0.2.sh' ARCHIVE_BASE_JUNGLE_0_MD5='bcb57f4ff5cb1662ba3d4a9e34f263ad' ARCHIVE_BASE_JUNGLE_0_SIZE='15000' ARCHIVE_BASE_JUNGLE_0_VERSION='1.0-gog2.0.0.2' ## This installer is no longer sold by gog.com. ARCHIVE_BASE_LION_0_NAME='gog_the_lion_king_2.0.0.2.sh' ARCHIVE_BASE_LION_0_MD5='3b4f1118785e1f1cc769ae41379b7940' ARCHIVE_BASE_LION_0_SIZE='16000' ARCHIVE_BASE_LION_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/data' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' Manual.pdf' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_ALADDIN='ALADDIN.EXE' APP_MAIN_EXE_JUNGLE='JUNGLE.EXE' APP_MAIN_EXE_LION='LIONKING.EXE' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-divine-divinity.sh0000750000000000000000000001047414471751340015274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Mopi set -o errexit ### # Divine Divinity # send your bug reports to bugs@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='divine-divinity' GAME_NAME='Divine Divinity' ARCHIVE_BASE_HUMBLE_EN_0_NAME='DivineDivinity.zip' ARCHIVE_BASE_HUMBLE_EN_0_MD5='01bd76cb8e3054d7a32dda383b96fa73' ARCHIVE_BASE_HUMBLE_EN_0_SIZE='4066351' ARCHIVE_BASE_HUMBLE_EN_0_VERSION='1.0062a-humble1' ARCHIVE_BASE_HUMBLE_EN_0_URL='https://www.humblebundle.com/store/divine-divinity' ARCHIVE_BASE_GOG_EN_0_NAME='setup_divine_divinity_2.0.0.21.exe' ARCHIVE_BASE_GOG_EN_0_MD5='3798d48f04a7a8444fd9f4c32b75b41d' ARCHIVE_BASE_GOG_EN_0_TYPE='innosetup' ARCHIVE_BASE_GOG_EN_0_SIZE='2400000' ARCHIVE_BASE_GOG_EN_0_VERSION='1.0062a-gog2.0.0.21' ARCHIVE_BASE_GOG_EN_0_URL='https://www.gog.com/game/divine_divinity' ARCHIVE_BASE_GOG_FR_0_NAME='setup_divine_divinity_french_2.1.0.32.exe' ARCHIVE_BASE_GOG_FR_0_MD5='f755d69ad7d319fb70298844dcb3861a' ARCHIVE_BASE_GOG_FR_0_TYPE='innosetup' ARCHIVE_BASE_GOG_FR_0_SIZE='2400000' ARCHIVE_BASE_GOG_FR_0_VERSION='1.0062a-gog2.1.0.32' ARCHIVE_BASE_GOG_FR_0_URL='https://www.gog.com/game/divine_divinity' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' sound.cfg binkw32.dll divdialogsystem.dll drvmgt.dll fmod.dll nlseng.dll nlsfr.dll nlsger.dll osirisdll.dll slash1.dll slash2.dll slash3.dll slash4.dll unrar.dll configtool.exe div.exe secdrv.sys' CONTENT_GAME_L10N_FILES=' localizations dat/english dat/french config.lcl' CONTENT_GAME_DATA_FILES=' capture dat fonts global main sound static divinityevent.dat testimage.tga keylist.txt' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' dynamic global savegames' USER_PERSISTENT_FILES=' persist.dat config.div config.lcl keylist.txt dat/usernotes.bin static/imagelists/collide.* *.000 *.cfg' APP_MAIN_EXE='div.exe' APP_CONFIG_ID="${GAME_ID}_configuration" APP_CONFIG_NAME="${GAME_NAME} - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configtool.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA PKG_L10N' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_HUMBLE_EN="$PKG_L10N_ID_EN" PKG_L10N_ID_GOG_EN="$PKG_L10N_ID_EN" PKG_L10N_ID_GOG_FR="$PKG_L10N_ID_FR" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_HUMBLE_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_GOG_EN="$PKG_L10N_DESCRIPTION_EN" PKG_L10N_DESCRIPTION_GOG_FR="$PKG_L10N_DESCRIPTION_FR" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Check for the presence of extra dependency required by the Humble Bundle archive ## TODO: This could be avoided if REQUIREMENTS_LIST had support for contextual values. ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/558 case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_'*) REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} innoextract" requirements_check ;; esac # Extract game data archive_extraction_default case "$(current_archive)" in ('ARCHIVE_BASE_HUMBLE_EN_'*) ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Build/DivInstaller_EN.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm --recursive "${PLAYIT_WORKDIR}/gamedata/Build" ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-divinity-original-sin-1.sh0000750000000000000000000001563114471751340016547 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Divinity: Original Sin # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='divinity-original-sin-1' GAME_NAME='Divinity: Original Sin' ARCHIVE_BASE_0_NAME='divinity_original_sin_enhanced_edition_en_2_0_119_430_ch_17075.sh' ARCHIVE_BASE_0_MD5='89f526c1030d6d352b7df65361ab71e6' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='2.0.119.430-gog17075' ARCHIVE_BASE_0_URL='https://www.gog.com/game/divinity_original_sin_enhanced_edition' ## Optional icons pack ARCHIVE_OPTIONAL_ICONS_NAME='divinity-original-sin-1_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='8f01ea213b7b2c966ce3c065333f5406' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/divinity-original-sin-1/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256 512x512' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Check if libSDL2-2.0.so.1 can be dropped in favour of a system-provided build of libSDL2-2.0.so.0 CONTENT_LIBS_BIN_FILES=' libbink2.so libCoreLib.so libGameEngine.so libGLEW.so.1.10 libGLEW.so.1.10.0 libicudata.so.54 libicuuc.so.54 libjpeg.so.8 libjpeg.so.8.0.2 libOGLBinding.so libosiris.so.2 libRenderFramework.so libSDL2-2.0.so.1' ## The game binary is linked against libsteam_api.so, so this library can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_GAME_BIN_FILES=' EoCApp' CONTENT_GAME_L10N_EN_FILES=' Data/Localization/English.pak' CONTENT_GAME_L10N_FR_FILES=' Data/Localization/French.pak' CONTENT_GAME_DATA_VOICES_FILES=' Data/Localization/Voice.pak Data/Localization/Voice_1.pak Data/Localization/Voice_2.pak Data/Localization/Voice_3.pak Data/Localization/Voice_4.pak' CONTENT_GAME_DATA_FILES=' DigitalMap Data/Localization/Intro.pak Data/Localization/Reference.pak Data/Localization/Video.pak Data/DLC.pak Data/Effects.pak Data/Engine.pak Data/Game.pak Data/GamePlatform.pak Data/GLSLShaders.pak Data/Icons.pak Data/LowTex.pak Data/MainLSF.pak Data/Main.pak Data/Minimaps.pak Data/Sound_1.pak Data/SoundBanks.pak Data/Sound.pak Data/Textures_1.pak Data/Textures_2.pak Data/Textures.pak' FAKE_HOME_PERSISTENT_DIRECTORIES=' Larian Studios/Divinity Original Sin Enhanced Edition' APP_MAIN_EXE='EoCApp' APP_MAIN_ICON='../support/icon.png' ## The game crashes on launch when using the wayland backend of SDL, ## even when using the system-provided build of SDL. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when using the wayland backend of SDL if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_VOICES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_EN_DESCRIPTION="$PKG_L10N_DESCRIPTION - English" PKG_L10N_FR_DESCRIPTION="$PKG_L10N_DESCRIPTION - French" ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_L10N_EN_PROVIDES="${PKG_L10N_EN_PROVIDES:-} divinity-original-sin-l10n-en" PKG_L10N_FR_PROVIDES="${PKG_L10N_FR_PROVIDES:-} divinity-original-sin-l10n-fr" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} divinity-original-sin-data" PKG_DATA_VOICES_ID="${PKG_DATA_ID}-voices" PKG_DATA_VOICES_DESCRIPTION="$PKG_DATA_DESCRIPTION - voices" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_VOICES_ID" ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_DATA_VOICES_PROVIDES="${PKG_DATA_VOICES_PROVIDES:-} divinity-original-sin-data-voices" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libc++.so.1 libc++abi.so.1 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpng16.so.16 libpthread.so.0 librt.so.1 libz.so.1' ## Ensure easy upgrades from packages generated with pre-20240516.2 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} divinity-original-sin" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " # Ensure availability of libpcre.so.3 case "$(option_value 'package')" in ('arch') # libpcre.so.3 is not provided from Arch Linux repositories CONTENT_LIBS_BIN_FILES="$(content_files 'LIBS_BIN') libpcre.so.3 libpcre.so.3.13.1" ;; (*) dependencies_add_native_libraries 'PKG_BIN' 'libpcre.so.3' ;; esac # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Generate the configuration of localization packages config_source='Data/Localization/language.lsx' config_pattern='id="Value" value="[A-Za-z]*" type="20"' ### English localization config_destination_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/${config_source}" config_replacement_en='id="Value" value="English" type="20"' mkdir --parents "$(dirname "$config_destination_en")" sed --expression="s/${config_pattern}/${config_replacement_en}/" \ "$config_source" > "$config_destination_en" ### French localization config_destination_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/${config_source}" config_replacement_fr='id="Value" value="French" type="20"' mkdir --parents "$(dirname "$config_destination_fr")" sed --expression="s/${config_pattern}/${config_replacement_fr}/" \ "$config_source" > "$config_destination_fr" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA_VOICES' 'PKG_DATA' 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA_VOICES' 'PKG_DATA' 'PKG_L10N_FR' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dont-starve-expansions.sh0000750000000000000000000000760614471751340016617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Don't Starve expansions: # - Reign of Giants # - Shipwrecked # send your bug reports to bugs@dotslashplay.it ### script_version=20230901.2 GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' EXPANSION_ID_GIANTS='reign-of-giants' EXPANSION_NAME_GIANTS='Reign of Giants' EXPANSION_ID_SHIPWRECKED='shipwrecked' EXPANSION_NAME_SHIPWRECKED='Shipwrecked' # Archives ## Reign of Giants ARCHIVE_BASE_GIANTS_1='don_t_starve_reign_of_giants_554439_66995.sh' ARCHIVE_BASE_GIANTS_1_MD5='93cbeafae249e5a5af4f25afb91ca9a5' ARCHIVE_BASE_GIANTS_1_SIZE='630000' ARCHIVE_BASE_GIANTS_1_VERSION='554439-gog66995' ARCHIVE_BASE_GIANTS_1_URL='https://www.gog.com/game/dont_starve_reign_of_giants' ARCHIVE_BASE_GIANTS_0='don_t_starve_reign_of_giants_dlc_4294041_41439.sh' ARCHIVE_BASE_GIANTS_0_MD5='8949aed4ca7eddd8179ad768dd223681' ARCHIVE_BASE_GIANTS_0_SIZE='620000' ARCHIVE_BASE_GIANTS_0_VERSION='4294041-gog41439' ARCHIVE_BASE_GIANTS_MULTIARCH_1='don_t_starve_reign_of_giants_dlc_en_20171215_17628.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_1_MD5='47084ab8d5b36437e1bcb899c35bfe00' ARCHIVE_BASE_GIANTS_MULTIARCH_1_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_GIANTS_MULTIARCH_0='gog_don_t_starve_reign_of_giants_dlc_2.0.0.3.sh' ARCHIVE_BASE_GIANTS_MULTIARCH_0_MD5='bd505adc70ed478a92669bc8c1c3a127' ARCHIVE_BASE_GIANTS_MULTIARCH_0_SIZE='400000' ARCHIVE_BASE_GIANTS_MULTIARCH_0_VERSION='1.0-gog2.0.0.3' ## Shipwrecked ARCHIVE_BASE_SHIPWRECKED_1='don_t_starve_shipwrecked_554439_66995.sh' ARCHIVE_BASE_SHIPWRECKED_1_MD5='0f1fcee5e80a2c7a081a0d4b39043010' ARCHIVE_BASE_SHIPWRECKED_1_SIZE='860000' ARCHIVE_BASE_SHIPWRECKED_1_VERSION='554439-gog66995' ARCHIVE_BASE_SHIPWRECKED_1_URL='https://www.gog.com/game/dont_starve_shipwrecked' ARCHIVE_BASE_SHIPWRECKED_0='don_t_starve_shipwrecked_dlc_4294041_41439.sh' ARCHIVE_BASE_SHIPWRECKED_0_MD5='ff762f9b6a3ef71e6b802fe596196925' ARCHIVE_BASE_SHIPWRECKED_0_SIZE='830000' ARCHIVE_BASE_SHIPWRECKED_0_VERSION='4294041-gog41439' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1='don_t_starve_shipwrecked_dlc_en_20171215_17628.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_MD5='463825173d76f294337f0ae7043d7cf6' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_1_VERSION='246924-gog17628' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0='gog_don_t_starve_shipwrecked_dlc_2.0.0.2.sh' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_MD5='b1d4152639a272a959d36eacf8cb859e' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_SIZE='1200000' ARCHIVE_BASE_SHIPWRECKED_MULTIARCH_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_PATH_DEFAULT_MULTIARCH='data/noarch/game/dontstarve32' CONTENT_PATH_DEFAULT_GIANTS_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_PATH_DEFAULT_SHIPWRECKED_MULTIARCH="$CONTENT_PATH_DEFAULT_MULTIARCH" CONTENT_GAME_MAIN_FILES=' data manifest_dlc????.json' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dont-starve.sh0000750000000000000000000000576314471751340014434 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Hoël Bézier set -o errexit ### # Don't Starve # send your bug reports to bugs@dotslashplay.it ### script_version=20250313.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='dont-starve' GAME_NAME='Donʼt Starve' ARCHIVE_BASE_1_NAME='don_t_starve_554439_66995.sh' ARCHIVE_BASE_1_MD5='783646e973fdcc1fefad470da14f6855' ARCHIVE_BASE_1_SIZE='660000' ARCHIVE_BASE_1_VERSION='554439-gog66995' ARCHIVE_BASE_1_URL='https://www.gog.com/game/dont_starve' ARCHIVE_BASE_0_NAME='don_t_starve_4294041_41439.sh' ARCHIVE_BASE_0_MD5='05baa7fb659f79d4676a59bf3a64fc76' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='4294041-gog41439' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_RELATIVE_PATH='bin/lib64' CONTENT_LIBS_BIN_FILES=' libfmodevent64.so libfmodevent64-4.44.??.so libfmodex64.so libfmodex64-4.44.??.so' ## Using system-provided SDL, no mouse cursor is displayed and mouse inputs are ignored. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libSDL2.so libSDL2-2.0.so.0 libSDL2-2.0.so.0.0.0" CONTENT_GAME_BIN_FILES=' bin/dontstarve *.json' CONTENT_GAME_DATA_FILES=' data mods dontstarve.xpm' USER_PERSISTENT_DIRECTORIES=' mods' APP_MAIN_EXE='bin/dontstarve' APP_MAIN_ICON='dontstarve.xpm' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN=' # The shipped build of SDL2 has no support for the wayland backend 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 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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 ./dontstarve "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-dragon-age-origins.sh0000750000000000000000000002647614471751340015646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Dragon Age: Origins # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='dragon-age-origins' GAME_NAME='Dragon Age: Origins' ARCHIVE_BASE_2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205).exe' ARCHIVE_BASE_2_MD5='18e2e1f3fba4184ca15d6170d0a2ce51' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-1.bin' ARCHIVE_BASE_2_PART1_MD5='0735b7a919fe9b1a7e7d31cfea156ee5' ARCHIVE_BASE_2_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-2.bin' ARCHIVE_BASE_2_PART2_MD5='c7f59542be194793d3f1664b2b079d64' ARCHIVE_BASE_2_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-3.bin' ARCHIVE_BASE_2_PART3_MD5='87ef8829f56c5b985b7f3eb1893249de' ARCHIVE_BASE_2_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-4.bin' ARCHIVE_BASE_2_PART4_MD5='04f49cccc87d268fef2a7a4cafce27e8' ARCHIVE_BASE_2_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-5.bin' ARCHIVE_BASE_2_PART5_MD5='e44d862bd7221d065be30cd80de4d568' ARCHIVE_BASE_2_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.8_(78205)-6.bin' ARCHIVE_BASE_2_PART6_MD5='e97793771570a38174e202704297fe37' ARCHIVE_BASE_2_SIZE='38342773' ARCHIVE_BASE_2_VERSION='1.05-gog78205' ARCHIVE_BASE_2_URL='https://www.gog.com/game/dragon_age_origins' ARCHIVE_BASE_1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885).exe' ARCHIVE_BASE_1_MD5='fa14b944ca5ce04e462afe61e932f1b0' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-1.bin' ARCHIVE_BASE_1_PART1_MD5='910ff0ff7db44dd44c9b7fbc01439226' ARCHIVE_BASE_1_PART2_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-2.bin' ARCHIVE_BASE_1_PART2_MD5='317484fbbe084fdfac86af933a3827d3' ARCHIVE_BASE_1_PART3_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-3.bin' ARCHIVE_BASE_1_PART3_MD5='c7a236056afe1e24070e747760cab8d9' ARCHIVE_BASE_1_PART4_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-4.bin' ARCHIVE_BASE_1_PART4_MD5='0b08303e31e29708cc679d92b5b9c607' ARCHIVE_BASE_1_PART5_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-5.bin' ARCHIVE_BASE_1_PART5_MD5='dead382df73a84c02ee54a5b34050fcc' ARCHIVE_BASE_1_PART6_NAME='setup_dragon_age_origins_-_ultimate_edition_1.05_gog_0.5_(76885)-6.bin' ARCHIVE_BASE_1_PART6_MD5='9c94a20453a52d5284c89aa4507949e0' ARCHIVE_BASE_1_SIZE='38343327' ARCHIVE_BASE_1_VERSION='1.05-gog76885' ARCHIVE_BASE_0_NAME='setup_dragon_age_origins_ultimate_2.1.0.4.exe' ARCHIVE_BASE_0_MD5='2bfdbc94523ef4c21476f64ef8029479' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_0_PART1_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-1.bin' ARCHIVE_BASE_0_PART1_MD5='b6e68b1b3b11fdddea809a5f11368036' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_PART2_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-2.bin' ARCHIVE_BASE_0_PART2_MD5='71d813d6827941a90422a40088d64b78' ARCHIVE_BASE_0_PART3_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-3.bin' ARCHIVE_BASE_0_PART3_MD5='2ff9cc2bb41435429ee6277106a6a568' ARCHIVE_BASE_0_PART4_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-4.bin' ARCHIVE_BASE_0_PART4_MD5='a25c58b43a2e468fcf72446f57542115' ARCHIVE_BASE_0_PART5_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-5.bin' ARCHIVE_BASE_0_PART5_MD5='4ce5f6dceb01c9a1fc85c759c436b7b2' ARCHIVE_BASE_0_PART6_NAME='setup_dragon_age_origins_ultimate_2.1.0.4-6.bin' ARCHIVE_BASE_0_PART6_MD5='e2d13b236af30f210e0eb65aec5d137e' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='1.05-gog2.1.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='game' CONTENT_GAME_BIN_FILES=' bin_ship daoriginslauncher.exe' ## TODO: The add-ons could be moved to a dedicated package CONTENT_GAME_DATA_FILES=' addins data modules offers packages' CONTENT_GAME_ENVIRONMENT_FILES=' addins/*/*/env packages/*/env' CONTENT_GAME_MOVIES_FILES=' addins/*/core/data/movies modules/*/data/movies packages/*/data/movies' CONTENT_GAME_L10N_DE_FILES=' */de-de */*_de-de*' CONTENT_GAME_L10N_EN_FILES=' */en-us */*_en-us*' CONTENT_GAME_L10N_FR_FILES=' */fr-fr */*_fr-fr*' CONTENT_GAME_L10N_RU_FILES=' */ru-ru */*_ru-ru*' CONTENT_GAME_L10N_PL_FILES=' */pl-pl */*_pl-pl*' CONTENT_GAME_L10N_CS_FILES=' */cs-cz */*_cs-cz*' CONTENT_GAME_L10N_ES_FILES=' */es-es */*_es-es*' CONTENT_GAME_L10N_HU_FILES=' */hu-hu */*_hu-hu*' CONTENT_GAME_L10N_IT_FILES=' */it-it */*_it-it*' CONTENT_DOC_DATA_FILES=' manual.pdf' ## TODO: This should be split into the localization packages CONTENT_DOC0_DATA_RELATIVE_PATH='docs' CONTENT_DOC0_DATA_FILES=' *' CONTENT_SETTINGS_RELATIVE_PATH='__support/userdocs' CONTENT_SETTINGS_RELATIVE_PATH_0='../userdocs/bioware/dragon age/settings' CONTENT_SETTINGS_FILES=' addins.xml' CONTENT_PHYSX_RELATIVE_PATH='redist' CONTENT_PHYSX_FILES=' physx_9.09.0408_systemsoftware.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/BioWare/Dragon Age' APP_MAIN_EXE='bin_ship/daorigins.exe' ## Install shipped build of PhysX APP_MAIN_PRERUN=' # Install shipped build of PhysX if [ ! -e physx/installed ]; then $(wine_command) physx/physx_9.09.0408_systemsoftware.exe touch physx/installed fi ' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - Configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='bin_ship/daoriginsconfig.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_DE PKG_L10N_EN PKG_L10N_FR PKG_L10N_RU PKG_L10N_PL PKG_L10N_CS PKG_L10N_ES PKG_L10N_HU PKG_L10N_IT PKG_ENVIRONMENT PKG_MOVIES PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_ENVIRONMENT PKG_MOVIES PKG_DATA PKG_L10N' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENVIRONMENT_ID="${GAME_ID}-environment" PKG_ENVIRONMENT_DESCRIPTION='environment' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_DE_ID="${PKG_L10N_ID}-de" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_RU_ID="${PKG_L10N_ID}-ru" PKG_L10N_PL_ID="${PKG_L10N_ID}-pl" PKG_L10N_CS_ID="${PKG_L10N_ID}-cs" PKG_L10N_ES_ID="${PKG_L10N_ID}-es" PKG_L10N_HU_ID="${PKG_L10N_ID}-hu" PKG_L10N_IT_ID="${PKG_L10N_ID}-it" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DE_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_RU_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_PL_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_CS_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_ES_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_HU_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_IT_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DE_DESCRIPTION='German localization' PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_L10N_RU_DESCRIPTION='Russian localization' PKG_L10N_PL_DESCRIPTION='Polish localization' PKG_L10N_CS_DESCRIPTION='Czech localization' PKG_L10N_ES_DESCRIPTION='Spanish localization' PKG_L10N_HU_DESCRIPTION='Hungarian localization' PKG_L10N_IT_DESCRIPTION='Italian localization' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # innoextract --lowercase has no effect on the content of the .bin RAR archives if [ "$(archive_type "$(current_archive)_PART1")" = 'rar' ]; then tolower . fi ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion 'SETTINGS' 'PKG_DATA' "$(path_game_data)/settings" content_inclusion 'PHYSX' 'PKG_BIN' "$(path_game_data)/physx" content_inclusion_default # Write launchers ## Include the shipped settings ## This is required to unlock the included expansions ## TODO: This override could be mught lighter if a function ## wineprefix_init_actions_custom was provided by the library ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/548 wine_wineprefix_init_actions() { local game_id game_id=$(game_id) cat <<- EOF ## Link the game prefix into the WINE prefix ln --symbolic \ "\$PATH_PREFIX" \ "\${WINEPREFIX}/drive_c/${game_id}" EOF cat <<- 'EOF' ## Remove most links pointing outside of the WINE prefix rm "$WINEPREFIX/dosdevices/z:" find "$WINEPREFIX/drive_c/users/$(whoami)" -type l | while read -r directory; do rm "$directory" mkdir "$directory" done unset directory ## Set symbolic links to the legacy paths wineprefix_legacy_link 'AppData/Roaming' 'Application Data' wineprefix_legacy_link 'AppData/Local' 'Local Settings/Application Data' wineprefix_legacy_link 'Documents' 'My Documents' ## Include the shipped settings settings_path="${PATH_PERSISTENT}/wineprefix/users/${USER}/Documents/BioWare/Dragon Age/Settings" if [ ! -e "$settings_path" ]; then mkdir --parents "$(dirname "$settings_path")" cp --recursive "${PATH_GAME_DATA}/settings" "$settings_path" fi EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_de='allemande' lang_en='anglaise' lang_fr='française' lang_ru='russe' lang_pl='polonaise' lang_cs='tchèque' lang_es='espagnole' lang_hu='hongroise' lang_it='italienne' ;; ('en'|*) lang_string='%s version:' lang_de='German' lang_en='English' lang_fr='French' lang_ru='Russian' lang_pl='Polish' lang_cs='Czech' lang_es='Spanish' lang_hu='Hungarian' lang_it='Italian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_L10N_DE' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_L10N_RU' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_L10N_PL' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_cs" print_instructions 'PKG_BIN' 'PKG_L10N_CS' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_es" print_instructions 'PKG_BIN' 'PKG_L10N_ES' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_hu" print_instructions 'PKG_BIN' 'PKG_L10N_HU' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' printf "$lang_string" "$lang_it" print_instructions 'PKG_BIN' 'PKG_L10N_IT' 'PKG_DATA' 'PKG_ENVIRONMENT' 'PKG_MOVIES' # Clean up working_directory_cleanup exit 0 games/play-dream.sh0000750000000000000000000000402114471751340013240 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Dream # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='dream' GAME_NAME='Dream' ARCHIVE_BASE_0_NAME='setup_dream_1.12_(20822).exe' ARCHIVE_BASE_0_MD5='a4e75ba9d21e146fff1a9cfca2674657' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_dream_1.12_(20822)-1.bin' ARCHIVE_BASE_0_PART1_MD5='944eee69b9e0a90a0d03dd2e83c2644e' ARCHIVE_BASE_0_SIZE='3100000' ARCHIVE_BASE_0_VERSION='1.12-gog20822' ARCHIVE_BASE_0_URL='https://www.gog.com/game/dream' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries engine' CONTENT_GAME_DATA_FILES=' udkgame' USER_PERSISTENT_DIRECTORIES=' udkgame/config Saves' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='binaries/win32/dream.exe' ## The type must be set explicitly, or it will be wrongly identified as a Mono application. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dreaming-sarah.sh0000750000000000000000000000571314471751340015043 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=20240329.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='dreaming-sarah' GAME_NAME='Dreaming Sarah' ARCHIVE_BASE_32BIT_0_NAME='DreamingSarah-linux32_1.3.zip' ARCHIVE_BASE_32BIT_0_MD5='73682a545e979ad9a2b6123222ddb517' ARCHIVE_BASE_32BIT_0_SIZE='200000' ARCHIVE_BASE_32BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' ARCHIVE_BASE_64BIT_0_NAME='DreamingSarah-linux64_1.3.zip' ARCHIVE_BASE_64BIT_0_MD5='a68f3956eb09ea7b34caa20f6e89b60c' ARCHIVE_BASE_64BIT_0_SIZE='200000' ARCHIVE_BASE_64BIT_0_VERSION='1.3-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/dreaming-sarah' CONTENT_PATH_DEFAULT_32BIT='DreamingSarah-linux32' CONTENT_PATH_DEFAULT_64BIT='DreamingSarah-linux64' CONTENT_GAME_BIN_FILES=' nw nacl_helper*' CONTENT_LIBS_BIN_PATH_32BIT="${CONTENT_PATH_DEFAULT_32BIT}/lib" CONTENT_LIBS_BIN_PATH_64BIT="${CONTENT_PATH_DEFAULT_64BIT}/lib" CONTENT_LIBS_BIN_FILES=' libffmpeg.so libnode.so libnw.so' CONTENT_GAME_DATA_FILES=' locales *.bin *.dat *.nw *.pak' APP_MAIN_EXE='nw' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libcups.so.2 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgconf-2.so.4 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libnspr4.so libnss3.so libnssutil3.so libpango-1.0.so.0 libpangocairo-1.0.so.0 libpthread.so.0 librt.so.1 libsmime3.so libstdc++.so.6 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXdamage.so.1 libXext.so.6 libXfixes.so.3 libXi.so.6 libXrandr.so.2 libXrender.so.1 libXss.so.1 libXtst.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duet.sh0000750000000000000000000000574014471751340013122 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Duet # send your bug reports to bugs@dotslashplay.it ### script_version=20231111.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='duet' GAME_NAME='Duet' # This DRM-free build is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='Duet-Build1006023-Linux64.zip' ARCHIVE_BASE_0_MD5='b9c34c29da94c199ee75a5e71272a1eb' ARCHIVE_BASE_0_SIZE='210000' ARCHIVE_BASE_0_VERSION='1.0-humble1006023' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_FILES=' libsfml-audio.so.2.3 libsfml-graphics.so.2.3 libsfml-system.so.2.3 libsfml-window.so.2.3' ## The game binary is linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN_FILES="${CONTENT_LIBS_BIN_FILES:-} libsteam_api.so" CONTENT_LIBS0_BIN_PATH='steam-runtime/amd64/usr/lib/x86_64-linux-gnu' CONTENT_LIBS0_BIN_FILES=' libjpeg.so.8 libjpeg.so.8.0.2' CONTENT_GAME_BIN_FILES=' Duet' CONTENT_GAME_DATA_FILES=' Media' APP_MAIN_EXE='Duet' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libFLAC.so.8 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb-randr.so.0 libxcb.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='duet_icons.tar.xz' ARCHIVE_OPTIONAL_ICONS_0_MD5='57d79a524801768a742405a7a5310e08' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/duet' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-duke-nukem-3d.sh0000750000000000000000000000374214471751340014532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Duke Nukem 3D # send your bug reports to bugs@dotslashplay.it ### script_version=20230418.1 GAME_ID='duke-nukem-3d' GAME_NAME='Duke Nukem 3D' # This game installer is no longer available for sale from gog.com ARCHIVE_BASE_0='gog_duke_nukem_3d_atomic_edition_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='a51283d3bbc2db62b75c6c62824f5e46' ARCHIVE_BASE_0_SIZE='63000' ARCHIVE_BASE_0_VERSION='1.5-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.BAT *.CFG *.CON *.DAT *.DMO *.DOC *.EXE *.GIF *.GRP *.H *.HLP *.INI *.MAP *.PCK *.RTS *.TXT' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='DUKE3D.EXE' APP_MAIN_ICON='duke3d.ico' USER_PERSISTENT_FILES=' DUKE3D.GRP *.CFG *.SAV' # Enforce required audio setting APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Enforce required audio setting export DOSBOX_SBLASTER_IRQ=5' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dust-an-elysian-tail.sh0000750000000000000000000000652314471751340016125 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Dust: An Elysian Tail # send your bug reports to bugs@dotslashplay.it ### script_version=20230101.1 GAME_ID='dust-an-elysian-tail' GAME_NAME='Dust: An Elysian Tail' ARCHIVE_BASE_GOG_0='gog_dust_an_elysian_tail_2.0.0.1.sh' ARCHIVE_BASE_GOG_0_MD5='57299e2e4af0283e68a7aa5e8b390697' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='1500000' ARCHIVE_BASE_GOG_0_VERSION='1.04-gog2.0.0.1' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/dust_an_elysian_tail' ARCHIVE_BASE_HUMBLE_0='dustaet_05042016-bin' ARCHIVE_BASE_HUMBLE_0_MD5='6844c82f233b47417620be0bef8b140c' ARCHIVE_BASE_HUMBLE_0_TYPE='mojosetup' ARCHIVE_BASE_HUMBLE_0_SIZE='1500000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.04-humble160504' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/dust-an-elysian-tail' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_GAME_MAIN_FILES=' Content data de es fr it ja DustAET.exe Dust An Elysian Tail.bmp monoconfig FNA.dll FNA.dll.config MonoGame.Framework.Net.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_TYPE='mono' APP_MAIN_EXE='DustAET.exe' APP_MAIN_ICON='Dust An Elysian Tail.bmp' PACKAGES_LIST='PKG_MAIN' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libtheoradec.so.1 libvorbisfile.so.3' # Include shipped libraries that can not be replaced by system ones CONTENT_GAME_LIBS32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib" CONTENT_GAME_LIBS32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib" CONTENT_GAME_LIBS32_FILES=' libmojoshader.so libtheoraplay.so' CONTENT_GAME_LIBS64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib64" CONTENT_GAME_LIBS64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib64" CONTENT_GAME_LIBS64_FILES=' libmojoshader.so libtheoraplay.so' PACKAGES_LIST="$PACKAGES_LIST PKG_LIBS32 PKG_LIBS64" PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Disable language override mono_launcher_tweaks() { cat <<- 'EOF' ## Work around terminfo Mono bug, ## cf. https://github.com/mono/mono/issues/6752 export TERM="${TERM%-256color}" EOF } # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_MAIN' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_MAIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-dustforce.sh0000750000000000000000000000667714471751340014171 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Dustforce # send your bug reports to 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-earthlock.sh0000750000000000000000000000357314471751340014137 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Earthlock # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='earthlock' GAME_NAME='Earthlock' ARCHIVE_BASE_0_NAME='setup_earthlock_1.1.0_(35125).exe' ARCHIVE_BASE_0_MD5='922c46185118046df2931fbd9e9d88c0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_earthlock_1.1.0_(35125)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4bc76160d2a6f1c097069f54a5009396' ARCHIVE_BASE_0_VERSION='1.1.0-gog35125' ARCHIVE_BASE_0_SIZE='4200000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthlock' UNITY3D_NAME='earthlock' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Snowcastle Games/Earthlock Enhanced Edition' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-earthworm-jim-1.sh0000750000000000000000000000354114471751340015101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Earthworm Jim 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='earthworm-jim-1' GAME_NAME='Earthworm Jim' ARCHIVE_BASE_0_NAME='earthworm_jim_en_1_0_16595.sh' ARCHIVE_BASE_0_MD5='87b487f85654763347433dc0952b0118' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.0-gog16595' ARCHIVE_BASE_0_URL='https://www.gog.com/game/earthworm_jim_1_2' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *.cfg *.dat *.exe *.gog *.hlp *.ico *.id *.inst' CONTENT_DOC_MAIN_FILES=' readme.txt' GAME_IMAGE='ewj1.inst' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='ewj1.exe' APP_MAIN_OPTIONS='320x224' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to lowercase tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-edible-places.sh0000750000000000000000000000401414471751340014643 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Indifferent Wonder of an Edible Place # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='edible-places' GAME_NAME='The Indifferent Wonder of an Edible Place' ARCHIVE_BASE_0_NAME='Edible Places 01.6 (Linux).zip' ARCHIVE_BASE_0_MD5='88359c14fec2b94dd06ed4306ef1b681' ARCHIVE_BASE_0_SIZE='1265238' ARCHIVE_BASE_0_VERSION='01.6-itch' ARCHIVE_BASE_0_URL='https://studio-oleomingus.itch.io/the-indifferent-wonder-of-an-edible-place' UNITY3D_NAME='Edible' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Edible Places 01.6 (Linux)' CONTENT_DOC_DATA_FILES=' Readme.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-element4l.sh0000750000000000000000000000342614471751340014051 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.sh0000750000000000000000000000445414471751340014477 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-enter-the-gungeon.sh0000750000000000000000000000474614471751340015521 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Enter the Gungeon # send your bug reports to bugs@dotslashplay.it ### script_version=20231122.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='enter-the-gungeon' GAME_NAME='Enter the Gungeon' ARCHIVE_BASE_0_NAME='enter_the_gungeon_2_1_9_33951.sh' ARCHIVE_BASE_0_MD5='5d4c174aa3b9bb57faa19e44872794e5' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='2.1.9-gog33951' ARCHIVE_BASE_0_URL='https://www.gog.com/game/enter_the_gungeon' UNITY3D_NAME='EtG' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: Add an explicit list of plugins to include. CONTENT_GAME0_BIN32_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME0_BIN64_FILES=" ${UNITY3D_NAME}_Data/Plugins/x86_64" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Complete the dependencies list. ## cf. https://forge.dotslashplay.it/play.it/scripts/-/snippets/28 PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-epistory-typing-chronicles.sh0000750000000000000000000000661414471751340017477 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Epistory - Typing Chronicles # send your bug reports to bugs@dotslashplay.it ### script_version=20241020.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='epistory-typing-chronicles' GAME_NAME='Epistory - Typing Chronicles' ARCHIVE_BASE_1_NAME='epistory_typing_chronicles_en_1_4_0_21518.sh' ARCHIVE_BASE_1_MD5='bf54d1235b4b02be0a90eeccce64e9a5' ARCHIVE_BASE_1_SIZE='1300000' ARCHIVE_BASE_1_VERSION='1.4.0-gog21518' ARCHIVE_BASE_1_URL='https://www.gog.com/game/epistory_typing_chronicles' ARCHIVE_BASE_0_NAME='gog_epistory_typing_chronicles_2.2.0.3.sh' ARCHIVE_BASE_0_MD5='8db1f835a9189099e57c174ba2353f53' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.3.5-gog2.2.0.3' UNITY3D_NAME='Epistory' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Link ScreenSelector.so in the game data path as the game engine fails to find it otherwise file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" file_destination_32="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" file_destination_64="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" mkdir --parents \ "$(dirname "$file_destination_32")" \ "$(dirname "$file_destination_64")" ln --symbolic "$file_source" "$file_destination_32" ln --symbolic "$file_source" "$file_destination_64" # Write launchers ## Do not override the system locale, as it prevents the game from starting. launcher_unity3d_force_locale() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages ## Do not include a package for the 64-bit build, as running it seems to trigger a severe memory leak PACKAGES_LIST=' PKG_BIN32 PKG_DATA' packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-equaboreal-1221.sh0000750000000000000000000000405514471751340014662 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Equaboreal 12.21 # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='equaboreal-1221' GAME_NAME='Equaboreal 12.21' ARCHIVE_BASE_0_NAME='Equaboreal_LINUX_1.02.zip' ARCHIVE_BASE_0_MD5='4ca58bf305ef445e3e0b8b5eb64fb319' ARCHIVE_BASE_0_SIZE='695633' ARCHIVE_BASE_0_VERSION='1.02-itch' ARCHIVE_BASE_0_URL='https://girldebord.itch.io/1221' UNITY3D_NAME='Equaboreal_1.02' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Equaboreal_LINUX_1.02' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-escape-goat.sh0000750000000000000000000000654314471751340014353 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-eschalon-book-1.sh0000750000000000000000000000416214471751340015040 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Eschalon: Book 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230809.1 GAME_ID='eschalon-book-1' GAME_NAME='Eschalon: Book I' ARCHIVE_BASE_0='gog_eschalon_book_i_2.0.0.5.sh' ARCHIVE_BASE_0_MD5='36588478c59f0fdabf775415eeaf7c6a' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.06-gog2.0.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/eschalon_book_i' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Eschalon Book I' CONTENT_GAME_DATA_FILES=' data music sound gfx.pak' CONTENT_DOC_FILES=' license_full.txt' APP_MAIN_EXE='Eschalon Book I' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXxf86vm.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ether-one.sh0000750000000000000000000000345714471751340014052 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ether One # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ether-one' GAME_NAME='Ether One' ARCHIVE_BASE_0_NAME='setup_ether_one_redux_v01.06_(64bit)_(38324).exe' ARCHIVE_BASE_0_MD5='13f269e4f088c6a747f6848b678cdf46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.06-gog38324' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ether_one' UNREALENGINE4_NAME='etherone' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=IDICON_UE4GAME --language=1033' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evans-remains.sh0000750000000000000000000000572014471751340014727 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-everspace.sh0000750000000000000000000000501714471751340014133 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Everspace # send your bug reports to bugs@dotslashplay.it ### script_version=20230712.2 GAME_ID='everspace' GAME_NAME='Everspace' ARCHIVE_BASE_3='everspace_1_3_5_3655_32896.sh' ARCHIVE_BASE_3_MD5='55c9230b3805c54d13371f940860d4a9' ARCHIVE_BASE_3_SIZE='11000000' ARCHIVE_BASE_3_VERSION='1.3.5-gog32896' ARCHIVE_BASE_3_URL='https://www.gog.com/game/everspace' ARCHIVE_BASE_2='everspace_1_3_4_29339.sh' ARCHIVE_BASE_2_MD5='2010b839534fb5a265eea6116b9193ae' ARCHIVE_BASE_2_SIZE='11000000' ARCHIVE_BASE_2_VERSION='1.3.4-gog29339' ARCHIVE_BASE_1='everspace_1_3_3_25886.sh' ARCHIVE_BASE_1_MD5='df8f210059a515ef738f247bfcd61bb2' ARCHIVE_BASE_1_SIZE='11000000' ARCHIVE_BASE_1_VERSION='1.3.3-gog25886' ARCHIVE_BASE_0='everspace_en_1_3_2_3_22978.sh' ARCHIVE_BASE_0_MD5='4290b47c1396f140198f45a74bf53abf' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.3.2.3-gog22978' UNREALENGINE4_NAME='RSG' CONTENT_PATH_DEFAULT='data/noarch/game' APPLICATIONS_PREFIX_TYPE='none' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-everything.sh0000750000000000000000000000501314471751340014336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Everything # send your bug reports to bugs@dotslashplay.it ### script_version=20221210.1 GAME_ID='everything' GAME_NAME='Everything' UNITY3D_NAME='Everything' ARCHIVE_BASE_0='Everything_DRMfree_Linux_106.zip' ARCHIVE_BASE_0_MD5='f5e05e94702e74c23524227e6d148159' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.06-humble170503' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/everything' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-evoland-series.sh0000750000000000000000000001065214471751340015077 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Evoland series: # - Evoland 1 # - Evoland 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_EVOLAND1='evoland-1' GAME_NAME_EVOLAND1='Evoland' GAME_ID_EVOLAND2='evoland-2' GAME_NAME_EVOLAND2='Evoland 2, A Slight Case of Spacetime Continuum Disorder' ## Archives ### Evoland 1 ARCHIVE_BASE_EVOLAND1_GOG_0_NAME='setup_evoland_1.1.2490_(20677).exe' ARCHIVE_BASE_EVOLAND1_GOG_0_MD5='97978ef959d097876142ae2c6ce765c2' ARCHIVE_BASE_EVOLAND1_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND1_GOG_0_SIZE='120000' ARCHIVE_BASE_EVOLAND1_GOG_0_VERSION='1.1.2490-gog20677' ARCHIVE_BASE_EVOLAND1_GOG_0_URL='https://www.gog.com/game/evoland' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND1_HUMBLE_0_NAME='Evoland.exe' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_MD5='9585142f38d769d4ac9125f587d0c891' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_TYPE='nullsoft-installer' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_SIZE='110000' ARCHIVE_BASE_EVOLAND1_HUMBLE_0_VERSION='1.1.2490-humble1' ### Evoland 2 ARCHIVE_BASE_EVOLAND2_GOG_0_NAME='setup_evoland_2_1.0.9137_(20679).exe' ARCHIVE_BASE_EVOLAND2_GOG_0_MD5='a77db6e435460505bbc6beb1c4fcd5ed' ARCHIVE_BASE_EVOLAND2_GOG_0_TYPE='innosetup' ARCHIVE_BASE_EVOLAND2_GOG_0_SIZE='789305' ARCHIVE_BASE_EVOLAND2_GOG_0_VERSION='1.0.9137-gog20679' ARCHIVE_BASE_EVOLAND2_GOG_0_URL='https://www.gog.com/game/evoland_2' ## This DRM-free native Linux build is no longer available for sale from the Humble Store, ## they now only sell Steam keys for the Evoland "Legendary Edition" bundle. ARCHIVE_BASE_EVOLAND2_HUMBLE_0_NAME='Evoland2.zip' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_MD5='0e34269cb7db3a6c065311eea90e651a' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_SIZE='790000' ARCHIVE_BASE_EVOLAND2_HUMBLE_0_VERSION='1.0.9137-humble170116' CONTENT_PATH_DEFAULT_EVOLAND1='.' CONTENT_PATH_DEFAULT_EVOLAND2_GOG='.' CONTENT_PATH_DEFAULT_EVOLAND2_HUMBLE='Evoland2' CONTENT_GAME_BIN_FILES=' adobe air dinput8.dll evoland.exe evoland2.exe pad.exe gamepadconfig.txt' CONTENT_GAME_DATA_FILES=' icons meta-inf mimetype game.dat res.pak' WINE_PERSISTENT_DIRECTORIES_EVOLAND1=' users/${USER}/AppData/Roaming/com.shirogames.evoland' USER_PERSISTENT_DIRECTORIES_EVOLAND2=' save' APP_MAIN_EXE_EVOLAND1='evoland.exe' APP_MAIN_EXE_EVOLAND2='evoland2.exe' APP_MAIN_ICONS_LIST=' APP_MAIN_ICON_16 APP_MAIN_ICON_32 APP_MAIN_ICON_48 APP_MAIN_ICON_128' APP_MAIN_ICON_16='icons/evoicon16.png' APP_MAIN_ICON_32='icons/evoicon32.png' APP_MAIN_ICON_48='icons/evoicon48.png' APP_MAIN_ICON_128='icons/evoicon128.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated by pre-20201219.1 script. PKG_BIN_PROVIDES_EVOLAND1="${PKG_BIN_PROVIDES_EVOLAND1:-} evoland" PKG_DATA_ID_EVOLAND1="${GAME_ID_EVOLAND1}-data" PKG_DATA_ID_EVOLAND2="${GAME_ID_EVOLAND2}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated by pre-20201219.1 script. PKG_DATA_PROVIDES_EVOLAND1="${PKG_DATA_PROVIDES_EVOLAND1:-} evoland-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to lowercase case "$(current_archive)" in ('ARCHIVE_BASE_EVOLAND1_HUMBLE_'*|'ARCHIVE_BASE_EVOLAND2_HUMBLE_'*) tolower . ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-fallout-classics.sh0000750000000000000000000001723014471751340015426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 dany_wilde set -o errexit ### # Fallout classic games: # - Fallout 1 # - Fallout 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240422.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID_FALLOUT1='fallout-1' GAME_NAME_FALLOUT1='Fallout' GAME_ID_FALLOUT2='fallout-2' GAME_NAME_FALLOUT2='Fallout 2' # Archives ## Fallout 1 ARCHIVE_BASE_FALLOUT1_EN_1_NAME='setup_fallout_1.2_(27130).exe' ARCHIVE_BASE_FALLOUT1_EN_1_MD5='2cd1bb09f241c286498ea834480852ec' ARCHIVE_BASE_FALLOUT1_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_NAME='setup_fallout_1.2_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_EN_1_PART1_MD5='b9a0a59bc1426df4cc9588fdd5a8d736' ARCHIVE_BASE_FALLOUT1_EN_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_EN_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_FR_1_NAME='setup_fallout_1.2_(french)_(27130).exe' ARCHIVE_BASE_FALLOUT1_FR_1_MD5='2c0d7a347a903bb52ed1d70305038e9c' ARCHIVE_BASE_FALLOUT1_FR_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_NAME='setup_fallout_1.2_(french)_(27130)-1.bin' ARCHIVE_BASE_FALLOUT1_FR_1_PART1_MD5='7db5f755168b89cc38b6e090130b0e1a' ARCHIVE_BASE_FALLOUT1_FR_1_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_1_VERSION='1.2-gog27130' ARCHIVE_BASE_FALLOUT1_FR_1_URL='https://www.gog.com/game/fallout' ARCHIVE_BASE_FALLOUT1_EN_0_NAME='setup_fallout_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_EN_0_MD5='47b7b3c059d92c0fd6db5881635277ea' ARCHIVE_BASE_FALLOUT1_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_EN_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_EN_0_VERSION='1.2-gog2.1.0.18' ARCHIVE_BASE_FALLOUT1_FR_0_NAME='setup_fallout_french_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT1_FR_0_MD5='12ba5bb0489b5bafb777c8d07717b020' ARCHIVE_BASE_FALLOUT1_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT1_FR_0_SIZE='600000' ARCHIVE_BASE_FALLOUT1_FR_0_VERSION='1.2-gog2.1.0.18' ## Fallout 2 ARCHIVE_BASE_FALLOUT2_EN_1_NAME='setup_fallout2_2.1.0.18.exe' ARCHIVE_BASE_FALLOUT2_EN_1_MD5='b20e9a133c23bf308b8460272fd32d2b' ARCHIVE_BASE_FALLOUT2_EN_1_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_1_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_1_VERSION='1.3-gog2.1.0.18' ARCHIVE_BASE_FALLOUT2_EN_1_URL='https://www.gog.com/game/fallout_2' ARCHIVE_BASE_FALLOUT2_EN_0_NAME='setup_fallout2_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_EN_0_MD5='b40a8f2e1ff9216e25b8f09577c27f33' ARCHIVE_BASE_FALLOUT2_EN_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_EN_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_EN_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_NAME='setup_fallout2_french_2.1.0.17.exe' ARCHIVE_BASE_FALLOUT2_FR_0_MD5='7df6f834b480873bea2f8593254b1960' ARCHIVE_BASE_FALLOUT2_FR_0_TYPE='innosetup' ARCHIVE_BASE_FALLOUT2_FR_0_SIZE='740000' ARCHIVE_BASE_FALLOUT2_FR_0_VERSION='1.3-gog2.1.0.17' ARCHIVE_BASE_FALLOUT2_FR_0_URL='https://www.gog.com/game/fallout_2' # Archives content ## Fallout 1 CONTENT_PATH_DEFAULT_FALLOUT1='.' CONTENT_PATH_DEFAULT_FALLOUT1_EN_0='app' CONTENT_PATH_DEFAULT_FALLOUT1_FR_0='app' CONTENT_GAME_BIN_FILES_FALLOUT1=' falloutw.exe f1_res.dll f1_res_config.exe' CONTENT_GAME_L10N_PATH_FALLOUT1='__support/app' CONTENT_GAME_L10N_PATH_FALLOUT1_EN_0='app' CONTENT_GAME_L10N_PATH_FALLOUT1_FR_0='app' CONTENT_GAME_L10N_FILES_FALLOUT1=' fallout.cfg f1_res.ini' CONTENT_GAME_DATA_FILES_FALLOUT1=' critter.dat master.dat data extras fallout.ico' CONTENT_DOC_L10N_FILES_FALLOUT1=' readme.txt manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT1=' refcard.pdf readme.rtf f1_res_readme.rtf' ## Fallout 2 CONTENT_PATH_DEFAULT_FALLOUT2='app' CONTENT_GAME_BIN_FILES_FALLOUT2=' fallout2.exe f2_res.dll f2_res_config.exe f2_res.ini' CONTENT_GAME_L10N_FILES_FALLOUT2=' critter.dat master.dat translations fallout2.cfg' CONTENT_GAME_DATA_FILES_FALLOUT2=' data extras fallout2.ico sound' CONTENT_DOC_L10N_FILES_FALLOUT2=' manual.pdf' CONTENT_DOC_DATA_FILES_FALLOUT2=' refcard.pdf readme.rtf f2_res_readme.rtf faq.txt licence.txt f2_res_change.log' # Launchers USER_PERSISTENT_FILES=' *.cfg *.ini' USER_PERSISTENT_DIRECTORIES=' data/savegame' ## Disable WINE csmt to avoid performance issues WINE_WINETRICKS_VERBS='csmt=off' APP_RES_CAT='Settings' ## Fallout 1 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT1="${USER_PERSISTENT_FILES:-} falloutw.exe" APP_MAIN_EXE_FALLOUT1='falloutw.exe' APP_MAIN_ICON_FALLOUT1='fallout.ico' APP_RES_ID_FALLOUT1="${GAME_ID_FALLOUT1}-resolution" APP_RES_NAME_FALLOUT1="$GAME_NAME_FALLOUT1 - resolution" APP_RES_EXE_FALLOUT1='f1_res_config.exe' ## Fallout 2 ## The resolution tweaking tool expects write access to the game binary. USER_PERSISTENT_FILES_FALLOUT2="${USER_PERSISTENT_FILES:-} fallout2.exe" APP_MAIN_EXE_FALLOUT2='fallout2.exe' APP_MAIN_ICON_FALLOUT2='fallout2.ico' APP_RES_ID_FALLOUT2="${GAME_ID_FALLOUT2}-resolution" APP_RES_NAME_FALLOUT2="$GAME_NAME_FALLOUT2 - resolution" APP_RES_EXE_FALLOUT2='f2_res_config.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' ## Fallout 1 PKG_L10N_ID_FALLOUT1="${GAME_ID_FALLOUT1}-l10n" PKG_L10N_ID_FALLOUT1_EN="${PKG_L10N_ID_FALLOUT1}-en" PKG_L10N_ID_FALLOUT1_FR="${PKG_L10N_ID_FALLOUT1}-fr" PKG_L10N_PROVIDES_FALLOUT1=" $PKG_L10N_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_L10N_PROVIDES_FALLOUT1="${PKG_L10N_PROVIDES_FALLOUT1} fallout-l10n" PKG_DATA_ID_FALLOUT1="${GAME_ID_FALLOUT1}-data" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_DATA_PROVIDES_FALLOUT1="${PKG_DATA_PROVIDES_FALLOUT1} fallout-data" PKG_BIN_DEPS_FALLOUT1="$PKG_L10N_ID_FALLOUT1 $PKG_DATA_ID_FALLOUT1" ## Easier upgrade from packages generated with pre-20190116.1 scripts PKG_BIN_PROVIDES_FALLOUT1="${PKG_BIN_PROVIDES_FALLOUT1} fallout" ## Fallout 2 PKG_L10N_ID_FALLOUT2="${GAME_ID_FALLOUT2}-l10n" PKG_L10N_ID_FALLOUT2_EN="${PKG_L10N_ID_FALLOUT2}-en" PKG_L10N_ID_FALLOUT2_FR="${PKG_L10N_ID_FALLOUT2}-fr" PKG_L10N_PROVIDES_FALLOUT2=" $PKG_L10N_ID_FALLOUT2" PKG_DATA_ID_FALLOUT2="${GAME_ID_FALLOUT2}-data" PKG_BIN_DEPS_FALLOUT2="$PKG_L10N_ID_FALLOUT2 $PKG_DATA_ID_FALLOUT2" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data ## Drop the easter egg icon. case "$(current_archive)" in ('ARCHIVE_BASE_FALLOUT1_'*) icon_extract_png_from_ico() { local icon destinaton icon="$1" destination="$2" icon_convert_to_png "$icon" "$destination" rm --force "${destination}/fallout-4.png" } ;; ('ARCHIVE_BASE_FALLOUT2_'*) icon_extract_png_from_ico() { local icon destinaton icon="$1" destination="$2" icon_convert_to_png "$icon" "$destination" rm --force "${destination}/fallout2-4.png" } ;; esac set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fallout-new-vegas.sh0000750000000000000000000002713214471751340015520 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Fallout: New Vegas # send your bug reports to bugs@dotslashplay.it ### script_version=20250113.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='fallout-new-vegas' GAME_NAME='Fallout: New Vegas' ARCHIVE_BASE_EN_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_2_MD5='54d7878228b86284d360e8672ce5e85c' ARCHIVE_BASE_EN_2_TYPE='innosetup' ARCHIVE_BASE_EN_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_2_PART1_MD5='7ce668d5d084250b7ea445447b05d9b1' ARCHIVE_BASE_EN_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_2_PART2_MD5='6d86a620514632e5d8c453e27e32dce1' ARCHIVE_BASE_EN_2_SIZE='9879738' ARCHIVE_BASE_EN_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_FR_2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_2_MD5='301a3885d574a88ebbe8147ce8f28cd0' ARCHIVE_BASE_FR_2_TYPE='innosetup' ARCHIVE_BASE_FR_2_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_2_PART1_MD5='58eb0e07dc5eb8c1f1bc78dbfa1f9cfb' ARCHIVE_BASE_FR_2_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_2_PART2_MD5='e57e233aea17d8f4ee23bf90d0318a38' ARCHIVE_BASE_FR_2_PART3_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-3.bin' ARCHIVE_BASE_FR_2_PART3_MD5='c2020bf115acc116204e43ca09a58ef0' ARCHIVE_BASE_FR_2_SIZE='9999844' ARCHIVE_BASE_FR_2_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_2_URL='https://www.gog.com/game/fallout_new_vegas_ultimate_edition' ARCHIVE_BASE_EN_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068).exe' ARCHIVE_BASE_EN_1_MD5='2381656fd552e5b93c143336fedbc21d' ARCHIVE_BASE_EN_1_TYPE='innosetup' ARCHIVE_BASE_EN_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-1.bin' ARCHIVE_BASE_EN_1_PART1_MD5='e0979d7e1d0145cd7bb6d1ad62419a17' ARCHIVE_BASE_EN_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(55068)-2.bin' ARCHIVE_BASE_EN_1_PART2_MD5='730ae6ea0eb5d41773be6bb19bb15d57' ARCHIVE_BASE_EN_1_SIZE='9900000' ARCHIVE_BASE_EN_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_FR_1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068).exe' ARCHIVE_BASE_FR_1_MD5='841d652c40c7c4bb54830ba768bf48a7' ARCHIVE_BASE_FR_1_TYPE='innosetup' ARCHIVE_BASE_FR_1_PART1_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-1.bin' ARCHIVE_BASE_FR_1_PART1_MD5='054a674e5246f8b8c78c02f3ee2095dc' ARCHIVE_BASE_FR_1_PART2_NAME='setup_fallout_new_vegas_1.4.0.525(a)_(french)_(55068)-2.bin' ARCHIVE_BASE_FR_1_PART2_MD5='a3d4bbfd30d2d60389ed2d2b4b5aed07' ARCHIVE_BASE_FR_1_SIZE='10000000' ARCHIVE_BASE_FR_1_VERSION='1.4.0.525-gog55068' ARCHIVE_BASE_EN_0_NAME='setup_fallout_new_vegas_1.4.0.525_(12010).exe' ARCHIVE_BASE_EN_0_MD5='be32894fe423302d299fa532e5641079' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_EN_0_PART2_NAME='setup_fallout_new_vegas_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_EN_0_PART2_MD5='705e7097b9c18836118c2e9eb42b19ed' ARCHIVE_BASE_EN_0_SIZE='11000000' ARCHIVE_BASE_EN_0_VERSION='1.4.0.525-gog12010' ARCHIVE_BASE_FR_0_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010).exe' ARCHIVE_BASE_FR_0_MD5='da79e8756efb16b211a76756cd8865b3' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='245661b2e1435c530763ae281ccecd9f' ARCHIVE_BASE_FR_0_PART2_NAME='setup_fallout_new_vegas_french_1.4.0.525_(12010)-2.bin' ARCHIVE_BASE_FR_0_PART2_MD5='e148a49b1bbcfa4b2662e45691ae606e' ARCHIVE_BASE_FR_0_SIZE='11000000' ARCHIVE_BASE_FR_0_VERSION='1.4.0.525-gog12010' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_0='app' CONTENT_PATH_DEFAULT_FR_0='app' CONTENT_GAME_BIN_FILES=' atimgpud.dll binkw32.dll gdffalloutnv.dll libvorbis.dll libvorbisfile.dll ssce5432.dll falloutnv.exe geck.exe low.ini medium.ini high.ini veryhigh.ini' ## TODO: Check if the Galaxy libraries are required CONTENT_GAME0_BIN_FILES=' galaxy.dll galaxywrp.dll' CONTENT_GAME_L10N_FILES=' falloutnvlauncher.exe fallout_default.ini data/credits.txt data/creditswacky.txt data/fallout - voices1.bsa data/falloutnv.esm data/video/fnvintro.bik' CONTENT_GAME_DLC1_FILES=' data/deadmoney*' CONTENT_GAME_DLC2_FILES=' data/honesthearts*' CONTENT_GAME_DLC3_FILES=' data/oldworldblues*' CONTENT_GAME_DLC4_FILES=' data/lonesomeroad*' CONTENT_GAME_DLC5_FILES=' data/gunrunnersarsenal*' CONTENT_GAME_DLC6_FILES=' data/caravanpack*' CONTENT_GAME_DLC7_FILES=' data/classicpack*' CONTENT_GAME_DLC8_FILES=' data/mercenarypack*' CONTENT_GAME_DLC9_FILES=' data/tribalpack*' CONTENT_GAME_DATA_FILES=' data geckicon.ico falloutnv.ico maintitle.wav' CONTENT_DOC_L10N_FILES=' *.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/FalloutNV' APP_MAIN_EXE='falloutnvlauncher.exe' APP_MAIN_ICON='falloutnv.ico' APP_EDITOR_ID="${GAME_ID}-editor" APP_EDITOR_NAME="${GAME_NAME} - Editor" APP_EDITOR_EXE='geck.exe' APP_EDITOR_ICON='geckicon.ico' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DLC1 PKG_DLC2 PKG_DLC3 PKG_DLC4 PKG_DLC5 PKG_DLC6 PKG_DLC7 PKG_DLC8 PKG_DLC9 PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_BASE PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' PKG_L10N_BASE_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_BASE_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_BASE_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_BASE_ID" PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DLC1_ID="${GAME_ID}-dlc-dead-money" PKG_DLC1_ID_EN="${PKG_DLC1_ID}-en" PKG_DLC1_ID_FR="${PKG_DLC1_ID}-fr" PKG_DLC1_PROVIDES=" $PKG_DLC1_ID" PKG_DLC1_DESCRIPTION='Dead Money' PKG_DLC1_DESCRIPTION_EN="${PKG_DLC1_DESCRIPTION} - English version" PKG_DLC1_DESCRIPTION_FR="${PKG_DLC1_DESCRIPTION} - French version" PKG_DLC1_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC2_ID="${GAME_ID}-dlc-honest-hearts" PKG_DLC2_ID_EN="${PKG_DLC2_ID}-en" PKG_DLC2_ID_FR="${PKG_DLC2_ID}-fr" PKG_DLC2_PROVIDES=" $PKG_DLC2_ID" PKG_DLC2_DESCRIPTION='Honest Hearts' PKG_DLC2_DESCRIPTION_EN="${PKG_DLC2_DESCRIPTION} - English version" PKG_DLC2_DESCRIPTION_FR="${PKG_DLC2_DESCRIPTION} - French version" PKG_DLC2_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC3_ID="${GAME_ID}-dlc-old-world-blues" PKG_DLC3_ID_EN="${PKG_DLC3_ID}-en" PKG_DLC3_ID_FR="${PKG_DLC3_ID}-fr" PKG_DLC3_PROVIDES=" $PKG_DLC3_ID" PKG_DLC3_DESCRIPTION='Old World Blues' PKG_DLC3_DESCRIPTION_EN="${PKG_DLC3_DESCRIPTION} - English version" PKG_DLC3_DESCRIPTION_FR="${PKG_DLC3_DESCRIPTION} - French version" PKG_DLC3_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC4_ID="${GAME_ID}-dlc-lonesome-road" PKG_DLC4_ID_EN="${PKG_DLC4_ID}-en" PKG_DLC4_ID_FR="${PKG_DLC4_ID}-fr" PKG_DLC4_PROVIDES=" $PKG_DLC4_ID" PKG_DLC4_DESCRIPTION='Lonesome Road' PKG_DLC4_DESCRIPTION_EN="${PKG_DLC4_DESCRIPTION} - English version" PKG_DLC4_DESCRIPTION_FR="${PKG_DLC4_DESCRIPTION} - French version" PKG_DLC4_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC5_ID="${GAME_ID}-dlc-gun-runners-arsenal" PKG_DLC5_ID_EN="${PKG_DLC5_ID}-en" PKG_DLC5_ID_FR="${PKG_DLC5_ID}-fr" PKG_DLC5_PROVIDES=" $PKG_DLC5_ID" PKG_DLC5_DESCRIPTION='Gun Runnersʼ Arsenal' PKG_DLC5_DESCRIPTION_EN="${PKG_DLC5_DESCRIPTION} - English version" PKG_DLC5_DESCRIPTION_FR="${PKG_DLC5_DESCRIPTION} - French version" PKG_DLC5_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC6_ID="${GAME_ID}-dlc-caravan-pack" PKG_DLC6_ID_EN="${PKG_DLC6_ID}-en" PKG_DLC6_ID_FR="${PKG_DLC6_ID}-fr" PKG_DLC6_PROVIDES=" $PKG_DLC6_ID" PKG_DLC6_DESCRIPTION='Caravan Pack' PKG_DLC6_DESCRIPTION_EN="${PKG_DLC6_DESCRIPTION} - English version" PKG_DLC6_DESCRIPTION_FR="${PKG_DLC6_DESCRIPTION} - French version" PKG_DLC6_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC7_ID="${GAME_ID}-dlc-classic-pack" PKG_DLC7_ID_EN="${PKG_DLC7_ID}-en" PKG_DLC7_ID_FR="${PKG_DLC7_ID}-fr" PKG_DLC7_PROVIDES=" $PKG_DLC7_ID" PKG_DLC7_DESCRIPTION='Classic Pack' PKG_DLC7_DESCRIPTION_EN="${PKG_DLC7_DESCRIPTION} - English version" PKG_DLC7_DESCRIPTION_FR="${PKG_DLC7_DESCRIPTION} - French version" PKG_DLC7_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC8_ID="${GAME_ID}-dlc-mercenary-pack" PKG_DLC8_ID_EN="${PKG_DLC8_ID}-en" PKG_DLC8_ID_FR="${PKG_DLC8_ID}-fr" PKG_DLC8_PROVIDES=" $PKG_DLC8_ID" PKG_DLC8_DESCRIPTION='Mercenary Pack' PKG_DLC8_DESCRIPTION_EN="${PKG_DLC8_DESCRIPTION} - English version" PKG_DLC8_DESCRIPTION_FR="${PKG_DLC8_DESCRIPTION} - French version" PKG_DLC8_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC9_ID="${GAME_ID}-dlc-tribal-pack" PKG_DLC9_ID_EN="${PKG_DLC9_ID}-en" PKG_DLC9_ID_FR="${PKG_DLC9_ID}-fr" PKG_DLC9_PROVIDES=" $PKG_DLC9_ID" PKG_DLC9_DESCRIPTION='Tribal Pack' PKG_DLC9_DESCRIPTION_EN="${PKG_DLC9_DESCRIPTION} - English version" PKG_DLC9_DESCRIPTION_FR="${PKG_DLC9_DESCRIPTION} - French version" PKG_DLC9_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Set required registry key installed_path="C:\\\\${GAME_ID}/" registry_dump_installed_path_file='registry-dumps/installed-path.reg' registry_dump_installed_path_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Bethesda Softworks\FalloutNV] "Installed Path"="'"${installed_path}"'"' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_installed_path_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_installed_path_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set required registry key mkdir --parents "$(dirname "$registry_dump_installed_path_file")" printf '%s' "$registry_dump_installed_path_content" | iconv \ --from-code=UTF-8 --to-code=UTF-16 \ --output="$registry_dump_installed_path_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions 'PKG_BIN' 'PKG_L10N' 'PKG_DATA' ( GAME_NAME="$PKG_DLC1_DESCRIPTION" set_current_package 'PKG_DLC1' print_instructions 'PKG_DLC1' ) ( GAME_NAME="$PKG_DLC2_DESCRIPTION" set_current_package 'PKG_DLC2' print_instructions 'PKG_DLC2' ) ( GAME_NAME="$PKG_DLC3_DESCRIPTION" set_current_package 'PKG_DLC3' print_instructions 'PKG_DLC3' ) ( GAME_NAME="$PKG_DLC4_DESCRIPTION" set_current_package 'PKG_DLC4' print_instructions 'PKG_DLC4' ) ( GAME_NAME="$PKG_DLC5_DESCRIPTION" set_current_package 'PKG_DLC5' print_instructions 'PKG_DLC5' ) ( GAME_NAME="$PKG_DLC6_DESCRIPTION" set_current_package 'PKG_DLC6' print_instructions 'PKG_DLC6' ) ( GAME_NAME="$PKG_DLC7_DESCRIPTION" set_current_package 'PKG_DLC7' print_instructions 'PKG_DLC7' ) ( GAME_NAME="$PKG_DLC8_DESCRIPTION" set_current_package 'PKG_DLC8' print_instructions 'PKG_DLC8' ) ( GAME_NAME="$PKG_DLC9_DESCRIPTION" set_current_package 'PKG_DLC9' print_instructions 'PKG_DLC9' ) # Clean up working_directory_cleanup exit 0 games/play-far-lone-sails.sh0000750000000000000000000000335314471751340014773 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FAR: Lone Sails # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='far-lone-sails' GAME_NAME='FAR: Lone Sails' ARCHIVE_BASE_0_NAME='setup_far_lone_sails_1.3_(56748).exe' ARCHIVE_BASE_0_MD5='f18af4cc8e730c58db71460b0dff9cae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2700000' ARCHIVE_BASE_0_VERSION='1.3-gog56748' ARCHIVE_BASE_0_URL='https://www.gog.com/game/far_lone_sails' UNITY3D_NAME='farlonesails' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Okomotive/FarLoneSails' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fear-equation.sh0000750000000000000000000000562414471751340014722 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fear Equation # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='fear-equation' GAME_NAME='Fear Equation' ARCHIVE_BASE_0_NAME='gog_fear_equation_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='5bf5e55b87d8a9a2256a0a56531692c7' ARCHIVE_BASE_0_SIZE='898207' ARCHIVE_BASE_0_VERSION='2.0.2-gog2.1.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fear_equation' UNITY3D_NAME='FearEquation' UNITY3D_PLUGINS=' libsqlite3.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Work around the engine looking for libsqlite3.so in an hardcoded path library_source="$(path_libraries)/libsqlite3.so" library_destination="$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/libsqlite3.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" library_destination="$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/libsqlite3.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-feist.sh0000750000000000000000000000574614471751340013301 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.sh0000750000000000000000000000556114471751340012746 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Fez # send your bug reports to 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-figment-1.sh0000750000000000000000000000450114471751340013742 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Figment 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20231015.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='figment-1' GAME_NAME='Figment' ARCHIVE_BASE_0_NAME='figment_1_1_8_24039.sh' ARCHIVE_BASE_0_MD5='c1da7eb0081fa3fc6140510cc725ee8e' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.1.8-gog24039' ARCHIVE_BASE_0_URL='https://www.gog.com/game/figment' UNITY3D_NAME='Figment' ## TODO: Check if we could drop the shipped Steam library. UNITY3D_PLUGINS=' libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Figment' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-figment-2.sh0000750000000000000000000000410114471751340013737 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Figment 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20230827.1 GAME_ID='figment-2' GAME_NAME='Figment 2: Creed Valley' ARCHIVE_BASE_0='setup_figment_2_creed_valley_1.0.11_(64bit)_(65124).exe' ARCHIVE_BASE_0_MD5='ab0bfda1b740dc5df208a4518658413d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0.11-gog65124' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/figment_creed_valley' UNITY3D_NAME='figment 2' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bedtime Digital Games/Figment 2 users/${USER}/Documents/My Games/Figment 2' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fixfox.sh0000750000000000000000000000327414471751340013464 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # FixFox # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='fixfox' GAME_NAME='FixFox' ARCHIVE_BASE_0_NAME='setup_fixfox_402_c39e385a_(61432).exe' ARCHIVE_BASE_0_MD5='4a2095116059e12d6c8fa7363cd30fdc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='402-gog61432' ARCHIVE_BASE_0_URL='https://www.gog.com/game/fixfox' UNITY3D_NAME='fixfox' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Rendlike/FixFox' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flashout-3d-enhanced-edition.sh0000750000000000000000000000443014471751340017501 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Flashout 3D: Enhanced Edition # send your bug reports to bugs@dotslashplay.it ### script_version=20230213.1 GAME_ID='flashout-3d-enhanced-edition' GAME_NAME='Flashout 3D: Enhanced Edition' ARCHIVE_BASE_0='setup_flashout_3d_enhanced_edition_1.0.4_(58979).exe' ARCHIVE_BASE_0_MD5='f1a898a6f1a5d50f1f482170221557a5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='1.0.4-gog58979' ARCHIVE_BASE_0_URL='https://www.gog.com/game/flashout_3d_enhanced_edition' UNITY3D_NAME='flashout3d-ee' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/mono ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Jujubee S.A.\Flashout3D-EE' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --force --recursive \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flat-kingdom.sh0000750000000000000000000000333514471751340014533 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-flatout-1.sh0000750000000000000000000000503014471751340013765 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 tyzef set -o errexit ### # Flatout # send your bug reports to bugs@dotslashplay.it ### script_version=20250331.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='flatout' GAME_NAME='FlatOut' #ARCHIVE_BASE_2_NAME='flatout_2_gog_3_23461.sh' #ARCHIVE_BASE_2_MD5='5529dcd679eae03f23d9807efd22a182' #ARCHIVE_BASE_2_SIZE='3800000' #ARCHIVE_BASE_2_VERSION='1.2-gog23461' #ARCHIVE_BASE_2_URL='https://www.gog.com/game/flatout_2' #ARCHIVE_BASE_1_NAME='gog_flatout_2_2.1.0.6.sh' #ARCHIVE_BASE_1_MD5='77cbd07105aa202ef808edebda15833a' #ARCHIVE_BASE_1_SIZE='3400000' #ARCHIVE_BASE_1_VERSION='1.2-gog2.1.0.6' ARCHIVE_BASE_0_NAME='flatout.exe' ARCHIVE_BASE_0_MD5='7704c0100400d767b1c2b01073534382' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3489772' #ARCHIVE_BASE_0_VERSION='1.2-gog2.0.0.4' ARCHIVE_BASE_2_URL='https://www.gog.com/en/game/flatout' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' flatout.exe *.dll' CONTENT_GAME_DATA_FILES=' data' #filesystem #patch #flatout2.ico #*.bfs' #CONTENT_DOC_DATA_FILES=' #readme.htm #*.pdf' #USER_PERSISTENT_DIRECTORIES=' #savegame' ## TODO: Check if this winetricks verb is required. WINE_WINETRICKS_VERBS='d3dx9' APP_MAIN_EXE='flatout.exe' #APP_MAIN_ICON='goggame-1207658693.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to lower case. tolower . ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0games/play-flatout-2.sh0000750000000000000000000000463214471751340013775 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Flatout 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='flatout-2' GAME_NAME='FlatOut 2' ARCHIVE_BASE_2_NAME='flatout_2_gog_3_23461.sh' ARCHIVE_BASE_2_MD5='5529dcd679eae03f23d9807efd22a182' ARCHIVE_BASE_2_SIZE='3800000' ARCHIVE_BASE_2_VERSION='1.2-gog23461' ARCHIVE_BASE_2_URL='https://www.gog.com/game/flatout_2' ARCHIVE_BASE_1_NAME='gog_flatout_2_2.1.0.6.sh' ARCHIVE_BASE_1_MD5='77cbd07105aa202ef808edebda15833a' ARCHIVE_BASE_1_SIZE='3400000' ARCHIVE_BASE_1_VERSION='1.2-gog2.1.0.6' ARCHIVE_BASE_0_NAME='gog_flatout_2_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='cdc453f737159ac62bd9f59540002610' ARCHIVE_BASE_0_SIZE='3600000' ARCHIVE_BASE_0_VERSION='1.2-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/prefix/drive_c/GOG Games/FlatOut 2' CONTENT_GAME_BIN_FILES=' flatout2.exe' CONTENT_GAME_DATA_FILES=' filesystem patch flatout2.ico *.bfs' CONTENT_DOC_DATA_FILES=' readme.htm *.pdf' USER_PERSISTENT_DIRECTORIES=' savegame' ## TODO: Check if this winetricks verb is required. WINE_WINETRICKS_VERBS='d3dx9' APP_MAIN_EXE='flatout2.exe' APP_MAIN_ICON='flatout2.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to lower case. tolower . ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-flux-caves.sh0000750000000000000000000000416214471751340014233 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Flux Caves # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='flux-caves' GAME_NAME='Flux Caves' ARCHIVE_BASE_0_NAME='108_Linux_Full.zip' ARCHIVE_BASE_0_MD5='695038dfa472774ecfda4371100b2eb9' ARCHIVE_BASE_0_SIZE='1033362' ARCHIVE_BASE_0_VERSION='1.08-itch1' ARCHIVE_BASE_0_URL='https://fubenalvo.itch.io/fluxcaves' UNITY3D_NAME='fluxcaves' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='108_Linux_Full' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-forced.sh0000750000000000000000000000507014471751340013417 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Forced # send your bug reports to bugs@dotslashplay.it ### script_version=20240605.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='forced' GAME_NAME='Forced' ## This DRM-free archive is no longer available from humblebundle.com, ## they now only sell Steam keys for this game. ARCHIVE_BASE_0_NAME='FORCED_Linux.zip' ARCHIVE_BASE_0_MD5='039f971dc0ae0741e52865a9f23280d3' ARCHIVE_BASE_0_SIZE='3742323' ARCHIVE_BASE_0_VERSION='1.22-humble1' UNITY3D_NAME='FORCED' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='FORCED_Linux/FORCED' USER_PERSISTENT_DIRECTORIES=' FORCED_Data/Visual Scripting' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-forgotton-anne.sh0000750000000000000000000000433514471751340015120 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=20240403.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='forgotton-anne' GAME_NAME='Forgotton Anne' ARCHIVE_BASE_0_NAME='setup_forgotton_anne_5.5.3_(29552).exe' ARCHIVE_BASE_0_MD5='2f6b17e78651f6ccc9070705b879a6ae' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_forgotton_anne_5.5.3_(29552)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8f6e836ff3519e4759af8c51ed89655d' ARCHIVE_BASE_0_PART2_NAME='setup_forgotton_anne_5.5.3_(29552)-2.bin' ARCHIVE_BASE_0_PART2_MD5='728970d510b82fc1d9d336c9e26fb8c3' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='5.5.3-gog29552' ARCHIVE_BASE_0_URL='https://www.gog.com/game/forgotton_anne' UNITY3D_NAME='forgottonanne' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/GOG.com/Galaxy/Applications/51445449926814491' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fossil-echo.sh0000750000000000000000000000451114471751340014367 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.sh0000750000000000000000000000521214471751340013755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Fotonica # send your bug reports to 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.sh0000750000000000000000000000341014471751340015655 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-fragments-of-euclid.sh0000750000000000000000000000435014471751340016010 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Fragments of Euclid # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='fragments-of-euclid' GAME_NAME='Fragments of Euclid' ARCHIVE_BASE_0_NAME='fragments-of-euclid-linux.zip' ARCHIVE_BASE_0_MD5='2a786a3ffad74015842d85e74e2bee7f' ARCHIVE_BASE_0_SIZE='240183' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://nusan.itch.io/fragments-of-euclid' UNITY3D_NAME='FragmentsOfEuclid' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' readme.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-fugue.sh0000750000000000000000000000500714471751340013270 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Fugue # send your bug reports to bugs@dotslashplay.it ### script_version=20231102.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='fugue' GAME_NAME='Fugue' ARCHIVE_BASE_0_NAME='fugue-linux-universal.zip' ARCHIVE_BASE_0_MD5='f950781fcb9db71a14d58199f984f770' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.5-itch' ARCHIVE_BASE_0_URL='https://jimjastajay.itch.io/fugue' UNITY3D_NAME='Fugue' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' ## TODO: Check if the Steam libraries can be dropped. CONTENT_LIBS_BIN64_FILES=' libsteam_api.so' CONTENT_LIBS_BIN32_FILES=' libsteam_api64.so' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-garden-in.sh0000750000000000000000000000422514471751340014022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Garden In # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='garden-in' GAME_NAME='Garden In!' ARCHIVE_BASE_1_NAME='setup_garden_in_1.3.6.1_(64bit)_(73207).exe' ARCHIVE_BASE_1_MD5='dc2cacf13ccf7e758463af3039c1d565' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='917331' ARCHIVE_BASE_1_VERSION='1.3.6.1-gog73207' ARCHIVE_BASE_1_URL='https://www.gog.com/game/garden_in' ARCHIVE_BASE_0_NAME='setup_garden_in_1.0.6.2_(64bit)_(63850).exe' ARCHIVE_BASE_0_MD5='1ed753d195f563e2a530f07743ae7a4f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.0.6.2-gog63850' UNREALENGINE4_NAME='gardenin' CONTENT_PATH_DEFAULT='windowsnoeditor' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ghost-of-a-tale.sh0000750000000000000000000000451414471751340015046 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ghost of a Tale # send your bug reports to bugs@dotslashplay.it ### script_version=20241105.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='ghost-of-a-tale' GAME_NAME='Ghost of a Tale' ARCHIVE_BASE_0_NAME='setup_ghost_of_a_tale_833_(28317).exe' ARCHIVE_BASE_0_MD5='ce98494f39f3908d33ef46e438d94da4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_ghost_of_a_tale_833_(28317)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e5a2d7c834572c438c324a5104692afb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='8.33-gog28317' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ghost_of_a_tale' UNITY3D_NAME='goat' CONTENT_PATH_DEFAULT='.' ## TODO: Check if these .cmd scripts are required CONTENT_GAME0_BIN_FILES=' goat_clearpreferences.cmd goat_createreport.cmd' CONTENT_GAME0_DATA_FILES=' icon.ico remote_config_cache_production_worldwide.json' ## TODO: Check if the Steam configuration file is required CONTENT_GAME1_DATA_FILES=' steam_appid.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Ghost of a Tale' ## TODO: Check if a virtual desktop is required WINE_VIRTUAL_DESKTOP='auto' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-giana-sisters-series.sh0000750000000000000000000000661514471751340016224 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Giana Sisters series: # - Giana Sisters: Twisted Dreams # - Giana Sisters: Rise of the Owlverlord # send your bug reports to bugs@dotslashplay.it ### script_version=20241210.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_DREAMS='giana-sisters-twisted-dreams' GAME_NAME_DREAMS='Giana Sisters: Twisted Dreams' GAME_ID_OWL='giana-sisters-rise-of-the-owlverlord' GAME_NAME_OWL='Giana Sisters: Rise of the Owlverlord' # Archives ## Giana Sisters: Twisted Dreams ARCHIVE_BASE_DREAMS_1_NAME='setup_giana_sisters_twisted_dreams_1.2.1_(19142).exe' ARCHIVE_BASE_DREAMS_1_MD5='e5605f4890984375192bd37545e51ff8' ARCHIVE_BASE_DREAMS_1_TYPE='innosetup' ARCHIVE_BASE_DREAMS_1_SIZE='2800000' ARCHIVE_BASE_DREAMS_1_VERSION='1.2.1-gog19142' ARCHIVE_BASE_DREAMS_1_URL='https://www.gog.com/game/giana_sisters_twisted_dreams' ARCHIVE_BASE_DREAMS_0_NAME='setup_giana_sisters_twisted_dreams_2.2.0.16.exe' ARCHIVE_BASE_DREAMS_0_MD5='31b2a0431cfd764198834faec314f0b2' ARCHIVE_BASE_DREAMS_0_TYPE='innosetup' ARCHIVE_BASE_DREAMS_0_SIZE='2900000' ARCHIVE_BASE_DREAMS_0_VERSION='1.0-gog2.2.0.16' ## Giana Sisters: Rise of the Owlverlord ARCHIVE_BASE_OWL_1_NAME='setup_giana_sisters_rise_of_the_owlverlord_2.1.0.8.exe' ARCHIVE_BASE_OWL_1_MD5='bebb3a09c10b8e34b88b6d9f64dedeab' ARCHIVE_BASE_OWL_1_TYPE='innosetup' ARCHIVE_BASE_OWL_1_SIZE='2556034' ARCHIVE_BASE_OWL_1_VERSION='1.0-gog2.1.0.8' ARCHIVE_BASE_OWL_1_URL='https://www.gog.com/game/giana_sisters_rise_of_the_owlverlord' CONTENT_PATH_DEFAULT_DREAMS='.' CONTENT_PATH_DEFAULT_DREAMS_0='app' CONTENT_PATH_DEFAULT_OWL='app' CONTENT_GAME_BIN_FILES=' launcher 7z.dll gsgameexe.exe gsgameexe_dx9.exe' CONTENT_GAME_DATA_FILES=' bundles added_content data_common' CONTENT_GAME0_DATA_PATH='__support/app' CONTENT_GAME0_DATA_FILES=' data_common' CONTENT_DOC_DATA_FILES=' 7z_copying.txt 7z_license.txt 7z_readme.txt' WINE_PERSISTENT_DIRECTORIES_DREAMS=' users/${USER}/Documents/Giana Sisters - Twisted Dreams' WINE_PERSISTENT_DIRECTORIES_OWL=' users/${USER}/Documents/Giana Sisters - Rise of the Owlverlord' ## TODO: Check if these winetricks verbs are still required with current WINE builds. WINE_WINETRICKS_VERBS='xact wmp9' APP_MAIN_EXE='gsgameexe.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID_DREAMS="${GAME_ID_DREAMS}-data" PKG_DATA_ID_OWL="${GAME_ID_OWL}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-golden-treasure.sh0000750000000000000000000000342614471751340015260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Golden Treasure # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='golden-treasure' GAME_NAME='Golden Treasure' ARCHIVE_BASE_0_NAME='gt1-pc-release.zip' ARCHIVE_BASE_0_MD5='97006803c1293df85b9ffe553b5785ff' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.1.3.190711-itch' ARCHIVE_BASE_0_URL='https://dreaming-door.itch.io/gt1' UNITY3D_NAME='Golden Treasure - The Great Green' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Dreaming Door Studios/Golden Treasure - The Great Green' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-grip.sh0000750000000000000000000000367314471751340013125 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Grip # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='grip-game' GAME_NAME='Grip' ARCHIVE_BASE_0_NAME='setup_grip_1.5.3_v2_(50529).exe' ARCHIVE_BASE_0_MD5='1180ad9aae91fd168fb32d14c8516b05' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_grip_1.5.3_v2_(50529)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ee3a558625e2a7d58f9be0bc9cbc6290' ARCHIVE_BASE_0_PART2_NAME='setup_grip_1.5.3_v2_(50529)-2.bin' ARCHIVE_BASE_0_PART2_MD5='427b9d550c93423010f688f3dd886704' ARCHIVE_BASE_0_SIZE='12000000' ARCHIVE_BASE_0_VERSION='1.5.3-gog50529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grip' UNREALENGINE4_NAME='grip' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/grip-windowsnoeditor.pak" APP_MAIN_EXE='grip.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-gris.sh0000750000000000000000000000344314471751340013123 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-grow-song-of-the-evertree.sh0000750000000000000000000000473314471751340017103 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Grow: Song of the Evertree # send your bug reports to bugs@dotslashplay.it ### script_version=20230705.2 GAME_ID='grow-song-of-the-evertree' GAME_NAME='Grow: Song of the Evertree' ARCHIVE_BASE_0='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063).exe' ARCHIVE_BASE_0_MD5='a099df449e5f892ea7684b6a21868a2b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_grow_song_of_the_evertree_1.0.6.3369_(64bit)_(54063)-1.bin' ARCHIVE_BASE_0_PART1_MD5='34d143e6eb44b5a3637419cb9245c5ad' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.0.6.3369-gog54063' ARCHIVE_BASE_0_URL='https://www.gog.com/game/grow_song_of_the_evertree' UNITY3D_NAME='grow' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/505 Games/Grow_ Song of The Evertree' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-growbot.sh0000750000000000000000000000351714471751340013644 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Growbot # send your bug reports to bugs@dotslashplay.it ### script_version=20231020.2 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='growbot' GAME_NAME='Growbot' ARCHIVE_BASE_0_NAME='growbot_1_6_55954.sh' ARCHIVE_BASE_0_MD5='f162fbd159809c37dd1aa9307d88eebd' ARCHIVE_BASE_0_SIZE='848320' ARCHIVE_BASE_0_VERSION='1.6-gog55954' ARCHIVE_BASE_0_URL='https://www.gog.com/game/growbot' UNITY3D_NAME='Growbot' ## The game crashes on launch if the Steam library is not included. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-guide-of-the-butterfly.sh0000750000000000000000000000341014471751340016444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Guide of the Butterfly # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='guide-of-the-butterfly' GAME_NAME='Guide of the Butterfly' ARCHIVE_BASE_0_NAME='guide-of-the-butterfly-final.zip' ARCHIVE_BASE_0_MD5='a0d78bc3104d4d87350472dcfca458ec' ARCHIVE_BASE_0_SIZE='83000' ARCHIVE_BASE_0_VERSION='1.0.1-itch.2020.04.17' ARCHIVE_BASE_0_URL='https://lparkermg.itch.io/guide-of-the-butterfly' UNITY3D_NAME='Guide_of_the_Butterfly' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-gun-toting-cats.sh0000750000000000000000000000375514471751340015210 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Gun-Toting Cats # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='gun-toting-cats' GAME_NAME='Gun-Toting Cats' ARCHIVE_BASE_0_NAME='(Linux) GTCats Prototype.zip' ARCHIVE_BASE_0_MD5='4e020ea013b59e8c04a52e1f7e1e32a9' ARCHIVE_BASE_0_SIZE='56670' ARCHIVE_BASE_0_VERSION='1.8-itch' ARCHIVE_BASE_0_URL='https://kit9studio.itch.io/gun-toting-cats' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Gun-Toting Cats Prototype 1.8' CONTENT_GAME_DATA_FILES=' data.pck' CONTENT_DOC_DATA_FILES=' licenses.txt' APP_MAIN_EXE='Gun-Toting Cats Prototype 1.8' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libpulse-simple.so.0 libpulse.so.0 libX11.so.6 libXcursor.so.1 libXinerama.so.1 libXi.so.6 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-haimrik.sh0000750000000000000000000000340314471751340013577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Haimrik # send your bug reports to bugs@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haimrik' GAME_NAME='Haimrik' ARCHIVE_BASE_0_NAME='setup_haimrik_gog-1_(21463).exe' ARCHIVE_BASE_0_MD5='e3b7d537806906050fc4f4400162c9f1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-gog21463' ARCHIVE_BASE_0_URL='https://www.gog.com/game/haimrik' UNITY3D_NAME='haimrik' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Below The Game/Haimrik' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hammerwatch.sh0000750000000000000000000001046014471751340014454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hammerwatch # send your bug reports to bugs@dotslashplay.it ### script_version=20241122.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hammerwatch' GAME_NAME='Hammerwatch' ARCHIVE_BASE_GOG_0_NAME='gog_hammerwatch_2.1.0.7.sh' ARCHIVE_BASE_GOG_0_MD5='2d1f01b73f43e0b6399ab578c52c6cb6' ARCHIVE_BASE_GOG_0_SIZE='230000' ARCHIVE_BASE_GOG_0_VERSION='1.32-gog2.1.0.7' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hammerwatch' ARCHIVE_BASE_HUMBLE_1_NAME='hammerwatch_linux_141.zip' ARCHIVE_BASE_HUMBLE_1_MD5='a342298f2201a33a616e412b70c4a7f8' ARCHIVE_BASE_HUMBLE_1_SIZE='230000' ARCHIVE_BASE_HUMBLE_1_VERSION='1.41-humble180913' ARCHIVE_BASE_HUMBLE_1_URL='https://www.humblebundle.com/store/hammerwatch' ARCHIVE_BASE_HUMBLE_0_NAME='hammerwatch_linux1.32.zip' ARCHIVE_BASE_HUMBLE_0_MD5='c31f4053bcde3dc34bc8efe5f232c26e' ARCHIVE_BASE_HUMBLE_0_SIZE='230000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.32-humble160405' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_HUMBLE_0='Hammerwatch' CONTENT_LIBS_FILES=' libfmod.so libfmod.so.6 libfmod.so.6.0' ## TODO: Check if the Steam libraries are required. CONTENT_LIBS_FILES="$CONTENT_LIBS_FILES libCSteamworks.so libsteam_api.so" CONTENT_LIBS_LIBS64_RELATIVE_PATH='lib64' CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' editor levels mono assets.bin Hammerwatch.exe FarseerPhysicsOTK.dll Lidgren.Network.dll Pngcs.dll SDL2-CS.dll SDL2-CS.dll.config ICSharpCode.SharpZipLib.dll Steamworks.NET.dll Steamworks.NET.dll.config TiltedEngine.dll' USER_PERSISTENT_FILES=' *.txt *.xml' USER_PERSISTENT_DIRECTORIES=' levels' APP_MAIN_EXE='Hammerwatch.exe' APP_MAIN_ICON='Hammerwatch.exe' ## Copy the game binary into the game prefix APP_MAIN_PRERUN=' # Copy the game binary into the user prefix exe_destination="${PATH_PREFIX}/Hammerwatch.exe" if [ -h "$exe_destination" ]; then cp --remove-destination "$(realpath "$exe_destination")" "$exe_destination" fi unset exe_destination ' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Replace duplicated libraries with symbolic links. rm \ 'lib/libfmod.so' 'lib/libfmod.so.6' \ 'lib64/libfmod.so' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6.0' 'lib/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib/libfmod.so' ln --symbolic 'libfmod.so.6.0' 'lib64/libfmod.so.6' ln --symbolic 'libfmod.so.6' 'lib64/libfmod.so' ) # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_MAIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hand-of-fate.sh0000750000000000000000000000537714471751340014420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # Hand Of Fate # send your bug reports to bugs@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='hand-of-fate' GAME_NAME='Hand Of Fate' ARCHIVE_BASE_2_NAME='hand_of_fate_1_3_20_25356.sh' ARCHIVE_BASE_2_MD5='f0a1b47a6e4b5cb7a9f1494b55982b54' ARCHIVE_BASE_2_SIZE='2800000' ARCHIVE_BASE_2_VERSION='1.3.20-gog25356' ARCHIVE_BASE_2_URL='https://www.gog.com/game/hand_of_fate' ARCHIVE_BASE_1_NAME='hand_of_fate_en_1_3_19_21087.sh' ARCHIVE_BASE_1_MD5='5895ccaf640afff877b6cab5fa348748' ARCHIVE_BASE_1_SIZE='2800000' ARCHIVE_BASE_1_VERSION='1.3.19-gog21087' ARCHIVE_BASE_0_NAME='gog_hand_of_fate_2.12.0.16.sh' ARCHIVE_BASE_0_MD5='54c61dce76b1281b4161d53d096d6ffe' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.3.17-gog2.12.0.16' UNITY3D_NAME='Hand of Fate' ## TODO: Check if the Steam libraries could be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-haven.sh0000750000000000000000000000615214471751340013260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Haven # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='haven' GAME_NAME='Haven' ARCHIVE_BASE_2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386).exe' ARCHIVE_BASE_2_MD5='8dca64cf157ae335dab462d52253aeeb' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-1.bin' ARCHIVE_BASE_2_PART1_MD5='03a08ea5c6b1a80b7a2f869da91d2df8' ARCHIVE_BASE_2_PART2_NAME='setup_haven_v1.1.302_official_(64bit)_(54386)-2.bin' ARCHIVE_BASE_2_PART2_MD5='04e4c87ee647fd0511fdda7ff47dc787' ARCHIVE_BASE_2_SIZE='5900000' ARCHIVE_BASE_2_VERSION='1.1.302-gog54386' ARCHIVE_BASE_2_URL='https://www.gog.com/game/haven' ARCHIVE_BASE_1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728).exe' ARCHIVE_BASE_1_MD5='f5b9d5f71a2def217dc9e0f632a04360' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-1.bin' ARCHIVE_BASE_1_PART1_MD5='598b4c5592f8f3aa4ab95c49cdf80fe0' ARCHIVE_BASE_1_PART2_NAME='setup_haven_v1.1.296_official_(64bit)_(53728)-2.bin' ARCHIVE_BASE_1_PART2_MD5='00990daa83f70d6440bb4ccabc07981a' ARCHIVE_BASE_1_SIZE='5900000' ARCHIVE_BASE_1_VERSION='1.1.296-gog53728' ARCHIVE_BASE_0_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981).exe' ARCHIVE_BASE_0_MD5='1770f0efd829dc486cc37242085518d3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_haven_v1.1.258-rc_official_(64bit)_(49981)-1.bin' ARCHIVE_BASE_0_PART1_MD5='5aec89c6383ab1ee8f1371a9130e01f5' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.1.258-gog49981' UNITY3D_NAME='haven' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_RELATIVE_PATH='app' CONTENT_GAME0_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/TheGameBakers/Haven' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-headspun.sh0000750000000000000000000000354614471751340013772 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Headspun # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='headspun' GAME_NAME='Headspun' ARCHIVE_BASE_0_NAME='headspun-dazed-edition-win.zip' ARCHIVE_BASE_0_MD5='0e0621486930ba3a0dda64727423c603' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://svperstring.itch.io/headspun-dazed-edition' UNITY3D_NAME='Headspun' CONTENT_PATH_DEFAULT='Headspun/Headspun' CONTENT_GAME0_DATA_FILES=' Subtitles Videos' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/OptionsData.txt ${UNITY3D_NAME}_Data/PlayerData.txt" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-heal.sh0000750000000000000000000000313514471751340013066 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Heal # send your bug reports to bugs@dotslashplay.it ### script_version=20240119.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='heal' GAME_NAME='Heal' ARCHIVE_BASE_0_NAME='setup_heal_1.0_(66845).exe' ARCHIVE_BASE_0_MD5='7b30197a77652ff9fbbff9fe03bdbafa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='241396' ARCHIVE_BASE_0_VERSION='1.0-gog66845' ARCHIVE_BASE_0_URL='https://www.gog.com/game/heal' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' heal_gog.exe' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/healgog' APP_MAIN_EXE='heal_gog.exe' PKG_MAIN_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-helium-rain.sh0000750000000000000000000000700414471751340014366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Helium Rain # send your bug reports to bugs@dotslashplay.it ### script_version=20231213.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='helium-rain' GAME_NAME='Helium Rain' ARCHIVE_BASE_GOG_0_NAME='helium_rain_1_3_6_27662.sh' ARCHIVE_BASE_GOG_0_MD5='6e430338f7292ebe9c864603034fb9f1' ARCHIVE_BASE_GOG_0_SIZE='3930976' ARCHIVE_BASE_GOG_0_VERSION='1.3.6-gog27662' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/helium_rain' ARCHIVE_BASE_ITCH_0_NAME='helium-rain-linux.zip' ARCHIVE_BASE_ITCH_0_MD5='8d43439154be0d3de242b39f63decd7c' ARCHIVE_BASE_ITCH_0_SIZE='3930288' ARCHIVE_BASE_ITCH_0_VERSION='1.3.6-itch.2019.02.09' ARCHIVE_BASE_ITCH_0_URL='https://deimos-games.itch.io/helium-rain' UNREALENGINE4_NAME='HeliumRain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" APP_MAIN_ICON_GOG='../support/icon.png' APP_MAIN_ICONS_LIST_ITCH='APP_MAIN_ICON_ITCH_16 APP_MAIN_ICON_ITCH_24 APP_MAIN_ICON_ITCH_32 APP_MAIN_ICON_ITCH_64 APP_MAIN_ICON_ITCH_96 APP_MAIN_ICON_ITCH_128 APP_MAIN_ICON_ITCH_256 APP_MAIN_ICON_ITCH_512' APP_MAIN_ICON_ITCH_16='Icons/16x16.png' APP_MAIN_ICON_ITCH_24='Icons/24x24.png' APP_MAIN_ICON_ITCH_32='Icons/32x32.png' APP_MAIN_ICON_ITCH_64='Icons/64x64.png' APP_MAIN_ICON_ITCH_96='Icons/96x96.png' APP_MAIN_ICON_ITCH_128='Icons/128x128.png' APP_MAIN_ICON_ITCH_256='Icons/256x256.png' APP_MAIN_ICON_ITCH_512='Icons/512x512.png' ## The following hacks can not be avoided by forcing the use of system-provided SDL, ## because the game crashes on launch when it is used instead of the shipped SDL build. ### The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game does not output any sound when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hellblade-senuas-sacrifice.sh0000750000000000000000000000635214471751340017317 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Hellblade: Senua's Sacrifice # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hellblade-senuas-sacrifice' GAME_NAME='Hellblade: Senuaʼs Sacrifice' ARCHIVE_BASE_1_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018).exe' ARCHIVE_BASE_1_MD5='56e77d9dfc1a2cc871488a9a92fc2280' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-1.bin' ARCHIVE_BASE_1_PART1_MD5='0f8df5e451d8bbe1aea86947f271d2d6' ARCHIVE_BASE_1_PART2_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-2.bin' ARCHIVE_BASE_1_PART2_MD5='a06d8b220be8acd257c5f4b2a16332c6' ARCHIVE_BASE_1_PART3_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-3.bin' ARCHIVE_BASE_1_PART3_MD5='fd53c212060d9b76de3ad04465cdd980' ARCHIVE_BASE_1_PART4_NAME='setup_hellblade_senuas_sacrifice_1.03.1.202112071122_(52018)-4.bin' ARCHIVE_BASE_1_PART4_MD5='f8ed203da482970d81fa0c6e09471a14' ARCHIVE_BASE_1_SIZE='20000000' ARCHIVE_BASE_1_VERSION='1.03.1-gog52018' ARCHIVE_BASE_1_URL='https://www.gog.com/game/hellblade_senuas_sacrifice_pack' ARCHIVE_BASE_0_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168).exe' ARCHIVE_BASE_0_MD5='0568c6e5c57dd64cc0a23a77fe54aafd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b01d26d7555d26f2dc1cb8a361564cb7' ARCHIVE_BASE_0_PART2_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-2.bin' ARCHIVE_BASE_0_PART2_MD5='8e7e4e73fa6a535a4856005be7ea8cbb' ARCHIVE_BASE_0_PART3_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-3.bin' ARCHIVE_BASE_0_PART3_MD5='fcabee54e6f1072cbdbd46eb2a8ca0f8' ARCHIVE_BASE_0_PART4_NAME='setup_hellblade_senuas_sacrifice_1.03_(25168)-4.bin' ARCHIVE_BASE_0_PART4_MD5='6fce92bde8bb15b0e706a7030874a3a9' ARCHIVE_BASE_0_SIZE='23000000' ARCHIVE_BASE_0_VERSION='1.03-gog25168' UNREALENGINE4_NAME='hellbladegame' CONTENT_PATH_DEFAULT='.' HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/hellbladegame-windowsnoeditor.pak" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-help-will-come-tomorrow.sh0000750000000000000000000000375114471751340016665 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Help Will Come Tomorrow # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='help-will-come-tomorrow' GAME_NAME='Help Will Come Tomorrow' ARCHIVE_BASE_0_NAME='help_will_come_tomorrow_2_2_46357.sh' ARCHIVE_BASE_0_MD5='571a9565aa3e6d9db9017ca51c916b3b' ARCHIVE_BASE_0_SIZE='1572046' ARCHIVE_BASE_0_VERSION='2.2-gog46357' ARCHIVE_BASE_0_URL='https://www.gog.com/game/help_will_come_tomorrow' UNITY3D_NAME='Help Will Come Tomorrow' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-heroines-quest-the-herald-of-ragnarok.sh0000750000000000000000000000501514471751340021346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Heroine's Quest: The Herald of Ragnarok # send your bug reports to bugs@dotslashplay.it ### script_version=20241216.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='heroines-quest-the-herald-of-ragnarok' GAME_NAME='Heroine’s Quest: The Herald of Ragnarok' ARCHIVE_BASE_FIREFLOWER_0_NAME='Heroines_Quest_Linux.zip' ARCHIVE_BASE_FIREFLOWER_0_MD5='a421c0e15731510130d26343942f2553' ARCHIVE_BASE_FIREFLOWER_0_SIZE='487786' ARCHIVE_BASE_FIREFLOWER_0_VERSION='1.2.3-fireflower' ARCHIVE_BASE_FIREFLOWER_0_URL='https://fireflowergames.com/products/heroines-quest' ARCHIVE_BASE_GOG_0_NAME='heroine_s_quest_the_herald_of_ragnarok_1_2_9_2_68339.sh' ARCHIVE_BASE_GOG_0_MD5='a9cfa6ca34e28fa4b06d7d6fc565421d' ARCHIVE_BASE_GOG_0_SIZE='500000' ARCHIVE_BASE_GOG_0_VERSION='1.2.9.2-gog68339' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/heroines_quest_the_herald_of_ragnarok' CONTENT_PATH_DEFAULT_FIREFLOWER='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' acsetup.cfg *.0?? *.ags *.exe *.tra *.vox' CONTENT_DOC_MAIN_FILES=' licenses history.txt' CONTENT_DOC0_MAIN_RELATIVE_PATH_GOG='..' CONTENT_DOC0_MAIN_FILES=' *.pdf' APP_MAIN_SCUMMID='ags:heroinesquest' APP_MAIN_ICON_FIREFLOWER="Heroine's Quest.exe" APP_MAIN_ICON_GOG='../../support/icon.png' ## Ensure easy updates from packages generated with pre-20241216.2 game scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} heroines-quest-the-herald-of-ragnarok-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-hitman.sh0000750000000000000000000000403614471751340013436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hitman 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240522.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='hitman' GAME_NAME='Hitman: Codename 47' ARCHIVE_BASE_0_NAME='setup_hitman_codename_47_b192_(17919).exe' ARCHIVE_BASE_0_MD5='018d8191bfa45c16995537e3a93f96bd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0b192-gog17919' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hitman' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dlc *.dll *.exe *.ini' CONTENT_GAME_DATA_FILES=' repeat.* intro.zip optionsscreen.zip alllevels c0_* c1_* c2_* c3_* c4_* c5_* cutscenes music setup sounds' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' *.cfg *.ini *.sav' WINE_VIRTUAL_DESKTOP='auto' ## Without dmsynth, the game is stuck on a black screen instead of playing the intro videos. WINE_WINETRICKS_VERBS='dmsynth' APP_MAIN_EXE='hitman.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_BIN' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hoa.sh0000750000000000000000000000400714471751340012723 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-hob.sh0000750000000000000000000000370614471751340012731 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hob # send your bug reports to bugs@dotslashplay.it ### script_version=20240810.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='hob-game' GAME_NAME='Hob' ARCHIVE_BASE_0_NAME='setup_hob_1.17.3.0_(16560).exe' ARCHIVE_BASE_0_MD5='e99ca23c70ea3bfd4335fee7ca5a618e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_hob_1.17.3.0_(16560)-1.bin' ARCHIVE_BASE_0_PART1_MD5='25455a965280f7ac6f94f4ff7d96b852' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.17.3.0-gog16560' ARCHIVE_BASE_0_URL='https://www.gog.com/game/hob' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.cfg *.dll hob.exe hoblauncher.exe' CONTENT_GAME_DATA_FILES=' audiobanks media music paks' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Runic Games/HOB' APP_MAIN_EXE='hob.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hollow-knight.sh0000750000000000000000000000673214471751340014751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 VA # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Hollow Knight # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hollow-knight' GAME_NAME='Hollow Knight' ARCHIVE_BASE_3_NAME='hollow_knight_1_5_78_11833_51218.sh' ARCHIVE_BASE_3_MD5='ad36d98ec636b09796667f0b124ff5bb' ARCHIVE_BASE_3_SIZE='7900000' ARCHIVE_BASE_3_VERSION='1.5.78-gog51218' ARCHIVE_BASE_3_URL='https://www.gog.com/game/hollow_knight' ARCHIVE_BASE_2_NAME='hollow_knight_1_4_3_2_23987.sh' ARCHIVE_BASE_2_MD5='520af5ebe8ac3977faaafc5d2ed8a779' ARCHIVE_BASE_2_SIZE='7800000' ARCHIVE_BASE_2_VERSION='1.4.3.2-gog23987' ARCHIVE_BASE_1_NAME='hollow_knight_en_1_3_1_5_20240.sh' ARCHIVE_BASE_1_MD5='197d9ffc7e0be447849e22a04da836e4' ARCHIVE_BASE_1_SIZE='7100000' ARCHIVE_BASE_1_VERSION='1.3.1.5-gog20240' ARCHIVE_BASE_0_NAME='gog_hollow_knight_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='0d18baf29d5552dc094ca2bfe5fcaae6' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.0.3.1-gog2.1.0.2' UNITY3D_NAME='Hollow Knight' ## Only older builds include the ScreenSelector.so plugin. UNITY3D_PLUGINS_2=' ScreenSelector.so' UNITY3D_PLUGINS_1="$UNITY3D_PLUGINS_2" UNITY3D_PLUGINS_0="$UNITY3D_PLUGINS_2" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20230406.2 game script. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} hollow-knight-assets" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' ## Only older builds include the ScreenSelector.so plugin. PKG_BIN_DEPENDENCIES_LIBRARIES_2=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_1="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" PKG_BIN_DEPENDENCIES_LIBRARIES_0="$PKG_BIN_DEPENDENCIES_LIBRARIES_2" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Enforce a consistent Unity3D name. if [ -e 'hollow_knight.x86_64' ]; then mv 'hollow_knight.x86_64' "$(unity3d_name)" fi if [ -e 'hollow_knight_Data' ]; then mv 'hollow_knight_Data' "$(unity3d_name)_Data" fi ## Drop the "Plugins" directory if it is empty. rmdir --ignore-fail-on-non-empty "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-horizon-zero-dawn.sh0000750000000000000000000002274514471751340015561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Horizon Zero Dawn # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='horizon-zero-dawn' GAME_NAME='Horizon Zero Dawn' ARCHIVE_BASE_1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037).exe' ARCHIVE_BASE_1_MD5='cbcd8e966a6ffd5881d9ad5f21896171' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-1.bin' ARCHIVE_BASE_1_PART1_MD5='9a34a22b24fb0f0e44c17afccec79fdf' ARCHIVE_BASE_1_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-2.bin' ARCHIVE_BASE_1_PART2_MD5='0e961289ae2e6a84440d354d98a74325' ARCHIVE_BASE_1_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-3.bin' ARCHIVE_BASE_1_PART3_MD5='f7c23754103e3bcf02eec7216b9e94e3' ARCHIVE_BASE_1_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-4.bin' ARCHIVE_BASE_1_PART4_MD5='4ed606b3ac83c644dab85bbc1938057a' ARCHIVE_BASE_1_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-5.bin' ARCHIVE_BASE_1_PART5_MD5='0a08cc1604d50b5c971bfaa80008c9d9' ARCHIVE_BASE_1_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-6.bin' ARCHIVE_BASE_1_PART6_MD5='8d7b79803c494726889d1a21ae55ae63' ARCHIVE_BASE_1_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-7.bin' ARCHIVE_BASE_1_PART7_MD5='81bdcd0eb672b0e600af02724745a942' ARCHIVE_BASE_1_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-8.bin' ARCHIVE_BASE_1_PART8_MD5='1643dff8d1c8e52506e48549554a14da' ARCHIVE_BASE_1_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-9.bin' ARCHIVE_BASE_1_PART9_MD5='7a7133c16ac38ce9b4e9abfddea62f89' ARCHIVE_BASE_1_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-10.bin' ARCHIVE_BASE_1_PART10_MD5='f9df3bdac52376d3054f379e2792307c' ARCHIVE_BASE_1_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-11.bin' ARCHIVE_BASE_1_PART11_MD5='f4b7607bec174dad7f8452d6c5b0009a' ARCHIVE_BASE_1_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-12.bin' ARCHIVE_BASE_1_PART12_MD5='7681476938581baf216a54aa45d98fc4' ARCHIVE_BASE_1_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-13.bin' ARCHIVE_BASE_1_PART13_MD5='ea24163717d52a3b1df0673711088143' ARCHIVE_BASE_1_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-14.bin' ARCHIVE_BASE_1_PART14_MD5='550d3b76dfa565f632b0eddea24bbcf3' ARCHIVE_BASE_1_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-15.bin' ARCHIVE_BASE_1_PART15_MD5='581a66858d19636df0e073929c778f0a' ARCHIVE_BASE_1_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-16.bin' ARCHIVE_BASE_1_PART16_MD5='057b513a63935e79e20b6fad76d1e05d' ARCHIVE_BASE_1_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-17.bin' ARCHIVE_BASE_1_PART17_MD5='67b713b3f6482b43a493f724c3d99e71' ARCHIVE_BASE_1_PART18_NAME='setup_horizon_zero_dawntm_complete_edition_7517962_(64bit)_(53037)-18.bin' ARCHIVE_BASE_1_PART18_MD5='91eedb3db10cdaaa63f930891a3780f2' ARCHIVE_BASE_1_SIZE='76000000' ARCHIVE_BASE_1_VERSION='1.11.7517962-gog53037' ARCHIVE_BASE_1_URL='https://www.gog.com/game/horizon_zero_dawn_complete_edition' ARCHIVE_BASE_0_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600).exe' ARCHIVE_BASE_0_MD5='f14a4c244306f169896e168f99d7a719' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-1.bin' ARCHIVE_BASE_0_PART1_MD5='26260f87628d433912c4155481e7aa48' ARCHIVE_BASE_0_PART2_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-2.bin' ARCHIVE_BASE_0_PART2_MD5='4dedb5420d45ff65ce0ddd857d2a6cad' ARCHIVE_BASE_0_PART3_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-3.bin' ARCHIVE_BASE_0_PART3_MD5='79aee3ddc0ce308683a6715521b0daa2' ARCHIVE_BASE_0_PART4_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-4.bin' ARCHIVE_BASE_0_PART4_MD5='e2386e5e027c44e9f923fb027ad0f391' ARCHIVE_BASE_0_PART5_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-5.bin' ARCHIVE_BASE_0_PART5_MD5='032be65a01c84f934edfbfa326258e90' ARCHIVE_BASE_0_PART6_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-6.bin' ARCHIVE_BASE_0_PART6_MD5='3b42edf5efe308cf3c1db72bc1ef9021' ARCHIVE_BASE_0_PART7_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-7.bin' ARCHIVE_BASE_0_PART7_MD5='f6216943ef02d605752a1156b0559df3' ARCHIVE_BASE_0_PART8_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-8.bin' ARCHIVE_BASE_0_PART8_MD5='703d33ab31b1ce23587cae3f8eef1453' ARCHIVE_BASE_0_PART9_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-9.bin' ARCHIVE_BASE_0_PART9_MD5='27f01f0545e732d61a9ceb05495ab9ef' ARCHIVE_BASE_0_PART10_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-10.bin' ARCHIVE_BASE_0_PART10_MD5='25c10d76ad8399802cdec42230a129bf' ARCHIVE_BASE_0_PART11_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-11.bin' ARCHIVE_BASE_0_PART11_MD5='7daf2cf2f17e5bd5aa22707dc690fc4f' ARCHIVE_BASE_0_PART12_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-12.bin' ARCHIVE_BASE_0_PART12_MD5='5a23643c5a474808503cb30d057010f8' ARCHIVE_BASE_0_PART13_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-13.bin' ARCHIVE_BASE_0_PART13_MD5='98bab66a848465dab195fe2c292a5283' ARCHIVE_BASE_0_PART14_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-14.bin' ARCHIVE_BASE_0_PART14_MD5='e9817e15706c72ad447881898abe0379' ARCHIVE_BASE_0_PART15_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-15.bin' ARCHIVE_BASE_0_PART15_MD5='f456a7bfed43b135fb8682481e284cb1' ARCHIVE_BASE_0_PART16_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-16.bin' ARCHIVE_BASE_0_PART16_MD5='398b6c64e1087a6f3deab3104c10a153' ARCHIVE_BASE_0_PART17_NAME='setup_horizon_zero_dawntm_complete_edition_6278995_(64bit)_(44600)-17.bin' ARCHIVE_BASE_0_PART17_MD5='9d0616c36329c3346bad3bdf55ead984' ARCHIVE_BASE_0_SIZE='71000000' ARCHIVE_BASE_0_VERSION='1.10.6278995-gog44600' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' localcachedx12 tools *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' packed_dx12/initial_english.bin packed_dx12/remainder_english.bin packed_dx12/dlc1_english.bin' CONTENT_GAME_L10N_FR_FILES=' packed_dx12/initial_french.bin packed_dx12/remainder_french.bin packed_dx12/dlc1_french.bin' CONTENT_GAME_MOVIES_FILES=' movies' CONTENT_GAME_DATA_FILES=' packed_dx12/fgrwin32.bin packed_dx12/patch.bin' CONTENT_GAME_DATA_DLC1_FILES=' packed_dx12/dlc1.bin' HUGE_FILES_DATA=' packed_dx12/initial.bin packed_dx12/remainder.bin' WINE_DIRECT3D_RENDERER='vkd3d' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Horizon Zero Dawn' WINE_WINETRICKS_VERBS='mfc140' APP_MAIN_EXE='horizonzerodawn.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_MOVIES PKG_DATA_DLC1 PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DLC1_ID="${PKG_DATA_ID}-dlc1" PKG_DATA_DLC1_DESCRIPTION="$PKG_DATA_DESCRIPTION - dlc1" PKG_DATA_DEPS="$PKG_DATA_DEPS $PKG_DATA_DLC1_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_MOVIES_ID $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hot-pot-panic.sh0000750000000000000000000000330714471751340014640 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hot Pot Panic # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hot-pot-panic' GAME_NAME='Hot Pot Panic' ARCHIVE_BASE_0_NAME='hot_pot_panic_win_1.zip' ARCHIVE_BASE_0_MD5='b4d30e19a87fa7353e588eb449becd19' ARCHIVE_BASE_0_SIZE='53000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://keanerie.itch.io/hot-pot-panic' UNITY3D_NAME='hot_pot_panic' CONTENT_PATH_DEFAULT='hot_pot_panic_win_1' ## TODO: Use persistent storage for saved games and settings. PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hotline-miami-1.sh0000750000000000000000000000540514471751340015051 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Daguhh # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hotline Miami 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hotline-miami-1' GAME_NAME='Hotline Miami' ARCHIVE_BASE_HUMBLE_0_NAME='HotlineMiami_linux_1392944501.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f68e5680f7f54f12b313cb533af53548' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble.2014-02-20' ARCHIVE_BASE_HUMBLE_0_SIZE='590000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/hotline-miami' ARCHIVE_BASE_GOG_0_NAME='gog_hotline_miami_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='ce95f10b1cba248b531228936c491eb4' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.4' ARCHIVE_BASE_GOG_0_SIZE='540000' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/hotline_miami' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN_FILES=' hotline_launcher Hotline' CONTENT_GAME_DATA_FILES=' *.ogg *.wad' APP_MAIN_EXE='hotline_launcher' ## Only the GOG.com archive provides a game icon. APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libCgGL.so libCg.so libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0 libX11.so.6 libX11-xcb.so.1 libxcb.so.1 libXext.so.6 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set execution permissions on all binaries. chmod 755 'Hotline' ) # Include game data ## Only the GOG.com archive provides a game icon. case "$(current_archive)" in ('ARCHIVE_BASE_GOG_'*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hounds-of-valor.sh0000750000000000000000000000403414471751340015177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Hounds of Valor # send your bug reports to bugs@dotslashplay.it ### script_version=20231102.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='hounds-of-valor' GAME_NAME='Hounds of Valor' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='HoundsOfValor_Demo_v05_Linux.zip' ARCHIVE_BASE_DEMO_0_MD5='713a46b42dfb304f44b2b1dc456223c5' ARCHIVE_BASE_DEMO_0_SIZE='630000' ARCHIVE_BASE_DEMO_0_VERSION='0.5-itch1' ARCHIVE_BASE_DEMO_0_URL='https://dogatworkgames.itch.io/houndsofvalor' UNITY3D_NAME='HoundsLinux' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID_DEMO="$GAME_ID_DEMO" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-hugo-1.sh0000750000000000000000000000351414471751340013256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Hugo 1: Hugo's House of Horrors # send your bug reports to bugs@dotslashplay.it ### script_version=20240811.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='hugo-1' GAME_NAME='Hugo I: Hugo’s House of Horrors' ARCHIVE_BASE_0_NAME='the_hugo_trilogy_en_gog_2_19789.sh' ARCHIVE_BASE_0_MD5='48a853bb5936e29bf22cb1d4ae8fcfdb' ARCHIVE_BASE_0_SIZE='100000' ARCHIVE_BASE_0_VERSION='2-gog19789' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_hugo_trilogy' CONTENT_PATH_DEFAULT='data/noarch/data/hwin_1' CONTENT_GAME_MAIN_FILES=' *.bsf *.dat' CONTENT_DOC_MAIN_FILES=' *.txt' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.txt' APP_MAIN_SCUMMID='hugo:hugo1' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "${PLAYIT_WORKDIR}" exit 0 games/play-iconoclasts.sh0000750000000000000000000000441314471751340014476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Iconoclasts # send your bug reports to bugs@dotslashplay.it ### script_version=20240708.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='iconoclasts' GAME_NAME='Iconoclasts' ARCHIVE_BASE_0_NAME='iconoclasts_1_15_chinese_24946.sh' ARCHIVE_BASE_0_MD5='f93af13b81659e76a953dfff584d6fc9' ARCHIVE_BASE_0_SIZE='187633' ARCHIVE_BASE_0_VERSION='1.15-gog.24946' ARCHIVE_BASE_0_URL='https://www.gog.com/game/iconoclasts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' bin64' CONTENT_GAME_BIN32_FILES=' bin32' CONTENT_GAME_DATA_FILES=' data Assets.dat gamecontrollerdb.txt icon.bmp' USER_PERSISTENT_FILES=' lang.cfg data/point data/settings data/save*' APP_MAIN_EXE_BIN32='bin32/Chowdren' APP_MAIN_EXE_BIN64='bin64/Chowdren' APP_MAIN_ICON='icon.bmp' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ikenfell.sh0000750000000000000000000000556714471751340013761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ikenfell # send your bug reports to bugs@dotslashplay.it ### script_version=20240501.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='ikenfell' GAME_NAME='Ikenfell' ARCHIVE_BASE_0_NAME='setup_ikenfell_1.0.3_(64bit)_(52030).exe' ARCHIVE_BASE_0_MD5='edf00ffea67cb1c5007cf0dbaba618c4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='439559' ARCHIVE_BASE_0_VERSION='1.0.3-gog52030' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ikenfell' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll sdl2.dll ikenfellwin.exe' CONTENT_GAME_DATA_FILES=' atlas audio data scripts' ## The following .dll files are Mono libraries. CONTENT_GAME0_DATA_PATH="${CONTENT_PATH_DEFAULT}/contents/resources" CONTENT_GAME0_DATA_FILES=' gameengine.dll littlewitch.dll mono.posix.dll mono.security.dll moonsharp.interpreter.dll mscorlib.dll system.configuration.dll system.core.dll system.data.dll system.dll system.drawing.dll system.numerics.dll system.runtime.serialization.dll system.security.dll system.xml.dll system.xml.linq.dll' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/ikenfell' WINE_WINEPREFIX_TWEAKS='mono' APP_MAIN_EXE='ikenfellwin.exe' ## The type must by explicitly set to ensure the binary is run through WINE, not Mono. APP_MAIN_TYPE='wine' ## The game crashes on launch when the ALSA backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' ## The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-indivisible.sh0000750000000000000000000000547614471751340014470 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=20230623.1 GAME_ID='indivisible' GAME_NAME='Indivisible' ARCHIVE_BASE_0='indivisible_42940_39272.sh' ARCHIVE_BASE_0_MD5='7328915691beb21dc77494faf915cfbe' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='42940-gog39272' ARCHIVE_BASE_0_URL='https://www.gog.com/game/indivisible' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/x86_64-pc-linux-gnu' CONTENT_LIBS_BIN_FILES=' libavcodec.so.57 libavfilter.so.6 libavformat.so.57 libavutil.so.55 libdiscord-rpc.so libGalaxy64.so libSDL2_locale.so.0 libswresample.so.2 libswscale.so.4 libvpx.so.5' CONTENT_GAME_BIN_FILES=' Indivisible.x86_64-pc-linux-gnu' CONTENT_GAME_DATA_FILES=' pkgs' CONTENT_DOC_DATA_FILES=' LICENSES.md' APP_MAIN_EXE='Indivisible.x86_64-pc-linux-gnu' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libFAudio.so.0 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL_kitchensink.so.1 libstdc++.so.6 libvorbisenc.so.2 libvorbisfile.so.3 libvorbis.so.0' # Use shipped build of libSDL_kitchensink.so.1, # to avoid a symbol lookup error: # undefined symbol: Kit_GetPlayerVideoDataOGL PKG_BIN_DEPENDENCIES_LIBRARIES=$( printf '%s' "$PKG_BIN_DEPENDENCIES_LIBRARIES" | \ grep --invert-match --fixed-strings --line-regexp 'libSDL_kitchensink.so.1' ) CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL_kitchensink.so.1" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inkulinati.sh0000750000000000000000000000456314471751340014332 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Inkulinati # send your bug reports to bugs@dotslashplay.it ### script_version=20240524.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='inkulinati' GAME_NAME='Inkulinati' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ## Archives ### Full game ARCHIVE_BASE_0_NAME='setup_inkulinati_1.47.2.0_(64bit)_(71246).exe' ARCHIVE_BASE_0_MD5='099f8976a9142d736282316f37028f60' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='3934716' ARCHIVE_BASE_0_VERSION='1.47.2.0-gog71246' ARCHIVE_BASE_0_URL='https://www.gog.com/game/inkulinati' ### Free demo ## The free demo is no longer available from gog.com. ARCHIVE_BASE_DEMO_0_NAME='setup_inkulinati_demo_1.1_(42755).exe' ARCHIVE_BASE_DEMO_0_MD5='8e081a8cf9e9457757c1a66b72c9a5f0' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1258482' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog42755' UNITY3D_NAME='inkulinati' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Yaza Games/Inkulinati' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-inner.sh0000750000000000000000000000421114471751340013264 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Inner # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='inner' GAME_NAME='Inner' ## This DRM-free build is no longer available from itch.io, ## the developer decided to only provide a Windows build. ARCHIVE_BASE_0_NAME='INNER_Linux.zip' ARCHIVE_BASE_0_MD5='f5232090f849f8fbb23c609b4ca28a0e' ARCHIVE_BASE_0_SIZE='136979' ARCHIVE_BASE_0_VERSION='1.0-itch' UNITY3D_NAME='INNER' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-intrusion-2.sh0000750000000000000000000000740214471751340014347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Intrusion 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='intrusion-2' GAME_NAME='Intrusion 2' ARCHIVE_BASE_0_NAME='intrusion2-1370288626-bin' ARCHIVE_BASE_0_MD5='de6a30d7fb3d117065f11743b4f0a13a' ARCHIVE_BASE_0_SIZE='87000' ARCHIVE_BASE_0_VERSION='1.024-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/intrusion-2' FAKE_HOME_PERSISTENT_DIRECTORIES=' intrusion2' APP_MAIN_EXE='intrusion-2' PKG_MAIN_ARCH='32' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libSM.so.6 libssl3.so libstdc++.so.6 libX11.so.6 libXext.so.6 libXinerama.so.1 libXt.so.6 libXtst.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of extra required archives ARCHIVE_REQUIRED_GSTREAMER_NAME='gstreamer0.10.tar.gz' ARCHIVE_REQUIRED_GSTREAMER_MD5='dcd836dfd0dfdf9882557b5a13f89a3c' ARCHIVE_REQUIRED_GSTREAMER_URL='https://downloads.dotslashplay.it/resources/gstreamer/' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_NAME='gst-plugins-base0.10.tar.gz' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_MD5='13e30627414178684de753e5f6105a43' ARCHIVE_REQUIRED_GST_PLUGINS_BASE_URL='https://downloads.dotslashplay.it/resources/gstreamer/' archive_initialize_required \ 'ARCHIVE_GSTREAMER' \ 'ARCHIVE_REQUIRED_GSTREAMER' archive_initialize_required \ 'ARCHIVE_GST_PLUGINS_BASE' \ 'ARCHIVE_REQUIRED_GST_PLUGINS_BASE' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_NAME='intrusion-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='f31db2695382a996934f8f8dbb7c0f56' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/intrusion-2/' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction 'ARCHIVE_GSTREAMER' archive_extraction 'ARCHIVE_GST_PLUGINS_BASE' if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data CONTENT_GSTREAMER_PATH='gstreamer0.10' CONTENT_GSTREAMER_FILES=' libgstreamer-0.10.so.0 libgstreamer-0.10.so.0.30.0' CONTENT_GST_PLUGINS_BASE_PATH='gst-plugins-base0.10' CONTENT_GST_PLUGINS_BASE_FILES=' libgstinterfaces-0.10.so.0 libgstinterfaces-0.10.so.0.25.0' content_inclusion 'GSTREAMER' "$(current_package)" "$(path_libraries)" content_inclusion 'GST_PLUGINS_BASE' "$(current_package)" "$(path_libraries)" if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 64x64' content_inclusion 'ICONS' "$(current_package)" "$(path_icons)" fi install -D --mode=755 \ "$(archive_path "$(current_archive)")" \ "$(package_path "$(current_package)")$(path_game_data)/intrusion-2" rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-itorah.sh0000750000000000000000000000352414471751340013445 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-jazzpunk.sh0000750000000000000000000000676514471751340014045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jazzpunk # send your bug reports to bugs@dotslashplay.it ### script_version=20231117.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='jazzpunk' GAME_NAME='Jazzpunk' ## This DRM-free build is no longer available for sale from Humble Bundle ARCHIVE_BASE_0_NAME='Jazzpunk-Oct-30-2017-Linux.zip' ARCHIVE_BASE_0_MD5='e8ecf692ded05cea80701d417fa565c1' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='2017.10.30-humble1' ARCHIVE_BASE_MULTIARCH_0_NAME='Jazzpunk-July6-2014-Linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='50ad5722cafe16dc384e83a4a4e19480' ARCHIVE_BASE_MULTIARCH_0_SIZE='1600000' ARCHIVE_BASE_MULTIARCH_0_VERSION='2014.07.06-humble1' UNITY3D_NAME='Jazzpunk' UNITY3D_PLUGINS=' ScreenSelector.so' ## The game does not start if the CSteamworks library is not provided. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN32 PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional extra archives ARCHIVE_OPTIONAL_ICONS_0_NAME='jazzpunk_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='d1fe700322ad08f9ac3dec1c29512f94' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/jazzpunk' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write ;; (*) set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-jotun.sh0000750000000000000000000000664014471751340013320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Jotun # send your bug reports to bugs@dotslashplay.it ### script_version=20230625.2 GAME_ID='jotun' GAME_NAME='Jotun' ARCHIVE_BASE_0='jotun_12_09_2019_32415.sh' ARCHIVE_BASE_0_MD5='67b9b5ee91016014cb02be170a3a295a' ARCHIVE_BASE_0_SIZE='4100000' ARCHIVE_BASE_0_VERSION='2019.09.12-gog32415' ARCHIVE_BASE_0_URL='https://www.gog.com/game/jotun' ARCHIVE_BASE_OLD_2='gog_jotun_2.3.0.5.sh' ARCHIVE_BASE_OLD_2_MD5='e79a13252802fe4fe008e817aa2d4f43' ARCHIVE_BASE_OLD_2_SIZE='4200000' ARCHIVE_BASE_OLD_2_VERSION='2017.07.27-gog2.3.0.5' ARCHIVE_BASE_OLD_1='gog_jotun_2.2.0.4.sh' ARCHIVE_BASE_OLD_1_MD5='451d27e2e3747ed137e6ec5f3956c5da' ARCHIVE_BASE_OLD_1_SIZE='4200000' ARCHIVE_BASE_OLD_1_VERSION='2016.12.21-gog2.2.0.4' ARCHIVE_BASE_OLD_0='gog_jotun_2.1.0.2.sh' ARCHIVE_BASE_OLD_0_MD5='3f6976f56a4da1d6f274407b1342de7f' ARCHIVE_BASE_OLD_0_SIZE='4200000' ARCHIVE_BASE_OLD_0_VERSION='1.0-gog2.1.0.2' UNITY3D_NAME='Jotun' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN_DEPENDENCIES_LIBRARIES_OLD=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" PKG_BIN64_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-journey-to-the-savage-planet.sh0000750000000000000000000000403314471751340017571 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Journey to the Savage Planet # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='journey-to-the-savage-planet' GAME_NAME='Journey to the Savage Planet' ARCHIVE_BASE_0_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657).exe' ARCHIVE_BASE_0_MD5='d70cddb3d207b8f557ce6dfddc90c9eb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0ae4643eb7a58450449c4fec4a0aea75' ARCHIVE_BASE_0_PART2_NAME='setup_journey_to_the_savage_planet_1.0.10_(44657)-2.bin' ARCHIVE_BASE_0_PART2_MD5='155d3018829b5e4875a445d221dae8c0' ARCHIVE_BASE_0_SIZE='6500000' ARCHIVE_BASE_0_VERSION='1.0.10-gog44657' ARCHIVE_BASE_0_URL='https://www.gog.com/game/journey_to_the_savage_planet' UNREALENGINE4_NAME='towers' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-just-cause-2.sh0000750000000000000000000001423414471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Just Cause 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='just-cause-2' GAME_NAME='Just Cause 2' ARCHIVE_BASE_0_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335).exe' ARCHIVE_BASE_0_MD5='32cc043750be9e09354a3605f05f7de4' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-1.bin' ARCHIVE_BASE_0_PART1_MD5='4f100ae3a4ba93b72de4247aa7a61f29' ARCHIVE_BASE_0_PART2_NAME='setup_just_cause_2_-_complete_edition_1.0.0.2_(50335)-2.bin' ARCHIVE_BASE_0_PART2_MD5='338797d683e65f69c834731f41855a12' ARCHIVE_BASE_0_SIZE='9100000' ARCHIVE_BASE_0_VERSION='1.0.0.2-gog50335' ARCHIVE_BASE_0_URL='https://www.gog.com/game/just_cause_2_complete_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_L10N_EN_FILES=' sound/fmod/dialog_mission?specific_eng.fsb sound/fmod/dialog_pa_eng.fsb' CONTENT_GAME_L10N_FR_FILES=' sound/fmod/dialog_mission?specific_fre.fsb sound/fmod/dialog_pa_fre.fsb' CONTENT_DOC_L10N_EN_FILES=' jc2 readme_en.rtf' CONTENT_DOC_L10N_FR_FILES=' jc2 readme_fr.rtf' CONTENT_GAME_DATA_FILES=' archives_win32 dlc dx10_shaders_f.shader_bundle dx10_specialshaders_f.shader_bundle sound/fmod/cutscenes_common.fsb sound/fmod/music_common.fsb sound/fmod/music_stereo.fsb' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Square Enix/Just Cause 2 users/${USER}/Documents/My Games/Just Cause 2' ## Work around a failure to start the game. WINE_WINETRICKS_VERBS='d3dcompiler_47' APP_MAIN_EXE='justcause2.exe' ## Switch French keyboard layout to us-azerty to provide direct access to digits. ## TODO: Check that this works expected on Wayland (it probably does not). APP_MAIN_PRERUN='# Switch French keyboard layout to us-azerty to provide direct access to digits. KEYBOARD_RESTORE_VARIANT=0 KEYBOARD_LAYOUT=$(LANG=C setxkbmap -query | awk "/layout:/ {print \$2}") if [ "$KEYBOARD_LAYOUT" = "fr" ]; then KEYBOARD_VARIANT=$(LANG=C setxkbmap -query | awk "/variant:/ {print \$2}") if [ "$KEYBOARD_VARIANT" != "us-azerty" ]; then KEYBOARD_RESTORE_VARIANT=1 setxkbmap -variant us-azerty fi fi ' APP_MAIN_POSTRUN='# Restore the keyboard variant, if it has previously been switched to us-azerty. if [ $KEYBOARD_RESTORE_VARIANT -eq 1 ]; then setxkbmap -variant "$KEYBOARD_VARIANT" fi ' PACKAGES_LIST='PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" ## Switch French keyboard layout to us-azerty to provide direct access to digits. PKG_BIN_DEPENDENCIES_COMMANDS=' setxkbmap' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Set game language ## English l10n_conf_file_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_en")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_en" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "English", "languages": [ "en-US" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF ## French l10n_conf_file_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/goggame-1833855510.info" mkdir --parents "$(dirname "$l10n_conf_file_fr")" ## TODO: Check if we can drop some fields. cat > "$l10n_conf_file_fr" << EOF { "clientId": "54243798143089551", "gameId": "1833855510", "language": "French", "languages": [ "fr-FR" ], "name": "Just Cause 2 - Complete Edition", "playTasks": [ { "category": "game", "isPrimary": true, "languages": [ "en-US", "ru-RU", "es-ES", "it-IT", "de-DE", "fr-FR", "pl-PL" ], "name": "Just Cause 2 - Complete Edition", "path": "JustCause2.exe", "type": "FileTask" } ], "rootGameId": "1833855510", "version": 1 } EOF # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation case "${LANG%_*}" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_L10N_EN' 'PKG_DATA' 'PKG_BIN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_L10N_FR' 'PKG_DATA' 'PKG_BIN' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-just-one-must-choose.sh0000750000000000000000000000400214471751340016157 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Just one, must choose # send your bug reports to bugs@dotslashplay.it ### script_version=20250311.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='just-one-must-choose' GAME_NAME='Just one, must choose' ARCHIVE_BASE_0_NAME='Just one, must choose - Linux.zip' ARCHIVE_BASE_0_MD5='1a93360c282cee3b8e11a6f04698a2dd' ARCHIVE_BASE_0_SIZE='5100' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.08.04' ARCHIVE_BASE_0_URL='https://gonzalo-ortega.itch.io/just-one-must-choose' CONTENT_PATH_DEFAULT='application.linux64' CONTENT_GAME_MAIN_FILES=' source lib' APP_MAIN_TYPE='java' APP_MAIN_EXE='Only_One' APP_MAIN_JAVA_OPTIONS='-Djna.nosys=true -Djava.library.path=lib -cp lib/Only_One.jar:lib/core.jar:lib/jogl-all.jar:lib/gluegen-rt.jar:lib/jogl-all-natives-linux-amd64.jar:lib/gluegen-rt-natives-linux-amd64.jar' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Write launchers ## The launcher target is not a .jar archive. launcher_target_presence_check() { true ; } game_exec_line() { cat <<- EOF java $APP_MAIN_JAVA_OPTIONS $APP_MAIN_EXE "\$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-jydge.sh0000750000000000000000000000360414471751340013260 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Jydge # send your bug reports to bugs@dotslashplay.it ### script_version=20230216.2 GAME_ID='jydge' GAME_NAME='JYDGE' ARCHIVE_BASE_0='JYDGE' ARCHIVE_BASE_0_MD5='3b8c8a14b7d7bc7c059c479910eb449d' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='310000' ARCHIVE_BASE_0_VERSION='1.2.0.6-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/jydge' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' JYDGE' CONTENT_GAME_DATA_FILES=' *.pak *.xml' APP_MAIN_EXE='JYDGE' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kero-blaster.sh0000750000000000000000000000356114471751340014552 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kero Blaster # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='kero-blaster' GAME_NAME='Kero Blaster' ## The following archive used to be sold from Playism store, ## before it closed down in favour of Steam. ARCHIVE_BASE_0_NAME='KeroBlaster_EN_v1501a.zip' ARCHIVE_BASE_0_MD5='c6ba58d37b5344d08c7d9a94506266b0' ARCHIVE_BASE_0_SIZE='20000' ARCHIVE_BASE_0_VERSION='1.501-playism1501a' CONTENT_PATH_DEFAULT='KeroBlasterEn' CONTENT_GAME_BIN_FILES=' KeroBlaster.exe' CONTENT_GAME_DATA_FILES=' rsc_k' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='KeroBlaster.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libmpg123.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kind-words.sh0000750000000000000000000000445714471751340014246 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Kind Words # send your bug reports to bugs@dotslashplay.it ### script_version=20241111.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='kind-words' GAME_NAME='Kind Words' ARCHIVE_BASE_2_NAME='kind-words-linux-20240804-1.zip' ARCHIVE_BASE_2_MD5='6e2b736846cc7335be26b1f901c88535' ARCHIVE_BASE_2_SIZE='371697' ARCHIVE_BASE_2_VERSION='2024.08.04-itch' ARCHIVE_BASE_2_URL='https://popcannibal.itch.io/kindwords' ARCHIVE_BASE_1_NAME='kind-words-linux-64-67.zip' ARCHIVE_BASE_1_MD5='c4cfc5e184cba2bb19964ae429c92966' ARCHIVE_BASE_1_SIZE='285035' ARCHIVE_BASE_1_VERSION='2022.04.01-itch.67' ARCHIVE_BASE_0_NAME='kind-words-linux-64-66.zip' ARCHIVE_BASE_0_MD5='e15ca776e2c5da2f3e33f03aea754730' ARCHIVE_BASE_0_SIZE='290000' ARCHIVE_BASE_0_VERSION='2021.09.10-itch.66' UNITY3D_NAME='Kind Words' ## TODO: Check if the Steam library is required UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='Kind Words' CONTENT_PATH_DEFAULT_1='.' CONTENT_PATH_DEFAULT_0='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kingdom-come-deliverance-expansions.sh0000750000000000000000000001516614471751340021201 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors set -o errexit ### # Kingdom Come: Deliverance, expansions # send your bug reports to bugs@dotslashplay.it ### script_version=20240114.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' # Set game-specific variables GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES='data goggame-*' PKG_MAIN_DEPS="$GAME_ID" # Archives ## HD Sound Pack EXPANSION_ID_HD_SOUND="hd-sound" EXPANSION_NAME_HD_SOUND="HD Sound pack" ARCHIVE_BASE_HD_SOUND_0_NAME='setup_kingdom_come_deliverance_-_hd_sound_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_SOUND_0_MD5='2148cf5d68e477f5c4fb32fde94a2cb8' ARCHIVE_BASE_HD_SOUND_0_TYPE='innosetup' ARCHIVE_BASE_HD_SOUND_0_SIZE='974736' ARCHIVE_BASE_HD_SOUND_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_SOUND_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_sound_pack' ## HD Texture Pack EXPANSION_ID_HD_TEXTURE="hd-texture" EXPANSION_NAME_HD_TEXTURE="HD Texture pack" ARCHIVE_BASE_HD_TEXTURE_0_NAME='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_TEXTURE_0_MD5='599a26fd112d65bd0c6bcaeccd47e3c2' ARCHIVE_BASE_HD_TEXTURE_0_TYPE='innosetup' ARCHIVE_BASE_HD_TEXTURE_0_SIZE='7089775' ARCHIVE_BASE_HD_TEXTURE_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_TEXTURE_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_texture_pack' ARCHIVE_BASE_HD_TEXTURE_0_PART1='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART1_MD5='257a19297a6e1ffc202ca9af584dbc17' ARCHIVE_BASE_HD_TEXTURE_0_PART2='setup_kingdom_come_deliverance_-_hd_texture_pack_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_HD_TEXTURE_0_PART2_MD5='c3271df85b819e5ed5016e318544fcc5' ## HD Voice FR pack EXPANSION_ID_HD_VOICE_FR="hd-voice-fr" EXPANSION_NAME_HD_VOICE_FR="HD Voice pack" ARCHIVE_BASE_HD_VOICE_FR_0_NAME='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HD_VOICE_FR_0_MD5='16178699acfc1ca2b94c385f7e6dc206' ARCHIVE_BASE_HD_VOICE_FR_0_TYPE='innosetup' ARCHIVE_BASE_HD_VOICE_FR_0_SIZE='3832027' ARCHIVE_BASE_HD_VOICE_FR_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HD_VOICE_FR_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_hd_voice_pack_french' ARCHIVE_BASE_HD_VOICE_FR_0_PART1='setup_kingdom_come_deliverance_-_hd_voice_pack_-_french_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_HD_VOICE_FR_0_PART1_MD5='85279184e0e52c810cea55efa9440efc' ## Expansion: A woman's lot EXPANSION_ID_A_WOMANS_LOT="a-woman-s-lot" EXPANSION_NAME_A_WOMANS_LOT="A woman's lot" ARCHIVE_BASE_A_WOMANS_LOT_0_NAME='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_A_WOMANS_LOT_0_MD5='08ec99ec6bf0a08bc04004579641da81' ARCHIVE_BASE_A_WOMANS_LOT_0_TYPE='innosetup' ARCHIVE_BASE_A_WOMANS_LOT_0_SIZE='8000000' ARCHIVE_BASE_A_WOMANS_LOT_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_A_WOMANS_LOT_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_a_womans_lot' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART1_MD5='7cf9ac8abb8e304b756c98a36d6fbc2a' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2='setup_kingdom_come_deliverance_-_a_womans_lot_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_A_WOMANS_LOT_0_PART2_MD5='e671d0cfaceb8f5cac910d0e93f2b19f' ## Expansion: Band of bastards EXPANSION_ID_BAND_OF_BASTARDS="band-of-bastards" EXPANSION_NAME_BAND_OF_BASTARDS="Band of bastards" ARCHIVE_BASE_BAND_OF_BASTARDS_0_NAME='setup_kingdom_come_deliverance__band_of_bastards_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_BAND_OF_BASTARDS_0_MD5='cce9e163f07e2e9fa8be5b6b113fe866' ARCHIVE_BASE_BAND_OF_BASTARDS_0_TYPE='innosetup' ARCHIVE_BASE_BAND_OF_BASTARDS_0_SIZE='500000' ARCHIVE_BASE_BAND_OF_BASTARDS_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_BAND_OF_BASTARDS_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_band_of_bastards' ## Expansion: From the ashes EXPANSION_ID_FROM_THE_ASHES="from-the-ashes" EXPANSION_NAME_FROM_THE_ASHES="From the ashes" ARCHIVE_BASE_FROM_THE_ASHES_0_NAME='setup_kingdom_come_deliverance__from_the_ashes_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_FROM_THE_ASHES_0_MD5='141360d56c9ba17c72fcac2f50685a7f' ARCHIVE_BASE_FROM_THE_ASHES_0_TYPE='innosetup' ARCHIVE_BASE_FROM_THE_ASHES_0_SIZE='100' ARCHIVE_BASE_FROM_THE_ASHES_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_FROM_THE_ASHES_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_from_the_ashes' ## Expansion: The amorous adventures of bold sir Hans Capon EXPANSION_ID_HANS_CAPON="amorous-adventures-sir-capon" EXPANSION_NAME_HANS_CAPON="The amorous adventures of bold sir Hans Capon" ARCHIVE_BASE_HANS_CAPON_0_NAME='setup_kingdom_come_deliverance__the_amorous_adventures_of_bold_sir_hans_capon_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_HANS_CAPON_0_MD5='2b41e8147c8046b7b01cfdd3e8079b10' ARCHIVE_BASE_HANS_CAPON_0_TYPE='innosetup' ARCHIVE_BASE_HANS_CAPON_0_SIZE='2000000' ARCHIVE_BASE_HANS_CAPON_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_HANS_CAPON_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_the_amorous_adventures_of_bold_sir_hans_capon' ## Expansion: Theasures of the past EXPANSION_ID_TREASURES_OF_THE_PAST="treasures-of-the-past" EXPANSION_NAME_TREASURES_OF_THE_PAST="Treasures of the past" ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_NAME='setup_kingdom_come_deliverance_treasures_of_the_past_dlc_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_MD5='4e3bd284e3dc4573690bed957ba78cbe' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_TYPE='innosetup' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_SIZE='100' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_VERSION='1.9.6-404-504czj3' ARCHIVE_BASE_TREASURES_OF_THE_PAST_0_URL='https://www.gog.com/fr/game/kingdom_come_deliverance_treasures_of_the_past' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingdom-come-deliverance.sh0000750000000000000000000002436514471751340017015 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Fabien Givors # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Kingdom Come: Deliverance # send your bug reports to bugs@dotslashplay.it ### script_version=20250314.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='kingdom-come-deliverance' GAME_NAME='Kingdom Come: Deliverance' ARCHIVE_BASE_0_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297).exe' ARCHIVE_BASE_0_MD5='de458c20cbcaadf8dfc92afe7c2e8284' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c18fa417f8486275d78e01c1a62c8204' ARCHIVE_BASE_0_PART2_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d288e846badd8228ba0f78c6186731f2' ARCHIVE_BASE_0_PART3_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-3.bin' ARCHIVE_BASE_0_PART3_MD5='b6702c24ded1f8851cb297553cc9b71b' ARCHIVE_BASE_0_PART4_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-4.bin' ARCHIVE_BASE_0_PART4_MD5='b33e86210161017d399071fcf6c54f9f' ARCHIVE_BASE_0_PART5_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-5.bin' ARCHIVE_BASE_0_PART5_MD5='379faac2d6128f1a94275b9d9248c0de' ARCHIVE_BASE_0_PART6_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-6.bin' ARCHIVE_BASE_0_PART6_MD5='c5ffb38b7425cb0219fe70497bb09d9a' ARCHIVE_BASE_0_PART7_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-7.bin' ARCHIVE_BASE_0_PART7_MD5='594f01d2cbd5b2c5cc9442d644a8b335' ARCHIVE_BASE_0_PART8_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-8.bin' ARCHIVE_BASE_0_PART8_MD5='93896ac78ea2dddeb433ffa685a561c2' ARCHIVE_BASE_0_PART9_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-9.bin' ARCHIVE_BASE_0_PART9_MD5='b8cd2810be97f2f697f67e92c71c16b8' ARCHIVE_BASE_0_PART10_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-10.bin' ARCHIVE_BASE_0_PART10_MD5='a38ed45d417c2d2cef03b270a21da255' ARCHIVE_BASE_0_PART11_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-11.bin' ARCHIVE_BASE_0_PART11_MD5='671cc5add7a31e5efd46e2a03478cf5d' ARCHIVE_BASE_0_PART12_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-12.bin' ARCHIVE_BASE_0_PART12_MD5='9aec35e9d193044603095eb1961d8647' ARCHIVE_BASE_0_PART13_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-13.bin' ARCHIVE_BASE_0_PART13_MD5='cb65a86dd5cc63a66a18767c3a4c5378' ARCHIVE_BASE_0_PART14_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-14.bin' ARCHIVE_BASE_0_PART14_MD5='701d947164a1f4d541c985a7273b9552' ARCHIVE_BASE_0_PART15_NAME='setup_kingdom_come_deliverance_1.9.6-404-504czj3_(62297)-15.bin' ARCHIVE_BASE_0_PART15_MD5='e3bb56e79d9ff4f9be2ee2b321f10f68' ARCHIVE_BASE_0_SIZE='62899673' ARCHIVE_BASE_0_VERSION='1.9.6-404-504czj3-gog62297' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingdom_come_deliverance' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' patchversion.txt whdlversions.txt bin engine system.cfg ' ## TODO: Check if the goggame-* files are required CONTENT_GAME0_BIN_FILES=' goggame-* ' CONTENT_GAME_L10N_COMMON_FILES=' localization/*_xml.pak localization/common.pak' CONTENT_GAME_L10N_VOICES_CZ_FILES=' localization/*czech-*.pak localization/patch/*czech*.pak' CONTENT_GAME_L10N_VOICES_JA_FILES=' localization/*japanese-*.pak localization/patch/*japanese*.pak' CONTENT_GAME_L10N_VOICES_DE_FILES=' localization/*german.pak localization/patch/*german*.pak' CONTENT_GAME_L10N_VOICES_EN_FILES=' localization/*english.pak localization/patch/*english*.pak' CONTENT_GAME_L10N_VOICES_FR_FILES=' localization/*french.pak localization/patch/*french*.pak' CONTENT_GAME_DATA_BASE_FILES=' data/gamedata.pak data/pak.cfg' CONTENT_GAME_DATA_PATCH103_FILES=' data/patch/ipl_patch_010300.pak data/patch/patch_010300.pak' CONTENT_GAME_DATA_PATCH104_FILES=' data/patch/ipl_patch_010400.pak data/patch/ipl_patch_010403.pak' CONTENT_GAME_DATA_PATCH105_FILES=' data/patch/ipl_patch_010500.pak data/patch/patch_010500.pak' CONTENT_GAME_DATA_PATCH106_FILES=' data/patch/ipl_patch_010600.pak data/patch/ipl_patch_010602.pak data/patch/patch_010600.pak' CONTENT_GAME_DATA_PATCH107_FILES=' data/patch/ipl_patch_010700b.pak data/patch/ipl_patch_010700.pak data/patch/ipl_patch_010701b.pak data/patch/ipl_patch_010701.pak data/patch/patch_010700.pak data/patch/patch_010701.pak' CONTENT_GAME_DATA_PATCH108_FILES=' data/patch/ipl_patch_010800.pak data/patch/patch_010900.pak' CONTENT_GAME_DATA_PATCH109_FILES=' data/patch/ipl_patch_010900.pak data/patch/ipl_patch_010902.pak data/patch/patch_010800.pak' CONTENT_GAME_DATA_WORLD_FILES=' data/_fastload/startup_graphics.pak data/buildings.pak data/engineassets data/engineassets/sky data/engineassets/sky/optical.lut data/geomcaches.pak data/levels data/objects.pak data/scripts.pak data/tables.pak data/textures.pak' CONTENT_GAME_DATA_AUDIO_FILES=' data/music.pak data/sounds.pak' CONTENT_GAME_DATA_VIDEOS_FILES=' data/ipl_videos.pak data/videos-part0.pak data/videos-part1.pak data/videos-part2.pak data/videos-part3.pak data/videos-part4.pak' CONTENT_GAME_DATA_VIDEOSB_FILES=' data/ipl_videosb.pak data/videosb-part0.pak data/videosb-part1.pak' CONTENT_GAME_DATA_CINEMATICS_FILES=' data/cinematics.pak data/ipl_cinematics.pak' CONTENT_GAME_DATA_CLOTHES_FILES=' data/cloth-part0.pak data/cloth-part1.pak data/cloth-part2.pak' CONTENT_GAME_DATA_CHARACTERS_FILES=' data/_fastload/startup_characters.pak data/characters.pak data/heads.pak data/ipl_heads.pak' CONTENT_GAME_DATA_ANIMATIONS_FILES=' data/_fastload/startup_animations.pak data/animations-part0.pak data/animations-part1.pak' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/$USER/Saved Games/kingdomcome/profiles users/$USER/Saved Games/kingdomcome/saves' USER_PERSISTENT_DIRECTORIES=' mods' USER_PERSISTENT_FILES=' system.cfg user.cfg.keeptextures user.cfg.perf user.cfg.reticle user.cfg' APP_MAIN_EXE='bin/win64/kingdomcome.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_COMMON PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_L10N_VOICES_CZ PKG_L10N_VOICES_JA PKG_L10N_VOICES_DE PKG_DATA_BASE PKG_DATA_PATCH103 PKG_DATA_PATCH104 PKG_DATA_PATCH105 PKG_DATA_PATCH106 PKG_DATA_PATCH107 PKG_DATA_PATCH108 PKG_DATA_PATCH109 PKG_DATA_WORLD PKG_DATA_AUDIO PKG_DATA_VIDEOS PKG_DATA_VIDEOSB PKG_DATA_ANIMATIONS PKG_DATA_CINEMATICS PKG_DATA_CLOTHES PKG_DATA_CHARACTERS' # Binaries packages PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N_COMMON PKG_DATA_BASE' # Localization packages PKG_L10N_COMMON_ID="${GAME_ID}-l10n-common" PKG_L10N_COMMON_DESCRIPTION='localizations - shared files' PKG_L10N_COMMON_DEPENDENCIES_SIBLINGS=' PKG_L10N_VOICES_CZ PKG_L10N_VOICES_DE PKG_L10N_VOICES_EN PKG_L10N_VOICES_FR PKG_L10N_VOICES_JA' PKG_L10N_VOICES_ID="${GAME_ID}-l10n-voices" PKG_L10N_VOICES_DESCRIPTION="localizations - voices" PKG_L10N_VOICES_CZ_ID="${PKG_L10N_VOICES_ID}-cz" PKG_L10N_VOICES_DE_ID="${PKG_L10N_VOICES_ID}-de" PKG_L10N_VOICES_EN_ID="${PKG_L10N_VOICES_ID}-en" PKG_L10N_VOICES_FR_ID="${PKG_L10N_VOICES_ID}-fr" PKG_L10N_VOICES_JA_ID="${PKG_L10N_VOICES_ID}-ja" PKG_L10N_VOICES_CZ_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Czech" PKG_L10N_VOICES_DE_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Deutch" PKG_L10N_VOICES_EN_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - English" PKG_L10N_VOICES_FR_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - French" PKG_L10N_VOICES_JA_DESCRIPTION="$PKG_L10N_VOICES_DESCRIPTION - Japanese" # Data packages PKG_DATA_BASE_ID="${GAME_ID}-data-base" PKG_DATA_BASE_DESCRIPTION='data-base' PKG_DATA_BASE_DEPENDENCIES_SIBLINGS=' PKG_DATA_PATCH103 PKG_DATA_PATCH104 PKG_DATA_PATCH105 PKG_DATA_PATCH106 PKG_DATA_PATCH107 PKG_DATA_PATCH108 PKG_DATA_PATCH109 PKG_DATA_WORLD PKG_DATA_AUDIO PKG_DATA_VIDEOS PKG_DATA_VIDEOSB PKG_DATA_ANIMATIONS PKG_DATA_CINEMATICS PKG_DATA_CLOTHES PKG_DATA_CHARACTERS' PKG_DATA_WORLD_ID="${GAME_ID}-data-world" PKG_DATA_WORLD_DESCRIPTION='data world' PKG_DATA_AUDIO_ID="${GAME_ID}-data-audio" PKG_DATA_AUDIO_DESCRIPTION='data audio' PKG_DATA_VIDEOS_ID="${GAME_ID}-data-videos" PKG_DATA_VIDEOS_DESCRIPTION='data videos' PKG_DATA_VIDEOSB_ID="${GAME_ID}-data-videosb" PKG_DATA_VIDEOSB_DESCRIPTION='data videosb' PKG_DATA_CHARACTERS_ID="${GAME_ID}-data-characters" PKG_DATA_CHARACTERS_DESCRIPTION='data characters' PKG_DATA_CLOTHES_ID="${GAME_ID}-data-clothes" PKG_DATA_CLOTHES_DESCRIPTION='data clothes' PKG_DATA_CINEMATICS_ID="${GAME_ID}-data-cinematics" PKG_DATA_CINEMATICS_DESCRIPTION='data cinematics' PKG_DATA_ANIMATIONS_ID="${GAME_ID}-data-animations" PKG_DATA_ANIMATIONS_DESCRIPTION='data animations' PKG_DATA_PATCH103_ID="${GAME_ID}-data-patch-103" PKG_DATA_PATCH103_DESCRIPTION='data patch 103' PKG_DATA_PATCH104_ID="${GAME_ID}-data-patch-104" PKG_DATA_PATCH104_DESCRIPTION='data patch 104' PKG_DATA_PATCH105_ID="${GAME_ID}-data-patch-105" PKG_DATA_PATCH105_DESCRIPTION='data patch 105' PKG_DATA_PATCH106_ID="${GAME_ID}-data-patch-106" PKG_DATA_PATCH106_DESCRIPTION='data patch 106' PKG_DATA_PATCH107_ID="${GAME_ID}-data-patch-107" PKG_DATA_PATCH107_DESCRIPTION='data patch 107' PKG_DATA_PATCH108_ID="${GAME_ID}-data-patch-108" PKG_DATA_PATCH108_DESCRIPTION='data patch 108' PKG_DATA_PATCH109_ID="${GAME_ID}-data-patch-109" PKG_DATA_PATCH109_DESCRIPTION='data patch 109' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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_BASE' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/win64 $(wine_command) kingdomcome.exe "$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-kingdom-new-lands.sh0000750000000000000000000000541514471751340015476 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 mortalius # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kingdom New Lands # send your bug reports to bugs@dotslashplay.it ### script_version=20221210.1 GAME_ID='kingdom-new-lands' GAME_NAME='Kingdom New Lands' UNITY3D_NAME='Kingdom' ARCHIVE_BASE_1='kingdom_new_lands_en_1_2_8_19096.sh' ARCHIVE_BASE_1_MD5='3499d709e78410ef7f447c12e3c66039' ARCHIVE_BASE_1_VERSION='1.2.8-gog19096' ARCHIVE_BASE_1_SIZE='450000' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_URL='https://www.gog.com/game/kingdom_new_lands' ARCHIVE_BASE_0='gog_kingdom_new_lands_2.6.0.8.sh' ARCHIVE_BASE_0_MD5='0d662366f75d5da214e259d792e720eb' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='420000' ARCHIVE_BASE_0_VERSION='1.2.3-gog2.6.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kingsway.sh0000750000000000000000000000353714471751340014017 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Kingsway # send your bug reports to bugs@dotslashplay.it ### script_version=20240627.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='kingsway' GAME_NAME='Kingsway' ARCHIVE_BASE_0_NAME='setup_kingsway_1.1.3_(13864).exe' ARCHIVE_BASE_0_MD5='f1f02c073faa80cd2f2b6c8571032ad2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.1.3-gog13864' ARCHIVE_BASE_0_SIZE='64000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kingsway' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' kingsway.exe' CONTENT_GAME_DATA_FILES=' music data.win' # Use persistent storage for saved games and settings WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Kingsway' APP_MAIN_EXE='kingsway.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-knights-of-pen-and-paper.sh0000750000000000000000000000532614471751340016657 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Knights of Pen and Paper # send your bug reports to bugs@dotslashplay.it ### script_version=20231017.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='knights-of-pen-and-paper' GAME_NAME='Knights of Pen and Paper' # Archives ## Kinghts of Pen and Paper (base game) ARCHIVE_BASE_0_NAME='gog_knights_of_pen_and_paper_1_edition_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='1f387b78bfe426b9396715fbfe3499b9' ARCHIVE_BASE_0_VERSION='2.34c-gog2.0.0.1' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/knights_of_pen_and_paper_1_deluxier_edition' ## Deluxier Edition ## TODO: The expansion content should be installed using a dedicated package. ARCHIVE_OPTIONAL_DELUXIER_0_NAME='gog_knights_of_pen_and_paper_1_deluxier_edition_upgrade_2.0.0.1.sh' ARCHIVE_OPTIONAL_DELUXIER_0_MD5='b3033693afd93cc885883aede7ede4b0' UNITY3D_NAME='knightspp' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of optional extra archives archive_initialize_optional \ 'ARCHIVE_DELUXIER' \ 'ARCHIVE_OPTIONAL_DELUXIER_0' # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_DELUXIER' ; then archive_extraction 'ARCHIVE_DELUXIER' fi # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kona.sh0000750000000000000000000000503014471751340013101 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Kona # send your bug reports to bugs@dotslashplay.it ### script_version=20240509.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='kona' GAME_NAME='Kona' ARCHIVE_BASE_0_NAME='gog_kona_2.8.0.9.sh' ARCHIVE_BASE_0_MD5='62e924fb4b9cafcb34c58b2fb66bc9f7' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='4400000' ARCHIVE_BASE_0_VERSION='2017.07.07-gog2.8.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kona_day_one' UNITY3D_NAME='Kona' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## Force the game to run in a window on first launch, to prevent display problems. ## TODO: We might have to force windowed mode on every launch, not only the first one. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Force the game to run in a window on first launch, to prevent display problems config_file="$HOME/.config/unity3d/Parabole/Kona/prefs" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF fi' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kraken-academy.sh0000750000000000000000000000564414471751340015040 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Kraken Academy # send your bug reports to bugs@dotslashplay.it ### script_version=20230406.1 GAME_ID='kraken-academy' GAME_NAME='Kraken Academy' ARCHIVE_BASE_0='kraken_academy_1_0_12_1_51227.sh' ARCHIVE_BASE_0_MD5='8f5a82e43e81913a0181029d968e13f5' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.0.12.1-gog51227' ARCHIVE_BASE_0_URL='https://www.gog.com/game/kraken_academy' UNITY3D_NAME='Kraken Academy' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudio.so libresonanceaudio.so' CONTENT_LIBS0_BIN_FILES=' GameAssembly.so UnityPlayer.so' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/il2cpp_data ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/data.unity3d ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" USER_PERSISTENT_DIRECTORIES=" ${UNITY3D_NAME}_Data/StreamingAssets/Saves" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Link GameAssembly.so in the game data path # as the game engine fails to find it otherwise, # even if it is in LD_LIBRARY_PATH. file_name='GameAssembly.so' file_source="$(path_libraries)/${file_name}" file_destination="$(package_path 'PKG_BIN')$(path_game_data)/${file_name}" mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-kyn.sh0000750000000000000000000000455614471751340012766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Kyn # send your bug reports to bugs@dotslashplay.it ### script_version=20231005.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='kyn' GAME_NAME='Kyn' ## This DRM-free installer is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_kyn_update_4_(17655).exe' ARCHIVE_BASE_0_MD5='ca2a665c27ef02f0bfa4e72dc368952c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_kyn_update_4_(17655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c6c13b15a4d39ac9389c7c4f9ce6760' ARCHIVE_BASE_0_SIZE='7900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog17655' ARCHIVE_BASE_RAR_0_NAME='setup_kyn_2.1.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='a40cb85cdd40b7464eec92b2b9166f84' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_kyn_2.1.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='4cfdca351969f2570a3657c772fd492e' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_SIZE='7900000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.1.0.4' UNITY3D_NAME='kyn' CONTENT_PATH_DEFAULT='app' CONTENT_PATH_DEFAULT_RAR='game' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Tangrin Entertainment/Kyn' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-la-mulana.sh0000750000000000000000000000520514471751340014024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # La-Mulana # send your bug reports to 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-legend-of-grimrock.sh0000750000000000000000000000502414471751340015627 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Legend of Grimrock # send your bug reports to bugs@dotslashplay.it ### script_version=20231108.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='legend-of-grimrock' GAME_NAME='Legend of Grimrock' ARCHIVE_BASE_0_NAME='gog_legend_of_grimrock_2.1.0.5.sh' ARCHIVE_BASE_0_MD5='b63089766247484f5d2b214d924425f6' ARCHIVE_BASE_0_SIZE='690000' ARCHIVE_BASE_0_VERSION='1.3.7-gog2.1.0.5' ARCHIVE_BASE_0_URL='https://www.gog.com/game/legend_of_grimrock' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN64_FILES=' Grimrock.bin.x86_64' CONTENT_GAME_BIN32_FILES=' Grimrock.bin.x86' CONTENT_GAME_DATA_FILES=' grimrock.dat grimrock.png' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN32='Grimrock.bin.x86' APP_MAIN_EXE_BIN64='Grimrock.bin.x86_64' APP_MAIN_ICON='grimrock.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreeimage.so.3 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libminizip.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libX11.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-batman-1.sh0000750000000000000000000000441514471751340014503 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Batman 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-batman-1' GAME_NAME='Lego Batman: The Videogame' ARCHIVE_BASE_0_NAME='setup_lego_batman_1.0_(18156).exe' ARCHIVE_BASE_0_MD5='4d77c482455866c160b0b17f88e9aff0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lego_batman_1.0_(18156)-1.bin' ARCHIVE_BASE_0_PART1_MD5='49153c984f14b57c846d20cc038d117a' ARCHIVE_BASE_0_SIZE='4500000' ARCHIVE_BASE_0_VERSION='1.0-gog18156' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_batman_the_videogame' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.exe binkw32.dll language_setup.ini' CONTENT_GAME_DATA_FILES=' *.dat language_setup.png audio movies' CONTENT_DOC_DATA_FILES=' eula.rtf readme.rtf' APP_MAIN_EXE='legobatman.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lego-harry-potter-years-1-4.sh0000750000000000000000000000505414471751340017163 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lego Harry Potter: Years 1-4 # send your bug reports to bugs@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lego-harry-potter-years-1-4' GAME_NAME='Lego Harry Potter: Years 1-4' ARCHIVE_BASE_0='setup_lego_harry_potter_1-4_1.0_(17966).exe' ARCHIVE_BASE_0_MD5='21ddbc82a225687a69044e9baee7109b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lego_harry_potter_1-4_1.0_(17966)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ab78edad26acef08eb3a656dfbdf476e' ARCHIVE_BASE_0_PART2='setup_lego_harry_potter_1-4_1.0_(17966)-2.bin' ARCHIVE_BASE_0_PART2_MD5='0ebb7b7a5772245258e53092c25a4708' ARCHIVE_BASE_0_SIZE='6300000' ARCHIVE_BASE_0_VERSION='1.0.0389-gog17966' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lego_harry_potter_years_14' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' legoharrypotter.exe language_setup.exe language_setup.ini language_setup.png' CONTENT_GAME_DATA_FILES=' game.dat game1.dat game2.dat game3.dat game4.dat game5.dat game6.dat' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' *' APP_MAIN_EXE='legoharrypotter.exe' APP_LANGUAGE_ID="${GAME_ID}-language-setup" APP_LANGUAGE_NAME="$GAME_NAME - Language setup" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lennas-inception.sh0000750000000000000000000001163414471751340015426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lenna's Inception # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='lennas-inception' GAME_NAME='Lennaʼs Inception' ARCHIVE_BASE_2_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_2_MD5='2eea96efe93f463688da6540a3904ce9' ARCHIVE_BASE_2_VERSION='1.1.8-itch' ARCHIVE_BASE_2_SIZE='301938' ARCHIVE_BASE_2_URL='https://tccoxon.itch.io/lennas-inception' ARCHIVE_BASE_1_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_1_MD5='5f7ff7b389777b00519144df1cc98cc9' ARCHIVE_BASE_1_VERSION='1.1.5-itch.2020.11.22' ARCHIVE_BASE_1_SIZE='310000' ARCHIVE_BASE_0_NAME='lennas-inception-linux-amd64-stable.zip' ARCHIVE_BASE_0_MD5='e701126a913c2c63c89e79875dd89e86' ARCHIVE_BASE_0_VERSION='1.0.10-itch1' ARCHIVE_BASE_0_SIZE='310000' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' assets launch-config.json lib' CONTENT_DOC_MAIN_FILES=' COPYRIGHT.txt README.txt' APP_MAIN_TYPE='java' APP_MAIN_EXE='lib/libloader.jar' APP_MAIN_JAVA_OPTIONS='-Dsun.java2d.opengl=True -Djava.library.path=./lib -Xms1024m -Xmx3072m' APP_MAIN_ICON='icon.png' ## Work around the shipped binaries overuse of file descriptors APP_MAIN_PRERUN_BIN_SHIPPED=' # Work around the engine overuse of file descriptors ## 4096 is an arbitrary value, 4 times the default (1024), that seems to work for all setups. if ! ulimit -n 4096; then { printf "\\n\\033[1;33mWarning:\\033[0m\\n" printf "Your current shell interpreter has no support for ulimit -n.\\n" printf "This might lead to unending loading screens if the game engine hits the file descriptors use limit.\\n" printf "\\n" } > /dev/stderr fi ' # Since this game seems to be broken on OpenJDK ≥ 11, we build an extra package allowing to use the shipped OpenJDK 1.8 CONTENT_GAME_BIN_SHIPPED_FILES=' launch-config.json jre' PACKAGES_LIST=' PKG_MAIN PKG_BIN_SYSTEM PKG_BIN_SHIPPED' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_DESCRIPTION='Using shipped Java binaries' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libjpeg.so.62 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libxml2.so.2 libXrender.so.1 libxslt.so.1 libXtst.so.6 libXxf86vm.so.1 libz.so.1' # Extract game icon from the .jar archive REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} unzip" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Ensure the shipped java binary can be executed chmod 755 'jre/bin/java' # Extract game icon from the .jar archive unzip -q -d . 'assets/lennasinception.jar' "$(icon_path 'APP_MAIN_ICON')" ) # Include game data content_inclusion_icons 'PKG_MAIN' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' ## Use shipped Java binary instead of system-provided one game_exec_line() { cat <<- EOF ./jre/bin/java $APP_MAIN_JAVA_OPTIONS -jar lib/libloader.jar "\$@" EOF } launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_shipped='les développeurs' bin_system='le système' ;; ('en'|*) message='Using binaries provided by %s:' bin_shipped='the developers' bin_system='the system' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_MAIN' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_MAIN' 'PKG_BIN_SHIPPED' # Clean up working_directory_cleanup exit 0 games/play-lieve-oma.sh0000750000000000000000000000472714471751340014043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lieve Oma # send your bug reports to bugs@dotslashplay.it ### script_version=20231103.1 PLAYIT_COMPATIBILITY_LEVEL='2.7' GAME_ID='lieve-oma' GAME_NAME='Lieve Oma' ARCHIVE_BASE_0_NAME='Lieve Oma Linux Universal.zip' ARCHIVE_BASE_0_MD5='b33c1f38503a221ce82139a5435c3577' ARCHIVE_BASE_0_SIZE='770000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://vltmn.itch.io/lieve-oma' UNITY3D_NAME='Lieve Oma' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='Lieve Oma Linux Universal' ## Yes, .png, not a typo. Don’t ask. CONTENT_DOC_DATA_FILES=' README.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lilas-sky-ark.sh0000750000000000000000000000410314471751340014634 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lila's Sky Ark # send your bug reports to bugs@dotslashplay.it ### script_version=20230709.1 GAME_ID='lilas-sky-ark' GAME_NAME='Lilaʼs Sky Ark' ARCHIVE_BASE_0='lila_s_sky_ark_1_0_4_1_61980.sh' ARCHIVE_BASE_0_MD5='25500814b0f4031829004488aca809ba' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lilas_sky_ark' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' SkyArk.x86_64' CONTENT_GAME_DATA_FILES=' SkyArk.pck' APP_MAIN_EXE='SkyArk.x86_64' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-limbo.sh0000750000000000000000000000450614471751340013262 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Limbo # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='limbo' GAME_NAME='Limbo' ARCHIVE_BASE_1_NAME='Limbo-Linux-2014-06-18.zip' ARCHIVE_BASE_1_MD5='5bb49941722ff6d4d6a494e064fd197e' ARCHIVE_BASE_1_SIZE='190000' ARCHIVE_BASE_1_VERSION='1.3-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/limbo' ARCHIVE_BASE_0_NAME='Limbo-Linux-2014-06-18.sh' ARCHIVE_BASE_0_MD5='9b453abcb859c31cc645a7207de08329' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='120000' ARCHIVE_BASE_0_VERSION='1.3-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' limbo' CONTENT_GAME_DATA_FILES=' data settings.txt limbo.png *.pkg' CONTENT_DOC_DATA_FILES=' README-linux.txt' USER_PERSISTENT_FILES=' settings.txt' APP_MAIN_EXE='limbo' APP_MAIN_ICON='limbo.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' case "$(current_archive)" in ('ARCHIVE_BASE_1') ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Limbo-Linux-2014-06-18.sh" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ;; esac # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-litil-divil.sh0000750000000000000000000000466114471751340014404 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Litil Divil # send your bug reports to bugs@dotslashplay.it ### script_version=20250313.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='litil-divil' GAME_NAME='Litil Divil' ARCHIVE_BASE_1_NAME='gog_litil_divil_2.0.0.22.sh' ARCHIVE_BASE_1_MD5='89a1a0cedbf13d8e6aed285780b69def' ARCHIVE_BASE_1_SIZE='45000' ARCHIVE_BASE_1_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_1_URL='https://www.gog.com/game/litil_divil' ARCHIVE_BASE_0_NAME='gog_litil_divil_2.0.0.21.sh' ARCHIVE_BASE_0_MD5='1258be406cb4b40c912c4846df2ac92b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='44000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.21' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' data gfx *.cfg *.exe' CONTENT_DOC_MAIN_FILES=' config.doc' CONTENT_DOC0_MAIN_PATH='data/noarch/docs' CONTENT_DOC0_MAIN_FILES=' *.pdf *.txt' USER_PERSISTENT_FILES=' divils.cfg' GAME_IMAGE='data' GAME_IMAGE_TYPE='cdrom' APP_MAIN_EXE='data/divil.exe' APP_MAIN_OPTIONS='c:' APP_MAIN_ICON='../support/icon.png' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='config.exe' APP_CONFIG_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to lowercase tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Run the game binary from the CD-ROM directory game_exec_line() { cat <<- 'EOF' d: divil.exe c: $@ EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-little-big-adventure-1.sh0000750000000000000000000000532614471751340016346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Dominique Derrier # SPDX-FileCopyrightText: © 2020 macaron # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Little Big Adventure 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-1' GAME_NAME='Little Big Adventure' ARCHIVE_BASE_1='setup_little_big_adventure_1.0_(28186).exe' ARCHIVE_BASE_1_MD5='43d4926dc8a56a95800e746ac9797201' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='510000' ARCHIVE_BASE_1_VERSION='1.0-gog28186' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure' ARCHIVE_BASE_0='setup_lba_2.1.0.22.exe' ARCHIVE_BASE_0_MD5='c40177522adcbe50ea52590be57045f8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='510000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.22' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' VOX SETUP.LST LBA.DAT LBA.GOG SETSOUND.BAT SAMPLE.* *.CFG *.DLL *.EXE *.HQR *.INI' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA.DAT' USER_PERSISTENT_FILES=' *.CFG *.INI *.LBA' APP_MAIN_EXE='RELENT.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658971.ICO' APP_MAIN_ICON_0='GOGGAME-1207658971.ICO' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658971.ICO' APP_SETUP_ICON_0='GOGGAME-1207658971.ICO' # Ensure easy upgrade from packages generated with pre-20200210.3 scripts PKG_MAIN_PROVIDES="$PKG_MAIN_PROVIDES little-big-adventure-1-data" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-big-adventure-2.sh0000750000000000000000000000556014471751340016347 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Andrey Butirsky # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Little Big Adventure 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20230420.1 GAME_ID='little-big-adventure-2' GAME_NAME='Little Big Adventure 2' ARCHIVE_BASE_1='setup_little_big_adventure_2_1.0_(28192).exe' ARCHIVE_BASE_1_MD5='80b95bb8faa2353284b321748021da16' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='750000' ARCHIVE_BASE_1_VERSION='1.0-gog28192' ARCHIVE_BASE_1_URL='https://www.gog.com/game/little_big_adventure_2' ARCHIVE_BASE_0='setup_lba2_2.1.0.8.exe' ARCHIVE_BASE_0_MD5='9909163b7285bd37417f6d3c1ccfa3ee' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='750000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.8' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' DRIVERS LBA2.DAT LBA2.GOG LBA2.OGG *.BAT *.CFG *.DOS *.EXE *.INI *.HQR *.ILE *.OBL' CONTENT_DOC_MAIN_FILES=' *.PDF *.TXT' GAME_IMAGE='LBA2.DAT' USER_PERSISTENT_FILES=' *.CFG' USER_PERSISTENT_DIRECTORIES=' SAVE' APP_MAIN_EXE='LBA2.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658974.ICO' APP_MAIN_ICON_0='GOGGAME-1207658974.ICO' ## Force application type, as LBA2.EXE is detected as a Windows executable. APP_MAIN_TYPE='dosbox' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON='APP/GOGGAME-1207658974.ICO' APP_SETUP_ICON_0='GOGGAME-1207658974.ICO' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file names to upper case toupper . # Store voices outside of the game image sed_pattern='s/\(FlagKeepVoice:\) OFF/\1 ON/' sed --in-place "$sed_pattern" 'LBA2.CFG' ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-little-bug.sh0000750000000000000000000000405114471751340014223 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.sh0000750000000000000000000000404514471751340015750 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Little Nightmares 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240403.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='little-nightmares-1' GAME_NAME='Little Nightmares 1' ARCHIVE_BASE_0_NAME='setup_little_nightmares_1.0.43.1_(18471).exe' ARCHIVE_BASE_0_MD5='6e1ac1107650aeb03abc17cf0e614e4c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_little_nightmares_1.0.43.1_(18471)-1.bin' ARCHIVE_BASE_0_PART1_MD5='0732121bf0da7db6dc6f5e5a3bc8705b' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_VERSION='1.0.43.1-gog18471' ARCHIVE_BASE_0_URL='https://www.gog.com/game/little_nightmares' UNREALENGINE4_NAME='atlas' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_DIRECTORIES=" ${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/littlenightmares.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lo-fi-room.sh0000750000000000000000000000425614471751340014142 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Lo-Fi Room # send your bug reports to bugs@dotslashplay.it ### script_version=20240606.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lo-fi-room' GAME_NAME='Lo-Fi Room' ARCHIVE_BASE_0_NAME='lofiroom.tar.xz' ARCHIVE_BASE_0_MD5='c9f0f9d43e7ca81ec372784692a60432' ARCHIVE_BASE_0_SIZE='138022' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bearmask.itch.io/lofi-room' ## Despite the .tar.xz file extension, this is actually a gz-compressed tarball. ARCHIVE_BASE_0_TYPE='tar.gz' UNITY3D_NAME='lofi_room_linux' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' ## TODO: Forcing a qwerty keyboard layout might be useful. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-location-withheld.sh0000750000000000000000000000406614471751340015577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Location Withheld # send your bug reports to bugs@dotslashplay.it ### script_version=20230803.3 GAME_ID='location-withheld' GAME_NAME='Location Withheld' ARCHIVE_BASE_0='Location Withheld.rar' ARCHIVE_BASE_0_MD5='c3e0eb2553b736cdf29aa9a9455b3f43' ARCHIVE_BASE_0_SIZE='2100000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://bryce-bucher.itch.io/location-withheld' UNITY3D_NAME='Location Withheld' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" Mono ${UNITY3D_NAME}.exe *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bryce Bucher/Location Withheld' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lonesome-village.sh0000750000000000000000000000344414471751340015422 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Lonesome Village # send your bug reports to bugs@dotslashplay.it ### script_version=20231018.4 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='lonesome-village' GAME_NAME='Lonesome Village' ARCHIVE_BASE_0_NAME='setup_lonesome_village_1.0_(59798).exe' ARCHIVE_BASE_0_MD5='85470a092929916f3ed0917b5eca2f41' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='4469668' ARCHIVE_BASE_0_VERSION='1.0.1.6-gog59798' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lonesome_village' UNITY3D_NAME='lonesome village' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ogre Pixel/Lonesome Village' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lords-of-xulima.sh0000750000000000000000000000551714471751340015205 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Lords of Xulima # send your bug reports to bugs@dotslashplay.it ### script_version=20240504.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='lords-of-xulima' GAME_NAME='Lords of Xulima' ARCHIVE_BASE_0_NAME='gog_lords_of_xulima_2.3.0.9.sh' ARCHIVE_BASE_0_MD5='480abf8d929da622eacd69595a4ebc80' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='2.1.1-gog2.3.0.9' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lords_of_xulima' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/Linux/lib" CONTENT_LIBS_BIN_FILES=' libmonoboehm-2.0.a libmonoboehm-2.0.so.1 libmono-profiler-aot.so.0.0.0 libmono-profiler-cov.so.0.0.0 libmono-profiler-iomap.so.0.0.0 libmono-profiler-log.so.0.0.0 libmonosgen-2.0.so.1 libmonosgen-2.0.so.1.0.0 libMonoPosixHelper.so libMonoSupportW.so' CONTENT_LIBS0_BIN_FILES=' libbass.so' CONTENT_GAME_BIN_FILES=' Linux/etc/mono Linux/lib/mono *.conf *.config *.cpp *.dll *.exe *.hqx *.manifest LOXLinux MusicPlayer' CONTENT_FONTS_DATA_FILES=' FoL_BB_RU.ttf FoL_CB_RU.ttf FoL_MB_RU.ttf LOXBold.ttf LOXCondensed.ttf LOXMedium.ttf WenQuanYiZenHei.ttf' CONTENT_GAME_DATA_FILES=' DXApp_* SOL_* Cinematic CSteamworks.bundle Manual Resources *.dx* *.fx *.glsl *.icns *.jx* *.sqlite *.suo *.txt SOL' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Lords of Xulima' ## TODO: Check if the system-provided Mono runtime could be used instead of the shipped binaries. APP_MAIN_EXE='LOXLinux' APP_MAIN_OPTIONS='--gc=sgen' APP_MAIN_ICON='LoX.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgdiplus.so libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Apply common workarounds for Mono games. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(mono_launcher_tweaks) " launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lost-ruins.sh0000750000000000000000000000356414471751340014302 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=20231219.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lost-ruins' GAME_NAME='Lost Ruins' ARCHIVE_BASE_0_NAME='lost_ruins_1_0_9a_48364.sh' ARCHIVE_BASE_0_MD5='ae4fabbe98718fad2c02712e4104ee6b' ARCHIVE_BASE_0_SIZE='497160' ARCHIVE_BASE_0_VERSION='1.0.9a-gog48364' ARCHIVE_BASE_0_URL='https://www.gog.com/game/lost_ruins' UNITY3D_NAME='LostRuins' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS=' libsteam_api.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lost-words.sh0000750000000000000000000000464214471751340014276 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Lost Words: Beyond the Page # send your bug reports to bugs@dotslashplay.it ### script_version=20230706.1 GAME_ID='lost-words' GAME_NAME='Lost Words: Beyond the Page' ARCHIVE_BASE_0='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551).exe' ARCHIVE_BASE_0_MD5='0c36cfe013e3196442d77a128a38aa9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_lost_words_beyond_the_page_release_2021-04-23_8_(64bit)_(46551)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c632a4a1f22c8f2587e1d224547f00eb' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='2021.04.23.8-gog46551' ARCHIVE_BASE_0_URL='https://www.gog.com/en/game/lost_words_beyond_the_page' UNITY3D_NAME='lost words' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fourth State/Lost Words' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lovers-in-a-dangerous-spacetime.sh0000750000000000000000000000547414471751340020256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Lovers in a Dangerous Spacetime # send your bug reports to bugs@dotslashplay.it ### script_version=20230105.2 GAME_ID='lovers-in-a-dangerous-spacetime' GAME_NAME='Lovers in a Dangerous Spacetime' UNITY3D_NAME='LoversInADangerousSpacetime' ARCHIVE_BASE_1='LoversInADangerousSpacetime-1.4.5_Linux.zip' ARCHIVE_BASE_1_MD5='67b6bc5ba5590fb50e95996b267f8c60' ARCHIVE_BASE_1_SIZE='880000' ARCHIVE_BASE_1_VERSION='1.4.5-humble180427' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/lovers-in-a-dangerous-spacetime' ARCHIVE_BASE_0='LoversInADangerousSpacetime-1.4.4_Linux.zip' ARCHIVE_BASE_0_MD5='38927a73e1fe84620ebc876f8f039adb' ARCHIVE_BASE_0_SIZE='880000' ARCHIVE_BASE_0_VERSION='1.4.4-humble160908' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux.so.2 ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-lumini.sh0000750000000000000000000000653014471751340013454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Lumini # send your bug reports to bugs@dotslashplay.it ### script_version=20231103.7 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='lumini' GAME_NAME='Lumini' ## This game is no longer available for sale from humblebundle.com. ARCHIVE_BASE_0_NAME='Lumini_DRMfree_Linux.zip' ARCHIVE_BASE_0_MD5='7d70f1824be9ab701cf9d52fb12a039a' ARCHIVE_BASE_0_SIZE='4700000' ARCHIVE_BASE_0_VERSION='1.0-humble1' UNITY3D_NAME='lumini' UNITY3D_PLUGINS=' libfmod.so libfmodstudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' SavesDir' USER_PERSISTENT_DIRECTORIES=' SavesDir' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Merge assets directories for the 32-bit and 64-bit builds. mkdir "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux64_Data/'* "$(unity3d_name)_Data" cp --link --recursive --update 'lumini_Linux32_Data/'* "$(unity3d_name)_Data" rm --recursive 'lumini_Linux64_Data' 'lumini_Linux32_Data' ## Rename the binaries. mv 'lumini_Linux64.x86_64' "$(unity3d_name).x86_64" mv 'lumini_Linux32.x86' "$(unity3d_name).x86" ## Delete files that are not used by the Linux build. rm \ "$(unity3d_name)_Data/Mono/"*/*.dll \ "$(unity3d_name)_Data/Mono/"*/*.dll.meta ## Delete duplicated libraries. rm \ "$(unity3d_name)_Data/Mono/"*/libfmod.so \ "$(unity3d_name)_Data/Mono/"*/libfmodstudio.so \ "$(unity3d_name)_Data/Mono/"*/ScreenSelector.so ## These directories must be deleted to prevent an error during the inclusion of Unity3D plugins. rm --recursive "$(unity3d_name)_Data/Plugins/"*.bundle/ ) # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mable-and-the-wood.sh0000750000000000000000000000417114471751340015522 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=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='mable-and-the-wood' GAME_NAME='Mable & the Wood' ARCHIVE_BASE_0='mable_the_wood_1_7_37606.sh' ARCHIVE_BASE_0_MD5='d88e40a5927c67c3974becd19d64c940' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='1.7-gog37606' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mable_the_wood' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Mable_PC' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/config.ini' APP_MAIN_EXE='Mable_PC' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl-gnutls.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-man-o-war-corsair.sh0000750000000000000000000001171714471751340015420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Man O' War: Corsair # send your bug reports to bugs@dotslashplay.it ### script_version=20231011.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='man-o-war-corsair' GAME_NAME='Man Oʼ War: Corsair - Warhammer Naval Battles' ARCHIVE_BASE_1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991).exe' ARCHIVE_BASE_1_MD5='c0b70c63edcc3ca8d8209a9ccb7c9d9e' ARCHIVE_BASE_1_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-1.bin' ARCHIVE_BASE_1_PART1_MD5='69c15c6e3b8238b585c8760327756ab7' ARCHIVE_BASE_1_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-2.bin' ARCHIVE_BASE_1_PART2_MD5='31aa85d6f8c39625e0dfac46b82928b5' ARCHIVE_BASE_1_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-3.bin' ARCHIVE_BASE_1_PART3_MD5='1676e6583b9331b9ba7ad029e4009a46' ARCHIVE_BASE_1_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.4_(38991)-4.bin' ARCHIVE_BASE_1_PART4_MD5='9c0637c0277adea7705ef713e924a7ac' ARCHIVE_BASE_1_SIZE='30000000' ARCHIVE_BASE_1_VERSION='1.4.4-gog38991' ARCHIVE_BASE_1_URL='https://www.gog.com/game/man_o_war_corsair' ARCHIVE_BASE_0_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576).exe' ARCHIVE_BASE_0_MD5='296429ab49c28df62ff38235564e36e8' ARCHIVE_BASE_0_PART1_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8c3b24d21c951f6ad9b7699eda024de1' ARCHIVE_BASE_0_PART2_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-2.bin' ARCHIVE_BASE_0_PART2_MD5='516a671f6a45d9c03e29f13d51271a78' ARCHIVE_BASE_0_PART3_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-3.bin' ARCHIVE_BASE_0_PART3_MD5='38c58a508879661063ca5e9bbea541ab' ARCHIVE_BASE_0_PART4_NAME='setup_man_o_war_corsair_-_warhammer_naval_battles_1.4.2_(29576)-4.bin' ARCHIVE_BASE_0_PART4_MD5='1f02de3d92681a080808446636116c6c' ARCHIVE_BASE_0_SIZE='30000000' ARCHIVE_BASE_0_VERSION='1.4.2-gog29576' UNITY3D_NAME='manowarcorsair' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MODELS_LAND_FILES=' mowdata/landmodels-*' CONTENT_GAME_MODELS_FILES=' mowdata/charactermodels-* mowdata/shipmodels-* mowdata/flyermodels* mowdata/seamonstermodels*' CONTENT_GAME_TERRAIN1_FILES=' mowdata/terrain-top* mowdata/terrain-mid*' CONTENT_GAME_TERRAIN2_FILES=' mowdata/terrain-bot* mowdata/terrainshaders*' CONTENT_GAME0_DATA_FILES=' mowdata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/EvilTwinArtworks/ManOWarCorsair' ## The single quote in the key name must be escaped twice. WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Evil Twin Artworks\Man O'"'\\''"' War: Corsair' APP_MAIN_OPTIONS='-force-opengl' PACKAGES_LIST='PKG_BIN PKG_MODELS_LAND PKG_MODELS PKG_TERRAIN1 PKG_TERRAIN2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MODELS_ID="${PKG_DATA_ID}-models" PKG_MODELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - models" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_MODELS_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_PROVIDES=' man-o-war-corsair-models' PKG_MODELS_LAND_ID="${PKG_MODELS_ID}-land" PKG_MODELS_LAND_DESCRIPTION="$PKG_MODELS_DESCRIPTION - land" PKG_MODELS_DEPS="${PKG_MODELS_DEPS:-} $PKG_MODELS_LAND_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_MODELS_LAND_PROVIDES=' man-o-war-corsair-models-land' PKG_TERRAIN_ID="${PKG_DATA_ID}-terrain" PKG_TERRAIN1_ID="${PKG_TERRAIN_ID}-1" PKG_TERRAIN2_ID="${PKG_TERRAIN_ID}-2" PKG_TERRAIN_DESCRIPTION='terrain' PKG_TERRAIN1_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 1" PKG_TERRAIN2_DESCRIPTION="$PKG_TERRAIN_DESCRIPTION - part 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_TERRAIN1_ID $PKG_TERRAIN2_ID" ## Ensure smooth upgrades from packages generated with pre-20231011.1 scripts. PKG_TERRAIN1_PROVIDES=' man-o-war-corsair-terrain-1' PKG_TERRAIN2_PROVIDES=' man-o-war-corsair-terrain-2' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-marble-age.sh0000750000000000000000000000354014471751340014151 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Marble Age # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='marble-age' GAME_NAME='Marble Age' ARCHIVE_BASE_0_NAME='marble_age_remastered_1_08_45107.sh' ARCHIVE_BASE_0_MD5='20b437b0204fbb0f88d0de65e8801b46' ARCHIVE_BASE_0_SIZE='298371' ARCHIVE_BASE_0_VERSION='1.08-gog45107' ARCHIVE_BASE_0_URL='https://www.gog.com/game/marble_age_remastered' UNITY3D_NAME='Marble Age Remastered' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mark-of-the-ninja-expansions.sh0000750000000000000000000000473514471751340017560 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja expansions: # - Special Edition # send your bug reports to bugs@dotslashplay.it ### script_version=20230902.1 GAME_ID='mark-of-the-ninja' GAME_NAME='Mark of the Ninja' EXPANSION_ID='special-edition' EXPANSION_NAME='Special Edition' ## This Linux build is no longer available for sale from GOG, they now only sell a Windows build. ARCHIVE_BASE_0='gog_mark_of_the_ninja_special_edition_dlc_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='bbce70b80932ec9c14fbedf0b6b33eb1' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=' ninja-bin32' CONTENT_GAME_BIN64_FILES=' ninja-bin64' CONTENT_GAME_DATA_FILES=' dlc' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-${EXPANSION_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_PROVIDES=" $GAME_ID" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_DEPS="$PKG_DATA_ID ${GAME_ID}-libs ${GAME_ID}-data" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mark-of-the-ninja.sh0000750000000000000000000000761614471751340015374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Mark of the Ninja # send your bug reports to 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-medieval-dynasty.sh0000750000000000000000000000506314471751340015436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # Medieval Dynasty # send your bug reports to bugs@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='medieval-dynasty' GAME_NAME='Medieval Dynasty' ## Archives ### Full game ARCHIVE_BASE_0_NAME='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182).exe' ARCHIVE_BASE_0_MD5='e1db5aac7e6bcde369e6d36f3cd76fcc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182)-1.bin' ARCHIVE_BASE_0_PART1_MD5='591f1146a80fd822511799fc6aeaf197' ARCHIVE_BASE_0_PART2='setup_medieval_dynasty_2.1.1.3_(64bit)_(75182)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c0728d685a4c914fff0716fef9e1f2c3' ARCHIVE_BASE_0_SIZE='10550253' ARCHIVE_BASE_0_VERSION='2.1.1.3-gog75182' ARCHIVE_BASE_0_URL='https://www.gog.com/game/medieval_dynasty' UNREALENGINE4_NAME='medieval_dynasty' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_EDITOR_FILES=" ${UNREALENGINE4_NAME}/content/paks/medieval_dynasty-windowsnoeditor.pak ${UNREALENGINE4_NAME}/content/paks/medieval_dynasty-windowsnoeditor.sig" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON="app/goggame-1224667888.ico" PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_EDITOR PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_EDITOR_ID="${GAME_ID}-editor" PKG_EDITOR_DESCRIPTION='editor' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_EDITOR' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-melodys-escape.sh0000750000000000000000000001206514471751340015071 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Melody's Escape # send your bug reports to bugs@dotslashplay.it ### script_version=20250319.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='melodys-escape' GAME_NAME='Melodyʼs Escape' ARCHIVE_BASE_0_NAME='Melodys_Escape_Linux.zip' ARCHIVE_BASE_0_MD5='4d463482418c2d9917c56df3bbde6eea' ARCHIVE_BASE_0_SIZE='60000' ARCHIVE_BASE_0_VERSION='1.0-humble160601' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/melodys-escape' ARCHIVE_OPTIONAL_ICONS_NAME='melodys-escape_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='656fce13728d399e557fd72c3a6bc244' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/melodys-escape/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64 128x128 256x256' CONTENT_PATH_DEFAULT="Melody's Escape" CONTENT_LIBS_LIBS64_PATH='lib64' CONTENT_LIBS_LIBS64_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS64_PATH='BassPlugins' CONTENT_LIBS0_LIBS64_FILES=' libbassflac.so' CONTENT_LIBS_LIBS32_RELATIVE_PATH='lib' CONTENT_LIBS_LIBS32_FILES=' libbass.so libbassmix.so libmojoshader.so' CONTENT_LIBS0_LIBS32_RELATIVE_PATH='BassPlugins' CONTENT_LIBS0_LIBS32_FILES=' libbassflac.so' CONTENT_GAME_MAIN_FILES=' BundledMusic Calibration Content Mods mono MelodysEscape.exe Bass.Net.Linux.dll FNA.dll FNA.dll.config MelodyEngine.dll MelodyReactor.dll tar-cs.dll' CONTENT_DOC_MAIN_FILES=' Licenses README.txt' APP_MAIN_EXE='MelodysEscape.exe' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ARCH='32' PKG_LIBS64_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1' PKG_LIBS32_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" PKG_LIBS64_DEPENDENCIES_LIBRARIES="$PKG_LIBS_DEPENDENCIES_LIBRARIES" # Patch shipped libraries, to ensure they work with system-provided Mono REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} xdelta3" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Check for presence of required library patches ARCHIVE_REQUIRED_LIB_PATCHES_NAME='melodys-escape_lib-patches.tar.gz' ARCHIVE_REQUIRED_LIB_PATCHES_MD5='6aee21776f44df0d927babcddfa3c386' ARCHIVE_REQUIRED_LIB_PATCHES_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_required \ 'ARCHIVE_LIB_PATCHES' \ 'ARCHIVE_REQUIRED_LIB_PATCHES' # Check for presence of optional 64-bit libraries ARCHIVE_OPTIONAL_LIB64_NAME='melodys-escape_lib64.tar.gz' ARCHIVE_OPTIONAL_LIB64_MD5='a77c6b3acd5910bd874a1ca4b7d0c53c' ARCHIVE_OPTIONAL_LIB64_URL='https://downloads.dotslashplay.it/games/melodys-escape/' archive_initialize_optional \ 'ARCHIVE_LIB64' \ 'ARCHIVE_OPTIONAL_LIB64' if ! archive_is_available 'ARCHIVE_LIB64'; then # Exclude 64-bit libraries from the packages to generate # if the archive has not been provided. PACKAGES_LIST=' PKG_MAIN PKG_LIBS32' fi # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_LIB_PATCHES' if archive_is_available 'ARCHIVE_LIB64'; then archive_extraction 'ARCHIVE_LIB64' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Patch shipped libraries, to ensure they work with system-provided Mono for file in 'MelodyReactor.dll' 'MelodysEscape.exe'; do patch="${PLAYIT_WORKDIR}/gamedata/${file}.delta" xdelta3 decode -f -s "$file" "$patch" "$file" rm "$patch" done ) # Include game data content_inclusion_icons content_inclusion_default ## The engine expects to find libbassflac.so in a hardcoded path. file_name='libbassflac.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_LIBS32')$(path_game_data)/BassPlugins/${file_name}" \ "$(package_path 'PKG_LIBS64')$(path_game_data)/BassPlugins/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mesmer.sh0000750000000000000000000000503614471751340013447 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mesmer # send your bug reports to bugs@dotslashplay.it ### script_version=20230427.1 GAME_ID='mesmer' GAME_NAME='Mesmer' ARCHIVE_BASE_0='mesmer_1_0_4_42663.sh' ARCHIVE_BASE_0_MD5='c0209877a3fd4748f9717578678499e5' ARCHIVE_BASE_0_SIZE='3900000' ARCHIVE_BASE_0_VERSION='1.0.4-gog42663' ARCHIVE_BASE_0_URL='https://www.gog.com/game/mesmer' UNITY3D_NAME='Mesmer' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mimo.sh0000750000000000000000000000377514471751340013130 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Mimo # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='mimo' GAME_NAME='Mimo' ARCHIVE_BASE_0_NAME='MIMO_Linux.zip' ARCHIVE_BASE_0_MD5='41fb3512abe6df5eae803faa0d1484c8' ARCHIVE_BASE_0_SIZE='292968' ARCHIVE_BASE_0_VERSION='1.01-itch1' ARCHIVE_BASE_0_URL='https://bebadboi.itch.io/mimo' UNITY3D_NAME='MIMO' UNITY3D_PLUGINS=' ScreenSelector.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='MIMO_Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minecraft-4k.sh0000750000000000000000000000350614471751340014443 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minecraft 4K # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='minecraft-4k' GAME_NAME='Minecraft 4K' ARCHIVE_BASE_0_NAME='4K.exe' ARCHIVE_BASE_0_MD5='c566f5be102e1e1afc153690e47173e5' ARCHIVE_BASE_0_EXTRACTOR='unzip' ARCHIVE_BASE_0_SIZE='20' ARCHIVE_BASE_0_VERSION='1.0-archiveorg180513' ARCHIVE_BASE_0_URL='https://archive.org/details/Minecraft4K' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' M.class' APP_MAIN_TYPE='java' APP_MAIN_EXE='M' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## Errors during the data extraction from the archive are expected, ## they should be ignored. archive_extraction_default 2>/dev/null || true # Include game data content_inclusion_default # Write launchers ## The launcher target is not a .jar archive launcher_target_presence_check() { true ; } game_exec_line() { cat <<- 'EOF' java M "$@" EOF } launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-minit.sh0000750000000000000000000000424114471751340013274 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Minit # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='minit' GAME_NAME='Minit' ARCHIVE_BASE_0='minit_linux.zip' ARCHIVE_BASE_0_MD5='9d27bfb55e24e0749637d6d97a8b3c71' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-itch1' ARCHIVE_BASE_0_URL='https://devolverdigital.itch.io/minit' CONTENT_PATH_DEFAULT='minit' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-minute-of-islands.sh0000750000000000000000000000454714471751340015523 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # Minute of Islands # send your bug reports to bugs@dotslashplay.it ### script_version=20230716.2 GAME_ID='minute-of-islands' GAME_NAME='Minute of Islands' ARCHIVE_BASE_0='setup_minute_of_islands_1.0_(64bit)_(46572).exe' ARCHIVE_BASE_0_MD5='637bf2569af75d362de916fdf4ed570a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_minute_of_islands_1.0_(64bit)_(46572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='612f7cd620f9055a8f45b408b06a0a8e' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-gog46572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/minute_of_islands' UNITY3D_NAME='minute of islands' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge *.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Studio Fizbin/Minute of Islands' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mirrors-edge.sh0000750000000000000000000001011014471751340014543 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.sh0000750000000000000000000000326114471751340013453 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.sh0000750000000000000000000000542414471751340021323 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=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='momodora-reverie-under-the-moonlight' GAME_NAME='Momodora: Reverie Under the Moonlight' ARCHIVE_BASE_2='momodora_reverie_under_the_moonlight_1_063_43451.sh' ARCHIVE_BASE_2_MD5='b10b3d929d6ccac6249581cefcc43285' ARCHIVE_BASE_2_SIZE='330000' ARCHIVE_BASE_2_VERSION='1.063-gog43451' ARCHIVE_BASE_2_URL='https://www.gog.com/game/momodora_reverie_under_the_moonlight' ARCHIVE_BASE_1='momodora_reverie_under_the_moonlight_1_062_24682.sh' ARCHIVE_BASE_1_MD5='9da233f084d0a86e4068ca90c89e4f05' ARCHIVE_BASE_1_SIZE='330000' ARCHIVE_BASE_1_VERSION='1.062-gog24682' ARCHIVE_BASE_0='momodora_reverie_under_the_moonlight_en_20180418_20149.sh' ARCHIVE_BASE_0_MD5='5ec0d0e8475ced69fbaf3881652d78c1' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='1.02a-gog20149' CONTENT_PATH_DEFAULT='data/noarch/game/GameFiles' CONTENT_GAME_BIN_FILES=' MomodoraRUtM' CONTENT_GAME_DATA_FILES=' assets' CONTENT_DOC_DATA_PATH='data/noarch/game' CONTENT_DOC_DATA_FILES=' Installation Notes.pdf Update.txt' USER_PERSISTENT_FILES=' assets/*.ini' APP_MAIN_PRERUN='export LANG=C' APP_MAIN_EXE='MomodoraRUtM' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-monad.sh0000750000000000000000000000323014471751340013247 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monad # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='monad' GAME_NAME='Monad' ARCHIVE_BASE_0_NAME='monad-win64.zip' ARCHIVE_BASE_0_MD5='43f7b632cbd1d622859305b4b7d4839e' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.0-itch.2019.07.31' ARCHIVE_BASE_0_URL='https://shinyogre.itch.io/monad' CONTENT_PATH_DEFAULT='monad-win' CONTENT_GAME_MAIN_FILES=' monad.exe game.ico *.dll' CONTENT_DOC_MAIN_FILES=' license.txt' APP_MAIN_EXE='monad.exe' APP_MAIN_ICON='game.ico' PKG_MAIN_ARCH='64' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-monster-sanctuary.sh0000750000000000000000000000426414471751340015657 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Monster Sanctuary # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='monster-sanctuary' GAME_NAME='Monster Sanctuary' ARCHIVE_BASE_0_NAME='Monster Sanctuary v0_2_8 Linux.zip' ARCHIVE_BASE_0_MD5='5f0712a8799d24c357769afa0faa06ae' ARCHIVE_BASE_0_SIZE='142987' ARCHIVE_BASE_0_VERSION='0.2.8-itch' ARCHIVE_BASE_0_URL='https://sersch.itch.io/monster-sanctuary' UNITY3D_NAME='Monster Sanctuary' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Monster Sanctuary v0_2_8 Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-moon-hunters.sh0000750000000000000000000000450314471751340014613 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Moon Hunters # send your bug reports to bugs@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='moon-hunters' GAME_NAME='Moon Hunters' ARCHIVE_BASE_0_NAME='MoonHunters.DRMFree.Linux.2.0.3483.zip' ARCHIVE_BASE_0_MD5='ce446f42f52e8ecc3bc0d7f174d514e6' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='2.0.3483-humble171230' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/moon-hunters' UNITY3D_NAME='MoonHunters' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-mortal-kombat.sh0000750000000000000000000000721214471751340014726 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Mortal Kombat: # - Mortal Kombat 1 # - Mortal Kombat 2 # - Mortal Kombat 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.3 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_MK1='mortal-kombat-1' GAME_NAME_MK1='Mortal Kombat' GAME_ID_MK2='mortal-kombat-2' GAME_NAME_MK2='Mortal Kombat II' GAME_ID_MK3='mortal-kombat-3' GAME_NAME_MK3='Mortal Kombat III' ARCHIVE_BASE_MK1_0_NAME='setup_mortal_kombat_2.0.0.2.exe' ARCHIVE_BASE_MK1_0_MD5='c4b310a87a7fc021c424e550e979e018' ARCHIVE_BASE_MK1_0_TYPE='innosetup' ARCHIVE_BASE_MK1_0_SIZE='37000' ARCHIVE_BASE_MK1_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK1_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_BASE_MK2_0_NAME='setup_mortal_kombat2_2.0.0.2.exe' ARCHIVE_BASE_MK2_0_MD5='fd66922a3c5551077020ba6df2b2446f' ARCHIVE_BASE_MK2_0_TYPE='innosetup' ARCHIVE_BASE_MK2_0_SIZE='38000' ARCHIVE_BASE_MK2_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK2_0_URL='https://www.gog.com/game/mortal_kombat_123' ARCHIVE_BASE_MK3_0_NAME='setup_mortal_kombat3_2.0.0.2.exe' ARCHIVE_BASE_MK3_0_MD5='e9703877b5bd2dfde5b2d65b8586aa6d' ARCHIVE_BASE_MK3_0_TYPE='innosetup' ARCHIVE_BASE_MK3_0_SIZE='87000' ARCHIVE_BASE_MK3_0_VERSION='1.0-gog2.0.0.2' ARCHIVE_BASE_MK3_0_URL='https://www.gog.com/game/mortal_kombat_123' CONTENT_PATH_DEFAULT_MK1='app/mk1' CONTENT_PATH_DEFAULT_MK2='app/mk2' CONTENT_PATH_DEFAULT_MK3='app/mk3' CONTENT_GAME_MAIN_FILES_MK1=' graphics sfx *.bat *.dig *.dat *.drv *.exe *.gra *.ini *.lst *.mk1 *.pif' CONTENT_GAME_MAIN_FILES_MK2=' fx sound cmos *.bat *.bin *.drv *.exe *.gra *.ini' CONTENT_GAME_MAIN_FILES_MK3=' drivers image *.asg *.bat *.dat *.exe *.ftr *.ini *.mk3' CONTENT_DOC_MAIN_FILES_MK2=' readme.txt' USER_PERSISTENT_FILES_MK1=' cmos.mk1 *.ini' USER_PERSISTENT_FILES_MK2=' cmos *.ini' USER_PERSISTENT_FILES_MK3=' *.dat *.ini' GAME_IMAGE_MK3='image/mk3.cue' APP_MAIN_EXE_MK1='mk1.exe' APP_MAIN_EXE_MK2='mk2.exe' APP_MAIN_EXE_MK3='mk3.exe' APP_MAIN_ICON_MK1='../goggame-1207667043.ico' APP_MAIN_ICON_MK2='../goggame-1207667053.ico' APP_MAIN_ICON_MK3='../goggame-1207667063.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Mortal Kombat 3 - Ensure case consistency between the disk image table of contents and the actual filenames. case "$(current_archive)" in ('ARCHIVE_BASE_MK3_'*) sed_pattern='MK3\.GOG' sed_replacement='mk3.gog' sed_expression="s/${sed_pattern}/${sed_replacement}/" sed_pattern='Track' sed_replacement='track' sed_expression="${sed_expression};s/${sed_pattern}/${sed_replacement}/g" sed --in-place --expression="$sed_expression" "$GAME_IMAGE_MK3" ;; esac ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around ./play.it 2.29 lack of context support for $GAME_IMAGE. GAME_IMAGE=$(context_value 'GAME_IMAGE') launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-museum-of-mechanics-lockpicking.sh0000750000000000000000000000427014471751340020316 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Museum of Mechanics: Lockpicking # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='museum-of-mechanics-lockpicking' GAME_NAME='Museum of Mechanics: Lockpicking' ARCHIVE_BASE_1_NAME='museum-of-mechanics-lockpicking-linux.zip' ARCHIVE_BASE_1_MD5='5b6d381d975867c75b797ec9ba3f45e1' ARCHIVE_BASE_1_SIZE='282860' ARCHIVE_BASE_1_VERSION='0.6.5-itch.2021.07.21' ARCHIVE_BASE_1_URL='https://dimbulbgames.itch.io/museum-of-mechanics-lockpicking' ARCHIVE_BASE_0_NAME='museum-of-mechanics-lockpicking-linux.zip' ARCHIVE_BASE_0_MD5='6e47b913932abbba3d132c9d849b79fd' ARCHIVE_BASE_0_SIZE='156246' ARCHIVE_BASE_0_VERSION='0.2.2-itch.2020.08.29' UNITY3D_NAME='Museum_Of_Mechanics' ## This game does not ship any Unity3D plugin. CONTENT_PATH_DEFAULT='Museum of Mechanics - Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-mushroom-11.sh0000750000000000000000000000444214471751340014247 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-mutazione.sh0000750000000000000000000000423614471751340014173 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Mutazione # send your bug reports to bugs@dotslashplay.it ### script_version=20230411.1 GAME_ID='mutazione' GAME_NAME='Mutazione' ARCHIVE_BASE_1='mutazione_1_84_2_58889.sh' ARCHIVE_BASE_1_MD5='62907ada1a1e09f64f93cafa3db87aaa' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2600000' ARCHIVE_BASE_1_VERSION='1.84.2-gog58889' ARCHIVE_BASE_1_URL='https://www.gog.com/game/mutazione' UNITY3D_NAME='mutazione' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-memory-of-us.sh0000750000000000000000000000413614471751340015141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # My Memory of Us # send your bug reports to bugs@dotslashplay.it ### script_version=20240812.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='my-memory-of-us' GAME_NAME='My Memory of Us' ARCHIVE_BASE_0_NAME='setup_my_memory_of_us_1.13057.1_(64bit)_(25548).exe' ARCHIVE_BASE_0_MD5='44d0900cd3677e8811eea558ed237c56' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_my_memory_of_us_1.13057.1_(64bit)_(25548)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a2e2e199681aaa136cc109df60b6eefc' ARCHIVE_BASE_0_SIZE='5000000' ARCHIVE_BASE_0_VERSION='1.13057.1-gog25548' ARCHIVE_BASE_0_URL='https://www.gog.com/game/my_memory_of_us' UNITY3D_NAME='mmou' CONTENT_PATH_DEFAULT='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Juggler Games\My Memory of Us' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Juggler Games/My Memory of Us' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-rabbits-are-gone.sh0000750000000000000000000000504514471751340015723 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=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='my-rabbits-are-gone' GAME_NAME='Oh Jeez, Oh No, My Rabbits Are Gone !!!' ARCHIVE_BASE_1='oh-jeez-oh-no-my-rabbits-are-gone-linux.zip' ARCHIVE_BASE_1_MD5='5fd3335ca1a517bd733d2692bda6dd35' ARCHIVE_BASE_1_SIZE='210000' ARCHIVE_BASE_1_VERSION='1.3.1.2a-itch1' ARCHIVE_BASE_1_URL='https://studionevermore.itch.io/oh-jeez-oh-no-my-rabbits-are-gone' ARCHIVE_BASE_0='MyRabbitsAreGone1.1.0.5ItchLinux.zip' ARCHIVE_BASE_0_MD5='4666fb50124c7076b1a9e493b5ff4883' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.1.5-itch1' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' MyRabbitsAreGone' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' assets/options.ini' APP_MAIN_EXE='MyRabbitsAreGone' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl.so.4 libssl.so.1.1" PKG_BIN_DEPENDENCIES_LIBRARIES_0=" $PKG_BIN_DEPENDENCIES_LIBRARIES_COMMON libcurl-gnutls.so.4 libssl.so.1.0.0" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-my-time-at-portia.sh0000750000000000000000000000573614471751340015445 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # My Time at Portia # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='my-time-at-portia' GAME_NAME='My Time at Portia' ARCHIVE_BASE_1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522).exe' ARCHIVE_BASE_1_MD5='73890f1c7a86bdcab47a00b72366928a' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-1.bin' ARCHIVE_BASE_1_PART1_MD5='87fb19e0f0f04a499e81e7a81b49818d' ARCHIVE_BASE_1_PART2_NAME='setup_my_time_at_portia_20210813-1123-141541_(64bit)_(49522)-2.bin' ARCHIVE_BASE_1_PART2_MD5='2ef18dcfdc16f1d7f52c2a49cfd63010' ARCHIVE_BASE_1_SIZE='10038490' ARCHIVE_BASE_1_VERSION='2021.08.13-gog49522' ARCHIVE_BASE_1_URL='https://www.gog.com/game/my_time_at_portia' ARCHIVE_BASE_0_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960).exe' ARCHIVE_BASE_0_MD5='9f21752466f3ce96719cfea66bce05d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-1.bin' ARCHIVE_BASE_0_PART1_MD5='881179a255b81a165411ca88fc99dcc7' ARCHIVE_BASE_0_PART2_NAME='setup_my_time_at_portia_2.0.141235_(64bit)_(41960)-2.bin' ARCHIVE_BASE_0_PART2_MD5='b84720aea74b713c8738197872f4add0' ARCHIVE_BASE_0_SIZE='9800000' ARCHIVE_BASE_0_VERSION='2.0.141235-gog41960' UNITY3D_NAME='portia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_ASSETBUNDLES_FILES=' portia_data/streamingassets/assetbundles' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Pathea Games/My Time at Portia' PACKAGES_LIST=' PKG_BIN PKG_DATA_ASSETBUNDLES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_ASSETBUNDLES' PKG_DATA_ASSETBUNDLES_ID="${PKG_DATA_ID}-asssetbundles" PKG_DATA_DESCRIPTION="$PKG_DATA_DESCRIPTION - asset bundles" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-nanotale-typing-chronicles.sh0000750000000000000000000000467714471751340017431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Nanotale - Typing Chronicles # send your bug reports to bugs@dotslashplay.it ### script_version=20230811.2 GAME_ID='nanotale-typing-chronicles' GAME_NAME='Nanotale - Typing Chronicles' ARCHIVE_BASE_1='nanotale_typing_chronicles_1_96_51035.sh' ARCHIVE_BASE_1_MD5='fee2152ca68930869172c1bb6785d37d' ARCHIVE_BASE_1_SIZE='5200000' ARCHIVE_BASE_1_VERSION='1.96-gog51035' ARCHIVE_BASE_1_URL='https://www.gog.com/game/nanotale_typing_chronicles' ARCHIVE_BASE_0='nanotale_typing_chronicles_1_95_50826.sh' ARCHIVE_BASE_0_MD5='a77a001896b0c742feddd24ce594bc3e' ARCHIVE_BASE_0_SIZE='4600000' ARCHIVE_BASE_0_VERSION='1.95-gog50826' UNITY3D_NAME='Nanotale' UNITY3D_PLUGINS=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so sqlite3.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/MonoBleedingEdge ${UNITY3D_NAME} UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="$UNITY3D_NAME" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neon-code.sh0000750000000000000000000000416714471751340014032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neon Code # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='neon-code' GAME_NAME='Neon Code' ARCHIVE_BASE_0_NAME='NeonCode_0_89_Linux.zip' ARCHIVE_BASE_0_MD5='dbcf301048b76c443bb746c0b337692b' ARCHIVE_BASE_0_SIZE='4249065' ARCHIVE_BASE_0_VERSION='0.89-itch' ARCHIVE_BASE_0_URL='https://fubenalvo.itch.io/neoncode' UNITY3D_NAME='NeonCode' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeonCode_0_89_Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neon-drive.sh0000750000000000000000000000514514471751340014226 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Neon Drive # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neon-drive' GAME_NAME='neon Drive' ARCHIVE_BASE_1_NAME='NeonDrive_V1.5_Linux.zip' ARCHIVE_BASE_1_MD5='1fcbd5dc69cc08899b792b9f4c0d7075' ARCHIVE_BASE_1_SIZE='495259' ARCHIVE_BASE_1_VERSION='1.5-humble170831' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/neon-drive' ARCHIVE_BASE_0_NAME='NeonDrive_V1.4__Linux.rar' ARCHIVE_BASE_0_MD5='86627f5639234614b036666de4223a15' ARCHIVE_BASE_0_SIZE='490000' ARCHIVE_BASE_0_VERSION='1.4-humble1' UNITY3D_NAME='Neon Drive' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neurodeck-psychological-deckbuilder.sh0000750000000000000000000000441214471751340021244 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neurodeck: Psychological Deckbuilder # send your bug reports to bugs@dotslashplay.it ### script_version=20230411.1 GAME_ID='neurodeck-psychological-deckbuilder' GAME_NAME='Neurodeck: Psychological Deckbuilder' ARCHIVE_BASE_1='neurodeck_psychological_deckbuilder_1_5_3_49984.sh' ARCHIVE_BASE_1_MD5='609908c4cfa583e4fc6d6b3c1764f91b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='690000' ARCHIVE_BASE_1_VERSION='1.5.3-gog49984' ARCHIVE_BASE_1_URL='https://www.gog.com/game/neurodeck_psychological_deckbuilder' UNITY3D_NAME='Neurodeck' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}_Data/Plugins UnityPlayer.so" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-never-alone.sh0000750000000000000000000000454214471751340014373 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Never Alone # send your bug reports to bugs@dotslashplay.it ### script_version=20231111.4 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='never-alone' GAME_NAME='Never Alone' ARCHIVE_BASE_0_NAME='NeverAlone_ArcticCollection_Linux.1.04.tar.gz' ARCHIVE_BASE_0_MD5='3da062abaaa9e3e6ff97d4c82c8ea3c3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.04-humble161008' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/never-alone-arctic-collection' UNITY3D_NAME='Never_Alone' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='NeverAlone_ArcticCollection_Linux.1.04' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x64" CONTENT_GAME_VIDEOS_FILES=" ${UNITY3D_NAME}_Data/StreamingAssets/Videos" APP_MAIN_EXE="${UNITY3D_NAME}.x64" PACKAGES_LIST=' PKG_BIN PKG_VIDEOS PKG_DATA' PKG_VIDEOS_ID="$GAME_ID-videos" PKG_VIDEOS_DESCRIPTION='videos' PKG_DATA_ID="$GAME_ID-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_VIDEOS_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverending-nightmares.sh0000750000000000000000000000423214471751340016617 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Neverending Nightmares # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='neverending-nightmares' GAME_NAME='Neverending Nightmares' ARCHIVE_BASE_0='neverending_nightmares_3_3_22468_41851.sh' ARCHIVE_BASE_0_MD5='4ab28bf5862dc35e6a821e1aabc3e41a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='3.3.22468-gog41851' ARCHIVE_BASE_0_URL='https://www.gog.com/game/neverending_nightmares' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' OpenAL-MOB.so' CONTENT_GAME_BIN_FILES=' nightmare' CONTENT_GAME_DATA_FILES=' controller.vdf *.itap' APP_MAIN_EXE='nightmare' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libcurl.so.4 libGL.so.1 libGLU.so.1 libgtk-x11-2.0.so.0 libidn.so.11 libopenal.so.1 libstdc++.so.6 libudev.so.1 libuuid.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-neverwinter-nights-1-enhanced-edition-localizations.sh0000750000000000000000000001143314471751340024222 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 Enhanced Edition localization packs: # - German # - French # - Polish # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' GAME_NAME_DE="$GAME_NAME - German localization" GAME_NAME_FR="$GAME_NAME - French localization" GAME_NAME_PL="$GAME_NAME - Polish localization" ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='082281faf84fc9be25e1aaf21a99a1ce' ARCHIVE_BASE_DE_6_SIZE='892427' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_german_extras' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='088b8c890ecbf09b86a7c75e07ef43f1' ARCHIVE_BASE_FR_6_SIZE='833009' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_french_extras' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_extras_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='89e2dced24b885c04e1c45bc71e9960f' ARCHIVE_BASE_PL_6_SIZE='820818' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_polish_extras' ARCHIVE_BASE_DE_5_NAME='neverwinter_nights_enhanced_edition_german_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_DE_5_MD5='596b075b63b8f9f76bbf1eeaa8150cfb' ARCHIVE_BASE_DE_5_SIZE='892816' ARCHIVE_BASE_DE_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='88b889d8eefadfde33d0fad8bac1b9be' ARCHIVE_BASE_FR_5_SIZE='833404' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_extras_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='c78a405c135ffad7e126bd44113ecc86' ARCHIVE_BASE_PL_5_SIZE='833404' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_DE_4_NAME='neverwinter_nights_enhanced_edition_german_extras_85_8193_33_50393.sh' ARCHIVE_BASE_DE_4_MD5='d20a22fc2dfdeca4bb71bb7fd7e13a82' ARCHIVE_BASE_DE_4_SIZE='900000' ARCHIVE_BASE_DE_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_extras_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='f39ecc55b15740322d8ae860ccfecbc5' ARCHIVE_BASE_FR_4_SIZE='840000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_DE_1_NAME='neverwinter_nights_enhanced_edition_german_extras_81_8193_16_41300.sh' ARCHIVE_BASE_DE_1_MD5='1e81fcf9d40bcf23dec0a77069222a52' ARCHIVE_BASE_DE_1_SIZE='892298' ARCHIVE_BASE_DE_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_extras_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='1fe0cc196c146834ff186935ae2d3d66' ARCHIVE_BASE_FR_1_SIZE='832881' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_PL_1_NAME='neverwinter_nights_enhanced_edition_polish_extras_81_8193_16_41300.sh' ARCHIVE_BASE_PL_1_MD5='8ff3b7d282b9a3822425823e9efd545f' ARCHIVE_BASE_PL_1_SIZE='820690' ARCHIVE_BASE_PL_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_0_NAME='neverwinter_nights_enhanced_edition_french_extras_80_8193_9_37029.sh' ARCHIVE_BASE_FR_0_MD5='5e0564a161259b003c7dc0f8d8aa743f' ARCHIVE_BASE_FR_0_SIZE='840000' ARCHIVE_BASE_FR_0_VERSION='80.8193.9-gog37029' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' lang/??/data' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_ID="${GAME_ID}-l10n" PKG_MAIN_ID_DE="${PKG_MAIN_ID}-de" PKG_MAIN_ID_FR="${PKG_MAIN_ID}-fr" PKG_MAIN_ID_PL="${PKG_MAIN_ID}-pl" PKG_MAIN_PROVIDES=" $PKG_MAIN_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neverwinter-nights-1-enhanced-edition.sh0000750000000000000000000001412714471751340021354 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2021 Christian Stalp # SPDX-FileCopyrightText: © 2023 Jacek Szafarkiewicz set -o errexit ### # Neverwinter Nights 1 Enhanced Edition # send your bug reports to bugs@dotslashplay.it ### script_version=20241212.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='neverwinter-nights-1-enhanced-edition' GAME_NAME='Neverwinter Nights: Enhanced Edition' ARCHIVE_BASE_EN_6_NAME='neverwinter_nights_enhanced_edition_88_8193_36_13_72824.sh' ARCHIVE_BASE_EN_6_MD5='922f474f2e1573abc66f803c752f2159' ARCHIVE_BASE_EN_6_SIZE='6250881' ARCHIVE_BASE_EN_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_EN_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_DE_6_NAME='neverwinter_nights_enhanced_edition_german_88_8193_36_13_72824.sh' ARCHIVE_BASE_DE_6_MD5='2218e12a8d09e1b799f11402c93d1eec' ARCHIVE_BASE_DE_6_SIZE='6250881' ARCHIVE_BASE_DE_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_DE_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_6_NAME='neverwinter_nights_enhanced_edition_french_88_8193_36_13_72824.sh' ARCHIVE_BASE_FR_6_MD5='ed1a605cc15b5416d0eda7840dd4f8d9' ARCHIVE_BASE_FR_6_SIZE='6250881' ARCHIVE_BASE_FR_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_FR_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_6_NAME='neverwinter_nights_enhanced_edition_polish_88_8193_36_13_72824.sh' ARCHIVE_BASE_PL_6_MD5='351e857d4e6a75d18721a3964a937bfe' ARCHIVE_BASE_PL_6_SIZE='6250881' ARCHIVE_BASE_PL_6_VERSION='88.8193.36.13-gog72824' ARCHIVE_BASE_PL_6_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_5_NAME='neverwinter_nights_enhanced_edition_87_8193_35_40_65678.sh' ARCHIVE_BASE_EN_5_MD5='c1191f9e19f1da52f1424025017cf56f' ARCHIVE_BASE_EN_5_SIZE='6253452' ARCHIVE_BASE_EN_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_FR_5_NAME='neverwinter_nights_enhanced_edition_french_87_8193_35_40_65678.sh' ARCHIVE_BASE_FR_5_MD5='319194e7a229b24b19f7454d8ed860d6' ARCHIVE_BASE_FR_5_SIZE='6253452' ARCHIVE_BASE_FR_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_PL_5_NAME='neverwinter_nights_enhanced_edition_polish_87_8193_35_40_65678.sh' ARCHIVE_BASE_PL_5_MD5='d4c3d4c4af501424a60bf9e09e5a2f01' ARCHIVE_BASE_PL_5_SIZE='6253452' ARCHIVE_BASE_PL_5_VERSION='87.8193.35.40-gog65678' ARCHIVE_BASE_EN_4_NAME='neverwinter_nights_enhanced_edition_85_8193_33_50393.sh' ARCHIVE_BASE_EN_4_MD5='4e6c4f7bd75791a9c726b7b573cfafe5' ARCHIVE_BASE_EN_4_SIZE='6300000' ARCHIVE_BASE_EN_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_FR_4_NAME='neverwinter_nights_enhanced_edition_french_85_8193_33_50393.sh' ARCHIVE_BASE_FR_4_MD5='19b036e3c07fd4aa9a835de05b4aea1f' ARCHIVE_BASE_FR_4_SIZE='6200000' ARCHIVE_BASE_FR_4_VERSION='85.8193.33-gog50393' ARCHIVE_BASE_EN_3_NAME='neverwinter_nights_enhanced_edition_83_8193_23_47201.sh' ARCHIVE_BASE_EN_3_MD5='b85d2ea70aa6dba1096e97e944d98141' ARCHIVE_BASE_EN_3_SIZE='6300000' ARCHIVE_BASE_EN_3_VERSION='83.8193.23-gog47201' ARCHIVE_BASE_EN_2_NAME='neverwinter_nights_enhanced_edition_82_8193_20_1_43497.sh' ARCHIVE_BASE_EN_2_MD5='c80e73f0305ad99355cc089c632b8b0c' ARCHIVE_BASE_EN_2_SIZE='6200000' ARCHIVE_BASE_EN_2_VERSION='82.8193.20.1-gog43497' ARCHIVE_BASE_EN_1_NAME='neverwinter_nights_enhanced_edition_81_8193_16_41300.sh' ARCHIVE_BASE_EN_1_MD5='a52646002ab14c452731b0636fdc8278' ARCHIVE_BASE_EN_1_SIZE='6200000' ARCHIVE_BASE_EN_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_FR_1_NAME='neverwinter_nights_enhanced_edition_french_81_8193_16_41300.sh' ARCHIVE_BASE_FR_1_MD5='67f42c1a1604a26fdbcd0cbc800856f5' ARCHIVE_BASE_FR_1_SIZE='6200000' ARCHIVE_BASE_FR_1_VERSION='81.8193.16-gog41300' ARCHIVE_BASE_EN_0_NAME='neverwinter_nights_enhanced_edition_80_8193_9_37029.sh' ARCHIVE_BASE_EN_0_MD5='fb98f859b5f5516fc7df8b00c7264c07' ARCHIVE_BASE_EN_0_VERSION='80.8193.9-gog37029' ARCHIVE_BASE_EN_0_SIZE='5000000' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' bin/linux-x86' CONTENT_GAME_DATA_FILES=' data ovr lang/??/data' CONTENT_DOC_DATA_RELATIVE_PATH='lang' CONTENT_DOC_DATA_FILES=' ??/docs' APP_MAIN_EXE='bin/linux-x86/nwmain-linux' APP_MAIN_ICON='bin/win32/nwmain.exe' APP_SERVER_ID="${GAME_ID}-server" APP_SERVER_NAME="${GAME_NAME} - server" APP_SERVER_EXE='bin/linux-x86/nwserver-linux' APP_SERVER_ICON='bin/win32/nwserver.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the use of system-provided SDL APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # Force the use of the system SDL library export SDL_DYNAMIC_API='$(path_libraries_system)/libSDL2-2.0.so.0' " ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwmain-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_MAIN' ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/linux-x86 ./nwserver-linux "$@" EOF } launchers_generation 'PKG_BIN' 'APP_SERVER' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-neverwinter-nights-1.sh0000750000000000000000000002707014471751340016161 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Neverwinter Nights 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='neverwinter-nights-1' GAME_NAME='Neverwinter Nights' ARCHIVE_BASE_DE_0_NAME='setup_nwn_diamond_german_2.1.0.21.exe' ARCHIVE_BASE_DE_0_MD5='63a32f4fdb2939e73ac40d80f5798e28' ARCHIVE_BASE_DE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_DE_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_DE_0_PART1_NAME='setup_nwn_diamond_german_2.1.0.21-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='e6c50d030b046c05ccf87601844ccc23' ARCHIVE_BASE_DE_0_PART1_TYPE='rar' ARCHIVE_BASE_DE_0_SIZE='4400000' ARCHIVE_BASE_DE_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_EN_0_NAME='setup_nwn_diamond_2.1.0.21.exe' ARCHIVE_BASE_EN_0_MD5='cd809b9d22022adb01b0d1d70c5afa8e' ARCHIVE_BASE_EN_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EN_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_EN_0_PART1_NAME='setup_nwn_diamond_2.1.0.21-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='ce60bf104cc6082fe79d6f0bd7b48f51' ARCHIVE_BASE_EN_0_PART1_TYPE='rar' ARCHIVE_BASE_EN_0_SIZE='5100000' ARCHIVE_BASE_EN_0_VERSION='1.69-gog2.1.0.21' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_ES_0_NAME='setup_nwn_diamond_spanish_2.1.0.21.exe' ARCHIVE_BASE_ES_0_MD5='70448f984b66a814bda712ecfef5977e' ARCHIVE_BASE_ES_0_EXTRACTOR='innoextract' ARCHIVE_BASE_ES_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_ES_0_PART1_NAME='setup_nwn_diamond_spanish_2.1.0.21-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='3b6dee19655a1280273c5d0652f74ab5' ARCHIVE_BASE_ES_0_PART1_TYPE='rar' ARCHIVE_BASE_ES_0_SIZE='4400000' ARCHIVE_BASE_ES_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_FR_0_NAME='setup_nwn_diamond_french_2.1.0.21.exe' ARCHIVE_BASE_FR_0_MD5='caadc0f809e10ddf781cacbebd1b25d9' ARCHIVE_BASE_FR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_FR_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_FR_0_PART1_NAME='setup_nwn_diamond_french_2.1.0.21-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='aeb4b99635bdc046560477b2b11307e3' ARCHIVE_BASE_FR_0_PART1_TYPE='rar' ARCHIVE_BASE_FR_0_SIZE='4300000' ARCHIVE_BASE_FR_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' ARCHIVE_BASE_PL_0_NAME='setup_nwn_diamond_polish_2.1.0.21.exe' ARCHIVE_BASE_PL_0_MD5='5779b5c690984a79c617efc7649e66a3' ARCHIVE_BASE_PL_0_EXTRACTOR='innoextract' ARCHIVE_BASE_PL_0_EXTRACTOR_OPTIONS='--progress=1 --silent --lowercase --gog' ARCHIVE_BASE_PL_0_PART1_NAME='setup_nwn_diamond_polish_2.1.0.21-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='540c20cd68079c7a214af65296b4a8b1' ARCHIVE_BASE_PL_0_PART1_TYPE='rar' ARCHIVE_BASE_PL_0_SIZE='4400000' ARCHIVE_BASE_PL_0_VERSION='1.68-gog2.1.0.21' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/neverwinter_nights_enhanced_edition_pack' CONTENT_PATH_DEFAULT='game' CONTENT_LIBS_BIN_PATH='lib' CONTENT_LIBS_BIN_FILES=' libtxc_dxtn.so' CONTENT_LIBS0_BIN_PATH='miles' CONTENT_LIBS0_BIN_FILES=' libmss.so libmss.so.6 libmss.so.6.5.2 mssdsp.flt mssmp3.asi msssoft.m3d' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME_BIN_PATH='.' CONTENT_GAME_BIN_FILES=' dmclient fixinstall nwmain nwserver nwn.ini' CONTENT_GAME0_BIN_PATH='support/app' CONTENT_GAME0_BIN_FILES=' nwncdkey.ini' CONTENT_GAME1_BIN_PATH='.' CONTENT_GAME1_BIN_FILES=' nwmovies nwmovies_install.pl' CONTENT_GAME_L10N_FILES=' *.key *.tlk movies/Chap?_Chap?.bik movies/credits.bik movies/ending.bik movies/prelude.bik movies/prelude_chap1.bik movies/XP?_*.bik data/*convo.bif data/models_??.bif data/music*.bif data/templates.bif data/*voicesets.bif data/xp1_sounds*.bif data/xp2_german.bif data/xp2_french.bif data/xp2_polish.bif' CONTENT_DOC_L10N_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_L10N_FILES=' *.pdf *.rtf *.txt' CONTENT_GAME_DATA_FILES=' ambient dmvault hak localvault modules music nwm override texturepacks movies/*.bik data/*.bif' CONTENT_GAME0_DATA_PATH='.' CONTENT_GAME0_DATA_FILES=' override' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_DIRECTORIES=' portraits saves servervault' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='nwmain' APP_MAIN_ICON='nwn.exe' ## Apply required SDL tweaks APP_MAIN_PRERUN=' export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 ' PACKAGES_LIST='PKG_BIN PKG_L10N PKG_DATA' PACKAGES_LIST_NWMOVIES="PKG_NWMOVIES $PACKAGES_LIST" PKG_NWMOVIES_ID="${GAME_ID}-nwmovies" PKG_NWMOVIES_DESCRIPTION='NWMovies' PKG_NWMOVIES_ARCH='32' PKG_NWMOVIES_DEPS="$GAME_ID" PKG_NWMOVIES_DEPENDENCIES_COMMANDS=' mpv' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION_DE='German localization' PKG_L10N_DESCRIPTION_ES='Spanish localization' PKG_L10N_DESCRIPTION_EN='English localization' PKG_L10N_DESCRIPTION_FR='French localization' PKG_L10N_DESCRIPTION_PL='Polish localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 libSDL-1.2.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of extra required archives ARCHIVE_REQUIRED_LINUX_COMMON_NAME='nwn-linux-common.tar.gz' ARCHIVE_REQUIRED_LINUX_COMMON_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_COMMON_MD5='9aa7dae2ba9111c96b10679fa085c66e' case "$(package_version)" in ('1.69-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.69.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='8ea69b40842f9721051d4ddd6510d3b2' ;; ('1.68-'*) ARCHIVE_REQUIRED_LINUX_NAME='nwn-linux-1.68.2023-10-07.tar.xz' ARCHIVE_REQUIRED_LINUX_URL='https://downloads.dotslashplay.it/games/neverwinter-nights-1/' ARCHIVE_REQUIRED_LINUX_MD5='12ff7f8604d04194b87cf70832bb86fa' ;; esac archive_initialize_required \ 'ARCHIVE_LINUX_COMMON' \ 'ARCHIVE_REQUIRED_LINUX_COMMON' archive_initialize_required \ 'ARCHIVE_LINUX' \ 'ARCHIVE_REQUIRED_LINUX' # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_NWMOVIES_NAME='nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_URL='https://sites.google.com/site/gogdownloader/nwmovies-mpv.tar.gz' ARCHIVE_OPTIONAL_NWMOVIES_MD5='71f3d88db1cd75665b62b77f7604dce1' archive_initialize_optional \ 'ARCHIVE_NWMOVIES' \ 'ARCHIVE_OPTIONAL_NWMOVIES' # Check for the presence of NWMovies build dependencies ## TODO: The library should provide a function to check the presence of a list of compilation headers. ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then case "${LANG%_*}" in ('fr') message='Contrôle de la présence des dépendances requises pour la compilation de NWMovies…' ;; ('en'|*) message='Check for the presence of NWMovies build dependencies…' ;; esac printf '%s\n' "$message" tests_directory="${PLAYIT_WORKDIR}/tests" mkdir --parents "$tests_directory" test_source="${tests_directory}/build-deps.c" test_binary="${tests_directory}/build-deps.so" cat > "$test_source" <<-EOF #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main () { return 0; } EOF gcc -shared -Wall -fPIC -ldl -m32 "$test_source" -o "$test_binary" rm --recursive "$tests_directory" fi # Extract game data archive_extraction_default archive_extraction 'ARCHIVE_LINUX_COMMON' archive_extraction 'ARCHIVE_LINUX' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_NWMOVIES' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Fixe case issues with some files. if [ -e 'dialog.TLK' ]; then mv 'dialog.TLK' 'dialog.tlk' fi if [ -e 'dialogF.TLK' ]; then mv 'dialogF.TLK' 'dialogf.tlk' fi for tiles in 'a' 'b' 'c'; do if [ -e "texturepacks/Tiles_TP${tiles}.ERF" ]; then mv "texturepacks/Tiles_TP${tiles}.ERF" "texturepacks/Tiles_Tp${tiles}.erf" fi done ) # Build the NWMovies video player ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then ( cd "${PLAYIT_WORKDIR}/gamedata/nwmovies" case "${LANG%_*}" in ('fr') message='Construction du lecteur vidéo NWMovies…' ;; ('en'|*) message='Building NWMovies video player…' ;; esac printf '%s\n' "$message" sed --in-place 's/mpv /mpv --fs --no-osc /' 'nwplaymovie' chmod 755 'nwmovies_install.pl' export CFLAGS='-w' ./nwmovies_install.pl build >/dev/null 2>&1 ) fi # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_NWMOVIES' 2>/dev/null || true)" ]; then PACKAGES_LIST="$PACKAGES_LIST_NWMOVIES" install -D --mode=644 \ --target-directory="$(package_path 'PKG_NWMOVIES')$(path_libraries)" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.so" \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/libdis/libdisasm.so" install -D --mode=755 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwplaymovie" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwplaymovie" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/nwmovies/nwmovies.README.txt" \ "$(package_path 'PKG_NWMOVIES')$(path_documentation)/nwmovies.README.txt" rm --recursive "${PLAYIT_WORKDIR}/gamedata/nwmovies" ## NWMovies look for some libraries in hardcoded paths. mkdir --parents "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis" ln --symbolic \ "$(path_libraries)/libdisasm.so" \ "$(package_path 'PKG_NWMOVIES')$(path_game_data)/nwmovies/libdis/libdisasm.so" fi content_inclusion_default # Write launchers APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Play videos using NWMovies, if it is available nwmovies_library="'"$(path_libraries)"'/nwmovies.so" if [ -e "$nwmovies_library" ]; then export LD_PRELOAD="$nwmovies_library" fi ' PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nihilumbra.sh0000750000000000000000000000615514471751340014314 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-no-mans-sky.sh0000750000000000000000000000514114471751340014330 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # No Man's Sky # send your bug reports to bugs@dotslashplay.it ### script_version=20230731.3 GAME_ID='no-mans-sky' GAME_NAME='No Manʼs Sky' ARCHIVE_BASE_0='setup_no_mans_sky_experimental_54853_(34267).exe' ARCHIVE_BASE_0_MD5='c9a4884cf0158412f5feb2f34006b69d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_no_mans_sky_experimental_54853_(34267)-1.bin' ARCHIVE_BASE_0_PART1_MD5='60db3050ffeb6db013c1170e6641d734' ARCHIVE_BASE_0_PART2='setup_no_mans_sky_experimental_54853_(34267)-2.bin' ARCHIVE_BASE_0_PART2_MD5='91569361327142cc6855b46450f0f44b' ARCHIVE_BASE_0_PART3='setup_no_mans_sky_experimental_54853_(34267)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a75187db1de93e9bd66fa0b7d1ac7ef7' ARCHIVE_BASE_0_VERSION='54853-gog34267' ARCHIVE_BASE_0_SIZE='9600000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/no_mans_sky' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' binaries languagesetup.exe' CONTENT_GAME_DATA_FILES=' gamedata' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/HelloGames/NMS' USER_PERSISTENT_DIRECTORIES=' binaries/settings' APP_MAIN_EXE='binaries/nms.exe' APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='languagesetup.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noctropolis.sh0000750000000000000000000000406014471751340014526 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Noctropolis # send your bug reports to bugs@dotslashplay.it ### script_version=20230207.1 GAME_ID='noctropolis' GAME_NAME='Noctropolis' ARCHIVE_BASE_0='noctropolis_en_1_0_16066.sh' ARCHIVE_BASE_0_MD5='08bc9c0135daa87ffa4059706442687b' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='640000' ARCHIVE_BASE_0_VERSION='1.0-gog16066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/noctropolis' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' noctropolis' CONTENT_GAME_DATA_FILES=' DARK DE ES FR' CONTENT_DOC_DATA_FILES=' LICENSE.ogg-vorbis.txt README.txt README-SDL.txt' APP_MAIN_EXE='noctropolis' PACKAGES_LIST='PKG_DATA PKG_BIN' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-noita.sh0000750000000000000000000000610414471751340013266 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-nowhere-prophet.sh0000750000000000000000000000605614471751340015310 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Nowhere Prophet # send your bug reports to bugs@dotslashplay.it ### script_version=20230129.1 GAME_ID='nowhere-prophet' GAME_NAME='Nowhere Prophet' UNITY3D_NAME='NowhereProphet' ARCHIVE_BASE_0='nowhere_prophet_1_07_013_ichcha_49715.sh' ARCHIVE_BASE_0_MD5='a88b8aaf466ffffb0f9515b5e53d2366' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='660000' ARCHIVE_BASE_0_VERSION='1.07.013-gog49715' ARCHIVE_BASE_0_URL='https://www.gog.com/game/nowhere_prophet' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-nyx-quest.sh0000750000000000000000000000366714471751340014144 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-obduction.sh0000750000000000000000000000405714471751340014147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Obduction # Send your bug reports to bugs@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='obduction' GAME_NAME='Obduction' ARCHIVE_BASE_0_NAME='setup_obduction_1.8.4.1-ssl_(51210).exe' ARCHIVE_BASE_0_MD5='02477c05bece9e1655adc31bbc5a89fa' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_obduction_1.8.4.1-ssl_(51210)-1.bin' ARCHIVE_BASE_0_PART1_MD5='834211d7c8218965106369575f72c3ac' ARCHIVE_BASE_0_PART2_NAME='setup_obduction_1.8.4.1-ssl_(51210)-2.bin' ARCHIVE_BASE_0_PART2_MD5='73e5a3a0b413f24ea0e7348e86301b11' ARCHIVE_BASE_0_SIZE='9300000' ARCHIVE_BASE_0_VERSION='1.8.4.1-gog51210' ARCHIVE_BASE_0_URL='https://www.gog.com/game/obduction' UNREALENGINE4_NAME='obduction' CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES=' obduction_user_manual.pdf' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oceans-heart.sh0000750000000000000000000000362714471751340014534 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ocean's Heart # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='oceans-heart' GAME_NAME='Ocean’s Heart' ARCHIVE_BASE_0_NAME='setup_oceans_heart_1.0.2(6)_(64bit)_(46977).exe' ARCHIVE_BASE_0_MD5='38550d8340ea0a7ad61b41aeabd13c3d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='250000' ARCHIVE_BASE_0_VERSION='1.0.2.6-gog46977' ARCHIVE_BASE_0_URL='https://www.gog.com/game/oceans_heart' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' oceans-heart.exe *.dll' CONTENT_GAME_DATA_FILES=' data.solarus' CONTENT_DOC_DATA_FILES=' license.solarus.txt license.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/OceansHeart' APP_MAIN_EXE='oceans-heart.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-octodad-dadliest-catch.sh0000750000000000000000000000445014471751340016442 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 BetaRays set -o errexit ### # Octodad Dadliest Catch # send your bug reports to bugs@dotslashplay.it ### script_version=20230625.1 GAME_ID='octodad-dadliest-catch' GAME_NAME='Octodad Dadliest Catch' ARCHIVE_BASE_0='OctodadDadliestCatch1.2.19351.tar.gz' ARCHIVE_BASE_0_MD5='df1ded6c02d856a23c2dba919c3be40a' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.19351-humble170512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/octodad-dadliest-catch' CONTENT_PATH_DEFAULT='Octodad Dadliest Catch' CONTENT_LIBS_BIN_FILES=' libfmodevent-4.44.30.so libfmodex-4.44.30.so' CONTENT_GAME_BIN_FILES=' OctodadDadliestCatch' CONTENT_GAME_DATA_FILES=' Content icon_512x512.png' USER_PERSISTENT_FILES=' *.odad *.txt *.xml' APP_MAIN_EXE='OctodadDadliestCatch' APP_MAIN_ICON='icon_512x512.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-oddworld-abes-oddysee.sh0000750000000000000000000000412114471751340016331 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Oddworld: Abe's Oddysee # send your bug reports to 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.sh0000750000000000000000000000437114471751340015444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # One Hand Clapping # send your bug reports to bugs@dotslashplay.it ### script_version=20230706.1 GAME_ID='one-hand-clapping' GAME_NAME='One Hand Clapping' ARCHIVE_BASE_0='setup_one_hand_clapping_1.0.41_release_(54430).exe' ARCHIVE_BASE_0_MD5='039da011a24466dc791b91c34ba1f6a3' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.0.41-gog54430' ARCHIVE_BASE_0_URL='https://www.gog.com/game/one_hand_clapping' UNITY3D_NAME='one hand clapping' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins monobleedingedge unityplayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Bad Dream Games/One Hand Clapping' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ori-and-the-blind-forest.sh0000750000000000000000000000651514471751340016657 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-osmos.sh0000750000000000000000000000507314471751340013320 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Osmos # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='osmos' GAME_NAME='Osmos' ARCHIVE_BASE_0_NAME='Osmos_1.6.1.tar.gz' ARCHIVE_BASE_0_MD5='ed2cb029c20c25de719c28062e6fc9cf' ARCHIVE_BASE_0_SIZE='32000' ARCHIVE_BASE_0_VERSION='1.6.1-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/osmos' CONTENT_PATH_DEFAULT='Osmos' CONTENT_GAME_BIN64_FILES=' Osmos.bin64' CONTENT_GAME_BIN32_FILES=' Osmos.bin32' CONTENT_GAME_DATA_FILES=' Fonts Icons Sounds Textures *.cfg *.loc' CONTENT_DOC_DATA_FILES=' *.html *.txt' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BIN64='Osmos.bin64' APP_MAIN_EXE_BIN32='Osmos.bin32' for icon_size in 16 22 32 36 48 64 72 96 128 192 256; do APP_MAIN_ICONS_LIST="${APP_MAIN_ICONS_LIST:-} APP_MAIN_ICON_${icon_size}" export "APP_MAIN_ICON_${icon_size}"="Icons/${icon_size}x${icon_size}.png" done PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libstdc++.so.6 libvorbisfile.so.3 libX11.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-out-of-line.sh0000750000000000000000000000353114471751340014313 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-out-there.sh0000750000000000000000000000710514471751340014072 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Out There # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='out-there' GAME_NAME='Out There: Ω Edition' ARCHIVE_BASE_LINUX_0_NAME='OutThere2-4-2Linux.zip' ARCHIVE_BASE_LINUX_0_MD5='8ea51a42c9ad221e3d258e404c7106b0' ARCHIVE_BASE_LINUX_0_SIZE='340000' ARCHIVE_BASE_LINUX_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_LINUX_0_URL='https://www.humblebundle.com/store/out-there-edition' ## Support for the Windows version is included because of poor mouse support in the Linux build. ARCHIVE_BASE_WINDOWS_0_NAME='OutThere2-4-2.zip' ARCHIVE_BASE_WINDOWS_0_MD5='8b23dde3778ade4db73a3ed76c4134cd' ARCHIVE_BASE_WINDOWS_0_SIZE='300000' ARCHIVE_BASE_WINDOWS_0_VERSION='2.4.2-humble170213' ARCHIVE_BASE_WINDOWS_0_URL='https://www.humblebundle.com/store/out-there-edition' UNITY3D_NAME_LINUX='OutThereOmega' UNITY3D_NAME_WINDOWS='outthereomega' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Local Settings/Application Data/MiClos Studio/OutThereOmegaEdition' PACKAGES_LIST_LINUX=' PKG_BIN64 PKG_BIN32 PKG_DATA' PACKAGES_LIST_WINDOWS=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN64_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN32_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN64_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN32_ID_LINUX="$PKG_BIN_ID_LINUX" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN64_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN32_DEPS_LINUX="$PKG_BIN_DEPS_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN32_DEPENDENCIES_LIBRARIES_LINUX="$PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_ARCH_WINDOWS='32' PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Delete Apple archives junk. find . -name '*.rsrc' -delete ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; ('ARCHIVE_BASE_WINDOWS_'*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overgrowth.sh0000750000000000000000000000545714471751340014374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Overgrowth # send your bug reports to bugs@dotslashplay.it ### script_version=20230930.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='overgrowth' GAME_NAME='Overgrowth' ARCHIVE_BASE_0='overgrowth-1.4.0_build-5584-linux64.zip' ARCHIVE_BASE_0_MD5='748f6888386d842193218c53396ac844' ARCHIVE_BASE_0_SIZE='22000000' ARCHIVE_BASE_0_VERSION='1.4.0.5584-humble' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/overgrowth' CONTENT_PATH_DEFAULT='Overgrowth' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" ## The game binary is linked against libsteam_api.so. CONTENT_LIBS_BIN_FILES=' libsteam_api.so' CONTENT_GAME_BIN_FILES=' Overgrowth.bin.x86_64' CONTENT_GAME_TEXTURES_TERRAIN_FILES=' Data/Textures/Terrain' CONTENT_GAME_TEXTURES_FILES=' Data/Textures' CONTENT_GAME_DATA_FILES=' Data' USER_PERSISTENT_DIRECTORIES=' Data/Levels Data/Mods Data/Scripts' APP_MAIN_EXE='Overgrowth.bin.x86_64' APP_MAIN_ICON='Data/Textures/ui/ogicon.png' PACKAGES_LIST='PKG_BIN PKG_TEXTURES_TERRAIN PKG_TEXTURES PKG_DATA' PKG_TEXTURES_TERRAIN_ID="${GAME_ID}-textures-terrain" PKG_TEXTURES_TERRAIN_DESCRIPTION='textures - terrain' PKG_TEXTURES_ID="${GAME_ID}-textures" PKG_TEXTURES_DESCRIPTION='textures' PKG_TEXTURES_DEPS="$PKG_TEXTURES_TERRAIN_ID" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPS="$PKG_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreeimage.so.3 libgcc_s.so.1 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_net-2.0.so.0 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-overload.sh0000750000000000000000000000454014471751340013771 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Overload # send your bug reports to bugs@dotslashplay.it ### script_version=20230713.1 GAME_ID='overload' GAME_NAME='Overload' ARCHIVE_BASE_0='overload_1_1_1886_38734.sh' ARCHIVE_BASE_0_MD5='63a7aa141098ec0b15ce1e01eec21f6b' ARCHIVE_BASE_0_SIZE='7300000' ARCHIVE_BASE_0_VERSION='1.1-gog38734' ARCHIVE_BASE_0_URL='https://www.gog.com/game/overload' UNITY3D_NAME='Overload' ## The game fails to start if libCSteamworks.so is not found, ## and libsteam_api.so is a requirement of libCSteamworks.so. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_DOC_DATA_FILES=' Licenses.txt ReadMe.txt' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-owlboy.sh0000750000000000000000000001131414471751340013466 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-pacapong.sh0000750000000000000000000000401714471751340013745 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pacapong # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='pacapong' GAME_NAME='Pacapong' ARCHIVE_BASE_0='pacapong_linux.zip' ARCHIVE_BASE_0_MD5='658c091abea7305cd0a33d367c251cc3' ARCHIVE_BASE_0_SIZE='8800' ARCHIVE_BASE_0_VERSION='1.0-itch1' ARCHIVE_BASE_0_URL='https://kingpenguin.itch.io/pacapong' CONTENT_PATH_DEFAULT='pacapong' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pandemonium.sh0000750000000000000000000000371514471751340014475 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-paper-sorcerer.sh0000750000000000000000000000463514471751340015114 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paper Sorcerer # send your bug reports to bugs@dotslashplay.it ### script_version=20221210.1 GAME_ID='paper-sorcerer' GAME_NAME='Paper Sorcerer' UNITY3D_NAME='PaperSorcererLinux' ARCHIVE_BASE_0='PaperSorcerer2.5Linux.tar.bz2' ARCHIVE_BASE_0_MD5='243a14601379175b840e6878b211fe1a' ARCHIVE_BASE_0_SIZE='450000' ARCHIVE_BASE_0_VERSION='2.5-humble150512' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/paper-sorcerer' CONTENT_PATH_DEFAULT='PaperSorcerer2.5Linux' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-papers-please.sh0000750000000000000000000000376614471751340014730 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Papers, Please # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='papers-please' GAME_NAME='Papers, Please' ARCHIVE_BASE_0_NAME='papers-please_1.4.11.124_x64.tgz' ARCHIVE_BASE_0_MD5='694d7b4fcc0766df3c7c28dbc2154b94' ARCHIVE_BASE_0_SIZE='95754' ARCHIVE_BASE_0_VERSION='1.4.11.124-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/papers-please' UNITY3D_NAME='PapersPlease' CONTENT_PATH_DEFAULT='papers-please' CONTENT_DOC_DATA_FILES=' LICENSE README' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of the empty Plugins directory rmdir "$(unity3d_name)_Data/Plugins" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-papo-and-yo.sh0000750000000000000000000000560014471751340014300 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-particulars.sh0000750000000000000000000000464114471751340014511 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Particulars # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='particulars' GAME_NAME='Particulars' ARCHIVE_BASE_0_NAME='particulars_lin_latest1416421559.zip' ARCHIVE_BASE_0_MD5='b7b269b8e33d682a2fca5c548928dabf' ARCHIVE_BASE_0_SIZE='1308919' ARCHIVE_BASE_0_VERSION='1.0.0.2-humble141119' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/particulars' UNITY3D_NAME='p_1-0-0-2' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='particulars_1.0.0.2_lin' ## TODO: Check if the Steam libraries are required CONTENT_LIBS_BIN_FILES=' libsteam_api.so libSteamworksNative.so' CONTENT_DOC_DATA_FILES=' readme.txt release_notes.txt licenses' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pavilion.sh0000750000000000000000000000414114471751340013774 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Pavilion # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pavilion' GAME_NAME='Pavilion' ARCHIVE_BASE_0_NAME='Pavilion_Linux_v1.31' ARCHIVE_BASE_0_MD5='82fb0659f230ab2b01e79aeb80df1ec3' ARCHIVE_BASE_0_TYPE='zip' ARCHIVE_BASE_0_SIZE='1820996' ARCHIVE_BASE_0_VERSION='1.31-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pavilion' UNITY3D_NAME='pavilion' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Pavilion Linux(v1.31)' CONTENT_DOC_DATA_FILES=' RELEASE_NOTES.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-peck-n-run.sh0000750000000000000000000000351014471751340014131 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Peck N Run # send your bug reports to bugs@dotslashplay.it ### script_version=20240404.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='peck-n-run' GAME_NAME='Peck N Run' ARCHIVE_BASE_0_NAME='peck-n-run-windows-release.zip' ARCHIVE_BASE_0_MD5='2b355dea05894f71c248cf0a4583cfb0' ARCHIVE_BASE_0_SIZE='410000' ARCHIVE_BASE_0_VERSION='1.10-itch' ARCHIVE_BASE_0_URL='https://spiltmilkstudios.itch.io/peck-n-run' UNITY3D_NAME='PeckNRun' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Spilt Milk Studios\BirdGamePrototype' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pendula-swing.sh0000750000000000000000000000432414471751340014733 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pendula Swing # send your bug reports to bugs@dotslashplay.it ### script_version=20230811.3 GAME_ID='pendula-swing' GAME_NAME='Pendula Swing: The Complete Journey' ARCHIVE_BASE_0='PendulaSwingTheCompleJourney.zip' ARCHIVE_BASE_0_MD5='afbec54341d36c29baa08feb538b9613' ARCHIVE_BASE_0_SIZE='3500000' ARCHIVE_BASE_0_VERSION='3.1.4-itch.2020.06.08' ARCHIVE_BASE_0_URL='https://valiant-game-studio.itch.io/pendula-swing-the-complete-journey' UNITY3D_NAME='PendulaSwing' CONTENT_PATH_DEFAULT='Build' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_Data/Plugins MonoBleedingEdge UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Valiant Game Studio/PendulaSwing' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-phoning-home.sh0000750000000000000000000000410114471751340014537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Phoning Home # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='phoning-home' GAME_NAME='Phoning Home' ARCHIVE_BASE_0_NAME='setup_phoning_home_1.4.1_(21995).exe' ARCHIVE_BASE_0_MD5='8e3f9102af055a2efc1355156ac0e64a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_phoning_home_1.4.1_(21995)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ff6b6b6b4aea7335addd43fe611adec4' ARCHIVE_BASE_0_SIZE='6200000' ARCHIVE_BASE_0_VERSION='1.4.1-gog21995' ARCHIVE_BASE_0_URL='https://www.gog.com/game/phoning_home' UNITY3D_NAME='phoninghome' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Ion Lands/Phoning Home' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Ion Lands\Phoning Home' ## Install required font. ## Without it, resolution options in the game menu are not shown. WINE_WINETRICKS_VERBS='arial' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pid.sh0000750000000000000000000000353714471751340012737 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-pier-solar.sh0000750000000000000000000000547314471751340014241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Pier Solar and the Great Architects # send your bug reports to bugs@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pier-solar' GAME_NAME='Pier Solar and the Great Architects' ARCHIVE_BASE_GOG_0_NAME='gog_pier_solar_and_the_great_architects_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='2de03fb6d69944e3f204d5ae45147a3e' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.3.2-gog2.1.0.4' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pier_solar_and_the_great_architects' ARCHIVE_BASE_HUMBLE_0_NAME='PierSolar_linux.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e5ceda3a75cab3fe9b1ad1cbaf2d4a1d' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.2-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/pier-solar-and-the-great-architects-special-edition' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='PierSolar_linux' CONTENT_GAME_BIN64_FILES=' pshd.linux64' CONTENT_GAME_BIN32_FILES=' pshd.linux32' CONTENT_GAME_DATA_FILES=' data icon.png' CONTENT_GAME_DOC_FILES=' README.txt' APP_MAIN_EXE_BIN64='pshd.linux64' APP_MAIN_EXE_BIN32='pshd.linux32' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pikuniku.sh0000750000000000000000000000414714471751340014020 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-pilgrims.sh0000750000000000000000000000433614471751340014007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Hoël Bézier # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pilgrims # send your bug reports to bugs@dotslashplay.it ### script_version=20231128.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pilgrims' GAME_NAME='Pilgrims' ARCHIVE_BASE_0_NAME='pilgrims_1_0_8_274_43259.sh' ARCHIVE_BASE_0_MD5='9ca019527382dd91d565ae90c2f4c59e' ARCHIVE_BASE_0_SIZE='548596' ARCHIVE_BASE_0_VERSION='1.0.8.274-gog43259' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pilgrims' UNITY3D_NAME='Pilgrims' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}.x86" APP_MAIN_EXE="${UNITY3D_NAME}.x86" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pine.sh0000750000000000000000000000512514471751340013111 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pine # send your bug reports to bugs@dotslashplay.it ### script_version=20230324.1 GAME_ID='pine' GAME_NAME='Pine' ARCHIVE_BASE_0='pine_patch_13_ef57f2e2_41600.sh' ARCHIVE_BASE_0_MD5='0b5efc1376e27b95eed1380eb32ecb34' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.13-gog41600' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pine' UNITY3D_NAME='Pine' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.png ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-heaven.sh0000750000000000000000000000366114471751340014366 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Heaven # send your bug reports to bugs@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-heaven' GAME_NAME='Pink Heaven' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHeavenEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7d1b3e193a5ba9618cba1ffb0c977762' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHeavenEn' CONTENT_GAME_BIN_FILES=' PinkHeaven.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHeaven.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pink-hour.sh0000750000000000000000000000364314471751340014075 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pink Hour # send your bug reports to bugs@dotslashplay.it ### script_version=20230625.1 GAME_ID='pink-hour' GAME_NAME='Pink Hour' ## This archive is no longer available from the Playism store, ## as they turned into yet another Steam keys reseller. ARCHIVE_BASE_0='PinkHourEn-v1430a.zip' ARCHIVE_BASE_0_MD5='7cd38735bf02634474eb8bf5a39439b2' ARCHIVE_BASE_0_SIZE='15000' ARCHIVE_BASE_0_VERSION='1.43-playism1430a' CONTENT_PATH_DEFAULT='PinkHourEn' CONTENT_GAME_BIN_FILES=' PinkHour.exe' CONTENT_GAME_DATA_FILES=' rsc_p' CONTENT_DOC_DATA_FILES=' ReadmeEn.txt' APP_MAIN_EXE='PinkHour.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pinstripe.sh0000750000000000000000000000427114471751340014174 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-pirates.sh0000750000000000000000000000617514471751340013633 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pirates series: # - Pirates # - Pirates Gold # send your bug reports to bugs@dotslashplay.it ### script_version=20240621.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='pirates' GAME_NAME='Pirates!' GAME_ID_GOLD='pirates-gold' GAME_NAME_GOLD='Pirates Gold' ARCHIVE_BASE_0_NAME='gog_pirates_2.0.0.8.sh' ARCHIVE_BASE_0_MD5='885cdb8f2119a278fb15a32cafad64a8' ARCHIVE_BASE_0_SIZE='12000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.8' ARCHIVE_BASE_0_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_GOLD_1_NAME='gog_pirates_gold_2.0.0.9.sh' ARCHIVE_BASE_GOLD_1_MD5='1eec642e9d7337b9456775d110760a80' ARCHIVE_BASE_GOLD_1_SIZE='39000' ARCHIVE_BASE_GOLD_1_VERSION='1.0-gog2.0.0.9' ARCHIVE_BASE_GOLD_1_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_GOLD_0_NAME='gog_pirates_gold_2.0.0.8.sh' ARCHIVE_BASE_GOLD_0_MD5='ea602d91950cffa615abae567f498989' ARCHIVE_BASE_GOLD_0_SIZE='39000' ARCHIVE_BASE_GOLD_0_VERSION='1.0-gog2.0.0.8' CONTENT_PATH_DEFAULT='data/noarch/classic/Pirates!' CONTENT_PATH_DEFAULT_GOLD='data/noarch/data' ## FIXME: An explicit list of files should be set. CONTENT_GAME_MAIN_FILES=' *' CONTENT_GAME_MAIN_FILES_GOLD=' MPS PIRATESC PIRATESG.CD DATA.DAT' CONTENT_DOC_MAIN_PATH_GOLD='data/noarch/docs' CONTENT_DOC_MAIN_FILES_GOLD=' flags.pdf manual.pdf' GAME_IMAGE_GOLD='DATA.DAT' GAME_IMAGE_TYPE='iso' APP_MAIN_EXE='pir.exe' APP_MAIN_EXE_GOLD='PIRATESG.EXE' APP_MAIN_OPTIONS_GOLD='%2 %3 %4 %5' APP_MAIN_DOSBOX_PRERUN_GOLD=' d: cd PIRATESG.CD lh cdpatch %1 ' APP_MAIN_DOSBOX_POSTRUN_GOLD=' cdpatch x ' APP_MAIN_ICON='../../support/icon.png' APP_MAIN_ICON_GOLD='piratesg.ico' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE_GOLD='dosbox' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_GOLD_'*) ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } ## Set the context-specific values of some variables. GAME_IMAGE=$(context_value 'GAME_IMAGE') APP_MAIN_DOSBOS_PRERUN=$(context_value 'APP_MAIN_DOSBOS_PRERUN') APP_MAIN_DOSBOS_POSTRUN=$(context_value 'APP_MAIN_DOSBOS_POSTRUN') ;; esac launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pixel-piracy.sh0000750000000000000000000000467214471751340014572 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 mortalius # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pixel Piracy # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pixel-piracy' GAME_NAME='Pixel Piracy' ARCHIVE_BASE_GOG_0_NAME='gog_pixel_piracy_2.5.0.9.sh' ARCHIVE_BASE_GOG_0_MD5='b689db9e42afa0a83d364f95cfb4d6bf' ARCHIVE_BASE_GOG_0_SIZE='290000' ARCHIVE_BASE_GOG_0_VERSION='1.1.21-gog2.5.0.9' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/pixel_piracy' ## This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_HUMBLE_0_NAME='pixelpiracy_Linux1.1.21.zip' ARCHIVE_BASE_HUMBLE_0_MD5='18fb2d3f8adf6f320d507653298dc504' ARCHIVE_BASE_HUMBLE_0_SIZE='284617' ARCHIVE_BASE_HUMBLE_0_VERSION='1.1.21-humble150612' UNITY3D_NAME='linux' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-planet-alpha.sh0000750000000000000000000000365514471751340014532 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Planet Alpha # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='planet-alpha' GAME_NAME='Planet Alpha' ARCHIVE_BASE_0_NAME='setup_planet_alpha_1.0.5.1_(64bit)_(29703).exe' ARCHIVE_BASE_0_MD5='34accc9442958f022da8a71965bf2fcd' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_planet_alpha_1.0.5.1_(64bit)_(29703)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8e8b478e391a70f6e45e97b6def77155' ARCHIVE_BASE_0_SIZE='8700000' ARCHIVE_BASE_0_VERSION='1.0.5.1-gog29703' ARCHIVE_BASE_0_URL='https://www.gog.com/game/planet_alpha' UNREALENGINE4_NAME='planetalpha' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-plant-daddy.sh0000750000000000000000000000456514471751340014366 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Plant Daddy # send your bug reports to bugs@dotslashplay.it ### script_version=20231002.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='plant-daddy' GAME_NAME='Plant Daddy' ARCHIVE_BASE_2='plantdaddy-linux-1.2.2.zip' ARCHIVE_BASE_2_MD5='e64ec41dec67d889cfac4763147af384' ARCHIVE_BASE_2_SIZE='130000' ARCHIVE_BASE_2_VERSION='1.2.2-itch1' ARCHIVE_BASE_2_URL='https://overfull.itch.io/plantdaddy' ARCHIVE_BASE_1='plantdaddy-linux-1.2.1.zip' ARCHIVE_BASE_1_MD5='1a863b49a4fe6e4c5ad136d808912058' ARCHIVE_BASE_1_SIZE='140000' ARCHIVE_BASE_1_VERSION='1.2.1-itch1' ARCHIVE_BASE_0='plantdaddy-linux-1.2.0.zip' ARCHIVE_BASE_0_MD5='b626d5a0512cc0334749de3ec137c492' ARCHIVE_BASE_0_SIZE='140000' ARCHIVE_BASE_0_VERSION='1.2.0-itch1' UNITY3D_NAME='plantdaddy' UNITY3D_NAME_0='plantdaddy-linux-1.2' UNITY3D_PLUGINS=' libStandaloneFileBrowser.so' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES_0=" ${UNITY3D_NAME}_Data/MonoBleedingEdge UnityPlayer.so plantdaddy-linux-1.2.0" APP_MAIN_EXE_0='plantdaddy-linux-1.2.0' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-3.so.0 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-pokemon-insurgence.sh0000750000000000000000000000404314471751340015764 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pokemon Insurgence # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='pokemon-insurgence' GAME_NAME='Pokemon Insurgence' ARCHIVE_BASE_0_NAME='Pokemon Insurgence 1.2.5 Core.zip' ARCHIVE_BASE_0_MD5='d992c31fe67ffc0a72c4274caaa4a977' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.2.5-insurgence1' ARCHIVE_BASE_0_URL='https://p-insurgence.com/' CONTENT_PATH_DEFAULT='Pokemon Insurgence 1.2.5 Core' CONTENT_GAME_BIN_FILES=' Game.exe Game.ini *.dll' CONTENT_GAME_DATA_FILES=' Audio Data Egglocke Eggs Fonts Graphics Game.rgssad' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Pokemon Insurgence' ## Ensure availability of fonts expected by the game engine. WINE_WINETRICKS_VERBS='arial' APP_MAIN_EXE='Game.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/mpeg, mpegversion=(int)1, layer=(int)3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-poly-bridge.sh0000750000000000000000000000477014471751340014400 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Poly Bridge # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='poly-bridge' GAME_NAME='Poly Bridge' ## This DRM-free archive is no longer sold by Humble Bundle ARCHIVE_BASE_0_NAME='polybridge-105-linux.zip' ARCHIVE_BASE_0_MD5='cb7644e3ee055addaa4e7a8a727282cb' ARCHIVE_BASE_0_SIZE='254181' ARCHIVE_BASE_0_VERSION='105-humble180330' UNITY3D_NAME='polybridge' UNITY3D_PLUGINS=' libfastlz.so liblz4.so liblzma.so libzipw.so ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='polybridge-105-linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-potion-craft.sh0000750000000000000000000000502414471751340014561 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Potion Craft: Alchemy Simulator # send your bug reports to bugs@dotslashplay.it ### script_version=20241216.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='potion-craft' GAME_NAME='Potion Craft: Alchemy Simulator' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_1_NAME='setup_potion_craft_alchemist_simulator_1.1.0.0_(64bit)_(69392).exe' ARCHIVE_BASE_1_MD5='f92044dc682cf903e88ed8aa8a00d665' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1669279' ARCHIVE_BASE_1_VERSION='1.1.0.0-gog64bit' ARCHIVE_BASE_1_URL='https://www.gog.com/game/potion_craft_alchemist_simulator' ARCHIVE_BASE_0_NAME='setup_potion_craft_alchemist_simulator_1.0_(64bit)_(60776).exe' ARCHIVE_BASE_0_MD5='fa4aeefeba0f8cec711f4e22f9369e6c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.0.2-gog60776' ## This installer is no longer available from gog.com. ARCHIVE_BASE_DEMO_0_NAME='setup_potion_craft_demo_21.01.30_(46141).exe' ARCHIVE_BASE_DEMO_0_MD5='ce1bfadccaf2821692dd61e74bdb1e1a' ARCHIVE_BASE_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_0_SIZE='1400000' ARCHIVE_BASE_DEMO_0_VERSION='2021.01.30-gog46141' UNITY3D_NAME='potion craft' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/niceplay games/Potion Craft' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-prince-of-persia-2008.sh0000750000000000000000000002330314471751340015706 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=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='prince-of-persia-2008' GAME_NAME='Prince of Persia' ARCHIVE_BASE_0_NAME='setup_prince_of_persia_1.0_v2_(28572).exe' ARCHIVE_BASE_0_MD5='65143fe6dfb653d5fa95bb79c8022630' ## Conversion of file paths to lowercase should be skipped, to prevent a game crash on launch. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_0_PART1_NAME='setup_prince_of_persia_1.0_v2_(28572)-1.bin' ARCHIVE_BASE_0_PART1_MD5='caab8ceb59b30c75533ebd29ccd7a199' ARCHIVE_BASE_0_PART2_NAME='setup_prince_of_persia_1.0_v2_(28572)-2.bin' ARCHIVE_BASE_0_PART2_MD5='ddc7e15fd6daf47e3085e2c66a4ca6cd' ARCHIVE_BASE_0_SIZE='8237644' ARCHIVE_BASE_0_VERSION='1.0-gog28572' ARCHIVE_BASE_0_URL='https://www.gog.com/game/prince_of_persia' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Launcher/regvs.cmd Launcher/detectionapi_rd.dll Launcher/directx9tests_rd.dll Launcher/local.dll Launcher/Launcher.exe Launcher/gameinterpreters_rd.intr Launcher/directxtests_rd.tst Launcher/systemtests_rd.tst Support binkw32.dll eax.dll Prince of Persia.exe PrinceOfPersia_Launcher.exe' CONTENT_GAME_L10N_EN_FILES=' Launcher/localization/EN/interpreter_local.ini Resources/us/GameUpdate.us DataPC_StreamedSoundsEng.forge' CONTENT_GAME_L10N_FR_FILES=' Launcher/localization/FR/interpreter_local.ini Resources/fr/GameUpdate.fr Videos/fre DataPC_StreamedSoundsFre.forge' CONTENT_GAME_DATA_FILES=' Videos/ArtGallery.bik Videos/ArtGallery_CityofLight.bik Videos/ArtGallery_DesertTemple.bik Videos/ArtGallery_RoyalePalace.bik Videos/ArtGallery_RuinedCitadel.bik Videos/ArtGallery_Vale.bik Videos/AttractMode.bik Videos/ComboList.bik Videos/Controls.bik Videos/Credits.bik Videos/DE1_001_CINV_GameIntro.bik Videos/Display.bik Videos/Extras.bik Videos/LoadGame.bik Videos/MainMenuE3.bik Videos/Options.bik Videos/SkinsManager.bik Videos/Sound.bik Videos/StartScreenE3.bik Videos/Ubi_Logo.bik Videos/VideoBlack.bik Videos/Vision1.bik Videos/Vision2.bik Videos/Vision3.bik Videos/Vision4.bik Videos/Vision5.bik ekshaderspccompress.bin DataPC.forge DataPC_Default.forge DataPC_DE.forge DataPC_Ext.forge DataPC_HC.forge DataPC_JCT.forge DataPC_lod.forge DataPC_LR.forge DataPC_OB.forge DataPC_POP0WORLD_Ext.forge DataPC_POP0WORLD.forge DataPC_RC.forge DataPC_StreamedSounds.forge' CONTENT_DOC_DATA_FILES=' ubisoft.html manual.pdf ReadMe.txt' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/Prince of Persia' APP_MAIN_EXE='Prince of Persia.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA' PKG_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' # Set mandatory registry keys REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Set mandatory registry keys registry_dump_init_file='registry-dumps/init.reg' APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" ## English localization registry_dump_init_file_en='registry-dumps/init-en.reg' # shellcheck disable=SC1003 registry_dump_init_content_en='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Executable"="C:\\'"$(game_id)"'\\PrinceOfPersia_Launcher.exe" "InstallDir"="C:\\'"$(game_id)"'" "Language"="English" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000001 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "execPath"="C:\\'"$(game_id)"'\\Prince of Persia.exe" "info"="08a0f1c01d540ee143f7ee48a91898fa" "installdir"="C:\\'"$(game_id)"'" "language"="us" ' CONTENT_GAME_L10N_EN_FILES="$(content_files 'GAME_L10N_EN') $registry_dump_init_file_en" ## French localization registry_dump_init_file_fr='registry-dumps/init-fr.reg' # shellcheck disable=SC1003 registry_dump_init_content_fr='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia] "Executable"="C:\\'"$(game_id)"'\\PrinceOfPersia_Launcher.exe" "InstallDir"="C:\\'"$(game_id)"'" "Language"="French" [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\1.0\Engine] "LNG_Language"=dword:00000002 [HKEY_LOCAL_MACHINE\Software\Ubisoft\Prince of Persia\GameUpdate] "execPath"="C:\\'"$(game_id)"'\\Prince of Persia.exe" "info"="08a0f1c01d540ee143f7ee48a91898fa" "installdir"="C:\\'"$(game_id)"'" "language"="fr" ' CONTENT_GAME_L10N_FR_FILES="$(content_files 'GAME_L10N_FR') $registry_dump_init_file_fr" # Set default settings registry_dump_settings_file='registry-dumps/settings.reg' APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_settings_file" ## English localization registry_dump_settings_file_en='registry-dumps/settings-en.reg' registry_dump_settings_content_en='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Engine] "AlternateVerticalSync"=dword:00000001 "AlternateVerticalSyncThreshold"=dword:00000000 "Antialiasing"=dword:00000000 "AspectRatioOverride"=dword:000000a6 "DegradedTextures"=dword:00000000 "LNG_Language"=dword:00000001 "ParticleEffectNumber"=dword:00000064 "PostEffects"=dword:00000002 "ScreenResolutionHeight"=dword:00000300 "ScreenResolutionWidth"=dword:00000500 "Shadows"=dword:00000002 "VerticalSync"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "AspectRatioOverrideCHKB"=dword:00000000 "DefaultSetting"=dword:00000001 "LauncherVersion"=dword:00000004 "LNG_Language"=dword:00000001 "Texture_lvl"=dword:00000001 "VerticalSync_lvl"=dword:00000001 "VisualQualityLvl"=dword:00000002 ' CONTENT_GAME_L10N_EN_FILES="$(content_files 'GAME_L10N_EN') $registry_dump_settings_file_en" ## French localization registry_dump_settings_file_fr='registry-dumps/settings-fr.reg' registry_dump_settings_content_fr='Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Engine] "AlternateVerticalSync"=dword:00000001 "AlternateVerticalSyncThreshold"=dword:00000000 "Antialiasing"=dword:00000000 "AspectRatioOverride"=dword:000000a6 "DegradedTextures"=dword:00000000 "LNG_Language"=dword:00000002 "ParticleEffectNumber"=dword:00000064 "PostEffects"=dword:00000002 "ScreenResolutionHeight"=dword:00000300 "ScreenResolutionWidth"=dword:00000500 "Shadows"=dword:00000002 "VerticalSync"=dword:00000001 [HKEY_CURRENT_USER\Software\Ubisoft\Prince of Persia\1.0\Launcher] "AspectRatioOverrideCHKB"=dword:00000000 "DefaultSetting"=dword:00000001 "LauncherVersion"=dword:00000004 "LNG_Language"=dword:00000002 "Texture_lvl"=dword:00000001 "VerticalSync_lvl"=dword:00000001 "VisualQualityLvl"=dword:00000002 ' CONTENT_GAME_L10N_FR_FILES="$(content_files 'GAME_L10N_FR') $registry_dump_settings_file_fr" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set mandatory registry keys mkdir --parents "$(dirname "$registry_dump_init_file_en")" printf '%s' "$registry_dump_init_content_en" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file_en" mkdir --parents "$(dirname "$registry_dump_init_file_fr")" printf '%s' "$registry_dump_init_content_fr" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file_fr" # Set default settings mkdir --parents "$(dirname "$registry_dump_settings_file_en")" printf '%s' "$registry_dump_settings_content_en" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file_en" mkdir --parents "$(dirname "$registry_dump_settings_file_fr")" printf '%s' "$registry_dump_settings_content_fr" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_settings_file_fr" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Set mandatory registry keys ( cd "$(package_path 'PKG_L10N_EN')$(path_game_data)" mv "$registry_dump_init_file_en" "$registry_dump_init_file" ) ( cd "$(package_path 'PKG_L10N_FR')$(path_game_data)" mv "$registry_dump_init_file_fr" "$registry_dump_init_file" ) ## Set default settings ( cd "$(package_path 'PKG_L10N_EN')$(path_game_data)" mv "$registry_dump_settings_file_en" "$registry_dump_settings_file" ) ( cd "$(package_path 'PKG_L10N_FR')$(path_game_data)" mv "$registry_dump_settings_file_fr" "$registry_dump_settings_file" ) # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(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-privateer-1.sh0000750000000000000000000000466314471751340014323 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Privateer # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='privateer-1' GAME_NAME='Privateer' ARCHIVE_BASE_1_NAME='setup_wing_commander_privateer_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='482b990445b335ecf7f47ee18efccc14' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='180000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_privateer' ARCHIVE_BASE_0_NAME='setup_wing_commander_privateer_2.0.0.9.exe' ARCHIVE_BASE_0_MD5='53c77040cba69a642ec1302b5cf231b5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.9' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' GAME.GOG *.CFG *.DAT *.EXE *.NDA *.OVL *.PAK *.VDA' CONTENT_DOC_MAIN_FILES=' *.PDF' GAME_IMAGE='GAME.GOG' GAME_IMAGE_TYPE='iso' USER_PERSISTENT_FILES=' *.CFG *.IFF' APP_MAIN_EXE='PRIV.EXE' APP_MAIN_ICON='APP/GOGGAME-1207658938.ICO' APP_MAIN_ICON_0='GFW_HIGH.ICO' ## Work around sound problems in the intro video APP_MAIN_PRERUN=' # Work around sound problems in the intro video export DOSBOX_SBLASTER_IRQ=5 ' APP_RF_ID="${GAME_ID}-righteous-fire" APP_RF_NAME="${GAME_NAME} - Righteous Fire" APP_RF_EXE='PRIV.EXE' APP_RF_EXE_OPTIONS='r' APP_RF_ICON='APP/GOGGAME-1207658938.ICO' APP_RF_ICON_0='GFW_HIGH.ICO' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert all file paths to upper case toupper . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-project-feline.sh0000750000000000000000000000474414471751340015072 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-proteus.sh0000750000000000000000000000432214471751340013655 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Proteus # send your bug reports to bugs@dotslashplay.it ### script_version=20240830.2 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='proteus' GAME_NAME='Proteus' ARCHIVE_BASE_0_NAME='proteus-05162014-bin' ARCHIVE_BASE_0_MD5='8a5911751382bcfb91483f52f781e283' ## This MojoSetup installer is not relying on a Makeself wrapper ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_VERSION='1.0-humble140516' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/proteus' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_MAIN_FILES=' resources Proteus.exe Proteus.png KopiLua.dll KopiLuaDll.dll KopiLuaInterface.dll SDL2-CS.dll SDL2-CS.dll.config Tao.OpenGl.dll Tao.OpenGl.dll.config Tianxia.dll Wuwei.dll' CONTENT_DOC_MAIN_FILES=' Linux.README' APP_MAIN_EXE='Proteus.exe' APP_MAIN_ICON='Proteus.png' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-psychonauts.sh0000750000000000000000000000471214471751340014537 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Psychonauts # send your bug reports to bugs@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='psychonauts' GAME_NAME='Psychonauts' ARCHIVE_BASE_0_NAME='gog_psychonauts_2.0.0.4.sh' ARCHIVE_BASE_0_MD5='7fc85f71494ff5d37940e9971c0b0c55' ARCHIVE_BASE_0_SIZE='5200000' ARCHIVE_BASE_0_VERSION='1.04-gog2.0.0.4' ARCHIVE_BASE_0_URL='https://www.gog.com/game/psychonauts' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' Psychonauts DisplaySettings.ini' CONTENT_GAME_DATA_FILES=' icon.bmp PsychonautsData2.pkg psychonauts.png WorkResource' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES=' Psychonauts Manual Win.pdf' CONTENT_DOC0_DATA_PATH="${CONTENT_PATH_DEFAULT}/Documents" ## FIXME: An explicit list of files should be set. CONTENT_DOC0_DATA_FILES=' *' USER_PERSISTENT_FILES=' DisplaySettings.ini psychonauts.ini' APP_MAIN_EXE='Psychonauts' APP_MAIN_ICONS_LIST='APP_MAIN_ICON_PNG APP_MAIN_ICON_BMP' APP_MAIN_ICON_PNG='psychonauts.png' APP_MAIN_ICON_BMP='icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrade from packages generated using pre-20211124.2 game script. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} psychonauts-sounds" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL-1.2.so.0 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-puddle.sh0000750000000000000000000000507014471751340013432 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-pulse.sh0000750000000000000000000000372514471751340013312 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Pulse # send your bug reports to bugs@dotslashplay.it ### script_version=20231109.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='pulse' GAME_NAME='Pulse' ARCHIVE_BASE_0_NAME='Pulse_Linux.zip' ARCHIVE_BASE_0_MD5='1ab2d48c55e88b1bc56cbcdfb72f09e9' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pulse' UNITY3D_NAME='Pulse' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Pulse - Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-quench.sh0000750000000000000000000000326714471751340013446 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Quench # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='quench' GAME_NAME='Quench' ARCHIVE_BASE_0_NAME='quench-win.zip' ARCHIVE_BASE_0_MD5='51acb509e73ab3a9dd2183554f094cf2' ARCHIVE_BASE_0_SIZE='1000000' ARCHIVE_BASE_0_VERSION='1.1.0-itch.2019.08.16' ARCHIVE_BASE_0_URL='https://axoninteractive.itch.io/quench' UNITY3D_NAME='Quench' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Axon Interactive/Quench' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-quern.sh0000750000000000000000000000446014471751340013311 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 edgar.vincent # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Quern - Undying Thoughts # Send your bug reports to bugs@dotslashplay.it ### script_version=20240607.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='quern' GAME_NAME='Quern - Undying Thoughts' ARCHIVE_BASE_0_NAME='quern_undying_thoughts_en_1_2_0_19570.sh' ARCHIVE_BASE_0_MD5='b26bcebf9d441b900b1c165b62951016' ARCHIVE_BASE_0_SIZE='8656437' ARCHIVE_BASE_0_VERSION='1.2.0-gog19570' ARCHIVE_BASE_0_URL='https://www.gog.com/game/quern_undying_thoughts' UNITY3D_NAME='Quern' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-quiet-as-a-stone.sh0000750000000000000000000000334714471751340015256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Quiet as a Stone # send your bug reports to bugs@dotslashplay.it ### script_version=20240226.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='quiet-as-a-stone' GAME_NAME='Quiet as a Stone' ARCHIVE_BASE_0_NAME='quietasastone-win64.zip' ARCHIVE_BASE_0_MD5='72cd64e689dd398afaa9909abb15cb15' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='0.6.1-itch.2019.07.19' ARCHIVE_BASE_0_URL='https://distantlantern.itch.io/quietasastone' UNITY3D_NAME='QuietasaStone' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-race-the-sun-expansions.sh0000750000000000000000000000323014471751340016631 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Race The Sun expansions: # - Sunrise # send your bug reports to bugs@dotslashplay.it ### script_version=20241109.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='race-the-sun' GAME_NAME='Race The Sun' EXPANSION_ID_SUNRISE='sunrise' EXPANSION_NAME_SUNRISE='Sunrise' ARCHIVE_BASE_SUNRISE_0_NAME='gog_race_the_sun_sunrise_dlc_2.0.0.1.sh' ARCHIVE_BASE_SUNRISE_0_MD5='5af9dee7941f63c310d83ac771d26884' ARCHIVE_BASE_SUNRISE_0_SIZE='1100' ARCHIVE_BASE_SUNRISE_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_SUNRISE_0_URL='https://www.gog.com/game/sunrise' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' SunriseDLC' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-race-the-sun.sh0000750000000000000000000000537014471751340014453 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Race The Sun # send your bug reports to bugs@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='race-the-sun' GAME_NAME='Race The Sun' ARCHIVE_BASE_GOG_0_NAME='gog_race_the_sun_2.4.0.8.sh' ARCHIVE_BASE_GOG_0_MD5='e3f4e66a5fafe966000ab4e0dcfb7aeb' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.51-gog2.4.0.8' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/race_the_sun' ARCHIVE_BASE_HUMBLE_0_NAME='RaceTheSunLINUX_1.50.zip' ARCHIVE_BASE_HUMBLE_0_MD5='e225afb660090b9aa8281574b658accf' ARCHIVE_BASE_HUMBLE_0_SIZE='190000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50-humble170131' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/race-the-sun' UNITY3D_NAME='RaceTheSun' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='RaceTheSunLINUX_1.50' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-reassembly.sh0000750000000000000000000000531514471751340014325 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Reassembly # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='reassembly' GAME_NAME='Reassembly' ARCHIVE_BASE_GOG_0='reassembly_2019_4_04_28550.sh' ARCHIVE_BASE_GOG_0_MD5='640cc7849af45fb221f349b9d901b9ab' ARCHIVE_BASE_GOG_0_SIZE='120000' ARCHIVE_BASE_GOG_0_VERSION='2019.03.30-gog28550' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/reassembly' ARCHIVE_BASE_HUMBLE_0='anisopteragames_Reassembly_2019_04_11.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='ae516da186f0a2c6799eb8059a51337d' ARCHIVE_BASE_HUMBLE_0_SIZE='120000' ARCHIVE_BASE_HUMBLE_0_VERSION='2019.03.30-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/reassembly' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Reassembly' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/linux/linux64" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/linux/linux64" CONTENT_LIBS_BIN_FILES=' libGLEW.so.1.13' CONTENT_GAME_BIN_FILES=' linux/ReassemblyRelease64' CONTENT_GAME_DATA_FILES=' data linux/reassembly_icon.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='linux/ReassemblyRelease64' APP_MAIN_ICON='linux/reassembly_icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rebel-galaxy.sh0000750000000000000000000000564614471751340014542 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Rebel Galaxy # send your bug reports to bugs@dotslashplay.it ### script_version=20240328.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='rebel-galaxy' GAME_NAME='Rebel Galaxy' ARCHIVE_BASE_0_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097).exe' ARCHIVE_BASE_0_MD5='9746494be23b83bc2a44d8da6cb6e311' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_rebel_galaxy_1.08(hotifx2)_(23097)-1.bin' ARCHIVE_BASE_0_PART1_MD5='e8e5d4450b5ad8f9cc757cc4153ba13c' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.08-gog23097' ARCHIVE_BASE_0_URL='https://www.gog.com/game/rebel_galaxy' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.cfg *.dll *.exe' CONTENT_GAME_DATA_FILES=' media music paks video' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy' ## Microsoft Visual C++ 2012 Runtime is required by the settings window. WINE_WINETRICKS_VERBS='vcrun2012' APP_MAIN_EXE='rebelgalaxygog.exe' APP_SETTINGS_ID="${GAME_ID}-settings" APP_SETTINGS_NAME="${GAME_NAME} - Settings" APP_SETTINGS_CAT='Settings' APP_SETTINGS_EXE='goglauncher.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Disable Direct3D 11 on first launch to prevent a game crash. ## TODO: Check if this is sitll required with current WINE builds. APP_PRERUN_NOD3D11=' # Disable Direct3D 11 on first launch to prevent a game crash settings_file="${WINEPREFIX}/drive_c/users/${USER}/Documents/My Games/Double Damage Games/RebelGalaxy/local_settings.txt" if [ ! -e "$settings_file" ]; then mkdir --parents "$(dirname "$settings_file")" cat > "$settings_file" << EOF [SETTINGS] OPENGL:1 DX11:0 [/SETTINGS] EOF fi ' APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-} $APP_PRERUN_NOD3D11" APP_SETTINGS_PRERUN="${APP_SETTINGS_PRERUN:-} $APP_PRERUN_NOD3D11" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-republique.sh0000750000000000000000000000525314471751340014335 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Republique # send your bug reports to bugs@dotslashplay.it ### script_version=20231009.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='republique' GAME_NAME='République' ## This game is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='setup_republique_remastered_33555_(18824).exe' ARCHIVE_BASE_0_MD5='e1c57ea3489a5ffd222990ab28a9ffe7' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_republique_remastered_33555_(18824)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f8d81dd49c0a17e772601880c1d76058' ARCHIVE_BASE_0_PART2_NAME='setup_republique_remastered_33555_(18824)-2.bin' ARCHIVE_BASE_0_PART2_MD5='485f3c68ca8bf61e328f2e659afc59b2' ARCHIVE_BASE_0_SIZE='7800000' ARCHIVE_BASE_0_VERSION='1.0-gog18824' ARCHIVE_BASE_RAR_0_NAME='setup_republique_remastered_2.2.0.4.exe' ARCHIVE_BASE_RAR_0_MD5='e2a15feb5b9217bebf0fec26e2a81869' ARCHIVE_BASE_RAR_0_EXTRACTOR='innoextract' ARCHIVE_BASE_RAR_0_EXTRACTOR_OPTIONS='--lowercase --gog' ARCHIVE_BASE_RAR_0_PART1_NAME='setup_republique_remastered_2.2.0.4-1.bin' ARCHIVE_BASE_RAR_0_PART1_MD5='b7a869b84db07e5981b9eb8be9ff2bda' ARCHIVE_BASE_RAR_0_PART1_EXTRACTOR='unar' ARCHIVE_BASE_RAR_0_PART2_NAME='setup_republique_remastered_2.2.0.4-2.bin' ARCHIVE_BASE_RAR_0_PART2_MD5='604d6b34fa4b2cc24f79659922f188e2' ARCHIVE_BASE_RAR_0_SIZE='7800000' ARCHIVE_BASE_RAR_0_VERSION='1.0-gog2.2.0.4' UNITY3D_NAME='republique' CONTENT_PATH_DEFAULT='app' USER_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Camouflaj/R__publique' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-restless-soul.sh0000750000000000000000000000350514471751340015002 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Restless Soul # send your bug reports to bugs@dotslashplay.it ### script_version=20231129.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='restless-soul' GAME_NAME='Restless Soul' ARCHIVE_BASE_0_NAME='restless_soul_1_0_61980.sh' ARCHIVE_BASE_0_MD5='c1a4ed609a1fd4562e26cd7410b1ee19' ARCHIVE_BASE_0_SIZE='244188' ARCHIVE_BASE_0_VERSION='1.0-gog61980' ARCHIVE_BASE_0_URL='https://www.gog.com/game/restless_soul' UNITY3D_NAME='linux' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-retrace.sh0000750000000000000000000000345214471751340013604 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Retrace # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='retrace' GAME_NAME='Retrace' ARCHIVE_BASE_0_NAME='retrace-win.zip' ARCHIVE_BASE_0_MD5='a953b09f1e1226ac24998ea68cacfe0e' ARCHIVE_BASE_0_SIZE='190000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://spiderlilystudios.itch.io/retrace' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' Retrace.exe options.ini' ## TODO: Move the fonts to the standard system path. CONTENT_GAME_DATA_FILES=' data fonts audiogroup?.dat data.win' USER_PERSISTENT_FILES=' options.ini' APP_MAIN_EXE='Retrace.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-retro-city-rampage.sh0000750000000000000000000000477314471751340015701 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Retro City Rampage # send your bug reports to bugs@dotslashplay.it ### script_version=20231001.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='retro-city-rampage' GAME_NAME='Retro City Rampage' ARCHIVE_BASE_32BIT_0_NAME='retrocityrampage-1.0-linux.i386.bin' ARCHIVE_BASE_32BIT_0_MD5='35c776fa33af850158b0d6a886dfe2a0' ARCHIVE_BASE_32BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_32BIT_0_SIZE='17000' ARCHIVE_BASE_32BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_32BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' ARCHIVE_BASE_64BIT_0='retrocityrampage-1.0-linux.x86_64.bin' ARCHIVE_BASE_64BIT_0_MD5='4fc25ab742d5bd389bd4a76eb6ec987f' ARCHIVE_BASE_64BIT_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_64BIT_0_SIZE='17000' ARCHIVE_BASE_64BIT_0_VERSION='1.53-humble1' ARCHIVE_BASE_64BIT_0_URL='https://www.humblebundle.com/store/retro-city-rampage-dx' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN_FILES=' retrocityrampage' CONTENT_GAME_DATA_FILES=' audio_music_Linux.bap audio_sfx_Linux.bap gamedata_sdl.bfp icon.png' USER_PERSISTEN_FILES=' rcr_sdl.cfg *.rsv' APP_MAIN_EXE='retrocityrampage' APP_MAIN_ICON='icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-reventure.sh0000750000000000000000000000330614471751340014174 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Reventure # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='reventure' GAME_NAME='Reventure' ARCHIVE_BASE_0_NAME='setup_reventure_1.9.5_(46279).exe' ARCHIVE_BASE_0_MD5='66132b685451666250710036296edfa0' ARCHIVE_BASE_0_SIZE='390000' ARCHIVE_BASE_0_VERSION='1.9.5-gog46279' ARCHIVE_BASE_0_URL='https://www.gog.com/game/reventure' UNITY3D_NAME='reventure' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Pixelatto/Reventure' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-risk-of-rain.sh0000750000000000000000000000511314471751340014454 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Risk of Rain # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='risk-of-rain' GAME_NAME='Risk of Rain' ARCHIVE_BASE_GOG_1='gog_risk_of_rain_2.1.0.6.sh' ARCHIVE_BASE_GOG_1_MD5='423ea26f877eb8f0d72e04dffffbf81a' ARCHIVE_BASE_GOG_1_SIZE='180000' ARCHIVE_BASE_GOG_1_VERSION='1.2.8-gog2.1.0.6' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/risk_of_rain' ARCHIVE_BASE_GOG_0='gog_risk_of_rain_2.1.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='34f8e1e2dddc6726a18c50b27c717468' ARCHIVE_BASE_GOG_0_SIZE='180000' ARCHIVE_BASE_GOG_0_VERSION='1.2.8-gog2.1.0.5' ARCHIVE_BASE_HUMBLE_0='Risk_of_Rain_v1.3.0_DRM-Free_Linux_.zip' ARCHIVE_BASE_HUMBLE_0_MD5='21eb80a7b517d302478c4f86dd5ea9a2' ARCHIVE_BASE_HUMBLE_0_SIZE='100000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.3.0-humble160519' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/risk-of-rain' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_GAME_BIN_FILES=' Risk_of_Rain' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='Risk_of_Rain' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-road-96.sh0000750000000000000000000000535714471751340013346 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Road 96 # send your bug reports to bugs@dotslashplay.it ### script_version=20230709.1 GAME_ID='road-96' GAME_NAME='Road 96' ARCHIVE_BASE_0='setup_road_96_1.04_(64bit)_(51993).exe' ARCHIVE_BASE_0_MD5='f0d88097b5e6c44687e073c4abef816b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_road_96_1.04_(64bit)_(51993)-1.bin' ARCHIVE_BASE_0_PART1_MD5='608d310ebb3154a0e85bad40175f9189' ARCHIVE_BASE_0_PART2='setup_road_96_1.04_(64bit)_(51993)-2.bin' ARCHIVE_BASE_0_PART2_MD5='f0d523facddf8c40c18fd6b1721a8855' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.04-gog51993' ARCHIVE_BASE_0_URL='https://www.gog.com/game/road_96' UNITY3D_NAME='road 96' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}.exe ${UNITY3D_NAME}_data/plugins baselib.dll gameassembly.dll unityplayer.dll" CONTENT_GAME_DATA_RESOURCES_FILES=" ${UNITY3D_NAME}_data/*.ress" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_data" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DigixArt/Road 96' APP_MAIN_TYPE='wine' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA_RESOURCES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_RESOURCES_ID="${PKG_DATA_ID}-resources" PKG_DATA_RESOURCES_DESCRIPTION="$PKG_DATA_DESCRIPTION - resources" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_RESOURCES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Delete unwanted files rm --recursive \ '__redist' \ 'app' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-robin-hood-the-legend-of-sherwood.sh0000750000000000000000000001432114471751340020460 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2021 Anna Lea set -o errexit ### # Robin Hood: The Legend of Sherwood # send your bug reports to bugs@dotslashplay.it ### script_version=20240228.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='robin-hood-the-legend-of-sherwood' GAME_NAME='Robin Hood: The Legend of Sherwood' ARCHIVE_BASE_EN_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778).exe' ARCHIVE_BASE_EN_0_MD5='a52ed21f93f17457a3a137b54ee60919' ARCHIVE_BASE_EN_0_TYPE='innosetup' ARCHIVE_BASE_EN_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(24778)-1.bin' ARCHIVE_BASE_EN_0_PART1_MD5='6fbcea908c83933326294c0706838da5' ARCHIVE_BASE_EN_0_SIZE='1100000' ARCHIVE_BASE_EN_0_VERSION='1.1-gog24778' ARCHIVE_BASE_EN_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_FR_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778).exe' ARCHIVE_BASE_FR_0_MD5='2f945bd2a1d70c1c9ff3b9938e1adf9a' ARCHIVE_BASE_FR_0_TYPE='innosetup' ARCHIVE_BASE_FR_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(french)_(24778)-1.bin' ARCHIVE_BASE_FR_0_PART1_MD5='060df1c05868593a59ccc4ca2832cf36' ARCHIVE_BASE_FR_0_SIZE='1100000' ARCHIVE_BASE_FR_0_VERSION='1.1-gog24778' ARCHIVE_BASE_FR_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_DE_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778).exe' ARCHIVE_BASE_DE_0_MD5='cdba08e0613408bc3709f387144c7a1d' ARCHIVE_BASE_DE_0_TYPE='innosetup' ARCHIVE_BASE_DE_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(german)_(24778)-1.bin' ARCHIVE_BASE_DE_0_PART1_MD5='6291dbee561468bb4fbb769aaf74eb36' ARCHIVE_BASE_DE_0_SIZE='1100000' ARCHIVE_BASE_DE_0_VERSION='1.1-gog24778' ARCHIVE_BASE_DE_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_PL_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778).exe' ARCHIVE_BASE_PL_0_MD5='42066791c34c3ff6f6b9a1404f7afb1e' ARCHIVE_BASE_PL_0_TYPE='innosetup' ARCHIVE_BASE_PL_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(polish)_(24778)-1.bin' ARCHIVE_BASE_PL_0_PART1_MD5='dc4bf92553c3a6e436b8d79c99a6287c' ARCHIVE_BASE_PL_0_SIZE='1100000' ARCHIVE_BASE_PL_0_VERSION='1.1-gog24778' ARCHIVE_BASE_PL_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_ES_0_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778).exe' ARCHIVE_BASE_ES_0_MD5='7db0f8d9c40bb398acb406224a225eb9' ARCHIVE_BASE_ES_0_TYPE='innosetup' ARCHIVE_BASE_ES_0_PART1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_hotfix_(spanish)_(24778)-1.bin' ARCHIVE_BASE_ES_0_PART1_MD5='e9ba8791951285a814ef86fcf3b8614f' ARCHIVE_BASE_ES_0_SIZE='1100000' ARCHIVE_BASE_ES_0_VERSION='1.1-gog24778' ARCHIVE_BASE_ES_0_URL='https://www.gog.com/game/robin_hood' ARCHIVE_BASE_EN_OLDPATH_1_NAME='setup_robin_hood_-_the_legend_of_sherwood_1.1_(17797).exe' ARCHIVE_BASE_EN_OLDPATH_1_MD5='e8808cdafc7ea75cbcfaa850275b3dd6' ARCHIVE_BASE_EN_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_EN_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_EN_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_FR_OLDPATH_1_NAME='setup_robin_hood_-_the_legend_of_sherwood_french_1.1_(17797).exe' ARCHIVE_BASE_FR_OLDPATH_1_MD5='8b19812fb424651fc482cb7a9c5ed665' ARCHIVE_BASE_FR_OLDPATH_1_SIZE='1200000' ARCHIVE_BASE_FR_OLDPATH_1_VERSION='1.1-gog17797' ARCHIVE_BASE_EN_OLDPATH_0_NAME='setup_robin_hood_2.0.0.12.exe' ARCHIVE_BASE_EN_OLDPATH_0_MD5='9e2452c88f154c5e0306ca98e6b773ef' ARCHIVE_BASE_EN_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_EN_OLDPATH_0_VERSION='1.1-gog2.0.0.12' ARCHIVE_BASE_FR_OLDPATH_0_NAME='setup_robin_hood_french_2.1.0.15.exe' ARCHIVE_BASE_FR_OLDPATH_0_MD5='f6775cefa54e15141b855d037eafb8d9' ARCHIVE_BASE_FR_OLDPATH_0_SIZE='1100000' ARCHIVE_BASE_FR_OLDPATH_0_VERSION='1.1-gog2.1.0.15' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_EN_OLDPATH='app' CONTENT_PATH_DEFAULT_FR_OLDPATH='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe launch data/savegame.exe' CONTENT_GAME_L10N_FILES=' 1031 1036 1045 2047 3082 data/configuration data/interface data/text data/levels/*.rhm data/levels/*.scb data/sounds/fx_0017.sfk data/sounds/snd_055.sfk' CONTENT_GAME_DATA_FILES=' data/robinhood.bks data/robinhood.dic data/animations data/characters data/levels data/musics data/sounds' CONTENT_DOC_L10N_FILES=' manual.pdf' USER_PERSISTENT_DIRECTORIES=' data/configuration data/savegame' USER_PERSISTENT_FILES=' campaign.bck launch/settings.ini' WINE_WINETRICKS_VERBS='vd=1024x768' APP_MAIN_EXE='game.exe' APP_MAIN_ICON='robin hood.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_ID_EN="${PKG_L10N_ID}-en" PKG_L10N_ID_FR="${PKG_L10N_ID}-fr" PKG_L10N_ID_DE="${PKG_L10N_ID}-de" PKG_L10N_ID_PL="${PKG_L10N_ID}-pl" PKG_L10N_ID_ES="${PKG_L10N_ID}-es" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_DESCRIPTION='localization' PKG_L10N_DESCRIPTION_EN="$PKG_L10N_DESCRIPTION - English" PKG_L10N_DESCRIPTION_FR="$PKG_L10N_DESCRIPTION - French" PKG_L10N_DESCRIPTION_DE="$PKG_L10N_DESCRIPTION - German" PKG_L10N_DESCRIPTION_PL="$PKG_L10N_DESCRIPTION - Polish" PKG_L10N_DESCRIPTION_ES="$PKG_L10N_DESCRIPTION - Spanish" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_L10N_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-rogue-legacy.sh0000750000000000000000000000737214471751340014547 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Rogue Legacy # send your bug reports to 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-roki.sh0000750000000000000000000000330614471751340013121 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Röki # send your bug reports to bugs@dotslashplay.it ### script_version=20240820.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='roki' GAME_NAME='Röki' ARCHIVE_BASE_0_NAME='setup_roki_roki_master_v3.3_(64bit)_(43089).exe' ARCHIVE_BASE_0_MD5='e0a31cf756e51d2d70ed8a7635bc1d19' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='3.3-gog43089' ARCHIVE_BASE_0_URL='https://www.gog.com/game/roki' UNITY3D_NAME='roki' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Polygon Treehouse/Roki' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sable.sh0000750000000000000000000000346514471751340013251 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sable # send your bug reports to bugs@dotslashplay.it ### script_version=20240408.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sable' GAME_NAME='Sable' ARCHIVE_BASE_0_NAME='setup_sable_4.3.4_(64bit)_(60909).exe' ARCHIVE_BASE_0_MD5='5f11322d659afe9bb2c5434470a05445' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sable_4.3.4_(64bit)_(60909)-1.bin' ARCHIVE_BASE_0_PART1_MD5='a1cc6c702d15a0fe99c00b913416f73b' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='4.3.4-gog60909' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sable' UNITY3D_NAME='sable' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Shedworks/Sable/SaveData' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sagebrush.sh0000750000000000000000000000334314471751340014141 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sagebrush # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='sagebrush' GAME_NAME='Sagebrush' ARCHIVE_BASE_0_NAME='sagebrush-windows-universal.zip' ARCHIVE_BASE_0_MD5='0af5ff01fdb4216f81b443a11c997ee1' ARCHIVE_BASE_0_SIZE='380000' ARCHIVE_BASE_0_VERSION='1.41b-itch1' ARCHIVE_BASE_0_URL='https://redactgames.itch.io/sagebrush' UNITY3D_NAME='Sagebrush' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Redact Games/Sagebrush' WINE_VIRTUAL_DESKTOP='auto' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarf.sh0000750000000000000000000000567014471751340013261 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=20230706.1 GAME_ID='scarf' GAME_NAME='Scarf' ARCHIVE_BASE_0='setup_scarf_1.1_(64bit)_(53216).exe' ARCHIVE_BASE_0_MD5='128b44bb5ba007934e91ad2a0ff6f693' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_scarf_1.1_(64bit)_(53216)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ef5faab9ebab9772dd159d5cafde0311' ARCHIVE_BASE_0_PART2='setup_scarf_1.1_(64bit)_(53216)-2.bin' ARCHIVE_BASE_0_PART2_MD5='e388bd53a584a6bb9e58ae9b4af0b3b4' ARCHIVE_BASE_0_PART3='setup_scarf_1.1_(64bit)_(53216)-3.bin' ARCHIVE_BASE_0_PART3_MD5='000370e5c0bac838f8f50f9b2cfc3f18' ARCHIVE_BASE_0_PART4='setup_scarf_1.1_(64bit)_(53216)-4.bin' ARCHIVE_BASE_0_PART4_MD5='761da3606e1e2dfa741b5e8be51cd9f3' ARCHIVE_BASE_0_SIZE='14000000' ARCHIVE_BASE_0_VERSION='1.1-gog53216' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarf' UNREALENGINE4_NAME='scarf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" engine ${UNREALENGINE4_NAME}/binaries ${UNREALENGINE4_NAME}/plugins ${UNREALENGINE4_NAME}.exe" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" CONTENT_GAME_DATA_FILES=" ${UNREALENGINE4_NAME}" HUGE_FILES_DATA=" ${UNREALENGINE4_NAME}/content/paks/${UNREALENGINE4_NAME}-windowsnoeditor.pak" WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Local/${UNREALENGINE4_NAME}/Saved" APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=101' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-scarlet-hood-and-the-wicked-wood.sh0000750000000000000000000000407214471751340020272 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Scarlet Hood and the Wicked Wood # send your bug reports to bugs@dotslashplay.it ### script_version=20231104.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='scarlet-hood-and-the-wicked-wood' GAME_NAME='Scarlet Hood and the Wicked Wood' ARCHIVE_BASE_0_NAME='scarlet_hood_and_the_wicked_wood_1_0_7_47145.sh' ARCHIVE_BASE_0_MD5='4661f6c64736fefe383c0c92860a5513' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.0.7-gog47145' ARCHIVE_BASE_0_URL='https://www.gog.com/game/scarlet_hood_and_the_wicked_wood' UNITY3D_NAME='ScarletHood' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-seasons-after-fall.sh0000750000000000000000000000342714471751340015647 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Seasons After Fall # send your bug reports to 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-secrets-of-raetikon.sh0000750000000000000000000000653214471751340016045 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Secrets of Raetikon # send your bug reports to bugs@dotslashplay.it ### script_version=20231111.5 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='secrets-of-raetikon' GAME_NAME='Secrets of Raetikon' ARCHIVE_BASE_0_NAME='SecretsofRaetikonLinux1.1.zip' ARCHIVE_BASE_0_MD5='16a81710ce12480c9cd75a6992d2956c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.1-humble140731' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/secrets-of-rtikon' CONTENT_PATH_DEFAULT='Raetikon' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN64_FILES=' libfmodex64-4.44.32.so libfmodex64.so' CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/lib32" CONTENT_LIBS_BIN32_FILES=' libfmodex-4.44.32.so libfmodex.so' CONTENT_GAME_BIN64_FILES=' Raetikon64' CONTENT_GAME_BIN32_FILES=' Raetikon' CONTENT_GAME_DATA_FILES=' data steam_appid.txt' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' Manual.pdf' ## The game binaries are linked against libsteam_api.so, so it can not be dropped. CONTENT_LIBS_BIN64_FILES="${CONTENT_LIBS_BIN64_FILES:-} libsteam_api.so" CONTENT_LIBS_BIN32_FILES="${CONTENT_LIBS_BIN32_FILES:-} libsteam_api.so" APP_MAIN_EXE_BIN32='Raetikon' APP_MAIN_EXE_BIN64='Raetikon64' ## Create a minimal configuration file to avoid a black screen on Intel chipset. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # Create a minimal configuration file to avoid a black screen on Intel chipset config_file="${HOME}/.secrets-of-raetikon/Options.xml" if [ ! -e "$config_file" ]; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF EOF fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libX11.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sentris.sh0000750000000000000000000000447314471751340013652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sentris # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sentris' GAME_NAME='Sentris' ARCHIVE_BASE_0_NAME='Sentris_1.02_Linux.zip' ARCHIVE_BASE_0_MD5='b6ca5f3447a223efba73ae9138b16a45' ARCHIVE_BASE_0_SIZE='407940' ARCHIVE_BASE_0_VERSION='1.02-humble170110' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/sentris' UNITY3D_NAME='Sentris' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='Sentris_1.02_Linux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shantae-and-the-pirates-curse.sh0000750000000000000000000000365414471751340017710 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-shelter-1.sh0000750000000000000000000000505714471751340013766 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Shelter 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230918.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='shelter-1' GAME_NAME='Shelter' ARCHIVE_BASE_HUMBLE_0_NAME='Shelter_PC_Gold_v5.zip' ARCHIVE_BASE_HUMBLE_0_MD5='32b84f87d7c24f57809670742adad3f7' ARCHIVE_BASE_HUMBLE_0_SIZE='550000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/shelter' ARCHIVE_BASE_GOG_1_NAME='setup_shelter_1.0_(18565).exe' ARCHIVE_BASE_GOG_1_MD5='7d1a2df224b43ce5a80008af13edde1d' ARCHIVE_BASE_GOG_1_TYPE='innosetup' ARCHIVE_BASE_GOG_1_SIZE='560000' ARCHIVE_BASE_GOG_1_VERSION='1.0-gog18565' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/shelter' ARCHIVE_BASE_GOG_0_NAME='setup_shelter_2.0.0.6.exe' ARCHIVE_BASE_GOG_0_MD5='06860af1df9a8120bce4e97d899b3edd' ARCHIVE_BASE_GOG_0_TYPE='innosetup' ARCHIVE_BASE_GOG_0_SIZE='570000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.0.0.6' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='app' UNITY3D_NAME_HUMBLE='Shelter PC Gold v5' UNITY3D_NAME_GOG='shelter' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Might and Delight/Shelter' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure smooth upgrade from previous game id PKG_DATA_PROVIDES=' shelter-data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## Ensure smooth upgrade from previous game id PKG_BIN_PROVIDES=' shelter' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shelter-2-paws.sh0000750000000000000000000000525314471751340014735 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Paws: A Shelter 2 Game # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.2 GAME_ID='shelter-2-paws' GAME_NAME='Paws: A Shelter 2 Game' ARCHIVE_BASE_0_NAME='gog_paws_a_shelter_2_game_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='51423901b52f063e6b6561622a5a7bae' ARCHIVE_BASE_0_SIZE='1785679' ARCHIVE_BASE_0_VERSION='2017.05.11-gog2.1.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/paws_a_shelter_2_game' UNITY3D_NAME='Paws' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Do not disable the MAP_32BIT flag, as it would lead to a crash on launch unity3d_disable_map32bit() { return 0 ; } launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-shelter-2.sh0000750000000000000000000000460714471751340013767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Shelter 2: # - Shelter 2 (base game) # - Shelter 2 + Mountains expansion # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shelter-2' GAME_NAME='Shelter 2' ARCHIVE_BASE_0_NAME='gog_shelter_2_2.5.0.10.sh' ARCHIVE_BASE_0_MD5='f2bf2e188667133ad117b5bff846e66e' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='20150708-gog2.5.0.10' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shelter_2' ARCHIVE_BASE_MOUNTAINS_0_NAME='gog_shelter_2_mountains_dlc_2.0.0.1.sh' ARCHIVE_BASE_MOUNTAINS_0_MD5='ffe25b4ac5d75b9a30ed983634397d85' ARCHIVE_BASE_MOUNTAINS_0_SIZE='2500000' ARCHIVE_BASE_MOUNTAINS_0_VERSION='1.0-gog2.0.0.1' ARCHIVE_BASE_MOUNTAINS_0_URL='https://www.gog.com/game/shelter_2_mountains' UNITY3D_NAME='Shelter2' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-shovel-knight.sh0000750000000000000000000000476514471751340014751 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=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='shovel-knight' GAME_NAME='Shovel Knight: Treasure Trove' ARCHIVE_BASE_0_NAME='shovel_knight_treasure_trove_4_1b_arby_s_46298.sh' ARCHIVE_BASE_0_MD5='2f5e07e20ac615eb248ab81c25974d53' ARCHIVE_BASE_0_SIZE='500000' ARCHIVE_BASE_0_VERSION='4.1b-gog46298' ARCHIVE_BASE_0_URL='https://www.gog.com/game/shovel_knight' CONTENT_PATH_DEFAULT='data/noarch/game' ## TODO: The libraries should be installed in the system libraries path. CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/64" CONTENT_GAME_BIN64_FILES=' ShovelKnight lib' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/32" CONTENT_GAME_BIN32_FILES=' ShovelKnight lib' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_PATH='data/noarch/docs' CONTENT_DOC_DATA_FILES='*.txt' APP_MAIN_EXE='ShovelKnight' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" ## TODO: The list of required native libraries might not be complete. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-six-cats-under.sh0000750000000000000000000000403714471751340015025 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Six Cats Under # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='six-cats-under' GAME_NAME='Six Cats Under' ARCHIVE_BASE_0_NAME='Six Cats Under - Linux.zip' ARCHIVE_BASE_0_MD5='c352fa55e864cb4f8c021764c9e825dd' ARCHIVE_BASE_0_SIZE='190167' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://teambeanloop.itch.io/six-cats-under' UNITY3D_NAME='Six_Cats_Under' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-skyshines-bedlam.sh0000750000000000000000000000430614471751340015420 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Skyshine's Bedlam # send your bug reports to bugs@dotslashplay.it ### script_version=20230803.2 GAME_ID='skyshines-bedlam' GAME_NAME='Skyshineʼs Bedlam' ## This game is no longer available for sale from GOG.com ARCHIVE_BASE_0='setup_skyshines_bedlam_redux_2.0.0.2.exe' ARCHIVE_BASE_0_MD5='9fa7fdb957941eb0b9e6b53f6a9ea4a3' ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--gog' ARCHIVE_BASE_0_PART1='setup_skyshines_bedlam_redux_2.0.0.2-1.bin' ARCHIVE_BASE_0_PART1_MD5='30cdb581d87cc26574c5bbb935e897fa' ARCHIVE_BASE_0_PART1_TYPE='rar' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.2' CONTENT_PATH_DEFAULT='game' CONTENT_GAME_BIN_FILES=' win32' CONTENT_GAME_DATA_FILES=' assets' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/SkyshinesBedlam' APP_MAIN_EXE='win32/Skyshines BEDLAM.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slay-the-spire.sh0000750000000000000000000000564414471751340015032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Slay the Spire # send your bug reports to bugs@dotslashplay.it ### script_version=20240218.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='slay-the-spire' GAME_NAME='Slay the Spire' ARCHIVE_BASE_0_NAME='slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' ARCHIVE_BASE_0_MD5='1989ebecb2434f0480b42c4e576dfc78' ARCHIVE_BASE_0_SIZE='570000' ARCHIVE_BASE_0_VERSION='2.2-gog43444' ARCHIVE_BASE_0_URL='https://www.gog.com/game/slay_the_spire' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' desktop-1.0.jar mod-uploader.jar mts-launcher.jar' CONTENT_DOC_MAIN_FILES=' README.md' USER_PERSISTENT_DIRECTORIES=' betaPreferences runs saves' USER_PERSISTENT_FILES=' info.displayconfig' APP_MAIN_TYPE='java' APP_MAIN_EXE='desktop-1.0.jar' APP_MAIN_ICON='../support/icon.png' ## Ensure smooth upgrades from packages generated with pre-20231107.1 game scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} slay-the-spire-bin slay-the-spire-data" PKG_MAIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1' ## Prevent a crash on launch due to a failure to get the display dimensions. ## ## Exception in thread "LWJGL Application" java.lang.ExceptionInInitializerError ## at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:558) ## at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) ## Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 ## at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:954) ## at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738) ## at org.lwjgl.opengl.Display.(Display.java:138) ## ... 2 more PKG_MAIN_DEPENDENCIES_COMMANDS="${PKG_MAIN_DEPENDENCIES_COMMANDS:-}"' xrandr' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-slipways.sh0000750000000000000000000000406614471751340014034 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Slipways # send your bug reports to bugs@dotslashplay.it ### script_version=20240325.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='slipways' GAME_NAME='Slipways' ARCHIVE_BASE_1_NAME='setup_slipways_1.3-1139-win_(64bit)_(71895).exe' ARCHIVE_BASE_1_MD5='847e5a084cceb2741bd26684568b4140' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='835016' ARCHIVE_BASE_1_VERSION='1.3.1139-gog71895' ARCHIVE_BASE_1_URL='https://www.gog.com/game/slipways' ARCHIVE_BASE_0_NAME='setup_slipways_1.3-1106-win_(64bit)_(61549).exe' ARCHIVE_BASE_0_MD5='f14169a08342feaeb87b0420d7b5d65d' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='840000' ARCHIVE_BASE_0_VERSION='1.3.1106-gog61549' UNITY3D_NAME='slipways' CONTENT_PATH_DEFAULT='.' CONTENT_GAME0_DATA_FILES=' data' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Beetlewing/Slipways' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="${PKG_BIN_DEPS:-} $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-snk-neogeo.sh0000750000000000000000000002111514471751340014220 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # SNK Neo Geo games: # - King of the Monsters # - Baseball Stars 2 # - Fatal Fury Special # - Art of Fighting 2 # - Samurai Shodown 2 # - Metal Slug 2 # - Metal Slug 3 # - The King of Fighters 2000 # - Sengoku 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.9 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID_KINGOFTHEMONSTERS='king-of-the-monsters' GAME_NAME_KINGOFTHEMONSTERS='King of the Monsters' GAME_ID_BASEBALLSTARS2='baseball-stars-2' GAME_NAME_BASEBALLSTARS2='Baseball Stars 2' GAME_ID_FATALFURYSPECIAL='fatal-fury-special' GAME_NAME_FATALFURYSPECIAL='Fatal Fury Special' GAME_ID_ARTOFFIGHTING2='art-of-fighting-2' GAME_NAME_ARTOFFIGHTING2='Art of Fighting 2' GAME_ID_SAMURAISHODOWN2='samurai-shodown-2' GAME_NAME_SAMURAISHODOWN2='Samurai Shodown II' GAME_ID_METALSLUG2='metal-slug-2' GAME_NAME_METALSLUG2='Metal Slug 2' GAME_ID_METALSLUG3='metal-slug-3' GAME_NAME_METALSLUG3='Metal Slug 3' GAME_ID_THEKINGOFFIGHTERS2000='the-king-of-fighter-2000' GAME_NAME_THEKINGOFFIGHTERS2000='The King of Fighters 2000' GAME_ID_SENGOKU3='sengoku-3' GAME_NAME_SENGOKU3='Sengoku 3' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_NAME='KingOfTheMonsters_jan2016.sh' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_MD5='7a82ccaada86bd1c4637f0e088afbfa3' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_KINGOFTHEMONSTERS_0_SIZE='36000' ARCHIVE_BASE_BASEBALLSTARS2_0_NAME='BaseballStars2_jan2016.sh' ARCHIVE_BASE_BASEBALLSTARS2_0_MD5='efe7f4d90cc2e5db0efd00e7b32d8114' ARCHIVE_BASE_BASEBALLSTARS2_0_SIZE='36000' ARCHIVE_BASE_BASEBALLSTARS2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_FATALFURYSPECIAL_0_NAME='FatalFurySpecial_jan2016.sh' ARCHIVE_BASE_FATALFURYSPECIAL_0_MD5='b13a53d2944281ef2d139719ac727ef3' ARCHIVE_BASE_FATALFURYSPECIAL_0_SIZE='43000' ARCHIVE_BASE_FATALFURYSPECIAL_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_ARTOFFIGHTING2_0_NAME='ArtOfFighting2_jan2016.sh' ARCHIVE_BASE_ARTOFFIGHTING2_0_MD5='f50a3d75ecea5a1fbbfde30cd876d674' ARCHIVE_BASE_ARTOFFIGHTING2_0_SIZE='44000' ARCHIVE_BASE_ARTOFFIGHTING2_0_VERSION='1.0-humble.2016.01' ARCHIVE_BASE_SAMURAISHODOWN2_0_NAME='SamuraiShodown2_jan2016.sh' ARCHIVE_BASE_SAMURAISHODOWN2_0_MD5='11a6642f250c9ec322bc8d1a9f0f9b49' ARCHIVE_BASE_SAMURAISHODOWN2_0_SIZE='48000' ARCHIVE_BASE_SAMURAISHODOWN2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_METALSLUG2_0_NAME='MetalSlug2_jan2016.sh' ARCHIVE_BASE_METALSLUG2_0_MD5='c6ee0e16787b4ec5d497f96f9474ce80' ARCHIVE_BASE_METALSLUG2_0_SIZE='49000' ARCHIVE_BASE_METALSLUG2_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_METALSLUG3_0_NAME='MetalSlug3_jan2016.sh' ARCHIVE_BASE_METALSLUG3_0_MD5='a6854b31e7757f447c9c05281b28f57a' ARCHIVE_BASE_METALSLUG3_0_SIZE='110000' ARCHIVE_BASE_METALSLUG3_0_VERSION='1.0-humble1601' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_NAME='KingOfFighters2000_jan2016.sh' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_MD5='98f3d87cd286c868f184fefe1c4222b9' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_SIZE='120000' ARCHIVE_BASE_THEKINGOFFIGHTERS2000_0_VERSION='1.0-humblejan2016' ARCHIVE_BASE_SENGOKU3_0_NAME='Sengoku3_jan2016.sh' ARCHIVE_BASE_SENGOKU3_0_MD5='5ecd65661e4b35c1badebcb146c8a261' ARCHIVE_BASE_SENGOKU3_0_SIZE='76000' ARCHIVE_BASE_SENGOKU3_0_VERSION='1.0-humblejan2016' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libRocketControls.so.1 libRocketCore.so.1 libRocketDebugger.so.1' ## Using system-provided SDL2 instead of the shipped one, the game menu fails to render. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2-2.0.so.0" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64/lib64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86/lib" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/x86_64" CONTENT_GAME_BIN64_FILES=' NeogeoEmu.bin.x86_64' CONTENT_GAME_BIN32_PATH="${CONTENT_PATH_DEFAULT}/x86" CONTENT_GAME_BIN32_FILES=' NeogeoEmu.bin.x86' CONTENT_GAME_DATA_PATH="${CONTENT_PATH_DEFAULT}/noarch" CONTENT_GAME_DATA_FILES=' *.brm *.dat *.ini *.png *.rcss *.rml *.tga *.txt *.wav *.xor *.zip' ## TODO: Check if some shipped fonts could be replaced with system-provided ones. CONTENT_FONTS_DATA_FILES=' LiberationSerif-BoldItalic.ttf LiberationSerif-Bold.ttf LiberationSerif-Italic.ttf LiberationSerif-Regular.ttf TimesNewRomanPSBold.ttf' USER_PERSISTENT_FILES=' *.ini *.rml *.txt' APP_MAIN_EXE_BIN64='NeogeoEmu.bin.x86_64' APP_MAIN_EXE_BIN32='NeogeoEmu.bin.x86' APP_MAIN_ICON_KINGOFTHEMONSTERS='noarch/KingOfTheMonsters.png' APP_MAIN_ICON_BASEBALLSTARS2='noarch/BaseballStars2.png' APP_MAIN_ICON_FATALFURYSPECIAL='noarch/FatalFurySpecial.png' APP_MAIN_ICON_ARTOFFIGHTING2='noarch/ArtOfFighting2.png' APP_MAIN_ICON_SAMURAISHODOWN2='noarch/SamuraiShodown2.png' APP_MAIN_ICON_METALSLUG2='noarch/MetalSlug2.png' APP_MAIN_ICON_METALSLUG3='noarch/MetalSlug3.png' APP_MAIN_ICON_THEKINGOFFIGHTERS2000='noarch/KingOfFighters2000.png' APP_MAIN_ICON_SENGOKU3='noarch/Sengoku3.png' ## The shipped build of SDL2 has no support for the wayland backend. APP_MAIN_PRERUN=' # The shipped build of SDL2 has no support for the wayland backend if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID_KINGOFTHEMONSTERS="${GAME_ID_KINGOFTHEMONSTERS}-data" PKG_DATA_ID_BASEBALLSTARS2="${GAME_ID_BASEBALLSTARS2}-data" PKG_DATA_ID_FATALFURYSPECIAL="${GAME_ID_FATALFURYSPECIAL}-data" PKG_DATA_ID_ARTOFFIGHTING2="${GAME_ID_ARTOFFIGHTING2}-data" PKG_DATA_ID_SAMURAISHODOWN2="${GAME_ID_SAMURAISHODOWN2}-data" PKG_DATA_ID_METALSLUG2="${GAME_ID_METALSLUG2}-data" PKG_DATA_ID_METALSLUG3="${GAME_ID_METALSLUG3}-data" PKG_DATA_ID_THEKINGOFFIGHTERS2000="${GAME_ID_THEKINGOFFIGHTERS2000}-data" PKG_DATA_ID_SENGOKU3="${GAME_ID_SENGOKU3}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS_KINGOFTHEMONSTERS="$PKG_DATA_ID_KINGOFTHEMONSTERS" PKG_BIN_DEPS_BASEBALLSTARS2="$PKG_DATA_ID_BASEBALLSTARS2" PKG_BIN_DEPS_FATALFURYSPECIAL="$PKG_DATA_ID_FATALFURYSPECIAL" PKG_BIN_DEPS_ARTOFFIGHTING2="$PKG_DATA_ID_ARTOFFIGHTING2" PKG_BIN_DEPS_SAMURAISHODOWN2="$PKG_DATA_ID_SAMURAISHODOWN2" PKG_BIN_DEPS_METALSLUG2="$PKG_DATA_ID_METALSLUG2" PKG_BIN_DEPS_METALSLUG3="$PKG_DATA_ID_METALSLUG3" PKG_BIN_DEPS_THEKINGOFFIGHTERS2000="$PKG_DATA_ID_THEKINGOFFIGHTERS2000" PKG_BIN_DEPS_SENGOKU3="$PKG_DATA_ID_SENGOKU3" PKG_BIN64_DEPS_KINGOFTHEMONSTERS="$PKG_BIN_DEPS_KINGOFTHEMONSTERS" PKG_BIN64_DEPS_BASEBALLSTARS2="$PKG_BIN_DEPS_BASEBALLSTARS2" PKG_BIN64_DEPS_FATALFURYSPECIAL="$PKG_BIN_DEPS_FATALFURYSPECIAL" PKG_BIN64_DEPS_ARTOFFIGHTING2="$PKG_BIN_DEPS_ARTOFFIGHTING2" PKG_BIN64_DEPS_SAMURAISHODOWN2="$PKG_BIN_DEPS_SAMURAISHODOWN2" PKG_BIN64_DEPS_METALSLUG2="$PKG_BIN_DEPS_METALSLUG2" PKG_BIN64_DEPS_METALSLUG3="$PKG_BIN_DEPS_METALSLUG3" PKG_BIN64_DEPS_THEKINGOFFIGHTERS2000="$PKG_BIN_DEPS_THEKINGOFFIGHTERS2000" PKG_BIN64_DEPS_SENGOKU3="$PKG_BIN_DEPS_SENGOKU3" PKG_BIN32_DEPS_KINGOFTHEMONSTERS="$PKG_BIN_DEPS_KINGOFTHEMONSTERS" PKG_BIN32_DEPS_BASEBALLSTARS2="$PKG_BIN_DEPS_BASEBALLSTARS2" PKG_BIN32_DEPS_FATALFURYSPECIAL="$PKG_BIN_DEPS_FATALFURYSPECIAL" PKG_BIN32_DEPS_ARTOFFIGHTING2="$PKG_BIN_DEPS_ARTOFFIGHTING2" PKG_BIN32_DEPS_SAMURAISHODOWN2="$PKG_BIN_DEPS_SAMURAISHODOWN2" PKG_BIN32_DEPS_METALSLUG2="$PKG_BIN_DEPS_METALSLUG2" PKG_BIN32_DEPS_METALSLUG3="$PKG_BIN_DEPS_METALSLUG3" PKG_BIN32_DEPS_THEKINGOFFIGHTERS2000="$PKG_BIN_DEPS_THEKINGOFFIGHTERS2000" PKG_BIN32_DEPS_SENGOKU3="$PKG_BIN_DEPS_SENGOKU3" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libfreetype.so.6 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solar-2.sh0000750000000000000000000001457314471751340013444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Solar 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240831.5 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='solar-2' GAME_NAME='Solar 2' ARCHIVE_BASE_0_NAME='Solar2_v1.26_amd64.tar.gz' ARCHIVE_BASE_0_MD5='64e953238fbdce8d8671578ddba05559' ARCHIVE_BASE_0_SIZE='103714' ARCHIVE_BASE_0_VERSION='1.26-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/solar-2' ARCHIVE_BASE_XNA_0_NAME='solar2-linux-1.10_1409159048.tar.gz' ARCHIVE_BASE_XNA_0_MD5='243918907eea486fdc820b7cac0c260b' ARCHIVE_BASE_XNA_0_SIZE='130000' ARCHIVE_BASE_XNA_0_VERSION='1.10-humble1' ARCHIVE_BASE_XNA_0_URL='https://www.humblebundle.com/store/solar-2' ## Optional icons pack (only useful for the XNA build) ARCHIVE_OPTIONAL_ICONS_NAME_XNA='solar-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5_XNA='d8f8557a575cb5b5824d72718428cd33' ARCHIVE_OPTIONAL_ICONS_URL_XNA='https://downloads.dotslashplay.it/resources/solar-2/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48 64x64' # Archives content CONTENT_PATH_DEFAULT='Solar2' CONTENT_LIBS_BIN_FILES=' libclrgc.so libclrjit.so libcoreclr.so libcoreclrtraceptprovider.so libhostfxr.so libhostpolicy.so libmscordaccore.so libmscordbi.so libSystem.Globalization.Native.so libSystem.IO.Compression.Native.so libSystem.Native.so libSystem.Net.Security.Native.so libSystem.Security.Cryptography.Native.OpenSsl.so' ## The game crashes on launch if the shipped OpenAL is not used: ## ## Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. ## at Solar2.Moosic..ctor(AudioManager audioManager, PowerMain main) ## at Solar2.World..ctor(Epsilon epsilon, SpriteSheet[] sheets) ## at Solar2.Epsilon.LoadContent() ## at Power.PowerMain.LoadScreen(GameScreen screen, Nullable`1 controllingPlayer) ## at Solar2.LoadingScreen.BackgroundWorkerThread() CONTENT_LIBS0_BIN_FILES=' libopenal.so.1' CONTENT_GAME_BIN_FILES=' Solar2 Solar2.deps.json Solar2.runtimeconfig.json' CONTENT_GAME_DATA_FILES=' Content solar2icon_512x512_transparent.png' ## TODO: Some of these shipped Mono libraries could probably be replaced by system-provided ones CONTENT_GAME0_DATA_FILES=' *.dll' ## Old XNA build CONTENT_GAME_MAIN_FILES_XNA=' mono Languages MonoContent display.txt Solar2.exe EasyStorage.Linux.dll GamepadBridge.dll Lidgren.Network.dll MonoGame.Framework.Linux.dll MonoGame.Framework.Linux.dll.config Power.Linux.dll PowerRuntime.Linux.dll Tao.Sdl.dll Tao.Sdl.dll.config' # Launchers ## TODO: Check if these paths are used by the current MonoGame builds USER_PERSISTENT_DIRECTORIES=' Languages' USER_PERSISTENT_FILES=' display.txt' APP_MAIN_EXE='Solar2' APP_MAIN_ICON='solar2icon_512x512_transparent.png' ## Prevent the game from escaping the prefix APP_MAIN_PRERUN=' # Prevent the game from escaping the prefix if [ -h "Solar2.dll" ]; then file_source=$(realpath "Solar2.dll") cp --remove-destination "$file_source" "Solar2.dll" fi ' ## Old XNA build APP_MAIN_EXE_XNA='Solar2.exe' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 liblttng-ust.so.0 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Old XNA build PACKAGES_LIST_XNA=' PKG_MAIN' PKG_MAIN_PROVIDES_XNA=' solar-2-data' PKG_MAIN_DEPENDENCIES_LIBRARIES_XNA=' libopenal.so.1 libSDL_mixer-1.2.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES_XNA=' mscorlib.dll Mono.Posix.dll Mono.Security.dll OpenTK.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Security.dll System.Xml.dll' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) ## Old XNA build - No icon is shipped (not even included in the .exe file), ## but an optional icons pack is supported unset APP_MAIN_ICON content_inclusion_icons ;; (*) content_inclusion_icons 'PKG_DATA' ;; esac content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_XNA_'*) ## Old XNA build - libSDL_mixer-1.2.so.0 must be available at lib/libSDL_mixer-1.2.so.0 to avoid a game crash. ## WARNING: path_libraries_system can not be used when the package is architecture-agnostic case "$(option_value 'package')" in ('arch') path_libraries_64='/usr/lib' path_libraries_32='/usr/lib32' ;; ('deb') path_libraries_64='/usr/lib/x86_64-linux-gnu' path_libraries_32='/usr/lib/i386-linux-gnu' ;; ('gentoo'|'egentoo') path_libraries_64='/usr/lib64' path_libraries_32='/usr/lib' ;; esac APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # libSDL_mixer-1.2.so.0 must be available at lib/libSDL_mixer-1.2.so.0 to avoid a game crash if [ ! -e 'lib/libSDL_mixer-1.2.so.0' ]; then mkdir --parents 'lib' if [ -e '${path_libraries_64}/libSDL_mixer-1.2.so.0' ]; then ln --symbolic '${path_libraries_64}/libSDL_mixer-1.2.so.0' 'lib/libSDL_mixer-1.2.so.0' elif [ -e '${path_libraries_32}/libSDL_mixer-1.2.so.0' ]; then ln --symbolic '${path_libraries_32}/libSDL_mixer-1.2.so.0' 'lib/libSDL_mixer-1.2.so.0' fi fi " launchers_generation ;; (*) ## MonoGame builds - The game engine fails to find the shipped libraries if they are not in the game directory APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') # The game engine fails to find the shipped libraries if they are not in the game directory ln --force --symbolic '$(path_libraries)'/*.so . " launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-solar-flux.sh0000750000000000000000000000372514471751340014256 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Solar Flux # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='solar-flux' GAME_NAME='Solar Flux' ## This DRM-free archive is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='SolarFluxLinux.zip' ARCHIVE_BASE_0_MD5='9e2faa973a4affef9ddb1205f5f82019' ARCHIVE_BASE_0_SIZE='213929' ARCHIVE_BASE_0_VERSION='1.0-humble1' CONTENT_PATH_DEFAULT='Solar Flux Linux' CONTENT_GAME_BIN_FILES=' lib/solarflux' CONTENT_GAME_DATA_FILES=' data' APP_MAIN_EXE='lib/solarflux' APP_MAIN_ICON='data/icon.bmp' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-solstice.sh0000750000000000000000000000366514471751340014012 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Solstice # send your bug reports to bugs@dotslashplay.it ### script_version=20230415.1 GAME_ID='solstice' GAME_NAME='Solstice' ARCHIVE_BASE_0='setup_solstice_1.4.13_(33035).exe' ARCHIVE_BASE_0_MD5='4e5cd3affaf723a263ad828d49920e51' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.4.13-gog33035' ARCHIVE_BASE_0_URL='https://www.gog.com/game/solstice' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' galaxy.dll gog.gml.dll solstice.exe' CONTENT_GAME_DATA_FILES=' data.win *.ogg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/Solstice' APP_MAIN_EXE='solstice.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Get icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-soma.sh0000750000000000000000000000602014471751340013110 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Soma # send your bug reports to bugs@dotslashplay.it ### script_version=20230216.2 GAME_ID='soma' GAME_NAME='SOMA' ARCHIVE_BASE_1='SOMA_Linux_v110.zip' ARCHIVE_BASE_1_MD5='46e9dadf90d347e0f384e636e71ce746' ARCHIVE_BASE_1_SIZE='22000000' ARCHIVE_BASE_1_VERSION='1.10-humble2' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/soma' ARCHIVE_BASE_0='SOMA_Humble_Linux_1109.zip' ARCHIVE_BASE_0_MD5='63f4c611fed4df25bee3fb89177ab57f' ARCHIVE_BASE_0_VERSION='1109-humble1' ARCHIVE_BASE_0_SIZE='22000000' CONTENT_PATH_DEFAULT='SOMA' CONTENT_PATH_DEFAULT_0='Linux' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_BIN_PATH_0="${CONTENT_PATH_DEFAULT_0}/lib64" CONTENT_LIBS_BIN_FILES=' libfmodevent64-4.44.62.so libfmodex64-4.44.62.so' CONTENT_GAME_BIN_FILES=' Soma.bin.x86_64' CONTENT_GAME_ENTITIES_FILES=' entities' CONTENT_GAME_SOUNDS_FILES=' sounds' CONTENT_GAME_DATA_FILES=' billboards combos config core detail_meshes fonts graphics gui lang lights maps music particles script _shadersource static_objects terminals textures undergrowth *.bmp *.cfg *.hps *.rar *.xml' CONTENT_DOC_DATA_FILES=' README.linux' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' config' APP_MAIN_EXE='Soma.bin.x86_64' APP_MAIN_ICON='Icon.bmp' PACKAGES_LIST='PKG_BIN PKG_ENTITIES PKG_SOUNDS PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_ENTITIES_ID="${GAME_ID}-entities" PKG_ENTITIES_DESCRIPTION='entities' PKG_SOUNDS_ID="${GAME_ID}-sounds" PKG_SOUNDS_DESCRIPTION='sounds' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID $PKG_ENTITIES_ID $PKG_SOUNDS_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libIL.so.1 libm.so.6 libogg.so.0 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6 libtheora.so.0 libvorbisfile.so.3 libvorbis.so.0 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sort-the-court.sh0000750000000000000000000000372014471751340015054 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Sort the Court # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='sort-the-court' GAME_NAME='Sort the Court' ARCHIVE_BASE_0_NAME='SortTheCourt_Linux.zip' ARCHIVE_BASE_0_MD5='70561aaeddc67f2c9c36139d1f747478' ARCHIVE_BASE_0_SIZE='86553' ARCHIVE_BASE_0_VERSION='2.2.0-itch' ARCHIVE_BASE_0_URL='https://graebor.itch.io/sort-the-court' UNITY3D_NAME='SortTheCourt' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_FILES=' *_save.dat' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-south-scrimshaw-part-1.sh0000750000000000000000000000442114471751340016416 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # South Scrimshaw, Part 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20231125.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='south-scrimshaw-part-1' GAME_NAME='South Scrimshaw, Part One' ARCHIVE_BASE_0_NAME='south_scrimshaw_part_one_1_0_66489.sh' ARCHIVE_BASE_0_MD5='b68e7e8fa9491d38a55f007911b94da0' ARCHIVE_BASE_0_SIZE='1699476' ARCHIVE_BASE_0_VERSION='1.0-gog66489' ARCHIVE_BASE_0_URL='https://www.gog.com/game/south_scrimshaw_part_one' RENPY_NAME='SouthScrimshaw' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/lib/py2-linux-x86_64" CONTENT_LIBS_BIN_FILES=' librenpython.so' CONTENT_GAME_BIN_FILES=" lib/py2-linux-x86_64/python lib/py2-linux-x86_64/pythonw lib/py2-linux-x86_64/zsync lib/py2-linux-x86_64/zsyncmake lib/py2-linux-x86_64/${RENPY_NAME}" CONTENT_GAME_DATA_FILES=" game renpy lib/python2.7 ${RENPY_NAME}.py" APP_MAIN_EXE="lib/py2-linux-x86_64/${RENPY_NAME}" APP_MAIN_ICON='SouthScrimshaw.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libutil.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sovereign-syndicate.sh0000750000000000000000000000464614471751340016147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sovereign Syndicate # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='sovereign-syndicate' GAME_NAME='Sovereign Syndicate' ARCHIVE_BASE_0_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092).exe' ARCHIVE_BASE_0_MD5='266029b31e13dc11b808cd87b4b31eb9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8872971818c95eee27f80f7684209c1c' ARCHIVE_BASE_0_PART2_NAME='setup_sovereign_syndicate_1.0.36_(64bit)_(72092)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3de81fad53bfddf5c3eaa6c6598af2b7' ARCHIVE_BASE_0_SIZE='11071403' ARCHIVE_BASE_0_VERSION='1.0.36-gog72092' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sovereign_syndicate' UNITY3D_NAME='sovereign syndicate' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_SHAREDASSETS_FILES=" ${UNITY3D_NAME}_data/sharedassets*" WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Crimson Herring Studios/Sovereign Syndicate' PACKAGES_LIST=' PKG_BIN PKG_DATA_SHAREDASSETS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHAREDASSETS' PKG_DATA_SHAREDASSETS_ID="${PKG_DATA_ID}-sharedassets" PKG_DATA_SHAREDASSETS_DESCRIPTION="$PKG_DATA_DESCRIPTION - shared assets" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-space-tail.sh0000750000000000000000000000737214471751340014206 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=20231111.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='space-tail' GAME_NAME='Space Tail: Every Journey Leads Home' # Archives ## Native Linux build ARCHIVE_BASE_LINUX_0_NAME='space_tail_every_journey_leads_home_1_0_2r9_61068.sh' ARCHIVE_BASE_LINUX_0_MD5='c267a2e1ef94cde68487e41cd3a4bbcf' ARCHIVE_BASE_LINUX_0_SIZE='7700000' ARCHIVE_BASE_LINUX_0_VERSION='1.0.2r9-gog61068' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' ## Windows build ### This is useful for users of nVIDIA non-free graphics driver, ### as the native Linux build suffers from rendering issues with this driver. ARCHIVE_BASE_WINDOWS_0_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065).exe' ARCHIVE_BASE_WINDOWS_0_MD5='5683d3493606fb5a2a60d9416e79c28d' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_PART1_NAME='setup_space_tail_every_journey_leads_home_1.0.2r9_(64bit)_(61065)-1.bin' ARCHIVE_BASE_WINDOWS_0_PART1_MD5='3183c4b2d5db7c462a266e41ad683720' ARCHIVE_BASE_WINDOWS_0_SIZE='7800000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0.2r9-gog61065' ARCHIVE_BASE_WINDOWS_0_URL='https://www.gog.com/game/space_tail_every_journey_leads_home' UNITY3D_NAME_LINUX='Space Tail' UNITY3D_NAME_WINDOWS='space tail' UNITY3D_PLUGINS=' lib_burst_generated.so libfmodstudio.so libresonanceaudio.so' ## The game crashes on launch if the Steam library is not available. UNITY3D_PLUGINS="${UNITY3D_PLUGINS:-} libsteam_api.so" CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Enjoy Studio/Space Tail' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' PKG_BIN_ID="$GAME_ID" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='64' ## Native Linux build PKG_DATA_ID_LINUX="${GAME_ID}-linux-data" PKG_BIN_ID_LINUX="${GAME_ID}-linux" PKG_BIN_DEPS_LINUX="$PKG_DATA_ID_LINUX" PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' ## Windows build PKG_DATA_ID_WINDOWS="${GAME_ID}-windows-data" PKG_BIN_ID_WINDOWS="${GAME_ID}-windows" PKG_BIN_DEPS_WINDOWS="$PKG_DATA_ID_WINDOWS" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Native Linux build - Link libresonanceaudio.so in the game data path as the game engine fails to find it otherwise case "$(current_archive)" in ('ARCHIVE_BASE_LINUX_'*) library_destination="$(package_path 'PKG_BIN')$(path_game_data)/$(unity3d_name)_Data/Plugins" mkdir --parents "$library_destination" ln --symbolic "$(path_libraries)/libresonanceaudio.so" "$library_destination" ;; esac # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-spelunky.sh0000750000000000000000000000346714471751340014037 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.sh0000750000000000000000000001160514471751340014510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Spiritfarer # send your bug reports to bugs@dotslashplay.it ### script_version=20241209.3 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='spiritfarer' GAME_NAME='Spiritfarer' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_4_NAME='spiritfarer_35325c_linux_60321.sh' ARCHIVE_BASE_4_MD5='6c01cdd8cd04d23b46153367682722fb' ARCHIVE_BASE_4_SIZE='6308582' ARCHIVE_BASE_4_VERSION='35325c-gog60321' ARCHIVE_BASE_4_URL='https://www.gog.com/game/spiritfarer' ARCHIVE_BASE_3_NAME='spiritfarer_35325c_linux_54594.sh' ARCHIVE_BASE_3_MD5='39f342a2616f42406e8fd4d3f4576acb' ARCHIVE_BASE_3_SIZE='6400000' ARCHIVE_BASE_3_VERSION='35325c-gog54594' ARCHIVE_BASE_2_NAME='spiritfarer_34556_linux_50344.sh' ARCHIVE_BASE_2_MD5='7dd310caa09790c0b56d4a9a67e7f9dc' ARCHIVE_BASE_2_SIZE='7500000' ARCHIVE_BASE_2_VERSION='34556-gog50344' ARCHIVE_BASE_1_NAME='spiritfarer_32698_linux_42758.sh' ARCHIVE_BASE_1_MD5='2f1c327bd020676eabd78f99124a786f' ARCHIVE_BASE_1_SIZE='6900000' ARCHIVE_BASE_1_VERSION='32698-gog42758' ARCHIVE_BASE_0_NAME='spiritfarer_32513_linux_41748.sh' ARCHIVE_BASE_0_MD5='8e6e49ce7e7571091f91d82706d2df8e' ARCHIVE_BASE_0_SIZE='6900000' ARCHIVE_BASE_0_VERSION='32513-gog41748' ARCHIVE_BASE_DEMO_0_NAME='spiritfarer_demo_demo_20200525a_linux_38575.sh' ARCHIVE_BASE_DEMO_0_MD5='952e425281143b061462e9122e638531' ARCHIVE_BASE_DEMO_0_SIZE='2782689' ARCHIVE_BASE_DEMO_0_VERSION='2020.05.25-gog38575' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/spiritfarer_demo' UNITY3D_NAME='spiritfarer' UNITY3D_NAME_DEMO='Spiritfarer' ## TODO: Check if the shipped Galaxy libraries are required. UNITY3D_PLUGINS=' libGalaxy64.so libGalaxyCSharpGlue.so' UNITY3D_PLUGINS_DEMO=' ScreenSelector.so' ## TODO: Check if the shipped Steam libraries are required. UNITY3D_PLUGINS_DEMO="$UNITY3D_PLUGINS_DEMO libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_DEMO=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # GOG build 50344 - Check for the presence of required extra archives case "$(current_archive)" in ('ARCHIVE_BASE_2') ARCHIVE_REQUIRED_MISSING_PLUGINS_NAME='spiritfarer_missing-plugins.tar.xz' ARCHIVE_REQUIRED_MISSING_PLUGINS_MD5='0fe61aeadf3066e724dca3db627d6a49' ARCHIVE_REQUIRED_MISSING_PLUGINS_URL='https://downloads.dotslashplay.it/games/spiritfarer/' archive_initialize_required \ 'ARCHIVE_MISSING_PLUGINS' \ 'ARCHIVE_REQUIRED_MISSING_PLUGINS' ;; esac # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then archive_extraction 'ARCHIVE_MISSING_PLUGINS' fi ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Enforce a consistent Unity3D name. unity3d_name=$(unity3d_name) alternative_name='Spiritfarer' ### Old builds ship the binary with a .exe file extension. if [ -e "${alternative_name}.exe" ]; then mv "${alternative_name}.exe" "${unity3d_name}.x86_64" mv "${alternative_name}_Data" "${unity3d_name}_Data" fi ) # Include game data content_inclusion_icons 'PKG_DATA' ## GOG build 50344 - Include missing plugins. if archive_is_available 'ARCHIVE_MISSING_PLUGINS'; then CONTENT_GAME_MISSING_PLUGINS_BIN_PATH='.' CONTENT_GAME_MISSING_PLUGINS_BIN_FILES=' libGalaxy64.so libGalaxyCSharpGlue.so' content_inclusion 'GAME_MISSING_PLUGINS_BIN' 'PKG_BIN' "$(path_game_data)/$(unity3d_name)_Data/Plugins" fi content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-springback.sh0000750000000000000000000000411314471751340014275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # SpringBack # send your bug reports to bugs@dotslashplay.it ### script_version=20241219.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='springback' GAME_NAME='SpringBack' ARCHIVE_BASE_1_NAME='Springback_1.1.429.rar' ARCHIVE_BASE_1_MD5='13516502d68c29fd38851adf03b82934' ARCHIVE_BASE_1_SIZE='241965' ARCHIVE_BASE_1_VERSION='1.1.429-itch1' ARCHIVE_BASE_1_URL='https://sweet-arsenic.itch.io/springback' ARCHIVE_BASE_0_NAME='springback-windows-universal.zip' ARCHIVE_BASE_0_MD5='61b073d967bbd27433baaedc9d97c3e1' ARCHIVE_BASE_0_SIZE='230000' ARCHIVE_BASE_0_VERSION='1.0-itch1' UNITY3D_NAME='SpringBack' CONTENT_PATH_DEFAULT='Springback_1.1.429' CONTENT_PATH_DEFAULT_0='.' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Sweet Arsenic\SpringBack' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data ## Ignore some harmless errors during the extraction of some *.mdb files archive_extraction_default 2>/dev/null || true # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-star-twine.sh0000750000000000000000000000523214471751340014252 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Star-Twine # send your bug reports to bugs@dotslashplay.it ### script_version=20230129.1 GAME_ID='star-twine' GAME_NAME='Star-Twine' ARCHIVE_BASE_0='star-twine-linux.zip' ARCHIVE_BASE_0_MD5='0a98b235d1e30fe8d89a4e9278fb3e92' ARCHIVE_BASE_0_SIZE='150000' ARCHIVE_BASE_0_VERSION='1.3.0-itch.2021.09.21' ARCHIVE_BASE_0_URL='https://sparsegamedev.itch.io/star-twine' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' Star-Twine.exe Star-Twine.png Content cursor.bmp monoconfig monomachineconfig FNA.dll FNA.dll.config Lidgren.Network.dll NetCommon.dll Steamworks.NET.dll' CONTENT_DOC_MAIN_FILES=' license.txt Linux.README' APP_MAIN_EXE='Star-Twine.exe' APP_MAIN_ICON='Star-Twine.png' PKG_MAIN_DEPS='mono' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libSDL2-2.0.so.0 libudev.so.1' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Xml.dll System.Xml.Linq.dll' # Include shipped libraries that can not be replaced by system ones CONTENT_LIBS_LIBS_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS_FILES=' libFNA3D.so.0 libsteam_api.so' PACKAGES_LIST='PKG_MAIN PKG_LIBS' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS_ARCH='64' PKG_LIBS_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPS="$PKG_MAIN_DEPS $PKG_LIBS_ID" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-star-vikings.sh0000750000000000000000000000463714471751340014606 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Star Vikings # send your bug reports to bugs@dotslashplay.it ### script_version=20241126.1 GAME_ID='star-vikings' GAME_NAME='Star Vikings' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_NAME (demo)" ARCHIVE_BASE_DEMO_0_NAME='gog_star_vikings_demo_2.1.0.2.sh' ARCHIVE_BASE_DEMO_0_MD5='9eea4e30b81ae17790db3a63f7bea382' ARCHIVE_BASE_DEMO_0_SIZE='544466' ARCHIVE_BASE_DEMO_0_VERSION='1.0-gog2.1.0.2' ARCHIVE_BASE_DEMO_0_URL='https://www.gog.com/game/star_vikings_demo' UNITY3D_NAME_DEMO='StarVikingsDemo' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-star-wars-battlefront-2.sh0000750000000000000000000000736614471751340016573 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Star Wars Battlefront 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='star-wars-battlefront-2' GAME_NAME='Star Wars Battlefront Ⅱ' ARCHIVE_BASE_1_NAME='setup_star_wars_battlefront_ii_1.1_(10935).exe' ARCHIVE_BASE_1_MD5='0b74c1d7cced6d6bde95605661b67673' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c7ad88e5eb89b3701dad3a6973d9918b' ARCHIVE_BASE_1_PART2_NAME='setup_star_wars_battlefront_ii_1.1_(10935)-2.bin' ARCHIVE_BASE_1_PART2_MD5='3a52d98aa43cb78fd661a656e5cf96a2' ARCHIVE_BASE_1_SIZE='10000000' ARCHIVE_BASE_1_VERSION='1.1-gog10935' ARCHIVE_BASE_1_URL='https://www.gog.com/game/star_wars_battlefront_ii' ARCHIVE_BASE_0_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606).exe' ARCHIVE_BASE_0_MD5='f482ec251067336d3b8211774b4c44f6' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-1.bin' ARCHIVE_BASE_0_PART1_MD5='c34b41f594e55b1522d8826f19cf958f' ARCHIVE_BASE_0_PART2_NAME='setup_star_wars_battlefront_ii_1.1_multiplayer_update_2_(17606)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c9423f3983c67575c1c531e0d18e6a0f' ARCHIVE_BASE_0_SIZE='11000000' ARCHIVE_BASE_0_VERSION='1.1-gog17606' CONTENT_PATH_DEFAULT='gamedata' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_MOVIES_FILES=' data/_lvl_pc/movies' CONTENT_GAME_DATA_FILES=' data' CONTENT_DOC_DATA_PATH='.' CONTENT_DOC_DATA_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='battlefrontii.exe' PACKAGES_LIST='PKG_BIN PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_MOVIES_ID $PKG_DATA_ID" ## TODO: Setting up a WINE virtual desktop on first launch might prevent display problems on some setups. # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='star-wars-battlefront-2_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='322275011d37ac219f1c06c196477fa4' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/star-wars-battlefront-2' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-stargunner.sh0000750000000000000000000000573214471751340014352 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Stargunner # send your bug reports to bugs@dotslashplay.it ### script_version=20230428.5 GAME_ID='stargunner' GAME_NAME='Stargunner' ARCHIVE_BASE_1='gog_stargunner_2.0.0.10.sh' ARCHIVE_BASE_1_MD5='d04655b120bce07d7c840f49e89e6a83' ARCHIVE_BASE_1_SIZE='58000' ARCHIVE_BASE_1_VERSION='1.0b-gog2.0.0.10' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stargunner' ARCHIVE_BASE_0='gog_stargunner_2.0.0.9.sh' ARCHIVE_BASE_0_MD5='4e90175d15754e05ad6cb0a0fa1af413' ARCHIVE_BASE_0_SIZE='57000' ARCHIVE_BASE_0_VERSION='1.0b-gog2.0.0.9' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' *' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_FILES=' STARGUN.CFG STARGUN.HI STARGUN.SAV' APP_MAIN_EXE='STARGUN.EXE' APP_MAIN_ICON='../support/icon.png' APP_HELP_ID="${GAME_ID}-help" APP_HELP_NAME="$GAME_NAME - help" APP_HELP_EXE='STARHELP.EXE' APP_HELP_ICON='../support/icon.png' APP_SETUP_ID="${GAME_ID}-setup" APP_SETUP_NAME="$GAME_NAME - setup" APP_SETUP_CAT='Settings' APP_SETUP_EXE='SETUP.EXE' APP_SETUP_ICON='../support/icon.png' # Prevent the game from running too fast APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 25000' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Generate a smaller icon from the shipped one APP_MAIN_ICON_512="${APP_MAIN_ICON%.png}_512.png" APP_MAIN_ICONS_LIST="$(application_icons_list 'APP_MAIN') APP_MAIN_ICON_512" APP_HELP_ICONS_LIST="$(application_icons_list 'APP_HELP') APP_MAIN_ICON_512" APP_SETUP_ICONS_LIST="$(application_icons_list 'APP_SETUP') APP_MAIN_ICON_512" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Generate a smaller icon from the shipped one convert "$APP_MAIN_ICON" -resize 512x512 "$APP_MAIN_ICON_512" ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path 'DOC_MAIN')" # Convert documentation file names to lower case tolower . ) # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-starship-titanic.sh0000750000000000000000000000313514471751340015443 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Starship Titanic # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='starship-titanic' GAME_NAME='Starship Titanic' ARCHIVE_BASE_0_NAME='starship_titanic_1_0_53361.sh' ARCHIVE_BASE_0_MD5='a41b4da053b7d4191e0d864bc52e6a89' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.00.42-gog53361' ARCHIVE_BASE_0_URL='https://www.gog.com/game/starship_titanic' CONTENT_PATH_DEFAULT='data/noarch/game/data' CONTENT_GAME_MAIN_FILES=' Assets newgame.st' CONTENT_DOC_MAIN_FILES=' *.doc *.txt' APP_MAIN_SCUMMID='titanic:titanic' APP_MAIN_ICON='../../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-starship-traveller.sh0000750000000000000000000000506014471751340016007 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Starship Traveller # send your bug reports to bugs@dotslashplay.it ### script_version=20221210.1 GAME_ID='starship-traveller' GAME_NAME='Starship Traveller' UNITY3D_NAME='Starship Traveller' ARCHIVE_BASE_0='starship_linux_115274.zip' ARCHIVE_BASE_0_MD5='92d8dc4ac95568ac524daaf7ec4152e6' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_VERSION='1.0-humble160523' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/starship-traveller' CONTENT_PATH_DEFAULT='STARSHIP_LINUX_115274' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-steamworld-games.sh0000750000000000000000000001225314471751340015431 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # SteamWorld games: # - SteamWorld Dig 1 # - SteamWorld Dig 2 # - SteamWorld Heist # - SteamWorld Quest # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID_DIG1='steamworld-dig-1' GAME_NAME_DIG1='SteamWorld Dig: A Fistful of Dirt' GAME_ID_DIG2='steamworld-dig-2' GAME_NAME_DIG2='SteamWorld Dig 2' GAME_ID_HEIST='steamworld-heist' GAME_NAME_HEIST='SteamWorld Heist' GAME_ID_QUEST='steamworld-quest' GAME_NAME_QUEST='SteamWorld Quest: Hand of Gilgamech' # Archives ## SteamWorld Dig 1 ARCHIVE_BASE_DIG1_GOG_0_NAME='gog_steamworld_dig_2.0.0.7.sh' ARCHIVE_BASE_DIG1_GOG_0_MD5='2f2ed68e00f151ff3c4d0092d8d6b15b' ARCHIVE_BASE_DIG1_GOG_0_SIZE='79000' ARCHIVE_BASE_DIG1_GOG_0_VERSION='1.10-gog2.0.0.7' ARCHIVE_BASE_DIG1_GOG_0_URL='https://www.gog.com/game/steamworld_dig' ARCHIVE_BASE_DIG1_HUMBLE_0_NAME='SteamWorldDig_linux_1393468453.tar.gz' ARCHIVE_BASE_DIG1_HUMBLE_0_MD5='de6ff6273c4e397413d852472d51e788' ARCHIVE_BASE_DIG1_HUMBLE_0_SIZE='77000' ARCHIVE_BASE_DIG1_HUMBLE_0_VERSION='1.10-humble140220' ARCHIVE_BASE_DIG1_HUMBLE_0_URL='https://www.humblebundle.com/store/steamworld-dig' ## SteamWorld Dig 2 ARCHIVE_BASE_DIG2_0_NAME='steamworld_dig_2_en_1_1_15062.sh' ARCHIVE_BASE_DIG2_0_MD5='baafa458aaef7fc9c80e076d48e754f0' ARCHIVE_BASE_DIG2_0_SIZE='220000' ARCHIVE_BASE_DIG2_0_VERSION='1.1-gog15062' ARCHIVE_BASE_DIG2_0_URL='https://www.gog.com/game/steamworld_dig' ## SteamWorld Heist ARCHIVE_BASE_HEIST_0_NAME='SteamWorldHeist.tar.gz' ARCHIVE_BASE_HEIST_0_MD5='79a499459c09d7881efeb95be7abc559' ARCHIVE_BASE_HEIST_0_VERSION='1.0-humble170131' ARCHIVE_BASE_HEIST_0_SIZE='200000' ARCHIVE_BASE_HEIST_0_URL='https://www.humblebundle.com/store/steamworld-heist' ## SteamWorld Quest ARCHIVE_BASE_QUEST_0_NAME='steamworld_quest_hand_of_gilgamech_2_1_31741.sh' ARCHIVE_BASE_QUEST_0_MD5='cffa9b745ef4ca37123b5928c37effe0' ARCHIVE_BASE_QUEST_0_SIZE='1200000' ARCHIVE_BASE_QUEST_0_VERSION='2.1-gog31741' ARCHIVE_BASE_QUEST_0_URL='https://www.gog.com/game/steamworld_quest_hand_of_gilgamech' # Archives content CONTENT_GAME_DATA_FILES=' icon.bmp icon.png Bundle BundlePC' CONTENT_DOC_DATA_FILES=' Licenses readme.txt' ## SteamWorld Dig 1 CONTENT_PATH_DEFAULT_DIG1_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_DIG1_HUMBLE='SteamWorldDig' CONTENT_GAME_BIN_FILES_DIG1=' SteamWorldDig' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_DIG2='data/noarch/game' CONTENT_GAME_BIN_FILES_DIG2=' Dig2' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_HEIST='SteamWorldHeist' CONTENT_GAME_BIN_FILES_HEIST=' Heist' ## SteamWorld Dig 2 CONTENT_PATH_DEFAULT_QUEST='data/noarch/game' CONTENT_GAME_BIN_FILES_QUEST=' Quest' APP_MAIN_ICON='icon.png' APP_MAIN_EXE_DIG1='SteamWorldDig' APP_MAIN_EXE_DIG2='Dig2' APP_MAIN_EXE_HEIST='Heist' APP_MAIN_EXE_QUEST='Quest' ## The game crashes on launch when SDL_VIDEODRIVER is set to "wayland" ## TODO: Check if all supported games are affected APP_MAIN_PRERUN=' # The game crashes on launch when SDL_VIDEODRIVER is set to "wayland" if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' # Packages PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_DESCRIPTION='data' ## SteamWorld Dig 1 PKG_BIN_ARCH_DIG1='32' PKG_BIN_DEPENDENCIES_LIBRARIES_DIG1=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID_DIG1="${GAME_ID_DIG1}-data" ## SteamWorld Dig 2 PKG_BIN_ARCH_DIG2='64' PKG_BIN_DEPENDENCIES_LIBRARIES_DIG2=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID_DIG2="${GAME_ID_DIG2}-data" ## SteamWorld Heist PKG_BIN_ARCH_HEIST='32' PKG_BIN_DEPENDENCIES_LIBRARIES_HEIST=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6' PKG_DATA_ID_HEIST="${GAME_ID_HEIST}-data" ## SteamWorld Quest PKG_BIN_ARCH_QUEST='64' PKG_BIN_DEPENDENCIES_LIBRARIES_QUEST=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID_QUEST="${GAME_ID_QUEST}-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-steel-rats.sh0000750000000000000000000000404014471751340014234 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-sticky-business.sh0000750000000000000000000000352314471751340015315 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Sticky Business # send your bug reports to bugs@dotslashplay.it ### script_version=20240315.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='sticky-business' GAME_NAME='Sticky Business' ARCHIVE_BASE_0_NAME='setup_sticky_business_2023.2084_(64bit)_(69872).exe' ARCHIVE_BASE_0_MD5='9d32598a90429c8464f6e44fd721ef46' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='193345' ARCHIVE_BASE_0_VERSION='2023.2084-gog69872' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sticky_business' UNITY3D_NAME='stickybusiness' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Spellgarden Games/Sticky Business' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-stories-the-path-of-destinies.sh0000750000000000000000000000524614471751340017751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Stories: The Path of Destinies # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='stories-the-path-of-destinies' GAME_NAME='Stories: The Path of Destinies' ARCHIVE_BASE_1_NAME='setup_stories_the_path_of_destinies_update_4_(25956).exe' ARCHIVE_BASE_1_MD5='61f632db33297ca2b178d4383545732c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_VERSION='1.0-gog25956' ARCHIVE_BASE_1_SIZE='2000000' ARCHIVE_BASE_1_URL='https://www.gog.com/game/stories_the_path_of_destinies' ARCHIVE_BASE_0_NAME='setup_stories_-_the_path_of_destinies_0.0.13825_(16929).exe' ARCHIVE_BASE_0_MD5='6f81dbadddbb4b30b4edda9ced9ddef8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='0.0.13825-gog16929' ARCHIVE_BASE_0_SIZE='1700000' UNREALENGINE4_NAME='stories' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME0_BIN_FILES=' language_setup.exe language_setup.ini' CONTENT_GAME0_DATA_FILES=' language_setup.png' APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}.exe" ## The --name=101 wrestool option, default for UE4 games, should not be used here APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14' ## TODO: Check if the shipped language selector could be dropped APP_LANGUAGE_ID="${GAME_ID}-language-selector" APP_LANGUAGE_NAME="$GAME_NAME - Language Selector" APP_LANGUAGE_CAT='Settings' APP_LANGUAGE_EXE='language_setup.exe' APP_LANGUAGE_ICON='language_setup.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-strafe.sh0000750000000000000000000000476114471751340013447 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Strafe # send your bug reports to bugs@dotslashplay.it ### script_version=20221210.2 GAME_ID='strafe' GAME_NAME='Strafe' UNITY3D_NAME='STRAFE' ARCHIVE_BASE_1='strafe_gold_edition_1_4_38941.sh' ARCHIVE_BASE_1_MD5='f7e0bd39d0c6527f4205ec9d095de936' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='3000000' ARCHIVE_BASE_1_VERSION='1.4-gog38941' ARCHIVE_BASE_1_URL='https://www.gog.com/game/strafe' ARCHIVE_BASE_0='strafe_en_1_2_update_25_04_2018_20318.sh' ARCHIVE_BASE_0_MD5='3726412cdf951f5d4278a0a557a70db6' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='3000000' ARCHIVE_BASE_0_VERSION='1.2.180425-gog20318' ARCHIVE_BASE_0_URL='https://www.gog.com/game/strafe' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-strike-suit-zero.sh0000750000000000000000000000543614471751340015423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Strike Suit Zero # send your bug reports to bugs@dotslashplay.it ### script_version=20250311.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='strike-suit-zero' GAME_NAME='Strike Suit Zero' ARCHIVE_BASE_0_NAME='StrikeSuitZero_linux_1389211698.zip' ARCHIVE_BASE_0_MD5='94b1c2907ae61deb27eb77fee3fb9c19' ARCHIVE_BASE_0_SIZE='2400000' ARCHIVE_BASE_0_VERSION='1.0-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/strike-suit-zero' ARCHIVE_OPTIONAL_ICONS_NAME='strike-suit-zero_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_MD5='3fe8bbad7ecca5c0e3afdbbfedb8945d' ARCHIVE_OPTIONAL_ICONS_URL='https://downloads.dotslashplay.it/games/strike-suit-zero/' CONTENT_ICONS_PATH='.' CONTENT_ICONS_FILES=' 16x16 32x32 48x48' CONTENT_PATH_DEFAULT='.' CONTENT_LIBS_BIN_RELATIVE_PATH='linux/main/binary' CONTENT_LIBS_BIN_FILES=' libfmodevent.so libfmodeventnet.so libfmodex.so libfmodex-4.44.12.so' CONTENT_GAME_BIN_FILES=' linux/main/binary/StrikeSuitZero' CONTENT_GAME_DATA_FILES=' linux/main/art linux/main/audio linux/main/fonts linux/main/gui linux/main/level linux/main/levels linux/main/localisation linux/main/particles linux/main/scripts linux/main/shaders linux/main/system linux/main/textures linux/main/video linux/main/index.toc linux/main/index.toc.txt' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='linux/main/binary/StrikeSuitZero' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 libSDL2-2.0.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not 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 linux/main/binary ./StrikeSuitZero "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-summer-in-mara.sh0000750000000000000000000000370414471751340015011 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Summer in Mara # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='summer-in-mara' GAME_NAME='Summer in Mara' ARCHIVE_BASE_0_NAME='setup_summer_in_mara_1.9_(39424).exe' ARCHIVE_BASE_0_MD5='d3fc24a65ff2adf8c42bb6fda639dc17' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.07-gog39424' ARCHIVE_BASE_0_URL='https://www.gog.com/game/summer_in_mara' UNITY3D_NAME='summer in mara' CONTENT_PATH_DEFAULT='.' ## The game works with the default wined3d renderer, ## but performances are poor. WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Chibig/Summer in Mara' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sunblaze.sh0000750000000000000000000000345614471751340014006 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=20230929.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunblaze' GAME_NAME='Sunblaze' ARCHIVE_BASE_0_NAME='setup_sunblaze_1.1.2.016_(64bit)_(48132).exe' ARCHIVE_BASE_0_MD5='85389b46e533fad6ec46188e17688798' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='300000' ARCHIVE_BASE_0_VERSION='1.1.2.016-gog48132' ARCHIVE_BASE_0_URL='https://www.gog.com/game/sunblaze' UNITY3D_NAME='sunblaze' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Games From Earth/Sunblaze' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-sundered.sh0000750000000000000000000000511614471751340013767 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-sunlight.sh0000750000000000000000000000331714471751340014014 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Sunlight # send your bug reports to bugs@dotslashplay.it ### script_version=20231006.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='sunlight' GAME_NAME='Sunlight' ARCHIVE_BASE_0_NAME='Sunlight v1.1.5RC 211801 Windows.zip' ARCHIVE_BASE_0_MD5='fbe2840776c841d4582f40e68acfe8aa' ARCHIVE_BASE_0_SIZE='980000' ARCHIVE_BASE_0_VERSION='1.1.5RC.211801-itch1' ARCHIVE_BASE_0_URL='https://krillbitestudio.itch.io/sunlight' UNITY3D_NAME='Sunlight' CONTENT_PATH_DEFAULT='Sunlight v1.1.5RC 211801 Windows' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-super-meat-boy.sh0000750000000000000000000000647014471751340015033 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=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='super-meat-boy' GAME_NAME='Super Meat Boy' ARCHIVE_BASE_0_NAME='supermeatboy-linux-11112013-bin' ARCHIVE_BASE_0_MD5='fc024d757395eebfdee342571671332b' ## This archive is a MojoSetup installer that is not using Makeself ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='250899' ARCHIVE_BASE_0_VERSION='1.0-humble131111' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/super-meat-boy' CONTENT_PATH_DEFAULT='data' CONTENT_GAME_BIN64_FILES=' amd64/SuperMeatBoy' ## TODO: The shipped libraries should be installed in the system libraries path ## TODO: Check if some shipped libraries can be dropped CONTENT_GAME0_BIN64_FILES=' amd64/libmariadb.so.1 amd64/libopenal.so.1 amd64/libSDL2-2.0.so.0' ## TODO: Check if the Steam library is required CONTENT_GAME1_BIN64_FILES=' amd64/libsteam_api.so' CONTENT_GAME_BIN32_FILES=' x86/SuperMeatBoy' ## TODO: The shipped libraries should be installed in the system libraries path ## TODO: Check if some shipped libraries can be dropped CONTENT_GAME0_BIN32_FILES=' x86/libmariadb.so.1 x86/libopenal.so.1 x86/libSDL2-2.0.so.0' ## TODO: Check if the Steam library is required CONTENT_GAME1_BIN32_FILES=' x86/libsteam_api.so' CONTENT_GAME_DATA_FILES=' Levels resources buttonmap.cfg gameaudio.dat gamedata.dat supermeatboy.png locdb.txt' ## TODO: Check if the Steam metadata is required CONTENT_GAME0_DATA_FILES=' steam_appid.txt' CONTENT_DOC_DATA_FILES=' README-licenses.txt README-linux.txt' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE_BIN32='x86/SuperMeatBoy' APP_MAIN_EXE_BIN64='amd64/SuperMeatBoy' APP_MAIN_ICON='supermeatboy.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-supercow.sh0000750000000000000000000000352014471751340014022 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-superhot.sh0000750000000000000000000000465414471751340014035 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Superhot # send your bug reports to bugs@dotslashplay.it ### script_version=20231104.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='superhot' GAME_NAME='Superhot' ARCHIVE_BASE_GOG_0_NAME='superhot_1_0_14_33249.sh' ARCHIVE_BASE_GOG_0_MD5='0cae1298bc41354a7d34d2211d6b07f2' ARCHIVE_BASE_GOG_0_SIZE='4100000' ARCHIVE_BASE_GOG_0_VERSION='1.0.14-gog33249' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/superhot' ## This DRM-free build is no longer available for sale from humblebundle.com, they only sell Steam keys. ARCHIVE_BASE_HUMBLE_0_NAME='SUPERHOT_LINUX.zip' ARCHIVE_BASE_HUMBLE_0_MD5='bbbbae191504b00cfb4a9509175014c2' ARCHIVE_BASE_HUMBLE_0_SIZE='4300000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' UNITY3D_NAME='SUPERHOT' ## TODO: Check if the Steam libraries can be dropped. UNITY3D_PLUGINS=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='SUPERHOT' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-symphonia.sh0000750000000000000000000000342414471751340014165 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-symphony.sh0000750000000000000000000000561114471751340014044 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Symphony # send your bug reports to bugs@dotslashplay.it ### script_version=20241111.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='symphony' GAME_NAME='Symphony' ## This installer used to be available for free from Humble Bundle, ## during some time-limited event. ARCHIVE_BASE_0_NAME='Symphony-Linux-2014-07-15.sh' ARCHIVE_BASE_0_MD5='9218c0b803baf90c34bed2ac1501efa6' ARCHIVE_BASE_0_SIZE='405705' ARCHIVE_BASE_0_VERSION='2014.07.15-humble1' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_FILES=' libfmodex-4.44.20.so' CONTENT_LIBS_BIN64_RELATIVE_PATH='x86_64/lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='x86/lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_RELATIVE_PATH='x86_64' CONTENT_GAME_BIN64_FILES=' Symphony.bin.x86_64' CONTENT_GAME_BIN32_RELATIVE_PATH='x86' CONTENT_GAME_BIN32_FILES=' Symphony.bin.x86' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' Symphony.png Symphony soundtrack *.mdf *.mtc' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' README.linux' APP_MAIN_EXE_BIN64='Symphony.bin.x86_64' APP_MAIN_EXE_BIN32='Symphony.bin.x86' APP_MAIN_ICON='noarch/Symphony.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-system-shock-2.sh0000750000000000000000000000706714471751340014755 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # System Shock 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20240522.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='system-shock-2' GAME_NAME='System Shock 2' ARCHIVE_BASE_2_NAME='setup_system_shocktm_2_2.48_(31077).exe' ARCHIVE_BASE_2_MD5='b8bbec00aef894db6641e46a0446cbb2' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_SIZE='660000' ARCHIVE_BASE_2_VERSION='2.48-gog31077' ARCHIVE_BASE_2_URL='https://www.gog.com/game/system_shock_2' ARCHIVE_BASE_1_NAME='setup_system_shock_2_2.47_nd_(22087).exe' ARCHIVE_BASE_1_MD5='cc2ff390b566364447dc5bd05757fe57' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='670000' ARCHIVE_BASE_1_VERSION='2.47-gog22087' ARCHIVE_BASE_0_NAME='setup_system_shock_2_2.46_update_3_(19935).exe' ARCHIVE_BASE_0_MD5='cdafcdea01556eccab899f94503843df' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='670000' ARCHIVE_BASE_0_VERSION='2.46.3-gog19935' ARCHIVE_BASE_OLDPATH_2_NAME='setup_system_shock_2_2.46_update_2_(18733).exe' ARCHIVE_BASE_OLDPATH_2_MD5='39fab64451ace95966988bb90c7bb17e' ARCHIVE_BASE_OLDPATH_2_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_2_SIZE='680000' ARCHIVE_BASE_OLDPATH_2_VERSION='2.46.2-gog18733' ARCHIVE_BASE_OLDPATH_1_NAME='setup_system_shock_2_2.46_update_(18248).exe' ARCHIVE_BASE_OLDPATH_1_MD5='b76803e4a632b58527eada8993999143' ARCHIVE_BASE_OLDPATH_1_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_1_SIZE='690000' ARCHIVE_BASE_OLDPATH_1_VERSION='2.46.1-gog18248' ARCHIVE_BASE_OLDPATH_0_NAME='setup_system_shock_2_2.46_nd_(11004).exe' ARCHIVE_BASE_OLDPATH_0_MD5='98c3d01d53bb2b0dc25d7ed7093a67d3' ARCHIVE_BASE_OLDPATH_0_TYPE='innosetup' ARCHIVE_BASE_OLDPATH_0_SIZE='680000' ARCHIVE_BASE_OLDPATH_0_VERSION='2.46-gog11004' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_OLDPATH='app' CONTENT_GAME_BIN_FILES=' *.ax *.bnd *.cfg *.crt *.dll *.exe *.osm */*.cfg */*.dll */*.exe' CONTENT_GAME_DATA_FILES=' *.bin *.dif *.dml ilist.* patch* binds data sq_scripts' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" CONTENT_GAME0_BIN_PATH_OLDPATH="${CONTENT_PATH_DEFAULT_OLDPATH}/__support/app" CONTENT_GAME0_BIN_FILES=' *.cfg *.ini' CONTENT_DOC_DATA_FILES=' *.pdf *.txt *.wri doc editor/*.txt' USER_PERSISTENT_DIRECTORIES=' current save_0 save_1 save_2 save_3 save_4 save_5 save_6 save_7 save_8 save_9 save_10 save_11 save_12 save_13 save_14' USER_PERSISTENT_FILES=' *.log *.bnd *.cfg *.ini' WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='ss2.exe' APP_MAIN_EXE_0='shock2.exe' APP_MAIN_EXE_OLDPATH='shock2.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tag-the-power-of-paint.sh0000750000000000000000000000420714471751340016354 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=20231110.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='tag-the-power-of-paint' GAME_NAME='Tag: The Power of Paint' ARCHIVE_BASE_0_NAME='Tag_setup.exe' ARCHIVE_BASE_0_MD5='e46933ffbdc3fdf0816b3ebdd6c326d5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='80000' ARCHIVE_BASE_0_VERSION='1.0-digipen' ARCHIVE_BASE_0_URL='https://arcade.digipen.edu/games/tag-the-power-of-paint' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' fmodex.dll tag.exe' CONTENT_GAME_DATA_FILES=' assets game data' USER_PERSISTENT_FILES=' game data/*.ini game data/*.xml' ## Native d3dx9_35.dll is required to prevent a crash on launch with WINE 8.0: ## Unhandled exception: unimplemented function d3dx9_35.dll.D3DXComputeTangent called in 32-bit code (0x7b012866). WINE_WINETRICKS_VERBS='d3dx9_35' APP_MAIN_EXE='tag.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tales-of-the-neon-sea.sh0000750000000000000000000000362014471751340016147 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Tales of the Neon Sea # send your bug reports to bugs@dotslashplay.it ### script_version=20240701.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tales-of-the-neon-sea' GAME_NAME='Tales of the Neon Sea' ARCHIVE_BASE_0_NAME='setup_tales_of_the_neon_sea_1.0.85_(45944).exe' ARCHIVE_BASE_0_MD5='4b6f06e51f664378db816ba2b1cf01cc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_VERSION='1.0.85-gog45944' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tales_of_the_neon_sea' UNITY3D_NAME='talesoftheneonsea' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/palmpioneer/TalesoftheNeonSea' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\palmpioneer\TalesoftheNeonSea' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tandem-a-tale-of-shadows.sh0000750000000000000000000000355314471751340016642 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-tangledeep.sh0000750000000000000000000000664614471751340014277 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Tangledeep # send your bug reports to bugs@dotslashplay.it ### script_version=20241218.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='tangledeep' GAME_NAME='Tangledeep' ARCHIVE_BASE_0_NAME='Tangledeep_153a_LinuxUniversal.zip' ARCHIVE_BASE_0_MD5='b278678eeb55e55a73df389213afdeeb' ARCHIVE_BASE_0_SIZE='1194135' ARCHIVE_BASE_0_VERSION='1.53a-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/tangledeep' ARCHIVE_BASE_MULTIARCH_1_NAME='Tangledeep_124k_LinuxUniversal.zip' ARCHIVE_BASE_MULTIARCH_1_MD5='b708a12e20816dba8e863290dc5580d0' ARCHIVE_BASE_MULTIARCH_1_SIZE='730000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.24k-humble190410' ARCHIVE_BASE_MULTIARCH_0_NAME='tangledeep_linux.zip' ARCHIVE_BASE_MULTIARCH_0_MD5='ce38aaab0bf4838697fd1f76e30722f1' ARCHIVE_BASE_MULTIARCH_0_SIZE='690000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.23e-humble1' UNITY3D_NAME='Tangledeep' UNITY3D_PLUGINS_MULTIARCH=' ScreenSelector.so' CONTENT_PATH_DEFAULT='linuxuniversal' CONTENT_PATH_DEFAULT_MULTIARCH_0='tangledeep_123e_linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PACKAGES_LIST_MULTIARCH=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_BIN32_DEPENDENCIES_LIBRARIES_MULTIARCH="$PKG_BIN_DEPENDENCIES_LIBRARIES_MULTIARCH" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of Steam libraries case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) # These archives already have an explicit list of plugins to include. ;; (*) rm --recursive "$(unity3d_name)_Data/Plugins" ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers case "$(current_archive)" in ('ARCHIVE_BASE_MULTIARCH_'*) launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' ;; (*) launchers_generation 'PKG_BIN' ;; esac # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tengami.sh0000750000000000000000000000413214471751340013577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tengami # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='tengami' GAME_NAME='Tengami' ## This game archive is no longer distributed, ## since Playism store closed down in favour of Steam. ARCHIVE_BASE_0_NAME='Tengami Win0113.zip' ARCHIVE_BASE_0_MD5='956f8bff6b8bdef8702e994dea23b8dc' ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0113-playism' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' glew32.DLL SDL2.dll Tengami.exe' CONTENT_GAME_DATA_FILES=' Binary' USER_PERSISTENT_DIRECTORIES=' Save' APP_MAIN_EXE='Tengami.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Use persistent storage for user data # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/Tengami Win/Tengami_Game_Win20150113.exe" ## Do not convert file paths to lowercase. ARCHIVE_INNER_EXTRACTOR='innoextract' ARCHIVE_INNER_EXTRACTOR_OPTIONS=' ' archive_extraction 'ARCHIVE_INNER' rm --force "$(archive_path 'ARCHIVE_INNER')" # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-terraria.sh0000750000000000000000000001154014471751340013765 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Terraria # send your bug reports to bugs@dotslashplay.it ### script_version=20240831.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='terraria' GAME_NAME='Terraria' ARCHIVE_BASE_4_NAME='terraria_v1_4_3_6_v2_54359.sh' ARCHIVE_BASE_4_MD5='da991dc72abb5763f148dacb543d65ca' ARCHIVE_BASE_4_SIZE='740000' ARCHIVE_BASE_4_VERSION='1.4.3.6.v2-gog54359' ARCHIVE_BASE_4_URL='https://www.gog.com/game/terraria' ARCHIVE_BASE_3_NAME='terraria_v1_4_3_2_51716.sh' ARCHIVE_BASE_3_MD5='fcc729577dd6a4b9ed2429c624cc6562' ARCHIVE_BASE_3_SIZE='740000' ARCHIVE_BASE_3_VERSION='1.4.3.2-gog51716' ARCHIVE_BASE_2_NAME='terraria_english_v1_4_1_2_42620.sh' ARCHIVE_BASE_2_MD5='c84d418147004790d97f47c36a1987ba' ARCHIVE_BASE_2_SIZE='730000' ARCHIVE_BASE_2_VERSION='1.4.1.2-gog42620' ARCHIVE_BASE_1_NAME='terraria_v1_4_1_1_41975.sh' ARCHIVE_BASE_1_MD5='e0158c754f9a7259d28f1cd3c1e1c747' ARCHIVE_BASE_1_SIZE='720000' ARCHIVE_BASE_1_VERSION='1.4.1.1-gog41975' ARCHIVE_BASE_0_NAME='terraria_v1_4_1_0_41944.sh' ARCHIVE_BASE_0_MD5='6d8fd3976503695205e80ba10e8249de' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.4.1.0-gog41944' ARCHIVE_BASE_MULTIARCH_4_NAME='terraria_v1_4_0_5_38805.sh' ARCHIVE_BASE_MULTIARCH_4_MD5='88940054c5d5a5f556f0bd955559426a' ARCHIVE_BASE_MULTIARCH_4_SIZE='760000' ARCHIVE_BASE_MULTIARCH_4_VERSION='1.4.0.5-gog38805' ARCHIVE_BASE_MULTIARCH_3_NAME='terraria_1_4_0_4_38513.sh' ARCHIVE_BASE_MULTIARCH_3_MD5='5704d188ab8374f0a36e86bad8adb5a1' ARCHIVE_BASE_MULTIARCH_3_SIZE='760000' ARCHIVE_BASE_MULTIARCH_3_VERSION='1.4.0.4-gog38513' ARCHIVE_BASE_MULTIARCH_2_NAME='terraria_v1_4_0_2_38384.sh' ARCHIVE_BASE_MULTIARCH_2_MD5='85d3ddcbafdef8412e4f96f3adbc2ed9' ARCHIVE_BASE_MULTIARCH_2_SIZE='760000' ARCHIVE_BASE_MULTIARCH_2_VERSION='1.4.0.2-gog38384' ARCHIVE_BASE_MULTIARCH_1_NAME='terraria_en_1_3_5_3_14602.sh' ARCHIVE_BASE_MULTIARCH_1_MD5='c99fdc0ae15dbff1e8147b550db4e31a' ARCHIVE_BASE_MULTIARCH_1_SIZE='490000' ARCHIVE_BASE_MULTIARCH_1_VERSION='1.3.5.3-gog14602' ARCHIVE_BASE_MULTIARCH_0_NAME='gog_terraria_2.17.0.21.sh' ARCHIVE_BASE_MULTIARCH_0_MD5='90ec196ec38a7f7a5002f5a8109493cc' ARCHIVE_BASE_MULTIARCH_0_SIZE='490000' ARCHIVE_BASE_MULTIARCH_0_VERSION='1.3.5.3-gog2.17.0.21' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_FILES=' libFNA3D.so.0 libmojoshader.so' CONTENT_LIBS_LIBS32_PATH="${CONTENT_PATH_DEFAULT}/lib" CONTENT_LIBS_LIBS32_FILES="$CONTENT_LIBS_FILES" CONTENT_LIBS_LIBS64_PATH="${CONTENT_PATH_DEFAULT}/lib64" CONTENT_LIBS_LIBS64_FILES="$CONTENT_LIBS_FILES" CONTENT_GAME_MAIN_FILES=' Content Terraria.png monoconfig monomachineconfig open-folder Terraria.exe TerrariaServer.exe FNA.dll FNA.dll.config SteelSeriesEngineWrapper.dll' CONTENT_DOC_MAIN_FILES=' changelog.txt' APP_MAIN_EXE='Terraria.exe' APP_MAIN_ICON='Terraria.png' APP_SERVER_ID="$GAME_ID-server" APP_SERVER_NAME="$GAME_NAME Server" APP_SERVER_EXE='TerrariaServer.exe' APP_SERVER_ICON='Terraria.png' PACKAGES_LIST=' PKG_MAIN PKG_LIBS64 PKG_LIBS32' PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_LIBS' PKG_MAIN_DEPENDENCIES_LIBRARIES=' libFAudio.so.0 libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_LIBRARIES_MULTIARCH=' libGL.so.1 libopenal.so.1 libSDL2-2.0.so.0' PKG_MAIN_DEPENDENCIES_MONO_LIBRARIES=' mscorlib.dll Mono.Posix.dll Mono.Security.dll System.dll System.Configuration.dll System.Core.dll System.Data.dll System.Drawing.dll System.Numerics.dll System.Runtime.Serialization.dll System.Security.dll System.Windows.Forms.dll System.Xml.dll System.Xml.Linq.dll WindowsBase.dll' PKG_LIBS_ID="${GAME_ID}-libs" PKG_LIBS64_ID="$PKG_LIBS_ID" PKG_LIBS32_ID="$PKG_LIBS_ID" PKG_LIBS_DESCRIPTION='Shipped libraries' PKG_LIBS64_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS32_DESCRIPTION="$PKG_LIBS_DESCRIPTION" PKG_LIBS64_ARCH='64' PKG_LIBS32_ARCH='32' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation ## Always run the server in a terminal server_desktop_file=$(launcher_desktop_filepath 'PKG_MAIN' 'APP_SERVER') cat >> "$server_desktop_file" << EOF Terminal=true EOF # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-teslagrad.sh0000750000000000000000000000462114471751340014124 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-7th-guest.sh0000750000000000000000000000346314471751340014566 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Anna Lea # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The 7th Guest # send your bug reports to bugs@dotslashplay.it ### script_version=20240619.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-7th-guest' GAME_NAME='The 7th Guest' ARCHIVE_BASE_0_NAME='the_7th_guest_en_patch_3_21683.sh' ARCHIVE_BASE_0_MD5='eb2cd92e06e0594297e1d38e3552df6d' ARCHIVE_BASE_0_SIZE='780000' ARCHIVE_BASE_0_VERSION='1.3-gog21683' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_7th_guest_25th_anniversary_edition' CONTENT_PATH_DEFAULT='data/noarch/data' CONTENT_GAME_MAIN_FILES=' sphinx.fnt fat.* *.gjd *.grv *.rl' CONTENT_DOC_MAIN_PATH='data/noarch/docs' CONTENT_DOC_MAIN_FILES=' *.pdf *.txt' APP_MAIN_SCUMMID='groovie:t7g' APP_MAIN_ICON='../support/icon.png' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. tolower . ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-adventures-of-shuggy.sh0000750000000000000000000000625014471751340017022 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-aquatic-adventure-of-the-last-human.sh0000750000000000000000000000535514471751340021612 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # The Aquatic Adventure of the Last Human # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-aquatic-adventure-of-the-last-human' GAME_NAME='The Aquatic Adventure of the Last Human' ARCHIVE_BASE_0='The Aquatic Adventure of the Last Human.zip' ARCHIVE_BASE_0_MD5='4699f7e0abfde9ded6addc432226b36f' ARCHIVE_BASE_0_EXTRACTOR='unar' # unzip fails on this archive ARCHIVE_BASE_0_SIZE='830000' ARCHIVE_BASE_0_VERSION='0.9.1-itch1' ARCHIVE_BASE_0_URL='https://ycjy.itch.io/aquaticadventure' CONTENT_PATH_DEFAULT='linux' CONTENT_GAME_BIN_FILES=' TheAquaticAdventureOfTheLastHuman game.ini' CONTENT_GAME_DATA_FILES=' assets game.unx' CONTENT_DOC_DATA_FILES=' sound?credits.txt' APP_MAIN_EXE='TheAquaticAdventureOfTheLastHuman' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default rm "${PLAYIT_WORKDIR}/gamedata/mac.rar" rm "${PLAYIT_WORKDIR}/gamedata/windows.rar" ARCHIVE_INNER="${PLAYIT_WORKDIR}/gamedata/linux.rar" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER" # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-bards-tale-4.sh0000750000000000000000000001413414471751340015113 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Bard's Tale 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20231110.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-bards-tale-4' GAME_NAME='The Bardʼs Tale Ⅳ' ARCHIVE_BASE_0_NAME='the_bard_s_tale_iv_director_s_cut_update_3_34066.sh' ARCHIVE_BASE_0_MD5='695a04c36fe4a5ff2a53b93062151047' ARCHIVE_BASE_0_SIZE='39000000' ARCHIVE_BASE_0_VERSION='4.20.1-gog34066' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_bards_tale_iv_directors_cut_standard_edition' UNREALENGINE4_NAME='BardsTale4' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_MOVIES_1_FILES=' BardsTale4/Content/Movies/*.mp3 BardsTale4/Content/Movies/*.mp4 BardsTale4/Content/Movies/*.wav BardsTale4/Content/Movies/Epilogue_Credits BardsTale4/Content/Movies/PoMMovies' CONTENT_GAME_DATA_MOVIES_2_FILES=' BardsTale4/Content/Movies/Anamatics BardsTale4/Content/Movies/BardIV_FireLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_InxileLogo_Img_Sequence BardsTale4/Content/Movies/BardIV_LegalScreen_Img_Sequence BardsTale4/Content/Movies/Opening_Img_Sequence BardsTale4/Content/Movies/SpecialFeatures' CONTENT_GAME_DATA_PAKS_1_FILES=' BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk0-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk1-LinuxNoEditor.pak' CONTENT_GAME_DATA_PAKS_2_FILES=' BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split00 BardsTale4/Content/Paks/pakchunk2-LinuxNoEditor.pak.split01 BardsTale4/Content/Paks/pakchunk50-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk60-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk70-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk80-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk90-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk100-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk110-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk120-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk130-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk140-LinuxNoEditor.pak BardsTale4/Content/Paks/pakchunk150-LinuxNoEditor.pak' APP_MAIN_EXE="${UNREALENGINE4_NAME}/Binaries/Linux/${UNREALENGINE4_NAME}-Linux-Shipping" ## The following hacks can not be avoided by forcing the use of system-provided SDL, ## because the game crashes on launch when it is used instead of the shipped SDL build. ### The game crashes on launch when the Wayland backend of SDL is used. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game crashes on launch when the Wayland backend of SDL is used if [ "${SDL_VIDEODRIVER:-}" = "wayland" ]; then unset SDL_VIDEODRIVER fi ' ### It seems that the shipped SDL build does not support the alsa backend. ### When it is used, no error is triggered but no sound is played either. APP_MAIN_PRERUN="${APP_MAIN_PRERUN:-}"' # The game does not output any sound when the ALSA backend of SDL is used if [ "${SDL_AUDIODRIVER:-}" = "alsa" ]; then unset SDL_AUDIODRIVER fi ' PACKAGES_LIST=' PKG_BIN PKG_DATA_MOVIES_1 PKG_DATA_MOVIES_2 PKG_DATA_PAKS_1 PKG_DATA_PAKS_2 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_MOVIES_ID="${PKG_DATA_ID}-movies" PKG_DATA_MOVIES_1_ID="${PKG_DATA_MOVIES_ID}-1" PKG_DATA_MOVIES_2_ID="${PKG_DATA_MOVIES_ID}-2" PKG_DATA_MOVIES_DESCRIPTION="$PKG_DATA_DESCRIPTION - movies" PKG_DATA_MOVIES_1_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 1" PKG_DATA_MOVIES_2_DESCRIPTION="$PKG_DATA_MOVIES_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_MOVIES_1_ID $PKG_DATA_MOVIES_2_ID" PKG_DATA_PAKS_ID="${PKG_DATA_ID}-paks" PKG_DATA_PAKS_1_ID="${PKG_DATA_PAKS_ID}-1" PKG_DATA_PAKS_2_ID="${PKG_DATA_PAKS_ID}-2" PKG_DATA_PAKS_DESCRIPTION="$PKG_DATA_DESCRIPTION - paks" PKG_DATA_PAKS_1_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 1" PKG_DATA_PAKS_2_DESCRIPTION="$PKG_DATA_PAKS_DESCRIPTION - 2" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_PAKS_1_ID $PKG_DATA_PAKS_2_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Check for the presence of extra optional archives ARCHIVE_OPTIONAL_ICONS_0_NAME='the-bards-tale-4_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-bards-tale-4' ARCHIVE_OPTIONAL_ICONS_0_MD5='aede8ef2c559ecf8e69e1f5ffef7432d' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS_0' # Set the package scripts rebuilding the full files from their chunks for huge_file in \ "$(unrealengine4_name)/Content/Paks/pakchunk0-LinuxNoEditor.pak" \ "$(unrealengine4_name)/Content/Paks/pakchunk2-LinuxNoEditor.pak" do PKG_DATA_POSTINST_RUN="$(package_postinst_actions 'PKG_DATA') $(huge_file_concatenate "$huge_file")" PKG_DATA_PRERM_RUN="$(package_prerm_actions 'PKG_DATA') $(huge_file_delete "$huge_file")" done # Extract game data archive_extraction_default if archive_is_available 'ARCHIVE_ICONS'; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data if archive_is_available 'ARCHIVE_ICONS'; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 64x64 128x128 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else APP_MAIN_ICON='../support/icon.png' set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac-expansions.sh0000750000000000000000000000726414471751340020221 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac expansions: # - Afterbirth # - Afterbirth + # - Repentance # send your bug reports to bugs@dotslashplay.it ### script_version=20230723.1 GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac' EXPANSION_ID_AFTERBIRTH='afterbirth' EXPANSION_NAME_AFTERBIRTH='Afterbirth' EXPANSION_ID_AFTERBIRTHPLUS='afterbirth-plus' EXPANSION_NAME_AFTERBIRTHPLUS='Afterbirth +' EXPANSION_ID_REPENTANCE='repentance' EXPANSION_NAME_REPENTANCE='Repentance' # Archives ## Afterbirth ARCHIVE_BASE_AFTERBIRTH_1='setup_the_binding_of_isaac_afterbirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTH_1_MD5='9cdb71b69a9b25e69df3f9dcdab2de9f' ARCHIVE_BASE_AFTERBIRTH_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_1_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTH_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth' ARCHIVE_BASE_AFTERBIRTH_0='setup_the_binding_of_isaac_afterbirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTH_0_MD5='f72a7c3d8f23627b6e4eaf1b0e71c304' ARCHIVE_BASE_AFTERBIRTH_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTH_0_SIZE='170000' ARCHIVE_BASE_AFTERBIRTH_0_VERSION='1.0.0.0-gog52089' ## Afterbirth + ARCHIVE_BASE_AFTERBIRTHPLUS_1='setup_the_binding_of_isaac_afterbirth__1.0.1.0_(54718).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_1_MD5='23558f5eb97895659b5e594595aad247' ARCHIVE_BASE_AFTERBIRTHPLUS_1_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_1_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_AFTERBIRTHPLUS_1_URL='https://www.gog.com/game/the_binding_of_isaac_afterbirth_plus' ARCHIVE_BASE_AFTERBIRTHPLUS_0='setup_the_binding_of_isaac_afterbirth__1.0.0.0_(52089).exe' ARCHIVE_BASE_AFTERBIRTHPLUS_0_MD5='ca0d4b261b16ffca26d7f2f723bd8031' ARCHIVE_BASE_AFTERBIRTHPLUS_0_TYPE='innosetup' ARCHIVE_BASE_AFTERBIRTHPLUS_0_SIZE='110000' ARCHIVE_BASE_AFTERBIRTHPLUS_0_VERSION='1.0.0.0-gog52089' ## Repentance ARCHIVE_BASE_REPENTANCE_1='setup_the_binding_of_isaac_repentance_1.0.1.0_(54718).exe' ARCHIVE_BASE_REPENTANCE_1_MD5='b8eeaeb46b3b2ddb5aa6e04729d8085e' ARCHIVE_BASE_REPENTANCE_1_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_1_SIZE='490000' ARCHIVE_BASE_REPENTANCE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_REPENTANCE_1_URL='https://www.gog.com/game/the_binding_of_isaac_repentance' ARCHIVE_BASE_REPENTANCE_0='setup_the_binding_of_isaac_repentance_1.0.0.0_(52089).exe' ARCHIVE_BASE_REPENTANCE_0_MD5='b569c8fce392e5ec1083e5418d9a36d0' ARCHIVE_BASE_REPENTANCE_0_TYPE='innosetup' ARCHIVE_BASE_REPENTANCE_0_SIZE='440000' ARCHIVE_BASE_REPENTANCE_0_VERSION='1.0.0.0-gog52089' CONTENT_GAME_MAIN_PATH='.' CONTENT_GAME_MAIN_FILES=' resources' PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-binding-of-isaac.sh0000750000000000000000000000543214471751340016027 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 HS-157 # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Binding of Isaac # send your bug reports to bugs@dotslashplay.it ### script_version=20241106.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-binding-of-isaac' GAME_NAME='The Binding of Isaac: Rebirth' ARCHIVE_BASE_1_NAME='setup_the_binding_of_isaac_rebirth_1.0.1.0_(54718).exe' ARCHIVE_BASE_1_MD5='2e30949d6bc26c25692403daec6de446' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='380000' ARCHIVE_BASE_1_VERSION='1.0.1.0-gog54718' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_binding_of_isaac_rebirth' ARCHIVE_BASE_0_NAME='setup_the_binding_of_isaac_rebirth_1.0.0.0_(52089).exe' ARCHIVE_BASE_0_MD5='b65dc20d9f6cef55fdecd39a1a59380c' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='360000' ARCHIVE_BASE_0_VERSION='1.0.0.0-gog52089' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' resources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Binding of Isaac Rebirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Afterbirth+ (Galaxy) users/${USER}/Documents/My Games/Binding of Isaac Repentance (Galaxy)' ## Install required OpenAL32.dll library WINE_WINETRICKS_VERBS='openal' APP_MAIN_EXE='isaac-ng_launcher.exe' APP_MAIN_ICON='isaac-ng_rebirth.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent the inclusion of unwanted files ## FIXME: This could be avoided by using a more targeted list of .dll files to include rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-coma-1.sh0000750000000000000000000000404714471751340014013 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Coma # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-coma-1' GAME_NAME='The Coma' ARCHIVE_BASE_0_NAME='the_coma_recut_2_1_5_gog_40905.sh' ARCHIVE_BASE_0_MD5='05d35196c4a5ca8dce3e223d364fa139' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='2.1.5-gog40905' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_coma_recut' UNITY3D_NAME='TheComaRecut' CONTENT_PATH_DEFAULT='data/noarch/game' ## FIXME: The Unity3D plugins to include should be listed with UNITY3D_PLUGINS CONTENT_GAME0_BIN_FILES=" ${UNITY3D_NAME}_Name/Plugins" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: The dependencies list should be completed PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libgtk-x11-2.0.so.0 libz.so.1 libgdk_pixbuf-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-council.sh0000750000000000000000000000604714471751340014374 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Council # send your bug reports to bugs@dotslashplay.it ### script_version=20230730.7 GAME_ID='the-council' GAME_NAME='The Council' ARCHIVE_BASE_0='setup_the_council_0.9.5.6359_(33875).exe' ARCHIVE_BASE_0_MD5='7e49e444eaf67a95698dc1929979754a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1='setup_the_council_0.9.5.6359_(33875)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8567d5d7bb55af6b5a13b57144d32342' ARCHIVE_BASE_0_PART2='setup_the_council_0.9.5.6359_(33875)-2.bin' ARCHIVE_BASE_0_PART2_MD5='2946c8da1f85f498da17661b159bfe4f' ARCHIVE_BASE_0_PART3='setup_the_council_0.9.5.6359_(33875)-3.bin' ARCHIVE_BASE_0_PART3_MD5='6d070987d39d722d3ceb1c7475f88c62' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='0.9.5.6359-gog33875' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_council' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' library crashreport.exe the council.exe *.dll' CONTENT_GAME_DATA_EPISODES_FILES=' data/packages/episode_*' CONTENT_GAME_DATA_SOUND_FILES=' data/sound' CONTENT_GAME_DATA_FILES=' defaultparameter data packagelist' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/The Council' APP_MAIN_EXE='the council.exe' PACKAGES_LIST='PKG_BIN PKG_DATA_EPISODES PKG_DATA_SOUND PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_EPISODES_ID="${PKG_DATA_ID}-episodes" PKG_DATA_EPISODES_DESCRIPTION="$PKG_DATA_DESCRIPTION - episodes" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_EPISODES_ID" PKG_DATA_SOUND_ID="${PKG_DATA_ID}-sound" PKG_DATA_SOUND_DESCRIPTION="$PKG_DATA_DESCRIPTION - sound" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_SOUND_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Prevent inclusion of unwanted files rm --recursive \ '__redist' \ 'commonappdata' \ 'tmp' ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-count-lucanor.sh0000750000000000000000000000760414471751340015531 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 Hoël Bézier set -o errexit ### # The Count Lucanor # send your bug reports to bugs@dotslashplay.it ### script_version=20250407.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-count-lucanor' GAME_NAME='The Count Lucanor' ARCHIVE_BASE_1_NAME='the_count_lucanor_1_4_23_36418.sh' ARCHIVE_BASE_1_MD5='59bdd0ee4d7525be7b5ba346ffefa5b9' ARCHIVE_BASE_1_SIZE='760000' ARCHIVE_BASE_1_VERSION='1.4.23-gog36418' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_count_lucanor' ARCHIVE_BASE_0_NAME='the_count_lucanor_1_1_4_7_23841.sh' ARCHIVE_BASE_0_MD5='5a224a28d6e1a3b894e712db056fab07' ARCHIVE_BASE_0_SIZE='720000' ARCHIVE_BASE_0_VERSION='1.1.4.7-gog23841' CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES=' libopenal.so.1 libSDL-1.2.so.0' ## TODO: Check if the dependency on libva.so.1 is actually required CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES="${CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES:-} libva.so.1" CONTENT_GAME_MAIN_ARCH='64' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_MAIN_RELATIVE_PATH='lib' CONTENT_LIBS_MAIN_FILES=' libavcodec.so.56 libavdevice.so.56 libavfilter.so.5 libavformat.so.56 libavresample.so.2 libavutil.so.54 libgluegen-rt.so libjinput-linux64.so libjoal.so libjogl_desktop.so libjogl_mobile.so libnativewindow_awt.so libnativewindow_x11.so libnewt.so libswresample.so.1 libswscale.so.3 libvpx.so.2' ## TODO: Check if the Steam libraries can be dropped CONTENT_LIBS_MAIN_FILES="${CONTENT_LIBS_MAIN_FILES:-} libsteam_api64.so libsteamworks4j64.so" CONTENT_GAME_MAIN_FILES=' res lucanor.ico lib/*.jar' USER_PERSISTENT_DIRECTORIES=' logs res/db res/level res/settings' APP_MAIN_TYPE='java' APP_MAIN_JAVA_OPTIONS='-Dfile.encoding=UTF-8 -Xmx1024m -Xms512m' APP_MAIN_EXE='lib/build-desktop.jar' APP_MAIN_ICON='lucanor.ico' ## Prevent an OpenGL-related crash on launch: ## ## com.jogamp.opengl.GLException: Profile GL2 is not available on null, but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]] ## at com.jogamp.opengl.GLProfile.get(GLProfile.java:991) ## at com.jogamp.opengl.GLProfile.get(GLProfile.java:1004) ## at eu.curvedcat.game.Main.launch(Main.java:669) ## at eu.curvedcat.game.Main.main(Main.java:611) APP_MAIN_PRERUN=' # Prevent an OpenGL-related crash on launch export MESA_GL_VERSION_OVERRIDE=2.1' # Load common functions if [ -z "$PLAYIT_LIB2" ]; then for path in \ "$PWD" \ "${XDG_DATA_HOME:="$HOME/.local/share"}/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() { PKG_MAIN_DEPENDENCIES_LIBRARIES="$CONTENT_GAME_MAIN_DEPENDENCIES_LIBRARIES" PKG_MAIN_ARCH="$CONTENT_GAME_MAIN_ARCH" } src_extract() { archive_extraction_default } src_prepare() { : } pkg_prepare() { content_inclusion_default } src_clean() { : } pkg_icons() { content_inclusion_icons } pkg_launchers() { launchers_generation } pkg_build() { packages_generation } pkg_clean() { working_directory_cleanup } pkg_instructions() { print_instructions } # Run the default initialization actions initialization_default "$@" pkg_setup src_extract src_prepare pkg_icons ## pkg_icons must be called before pkg_prepare pkg_prepare src_clean pkg_launchers pkg_build pkg_instructions pkg_clean ## pkg_clean must be called after pkg_instructions exit 0 games/play-the-deer-god.sh0000750000000000000000000000434114471751340014421 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-elder-scrolls-1-arena.sh0000750000000000000000000000553414471751340016734 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 1: Arena # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-elder-scrolls-1-arena' GAME_NAME='The Elder Scrolls: Arena' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_arena_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='53a12a1cc3955776f06fba5906cdc6fe' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='120000' ARCHIVE_BASE_1_VERSION='1.07-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0_NAME='setup_tes_arena_2.0.0.5.exe' ARCHIVE_BASE_0_MD5='ca5a894aa852f9dbb3ede787e51ec828' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.07-gog2.0.0.5' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' *.cfg *.exe *.inf *.ini *.65 *.ad *.adv *.bak *.bnk *.bsa *.cel *.cif *.clr *.col *.cpy *.dat *.flc *.gld *.img *.lgt *.lst *.me *.mif *.mnu *.ntz *.opl *.rci *.txt *.voc *.xfm cityintr citytxt extra speech' CONTENT_GAME0_MAIN_PATH='__support' CONTENT_GAME0_MAIN_PATH_0='app/__support' CONTENT_GAME0_MAIN_FILES=' save' CONTENT_DOC_MAIN_FILES=' *.pdf readme.txt' GAME_IMAGE='.' GAME_IMAGE_TYPE='cdrom' USER_PERSISTENT_DIRECTORIES=' save arena_cd' APP_MAIN_EXE='acd.exe' APP_MAIN_OPTIONS='-Ssbpdig.adv -IOS220 -IRQS7 -DMAS1 -Mgenmidi.adv -IOM330 -IRQM2 -DMAM1' APP_MAIN_ICON='app/goggame-1435828982.ico' APP_MAIN_DOSBOX_PRERUN='config -set cpu cycles=fixed 20000 d:' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' # Easier upgrade from packages generated with pre-20190302.3 scripts PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-1-arena-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-2-daggerfall.sh0000750000000000000000000000465214471751340017737 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # The Elder Scrolls 2: Daggerfall # send your bug reports to bugs@dotslashplay.it ### script_version=20240604.2 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-2-daggerfall' GAME_NAME='The Elder Scrolls II: Daggerfall' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_ii_daggerfall_1.07_(28043).exe' ARCHIVE_BASE_1_MD5='94acfb7acfe2242241d4355ada481d98' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='560000' ARCHIVE_BASE_1_VERSION='1.07.213-gog28043' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition' ARCHIVE_BASE_0='setup_tes_daggerfall_2.0.0.4.exe' ARCHIVE_BASE_0_MD5='68f1eb4f257d8da4c4eab2104770c49b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.07.213-gog2.0.0.4' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' arena2 data dagger.ico dagger.exe fall.exe fixsave.exe setup.exe fixsave.txt patched.txt test.* *.386 *.bnk *.cfg *.ini *.scr' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' pics save0 save1 save2 save3 save4 save5' USER_PERSISTENT_FILES=' *.cfg arena2/bio.dat arena2/copyfile.dat arena2/rumor.dat arena2/mapsave.sav arena2/*.DAT arena2/*.AMF' APP_MAIN_EXE='fall.exe' APP_MAIN_OPTIONS='z.cfg' APP_MAIN_ICON='dagger.ico' ## Easier upgrade from packages generated with pre-20190302.3 scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} the-elder-scrolls-2-daggerfall-data" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-elder-scrolls-5-expansions.sh0000750000000000000000000000541014471751340020032 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5 expansions: # - Anniversary Upgrade # send your bug reports to bugs@dotslashplay.it ### script_version=20240310.1 GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' EXPANSION_ID_UPGRADE='anniversary-upgrade' EXPANSION_NAME_UPGRADE='Anniversary Upgrade' # Archives ## Anniversary Upgrade ARCHIVE_BASE_UPGRADE_0='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_UPGRADE_0_MD5='6ca1eaf78efe871db75aa2e870bf6154' ARCHIVE_BASE_UPGRADE_0_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_0_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_UPGRADE_0_PART1_MD5='44910bb282008aebb5c92cd97af12413' ARCHIVE_BASE_UPGRADE_0_SIZE='4700000' ARCHIVE_BASE_UPGRADE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_UPGRADE_0_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' ARCHIVE_BASE_UPGRADE_1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_UPGRADE_1_MD5='411afce1d728f456ef0989dc866feca2' ARCHIVE_BASE_UPGRADE_1_TYPE='innosetup' ARCHIVE_BASE_UPGRADE_1_PART1='setup_the_elder_scrolls_v_skyrim_anniversary_upgrade_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_UPGRADE_1_PART1_MD5='97d7706343def94098e725f876cb1a64' ARCHIVE_BASE_UPGRADE_1_SIZE='4700000' ARCHIVE_BASE_UPGRADE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_UPGRADE_1_URL='https://www.gog.com/en/game/the_elder_scrolls_v_skyrim_anniversary_upgrade' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' data' PKG_MAIN_ID_UPGRADE="${GAME_ID}-${EXPANSION_ID_UPGRADE}" PKG_MAIN_DESCRIPTION_UPGRADE="$EXPANSION_NAME_UPGRADE" PKG_MAIN_DEPS="$GAME_ID" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Build packages write_metadata build_pkg # Clean up rm --recursive "$PLAYIT_WORKDIR" # Print instructions print_instructions exit 0 games/play-the-elder-scrolls-5.sh0000750000000000000000000001554514471751340015657 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2024 Fabien Givors set -o errexit ### # The Elder Scrolls 5: Skyrim # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-elder-scrolls-5-skyrim' GAME_NAME='The Elder Scrolls V: Skyrim' ARCHIVE_BASE_1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738).exe' ARCHIVE_BASE_1_MD5='5a73debc2115209be1abd257aa0be329' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-1.bin' ARCHIVE_BASE_1_PART1_MD5='c8d28d38dc2a58102b4553ba61026591' ARCHIVE_BASE_1_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-2.bin' ARCHIVE_BASE_1_PART2_MD5='b262b033d7e30b1d7289e36e0901193c' ARCHIVE_BASE_1_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-3.bin' ARCHIVE_BASE_1_PART3_MD5='e249eaf58788328b47b4ba452cee0339' ARCHIVE_BASE_1_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-4.bin' ARCHIVE_BASE_1_PART4_MD5='3f82c21b9db4bc45adf65389125dd643' ARCHIVE_BASE_1_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-5.bin' ARCHIVE_BASE_1_PART5_MD5='20a789f518bfc5f5654315c6770ebeea' ARCHIVE_BASE_1_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-6.bin' ARCHIVE_BASE_1_PART6_MD5='1fc7001e970abf73f0e2cecfbddd6b9c' ARCHIVE_BASE_1_PART7_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_0.1.3905696_(64bit)_(70738)-7.bin' ARCHIVE_BASE_1_PART7_MD5='11c895a76cb12719e6252757b301089b' ARCHIVE_BASE_1_SIZE='29202245' ARCHIVE_BASE_1_VERSION='0.1.3905696-gog70738' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' ARCHIVE_BASE_0_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094).exe' ARCHIVE_BASE_0_MD5='0b6d1c931788f66d4a3b02138733f05a' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-1.bin' ARCHIVE_BASE_0_PART1_MD5='163b8af958071f85e78613834375209c' ARCHIVE_BASE_0_PART2_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-2.bin' ARCHIVE_BASE_0_PART2_MD5='c3852b6ae2bcc46fa0e4f085095bd12f' ARCHIVE_BASE_0_PART3_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-3.bin' ARCHIVE_BASE_0_PART3_MD5='a44293c54ebf39efd8f32cc4cc154220' ARCHIVE_BASE_0_PART4_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-4.bin' ARCHIVE_BASE_0_PART4_MD5='0dc37a5bd97295b5f163435c75868d03' ARCHIVE_BASE_0_PART5_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-5.bin' ARCHIVE_BASE_0_PART5_MD5='162f6baf1d24594f67a1710edef30c42' ARCHIVE_BASE_0_PART6_NAME='setup_the_elder_scrolls_v_skyrim_special_edition_1.6.659.0.8_(64bit)_(59094)-6.bin' ARCHIVE_BASE_0_PART6_MD5='5274ded2391553e9595b170af66ae0c3' ARCHIVE_BASE_0_SIZE='29000000' ARCHIVE_BASE_0_VERSION='1.6.659.0.8-gog59094' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_elder_scrolls_v_skyrim_special_edition' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' skyrimselauncher.exe skyrimse.exe bink2w64.dll galaxy64.dll high.ini low.ini medium.ini ultra.ini skyrimconsoledefault.ini' CONTENT_GAME_L10N_EN_FILES=' skyrim_default_en.ini data/skyrim - voices_en0.bsa' CONTENT_GAME_L10N_FR_FILES=' skyrim_default_fr.ini data/skyrim - voices_fr0.bsa' CONTENT_GAME_DATA_TEXTURES_FILES=' data/skyrim - textures?.bsa' CONTENT_GAME_DATA_FILES=' data/ccbgssse001-fish.bsa data/ccbgssse001-fish.esm data/ccbgssse025-advdsgs.bsa data/ccbgssse025-advdsgs.esm data/ccbgssse037-curios.bsa data/ccbgssse037-curios.esl data/ccqdrsse001-survivalmode.bsa data/ccqdrsse001-survivalmode.esl data/dawnguard.esm data/dragonborn.esm data/hearthfires.esm data/marketplacetextures.bsa data/_resourcepack.bsa data/_resourcepack.esl data/skyrim.esm data/skyrim - animations.bsa data/skyrim - interface.bsa data/skyrim - meshes0.bsa data/skyrim - meshes1.bsa data/skyrim - misc.bsa data/skyrim - shaders.bsa data/skyrim - sounds.bsa data/update.esm data/video skyrim.ccc' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Skyrim Special Edition GOG' APP_MAIN_EXE='skyrimse.exe' APP_MAIN_ICON='skyrimselauncher.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_EN PKG_L10N_FR PKG_DATA_TEXTURES PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_EN_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TEXTURES_ID="${PKG_DATA_ID}-textures" PKG_DATA_TEXTURES_DESCRIPTION="$PKG_DATA_DESCRIPTION - textures" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TEXTURES_ID" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' audio/x-wma, wmaversion=(int)1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default ## Rename language-specific configuration file mv \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_EN')$(path_game_data)"/skyrim_default.ini mv \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default_??.ini \ "$(package_path 'PKG_L10N_FR')$(path_game_data)"/skyrim_default.ini # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_L10N_EN' 'PKG_DATA' 'PKG_DATA_TEXTURES' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_L10N_FR' 'PKG_DATA' 'PKG_DATA_TEXTURES' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-fall.sh0000750000000000000000000000413714471751340013654 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Fall # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-fall' GAME_NAME='The Fall' ARCHIVE_BASE_1_NAME='TheFall_Linux_2_5.zip' ARCHIVE_BASE_1_MD5='5493c159ce23d13d68b60f064ab37297' ARCHIVE_BASE_1_SIZE='345335' ARCHIVE_BASE_1_VERSION='2.5-humble171207' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-fall' ARCHIVE_BASE_0_NAME='TheFall_2_31_Linux.rar' ARCHIVE_BASE_0_MD5='ffac594dc2c9b9e446da5fa375aac6fa' ARCHIVE_BASE_0_SIZE='340000' ARCHIVE_BASE_0_VERSION='2.31-humble161116' UNITY3D_NAME='TheFall' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='.' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-flame-in-the-flood.sh0000750000000000000000000000337514471751340016310 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # The Flame in the Flood # send your bug reports to bugs@dotslashplay.it ### script_version=20240610.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-flame-in-the-flood' GAME_NAME='The Flame in the Flood' ARCHIVE_BASE_0_NAME='setup_the_flame_in_the_flood_1.3.003_(31352).exe' ARCHIVE_BASE_0_MD5='c58e4985cb0a93a27f6bcd542a313ff1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2900000' ARCHIVE_BASE_0_VERSION='1.3.003-gog31352' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_flame_in_the_flood' UNREALENGINE4_NAME='rivergame' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='rivergame.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-girl-and-the-robot.sh0000750000000000000000000000501514471751340016330 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=20221210.1 GAME_ID='the-girl-and-the-robot' GAME_NAME='The Girl and the Robot' UNITY3D_NAME='GirlAndRobot' ARCHIVE_BASE_0='thegirlandtherobot-linux-1.006.rar' ARCHIVE_BASE_0_MD5='032b2f06a6d272be6ace53e6cda16683' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.006-humble170727' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-girl-and-the-robot' CONTENT_PATH_DEFAULT='LINUX' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-great-perhaps.sh0000750000000000000000000000470314471751340015477 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Great Perhaps # send your bug reports to bugs@dotslashplay.it ### script_version=20230805.2 GAME_ID='the-great-perhaps' GAME_NAME='The Great Perhaps' ARCHIVE_BASE_0='the_great_perhaps_1_32_14_31714.sh' ARCHIVE_BASE_0_MD5='4f675ed32851ec790cd010aaba6dd4b7' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.32.14-gog31714' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_great_perhaps' UNITY3D_NAME='TheGreatPerhaps' UNITY3D_PLUGINS=' libfmodL.so libfmod.so libfmodstudioL.so libfmodstudio.so libgvraudio.so libresonanceaudio.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Force the use of the Vulkan renderer, # as most text strings fail to render using the default one (OpenGL?). APP_MAIN_OPTIONS="${APP_MAIN_OPTIONS:-} -force-vulkan" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-hive.sh0000750000000000000000000000633114471751340013667 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Hive # send your bug reports to bugs@dotslashplay.it ### script_version=20231130.1 GAME_ID='the-hive' GAME_NAME='The Hive' ARCHIVE_BASE_0='TheHive_linux.zip' ARCHIVE_BASE_0_MD5='0ce86308c8632a0e29b6cefefe89b7ae' ARCHIVE_BASE_0_SIZE='1700000' ARCHIVE_BASE_0_VERSION='1.04-humble.2016.10.10' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/the-hive' UNITY3D_NAME='hive' CONTENT_PATH_DEFAULT='Hive_linux' ## The game crashes on launch if libCSteamworks.so is not available, ## libsteam_api.so is included too because libCSteamworks.so is linked against it. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/level?? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.22' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-kings-bird.sh0000750000000000000000000000407514471751340014770 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=20230805.1 GAME_ID='the-kings-bird' GAME_NAME='The Kingʼs Bird' ARCHIVE_BASE_0='TheKingsBirdDRMFREE_v5.zip' ARCHIVE_BASE_0_MD5='fccb138fa993f1e983fcc6c08d1b0b96' ARCHIVE_BASE_0_SIZE='5400000' ARCHIVE_BASE_0_VERSION='5-itch' ARCHIVE_BASE_0_URL='https://graffiti-games.itch.io/the-kings-bird' UNITY3D_NAME='TheKingsBird' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" ${UNITY3D_NAME}_Data/Mono ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" WINE_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/LocalLow/Serenity Forge/The King's Bird" APP_MAIN_EXE='TheKingsBird.exe' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-last-tinker.sh0000750000000000000000000000702214471751340015167 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Last Tinker # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-last-tinker' GAME_NAME='The Last Tinker: City of Colors' ARCHIVE_BASE_LINUX_0_NAME='last_tinker_city_of_colors_the_en_23_02_2018_18902.sh' ARCHIVE_BASE_LINUX_0_MD5='d0dbfac723aee309869c2404d88b4eb4' ARCHIVE_BASE_LINUX_0_SIZE='2100000' ARCHIVE_BASE_LINUX_0_VERSION='2018.02.23-gog18902' ARCHIVE_BASE_LINUX_0_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831).exe' ARCHIVE_BASE_WINDOWS_1_MD5='ec303722fba022e2b1d04f69091213d9' ARCHIVE_BASE_WINDOWS_1_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_1_PART1_NAME='setup_the_last_tinker_-_city_of_colors_23.02.2018_(18831)-1.bin' ARCHIVE_BASE_WINDOWS_1_PART1_MD5='91e843b4d7be0d842bf3dc1f9930f11d' ARCHIVE_BASE_WINDOWS_1_SIZE='2000000' ARCHIVE_BASE_WINDOWS_1_VERSION='2018.02.23-gog18831' ARCHIVE_BASE_WINDOWS_1_URL='https://www.gog.com/game/the_last_tinker_city_of_colors' ARCHIVE_BASE_WINDOWS_0_NAME='setup_the_last_tinker_2.0.0.2.exe' ARCHIVE_BASE_WINDOWS_0_MD5='7afa966efb4beb5535e19f2d69b245ae' ARCHIVE_BASE_WINDOWS_0_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_0_SIZE='2100000' ARCHIVE_BASE_WINDOWS_0_VERSION='1.0-gog2.0.0.2' UNITY3D_NAME='the last tinker' UNITY3D_PLUGINS=' libRenderingPlugin.so ScreenSelector.so' CONTENT_PATH_DEFAULT_WINDOWS='app' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' ## TODO: Check if the Steam libraries can be dropped CONTENT_LIBS_BIN_FILES=' libsteam_api.so libSteamworksNative.so' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ID="$GAME_ID" PKG_BIN_ID_LINUX="${PKG_BIN_ID}-linux" PKG_BIN_ID_WINDOWS="${PKG_BIN_ID}-windows" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libatk-1.0.so.0 libcairo.so.2 libc.so.6 libdl.so.2 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXext.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_ID_LINUX="${PKG_DATA_ID}-linux" PKG_DATA_ID_WINDOWS="${PKG_DATA_ID}-windows" PKG_DATA_PROVIDES=" $PKG_DATA_ID" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-planet-crafter-expansions.sh0000750000000000000000000000403014471751340020022 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 BetaRays set -o errexit ### # The Planet Crafter expansions: # - Planet Humble # send your bug reports to bugs@dotslashplay.it ### script_version=20250530.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-planet-crafter' GAME_NAME='The Planet Crafter' EXPANSION_ID_PLANETHUMBLE='planet-humble' EXPANSION_NAME_PLANETHUMBLE='Planet Humble' # Archives ## Planet Humble ARCHIVE_BASE_PLANETHUMBLE_1_NAME='setup_the_planet_crafter_-_planet_humble_v1.518.1_(82237).exe' ARCHIVE_BASE_PLANETHUMBLE_1_MD5='a09c262a769432eb8f0515f9a3bb441d' ARCHIVE_BASE_PLANETHUMBLE_1_SIZE='7812' ARCHIVE_BASE_PLANETHUMBLE_1_VERSION='1.518-gog82237' ARCHIVE_BASE_PLANETHUMBLE_1_URL='https://www.gog.com/game/the_planet_crafter_planet_humble' ARCHIVE_BASE_PLANETHUMBLE_0_NAME='setup_the_planet_crafter_-_planet_humble_v1.410_(79912).exe' ARCHIVE_BASE_PLANETHUMBLE_0_MD5='a64fff4691566255f6b01021b4d56705' ARCHIVE_BASE_PLANETHUMBLE_0_SIZE='6856' ARCHIVE_BASE_PLANETHUMBLE_0_VERSION='1.410-gog79912' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' goggame-*.info' PKG_PARENT_ID="$GAME_ID" PKG_MAIN_DEPENDENCIES_SIBLINGS=' PKG_PARENT' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-planet-crafter.sh0000750000000000000000000000617614471751340015652 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Fabien Givors # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2025 BetaRays set -o errexit ### # The Planet Crafter # send your bug reports to bugs@dotslashplay.it ### script_version=20250530.2 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-planet-crafter' GAME_NAME='The Planet Crafter' ARCHIVE_BASE_2_NAME='setup_the_planet_crafter_v1.518.1_(82237).exe' ARCHIVE_BASE_2_MD5='5547f8cebf7a1e8c9e9d28e5c7e1bba4' ARCHIVE_BASE_2_TYPE='innosetup' ARCHIVE_BASE_2_PART1_NAME='setup_the_planet_crafter_v1.518.1_(82237)-1.bin' ARCHIVE_BASE_2_PART1_MD5='21522bd690b0e19579555cd60cc4ea48' ARCHIVE_BASE_2_SIZE='4961016' ARCHIVE_BASE_2_VERSION='1.518.1-gog82237' ARCHIVE_BASE_2_URL='https://www.gog.com/game/the_planet_crafter' ARCHIVE_BASE_1_NAME='setup_the_planet_crafter_v1.410_(79912).exe' ARCHIVE_BASE_1_MD5='99a76531a684432048b1e1de9ad47293' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_planet_crafter_v1.410_(79912)-1.bin' ARCHIVE_BASE_1_PART1_MD5='dca216a778df5323b2952a9f53c49bf7' ARCHIVE_BASE_1_SIZE='4090924' ARCHIVE_BASE_1_VERSION='1.410-gog79912' ARCHIVE_BASE_0_NAME='setup_the_planet_crafter_v1.005_(73160).exe' ARCHIVE_BASE_0_MD5='60ece555d812bed78d38f571dc2ddaf8' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_planet_crafter_v1.005_(73160)-1.bin' ARCHIVE_BASE_0_PART1_MD5='d0435d2e30c97cf7f1d5fa24e4290e3a' ARCHIVE_BASE_0_PART2_NAME='setup_the_planet_crafter_v1.005_(73160)-2.bin' ARCHIVE_BASE_0_PART2_MD5='22f21c99887225b814a2d2e55eb007c4' ARCHIVE_BASE_0_SIZE='8000000' ARCHIVE_BASE_0_VERSION='1.005-gog73160' UNITY3D_NAME='planet crafter' CONTENT_PATH_DEFAULT='.' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/MijuGames/Planet Crafter' ## TODO: Check is these fonts are required with current WINE WINE_WINETRICKS_VERBS='corefonts' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/quicktime, variant=(string)iso' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-the-search.sh0000750000000000000000000000342214471751340014177 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Search # send your bug reports to bugs@dotslashplay.it ### script_version=20240806.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='the-search' GAME_NAME='The Search' ARCHIVE_BASE_0_NAME='the-search-windows.zip' ARCHIVE_BASE_0_MD5='98b8ba6ac43c4df82511c55df099a533' ARCHIVE_BASE_0_SIZE='1800000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://jasongodbey.itch.io/the-search' UNITY3D_NAME='TheSearch' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Jason Godbey/The Search' USER_PERSISTENT_FILES=" ${UNITY3D_NAME}_Data/QualitySettings.ini" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-silver-case.sh0000750000000000000000000000462414471751340015154 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Silver Case # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-silver-case' GAME_NAME='The Silver Case' GAME_ID_DEMO="${GAME_ID}-demo" GAME_NAME_DEMO="$GAME_ID (demo)" ARCHIVE_BASE_DEMO_GOG_0_NAME='setup_the_silver_case_demo_2.0.0.1.exe' ARCHIVE_BASE_DEMO_GOG_0_MD5='3c133cb2031160370917f120055c63b4' ARCHIVE_BASE_DEMO_GOG_0_TYPE='innosetup' ARCHIVE_BASE_DEMO_GOG_0_SIZE='960000' ARCHIVE_BASE_DEMO_GOG_0_VERSION='1.0-gog2.0.0.1' ## This installer is no longer available from Playism, ## as they turned their store into yet another Steam keys reseller. ARCHIVE_BASE_DEMO_PLAYISM_0_NAME='TheSilverCase_DEMO_Playism0930.zip' ARCHIVE_BASE_DEMO_PLAYISM_0_MD5='a1bbd59ead01c4e1dc50c38b3a65c5ea' ARCHIVE_BASE_DEMO_PLAYISM_0_SIZE='950000' ARCHIVE_BASE_DEMO_PLAYISM_0_VERSION='1.0-playism0930' UNITY3D_NAME_DEMO='thesilvercase_trial' CONTENT_PATH_DEFAULT_DEMO_GOG='app' CONTENT_PATH_DEFAULT_DEMO_PLAYISM='thesilvercase_demo_0930' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID_DEMO="${GAME_ID_DEMO}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS_DEMO="$PKG_DATA_ID_DEMO" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert all file paths to lowercase. case "$(current_archive)" in ('ARCHIVE_BASE_PLAYISM_'*) tolower . ;; esac ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-smurfs-mission-vileaf.sh0000750000000000000000000000437214471751340017201 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=20240319.3 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='the-smurfs-mission-vileaf' GAME_NAME='The Smurfs: Mission Vileaf' ARCHIVE_BASE_0_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727).exe' ARCHIVE_BASE_0_MD5='086cdfa541244a81b9e00e3c55daad1b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_smurfs_-_mission_vileaf_1.0.19.3_(68727)-1.bin' ARCHIVE_BASE_0_PART1_MD5='1f36f6b263cb1e983d8f6608e252671d' ARCHIVE_BASE_0_SIZE='5283712' ARCHIVE_BASE_0_VERSION='1.0.19.3-gog68727' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_smurfs_mission_vileaf' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' fmod.dll fmodstudio.dll libscepad.dll thesmurfsmissionvileaf.exe' ## thesmurfsmissionvileaf.exe is linked against Galaxy64.dll CONTENT_GAME0_BIN_FILES=' galaxy64.dll' CONTENT_GAME_DATA_FILES=' smurfsresources' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/Smurfs' APP_MAIN_EXE='thesmurfsmissionvileaf.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_DEPS="${PKG_BIN_DEPS:-} $PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-sojourn.sh0000750000000000000000000000344514471751340014436 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Sojourn # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-sojourn' GAME_NAME='The Sojourn' ARCHIVE_BASE_0_NAME='setup_the_sojourn_1.1_(64bit)_(41585).exe' ARCHIVE_BASE_0_MD5='dcb64504379bc323710bee15bf94deed' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_sojourn_1.1_(64bit)_(41585)-1.bin' ARCHIVE_BASE_0_PART1_MD5='6f1ba2e2348a794ba24ab0e5ae763e69' ARCHIVE_BASE_0_SIZE='2600000' ARCHIVE_BASE_0_VERSION='1.1-gog41585' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_sojourn' UNREALENGINE4_NAME='thesojourn' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE='thesojourn.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-stillness-of-the-wind.sh0000750000000000000000000000351614471751340017075 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Stillness of the Wind # send your bug reports to bugs@dotslashplay.it ### script_version=20240618.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-stillness-of-the-wind' GAME_NAME='The Stillness of the Wind' ARCHIVE_BASE_0_NAME='Stillness1.1.1Win.zip' ARCHIVE_BASE_0_MD5='0d2a72ead3b9311c386b3f42ff7f1839' ARCHIVE_BASE_0_SIZE='910000' ARCHIVE_BASE_0_VERSION='1.1.1-itch' ARCHIVE_BASE_0_URL='https://fellowtraveller.itch.io/the-stillness-of-the-wind' UNITY3D_NAME='StillnessWin' CONTENT_PATH_DEFAULT='Stillness1.1.1Win' CONTENT_GAME0_DATA_FILES=' Subtitles Videos' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\Memory of God\The Stillness of the Wind' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-subject.sh0000750000000000000000000000434714471751340014400 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Subject # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-subject' GAME_NAME='The Subject' ARCHIVE_BASE_0_NAME='TheSubject_Linux.zip' ARCHIVE_BASE_0_MD5='09f72ac6554e430ed5aab8b887b1abbe' ARCHIVE_BASE_0_SIZE='2321446' ARCHIVE_BASE_0_VERSION='2.0.3-itch1' ARCHIVE_BASE_0_URL='https://darkstonedigital.itch.io/thesubject' UNITY3D_NAME='TheSubject' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='TheSubjectLinux' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-swords-of-ditto.sh0000750000000000000000000000415114471751340015776 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The Swords of Ditto # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-swords-of-ditto' GAME_NAME='The Swords of Ditto: Mormoʼs Curse' ARCHIVE_BASE_0='the_swords_of_ditto_1_17_02_204_30316.sh' ARCHIVE_BASE_0_MD5='9191f474d17f2744c1d6f9153be74780' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='1.17.02.204' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_swords_of_ditto' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' The_Swords_of_Ditto' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='The_Swords_of_Ditto' APP_MAIN_ICON='assets/icon.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.1 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-temple-of-elemental-evil.sh0000750000000000000000000000462314471751340017527 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Temple of Elemental Evil # send your bug reports to bugs@dotslashplay.it ### script_version=20240728.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-temple-of-elemental-evil' GAME_NAME='The Temple of Elemental Evil' ARCHIVE_BASE_1_NAME='setup_temple_of_elemental_evil_1.0_(15416).exe' ARCHIVE_BASE_1_MD5='1c7b493f71c2c92050a63535b3abec67' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.3-gog15416' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_temple_of_elemental_evil' ARCHIVE_BASE_0_NAME='setup_temple_of_elemental_evil_2.0.0.13.exe' ARCHIVE_BASE_0_MD5='44ea1e38ed1da26aefb32a39a899f770' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.3-gog2.0.0.13' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' miles *.dll *.exe *.pyd' CONTENT_GAME0_BIN_PATH="${CONTENT_PATH_DEFAULT}/__support/app" ## Required to override the previous value. CONTENT_GAME0_BIN_PATH_0="$CONTENT_PATH_DEFAULT_0" CONTENT_GAME0_BIN_FILES=' *.cfg' CONTENT_GAME_DATA_FILES=' data modules toee.ico *.dat' CONTENT_DOC_DATA_FILES=' *.pdf *.txt' USER_PERSISTENT_DIRECTORIES=' data/maps data/save data/scr modules/toee' USER_PERSISTENT_FILES=' toee.cfg' APP_MAIN_EXE='toee.exe' APP_MAIN_ICON='toee.ico' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-warlock-of-firetop-mountain.sh0000750000000000000000000001014614471751340020275 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Warlock of Firetop Mountain # send your bug reports to bugs@dotslashplay.it ### script_version=20230222.1 GAME_ID='the-warlock-of-firetop-mountain' GAME_NAME='The Warlock of Firetop Mountain' ARCHIVE_BASE_1='WARLOCK_LINUX_487115.zip' ARCHIVE_BASE_1_MD5='ae29e02f78225d69a3bdb661e13f2a3f' ARCHIVE_BASE_1_SIZE='1600000' ARCHIVE_BASE_1_VERSION='1.0-humble180508' ARCHIVE_BASE_1_URL='https://www.humblebundle.com/store/the-warlock-of-firetop-mountain' ARCHIVE_BASE_0='WARLOCK_LINUX_487088.zip' ARCHIVE_BASE_0_MD5='17d4e909dbed98cd420eee5bb6a828d3' ARCHIVE_BASE_0_SIZE='1600000' ARCHIVE_BASE_0_VERSION='1.0-humble171022' UNITY3D_NAME='The Warlock of Firetop Mountain' CONTENT_PATH_DEFAULT='WARLOCK_LINUX_487115' CONTENT_PATH_DEFAULT_0='WARLOCK_LINUX_487088' ## The game fails to start if libCSteamworks.so is not available, ## libsteam_api.so is a requirement of libCSteamworks.so. CONTENT_LIBS_BIN32_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_LIBS_BIN32_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_LIBS_BIN64_PATH="${CONTENT_PATH_DEFAULT}/${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_LIBS_BIN64_FILES=' libCSteamworks.so libsteam_api.so ScreenSelector.so' CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Mono/etc ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/ScreenSelector.png ${UNITY3D_NAME}_Data/level* ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.resS ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # The game engine fails to load some plugins unless they are found in a hardcoded path file_name='ScreenSelector.so' file_source="$(path_libraries)/${file_name}" for file_destination in \ "$(package_path 'PKG_BIN32')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86/${file_name}" \ "$(package_path 'PKG_BIN64')$(path_game_data)/$(unity3d_name)_Data/Plugins/x86_64/${file_name}" do mkdir --parents "$(dirname "$file_destination")" ln --symbolic "$file_source" "$file_destination" done # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" set_standard_permissions . ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-westport-independent.sh0000750000000000000000000000672514471751340017125 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # The Westport Independent # send your bug reports to bugs@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='the-westport-independent' GAME_NAME='The Westport Independent' ## This game used to be sold by gog.com, but is no longer available for sale there. ARCHIVE_BASE_0_NAME='gog_the_westport_independent_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='7032059f085e94f52444e9bf4ed0195c' ARCHIVE_BASE_0_SIZE='130000' ARCHIVE_BASE_0_VERSION='1.0.0-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/game/linux32' CONTENT_GAME_BIN32_FILES=' the_westport_independent' CONTENT_GAME_BIN64_PATH="${CONTENT_PATH_DEFAULT}/../linux64" CONTENT_GAME_BIN64_FILES=' the_westport_independent' CONTENT_GAME_DATA_FILES=' config.json assets' CONTENT_DOC_DATA_FILES=' *.txt' USER_PERSISTENT_FILES=' config.json' APP_MAIN_EXE='the_westport_independent' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='the-westport-independent_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='054b51fe4c02f256b8130b40e93d28ae' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/the-westport-independent' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then ## Include the original game icons from the optional archive… CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 256x256' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" else ## …or fall back on the GOG-specific icon. PKG='PKG_DATA' APP_MAIN_ICON='../../support/icon.png' # shellcheck disable=SC2119 icons_inclusion fi content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-2.sh0000750000000000000000000001264514471751340014545 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # The Witcher 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-witcher-2' GAME_NAME='The Witcher 2: Assassins of Kings' ARCHIVE_BASE_1_NAME='the_witcher_2_assassins_of_kings_enhanced_edition_en_release_3_20150306204412_20992.sh' ARCHIVE_BASE_1_MD5='fd7b85d44e3da7fdf860ab4267574b36' ARCHIVE_BASE_1_SIZE='24000000' ARCHIVE_BASE_1_VERSION='1.3-gog.20992' ARCHIVE_BASE_1_URL='https://www.gog.com/game/the_witcher_2' ARCHIVE_BASE_0_NAME='gog_the_witcher_2_assassins_of_kings_enhanced_edition_2.2.0.8.sh' ARCHIVE_BASE_0_MD5='3fff5123677a7be2023ecdb6af3b82b6' ARCHIVE_BASE_0_SIZE='24000000' ARCHIVE_BASE_0_VERSION='1.3-gog.2.2.0.8' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_FILES=' libopenal-eon.so.1' CONTENT_GAME_BIN_FILES=' bin configurator eONprecompiledShaders32.dat sdlinput witcher2' CONTENT_GAME_VOICES_DE_FILES=' CookedPC/de0.w2speech' CONTENT_GAME_VOICES_EN_FILES=' CookedPC/en0.w2speech' CONTENT_GAME_VOICES_FR_FILES=' CookedPC/fr0.w2speech' CONTENT_GAME_VOICES_PL_FILES=' CookedPC/pl0.w2speech' CONTENT_GAME_VOICES_RU_FILES=' CookedPC/ru0.w2speech' CONTENT_GAME_DATA_PACK1_FILES=' CookedPC/pack0.dzip.split00' CONTENT_GAME_DATA_PACK2_FILES=' CookedPC/pack0.dzip.split01 CookedPC/pack0.dzip.split02' CONTENT_GAME_DATA_FILES=' CookedPC fontconfig linux icudt52l.dat SDLGamepad.config VPFS_registry.vpfsdb witcher2.vpfs' CONTENT_DOC_DATA_FILES=' *.rtf *.txt' APP_MAIN_EXE='witcher2' APP_MAIN_ICON='linux/icons/witcher2-icon.png' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='configurator' APP_CONFIG_ICON='linux/icons/witcher2-configurator.png' PACKAGES_LIST=' PKG_BIN PKG_VOICES_DE PKG_VOICES_EN PKG_VOICES_FR PKG_VOICES_PL PKG_VOICES_RU PKG_DATA_PACK1 PKG_DATA_PACK2 PKG_DATA' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DE_ID="${PKG_VOICES_ID}-de" PKG_VOICES_EN_ID="${PKG_VOICES_ID}-en" PKG_VOICES_FR_ID="${PKG_VOICES_ID}-fr" PKG_VOICES_PL_ID="${PKG_VOICES_ID}-pl" PKG_VOICES_RU_ID="${PKG_VOICES_ID}-ru" PKG_VOICES_PROVIDES=" $PKG_VOICES_ID" PKG_VOICES_DE_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_EN_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_FR_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_PL_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_RU_PROVIDES="$PKG_VOICES_PROVIDES" PKG_VOICES_DESCRIPTION='voices' PKG_VOICES_DE_DESCRIPTION="$PKG_VOICES_DESCRIPTION - German" PKG_VOICES_EN_DESCRIPTION="$PKG_VOICES_DESCRIPTION - English" PKG_VOICES_FR_DESCRIPTION="$PKG_VOICES_DESCRIPTION - French" PKG_VOICES_PL_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Polish" PKG_VOICES_RU_DESCRIPTION="$PKG_VOICES_DESCRIPTION - Russian" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_PACK1_ID="${PKG_DATA_ID}-pack1" PKG_DATA_PACK2_ID="${PKG_DATA_ID}-pack2" PKG_DATA_DESCRIPTION='data' PKG_DATA_PACK1_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 1" PKG_DATA_PACK2_DESCRIPTION="$PKG_DATA_DESCRIPTION - pack0, part 2" PKG_DATA_DEPS="$PKG_DATA_PACK1_ID $PKG_DATA_PACK2_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_VOICES_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libSDL2_image-2.0.so.0 libstdc++.so.6 libX11.so.6' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages ## Set package scripts to rebuild the full files from their chunks. file_path='CookedPC/pack0.dzip' PKG_DATA_POSTINST_RUN="${PKG_DATA_POSTINST_RUN:-} $(huge_file_concatenate "$file_path")" PKG_DATA_PRERM_RUN="${PKG_DATA_PRERM_RUN:-} $(huge_file_delete "$file_path")" packages_generation case "$(messages_language)" in ('fr') lang_string='voix %s :' lang_de='allemandes' lang_en='anglaises' lang_fr='françaises' lang_pl='polonaises' lang_ru='russes' ;; ('en'|*) lang_string='%s voices:' lang_de='German' lang_en='English' lang_fr='French' lang_pl='Polish' lang_ru='Russian' ;; esac printf '\n' printf "$lang_string" "$lang_de" print_instructions 'PKG_BIN' 'PKG_VOICES_DE' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_VOICES_EN' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_VOICES_FR' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_pl" print_instructions 'PKG_BIN' 'PKG_VOICES_PL' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' printf "$lang_string" "$lang_ru" print_instructions 'PKG_BIN' 'PKG_VOICES_RU' 'PKG_DATA' 'PKG_DATA_PACK1' 'PKG_DATA_PACK2' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-witcher-3.sh0000750000000000000000000001163214471751340014541 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # The Witcher 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250326.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='the-witcher-3' GAME_NAME='The Witcher 3: Wild Hunt' ARCHIVE_BASE_0_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709).exe' ARCHIVE_BASE_0_MD5='321ed8cc0faedb903190a708686a1b50' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-1.bin' ARCHIVE_BASE_0_PART1_MD5='8aab6124c22f1360585ee2285ea6d8f7' ARCHIVE_BASE_0_PART2_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-2.bin' ARCHIVE_BASE_0_PART2_MD5='3966e84f941b9fba384eb4a2b0b23c65' ARCHIVE_BASE_0_PART3_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-3.bin' ARCHIVE_BASE_0_PART3_MD5='bc80aa6b1538ecf757e7db6f3723e056' ARCHIVE_BASE_0_PART4_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-4.bin' ARCHIVE_BASE_0_PART4_MD5='71660541a0c358ef40802ba62a2c3c09' ARCHIVE_BASE_0_PART5_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-5.bin' ARCHIVE_BASE_0_PART5_MD5='9ad56c2efc7b09f480f7f8c7922c8b3f' ARCHIVE_BASE_0_PART6_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-6.bin' ARCHIVE_BASE_0_PART6_MD5='bd3699654b2e34668445219f2bbbc793' ARCHIVE_BASE_0_PART7_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-7.bin' ARCHIVE_BASE_0_PART7_MD5='1beb5a622e6695d0dd65cac5fab08793' ARCHIVE_BASE_0_PART8_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-8.bin' ARCHIVE_BASE_0_PART8_MD5='121adc43111562e354d9841800d0c613' ARCHIVE_BASE_0_PART9_NAME='setup_the_witcher_3_wild_hunt_goty_1.31_(a)_(9709)-9.bin' ARCHIVE_BASE_0_PART9_MD5='0f5329306515d6f41a1b4a7b2d38ad74' ARCHIVE_BASE_0_SIZE='38000000' ARCHIVE_BASE_0_VERSION='1.31a-gog9709' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_witcher_3_wild_hunt_game_of_the_year_edition' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_MOVIES_FILES=' content/*/bundles/movies.bundle' CONTENT_GAME_BUNDLES_FILES=' content/*/bundles' CONTENT_GAME_VOICES_FILES=' content/*/soundspc.cache' CONTENT_GAME_DATA_FILES=' content' CONTENT_GAME_DLC_HEARTS_OF_STONE_FILES=' dlc/ep1' CONTENT_GAME_DLC_BLOOD_AND_WINE_FILES=' dlc/bob' CONTENT_GAME_DLC_FREE_PACK_FILES=' dlc/dlc*' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/The Witcher 3' APP_MAIN_EXE='bin/x64/witcher3.exe' PACKAGES_LIST=' PKG_BIN PKG_MOVIES PKG_BUNDLES PKG_VOICES PKG_DLC_HEARTS_OF_STONE PKG_DLC_BLOOD_AND_WINE PKG_DLC_FREE_PACK PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_BUNDLES PKG_VOICES' PKG_BUNDLES_ID="${GAME_ID}-bundles" PKG_BUNDLES_DESCRIPTION='bundles' PKG_BUNDLES_DEPENDENCIES_SIBLINGS=' PKG_MOVIES' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_VOICES_ID="${GAME_ID}-voices" PKG_VOICES_DESCRIPTION='voices' PKG_DLC_HEARTS_OF_STONE_ID="${GAME_ID}-hearts-of-stone" PKG_DLC_HEARTS_OF_STONE_DESCRIPTION='Hearts of Stone' PKG_DLC_HEARTS_OF_STONE_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC_BLOOD_AND_WINE_ID="${GAME_ID}-blood-and-wine" PKG_DLC_BLOOD_AND_WINE_DESCRIPTION='Blood and Wine' PKG_DLC_BLOOD_AND_WINE_DEPENDENCIES_SIBLINGS=' PKG_BIN' PKG_DLC_FREE_PACK_ID="${GAME_ID}-free-dlc-pack" PKG_DLC_FREE_PACK_DESCRIPTION='Free DLC pack' PKG_DLC_FREE_PACK_DEPENDENCIES_SIBLINGS=' PKG_BIN' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd bin/x64 $(wine_command) witcher3.exe "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions 'PKG_MOVIES' 'PKG_BUNDLES' 'PKG_VOICES' 'PKG_DATA' 'PKG_BIN' GAME_NAME=$(package_description 'PKG_DLC_HEARTS_OF_STONE') print_instructions 'PKG_DLC_HEARTS_OF_STONE' GAME_NAME=$(package_description 'PKG_DLC_BLOOD_AND_WINE') print_instructions 'PKG_DLC_BLOOD_AND_WINE' GAME_NAME=$(package_description 'PKG_DLC_FREE_PACK') print_instructions 'PKG_DLC_FREE_PACK' # Clean up working_directory_cleanup exit 0 games/play-the-world-begins-with-you.sh0000750000000000000000000000334614471751340017116 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # The World Begins With You # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='the-world-begins-with-you' GAME_NAME='The World Begins With You' ARCHIVE_BASE_0_NAME='TheWorldBeginsWithYou_v1_0_1_WIN.zip' ARCHIVE_BASE_0_MD5='ae72427190719de31f59b2cc1ed4baa3' ARCHIVE_BASE_0_SIZE='730000' ARCHIVE_BASE_0_VERSION='1.0.1-itch' ARCHIVE_BASE_0_URL='https://fabiandenter.itch.io/the-world-begins-with-you' UNITY3D_NAME='TheWorldBeginsWithYou_v1_0_1' CONTENT_PATH_DEFAULT='.' WINE_VIRTUAL_DESKTOP='auto' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-the-world-next-door.sh0000750000000000000000000000335514471751340016003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The World Next Door # send your bug reports to bugs@dotslashplay.it ### script_version=20240705.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='the-world-next-door' GAME_NAME='The World Next Door' ARCHIVE_BASE_0_NAME='setup_the_world_next_door_1.2.0_(29529).exe' ARCHIVE_BASE_0_MD5='ec556aa20488836c92fdf6b2b0bdb3d9' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2200000' ARCHIVE_BASE_0_VERSION='1.2.0-gog29529' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_world_next_door' UNITY3D_NAME='theworldnextdoor' CONTENT_PATH_DEFAULT='.' USER_PERSISTENT_FILES=' *.bin' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-there-is-no-game.sh0000750000000000000000000000351114471751340015214 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # There is no Game: Wrong Dimension # send your bug reports to bugs@dotslashplay.it ### script_version=20240706.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='there-is-no-game' GAME_NAME='There is no Game: Wrong Dimension' ARCHIVE_BASE_0_NAME='setup_there_is_no_game__wrong_dimension_v1.0.30_(52258).exe' ARCHIVE_BASE_0_MD5='f9590da9c19a554e8154ffeacee9cdbb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0.30-gog52258' ARCHIVE_BASE_0_URL='https://www.gog.com/game/there_is_no_game_wrong_dimension' UNITY3D_NAME='ting' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/DrawMeAPixel/Ting' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-thief-3.sh0000750000000000000000000000673614471751340013426 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Thief 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='thief-3' GAME_NAME='Thief 3: Deadly Shadows' ARCHIVE_BASE_1_NAME='setup_thief_-_deadly_shadows_1.1_(21683).exe' ARCHIVE_BASE_1_MD5='153723f2908242cf27a23ad58d0608b5' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_thief_-_deadly_shadows_1.1_(21683)-1.bin' ARCHIVE_BASE_1_PART1_MD5='8c549826345776df192fb1721740096f' ARCHIVE_BASE_1_SIZE='2300000' ARCHIVE_BASE_1_VERSION='1.1-gog2.21683' ARCHIVE_BASE_1_URL='https://www.gog.com/game/thief_3' ARCHIVE_BASE_0_NAME='setup_thief3_2.0.0.6.exe' ARCHIVE_BASE_0_MD5='e5b84de58a1037f3e8aa3a1bb2a982be' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='2300000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.6' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_BIN_FILES=' system' CONTENT_GAME0_BIN_PATH='__support/app' CONTENT_GAME0_BIN_PATH_0='app' CONTENT_GAME0_BIN_FILES=' user.ini' CONTENT_GAME_DATA_FILES=' content' CONTENT_DOC_DATA_FILES=' eula.txt readme.rtf *.pdf' USER_PERSISTENT_DIRECTORIES=' saves' USER_PERSISTENT_FILES=' *.ini' APP_MAIN_EXE='system/t3.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Ensure easy upgrades from packages generated with pre-20201031.16 game scripts. PKG_BIN_PROVIDES="${PKG_BIN_PROVIDES:-} thief3" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Ensure easy upgrades from packages generated with pre-20201031.16 game scripts. PKG_DATA_PROVIDES="${PKG_DATA_PROVIDES:-} thief3-data" # Set up required registry keys registry_dump_required_file='registry-dumps/required-entries.reg' # shellcheck disable=SC1003 registry_dump_required_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Ion Storm\Thief - Deadly Shadows] "ION_ROOT"="C:\\'"${GAME_ID}"'" "SaveGamePath"="C:\\'"${GAME_ID}"'\\saves" ' CONTENT_GAME_BIN_FILES="${CONTENT_GAME_BIN_FILES:-} $registry_dump_required_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_required_file" REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Set up required registry keys mkdir --parents "$(dirname "$registry_dump_required_file")" printf '%s' "$registry_dump_required_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_required_file" ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-this-war-of-mine-stories.sh0000750000000000000000000000510014471751340016723 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: Stories: # - Father's Promise # - The Last Broadcast # - Fading Embers # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' EXPANSION_ID_PROMISE='fathers-promise' EXPANSION_NAME_PROMISE='Fatherʼs Promise' EXPANSION_ID_BROADCAST='the-last-broadcast' EXPANSION_NAME_BROADCAST='The Last Broadcast' EXPANSION_ID_EMBERS='fading-embers' EXPANSION_NAME_EMBERS='Fading Embers' # Archives ## Father's Promise ARCHIVE_BASE_PROMISE_0_NAME='this_war_of_mine_stories_father_s_promise_6_0_8_a_34693.sh' ARCHIVE_BASE_PROMISE_0_MD5='edd88a0589e73cee7f2ad575bd87f933' ARCHIVE_BASE_PROMISE_0_SIZE='1300' ARCHIVE_BASE_PROMISE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_PROMISE_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fathers_promise' ## The Last Broadcast ARCHIVE_BASE_BROADCAST_0_NAME='this_war_of_mine_stories_the_last_broadcast_6_0_8_a_34693.sh' ARCHIVE_BASE_BROADCAST_0_MD5='daff8c5453365f234fbcfa5e2ad11448' ARCHIVE_BASE_BROADCAST_0_SIZE='3900' ARCHIVE_BASE_BROADCAST_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_BROADCAST_0_URL='https://www.gog.com/game/this_war_of_mine_stories_the_last_broadcast' ## Fading Embers ARCHIVE_BASE_EMBERS_0_NAME='this_war_of_mine_stories_fading_embers_6_0_8_a_34693.sh' ARCHIVE_BASE_EMBERS_0_MD5='1684ebcdd6be5f11e69830da349549aa' ARCHIVE_BASE_EMBERS_0_SIZE='4100' ARCHIVE_BASE_EMBERS_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_EMBERS_0_URL='https://www.gog.com/game/this_war_of_mine_stories_fading_embers' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' gog?.idx gog?.dat' PKG_MAIN_DEPS="$GAME_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-this-war-of-mine-the-little-ones.sh0000750000000000000000000000326614471751340020263 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # This War of Mine: The Little Ones # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='Thie War of Mine' EXPANSION_ID='the-little-ones' EXPANSION_NAME='The Little Ones' ARCHIVE_BASE_0_NAME='this_war_of_mine_the_little_ones_6_0_8_a_34693.sh' ARCHIVE_BASE_0_MD5='7e2a1b8e0cc51d7a3f56f6591a0f6f21' ARCHIVE_BASE_0_SIZE='18000' ARCHIVE_BASE_0_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_0_URL='https://www.gog.com/game/this_war_of_mine_the_little_ones' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_MAIN_FILES=' gog.idx gog.dat' PKG_MAIN_ID="${GAME_ID}-data-gog-${EXPANSION_ID}" PKG_MAIN_PROVIDES=" ${GAME_ID}-data-gog" PKG_MAIN_DESCRIPTION="data - GOG-specific files ($EXPANSION_NAME)" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_default # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-this-war-of-mine.sh0000750000000000000000000001155214471751340015245 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2019 Antoine Le Gonidec set -o errexit ### # This War of Mine # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='this-war-of-mine' GAME_NAME='This War of Mine' ARCHIVE_BASE_9_NAME='this_war_of_mine_6_0_8_a_34693.sh' ARCHIVE_BASE_9_MD5='cc7afc1412ae1b92db5b992c2dd76818' ARCHIVE_BASE_9_SIZE='2800000' ARCHIVE_BASE_9_VERSION='6.0.8a-gog34693' ARCHIVE_BASE_9_URL='https://www.gog.com/game/this_war_of_mine' ARCHIVE_BASE_8_NAME='this_war_of_mine_6_0_8_34211.sh' ARCHIVE_BASE_8_MD5='13d21027e6950b03946071bf4c06cb9e' ARCHIVE_BASE_8_SIZE='2800000' ARCHIVE_BASE_8_VERSION='6.0.8-gog34211' ARCHIVE_BASE_7_NAME='this_war_of_mine_6_0_7_33947.sh' ARCHIVE_BASE_7_MD5='f983657b4cd3bad71047d1cc62654b34' ARCHIVE_BASE_7_SIZE='2800000' ARCHIVE_BASE_7_VERSION='6.0.7-gog33947' ARCHIVE_BASE_6_NAME='this_war_of_mine_6_0_6_32269.sh' ARCHIVE_BASE_6_MD5='65b0332c4355046d09e5c49f1925cec9' ARCHIVE_BASE_6_SIZE='2700000' ARCHIVE_BASE_6_VERSION='6.0.6-32269' ARCHIVE_BASE_5_NAME='this_war_of_mine_6_0_5_32074.sh' ARCHIVE_BASE_5_MD5='8cb7bc50a58162242f215df36ae3ccdb' ARCHIVE_BASE_5_SIZE='2700000' ARCHIVE_BASE_5_VERSION='6.0.5-gog32074' ARCHIVE_BASE_4_NAME='this_war_of_mine_6_0_0_s3788_a10718_31527.sh' ARCHIVE_BASE_4_MD5='b317099aa7c0c0a4942845893e4f7386' ARCHIVE_BASE_4_SIZE='2700000' ARCHIVE_BASE_4_VERSION='6.0.0-gog31527' ARCHIVE_BASE_3_NAME='this_war_of_mine_5_1_0_26027.sh' ARCHIVE_BASE_3_MD5='8c9221653e6fc94a6898f5ef66a3325f' ARCHIVE_BASE_3_SIZE='2200000' ARCHIVE_BASE_3_VERSION='5.1.0-gog26027' ARCHIVE_BASE_2_NAME='this_war_of_mine_4_0_1_25361.sh' ARCHIVE_BASE_2_MD5='c6d96f0722a35821ea30500d8e7658d8' ARCHIVE_BASE_2_SIZE='2200000' ARCHIVE_BASE_2_VERSION='4.0.1-gog25361' ARCHIVE_BASE_1_NAME='this_war_of_mine_4_0_1_24802.sh' ARCHIVE_BASE_1_MD5='17daac7e70ee2c783b12114573cb7757' ARCHIVE_BASE_1_SIZE='1500000' ARCHIVE_BASE_1_VERSION='4.0.1-gog24802' ARCHIVE_BASE_0_NAME='this_war_of_mine_en_4_0_0_29_01_2018_18230.sh' ARCHIVE_BASE_0_MD5='165f4d6158425c3d2861c533f10b5713' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='4.0.0-gog18230' CONTENT_PATH_DEFAULT='data/noarch/game' ## This build of libcurl.so.4 includes the required "CURL_OPENSSL_3" symbol. CONTENT_LIBS_BIN_FILES=' libcurl.so.4' CONTENT_GAME_BIN_FILES=' This War of Mine' CONTENT_GAME_BIN_FILES_3=' KosovoLinux' CONTENT_GAME_BIN_FILES_0=' TWOMLinux' CONTENT_GAME_DATA_GOG_FILES=' gog.idx gog.dat' CONTENT_GAME_DATA_FILES=' CustomContent LocalizationPacks WorkshopData animations.idx animations.dat common.idx common.dat localizations.idx localizations.dat scenes.idx scenes.dat sounds.idx sounds.dat templates.idx templates.dat textures-s3.idx textures-s3.dat videos.idx videos.dat voices.idx voices.dat svnrev.txt *.str' APP_MAIN_EXE='This War of Mine' APP_MAIN_EXE_3='KosovoLinux' APP_MAIN_EXE_0='TWOMLinux' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA_GOG PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_GOG_ID="${PKG_DATA_ID}-gog" PKG_DATA_GOG_DESCRIPTION="$PKG_DATA_DESCRIPTION - GOG-specific files" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_GOG_ID" PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # The game binary looks for libOpenAL.so instead of libopenal.so.1 case "$(option_value 'package')" in ('arch'|'gentoo'|'egentoo') ## Unversioned libopenal.so is already provided by the base library packages on Arch Linux and Gentoo. ;; ('deb') path_libraries_system=$( set_current_package 'PKG_BIN' path_libraries_system ) library_source="${path_libraries_system}/libopenal.so.1" library_destination="$(package_path 'PKG_BIN')$(path_libraries)/libOpenAL.so" mkdir --parents "$(dirname "$library_destination")" ln --symbolic "$library_source" "$library_destination" ;; esac # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-thomas-was-alone.sh0000750000000000000000000000367314471751340015343 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.sh0000750000000000000000000000353114471751340014357 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.sh0000750000000000000000000001004714471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Tiny and Big: Grandpa's Leftovers # send your bug reports to bugs@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tiny-and-big' GAME_NAME='Tiny and Big: Grandpaʼs Leftovers' ARCHIVE_BASE_GOG_0='tiny_and_big_grandpa_s_leftovers_en_1_4_2_15616.sh' ARCHIVE_BASE_GOG_0_MD5='bdcc1ea8366dedcfe00b50c439fd5ec9' ARCHIVE_BASE_GOG_0_SIZE='2400000' ARCHIVE_BASE_GOG_0_VERSION='1.4.2-gog15616' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/tiny_and_big_grandpas_leftovers' ARCHIVE_BASE_HUMBLE_0='tinyandbig_grandpasleftovers-retail-linux-1.4.1_1370968537.tar.bz2' ARCHIVE_BASE_HUMBLE_0_MD5='c6c2bc286f11e4a232211c5176105890' ARCHIVE_BASE_HUMBLE_0_SIZE='2400000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.4.1-humble1370968537' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/tiny-big-grandpas-leftovers' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='tinyandbig' ## TODO: Check if some shipped libraries could be replaced with system-provided ones. CONTENT_LIBS_BIN_FILES=' libcal3d.so libCgGL.so libCg.so' CONTENT_LIBS_BIN32_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin32" CONTENT_LIBS_BIN32_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin32" CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN64_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/bin64" CONTENT_LIBS_BIN64_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/bin64" CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN32_FILES=' bin32/tinyandbig' CONTENT_GAME_BIN64_FILES=' bin64/tinyandbig' CONTENT_GAME_DATA_FILES=' assets' USER_PERSISTENT_FILES=' options.txt *.save' APP_MAIN_EXE_BIN32='bin32/tinyandbig' APP_MAIN_EXE_BIN64='bin64/tinyandbig' PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 libstdc++.so.6 libX11.so.6' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ARCHIVE_OPTIONAL_ICONS_0_NAME='tiny-and-big_icons.tar.gz' ARCHIVE_OPTIONAL_ICONS_0_MD5='043fa61c838ba6b2ef301c52660352b1' ARCHIVE_OPTIONAL_ICONS_0_URL='https://downloads.dotslashplay.it/games/tiny-and-big' archive_initialize_optional \ 'ARCHIVE_ICONS' \ 'ARCHIVE_OPTIONAL_ICONS' ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then archive_extraction 'ARCHIVE_ICONS' fi # Include game data ## TODO: The library should provide a function to check if a given optional archive has been provided. if [ -n "$(archive_path 'ARCHIVE_ICONS' 2>/dev/null || true)" ]; then CONTENT_ICONS_DATA_PATH='.' CONTENT_ICONS_DATA_FILES=' 16x16 32x32 48x48 64x64' content_inclusion 'ICONS_DATA' 'PKG_DATA' "$(path_icons)" fi content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tiny-hunter.sh0000750000000000000000000000411014471751340014435 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.sh0000750000000000000000000000530314471751340014234 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.sh0000750000000000000000000000344514471751340013310 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-total-annihilation-kingdoms.sh0000750000000000000000000000377714471751340017600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 HS-157 # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Total Annihilation: Kingdoms # send your bug reports to bugs@dotslashplay.it ### script_version=20241203.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='total-annihilation-kingdoms' GAME_NAME='Total Annihilation: Kingdoms' ARCHIVE_BASE_0_NAME='setup_total_annihilation_kingdoms_2.0.0.22.exe' ARCHIVE_BASE_0_MD5='206f4b8e9159414ee38ec609831907bb' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1100000' ARCHIVE_BASE_0_VERSION='1.0-gog2.0.0.22' ARCHIVE_BASE_0_URL='https://www.gog.com/game/total_annihilation_kingdoms' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.asi *.dll *.exe *.tsk' CONTENT_GAME_DATA_FILES=' atlas boneyards docs gc maps movies music *.256 *.esk *.hpi *.htm *.icd *.id *.isu *.key *.mmz *.pdf *.tdf *.txt' APP_MAIN_EXE='kingdoms.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-touhou-series.sh0000750000000000000000000002256614471751340015001 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2019 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Touhou series: # - Touhou 6 # - Touhou 9 # - Touhou 11 # - Touhou 12 # - Touhou 13 # - Touhou 14 # - Touhou 16.5 # send your bug reports to bugs@dotslashplay.it ### script_version=20250424.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID_EPISODE6='touhou-6' GAME_NAME_EPISODE6='Touhou Koumakyou ~ the Embodiment of Scarlet Devil' GAME_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6}-demo" GAME_NAME_EPISODE6_DEMO="$GAME_NAME_EPISODE6 (demo)" GAME_ID_EPISODE9='touhou-9' GAME_NAME_EPISODE9='Touhou Kaeizuka ~ Phantasmagoria of Flower View' GAME_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9}-demo" GAME_NAME_EPISODE9_DEMO="$GAME_NAME_EPISODE9 (demo)" GAME_ID_EPISODE11='touhou-11' GAME_NAME_EPISODE11='Touhou Chireiden ~ Subterranean Animism' GAME_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11}-demo" GAME_NAME_EPISODE11_DEMO="$GAME_NAME_EPISODE11 (demo)" GAME_ID_EPISODE12='touhou-12' GAME_NAME_EPISODE12='Touhou Seirensen ~ Undefined Fantastic Object' GAME_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12}-demo" GAME_NAME_EPISODE12_DEMO="$GAME_NAME_EPISODE12 (demo)" GAME_ID_EPISODE13='touhou-13' GAME_NAME_EPISODE13='Touhou Touhou Shinreibyou ~ Ten Desires' GAME_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13}-demo" GAME_NAME_EPISODE13_DEMO="$GAME_NAME_EPISODE13 (demo)" GAME_ID_EPISODE14='touhou-14' GAME_NAME_EPISODE14='Touhou Kishinjou ~ Double Dealing Character' GAME_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14}-demo" GAME_NAME_EPISODE14_DEMO="$GAME_NAME_EPISODE14 (demo)" GAME_ID_EPISODE165='touhou-16-5' GAME_NAME_EPISODE165='Touhou Hifuu Nightmare Diary ~ Violet Detector' ARCHIVE_BASE_EPISODE6_DEMO_0_NAME='kouma_tr013.lzh' ARCHIVE_BASE_EPISODE6_DEMO_0_MD5='7ea4be414a7f256429a2c5e4666c9881' ARCHIVE_BASE_EPISODE6_DEMO_0_TYPE='lha' ARCHIVE_BASE_EPISODE6_DEMO_0_SIZE='4500' ARCHIVE_BASE_EPISODE6_DEMO_0_VERSION='0.13-zun1' ARCHIVE_BASE_EPISODE6_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th06.html' ## All download links behind the provided URL seem to be dead, ## despite the download page itself still being available. ARCHIVE_BASE_EPISODE9_DEMO_0_NAME='kaei_ver002.lzh' ARCHIVE_BASE_EPISODE9_DEMO_0_MD5='e07878f414404ba2157c4f646ccf3708' ARCHIVE_BASE_EPISODE9_DEMO_0_TYPE='lha' ARCHIVE_BASE_EPISODE9_DEMO_0_SIZE='29000' ARCHIVE_BASE_EPISODE9_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE9_DEMO_0_URL='https://www16.big.or.jp/~zun/html/th09dl.html' ARCHIVE_BASE_EPISODE11_DEMO_0_NAME='th11tr002a_setup.exe' ARCHIVE_BASE_EPISODE11_DEMO_0_MD5='9b7c092a529fcc1f48590f0a2b3cca87' ## Do not try to convert file paths to lowercase. ARCHIVE_BASE_EPISODE11_DEMO_0_EXTRACTOR='innoextract' ARCHIVE_BASE_EPISODE11_DEMO_0_EXTRACTOR_OPTIONS=' ' ARCHIVE_BASE_EPISODE11_DEMO_0_SIZE='140000' ARCHIVE_BASE_EPISODE11_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE11_DEMO_0_URL='https://www16.big.or.jp/~zun/html/th11top.html' ARCHIVE_BASE_EPISODE12_DEMO_0_NAME='th12tr002a_setup.exe' ARCHIVE_BASE_EPISODE12_DEMO_0_MD5='61a77c94c2ef64d7afda477dda0594eb' ARCHIVE_BASE_EPISODE12_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE12_DEMO_0_SIZE='151620' ARCHIVE_BASE_EPISODE12_DEMO_0_VERSION='0.02a-zun1' ARCHIVE_BASE_EPISODE12_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th12dl.html' ARCHIVE_BASE_EPISODE13_DEMO_0_NAME='th13tr001a_setup.exe' ARCHIVE_BASE_EPISODE13_DEMO_0_MD5='5336b10545fd0b6cb0eb38c97199e9bc' ARCHIVE_BASE_EPISODE13_DEMO_0_TYPE='innosetup' ARCHIVE_BASE_EPISODE13_DEMO_0_SIZE='190000' ARCHIVE_BASE_EPISODE13_DEMO_0_VERSION='0.01a-zun1' ARCHIVE_BASE_EPISODE13_DEMO_0_URL='http://www16.big.or.jp/~zun/html/th13dl.html' ## This DRM-free archive is no longer available from Playism store, ## since their owners closed it down in favour of Steam. ARCHIVE_BASE_EPISODE14_DEMO_0_NAME='DoubleDealingCharacterDemo.zip' ARCHIVE_BASE_EPISODE14_DEMO_0_MD5='76a751e8becb51689c2256d218cda788' ARCHIVE_BASE_EPISODE14_DEMO_0_SIZE='190000' ARCHIVE_BASE_EPISODE14_DEMO_0_VERSION='0.01b-playism' ARCHIVE_BASE_EPISODE165_DISC_0_NAME='violet-detector.iso' ARCHIVE_BASE_EPISODE165_DISC_0_MD5='d6198341c3c92befbeb713fdccc189e7' ARCHIVE_BASE_EPISODE165_DISC_0_VERSION='1.00a-disc' ARCHIVE_BASE_EPISODE165_DISC_0_SIZE='370000' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_NAME='violet-detector-raw.iso' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_MD5='7bbcf834290e33c0bb656a43a9d39ffe' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_VERSION='1.00a-disc' ARCHIVE_BASE_EPISODE165_DISC_RAW_0_SIZE='370000' CONTENT_PATH_DEFAULT_EPISODE6_DEMO='東方紅魔郷 体験版' CONTENT_PATH_DEFAULT_EPISODE9_DEMO='kaei' CONTENT_PATH_DEFAULT_EPISODE11_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE12_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE13_DEMO='app' CONTENT_PATH_DEFAULT_EPISODE14_DEMO='Double Dealing Character DEMO (Touhou14)' CONTENT_PATH_DEFAULT_EPISODE165='th165' CONTENT_GAME_BIN_FILES=' *.exe' CONTENT_GAME_DATA_FILES=' *.dat *.DAT' CONTENT_DOC_DATA_FILES=' html manual マニュアル index.html *.txt' USER_PERSISTENT_DIRECTORIES_EPISODE6_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE9_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE12_DEMO=' replay' USER_PERSISTENT_DIRECTORIES_EPISODE13_DEMO=' replay' USER_PERSISTENT_FILES_EPISODE6_DEMO=' 東方紅魔郷.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE9_DEMO=' th09tr.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE11_DEMO=' h11.cfg scoreth11.dat log.txt' USER_PERSISTENT_FILES_EPISODE12_DEMO=' th12.cfg score.dat log.txt' USER_PERSISTENT_FILES_EPISODE13_DEMO=' th13.cfg score.dat log.txt' WINE_PERSISTENT_DIRECTORIES_EPISODE14_DEMO=' users/${USER}/AppData/Roaming/ShanghaiAlice/th14tr' WINE_PERSISTENT_DIRECTORIES_EPISODE165=' users/${USER}/AppData/Roaming/ShanghaiAlice/th165' APP_MAIN_EXE_EPISODE6_DEMO='東方紅魔郷.exe' APP_MAIN_EXE_EPISODE9_DEMO='th09tr.exe' APP_MAIN_EXE_EPISODE11_DEMO='th11.exe' APP_MAIN_EXE_EPISODE12_DEMO='th12.exe' APP_MAIN_EXE_EPISODE13_DEMO='th13.exe' APP_MAIN_EXE_EPISODE14_DEMO='th14.exe' APP_MAIN_EXE_EPISODE165='th165.exe' APP_MAIN_PRERUN='export LANG=ja_JP.UTF-8' APP_CONFIG_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6_DEMO}-config" APP_CONFIG_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9_DEMO}-config" APP_CONFIG_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11_DEMO}-config" APP_CONFIG_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12_DEMO}-config" APP_CONFIG_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13_DEMO}-config" APP_CONFIG_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14_DEMO}-config" APP_CONFIG_ID_EPISODE165="${GAME_ID_EPISODE165}-config" APP_CONFIG_NAME_EPISODE6_DEMO="$GAME_NAME_EPISODE6_DEMO - configuration" APP_CONFIG_NAME_EPISODE9_DEMO="$GAME_NAME_EPISODE9_DEMO - configuration" APP_CONFIG_NAME_EPISODE11_DEMO="$GAME_NAME_EPISODE11_DEMO - configuration" APP_CONFIG_NAME_EPISODE12_DEMO="$GAME_NAME_EPISODE12_DEMO - configuration" APP_CONFIG_NAME_EPISODE13_DEMO="$GAME_NAME_EPISODE13_DEMO - configuration" APP_CONFIG_NAME_EPISODE14_DEMO="$GAME_NAME_EPISODE14_DEMO - configuration" APP_CONFIG_NAME_EPISODE165="$GAME_NAME_EPISODE165 - configuration" APP_CONFIG_CAT='Settings' APP_CONFIG_EXE='custom.exe' APP_CONFIG_PRERUN='export LANG=ja_JP.UTF-8' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: A dependency on the wqy-microhei.ttc font should be added. PKG_DATA_ID_EPISODE6_DEMO="${GAME_ID_EPISODE6_DEMO}-data" PKG_DATA_ID_EPISODE9_DEMO="${GAME_ID_EPISODE9_DEMO}-data" PKG_DATA_ID_EPISODE11_DEMO="${GAME_ID_EPISODE11_DEMO}-data" PKG_DATA_ID_EPISODE12_DEMO="${GAME_ID_EPISODE12_DEMO}-data" PKG_DATA_ID_EPISODE13_DEMO="${GAME_ID_EPISODE13_DEMO}-data" PKG_DATA_ID_EPISODE14_DEMO="${GAME_ID_EPISODE14_DEMO}-data" PKG_DATA_ID_EPISODE165="${GAME_ID_EPISODE165}-data" PKG_DATA_DESCRIPTION='data' # Convert the text files to UTF-8 encoding REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" REQUIREMENTS_LIST_EPISODE6_DEMO="${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 the default initialization actions initialization_default "$@" # Work around ./play.it 2.32 lack of context support for REQUIREMENTS_LIST REQUIREMENTS_LIST=$(context_value 'REQUIREMENTS_LIST') requirements_check # Extract game data archive_extraction_default ( # Not going into $CONTENT_PATH_DEFAULT is expected cd "${PLAYIT_WORKDIR}/gamedata" # Convert all file paths to UTF-8 encoding case "$(current_archive)" in ('ARCHIVE_BASE_EPISODE6_DEMO_'*) convmv -f CP932 -t UTF-8 --notest -r . >/dev/null ;; esac ) ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Convert the text files to UTF-8 encoding find . \( -name '*.txt' -o -name '*.html' \) -exec \ sh -c 'contents=$(iconv --from-code CP932 --to-code UTF-8 "$1"); printf "%s" "$contents" > "$1"' -- '{}' \; ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-tower-of-guns.sh0000750000000000000000000000620414471751340014671 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Tower of Guns # send your bug reports to bugs@dotslashplay.it ### script_version=20250312.6 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='tower-of-guns' GAME_NAME='Tower of Guns' ## This Linux native DRM-free installer is no longer available for sale from humblebundle.com ARCHIVE_BASE_0_NAME='TowerOfGuns-Linux-1.27-2015021101-g_fix.sh' ARCHIVE_BASE_0_MD5='45fae40e529e678c9129f9ee2dc8694b' ARCHIVE_BASE_0_SIZE='950000' ARCHIVE_BASE_0_VERSION='1.27-humble160104' CONTENT_PATH_DEFAULT='data' CONTENT_LIBS_BIN_RELATIVE_PATH='x86/Binaries/Linux/lib' CONTENT_LIBS_BIN_FILES=' libPhysXCore.so libPhysXCooking.so libtcmalloc.so.0' ## The shipped libSDL2_mixer-2.0.so.0 must be used, to avoid the following error: ## ./UDKGame-Linux: undefined symbol: MinorityMix_SetPosition CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libSDL2_mixer-2.0.so.0" CONTENT_GAME_BIN_RELATIVE_PATH='x86' CONTENT_GAME_BIN_FILES=' Binaries/Linux/UDKGame-Linux' CONTENT_GAME_DATA_RELATIVE_PATH='noarch' CONTENT_GAME_DATA_FILES=' Engine UDKGame ToGIcon.bmp TowerOfGunsIcon.png' CONTENT_DOC_DATA_RELATIVE_PATH='noarch' CONTENT_DOC_DATA_FILES=' *.txt README.linux' APP_MAIN_EXE='Binaries/Linux/UDKGame-Linux' APP_MAIN_ICON='noarch/TowerOfGunsIcon.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 ' ## Force a generic locale to prevent missing strings during gameplay APP_MAIN_PRERUN="$APP_MAIN_PRERUN # Force a generic locale to prevent missing strings during gameplay 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 libdl.so.2 libgcc_s.so.1 libGL.so.1 libm.so.6 libogg.so.0 libopenal.so.1 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libvorbisfile.so.3 libvorbis.so.0' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Run the game binary from its parent directory game_exec_line() { cat <<- 'EOF' cd Binaries/Linux ./UDKGame-Linux "$@" EOF } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-townscaper.sh0000750000000000000000000000335414471751340014345 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 VA # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Townscaper # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='townscaper' GAME_NAME='Townscaper' ARCHIVE_BASE_0_NAME='setup_townscaper_1.0_(49525).exe' ARCHIVE_BASE_0_MD5='1a1e0bd05b686bc6a5b0aabde0901cb1' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='108000' ARCHIVE_BASE_0_VERSION='1.0-gog49525' ARCHIVE_BASE_0_URL='https://www.gog.com/game/townscaper' UNITY3D_NAME='townscaper' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Oskar Stalberg/Townscaper' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trackmania-nations-forever.sh0000750000000000000000000000654314471751340017414 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Emmanuel Gil Peyrot # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2024 BetaRays set -o errexit ### # TrackMania Nations Forever # send your bug reports to bugs@dotslashplay.it ### script_version=20250320.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='trackmania-nations-forever' GAME_NAME='TrackMania Nations Forever' ARCHIVE_BASE_0_NAME='tmnationsforever_setup.exe' ARCHIVE_BASE_0_MD5='2a36d70989f94ba9369993749ff20640' ARCHIVE_BASE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_0_SIZE='520000' ARCHIVE_BASE_0_VERSION='2.11.26-1' ARCHIVE_BASE_0_URL='https://trackmaniaforever.com/nations/' ## TrackMania Competition Patch ARCHIVE_OPTIONAL_TMCP_0_NAME='TMCompetitionPatch_1.5.1.zip' ARCHIVE_OPTIONAL_TMCP_0_MD5='6420ae68976973e57cf1d5a1e135bae7' ARCHIVE_OPTIONAL_TMCP_0_SIZE='2200' ARCHIVE_OPTIONAL_TMCP_0_VERSION='1.5.1' ARCHIVE_OPTIONAL_TMCP_0_URL='https://donadigo.com/tmcp' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll openal32.dll thumbgbx.dll thumbgbx.tlb tmforever.exe tmforeverlauncher.exe wrap_oal.dll' CONTENT_GAME_DATA_FILES=' gamedata packs tmforever.map gbx.ico launchicon.png nadeo.ini' ## TrackMania Competition Patch CONTENT_GAME0_BIN_PATH='.' CONTENT_GAME0_BIN_FILES=' dinput8.dll TMCompPatch.dll' WINE_DIRECT3D_RENDERER='dxvk' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/TmForever' APP_MAIN_EXE='tmforeverlauncher.exe' APP_MAIN_ICON='launchicon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # innoextract is required to extract the content of an inner archive REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} innoextract" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Check for the presence of the TrackMania Competition Patch archive_initialize_optional 'ARCHIVE_TMCP' 'ARCHIVE_OPTIONAL_TMCP_0' # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/TmNationsForever_Setup_Tmp.exe" ARCHIVE_INNER_TYPE='innosetup' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" "${PLAYIT_WORKDIR}/gamedata/TmNationsForever_Setup_Tmp-1.bin" if archive_is_available 'ARCHIVE_TMCP'; then archive_extraction 'ARCHIVE_TMCP' fi # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers if archive_is_available 'ARCHIVE_TMCP'; then APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Load the TrackMania Competition Patch export WINEDLLOVERRIDES="dinput8.dll=n,b;$WINEDLLOVERRIDES" ' fi launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-trine-1.sh0000750000000000000000000000460614471751340013440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Trine 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='trine-1' GAME_NAME='Trine' ARCHIVE_BASE_0='gog_trine_enchanted_edition_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='0e8d2338b568222b28cf3c31059b4960' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='2.12.508-gog2.0.0.2' ARCHIVE_BASE_0_URL='https://www.gog.com/game/trine_enchanted_edition' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH='data/noarch/game/lib/lib32' CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin/trine1_linux_32bit' CONTENT_GAME_DATA_FILES=' data *.fbq *.png' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='bin/trine1_linux_32bit' APP_MAIN_ICON='trine1.png' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libogg.so.0 libpango-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libudev.so.0 libX11.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-trine-2.sh0000750000000000000000000000703014471751340013433 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 Jacek Szafarkiewicz set -o errexit ### # Trine 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='trine-2' GAME_NAME='Trine 2' ARCHIVE_BASE_GOG_1='gog_trine_2_complete_story_2.0.0.5.sh' ARCHIVE_BASE_GOG_1_MD5='dd7126c1a6210e56fde20876bdb0a2ac' ARCHIVE_BASE_GOG_1_SIZE='3700000' ARCHIVE_BASE_GOG_1_VERSION='2.01.425-gog2.0.0.5' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/trine_2_complete_story' ARCHIVE_BASE_GOG_0='gog_trine_2_complete_story_2.0.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='dae867bff938dde002eafcce0b72e5b4' ARCHIVE_BASE_GOG_0_SIZE='3700000' ARCHIVE_BASE_GOG_0_VERSION='2.01.425-gog2.0.0.4' ARCHIVE_BASE_HUMBLE_0='trine2_complete_story_v2_01_build_425_humble_linux_full.zip' ARCHIVE_BASE_HUMBLE_0_MD5='82049b65c1bce6841335935bc05139c8' ARCHIVE_BASE_HUMBLE_0_SIZE='3700000' ARCHIVE_BASE_HUMBLE_0_VERSION='2.01build425-humble141016' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/trine-2-complete-story' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/lib/lib32" CONTENT_LIBS_BIN_PATH_HUMBLE="${CONTENT_PATH_DEFAULT_HUMBLE}/lib/lib32" CONTENT_LIBS_BIN_FILES=' libCg.so libCgGL.so libPhysXCooking.so libPhysXCooking.so.1 libPhysXCore.so libPhysXCore.so.1 libPhysXLoader.so libPhysXLoader.so.1 libSDL-1.3.so.0' CONTENT_GAME_BIN_FILES=' bin' CONTENT_GAME_DATA_FILES=' data trine2.png *.fbq' CONTENT_DOC_DATA_FILES=' readme*' APP_MAIN_EXE='bin/trine2_linux_launcher_32bit' APP_MAIN_ICON='trine2.png' ## Work around a crash in fullscreen mode APP_MAIN_PRERUN='# Work around a crash in fullscreen mode export SDL_VIDEO_ALLOW_SCREENSAVER=1 ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libasound.so.2 libatk-1.0.so.0 libc.so.6 libdbus-1.so.3 libdl.so.2 libexpat.so.1 libfontconfig.so.1 libfreetype.so.6 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libgdk-x11-2.0.so.0 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libopenal.so.1 libpango-1.0.so.0 libpangoft2-1.0.so.0 libpng12.so.0 libpthread.so.0 librt.so.1 libstdc++.so.6 libuuid.so.1 libvorbisfile.so.3 libX11.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set execution permissions on all binaries chmod 755 bin/* ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-triple-triad-gold.sh0000750000000000000000000000364714471751340015510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Triple Triad Gold # send your bug reports to bugs@dotslashplay.it ### script_version=20230821.1 GAME_ID='triple-triad-gold' GAME_NAME='Triple Triad Gold' ARCHIVE_BASE_0='ttg09.zip' ARCHIVE_BASE_0_MD5='ec517c23236f2ad9217e1488f27b3dab' ARCHIVE_BASE_0_SIZE='4400' ARCHIVE_BASE_0_VERSION='0.9-qhimm1' ARCHIVE_BASE_0_URL='https://ttg.qhimm.com/' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' *.dll *.exe' CONTENT_GAME_DATA_FILES=' *.dat' USER_PERSISTENT_FILES=' settings.dat' WINE_WINETRICKS_VERBS='mfc42' APP_MAIN_EXE='Triple Triad Gold.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=128' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.25' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-tulpa.sh0000750000000000000000000000541014471751340013300 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-tunic.sh0000750000000000000000000000347114471751340013302 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 berru # SPDX-FileCopyrightText: © 2023 Mopi set -o errexit ### # TUNIC # send your bug reports to bugs@dotslashplay.it ### script_version=20231018.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='tunic' GAME_NAME='TUNIC' ARCHIVE_BASE_0_NAME='setup_tunic_1.0-t1513-b45_(64bit)_(62831).exe' ARCHIVE_BASE_0_MD5='e10cb15ed3cf26a9491af2fe22bd83c5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.0-gogt1513-b45' ARCHIVE_BASE_0_URL='https://www.gog.com/game/tunic' UNITY3D_NAME='tunic' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Andrew Shouldice/Secret Legend' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-turnip-boy-commits-tax-evasion.sh0000750000000000000000000000443214471751340020173 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Turnip Boy Commits Tax Evasion # send your bug reports to bugs@dotslashplay.it ### script_version=20241218.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='turnip-boy-commits-tax-evasion' GAME_NAME='Turnip Boy Commits Tax Evasion' ARCHIVE_BASE_1_NAME='setup_turnip_boy_commits_tax_evasion_v1.1.3f1_(64bit)_(58989).exe' ARCHIVE_BASE_1_MD5='89752267d5f53df91532cdb925d39ace' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='672316' ARCHIVE_BASE_1_VERSION='1.1.3f1-gog58989' ARCHIVE_BASE_1_URL='https://www.gog.com/game/turnip_boy_commits_tax_evasion' ARCHIVE_BASE_0_NAME='setup_turnip_boy_commits_tax_evasion_v1.1.0f2_(64bit)_(49701).exe' ARCHIVE_BASE_0_MD5='8253f3bec3d84f71f9fdf5e5ec1e5a18' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='650000' ARCHIVE_BASE_0_VERSION='1.1.0f2-gog49701' ARCHIVE_BASE_0_URL='https://www.gog.com/game/turnip_boy_commits_tax_evasion' UNITY3D_NAME='turnip boy commits tax evasion' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Snoozy Kazoo/Turnip Boy Commits Tax Evasion' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ultima-4.sh0000750000000000000000000000415014471751340013607 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Ultima 4 # send your bug reports to bugs@dotslashplay.it ### script_version=20250115.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='ultima-4' GAME_NAME='Ultima IV: Quest of the Avatar' ARCHIVE_BASE_1_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_1_MD5='f4c943b03e576557a962bcd88470509f' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='16714' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/ultima_4' ARCHIVE_BASE_0_NAME='setup_ultima_iv_-_quest_of_the_avatar_1.0_cs_(28045).exe' ARCHIVE_BASE_0_MD5='2c8adeb4cacfba84b611e9c28ddf12e0' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='17589' ARCHIVE_BASE_0_VERSION='1.0-gog28045' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_MAIN_FILES=' ultima.com avatar.exe title.exe ultima4.txt *.cga *.con *.dng *.drv *.ega *.egz *.map *.new *.pic *.tlk *.ult' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_FILES=' *.sav' CONTENT_DOC_MAIN_FILES=' manual.pdf readme.rtf' USER_PERSISTENT_FILES=' *.sav' APP_MAIN_EXE='ultima.com' APP_MAIN_ICON='app/goggame-1207658962.ico' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-undertale.sh0000750000000000000000000000534314471751340014143 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Undertale # send your bug reports to bugs@dotslashplay.it ### script_version=20250303.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='undertale' GAME_NAME='Undertale' ARCHIVE_BASE_2='undertale_en_1_08_18328.sh' ARCHIVE_BASE_2_MD5='b134d85dd8bf723a74498336894ca723' ARCHIVE_BASE_2_SIZE='160000' ARCHIVE_BASE_2_VERSION='1.08-gog18328' ARCHIVE_BASE_2_URL='https://www.gog.com/game/undertale' ARCHIVE_BASE_1='undertale_en_1_06_15928.sh' ARCHIVE_BASE_1_MD5='54f9275d3def027e9f3f65a61094a662' ARCHIVE_BASE_1_SIZE='160000' ARCHIVE_BASE_1_VERSION='1.06-gog15928' ARCHIVE_BASE_0='gog_undertale_2.0.0.1.sh' ARCHIVE_BASE_0_MD5='e740df4e15974ad8c21f45ebe8426fb0' ARCHIVE_BASE_0_SIZE='160000' ARCHIVE_BASE_0_VERSION='1.001-gog2.0.0.1' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN_FILES=' runner' CONTENT_GAME_DATA_FILES=' assets' APP_MAIN_EXE='runner' APP_MAIN_ICON='assets/icon.png' ## Work around Mesa-related startup crash APP_MAIN_PRERUN='# Work around Mesa-related startup crash # cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 export radeonsi_sync_compile=true ' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the binary name if [ -e 'UNDERTALE' ]; then mv 'UNDERTALE' "$(application_exe 'APP_MAIN')" fi ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unepic.sh0000750000000000000000000000606414471751340013444 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # unEpic # send your bug reports to bugs@dotslashplay.it ### script_version=20231112.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unepic' GAME_NAME='unEpic' ARCHIVE_BASE_HUMBLE_0_NAME='unepic-15005.run' ARCHIVE_BASE_HUMBLE_0_MD5='940824c4de6e48522845f63423e87783' ## This MojoSetup installer does not seem to be based on Makeself, ## so our regular type detection and extraction code do not work. ARCHIVE_BASE_HUMBLE_0_EXTRACTOR='bsdtar' ARCHIVE_BASE_HUMBLE_0_VERSION='1.50.05-humble141208' ARCHIVE_BASE_HUMBLE_0_SIZE='360000' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/unepic' ARCHIVE_BASE_GOG_1_NAME='unepic_en_1_51_01_20608.sh' ARCHIVE_BASE_GOG_1_MD5='88d98eb09d235fe3ca00f35ec0a014a3' ARCHIVE_BASE_GOG_1_VERSION='1.51.01-gog20608' ARCHIVE_BASE_GOG_1_SIZE='380000' ARCHIVE_BASE_GOG_1_URL='https://www.gog.com/game/unepic' ARCHIVE_BASE_GOG_0_NAME='gog_unepic_2.1.0.4.sh' ARCHIVE_BASE_GOG_0_MD5='341556e144d5d17ae23d2b0805c646a1' ARCHIVE_BASE_GOG_0_SIZE='380000' ARCHIVE_BASE_GOG_0_VERSION='1.50.05-gog2.1.0.4' CONTENT_PATH_DEFAULT_HUMBLE='data' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN64_FILES=' unepic64' CONTENT_GAME_BIN32_FILES=' unepic32' CONTENT_GAME_DATA_FILES=' data image sound voices omaps dictios_pc unepic.png' APP_MAIN_EXE_BIN64='unepic64' APP_MAIN_EXE_BIN32='unepic32' APP_MAIN_ICON_HUMBLE='unepic.png' APP_MAIN_ICON_GOG='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libGL.so.1 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN64' # shellcheck disable=SC2119 launchers_write set_current_package 'PKG_BIN32' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unsung-warriors.sh0000750000000000000000000000502114471751340015336 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Unsung Warriors # send your bug reports to bugs@dotslashplay.it ### script_version=20240617.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='unsung-warriors-prologue' GAME_NAME='Unsung Warriors Prologue' GAME_ID_PROLOGUE="${GAME_ID}-prologue" GAME_NAME_PROLOGUE="$GAME_NAME Prologue" ARCHIVE_BASE_PROLOGUE_0_NAME='unsung-warriors-prologue-linux.zip' ARCHIVE_BASE_PROLOGUE_0_MD5='09fd165d947d2eb02bc51a04b06e415a' ARCHIVE_BASE_PROLOGUE_0_SIZE='306303' ARCHIVE_BASE_PROLOGUE_0_VERSION='1.0.5.1-itch1' ARCHIVE_BASE_PROLOGUE_0_URL='https://unsungwarriors.itch.io/unsung-warriors-prologue' UNITY3D_NAME_PROLOGUE='UnsungWarriorsPrologue' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check is the Steam libraey is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='.' CONTENT_DOC_DATA_FILES='readme.txt' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID_PROLOGUE="${GAME_ID_PROLOGUE}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS_PROLOGUE="$PKG_DATA_ID_PROLOGUE" PKG_BIN64_DEPS_PROLOGUE="$PKG_BIN_DEPS_PROLOGUE" PKG_BIN32_DEPS_PROLOGUE="$PKG_BIN_DEPS_PROLOGUE" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-unwording.sh0000750000000000000000000000370214471751340014171 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Unwording # send your bug reports to bugs@dotslashplay.it ### script_version=20231110.2 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='unwording' GAME_NAME='Unwording' ARCHIVE_BASE_0_NAME='unwording_1_02_64447.sh' ARCHIVE_BASE_0_MD5='398d9c4d58b90b2632410d60704b9202' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.02-gog64447' ARCHIVE_BASE_0_URL='https://www.gog.com/game/unwording' UNITY3D_NAME='Unwording' UNITY3D_PLUGINS=' lib_burst_generated.so' CONTENT_PATH_DEFAULT='data/noarch/game' ## The game comes with a generic Unity3D icon, ## so we use the GOG-provided icon instead. APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-urtuk-the-desolation.sh0000750000000000000000000000575614471751340016257 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Urtuk: The Desolation # send your bug reports to bugs@dotslashplay.it ### script_version=20240624.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='urtuk-the-desolation' GAME_NAME='Urtuk: The Desolation' ARCHIVE_BASE_0_NAME='urtuk_the_desolation_1_0_0_91b_53003.sh' ARCHIVE_BASE_0_MD5='4fddaaa42c70b75258a78d4a5b103473' ARCHIVE_BASE_0_SIZE='740000' ARCHIVE_BASE_0_VERSION='1.0.0.91b-gog53003' ARCHIVE_BASE_0_URL='https://www.gog.com/game/urtuk_the_desolation' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=' desktop-1.0.jar' CONTENT_GAME_BIN_SHIPPED_FILES=' jre config.json urtuk' USER_PERSISTENT_FILES=' *.bin *.bin.backup' APP_MAIN_TYPE_BIN_SYSTEM='java' APP_MAIN_EXE_BIN_SYSTEM='desktop-1.0.jar' APP_MAIN_EXE_BIN_SHIPPED='urtuk' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN_SYSTEM PKG_BIN_SHIPPED PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_SHIPPED_ARCH='64' PKG_BIN_ID="${GAME_ID}-bin" PKG_BIN_SYSTEM_ID="${PKG_BIN_ID}-system" PKG_BIN_SHIPPED_ID="${PKG_BIN_ID}-shipped" PKG_BIN_PROVIDES=" $PKG_BIN_ID" PKG_BIN_SYSTEM_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SHIPPED_PROVIDES="$PKG_BIN_PROVIDES" PKG_BIN_SYSTEM_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPS="$PKG_DATA_ID" PKG_BIN_SHIPPED_DEPENDENCIES_LIBRARIES=' libasound.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 libstdc++.so.6 libthread_db.so.1 libX11.so.6 libXext.so.6 libXi.so.6 libXrender.so.1 libXtst.so.6' PKG_BIN_SYSTEM_DESCRIPTION='Using system-provided Java' PKG_BIN_SHIPPED_DESCRIPTION='Using shipped binaries' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN_SYSTEM' launchers_generation 'PKG_BIN_SHIPPED' # Build packages packages_generation case "$(messages_language)" in ('fr') message='Utilisation des binaires fournis par %s :' bin_system='le système' bin_shipped='les développeurs' ;; ('en'|*) message='Using binaries provided by %s:' bin_system='the system' bin_shipped='the developers' ;; esac printf '\n' printf "$message" "$bin_system" print_instructions 'PKG_DATA' 'PKG_BIN_SYSTEM' printf "$message" "$bin_shipped" print_instructions 'PKG_DATA' 'PKG_BIN_SHIPPED' # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-utopias.sh0000750000000000000000000000332714471751340013644 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Utopias # send your bug reports to bugs@dotslashplay.it ### script_version=20241130.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='utopias' GAME_NAME='Utopias' ARCHIVE_BASE_0_NAME='utopias-windows.zip' ARCHIVE_BASE_0_MD5='18094a207f2ab6f9edf31b8279ff7ec3' ARCHIVE_BASE_0_SIZE='4900000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://aaa.itch.io/utopias' UNITY3D_NAME='UTOPIAS' CONTENT_PATH_DEFAULT='UTOPIAS/_contents' USER_PERSISTENT_FILES=' data/save.txt' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-vagrus-the-riven-realms.sh0000750000000000000000000000604214471751340016644 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Vagrus - The Riven Realms # send your bug reports to bugs@dotslashplay.it ### script_version=20230130.1 GAME_ID='vagrus-the-riven-realms-prologue' GAME_NAME='Vagrus - The Riven Realms: Prologue' UNITY3D_NAME='Vagrus' ARCHIVE_BASE_GOG_0='vagrus_the_riven_realms_prologue_1_1150613h_56533.sh' ARCHIVE_BASE_GOG_0_MD5='b1c3ec004b8d49d9d40a7f54b12fea21' ARCHIVE_BASE_GOG_0_TYPE='mojosetup' ARCHIVE_BASE_GOG_0_SIZE='5500000' ARCHIVE_BASE_GOG_0_VERSION='1.1.15-gog56533' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/vagrus_the_riven_realms_prologue' ARCHIVE_BASE_ITCH_0='vagrus-demolinux.zip' ARCHIVE_BASE_ITCH_0_MD5='4bddf380ed1355b455802cfd615d9ec7' ARCHIVE_BASE_ITCH_0_SIZE='3800000' ARCHIVE_BASE_ITCH_0_VERSION='0.5.31-itch.2021.05.12' ARCHIVE_BASE_ITCH_0_URL='https://lostpilgrims.itch.io/vagrus' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_ITCH='.' CONTENT_LIBS_BIN_PATH_GOG="${CONTENT_PATH_DEFAULT_GOG}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_PATH_ITCH="${CONTENT_PATH_DEFAULT_ITCH}/${UNITY3D_NAME}_Data/Plugins" CONTENT_LIBS_BIN_FILES=' lib_burst_generated.so' CONTENT_GAME_BIN_FILES=" UnityPlayer.so ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/MonoBleedingEdge/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data/Managed ${UNITY3D_NAME}_Data/MonoBleedingEdge/etc ${UNITY3D_NAME}_Data/Resources ${UNITY3D_NAME}_Data/StreamingAssets ${UNITY3D_NAME}_Data/app.info ${UNITY3D_NAME}_Data/boot.config ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/level? ${UNITY3D_NAME}_Data/*.assets ${UNITY3D_NAME}_Data/*.assets.resS ${UNITY3D_NAME}_Data/*.json ${UNITY3D_NAME}_Data/*.resource" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libz.so.1' # Load common functions target_version='2.21' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icon PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vambrace-cold-soul.sh0000750000000000000000000000374714471751340015645 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vambrace: Cold Soul # send your bug reports to bugs@dotslashplay.it ### script_version=20240615.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='vambrace-cold-soul' GAME_NAME='Vambrace: Cold Soul' ARCHIVE_BASE_0_NAME='vambrace_cold_soul_1_10_b_37074.sh' ARCHIVE_BASE_0_MD5='91f0947bb96d6d5a0479d32ccc2d2770' ARCHIVE_BASE_0_SIZE='4998992' ARCHIVE_BASE_0_VERSION='1.10.b-gog37074' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vambrace_cold_soul' UNITY3D_NAME='VambraceColdSoul' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam library is required. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vampire-the-masquerade-redemption.sh0000750000000000000000000000763214471751340020675 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Vampire: The Masquerade - Redemption # send your bug reports to bugs@dotslashplay.it ### script_version=20250320.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='vampire-the-masquerade-redemption' GAME_NAME='Vampire: The Masquerade - Redemption' ARCHIVE_BASE_0_NAME='setup_vampire_the_masquerade_redemption_2.0.0.3.exe' ARCHIVE_BASE_0_MD5='96c19b0ce487e53dd8fe24ef963d31fc' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1300000' ARCHIVE_BASE_0_VERSION='1.1-gog2.0.0.3' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vampire_the_masquerade_redemption' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' *.dll *.exe *.inf *.isu extras/cs miles' CONTENT_GAME_DATA_FILES=' *.dat *.nob *.pub *.zip vampireankh.ico chronicles extras sounds video' CONTENT_DOC_DATA_FILES=' *.pdf *.rtf' USER_PERSISTENT_DIRECTORIES=' savegames' USER_PERSISTENT_FILES=' *.ini' ## TODO: The game can mess up with the display gamma setting, we should restore the previous value after exiting it. APP_MAIN_EXE='vampire.exe' APP_MAIN_ICON='vampireankh.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' # iconv is used to prepare a .reg script ## TODO: This should be replaced with WINE_REGISTRY_INIT after the release of ./play.it 2.33.0, ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/557 REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Set required registry keys ## TODO: This should be replaced with WINE_REGISTRY_INIT after the release of ./play.it 2.33.0, ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/557 # shellcheck disable=SC1003 installdir='C:\\'"$(game_id)" # shellcheck disable=SC1003 installdirexe='C:\\'"$(game_id)"'\\vampire.exe' registry_dump_init_file='registry-dumps/init.reg' ## TODO: The CD key should be extracted from a file provided with the game installer, ## instead of hardcoded in this script. registry_dump_init_content='Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Activision\Vampire: The Masquerade - Redemption\v1.0] "CDDRIVE"="c:" "INSTALLDIR"="'"${installdir}"'" "INSTALLDIREXE"="'"${installdirexe}"'" "INSTALLTYPE"=dword:00000002 "Version"="0.1" [HKEY_LOCAL_MACHINE\Software\WON\CDKeys] "Vampire"=hex:4e,07,4a,bf,8e,4d,c1,71,9c,de,2b,b9,91,2e,a3,e9' CONTENT_GAME_BIN_FILES="$(content_files 'GAME_BIN') $registry_dump_init_file" APP_REGEDIT="${APP_REGEDIT:-} $registry_dump_init_file" # Extract game data archive_extraction_default ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Set required registry keys ## TODO: This should be replaced with WINE_REGISTRY_INIT after the release of ./play.it 2.33.0, ## cf. https://forge.dotslashplay.it/play.it/play.it/-/issues/557 mkdir --parents "$(dirname "$registry_dump_init_file")" printf '%s' "$registry_dump_init_content" | iconv --from-code=UTF-8 --to-code=UTF-16 --output="$registry_dump_init_file" ) # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-van-helsing.sh0000750000000000000000000001652714471751340014401 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # The Incredible Adventures of Van Helsing: Final Cut # send your bug reports to bugs@dotslashplay.it ### script_version=20241124.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='van-helsing-final-cut' GAME_NAME='The Incredible Adventures of Van Helsing: Final Cut' ARCHIVE_BASE_0_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988).exe' ARCHIVE_BASE_0_MD5='11823fff68df72308f3f8ba8f9dfa820' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-1.bin' ARCHIVE_BASE_0_PART1_MD5='07fcaf654ce6cfb9026d1e6e40b06bf3' ARCHIVE_BASE_0_PART2_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-2.bin' ARCHIVE_BASE_0_PART2_MD5='de5281e71e9d68bb196da32c09048ec9' ARCHIVE_BASE_0_PART3_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-3.bin' ARCHIVE_BASE_0_PART3_MD5='721981718e036fb2fb4e848543241be7' ARCHIVE_BASE_0_PART4_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-4.bin' ARCHIVE_BASE_0_PART4_MD5='dc7981e674f6400d1919d56b735854fd' ARCHIVE_BASE_0_PART5_NAME='setup_the_incredible_adventures_of_van_helsing_-_final_cut_1.1.0b_(b)_(23988)-5.bin' ARCHIVE_BASE_0_PART5_MD5='0d9cec82a419c8abb5a7a414817e1446' ARCHIVE_BASE_0_SIZE='35870060' ARCHIVE_BASE_0_VERSION='1.1.0b-gog23988' ARCHIVE_BASE_0_URL='https://www.gog.com/game/the_incredible_adventures_of_van_helsing_final_cut' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' physx3common_x64.dll physx3cooking_x64.dll physx3_x64.dll vanhelsing_x64.exe' ## TODO: Check if the Galaxy libraries are required. CONTENT_GAME0_BIN_FILES=' galaxy64.dll galaxypeer64.dll' ## English voices should always be included, as there is no alternative localized voices. CONTENT_GAME_L10N_COMMON_FILES=' sounds/languages/eng' CONTENT_GAME_L10N_EN_FILES=' strings/eng ui/loadingscreens/eng videos/eng' CONTENT_GAME_L10N_FR_FILES=' ui/loadingscreens/fr strings/french videos/fr' CONTENT_GAME_DATA_TERRAINS_1_FILES=' terrains/barrikados terrains/belvaros terrains/bossc2 terrains/cave terrains/city1* terrains/clockwork_keep terrains/csatorna_* terrains/dark_carnival terrains/dr_csont terrains/driad_boss_arena terrains/final_boss terrains/floating_monastery terrains/gasmachine terrains/gergo_kezdoteszt terrains/giantwoods terrains/gorge_of_eternal_peril terrains/gyarnegyed terrains/haunted_forest_* terrains/hf_arena' CONTENT_GAME_DATA_TERRAINS_2_FILES=' terrains/ink* terrains/kapubirtok terrains/kisbarlang terrains/kohok* terrains/kristalyos_ink terrains/kutatolabor terrains/lair_01_03 terrains/memorial_perk terrains/nagyerdo terrains/nightmare_hollow_ring*' CONTENT_GAME_DATA_TERRAINS_3_FILES=' terrains/ostrom2 terrains/pokol* terrains/poksziklak terrains/pvp_karacsony terrains/steamhall terrains/szerpentin terrains/tetok2 terrains/tetok_final terrains/touchdown terrains/tutorial terrains/vh* terrains/viztisztito* terrains/wolf_den terrains/wormcave' CONTENT_GAME_DATA_FILES=' cfg cgshaders commontextures effects installutils models sounds textures ui remote_config_cache_production_worldwide.json' CONTENT_GAME0_DATA_PATH='app' CONTENT_GAME0_DATA_FILES=' cfg/skills/monster/__gargoyle_zuhanas_effect.cfg cfg/soldier/02_normal_ranged/atd_inkmachine_generalis.cfg' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/NeocoreGames/Van Helsing Final Cut' WINE_REGEDIT_PERSISTENT_KEYS=' HKEY_CURRENT_USER\Software\NeoCore Games\Van Helsing Final Cut' APP_MAIN_EXE='vanhelsing_x64.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_COMMON PKG_L10N_EN PKG_L10N_FR PKG_DATA_TERRAINS_1 PKG_DATA_TERRAINS_2 PKG_DATA_TERRAINS_3 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_TERRAINS_ID="${PKG_DATA_ID}-terrains" PKG_DATA_TERRAINS_1_ID="${PKG_DATA_TERRAINS_ID}-1" PKG_DATA_TERRAINS_2_ID="${PKG_DATA_TERRAINS_ID}-2" PKG_DATA_TERRAINS_3_ID="${PKG_DATA_TERRAINS_ID}-3" PKG_DATA_TERRAINS_DESCRIPTION="$PKG_DATA_DESCRIPTION - terrains" PKG_DATA_TERRAINS_1_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 1" PKG_DATA_TERRAINS_2_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 2" PKG_DATA_TERRAINS_3_DESCRIPTION="$PKG_DATA_TERRAINS_DESCRIPTION - 3" PKG_DATA_DEPS="${PKG_DATA_DEPS:-} $PKG_DATA_TERRAINS_1_ID $PKG_DATA_TERRAINS_2_ID $PKG_DATA_TERRAINS_3_ID" PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_COMMON_ID="${PKG_L10N_ID}-common" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_EN_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_FR_PROVIDES="$PKG_L10N_PROVIDES" PKG_L10N_DESCRIPTION='localization' PKG_L10N_COMMON_DESCRIPTION="$PKG_L10N_DESCRIPTION - common files" PKG_L10N_EN_DESCRIPTION="$PKG_L10N_DESCRIPTION - English" PKG_L10N_FR_DESCRIPTION="$PKG_L10N_DESCRIPTION - French" PKG_L10N_DEPS="$PKG_L10N_COMMON_ID" PKG_L10N_EN_DEPS="$PKG_L10N_DEPS" PKG_L10N_FR_DEPS="$PKG_L10N_DEPS" PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_L10N_ID $PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' deinterlace video/x-ms-asf' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write the localizations configuration ## English localization config_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/strings/languages.xml" cat > "$config_en" << EOF English eng EOF ## French localization config_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/strings/languages.xml" ## TODO: Check if including the English locale is required for the English voices to be used. cat > "$config_fr" << EOF French English FR;eng EOF # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation case "$(messages_language)" in ('fr') message='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) message='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' ## English localization printf "$message" "$lang_en" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_FR//') ## French localization printf "$message" "$lang_fr" ## Silence a ShellCheck false positive, word splitting is expected here ## SC2046 (warning): Quote this to prevent word splitting. # shellcheck disable=SC2046 print_instructions $(packages_list | sed 's/PKG_L10N_EN//') # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vaporum.sh0000750000000000000000000000420614471751340013646 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Vaporum # send your bug reports to bugs@dotslashplay.it ### script_version=20231004.1 PLAYIT_COMPATIBILITY_LEVEL='2.26' GAME_ID='vaporum' GAME_NAME='Vaporum' ARCHIVE_BASE_0='vaporum_patch_14_27515.sh' ARCHIVE_BASE_0_MD5='2c65dd89fbeec16740e1d57263606ffa' ARCHIVE_BASE_0_SIZE='3200000' ARCHIVE_BASE_0_VERSION='1.14-gog27515' ARCHIVE_BASE_0_URL='https://www.gog.com/game/vaporum' UNITY3D_NAME='VaporumGame' UNITY3D_PLUGINS=' libMouseLib.so ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data Localization" CONTENT_DOC_DATA_FILES=' BuildInfo.txt PatchNotes.txt' USER_PERSISTENT_DIRECTORIES=' Saves Settings' APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers PKG='PKG_BIN32' # shellcheck disable=SC2119 launchers_write PKG='PKG_BIN64' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-volgarr-the-viking.sh0000750000000000000000000000457014471751340015700 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 HS-157 # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Volgarr the Viking # send your bug reports to bugs@dotslashplay.it ### script_version=20231108.1 PLAYIT_COMPATIBILITY_LEVEL='2.27' GAME_ID='volgarr-the-viking' GAME_NAME='Volgarr the Viking' ARCHIVE_BASE_GOG_0_NAME='gog_volgarr_the_viking_2.1.0.3.sh' ARCHIVE_BASE_GOG_0_MD5='8593287f13c3104aa45b9c91264b4260' ARCHIVE_BASE_GOG_0_SIZE='200000' ARCHIVE_BASE_GOG_0_VERSION='1.36c-gog2.1.0.3' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/volgarr_the_viking' ARCHIVE_BASE_HUMBLE_0_NAME='VolgarrTheViking_v1.36c_Linux32.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='c3652629edb019838d8e1c7873f0716b' ARCHIVE_BASE_HUMBLE_0_SIZE='180000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.36c-humble' ARCHIVE_BASE_HUMBLE_0_URL='https://www.humblebundle.com/store/volgarr-the-viking' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE='Volgarr' CONTENT_GAME_BIN_FILES=' Volgarr' CONTENT_GAME_DATA_FILES=' Data.pk icon.png' CONTENT_GAME_DOC_FILES=' Readme.txt' APP_MAIN_EXE='Volgarr' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" ## TODO: Update the list of required native libraries. PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libstdc++.so.6 libGL.so.1 libSDL2-2.0.so.0' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data set_current_package 'PKG_DATA' # shellcheck disable=SC2119 icons_inclusion content_inclusion_default # Write launchers set_current_package 'PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-vvvvvv.sh0000750000000000000000000000643314471751340013544 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # VVVVVV # send your bug reports to 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.sh0000750000000000000000000000354314471751340014327 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-warhammer-40k-dakka-squadron.sh0000750000000000000000000000530514471751340017440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Antoine Le Gonidec set -o errexit ### # Warhammer 40,000: Dakka Squadron # send your bug reports to bugs@dotslashplay.it ### script_version=20240516.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='warhammer-40k-dakka-squadron' GAME_NAME='Warhammer 40,000: Dakka Squadron' ARCHIVE_BASE_0_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795).exe' ARCHIVE_BASE_0_MD5='746ce7f112d089a2aca8dd6d4458dd26' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-1.bin' ARCHIVE_BASE_0_PART1_MD5='f32a0390b27c406063fcf7ad3bff4655' ARCHIVE_BASE_0_PART2_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-2.bin' ARCHIVE_BASE_0_PART2_MD5='9c978a8867a9747039bcfceb462d0a2e' ARCHIVE_BASE_0_PART3_NAME='setup_warhammer_40000_dakka_squadron_-_flyboyz_edition_1.154277.shipping_(64bit)_(46795)-3.bin' ARCHIVE_BASE_0_PART3_MD5='ffb1a9b6e5343e6cb8955d6c8814ef97' ARCHIVE_BASE_0_SIZE='9200000' ARCHIVE_BASE_0_VERSION='1.154277-gog46795' ARCHIVE_BASE_0_URL='https://www.gog.com/game/warhammer_40000_dakka_squadron' UNREALENGINE4_NAME='dakkagame' CONTENT_PATH_DEFAULT='.' ## Work around a crash related to shaders compilation ## Without these native libraries, the game crashes with the following error: ## SlateD3DShaders::CompileShader() - D3DCompilerFunc Result: DXGI_ERROR_80004005 WINE_WINETRICKS_VERBS='d3dcompiler_43 d3dcompiler_47' APP_MAIN_EXE='dakkagame/binaries/win64/dakkagame-win64-shipping.exe' APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=123 --language=1033' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-warsow.sh0000750000000000000000000000553014471751340013500 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Warsow # send your bug reports to bugs@dotslashplay.it ### script_version=20240622.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='warsow' GAME_NAME='War§ow' ## This installer is no longer available from gog.com. ARCHIVE_BASE_0_NAME='gog_warsow_2.1.0.3.sh' ARCHIVE_BASE_0_MD5='028efe7a5f4dfd8851c2146431c7ca4a' ARCHIVE_BASE_0_SIZE='479771' ARCHIVE_BASE_0_VERSION='2.1-gog2.1.0.3' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_LIBS_BIN_PATH="${CONTENT_PATH_DEFAULT}/libs" CONTENT_LIBS_BIN64_PATH="$CONTENT_LIBS_BIN_PATH" CONTENT_LIBS_BIN64_FILES=' libangelwrap_x86_64.so libcin_x86_64.so libftlib_x86_64.so libirc_x86_64.so libref_gl_x86_64.so libsnd_openal_x86_64.so libsnd_qf_x86_64.so libui_x86_64.so' CONTENT_LIBS_BIN32_PATH="$CONTENT_LIBS_BIN_PATH" CONTENT_LIBS_BIN32_FILES=' libangelwrap_i386.so libcin_i386.so libftlib_i386.so libirc_i386.so libref_gl_i386.so libsnd_openal_i386.so libsnd_qf_i386.so libui_i386.so' CONTENT_GAME_BIN64_FILES=' warsow.x86_64 wsw_server.x86_64 wswtv_server.x86_64' CONTENT_GAME_BIN32_FILES=' warsow.i386 wsw_server.i386 wswtv_server.i386' CONTENT_GAME_DATA_FILES=' basewsw' CONTENT_DOC_DATA_PATH="${CONTENT_PATH_DEFAULT}/docs" CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE_BIN64='warsow.x86_64' APP_MAIN_EXE_BIN32='warsow.i386' APP_MAIN_ICON='../support/icon.png' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-we-the-revolution.sh0000750000000000000000000000610414471751340015551 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # We. The Revolution # send your bug reports to bugs@dotslashplay.it ### script_version=20241107.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='we-the-revolution' GAME_NAME='We. The Revolution' ARCHIVE_BASE_0_NAME='we_the_revolution_1_3_0_31907.sh' ARCHIVE_BASE_0_MD5='fafc1df1317fdfc73223367ed19eea52' ARCHIVE_BASE_0_SIZE='2997578' ARCHIVE_BASE_0_VERSION='1.3.0-gog31907' ARCHIVE_BASE_0_URL='https://www.gog.com/game/we_the_revolution' UNITY3D_NAME='We.TheRevolution' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data ## Include the Steam libraries explicitly, as UNITY3D_PLUGINS can not handle a mix of architectures in a single path ## TODO: Check if the inclusion of the Steam libraries is required install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api64.so" \ "$(package_path 'PKG_BIN64')$(path_libraries)/libsteam_api64.so" install -D --mode=644 \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api.so" \ "$(package_path 'PKG_BIN32')$(path_libraries)/libsteam_api.so" rm \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api64.so" \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins/libsteam_api.so" content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-what-happened-to-survey-team-4.sh0000750000000000000000000000410414471751340017737 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # What Happened to Survey Team 4? # send your bug reports to bugs@dotslashplay.it ### script_version=20230805.1 GAME_ID='what-happened-to-survey-team-4' GAME_NAME='What Happened to Survey Team 4?' ARCHIVE_BASE_0='what-happened-to-survey-team-4-windows.zip' ARCHIVE_BASE_0_MD5='e1a85df1abe704c1d0e18324e3a73ae0' ARCHIVE_BASE_0_SIZE='580000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://iaintheindie.itch.io/what-happened-to-survey-team-4' UNITY3D_NAME='What happened to Survey Team 4' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=" MonoBleedingEdge ${UNITY3D_NAME}_Data/Plugins ${UNITY3D_NAME}.exe UnityPlayer.dll" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" APP_MAIN_EXE="${UNITY3D_NAME}.exe" PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions target_version='2.24' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages packages_generation # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-1.sh0000750000000000000000000000471114471751340015223 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Wing Commander 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20240505.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='wing-commander-1' GAME_NAME='Wing Commander' ARCHIVE_BASE_1_NAME='setup_wing_commander_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='850542ba9a543378a4894156b41ce511' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='45000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_BASE_0='setup_wing_commander_2.1.0.18.exe' ARCHIVE_BASE_0_MD5='a4a3a355489e66bcecd34d1d9041ebb5' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='49000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.18' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc.exe sm2.exe gamedat *.cfg' CONTENT_GAME0_MAIN_PATH='__support/save' CONTENT_GAME0_MAIN_FILES=' gamedat' CONTENT_DOC_MAIN_FILES=' *.pdf' USER_PERSISTENT_DIRECTORIES=' gamedat' USER_PERSISTENT_FILES=' *.cfg' APP_MAIN_EXE='wc.exe' APP_MAIN_ICON='app/goggame-1207662643.ico' APP_MAIN_DOSBOX_PRERUN='config -set cpu cycles=fixed 4000 loadfix -1' APP_SM2_ID="${GAME_ID}-the-secret-missions-2" APP_SM2_NAME="$GAME_NAME - The Secret Missions 2 - Crusade" APP_SM2_EXE='sm2.exe' APP_SM2_ICON='app/goggame-1207662643.ico' APP_SM2_DOSBOX_PRERUN='config -set cpu cycles=fixed 4000 loadfix -1' ## Easier upgrade from packages generated with pre-20190224.1 scripts. PKG_MAIN_PROVIDES="${PKG_MAIN_PROVIDES:-} wing-commander" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-2.sh0000750000000000000000000000612014471751340015220 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Wing Commander 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20230103.1 GAME_ID='wing-commander-2' GAME_NAME='Wing Commander Ⅱ' ARCHIVE_BASE_1='setup_wing_commander_ii_1.0_(28045).exe' ARCHIVE_BASE_1_MD5='f5288f26451f7c1c860a269a8198f554' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='46000' ARCHIVE_BASE_1_VERSION='1.0-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_1_2' ARCHIVE_BASE_0='setup_wing_commander2_2.1.0.18.exe' ARCHIVE_BASE_0_MD5='f94a7eb75e4ed454108d13189d003e9f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='49000' ARCHIVE_BASE_0_VERSION='1.0-gog2.1.0.18' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc2.exe so1.exe so2.exe gamedat *.cfg' CONTENT_DOC_MAIN_FILES=' *.pdf' APP_MAIN_EXE='wc2.exe' APP_MAIN_ICON='app/goggame-1207662653.ico' APP_MAIN_ICON_0='goggame-1207662653.ico' APP_SO1_ID="${GAME_ID}-special-operations-1" APP_SO1_NAME="$GAME_NAME - Special Operations 1" APP_SO1_EXE='so1.exe' APP_SO1_ICON='app/goggame-1207662653.ico' APP_SO1_ICON_0='goggame-1207662653.ico' APP_SO2_ID="${GAME_ID}-special-operations-2" APP_SO2_NAME="$GAME_NAME - Special Operations 2" APP_SO2_EXE='so2.exe' APP_SO2_ICON='app/goggame-1207662653.ico' APP_SO2_ICON_0='goggame-1207662653.ico' USER_PERSISTENT_FILES=' *.cfg' USER_PERSISTENT_DIRECTORIES=' gamedat' PKG_MAIN_DEPS='dosbox' # Work around performance issues APP_MAIN_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN"' config -set cpu cycles=fixed 8000 loadfix -32' APP_SO1_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" APP_SO2_DOSBOX_PRERUN="$APP_MAIN_DOSBOX_PRERUN" # Work around sound issues that can lock the game during the first intro speech APP_MAIN_PRERUN="$APP_MAIN_PRERUN"' # Work around sound issues that can lock the game during the first intro speech export DOSBOX_SBLASTER_IRQ=5' APP_SO1_PRERUN="$APP_MAIN_PRERUN" APP_SO2_PRERUN="$APP_MAIN_PRERUN" # Load common functions target_version='2.20' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers launchers_write 'APP_MAIN' 'APP_SO1' 'APP_SO2' # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-wing-commander-3.sh0000750000000000000000000000466514471751340015235 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Wing Commander 3 # send your bug reports to bugs@dotslashplay.it ### script_version=20240428.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='wing-commander-3' GAME_NAME='Wing Commander Ⅲ' ARCHIVE_BASE_1_NAME='setup_wing_commander_iii_1.4_(28045).exe' ARCHIVE_BASE_1_MD5='9418288d818315fbbede459bef76b82c' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_wing_commander_iii_1.4_(28045)-1.bin' ARCHIVE_BASE_1_PART1_MD5='1caaf5ba29075e67a00b8009bc53e463' ARCHIVE_BASE_1_SIZE='1900000' ARCHIVE_BASE_1_VERSION='1.4-gog28045' ARCHIVE_BASE_1_URL='https://www.gog.com/game/wing_commander_3_heart_of_the_tiger' ARCHIVE_BASE_0_NAME='setup_wing_commander3_2.1.0.7.exe' ARCHIVE_BASE_0_MD5='c9c9b539e6e1f0b0509b6f777878d91e' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1900000' ARCHIVE_BASE_0_VERSION='1.4-gog2.1.0.7' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' CONTENT_GAME_MAIN_FILES=' wc3 data.dat objects.tre' CONTENT_DOC_MAIN_FILES=' *.pdf' GAME_IMAGE='data.dat' USER_PERSISTENT_DIRECTORIES=' wc3' USER_PERSISTENT_FILES=' *.WSG' APP_MAIN_EXE='wc3.exe' APP_MAIN_ICON='app/goggame-1207658966.ico' APP_MAIN_ICON_0='goggame-1207658966.ico' ## The type can not be omitted, because the binary is actually on the CD-ROM image. APP_MAIN_TYPE='dosbox' ## Run the game from the mounted CD-ROM image. APP_MAIN_DOSBOX_PRERUN='d:' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons content_inclusion_default # Write launchers ## Work around the binary presence check, ## it is actually included in the CD-ROM image. launcher_target_presence_check() { return 0; } launchers_generation # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-witch-thief.sh0000750000000000000000000000330614471751340014370 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Witch Thief # send your bug reports to bugs@dotslashplay.it ### script_version=20240707.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='witch-thief' GAME_NAME='Witch Thief' ARCHIVE_BASE_0_NAME='witch-thief-win.zip' ARCHIVE_BASE_0_MD5='e91763d8cca8574750a5220954536c73' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0-itch' ARCHIVE_BASE_0_URL='https://cardboardkeep.itch.io/witch-thief' UNITY3D_NAME='WitchThief' CONTENT_PATH_DEFAULT='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/CardboardKeep/WitchThief' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-witchway.sh0000750000000000000000000000323514471751340014015 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.sh0000750000000000000000000001427714471751340014253 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.sh0000750000000000000000000000671614471751340015472 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=20221210.2 GAME_ID='world-to-the-west' GAME_NAME='World to the West' UNITY3D_NAME='WorldToTheWest' ARCHIVE_BASE_1='world_to_the_west_en_1_3_0_23314.sh' ARCHIVE_BASE_1_MD5='ac200556d642b1529526375b65642574' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='2100000' ARCHIVE_BASE_1_VERSION='1.3.0-gog23314' ARCHIVE_BASE_1_URL='https://www.gog.com/game/world_to_the_west' ARCHIVE_BASE_0='gog_world_to_the_west_2.0.0.2.sh' ARCHIVE_BASE_0_MD5='dd393d192c7569cc19edb0e3fff7851a' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='2500000' ARCHIVE_BASE_0_VERSION='1.0.1-gog2.0.0.2' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86 ${UNITY3D_NAME}.x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64 ${UNITY3D_NAME}.x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN32_ARCH='32' PKG_BIN32_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPENDENCIES_LIBRARIES=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES_0=' ld-linux-x86-64.so.2 libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2 libz.so.1' PKG_BIN64_ARCH='64' PKG_BIN64_DEPS="$PKG_BIN32_DEPS" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN32_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES_0="$PKG_BIN32_DEPENDENCIES_LIBRARIES_0" # Load common functions target_version='2.19' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # Enforce the use of a common Unity3D name unity3d_name=$(unity3d_name) alternative_name='WTTW_GOG_1_3_0_Linux' for name_suffix in \ '.x86' \ '.x86_64' \ '_Data' do if [ -e "${alternative_name}${name_suffix}" ]; then mv "${alternative_name}${name_suffix}" "${unity3d_name}${name_suffix}" fi done ) # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build package write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yokus-island-express.sh0000750000000000000000000000437314471751340016273 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-yono-and-the-celestial-elephants.sh0000750000000000000000000000433414471751340020405 0ustar rootroot#!/bin/sh # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Yono and the Celestial Elephants # send your bug reports to bugs@dotslashplay.it ### script_version=20240517.1 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='yono-and-the-celestial-elephants' GAME_NAME='Yono and the Celestial Elephants' ARCHIVE_BASE_1_NAME='setup_yono_and_the_celestial_elephants_01.01_cn_update_(40286).exe' ARCHIVE_BASE_1_MD5='1503a970416ab3cd2e68db7f577f9701' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_SIZE='1200000' ARCHIVE_BASE_1_VERSION='01.01-gog40286' ARCHIVE_BASE_1_URL='https://www.gog.com/game/yono_and_the_celestial_elephants' ARCHIVE_BASE_0_NAME='setup_yono_and_the_celestial_elephants_01.01_(15299).exe' ARCHIVE_BASE_0_MD5='c16fddaa24eded544fb9ee42d5b4e2a2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1200000' ARCHIVE_BASE_0_VERSION='01.01-gog15299' UNITY3D_NAME='yono and the celestial elephants' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_0='app' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Neckbolt/Yono and the Celestial Elephants' ## Improve controller support. ## Tested only with an XBox 360 controller. WINE_WINETRICKS_VERBS='xinput' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yooka-laylee.sh0000750000000000000000000000513414471751340014551 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=20230419.1 GAME_ID='yooka-laylee' GAME_NAME='Yooka Laylee' ARCHIVE_BASE_0='gog_yooka_laylee_2.1.0.2.sh' ARCHIVE_BASE_0_MD5='151e4f41960d50047d41bb3c010da187' ARCHIVE_BASE_0_VERSION='1.08-gog2.1.0.2' ARCHIVE_BASE_0_SIZE='9500000' ARCHIVE_BASE_0_URL='https://www.gog.com/game/yookalaylee' UNITY3D_NAME='YookaLaylee' CONTENT_PATH_DEFAULT='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86 ${UNITY3D_NAME}_Data/Plugins/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64 ${UNITY3D_NAME}_Data/Plugins/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libSDL2-2.0.so.0 libstdc++.so.6 libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-ys-1.sh0000750000000000000000000000431614471751340012750 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2019 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ys 1 # send your bug reports to bugs@dotslashplay.it ### script_version=20230428.3 GAME_ID='ys-1' GAME_NAME='Ys Ⅰ: Ancient Ys Vanished Omen' ARCHIVE_BASE_0='setup_ys_1_2.0.0.1.exe' ARCHIVE_BASE_0_MD5='ff6c2e8ab34ea15226521fb8b6c8c23b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='700000' ARCHIVE_BASE_0_VERSION='1.1.0-gog2.0.0.1' ARCHIVE_BASE_0_URL='https://www.gog.com/game/ys_i_ii_chronicles' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' config.exe ys1plus.exe' CONTENT_GAME_DATA_FILES=' release' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Saved Games/FALCOM/ys12c' APP_MAIN_EXE='ys1plus.exe' APP_CONFIG_ID="${GAME_ID}-config" APP_CONFIG_NAME="$GAME_NAME - configuration" APP_CONFIG_EXE='config.exe' APP_CONFIG_CAT='Settings' PACKAGES_LIST='PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' video/mpeg, systemstream=(boolean)true, mpegversion=(int)1' # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers PKG='PKG_BIN' # shellcheck disable=SC2119 launchers_write # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-yume-nikki.sh0000750000000000000000000000630514471751340014241 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Yume Nikki # send your bug reports to bugs@dotslashplay.it ### script_version=20250324.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='yume-nikki' GAME_NAME='Yume Nikki' ## This archive is no longer available for sale from Playism store, ## as they are now only a Steam keys reseller. ARCHIVE_BASE_0_NAME='YumeNikki_EN.zip' ARCHIVE_BASE_0_MD5='fd1e659f777ad81bd61ebd6df573140e' ARCHIVE_BASE_0_SIZE='66000' ARCHIVE_BASE_0_VERSION='0.10a-playism' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' RPG_RT.* Harmony.dll' CONTENT_GAME_DATA_FILES=' Map*.lmu Backdrop Battle Battle2 BattleCharSet BattleWeapon CharSet ChipSet FaceSet Frame GameOver Monster Movie Music Panorama Picture Sound System System2 Title' CONTENT_DOC_DATA_PATH='YumeNikki_EN' CONTENT_DOC_DATA_FILES=' *.txt' APP_MAIN_EXE='RPG_RT.exe' ## Japanese locale is required for correct fonts display. APP_MAIN_PRERUN=' # Japanese locale is required for correct fonts display export LC_ALL=ja_JP.UTF-8 ' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## TODO: A dependency on the wqy-microhei.ttc font should be added. PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Add requirement for the extration of the inner .lzh archive REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} lha" # Add requirements for tweaking the encoding of file names and contents REQUIREMENTS_LIST="${REQUIREMENTS_LIST:-} iconv convmv" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/YumeNikki_EN/YumeNikki.lzh" ARCHIVE_INNER_TYPE='lha' archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" ( cd "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Convert file paths to UTF-8 encoding. find . -exec \ convmv --notest -f SHIFT-JIS -t UTF-8 {} + >/dev/null 2>/dev/null ## Fix Windows-style paths. sed --in-place 's/¥/\\/g' 'YumeNikki_EN/YumeNikkiREADME.txt' ## Convert the text files contents to UTF-8 encoding. shell_command='contents=$(iconv --from-code CP932 --to-code UTF-8 "$1")' shell_command="$shell_command"'; printf "%s" "$contents" > "$1"' find 'YumeNikki_EN' -name '*.txt' -exec \ sh -c "$shell_command" -- '{}' \; ) # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-ziggurat.sh0000750000000000000000000000557614471751340014024 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 BetaRays # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Ziggurat # send your bug reports to bugs@dotslashplay.it ### script_version=20230419.1 GAME_ID='ziggurat' GAME_NAME='Ziggurat' ## This DRM-free archive is no longer available for sale from Humble Bundle. ARCHIVE_BASE_HUMBLE_0='ZigguratLinux.tar.gz' ARCHIVE_BASE_HUMBLE_0_MD5='f990c99e4351b1ae465d551f0c5030be' ARCHIVE_BASE_HUMBLE_0_SIZE='1200000' ARCHIVE_BASE_HUMBLE_0_VERSION='1.0-humble1' ARCHIVE_BASE_GOG_0='gog_ziggurat_2.3.0.5.sh' ARCHIVE_BASE_GOG_0_MD5='3b5ac4a4fd7470d04f72680d8cce8b09' ARCHIVE_BASE_GOG_0_SIZE='1200000' ARCHIVE_BASE_GOG_0_VERSION='1.0-gog2.3.0.5' ARCHIVE_BASE_GOG_0_URL='https://www.gog.com/game/ziggurat' UNITY3D_NAME='Ziggurat' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_HUMBLE='.' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_GAME_BIN32_FILES=" ${UNITY3D_NAME}.x86 ${UNITY3D_NAME}_Data/Mono/x86" CONTENT_GAME_BIN64_FILES=" ${UNITY3D_NAME}.x86_64 ${UNITY3D_NAME}_Data/Mono/x86_64" CONTENT_GAME_DATA_FILES=" ${UNITY3D_NAME}_Data" PACKAGES_LIST='PKG_BIN32 PKG_BIN64 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions target_version='2.23' PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction 'SOURCE_ARCHIVE' # Include game icons PKG='PKG_DATA' # shellcheck disable=SC2119 icons_inclusion # Include game data content_inclusion_default # Delete temporary files rm --recursive "${PLAYIT_WORKDIR}/gamedata" # Write launchers for PKG in 'PKG_BIN32' 'PKG_BIN64'; do # shellcheck disable=SC2119 launchers_write done # Build packages write_metadata build_pkg # Print instructions print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 tests/check-license.sh0000750000000000000000000000064314471751340013756 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 LICENSE0000640000000000000000000000501414471751340010563 0ustar rootrootThis license applies to all files outside of the "games" subdirectory, and is the default one for files in "games" directory. If a script specifies another license in its headers, the license set in the script takes precedence over this one. # BSD-2-Clause Copyright © 2015 Antoine Le Gonidec Copyright © 2015 mortalius Copyright © 2016 Mopi Copyright © 2017 HS-157 Copyright © 2017 Jacek Szafarkiewicz Copyright © 2017 Phil Morrell Copyright © 2018 BetaRays Copyright © 2018 Sébastien “Elzen” Dufromentel Copyright © 2018 VA Copyright © 2018 Andrey Butirsky Copyright © 2018 Dominique Derrier Copyright © 2019 Erwann Duclos Copyright © 2019 Emmanuel Gil Peyrot Copyright © 2020 berru Copyright © 2020 Hoël Bézier Copyright © 2020 macaron Copyright © 2020 Alarig Le Lay Copyright © 2020 Igor Telmenko Copyright © 2020 bbob Copyright © 2020 edgar.vincent Copyright © 2021 Anna Lea Copyright © 2021 Daguhh Copyright © 2021 briaguya Copyright © 2021 Christian Stalp Copyright © 2021 dany_wilde Copyright © 2021 Thomas Vasileiou Copyright © 2023 Fabien Givors Copyright © 2023 locynaeh Copyright © 2025 tyzef All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000640000000000000000000000502414471751340011217 0ustar rootrootcollection_name = 50_community UID := $(shell id --user) ifeq ($(UID),0) prefix = /usr/local datadir = $(prefix)/share/games else ifeq ($(XDG_DATA_HOME),) XDG_DATA_HOME := $(HOME)/.local/share endif prefix = $(XDG_DATA_HOME) datadir = $(prefix) endif collections_path = $(DESTDIR)$(datadir)/play.it/collections # Install the game scripts .PHONY: install uninstall install: install -D --mode=755 --target-directory=$(collections_path)/$(collection_name) games/* uninstall: rm $(collections_path)/$(collection_name)/play-*.sh rmdir -p --ignore-fail-on-non-empty $(collections_path)/$(collection_name) # Generate tarballs, for easier packaging .PHONY: dist ## The generated tarball is signed with gpg by default, ## NO_SIGN should be set to a non-0 value to skip the signature. NO_SIGN := 0 dist: DATE := $(shell date +%F) dist: TARBALL := $(collection_name)_$(DATE).tar.gz dist: TAR_OPTIONS := --sort=name --mtime=2023-08-25 --owner=root:0 --group=root:0 --use-compress-program='gzip --no-name' dist: games/*.sh 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.md0000640000000000000000000003710414471751340011042 0ustar rootroot# ./play.it community-maintained games collection The codebase is maintained at [https://git.dotslashplay.it/games-community/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-community/]: https://git.dotslashplay.it/games-community/ [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 repository provides game scripts that can be used with ./play.it to install a collection of DRM-free games. It is maintained by the same team than the ./play.it library and tools. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for ./play.it, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-community play.it-community.git cd play.it-community.git make install ``` ## Usage Usage instructions are provided on the main ./play.it repository: [./play.it: Installer for DRM-free commercial games — Usage] [./play.it: Installer for DRM-free commercial games — Usage]: https://git.dotslashplay.it/scripts/about/#usage ## Contributing ### First contribution There is no real rule for your first contribution. You can host your updated code anywhere you like and contact us via any way described in the [Contact information] section below. It is OK to expose your updated code through GitHub or GitLab.com if you have nothing better at hand, but we would be thankful if you would instead use some hosting outside of these big silos. [Contact information]: #contact-information We do not enforce any workflow like merge/pull requests or any such thing. We are interested in the result of your work, not in how you got to it. So shatter your shackles, and for once take pleasure in working *however you like*! You are not even required to use git if you do not know or do not like this tool. Please try to follow these simple guidelines, and your contribution is probably going to be accepted quickly: - Run `make check` before submitting your code, to ensure you did not break anything by accident; - Use tabs for indentation. No real developer would ever indent anything with spaces. ### Regular contributions If you keep contributing on a more regular basis (sending 3 patches in the same year would already make you a regular) we can grant you direct write access to the repositories hosted at git.dotslashplay.it. This is not mandatory, if for some reason you can not or do not want to work with git you can simply keep following the "First contribution" guidelines, and forget about this whole "Regular contributions" section. To grant you such an access we need nothing but a public SSH key, that you can send us through any way described in the [Contact information] section below. [Contact information]: #contact-information Once you have been granted access, you should add the following to your local SSH configuration: ``` Host git.dotslashplay.it Port 1962 User gitolite3 ``` You should then update the remote of your local repository, with the following command (assuming a remote named "upstream"): ``` git remote set-url --push upstream ssh://git.dotslashplay.it/games-community ``` Since these repositories are worked on by several people, there are a couple extra guidelines that you should follow: - Your work should always be pushed to a dedicated branch, never on the main branch; - Game script updates, including bug fixes, should be pushed to branches named with a "update/" prefix; - Addition of new game scripts should be pushed to branches named with a "new/" prefix; - You are allowed to push code to branches opened by other contributors, but please communicate with them if you plan to do so; - Force push and branches deletion are not allowed, if you want a branch to be deleted please ask us to do it for you. ## Supported games - 140 - 1365 - 6180 The Moon - A Bewitching Revolution - A Boy and His Blob - A Hat in Time - A House of Many Doors - A Lullaby of Colors - A Musical Story - A Plague Tale: Innocence - A Story About My Uncle - A Tale of Paper: Refolded (full game and free demo) - Abzû - Accelerate - Action Henk - Afterdream - Akalabeth: World of Doom - Alan Wake’s American Nightmare - Amnesia: The Dark Descent - Among the Sleep - Anarcute - Anima: Gate of Memories - Anodyne - Ape Out - Aquaria - Aragami - Arcanum: Of Steamworks and Magick Obscura - Art of Fighting 2 - Ascendant - Assassinʼs Creed - Assault Android Cactus - Asura - Atone: Heart of the Elder Tree - Aztez - Backbone - Baseball Stars 2 - Basingstoke - Batman: Arkham series: - Batman: Arkham Asylum - Batman: Arkham City - Batman: Arkham Origins - Batman: Arkham Knight - Battle Chef Brigade - Bear and Breakfast - Beatbuddy: Tale of the Guardians - Bee Simulator - BFF or Die - Binaries - Bio Menace - Biped - Bit.Trip games: - Bit.Trip BEAT - Bit.Trip Runner - Bit.Trip Presents… Runner2: Future Legend of Rhythm Alien - Bit.Trip: Runner 3 - Bleed series: - Bleed - Bleed 2 - Bombshell - Book of Demons - Braid - Broforce - Brütal Legend - Bubbles the Cat - Butcher (full game and free demo) - Candleman - Capsized - Card City Nights - Cat Quest series: - Cat Quest - Cat Quest 2 - Cats are Liquid series: - A Light in the Shadows - A Better Place - Cayne - Celeste - Chained Echoes - Chronology - Cineris Somnia - Codemancer - Convoy - Cook, Serve, Delicious! 2!! - Cornerstone: The Song of Tyrim - Costume Quest - CrossCode (full game and free demo) - Crossing Souls (free demo only) - Cryptark - Crypt of the NecroDancer: - Crypt of the NecroDancer - Amplified - Dark Echo - Darksiders 2 - Deadbolt - Dead Cells: - Dead Cells - Rise of the Giant - The Bad Seed - Deadlight - Death’s Door - Deep Sky Derelicts - Deltarune - Chapter 1 - Detention - Dex - Dicey Dungeons - Dinʼs Curse - Disney 1994 games: - Aladdin - The Jungle Book - The Lion King - Divinity series: - Divine Divinity - Divinity: Original Sin - Donʼt Starve: - Donʼt Starve - Reign of Giants - Shipwrecked - Dragon Age: Origins - Dream - Dreaming Sarah - D: The Game - Duet - Duke Nukem 3D - Dust: An Elysian Tail - Dustforce DX - Earthlock - Earthworm Jim - The Indifferent Wonder of an Edible Place - Element4l - Elephantasy - Enter the Gungeon - Epistory - Typing Chronicles - Equaboreal 12.21 - Escape Goat series: - Escape Goat - Escape Goat 2 - Eschalon: Book 1 - Ether One - Evan’s Remains - Everspace - Everything - Evoland series: - Evoland - Evoland 2, A Slight Case of Spacetime Continuum Disorder - Fallout series: - Fallout - Fallout 2 - Fallout: New Vegas - FAR: Lone Sails - Fatal Fury Special - Fear Equation - Feist - Fez - Figment series: - Figment - Figment 2: Creed Valley - FixFox - Flashout 3D: Enhanced Edition - Flat Kingdom - FlatOut series: - FlatOut - FlatOut 2 - Flux Caves - Forced - Forgotton Anne - Fossil Echo - Fotonica - Four Sided Fantasy - Fragments of Euclid - Fugue - Garden In! - Ghost of a Tale - Giana Sisters series: - Giana Sisters: Twisted Dreams - Giana Sisters: Rise of the Owlverlord - Golden Treasure - Grip - Gris - Growbot - Grow: Song of the Evertree - Guide of the Butterfly - Gun-Toting Cats - Hacknet - Haimrik - Hammerwatch - Hand Of Fate - Haven - Headspun - Heal - Helium Rain - Hellblade: Senuaʼs Sacrifice - Help Will Come Tomorrow - Heroine’s Quest: The Herald of Ragnarok - Hitman: Codename 47 - Hoa - Hob - Hollow Knight - Horizon Zero Dawn - Hotline Miami - Hot Pot Panic - Hounds of Valor (demo) - Hugo 1: Hugo’s House of Horrors - Iconoclasts - Ikenfell - Indivisible - Inkulinati (full game and free demo) - Inner - Intrusion 2 - Itorah - Jazzpunk - Jotun - Journey to the Savage Planet - Just Cause 2 - Just one, must choose - JYDGE - Kero Blaster - Kind Words - Kingdom Come: Deliverance: - Kingdom Come: Deliverance - A woman's lot - Band of bastards - From the ashes - HD Sound pack - HD Texture pack - HD Voice pack - The amorous adventures of bold sir Hans Capon - Treasures of the past - Kingdom New Lands - King of the Monsters - Kingsway - Knights of Pen and Paper - Kona - Kraken Academy - Kyn - La•Mulana - Legend of Grimrock - Lego Batman: The Videogame - Lego Harry Potter: Years 1-4 - Lennaʼs Inception - Lieve Oma - Lilaʼs Sky Ark - Limbo - Litil Divil - Little Big Adventure series: - Little Big Adventure - Little Big Adventure 2 - Little Bug - Little Nightmares 1 - Location Withheld - Lo-Fi Room - Lonesome Village - Lords of Xulima - Lost Ruins - Lost Words: Beyond the Page - Lovers in a Dangerous Spacetime - Lumini - Mable & the Wood - Man Oʼ War: Corsair - Warhammer Naval Battles - Marble Age - Mark of the Ninja: - Mark of the Ninja - Mark of the Ninja - Special Edition - Medieval Dynasty - Melodyʼs Escape - Mesmer - Metal Slug series: - Metal Slug 2 - Metal Slug 3 - Mimo - Minecraft 4K - Minit - Minute of Islands - Mirrorʼs Edge - Mobius - Momodora: Reverie Under the Moonlight - Monad - Monster Sanctuary - Moon Hunters - Mortal Kombat series: - Mortal Kombat 1 - Mortal Kombat 2 - Mortal Kombat 3 - Museum of Mechanics: Lockpicking - Mushroom 11 - Mutazione - My Memory of Us - Oh Jeez, Oh No, My Rabbits Are Gone !!! - My Time at Portia - Nanotale - Typing Chronicles - Neon Code - neon Drive - Neurodeck: Psychological Deckbuilder - Never Alone - Neverending Nightmares - Neverwinter Nights: - Neverwinter Nights - Neverwinter Nights: Enhanced Edition - Nihilumbra - Noctropolis - Noita - No Manʼs Sky - Nowhere Prophet - NyxQuest: Kindred Spirits - Obduction - Ocean’s Heart - Octodad Dadliest Catch - Oddworld: Abeʼs Oddysee - One Hand Clapping - Ori and the Blind Forest - Osmos - Out of Line - Out There: Ω Edition - Overgrowth - Overload - Owlboy - Pacapong - Pandemonium! - Paper Sorcerer - Papers, Please - Papo and Yo - Particulars - Pavilion - Peck N Run - Pendula Swing: The Complete Journey - Phoning Home - Pid - Pier Solar and the Great Architects - Pikuniku - Pilgrims - Pine - Pink Heaven - Pink Hour - Pinstripe - Pirates: - Pirates! - Pirates Gold - Pixel Piracy - Planet Alpha - Plant Daddy - Pokemon Insurgence - Poly Bridge - Potion Craft: Alchemy simulator (full game and free demo) - Prince of Persia (2008) - Privateer - Project Feline - Proteus - Psychonauts - Puddle - Pulse - Quench - Quern - Undying Thoughts - Quiet as a Stone - Race The Sun: - Race The Sun - Sunrise - Reassembly - Rebel Galaxy - République - Restless Soul - Retrace - Retro City Rampage - Reventure - Risk of Rain - Road 96 - Robin Hood: The Legend of Sherwood - Rogue legacy - Röki - Sable - Sagebrush - Samurai Shodown 2 - Scarf - Scarlet Hood and the Wicked Wood - Seasons After Fall - Secrets of Raetikon - Sengoku 3 - Sentris - Shantae and the Pirateʼs Curse - Shelter series: - Shelter - Shelter 2 - Paws: A Shelter 2 Game - Shovel Knight: Treasure Trove - Six Cats Under - Skyshineʼs Bedlam - Slay the Spire - Slipways - Solar 2 - Solar Flux - Solstice - SOMA - Sort the Court - South Scrimshaw, Part One - Sovereign Syndicate - Space Tail: Every Journey Leads Home - Spelunky - Spiritfarer - SpringBack - Stargunner - Starship Titanic - Starship Traveller - Star-Twine - Star Vikings (free demo only) - Star Wars Battlefront 2 - SteamWorld games: - SteamWorld Dig - SteamWorld Dig 2 - SteamWorld Heist - SteamWorld Quest - Steel Rats - Sticky Business - Stories: The Path of Destinies - Strafe - Strike Suit Zero - Summer in Mara - Sunblaze - Sundered - Sunlight - Superhot - Super Meat Boy - Supercow - Symphonia - Symphony - System Shock 2 - Tag: The Power of Paint - Tales of the Neon Sea - Tandem: A Tale of Shadows - Tangledeep - Tengami - Terraria - Teslagrad - The 7th Guest - The Adventures of Shuggy - The Aquatic Adventure of the Last Human - The Bardʼs Tale 4 - The Binding of Isaac: - Rebirth - Afterbirth - Afterbirth + - Repentance - The Coma - The Council - The Count Lucanor - The Deer God - The Elder Scrolls series: - The Elder Scrolls: Arena - The Elder Scrolls 2: Daggerfall - The Elder Scrolls 5: Skyrim - The Elder Scrolls 5: Skyrim - Anniversary Upgrade - The Fall - The Flame in the Flood - The Girl and the Robot - The Great Perhaps - The Hive - The King of Fighters 2000 - The Kingʼs Bird - The Last Tinker: City of Colors - The Planet Crafter - There is no Game: Wrong Dimension - The Search - The Silver Case (free demo) - The Smurfs: Mission Vileaf - The Sojourn - The Stillness of the Wind - The Subject - The Swords of Ditto: Mormoʼs Curse - The Temple of Elemental Evil - The Warlock of Firetop Mountain - The Westport Independent - The Witcher series: - The Witcher 2: Assassins of Kings - The Witcher 3: Wild Hunt - The World Begins With You - The World Next Door - Thief 3: Deadly Shadows - This War of Mine: - This War of Mine - The Little Ones - Fading Embers - Fatherʼs Promise - The Last Broadcast - Thomas Was Alone - Time Loader - Tiny and Big: Grandpaʼs Leftovers - Tiny Hunter - Toki Tori 2 - Toren - Total Annihilation: Kingdoms - Touhou series: - Touhou Chireiden ~ Subterranean Animism (free demo only) - Touhou Seirensen ~ Undefined Fantastic Object (free demo only) - Touhou Touhou Shinreibyou ~ Ten Desires (free demo only) - Touhou Kishinjou ~ Double Dealing Character (free demo only) - Touhou Hifuu Nightmare Diary ~ Violet Detector - Touhou Koumakyou ~ the Embodiment of Scarlet Devil (free demo only) - Touhou Kaeizuka ~ Phantasmagoria of Flower View (free demo only) - Tower of Guns - Townscaper - TrackMania Nations Forever - Trine series: - Trine - Trine 2 - Triple Triad Gold - Tulpa - TUNIC - Turnip Boy Commits Tax Evasion - Ultima 4: Quest of the Avatar - Undertale - unEpic - Unsung Warriors Prologue Prologue - Unwording - Urtuk: The Desolation - Utopias - Vagrus - The Riven Realms: Prologue - Vambrace: Cold Soul - Vampire: The Masquerade - Redemption - The Incredible Adventures of Van Helsing: Final Cut - Vaporum - Volgarr the Viking - VVVVVV - Wandersong - Warhammer 40,000: Dakka Squadron - War§ow - We, the Revolution - What Happened to Survey Team 4? - Wing Commander series: - Wing Commander - Wing Commander 2 - Wing Commander 3 - Witch Thief - WitchWay - Wonder Boy: The Dragon's Trap - World to the West - Yoku’s Island Express - Yono and the Celestial Elephants - Yooka Laylee - Ys 1: Ancient Ys Vanished Omen - Yume Nikki - Ziggurat ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but some of us understand French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script. Open one of these files with any text editor to see the contact e-mail.