games/play-a-jugglers-tale.sh0000755000000000000000000000352714471751340015152 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # A Juggler's Tale # send your bug reports to bugs@dotslashplay.it ### script_version=20240611.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='a-jugglers-tale' GAME_NAME='A Jugglerʼs Tale' ARCHIVE_BASE_0_NAME='setup_a_jugglers_tale_1.16.0_(64bit)_(50655).exe' ARCHIVE_BASE_0_MD5='bb0953d80bf8b9d996bdb453564fe07f' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_a_jugglers_tale_1.16.0_(64bit)_(50655)-1.bin' ARCHIVE_BASE_0_PART1_MD5='2345e25ad4c4f90574b63b3da7e464ab' ARCHIVE_BASE_0_SIZE='2800000' ARCHIVE_BASE_0_VERSION='1.16.0-gog50655' ARCHIVE_BASE_0_URL='https://www.gog.com/game/a_jugglers_tale' UNREALENGINE4_NAME='ajugglerstale' CONTENT_PATH_DEFAULT='.' APP_MAIN_EXE="${UNREALENGINE4_NAME}.exe" PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='64' PKG_BIN_DEPS="$PKG_DATA_ID" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-a-plague-tale-1.sh0000755000000000000000000001111314471751340014731 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-aer-memories-of-old.sh0000755000000000000000000000662314471751340015732 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # AER: Memories of Old # send your bug reports to bugs@dotslashplay.it ### script_version=20240623.1 PLAYIT_COMPATIBILITY_LEVEL='2.29' GAME_ID='aer-memories-of-old' GAME_NAME='AER: Memories of Old' ARCHIVE_BASE_1_NAME='aer_memories_of_old_1_0_4_2_34743.sh' ARCHIVE_BASE_1_MD5='275fbe912805fde9ed3d6d2a25d61b7b' ARCHIVE_BASE_1_TYPE='mojosetup' ARCHIVE_BASE_1_SIZE='1400000' ARCHIVE_BASE_1_VERSION='1.0.4.2-gog34743' ARCHIVE_BASE_1_URL='https://www.gog.com/game/aer' ARCHIVE_BASE_0_NAME='aer_memories_of_old_en_v1_0_4_1_19457.sh' ARCHIVE_BASE_0_MD5='ca59918433567c974b4985767c4af576' ARCHIVE_BASE_0_TYPE='mojosetup' ARCHIVE_BASE_0_SIZE='1400000' ARCHIVE_BASE_0_VERSION='1.0.4.1-gog19475' UNITY3D_NAME='AER' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN64_DEPS="$PKG_BIN_DEPS" PKG_BIN32_DEPS="$PKG_BIN_DEPS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers ## Force the game to run in windowed mode. case "$(current_archive)" in ('ARCHIVE_BASE_0') unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AERMemoriesofOld/prefs' ;; (*) unity3d_prefs_path='${HOME}/.config/unity3d/Daedalic Entertainment GmbH/AER_ Memories of Old/prefs' ;; esac APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN')"' # Force the game to run in windowed mode config_file="'"$unity3d_prefs_path"'" if [ ! -f "$config_file" ] ; then mkdir --parents "$(dirname "$config_file")" cat > "$config_file" <<- EOF 0 0 EOF else sed_pattern='\''.'\'' sed_replacement='\''0'\'' sed --in-place \ "s#${sed_pattern}#${sed_replacement}#" \ "$config_file" fi ' launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-amnesia-1-the-dark-descent.sh0000755000000000000000000000642214471751340017057 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=20250904.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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 some shipped libraries can be replaced with system ones. CONTENT_LIBS_BIN_FILES=' libIL.so.1 libSDL2-2.0.so.0' ## TODO: Check if the Steam library can be dropped. CONTENT_LIBS_BIN_FILES="$CONTENT_LIBS_BIN_FILES libsteam_api.so" CONTENT_LIBS_BIN64_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib' CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN_FILES" CONTENT_GAME_BIN64_FILES=' 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_BIN32_ARCH='32' PKG_BIN64_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKF_DATA' 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' ## Easier upgrades from pre-20231107.1 packages PKG_BIN_PROVIDES=' amnesia-1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20231107.1 packages PKG_DATA_PROVIDES=' amnesia-1-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-among-the-sleep.sh0000755000000000000000000000557214471751340015156 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-anodyne.sh0000755000000000000000000000431714471751340013622 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-aquaria.sh0000755000000000000000000000430214471751340013602 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aquaria # send your bug reports to bugs@dotslashplay.it ### script_version=20250629.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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' FAKE_HOME_PERSISTENT_DIRECTORIES=' .Aquaria' APP_MAIN_EXE='aquaria' APP_MAIN_ICON='aquaria.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libgcc_s.so.1 libm.so.6 libopenal.so.1 libSDL-1.2.so.0 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-aragami-expansions.sh0000755000000000000000000000571014471751340015751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Aragami expansions: # - Nightfall # send your bug reports to bugs@dotslashplay.it ### script_version=20250707.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='aragami' GAME_NAME='Aragami' EXPANSION_ID='nightfall' EXPANSION_NAME='Nightfall' ARCHIVE_BASE_0_NAME='aragami_nightfall_dlc_en_gog_1_21278.sh' ARCHIVE_BASE_0_MD5='40920a28f030147a524e5ac89e2cf14b' ARCHIVE_BASE_0_SIZE='7387678' ARCHIVE_BASE_0_VERSION='1.0-gog21278' ARCHIVE_BASE_0_URL='https://www.gog.com/game/aragami_nightfall' CONTENT_PATH_DEFAULT='data/noarch/game' ## Content shared between the base game and the expansion. CONTENT_GAME_MAIN_FILES=' Aragami_Data/globalgamemanagers Aragami_Data/globalgamemanagers.assets Aragami_Data/level2 Aragami_Data/level5 Aragami_Data/level6 Aragami_Data/level8 Aragami_Data/level11 Aragami_Data/level13 Aragami_Data/level14 Aragami_Data/level16 Aragami_Data/level18 Aragami_Data/level19 Aragami_Data/level19.resS Aragami_Data/level20 Aragami_Data/level21 Aragami_Data/Managed/Assembly-CSharp.dll Aragami_Data/resources.assets Aragami_Data/Resources/unity_builtin_extra Aragami_Data/sharedassets2.assets Aragami_Data/sharedassets5.assets Aragami_Data/sharedassets6.assets Aragami_Data/sharedassets7.assets Aragami_Data/sharedassets8.assets Aragami_Data/sharedassets9.assets Aragami_Data/sharedassets10.assets Aragami_Data/sharedassets11.assets Aragami_Data/sharedassets13.assets Aragami_Data/sharedassets14.assets Aragami_Data/sharedassets15.assets Aragami_Data/sharedassets17.assets Aragami_Data/sharedassets18.assets Aragami_Data/sharedassets18.assets.resS Aragami_Data/sharedassets19.assets Aragami_Data/sharedassets19.assets.resS' ## Content specific to the expansion. CONTENT_GAME_MAIN_FILES="$CONTENT_GAME_MAIN_FILES Aragami_Data/level22 Aragami_Data/level23 Aragami_Data/level23.resS Aragami_Data/sharedassets22.assets Aragami_Data/sharedassets23.assets Aragami_Data/sharedassets23.assets.resS" PKG_PARENT_ID="$GAME_ID" PKG_MAIN_PROVIDES=" ${GAME_ID}-data-shared" 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-aragami.sh0000755000000000000000000001125714471751340013567 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2017 Jacek Szafarkiewicz # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Aragami # send your bug reports to bugs@dotslashplay.it ### script_version=20250707.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='aragami' GAME_NAME='Aragami' ARCHIVE_BASE_GOG_1_NAME='aragami_en_01_09_20943.sh' ARCHIVE_BASE_GOG_1_MD5='46c8315350a4036dcc09b6c3946ddc02' ARCHIVE_BASE_GOG_1_SIZE='6917228' 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' # The following installers used to be available from humblebundle.com, # but they now sell Steam keys only. ARCHIVE_BASE_HUMBLE_1_NAME='Aragami_Linux_Universal_01_09.zip' ARCHIVE_BASE_HUMBLE_1_MD5='b5e779366b1b221bb56bb93fc2e155d2' ARCHIVE_BASE_HUMBLE_1_SIZE='6916236' ARCHIVE_BASE_HUMBLE_1_VERSION='01.09-humble1' 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' UNITY3D_NAME='Aragami' UNITY3D_PLUGINS=' ScreenSelector.so' CONTENT_PATH_DEFAULT_GOG='data/noarch/game' CONTENT_PATH_DEFAULT_HUMBLE_1='01_09' CONTENT_PATH_DEFAULT_HUMBLE_0='.' CONTENT_GAME_DATA_SHARED_FILES=" ${UNITY3D_NAME}_Data/globalgamemanagers ${UNITY3D_NAME}_Data/globalgamemanagers.assets ${UNITY3D_NAME}_Data/level2 ${UNITY3D_NAME}_Data/level5 ${UNITY3D_NAME}_Data/level6 ${UNITY3D_NAME}_Data/level8 ${UNITY3D_NAME}_Data/level11 ${UNITY3D_NAME}_Data/level13 ${UNITY3D_NAME}_Data/level14 ${UNITY3D_NAME}_Data/level16 ${UNITY3D_NAME}_Data/level18 ${UNITY3D_NAME}_Data/level19 ${UNITY3D_NAME}_Data/level19.resS ${UNITY3D_NAME}_Data/level20 ${UNITY3D_NAME}_Data/level21 ${UNITY3D_NAME}_Data/Managed/Assembly-CSharp.dll ${UNITY3D_NAME}_Data/resources.assets ${UNITY3D_NAME}_Data/Resources/unity_builtin_extra ${UNITY3D_NAME}_Data/sharedassets2.assets ${UNITY3D_NAME}_Data/sharedassets5.assets ${UNITY3D_NAME}_Data/sharedassets6.assets ${UNITY3D_NAME}_Data/sharedassets7.assets ${UNITY3D_NAME}_Data/sharedassets8.assets ${UNITY3D_NAME}_Data/sharedassets9.assets ${UNITY3D_NAME}_Data/sharedassets10.assets ${UNITY3D_NAME}_Data/sharedassets11.assets ${UNITY3D_NAME}_Data/sharedassets13.assets ${UNITY3D_NAME}_Data/sharedassets14.assets ${UNITY3D_NAME}_Data/sharedassets15.assets ${UNITY3D_NAME}_Data/sharedassets17.assets ${UNITY3D_NAME}_Data/sharedassets18.assets ${UNITY3D_NAME}_Data/sharedassets18.assets.resS ${UNITY3D_NAME}_Data/sharedassets19.assets ${UNITY3D_NAME}_Data/sharedassets19.assets.resS" PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA_SHARED 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' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_SHARED' PKG_DATA_SHARED_ID="${PKG_DATA_ID}-shared" PKG_DATA_SHARED_PROVIDES=" $PKG_DATA_SHARED_ID" PKG_DATA_SHARED_DESCRIPTION='data shared 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 # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-assassins-creed-1.sh0000755000000000000000000001077414471751340015416 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=20250809.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_PERSISTENT_DIRECTORIES=" users/\${USER}/AppData/Roaming/Ubisoft/Assassin's Creed" ## Ensure ability fo fully control the camera with the mouse. ## cf. https://appdb.winehq.org/objectManager.php?sClass=version&iId=28057#notes WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' ## Set game text language. WINE_REGISTRY_INIT_EN="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="English"' WINE_REGISTRY_INIT_FR="$WINE_REGISTRY_INIT"' [HKEY_LOCAL_MACHINE\Software\Ubisoft\Assassin'\''s Creed] "Language"="French"' ## Without a virtual desktop, the mouse cursor is stuck ## in the top left quarter of the game screen. ## (WINE 10.0) WINE_VIRTUAL_DESKTOP='auto' ## Work around sound buffering problems, ## that can lead to degraded performances. ## (WINE 10.0) WINE_WINETRICKS_VERBS='dsound' APP_MAIN_EXE='assassinscreed_dx10.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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=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 ## Default registry entries differ based on the localisation. ## TODO: Compatibility level 2.34 adds context support to WINE_REGISTRY_INIT. WINE_REGISTRY_INIT=$(context_value 'WINE_REGISTRY_INIT') # shellcheck disable=SC2218 wine_registry_script_write 'PKG_L10N' wine_registry_script_write() { return 0; } launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-atone-heart-of-the-elder-tree.sh0000755000000000000000000000362214471751340017600 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Atone: Heart of the Elder Tree # send your bug reports to contact@dotslashplay.it ### script_version=20241119.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-batman-arkham-1.sh0000755000000000000000000001077414471751340015032 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.sh0000755000000000000000000001747314471751340015036 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.sh0000755000000000000000000000737214471751340015034 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.sh0000755000000000000000000001670414471751340015034 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=20250806.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' ## Ensure ability fo fully control the camera with the mouse. WINE_REGISTRY_INIT=' [HKEY_CURRENT_USER\Software\Wine\X11 Driver] "GrabFullscreen"="Y"' ## 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' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=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/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-bee-simulator.sh0000755000000000000000000000506014471751340014731 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=20250904.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='bee-simulator' GAME_NAME='Bee Simulator' ARCHIVE_BASE_0_NAME='setup_bee_simulator_1.0_(55451).exe' ARCHIVE_BASE_0_MD5='74cbfd6873ed784201bea56a857d6222' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_bee_simulator_1.0_(55451)-1.bin' ARCHIVE_BASE_0_PART1_MD5='214c92f714f12bdf6a3408f0650ec2d2' ARCHIVE_BASE_0_PART2_NAME='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_GAME0_BIN_FILES=" ${UNREALENGINE4_NAME}/config" CONTENT_GAME0_DATA_FILES=" ${UNREALENGINE4_NAME}/assetregistry.bin ${UNREALENGINE4_NAME}/bebee.uproject" CONTENT_GAME_MOVIES_FILES=" ${UNREALENGINE4_NAME}/content/movies" 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_MOVIES PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_MOVIES PKG_DATA' PKG_MOVIES_ID="${GAME_ID}-movies" PKG_MOVIES_DESCRIPTION='movies' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Do not install the Visual C++ Runtime, to prevent a launch error… telling it’s missing?! unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-brothers-a-tale-of-two-sons.sh0000755000000000000000000000445614471751340017353 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2024 Antoine Le Gonidec set -o errexit ### # Brothers: A Tale of Two Sons # send your bug reports to bugs@dotslashplay.it ### script_version=20250406.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='brothers-a-tale-of-two-sons' GAME_NAME='Brothers: A Tale of Two Sons' ARCHIVE_BASE_0_NAME='setup_brothers_-_a_tale_of_two_sons_gog-2_(6538).exe' ARCHIVE_BASE_0_MD5='59101e78c4e0687db9e07d45533cdea2' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_SIZE='1500000' ARCHIVE_BASE_0_VERSION='1.2-gog6538' ARCHIVE_BASE_0_URL='https://www.gog.com/game/brothers_a_tale_of_two_sons' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binaries engine/config engine/shaders' CONTENT_GAME_DATA_FILES=' p13 engine/localization engine/splash' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/Documents/My Games/Brothers - A Tale of Two Sons' WINE_WINEPREFIX_TWEAKS='mono' ## Without a WINE virtual desktop, ## keyboard inputs do not register. WINE_VIRTUAL_DESKTOP='auto' APP_MAIN_EXE='binaries/win32/brothers.exe' ## Explicitly setting the application type is required, ## or it would be misidentified as a Mono game. APP_MAIN_TYPE='wine' PACKAGES_LIST=' PKG_DATA PKG_BIN' PKG_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-brutal-legend.sh0000755000000000000000000000651114471751340014710 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-crossing-souls.sh0000755000000000000000000000512414471751340015154 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-deaths-door.sh0000755000000000000000000000332114471751340014370 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-dont-starve-expansions.sh0000755000000000000000000000760614471751340016624 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 mortalius # SPDX-FileCopyrightText: © 2016 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.sh0000755000000000000000000000606714471751340014437 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # 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-epistory-typing-chronicles.sh0000755000000000000000000000661414471751340017504 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-figment-1.sh0000755000000000000000000000424214471751340013751 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2021 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Figment # send your bug reports to bugs@dotslashplay.it ### script_version=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if we could drop the shipped Steam library. UNITY3D_PLUGINS="$UNITY3D_PLUGINS libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' FAKE_HOME_PERSISTENT_DIRECTORIES=' My Games/Figment' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-figment-2.sh0000755000000000000000000000364614471751340013761 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2023 Mopi # SPDX-FileCopyrightText: © 2023 Antoine Le Gonidec set -o errexit ### # Figment 2: Creed Valley # send your bug reports to bugs@dotslashplay.it ### script_version=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='figment-2' GAME_NAME='Figment 2: Creed Valley' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-grow-song-of-the-evertree.sh0000755000000000000000000000402014471751340017075 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=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='grow-song-of-the-evertree' GAME_NAME='Grow: Song of the Evertree' ARCHIVE_BASE_0_NAME='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_NAME='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='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/505 Games/Grow_ Song of The Evertree' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-haimrik.sh0000755000000000000000000000340314471751340013604 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.sh0000755000000000000000000001046014471751340014461 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-hellblade-senuas-sacrifice.sh0000755000000000000000000000635214471751340017324 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-hitman.sh0000755000000000000000000000405114471751340013440 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec set -o errexit ### # Hitman: Codename 47 # 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-hob.sh0000755000000000000000000000370614471751340012736 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-hot-tin-roof.sh0000755000000000000000000000501714471751340014510 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Hot Tin Roof: The Cat That Wore a Fedora # send your bug reports to bugs@dotslashplay.it ### script_version=20241127.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='hot-tin-roof' GAME_NAME='Hot Tin Roof: The Cat That Wore a Fedora' ## This game is no longer available for sale from gog.com ARCHIVE_BASE_0_NAME='gog_hot_tin_roof_the_cat_that_wore_a_fedora_2.4.0.7.sh' ARCHIVE_BASE_0_MD5='487857998159f763d2b9ff9d42caca70' ARCHIVE_BASE_0_SIZE='765215' ARCHIVE_BASE_0_VERSION='1.3-gog2.4.0.7' UNITY3D_NAME='HotTinRoof' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libGLU.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libX11.so.6 libXcursor.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-inner.sh0000755000000000000000000000421114471751340013271 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-jotun.sh0000755000000000000000000000631614471751340013325 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=20250704.1 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='jotun' GAME_NAME='Jotun' ARCHIVE_BASE_0_NAME='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_NAME='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_NAME='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_NAME='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' PACKAGES_LIST=' PKG_BIN64 PKG_BIN32 PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN64_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN32_DEPENDENCIES_SIBLINGS="$PKG_BIN_DEPENDENCIES_SIBLINGS" PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_BIN64_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" PKG_BIN32_DEPENDENCIES_LIBRARIES="$PKG_BIN_DEPENDENCIES_LIBRARIES" 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_BIN64_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" PKG_BIN32_DEPENDENCIES_LIBRARIES_OLD="$PKG_BIN_DEPENDENCIES_LIBRARIES_OLD" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=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-journey-to-the-savage-planet.sh0000755000000000000000000000403314471751340017576 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.sh0000755000000000000000000001414414471751340014406 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=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' ## Switch French keyboard layout to us-azerty to provide direct access to digits. PKG_BIN_DEPENDENCIES_COMMANDS=' setxkbmap' 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_DESCRIPTION='English localization' PKG_L10N_FR_DESCRIPTION='French localization' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # 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 # Write launchers. launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_en='anglaise' lang_fr='française' ;; ('en'|*) lang_string='%s version:' lang_en='English' lang_fr='French' ;; esac printf '\n' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_EN' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_FR' # Clean up. working_directory_cleanup exit 0 games/play-lego-batman.sh0000700000000000000000000000614314471751340014340 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: The Videogame # send your bug reports to bugs@dotslashplay.it ### script_version=20250703.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' 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=' binkw32.dll language_setup.ini *.exe' CONTENT_GAME_DATA_FILES=' audio movies language_setup.png *.dat' CONTENT_DOC_DATA_FILES=' eula.rtf readme.rtf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Warner Bros. Interactive Entertainment/LEGO Batman' ## Prevent shader compilation errors resulting in messed up rendering: ## ## 0134:fixme:d3dcompiler:D3DCompile2 Ignoring flags 0x1200. ## 0134:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -5. ## 0134:err:d3dcompiler:D3DCompile2 Shader log: ## 0134:err:d3dcompiler:D3DCompile2 :680:26: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 0134:err:d3dcompiler:D3DCompile2 :680:8: E5002: Can't implicitly convert from float3 to float4. ## 0134:err:d3dcompiler:D3DCompile2 :875:80: W5300: Implicit truncation of vector type. ## 0134:err:d3dcompiler:D3DCompile2 ## ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dcompiler_47' 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_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-lego-harry-potter-years-1-4.sh0000755000000000000000000001104514471751340017165 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=20250708.2 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='lego-harry-potter-years-1-4' GAME_NAME='Lego Harry Potter: Years 1-4' ARCHIVE_BASE_0_NAME='setup_lego_harry_potter_1-4_1.0_(17966).exe' ARCHIVE_BASE_0_MD5='21ddbc82a225687a69044e9baee7109b' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_lego_harry_potter_1-4_1.0_(17966)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ab78edad26acef08eb3a656dfbdf476e' ARCHIVE_BASE_0_PART2_NAME='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' ## TODO: Language-specific packages could be built ## instead of shipping this extra binary. CONTENT_GAME0_BIN_FILES=' 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_RELATIVE_PATH='docs' CONTENT_DOC_DATA_FILES=' ??/readme.rtf' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Roaming/WB Games/LEGO® Harry Potter™' ## Work around shaders compilation errors leading to dangerously messed up rendering, ## including rapidly flashing colourful lights. ## ## 014c:fixme:d3dcompiler:D3DCompile2 Ignoring flags 0x200. ## 014c:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -5. ## 014c:err:d3dcompiler:D3DCompile2 Shader log: ## 014c:err:d3dcompiler:D3DCompile2 :519:10: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 014c:err:d3dcompiler:D3DCompile2 :519:21: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 014c:err:d3dcompiler:D3DCompile2 :522:10: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 014c:err:d3dcompiler:D3DCompile2 :522:21: E5017: Aborting due to not yet implemented feature: Prioritize between multiple compatible function overloads. ## 014c:err:d3dcompiler:D3DCompile2 :953:22: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :986:37: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :987:37: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :988:37: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :989:37: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :1015:8: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 :1224:1: W5300: Implicit truncation of vector type. ## 014c:err:d3dcompiler:D3DCompile2 ## ## (WINE 10.0) WINE_WINETRICKS_VERBS='d3dcompiler_47' 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_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-lilas-sky-ark.sh0000755000000000000000000000375314471751340014653 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=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='lilas-sky-ark' GAME_NAME='Lilaʼs Sky Ark' ARCHIVE_BASE_0_NAME='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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libGL.so.1 libm.so.6 libpthread.so.0 libX11.so.6 libXcursor.so.1 libXext.so.6 libXinerama.so.1 libXi.so.6 libXrandr.so.2 libXrender.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-litil-divil.sh0000755000000000000000000000477614471751340014420 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=20250902.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to lowercase. tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" # 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-series.sh0000755000000000000000000001202514471751340017477 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2018 Dominique Derrier # SPDX-FileCopyrightText: © 2018 Andrey Butirsky # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2020 macaron set -o errexit ### # Little Big Adventure series: # - Little Big Adventure # - Little Big Adventure 2 # send your bug reports to bugs@dotslashplay.it ### script_version=20250826.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_LBA1='little-big-adventure-1' GAME_NAME_LBA1='Little Big Adventure' GAME_ID_LBA2='little-big-adventure-2' GAME_NAME_LBA2='Little Big Adventure 2' ARCHIVE_BASE_LBA1_1_NAME='setup_little_big_adventure_1.0_(28186).exe' ARCHIVE_BASE_LBA1_1_MD5='43d4926dc8a56a95800e746ac9797201' ARCHIVE_BASE_LBA1_1_TYPE='innosetup' ARCHIVE_BASE_LBA1_1_SIZE='510000' ARCHIVE_BASE_LBA1_1_VERSION='1.0-gog28186' ARCHIVE_BASE_LBA1_1_URL='https://www.gog.com/game/little_big_adventure' ARCHIVE_BASE_LBA1_0_NAME='setup_lba_2.1.0.22.exe' ARCHIVE_BASE_LBA1_0_MD5='c40177522adcbe50ea52590be57045f8' ARCHIVE_BASE_LBA1_0_TYPE='innosetup' ARCHIVE_BASE_LBA1_0_SIZE='510000' ARCHIVE_BASE_LBA1_0_VERSION='1.0-gog2.1.0.22' ARCHIVE_BASE_LBA2_1_NAME='setup_little_big_adventure_2_1.0_(28192).exe' ARCHIVE_BASE_LBA2_1_MD5='80b95bb8faa2353284b321748021da16' ARCHIVE_BASE_LBA2_1_TYPE='innosetup' ARCHIVE_BASE_LBA2_1_SIZE='750000' ARCHIVE_BASE_LBA2_1_VERSION='1.0-gog28192' ARCHIVE_BASE_LBA2_1_URL='https://www.gog.com/game/little_big_adventure_2' ARCHIVE_BASE_LBA2_0_NAME='setup_lba2_2.1.0.8.exe' ARCHIVE_BASE_LBA2_0_MD5='9909163b7285bd37417f6d3c1ccfa3ee' ARCHIVE_BASE_LBA2_0_TYPE='innosetup' ARCHIVE_BASE_LBA2_0_SIZE='750000' ARCHIVE_BASE_LBA2_0_VERSION='1.0-gog2.1.0.8' CONTENT_PATH_DEFAULT='.' CONTENT_PATH_DEFAULT_LBA1_0='app' CONTENT_PATH_DEFAULT_LBA2_0='app' CONTENT_GAME_MAIN_FILES_LBA1=' VOX SAMPLE.AD SETSOUND.BAT LBA.CFG LBA.DAT A32ALGFM.DLL A32GFX.DLL A32MT32.DLL A32OP3FM.DLL A32PASFM.DLL A32PASOP.DLL A32SBFM.DLL A32SP1FM.DLL A32SP2FM.DLL A32TANDY.DLL ATI.DLL CIRRUS.DLL COMPAQ.DLL GENOA.DLL GUSMID32.DLL M_GOLD.DLL M_MWSS.DLL M_PAS.DLL M_SB16.DLL M_SB2CD.DLL M_SBPRO.DLL NCR.DLL OAK.DLL PARADISE.DLL REALTEK.DLL S3.DLL TRIDENT.DLL TSENG.DLL W_GOLD.DLL W_GUS.DLL W_MWSS.DLL W_PAS16.DLL W_PAS.DLL W_SB16_8.DLL W_SB16.DLL W_SB16_M.DLL W_SB16_S.DLL W_SB2.DLL W_SB.DLL W_SBPRO.DLL DOS4GW.EXE LANGUAGE.EXE LOADPATS.EXE RELENT.EXE SETUP.EXE LBA.GOG PATCHES.INI SETUP.LST SAMPLE.OPL *.HQR' CONTENT_GAME_MAIN_FILES_LBA2=' DRIVERS SETSOUND.BAT LBA2.CFG LBA2.DAT LBA2.DOS DOS4GW.EXE LANGUAGE.EXE LBA2.EXE SETUP.EXE LBA2.GOG INSTALL.INI LBA2.OGG *.HQR *.ILE *.OBL' CONTENT_DOC_MAIN_FILES=' MANUAL.PDF README.TXT' DOSBOX_DISK_IMAGE_PATH_LBA1='LBA.DAT' DOSBOX_DISK_IMAGE_PATH_LBA2='LBA2.DAT' USER_PERSISTENT_DIRECTORIES_LBA2=' SAVE' USER_PERSISTENT_FILES_LBA1=' *.CFG *.INI *.LBA' USER_PERSISTENT_FILES_LBA2=' *.CFG' APP_MAIN_EXE_LBA1='RELENT.EXE' APP_MAIN_EXE_LBA2='LBA2.EXE' APP_MAIN_ICON_LBA1='APP/GOGGAME-1207658971.ICO' APP_MAIN_ICON_LBA1_0='GOGGAME-1207658971.ICO' APP_MAIN_ICON_LBA2='APP/GOGGAME-1207658974.ICO' APP_MAIN_ICON_LBA2_0='GOGGAME-1207658974.ICO' ## Force application type, as LBA2.EXE is detected as a Windows executable. APP_MAIN_TYPE_LBA2='dosbox' APP_SETUP_ID_LBA1="${GAME_ID_LBA1}-setup" APP_SETUP_ID_LBA2="${GAME_ID_LBA2}-setup" APP_SETUP_NAME_LBA1="$GAME_NAME_LBA1 - Setup" APP_SETUP_NAME_LBA2="$GAME_NAME_LBA2 - Setup" APP_SETUP_EXE='SETUP.EXE' APP_SETUP_CAT='Settings' APP_SETUP_ICON_LBA1='APP/GOGGAME-1207658971.ICO' APP_SETUP_ICON_LBA1_0='GOGGAME-1207658971.ICO' APP_SETUP_ICON_LBA2='APP/GOGGAME-1207658974.ICO' APP_SETUP_ICON_LBA2_0='GOGGAME-1207658974.ICO' ## Easier upgrades from pre-20200210.3 packages PKG_MAIN_PROVIDES_LBA1=' little-big-adventure-1-data' ## convmv is used to convert file paths to uppercase. REQUIREMENTS_LIST=' convmv' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Convert all file paths to uppercase. toupper "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ## Little Big Adventure 2 - Store voices outside of the game image. case "$(current_archive)" in ('ARCHIVE_BASE_LBA2_'*) sed --in-place 's/\(FlagKeepVoice:\) OFF/\1 ON/' \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/LBA2.CFG" ;; esac # Include game data. content_inclusion_icons content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-man-o-war-corsair.sh0000755000000000000000000001155114471751340015421 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Man O' War: Corsair - Warhammer Naval Battles # send your bug reports to bugs@dotslashplay.it ### script_version=20250907.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN_ARCH='64' PKG_BIN_DEPENDENCIE_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_MODELS PKG_TERRAIN1 PKG_TERRAIN2' PKG_MODELS_ID="${PKG_DATA_ID}-models" PKG_MODELS_DESCRIPTION="$PKG_DATA_DESCRIPTION - models" PKG_MODELS_DEPENDENCIES_SIBLINGS=' PKG_MODELS_LAND' ## Easier upgrades from pre-20231011.1 packages PKG_MODELS_PROVIDES=' man-o-war-corsair-models' PKG_MODELS_LAND_ID="${PKG_MODELS_ID}-land" PKG_MODELS_LAND_DESCRIPTION="$PKG_MODELS_DESCRIPTION - land" ## Easier upgrades from pre-20231011.1 packages 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" ## Easier upgrades from pre-20231011.1 packages PKG_TERRAIN1_PROVIDES=' man-o-war-corsair-terrain-1' PKG_TERRAIN2_PROVIDES=' man-o-war-corsair-terrain-2' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-medieval-dynasty.sh0000755000000000000000000000660014471751340015441 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2024-2025 Fabien Givors set -o errexit ### # Medieval Dynasty # send your bug reports to bugs@dotslashplay.it ### script_version=20251021.1 PLAYIT_COMPATIBILITY_LEVEL='2.30' GAME_ID='medieval-dynasty' GAME_NAME='Medieval Dynasty' ## Archives ### Full game ARCHIVE_BASE_1_NAME='setup_medieval_dynasty_2.4.1.3_(64bit)_(85811).exe' ARCHIVE_BASE_1_MD5='82d7c5d870a046ddcae628d9c0b30d27' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1='setup_medieval_dynasty_2.4.1.3_(64bit)_(85811)-1.bin' ARCHIVE_BASE_1_PART1_MD5='e64e91f32982cd894a8eebb51246c0ef' ARCHIVE_BASE_1_PART2='setup_medieval_dynasty_2.4.1.3_(64bit)_(85811)-2.bin' ARCHIVE_BASE_1_PART2_MD5='32887d18c95be29be23375433e6a79f1' ARCHIVE_BASE_1_PART3='setup_medieval_dynasty_2.4.1.3_(64bit)_(85811)-3.bin' ARCHIVE_BASE_1_PART3_MD5='f682cb694abf666038dbf708f4ffb05a' ARCHIVE_BASE_1_PART4='setup_medieval_dynasty_2.4.1.3_(64bit)_(85811)-4.bin' ARCHIVE_BASE_1_PART4_MD5='377cfd8847a8b756d08f7ed5ae3509bf' ARCHIVE_BASE_1_SIZE='19343051' ARCHIVE_BASE_1_VERSION='2.4.1.3-gog85511' ARCHIVE_BASE_1_URL='https://www.gog.com/game/medieval_dynasty' 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-my-memory-of-us.sh0000755000000000000000000000413614471751340015146 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-nanotale-typing-chronicles.sh0000755000000000000000000000657614471751340017436 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=20250502.3 PLAYIT_COMPATIBILITY_LEVEL='2.32' GAME_ID='nanotale-typing-chronicles' GAME_NAME='Nanotale - Typing Chronicles' ARCHIVE_BASE_LINUX_1_NAME='nanotale_typing_chronicles_1_96_51035.sh' ARCHIVE_BASE_LINUX_1_MD5='fee2152ca68930869172c1bb6785d37d' ARCHIVE_BASE_LINUX_1_SIZE='5200000' ARCHIVE_BASE_LINUX_1_VERSION='1.96-gog51035' ARCHIVE_BASE_LINUX_1_URL='https://www.gog.com/game/nanotale_typing_chronicles' ARCHIVE_BASE_WINDOWS_1_NAME='setup_nanotale_-_typing_chronicles_1.96_(51033).exe' ARCHIVE_BASE_WINDOWS_1_MD5='721fec7965771ba863bd29cdab8008b1' ARCHIVE_BASE_WINDOWS_1_TYPE='innosetup' ARCHIVE_BASE_WINDOWS_1_PART1_NAME='setup_nanotale_-_typing_chronicles_1.96_(51033)-1.bin' ARCHIVE_BASE_WINDOWS_1_PART1_MD5='54e817f9e83c456e6e7bef0977cd4a4a' ARCHIVE_BASE_WINDOWS_1_SIZE='5219492' ARCHIVE_BASE_WINDOWS_1_VERSION='1.96-gog51033' ARCHIVE_BASE_WINDOWS_1_URL='https://www.gog.com/game/nanotale_typing_chronicles' ARCHIVE_BASE_LINUX_0_NAME='nanotale_typing_chronicles_1_95_50826.sh' ARCHIVE_BASE_LINUX_0_MD5='a77a001896b0c742feddd24ce594bc3e' ARCHIVE_BASE_LINUX_0_SIZE='4600000' ARCHIVE_BASE_LINUX_0_VERSION='1.95-gog50826' UNITY3D_NAME_LINUX='Nanotale' UNITY3D_NAME_WINDOWS='nanotale' UNITY3D_PLUGINS=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so sqlite3.so UnityFbxSdkNative.so' CONTENT_PATH_DEFAULT_LINUX='data/noarch/game' CONTENT_PATH_DEFAULT_WINDOWS='.' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Fishing Cactus/Nanotale' 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_DESCRIPTION_LINUX='Linux build' PKG_BIN_DESCRIPTION_WINDOWS='Windows build' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES_LINUX=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_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_DATA_DESCRIPTION_LINUX="$PKG_DATA_DESCRIPTION - Linux build" PKG_DATA_DESCRIPTION_WINDOWS="$PKG_DATA_DESCRIPTION - Windows build" # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=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-neverending-nightmares.sh0000755000000000000000000000414614471751340016630 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=20250914.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='neverending-nightmares' GAME_NAME='Neverending Nightmares' ARCHIVE_BASE_0_NAME='neverending_nightmares_3_3_22468_41851.sh' ARCHIVE_BASE_0_MD5='4ab28bf5862dc35e6a821e1aabc3e41a' 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' 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' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-no-mans-sky.sh0000755000000000000000000000513614471751340014341 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=20250903.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='no-mans-sky' GAME_NAME='No Manʼs Sky' ARCHIVE_BASE_0_NAME='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' ## TODO: Check if this binary can be replaced with dedicated localisation packages. 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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-phoning-home.sh0000755000000000000000000000410114471751340014544 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-pine.sh0000755000000000000000000000352514471751340013120 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=20250918.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='pine' GAME_NAME='Pine' ARCHIVE_BASE_0_NAME='pine_patch_13_ef57f2e2_41600.sh' ARCHIVE_BASE_0_MD5='0b5efc1376e27b95eed1380eb32ecb34' 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' UNITY3D_PLUGINS=' libfmodstudioL.so libfmodstudio.so libresonanceaudio.so' CONTENT_PATH_DEFAULT='data/noarch/game' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-pirates.sh0000755000000000000000000000660414471751340013635 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec set -o errexit ### # Pirates: # - Pirates (original version from 1987) # - Pirates Gold (remake from 1993) # send your bug reports to bugs@dotslashplay.it ### script_version=20251015.4 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID_CLASSIC='pirates' GAME_NAME_CLASSIC='Pirates!' GAME_ID_GOLD='pirates-gold' GAME_NAME_GOLD='Pirates Gold' ARCHIVE_BASE_CLASSIC_1_NAME='gog_pirates_2.0.0.9.sh' ARCHIVE_BASE_CLASSIC_1_MD5='2f46a0d0c7af0ca2d9b06fbd1fd26d86' ARCHIVE_BASE_CLASSIC_1_SIZE='10526' ARCHIVE_BASE_CLASSIC_1_VERSION='1.0-gog2.0.0.9' ARCHIVE_BASE_CLASSIC_1_URL='https://www.gog.com/game/pirates_gold_plus' ARCHIVE_BASE_CLASSIC_0_NAME='gog_pirates_2.0.0.8.sh' ARCHIVE_BASE_CLASSIC_0_MD5='885cdb8f2119a278fb15a32cafad64a8' ARCHIVE_BASE_CLASSIC_0_SIZE='12000' ARCHIVE_BASE_CLASSIC_0_VERSION='1.0-gog2.0.0.8' 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_CLASSIC='data/noarch/classic/Pirates!' CONTENT_PATH_DEFAULT_GOLD='data/noarch/data' CONTENT_GAME_MAIN_FILES_CLASSIC=' disk1 disk2 diskp disks pir.exe' 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' DOSBOX_DISK_IMAGE_PATH_GOLD='DATA.DAT' ## Persistent storage might not be required, ## maybe volatile write access would be enough. USER_PERSISTENT_FILES_CLASSIC=' disks' APP_MAIN_EXE_CLASSIC='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_CLASSIC='../../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" # Run default initialisation actions. initialization_default "$@" # 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; } ;; esac launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-pixel-piracy.sh0000755000000000000000000000467214471751340014577 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2018 mortalius 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.sh0000755000000000000000000000365514471751340014537 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-pony-island.sh0000755000000000000000000000417314471751340014422 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Antoine Le Gonidec set -o errexit ### # Pony Island # send your bug reports to bugs@dotslashplay.it ### script_version=20241201.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='pony-island' GAME_NAME='Pony Island' ARCHIVE_BASE_0_NAME='ponyisland_linux_v1.20.zip' ARCHIVE_BASE_0_MD5='30c4f063e360de53cdb6a945df82cca4' ARCHIVE_BASE_0_SIZE='358612' ARCHIVE_BASE_0_VERSION='1.20-humble1' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/pony-island' UNITY3D_NAME='PonyIsland' UNITY3D_PLUGINS=' ScreenSelector.so' ## TODO: Check if the Steam libraries are required UNITY3D_PLUGINS="$UNITY3D_PLUGINS libCSteamworks.so libsteam_api.so" CONTENT_PATH_DEFAULT='Linux' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIRES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libgdk_pixbuf-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libgtk-x11-2.0.so.0 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6 libsteam_api.so libX11.so.6 libXcursor.so.1 libXrandr.so.2' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run the default initialization actions initialization_default "$@" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build package packages_generation print_instructions # Clean up working_directory_cleanup exit 0 games/play-pulse.sh0000755000000000000000000000371114471751340013312 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=20250918.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_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 default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-republique.sh0000755000000000000000000000575414471751340014350 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2018 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # République # send your bug reports to bugs@dotslashplay.it ### script_version=20250902.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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='--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' CONTENT_PATH_DEFAULT_RAR='game' USER_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/LocalLow/Camouflaj/R__publique' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## convmv is used to convert file paths to lower case. REQUIREMENTS_LIST_RAR=' convmv' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Old RAR-based archives - Convert all file paths to lowercase. case "$(current_archive)" in ('ARCHIVE_BASE_RAR_'*) tolower "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)" ;; esac # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-restless-soul.sh0000755000000000000000000000363314471751340015011 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=20251006.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' 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 default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default ## Prevent inclusion of steam_api library. rm --recursive "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/$(unity3d_name)_Data/Plugins" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-retrace.sh0000755000000000000000000000345214471751340013611 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 Mopi # SPDX-FileCopyrightText: © 2020 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.sh0000755000000000000000000000504614471751340015700 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2016 Mopi # 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=20251006.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN_ARCH_32BIT='32' PKG_BIN_ARCH_64BIT='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libdl.so.2 libgcc_s.so.1 libm.so.6 libpthread.so.0 librt.so.1 libstdc++.so.6' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-reventure.sh0000755000000000000000000000330614471751340014201 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-saints-row-3.sh0000755000000000000000000001002414471751340014423 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Saints Row: The Third # send your bug reports to bugs@dotslashplay.it ### script_version=20250828.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='saints-row-3' GAME_NAME='Saints Row: The Third' ARCHIVE_BASE_0_NAME='setup_saints_row_3_1.05_(18826).exe' ARCHIVE_BASE_0_MD5='247920ee92146f3aa8b12e98ed581205' ARCHIVE_BASE_0_TYPE='innosetup' ARCHIVE_BASE_0_PART1_NAME='setup_saints_row_3_1.05_(18826)-1.bin' ARCHIVE_BASE_0_PART1_MD5='b05253bb7d5dcd7d22fcc31037abbb8f' ARCHIVE_BASE_0_PART2_NAME='setup_saints_row_3_1.05_(18826)-2.bin' ARCHIVE_BASE_0_PART2_MD5='d0d56c9f28966c4b55b8926de46b28c4' ARCHIVE_BASE_0_PART3_NAME='setup_saints_row_3_1.05_(18826)-3.bin' ARCHIVE_BASE_0_PART3_MD5='2f94ec5a61562e27b68eea8adf42ea10' ARCHIVE_BASE_0_SIZE='9793983' ARCHIVE_BASE_0_VERSION='1.05-gog18826' ARCHIVE_BASE_0_URL='https://www.gog.com/game/saints_row_the_third_the_full_package' CONTENT_PATH_DEFAULT='app' CONTENT_GAME_BIN_FILES=' binkw32.dll saintsrowthethird.exe saintsrowthethird_dx11.exe viewed.dat' ## steam_api.dll can not be dropped, saintsrowthethird.exe ## and saintsrowthethird_dx11.exe are linked against it. CONTENT_GAME0_BIN_FILES=' steam_api.dll' CONTENT_GAME1_BIN_RELATIVE_PATH='__support/app' CONTENT_GAME1_BIN_FILES=' display.ini' CONTENT_GAME_DATA_FILES=' packfiles videos' CONTENT_DOC_L10N_FR_FILES=' readme_saintsrowthethird_fr.txt' CONTENT_DOC_L10N_EN_FILES=' readme_saintsrowthethird_en.txt' CONTENT_DOC_DATA_FILES=' manual.pdf changelist.txt' USER_PERSISTENT_FILES=' viewed.dat display.ini gog.ini' WINE_PERSISTENT_DIRECTORIES=' users/${USER}/AppData/Local/Saints Row The Third' APP_MAIN_EXE='saintsrowthethird_dx11.exe' PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_L10N_EN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localisation' PKG_L10N_EN_DESCRIPTION='English localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' ## Set locale-specific configuration. config_file_source="${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/__support/app/gog.ini" config_file_destination_fr="$(package_path 'PKG_L10N_FR')$(path_game_data)/gog.ini" config_file_destination_en="$(package_path 'PKG_L10N_EN')$(path_game_data)/gog.ini" mkdir --parents \ "$(dirname "$config_file_destination_fr")" \ "$(dirname "$config_file_destination_en")" sed --expression='s/Language=.*/Language=French/' "$config_file_source" > "$config_file_destination_fr" sed --expression='s/Language=.*/Language=English/' "$config_file_source" > "$config_file_destination_en" content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_fr='française' lang_en='anglaise' ;; ('en'|*) lang_string='%s version:' lang_fr='French' lang_en='English' ;; esac printf '\n' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_FR' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_L10N_EN' # Clean up working_directory_cleanup exit 0 games/play-secrets-of-raetikon.sh0000755000000000000000000000611514471751340016047 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=20251005.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_RELATIVE_PATH='lib64' CONTENT_LIBS_BIN64_FILES=' libfmodex64-4.44.32.so libfmodex64.so' ## The game binaries are linked against libsteam_api.so. CONTENT_LIBS_BIN64_FILES="$CONTENT_LIBS_BIN64_FILES libsteam_api.so" CONTENT_LIBS_BIN32_RELATIVE_PATH='lib32' CONTENT_LIBS_BIN32_FILES=' libfmodex-4.44.32.so libfmodex.so' ## The game binaries are linked against libsteam_api.so. CONTENT_LIBS_BIN32_FILES="$CONTENT_LIBS_BIN32_FILES libsteam_api.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' 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=' # 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_BIN64_ARCH='64' PKG_BIN32_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' 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_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation 'PKG_BIN64' launchers_generation 'PKG_BIN32' # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-shelter-1.sh0000755000000000000000000000502614471751340013767 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2018 Antoine Le Gonidec set -o errexit ### # Shelter # send your bug reports to bugs@dotslashplay.it ### script_version=20250930.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' ## Easier upgrades from pre-20210929.2 packages PKG_BIN_PROVIDES=' shelter' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' ## Easier upgrades from pre-20210929.2 packages PKG_DATA_PROVIDES=' shelter-data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-shelter-2-paws.sh0000755000000000000000000000525314471751340014742 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.sh0000755000000000000000000000451014471751340013765 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 # 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-soma.sh0000755000000000000000000000554714471751340013132 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=20251006.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='soma' GAME_NAME='SOMA' ARCHIVE_BASE_1_NAME='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_NAME='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_RELATIVE_PATH='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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_ENTITIES PKG_SOUNDS PKG_DATA' 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' PKG_ENTITIES_ID="${GAME_ID}-entities" PKG_ENTITIES_DESCRIPTION='entities' PKG_SOUNDS_ID="${GAME_ID}-sounds" PKG_SOUNDS_DESCRIPTION='sounds' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-spookys-jump-scare-mansion.sh0000755000000000000000000000403114471751340017373 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2020 BetaRays # SPDX-FileCopyrightText: © 2020 Antoine Le Gonidec set -o errexit ### # Spooky's Jump Scare Mansion # send your bug reports to contact@dotslashplay.it ### script_version=20240521.2 PLAYIT_COMPATIBILITY_LEVEL='2.28' GAME_ID='spookys-jump-scare-mansion' GAME_NAME='Spookyʼs Jump Scare Mansion' ARCHIVE_BASE_0_NAME='SPOOKY.1.zip' ARCHIVE_BASE_0_MD5='250f389a217169e89fd7ee4794a9831d' ARCHIVE_BASE_0_SIZE='330000' ARCHIVE_BASE_0_VERSION='3.0.1-indiedb' ARCHIVE_BASE_0_URL='https://www.indiedb.com/games/spookys-house-of-jump-scares/downloads/spookys-house-of-jump-scares-30' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_BIN_FILES=' SPOOKY.exe SurfaceFix.dll *.ini' CONTENT_GAME_DATA_FILES=' DATA' CONTENT_DOC_DATA_FILES=' ReadMe.txt' USER_PERSISTENT_FILES=' *.ini' ## Install required winetricks verb for game audio to play. WINE_WINETRICKS_VERBS='directmusic' APP_MAIN_EXE='SPOOKY.exe' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_BIN_ARCH='32' PKG_BIN_DEPS="$PKG_DATA_ID" PKG_BIN_DEPENDENCIES_GSTREAMER_PLUGINS=' application/x-id3' # Load common functions PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Extract game data archive_extraction_default # Include game data content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers launchers_generation 'PKG_BIN' # Build packages packages_generation print_instructions # Clean up rm --recursive "$PLAYIT_WORKDIR" exit 0 games/play-steamworld-heist.sh0000755000000000000000000000433314471751340015456 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2017 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi set -o errexit ### # SteamWorld Heist # send your bug reports to bugs@dotslashplay.it ### script_version=20251024.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='steamworld-heist' GAME_NAME='SteamWorld Heist' ARCHIVE_BASE_0_NAME='SteamWorldHeist.tar.gz' ARCHIVE_BASE_0_MD5='79a499459c09d7881efeb95be7abc559' ARCHIVE_BASE_0_VERSION='1.0-humble170131' ARCHIVE_BASE_0_SIZE='200000' ARCHIVE_BASE_0_URL='https://www.humblebundle.com/store/steamworld-heist' CONTENT_PATH_DEFAULT='SteamWorldHeist' CONTENT_GAME_BIN_FILES=' Heist' CONTENT_GAME_DATA_FILES=' Bundle icon.bmp icon.png' CONTENT_DOC_DATA_FILES=' Licenses readme.txt' APP_MAIN_EXE='Heist' APP_MAIN_ICON='icon.png' PACKAGES_LIST=' PKG_BIN PKG_DATA' PKG_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 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="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. ## Force the use of system-provided SDL. APP_MAIN_PRERUN="$(application_prerun 'APP_MAIN') $(launcher_tweak_sdl_override)" PKG_BIN_DEPENDENCIES_LIBRARIES="$(dependencies_libraries_list 'PKG_BIN') libSDL2-2.0.so.0" launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-styx-2-shards-of-darkness.sh0000755000000000000000000000767714471751340017043 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2025 Antoine Le Gonidec set -o errexit ### # Styx: Shards of Darkness # send your bug reports to bugs@dotslashplay.it ### script_version=20250918.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='styx-2-shards-of-darkness' GAME_NAME='Styx: Shards of Darkness' ARCHIVE_BASE_0_NAME='setup_styx_shards_of_darkness_1.05_(64bit)_(35386).exe' ARCHIVE_BASE_0_MD5='d8243e3c00aaea8cba64c6906521918e' ARCHIVE_BASE_0_TYPE='innosetup' ## Extract all localised files, not limited to the English localisation. ARCHIVE_BASE_0_EXTRACTOR='innoextract' ARCHIVE_BASE_0_EXTRACTOR_OPTIONS='--collisions rename-all --lowercase' ARCHIVE_BASE_0_PART1_NAME='setup_styx_shards_of_darkness_1.05_(64bit)_(35386)-1.bin' ARCHIVE_BASE_0_PART1_MD5='ba9135352ab02041024a8e16b4c97dd9' ARCHIVE_BASE_0_PART2_NAME='setup_styx_shards_of_darkness_1.05_(64bit)_(35386)-2.bin' ARCHIVE_BASE_0_PART2_MD5='dfe177f7dccf41e6af7eeb2472b670f3' ARCHIVE_BASE_0_PART3_NAME='setup_styx_shards_of_darkness_1.05_(64bit)_(35386)-3.bin' ARCHIVE_BASE_0_PART3_MD5='45df5b10aa2ade4789e6f5cce8ed7afd' ARCHIVE_BASE_0_SIZE='11160684' ARCHIVE_BASE_0_VERSION='1.05-gog35386' ARCHIVE_BASE_0_URL='https://www.gog.com/game/styx_shards_of_darkness' UNREALENGINE4_NAME='styx2' CONTENT_PATH_DEFAULT='.' CONTENT_GAME_DATA_PAKS_FILES=" ${UNREALENGINE4_NAME}/content/paks" APP_MAIN_EXE="${UNREALENGINE4_NAME}/binaries/win64/${UNREALENGINE4_NAME}-win64-shipping.exe" APP_MAIN_ICON_WRESTOOL_OPTIONS='--type=14 --name=IDICON_UE4GAME' PACKAGES_LIST=' PKG_BIN PKG_L10N_FR PKG_L10N_EN PKG_DATA_PAKS PKG_DATA' PKG_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_L10N PKG_DATA' PKG_L10N_ID="${GAME_ID}-l10n" PKG_L10N_FR_ID="${PKG_L10N_ID}-fr" PKG_L10N_EN_ID="${PKG_L10N_ID}-en" PKG_L10N_PROVIDES=" $PKG_L10N_ID" PKG_L10N_FR_DESCRIPTION='French localisation' PKG_L10N_EN_DESCRIPTION='English localisation' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' PKG_DATA_DEPENDENCIES_SIBLINGS=' PKG_DATA_PAKS' PKG_DATA_PAKS_ID="${PKG_DATA_ID}-paks" PKG_DATA_PAKS_DESCRIPTION="$PKG_DATA_DESCRIPTION - paks" # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' install -D --mode=644 --no-target-directory \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/goggame-2090261953.info@fr-FR" \ "$(package_path 'PKG_L10N_FR')$(path_game_data)/goggame-2090261953.info" install -D --mode=644 --no-target-directory \ "${PLAYIT_WORKDIR}/gamedata/$(content_path_default)/goggame-2090261953.info@en-US" \ "$(package_path 'PKG_L10N_EN')$(path_game_data)/goggame-2090261953.info" content_inclusion_default # Write launchers. ## Do not install the Visual C++ Runtime, to prevent a launch error related to msvcp140.dll. unrealengine4_wine_winetricks_verbs_default() { return 0; } launchers_generation # Build packages. packages_generation case "$(messages_language)" in ('fr') lang_string='version %s :' lang_fr='française' lang_en='anglaise' ;; ('en'|*) lang_string='%s version:' lang_fr='French' lang_en='English' ;; esac printf '\n' printf "$lang_string" "$lang_fr" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_DATA_PAKS' 'PKG_L10N_FR' printf "$lang_string" "$lang_en" print_instructions 'PKG_BIN' 'PKG_DATA' 'PKG_DATA_PAKS' 'PKG_L10N_EN' # Clean up. working_directory_cleanup exit 0 games/play-terraria.sh0000755000000000000000000001167514471751340014003 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # SPDX-FileCopyrightText: © 2015 mortalius # SPDX-FileCopyrightText: © 2016 Antoine Le Gonidec # SPDX-FileCopyrightText: © 2017 Mopi # SPDX-FileCopyrightText: © 2022 Ferenc Wágner 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-the-aquatic-adventure-of-the-last-human.sh0000755000000000000000000000535014471751340021612 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=20250830.2 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-aquatic-adventure-of-the-last-human' GAME_NAME='The Aquatic Adventure of the Last Human' ARCHIVE_BASE_0_NAME='The Aquatic Adventure of the Last Human.zip' ARCHIVE_BASE_0_MD5='4699f7e0abfde9ded6addc432226b36f' ## unzip fails on this archive. ARCHIVE_BASE_0_EXTRACTOR='unar' 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' ## Work around Mesa-related startup crash. ## cf. https://gitlab.freedesktop.org/mesa/mesa/issues/1310 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_BIN_ARCH='32' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_BIN_DEPENDENCIES_LIBRARIES=' libc.so.6 libcurl.so.4+CURL_OPENSSL_3 libdl.so.2 libgcc_s.so.1 libGL.so.1 libGLU.so.1 libm.so.6 libopenal.so.1 libpthread.so.0 librt.so.1 libssl.so.1.0.0 libstdc++.so.6 libX11.so.6 libXext.so.6 libXrandr.so.2 libXxf86vm.so.1 libz.so.1' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default rm "${PLAYIT_WORKDIR}/gamedata/mac.rar" rm "${PLAYIT_WORKDIR}/gamedata/windows.rar" ARCHIVE_INNER_PATH="${PLAYIT_WORKDIR}/gamedata/linux.rar" archive_extraction 'ARCHIVE_INNER' rm "$ARCHIVE_INNER_PATH" # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-coma-1.sh0000755000000000000000000000372014471751340014015 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: Recut # send your bug reports to bugs@dotslashplay.it ### script_version=20251015.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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' 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 default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-fall.sh0000755000000000000000000000413714471751340013661 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.sh0000755000000000000000000000437214471751340016313 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=20251013.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' GAME_ID='the-flame-in-the-flood' GAME_NAME='The Flame in the Flood' ARCHIVE_BASE_1_NAME='setup_the_flame_in_the_flood_1.3.003_(31351).exe' ARCHIVE_BASE_1_MD5='951cd129f7867c77b4a873d1ff88e038' ARCHIVE_BASE_1_TYPE='innosetup' ARCHIVE_BASE_1_PART1_NAME='setup_the_flame_in_the_flood_1.3.003_(31351)-1.bin' ARCHIVE_BASE_1_PART1_MD5='60b72b81b7fd5a7af2ed65f9fa510ce6' ARCHIVE_BASE_1_SIZE='2802565' ARCHIVE_BASE_1_VERSION='1.3.003-gog31351' ARCHIVE_BASE_1_URL='https://www.gog.com/game/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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-the-last-tinker.sh0000755000000000000000000000704214471751340015176 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: City of Colors # 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.sh0000755000000000000000000000443014471751340020033 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=20250806.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_2_NAME='setup_the_planet_crafter_-_planet_humble_v1.526_(82806).exe' ARCHIVE_BASE_PLANETHUMBLE_2_MD5='c59cc2e940bd93d5f864462745580b9c' ARCHIVE_BASE_PLANETHUMBLE_2_SIZE='7048' ARCHIVE_BASE_PLANETHUMBLE_2_VERSION='1.526-gog82806' ARCHIVE_BASE_PLANETHUMBLE_2_URL='https://www.gog.com/game/the_planet_crafter_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_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.sh0000755000000000000000000000764114471751340015655 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=20251021.1 PLAYIT_COMPATIBILITY_LEVEL='2.31' GAME_ID='the-planet-crafter' GAME_NAME='The Planet Crafter' ARCHIVE_BASE_4_NAME='setup_the_planet_crafter_v1.526-patched_(85593).exe' ARCHIVE_BASE_4_MD5='cc90f9a4d4e95b69b6689238c7c43d27' ARCHIVE_BASE_4_TYPE='innosetup' ARCHIVE_BASE_4_PART1_NAME='setup_the_planet_crafter_v1.526-patched_(85593)-1.bin' ARCHIVE_BASE_4_PART1_MD5='8972c93594ef6e7d54251a5f734f8f21' ARCHIVE_BASE_4_SIZE='5008383' ARCHIVE_BASE_4_VERSION='1.526-patched-gog85593' ARCHIVE_BASE_4_URL='https://www.gog.com/game/the_planet_crafter' ARCHIVE_BASE_3_NAME='setup_the_planet_crafter_v1.526_(82806).exe' ARCHIVE_BASE_3_MD5='541aa5a29a0e2ad63553fd584f9a9559' ARCHIVE_BASE_3_TYPE='innosetup' ARCHIVE_BASE_3_PART1_NAME='setup_the_planet_crafter_v1.526_(82806)-1.bin' ARCHIVE_BASE_3_PART1_MD5='c70496e52d29f6f0441882be26b3ba00' ARCHIVE_BASE_3_SIZE='5007444' ARCHIVE_BASE_3_VERSION='1.526-gog82806' ARCHIVE_BASE_3_URL='https://www.gog.com/game/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_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-subject.sh0000755000000000000000000000434714471751340014405 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-tunic.sh0000755000000000000000000000344114471751340013304 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=20251012.1 PLAYIT_COMPATIBILITY_LEVEL='2.33' 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_BIN_ARCH='64' PKG_BIN_DEPENDENCIES_SIBLINGS=' PKG_DATA' PKG_DATA_ID="${GAME_ID}-data" PKG_DATA_DESCRIPTION='data' # Load common functions. PLAYIT_LIB_PATHS=" $PWD ${XDG_DATA_HOME:="${HOME}/.local/share"}/play.it /usr/local/share/games/play.it /usr/local/share/play.it /usr/share/games/play.it /usr/share/play.it" if [ -z "$PLAYIT_LIB2" ]; then for playit_lib_path in $PLAYIT_LIB_PATHS; do if [ -e "${playit_lib_path}/libplayit2.sh" ]; then PLAYIT_LIB2="${playit_lib_path}/libplayit2.sh" break fi done fi if [ -z "$PLAYIT_LIB2" ]; then printf '\n\033[1;31mError:\033[0m\n' printf 'libplayit2.sh not found.\n' exit 1 fi # shellcheck source=libplayit2.sh . "$PLAYIT_LIB2" # Run default initialisation actions. initialization_default "$@" # Extract game data. archive_extraction_default # Include game data. content_inclusion_icons 'PKG_DATA' content_inclusion_default # Write launchers. launchers_generation # Build packages. packages_generation print_instructions # Clean up. working_directory_cleanup exit 0 games/play-turnip-boy-commits-tax-evasion.sh0000755000000000000000000000443214471751340020200 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-unsung-warriors.sh0000755000000000000000000000502114471751340015343 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-yono-and-the-celestial-elephants.sh0000755000000000000000000000440414471751340020410 0ustar rootroot#!/bin/sh # SPDX-License-Identifier: BSD-2-Clause # 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 tests/check-license.sh0000755000000000000000000000064314471751340013763 0ustar rootroot#!/bin/sh set -o errexit CONTRIBUTORS_LIST=$( grep 'SPDX-FileCopyrightText' games/* | cut --delimiter=' ' --fields=5- | sort --unique ) CONTRIBUTOR_MISSING=0 while read contributor; do grep --quiet "$contributor" LICENSE || { printf 'Missing contributor in LICENSE: %s\n' "$contributor" && CONTRIBUTOR_MISSING=1 } done << EOL $(printf '%s\n' "$CONTRIBUTORS_LIST") EOL test $CONTRIBUTOR_MISSING -eq 0 LICENSE0000644000000000000000000000416114471751340010571 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 mortalius Copyright © 2016 Mopi Copyright © 2016 Antoine Le Gonidec Copyright © 2017 Jacek Szafarkiewicz Copyright © 2018 Dominique Derrier Copyright © 2018 Andrey Butirsky Copyright © 2018 BetaRays Copyright © 2018 Phil Morrell Copyright © 2019 Erwann Duclos Copyright © 2020 Jacek Szafarkiewicz Copyright © 2020 macaron Copyright © 2021 Hoël Bézier Copyright © 2021 Anna Lea Copyright © 2021 HS-157 Copyright © 2022 Ferenc Wágner Copyright © 2023 berru Copyright © 2024 Fabien Givors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Makefile0000644000000000000000000000503314471751340011223 0ustar rootrootcollection_name = 45_action-adventure 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.md0000644000000000000000000001602514471751340011045 0ustar rootroot# ./play.it action-adventure games collection The codebase is maintained at [https://git.dotslashplay.it/games-action-adventure/] Bug reports should be sent to [bugs@dotslashplay.it], and support requests to [requests@dotslashplay.it] [https://git.dotslashplay.it/games-action-adventure/]: https://git.dotslashplay.it/games-action-adventure/ [bugs@dotslashplay.it]: mailto:bugs@dotslashplay.it [requests@dotslashplay.it]: mailto:requests@dotslashplay.it ## Description ./play.it is a free software building native packages from installers for Windows or Linux, mainly those sold by stores focusing on DRM-free games distribution. The goal is that a game installed via ./play.it is indistinguishable from a game installed via the official repositories of your favourite distribution. This specific collection includes only action-adventure games. This hybrid genre includes adventure games with action-based gameplay, as well as action games where the focus is more on the story and characters than the gameplay. Unlike pure adventure games, dexterity and speed can be required from the player. ## Installation ### Distributions providing ./play.it The following distributions provide installation instructions in their official documentation: - [Debian] - [Gentoo] - [Ubuntu] (French article) [Debian]: https://wiki.debian.org/Games/PlayIt#Installation [Gentoo]: https://wiki.gentoo.org/wiki/Play.it#Installation [Ubuntu]: https://doc.ubuntu-fr.org/play.it#installation In most cases, these instructions should work in the same way for derivatives of these distributions. ### Installation from git If your distribution does not already have a package for this ./play.it collection, you can install it from this git repository. ``` git clone --branch main --depth 1 https://git.dotslashplay.it/games-action-adventure play.it-action-adventure.git cd play.it-action-adventure.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/play.it/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-action-adventure ``` Since these repositories are worked on by several people, there are a couple extra guidelines that you should follow: - Your work should always be pushed to a dedicated branch, never on the main branch; - Game script updates, including bug fixes, should be pushed to branches named with a "update/" prefix; - Addition of new game scripts should be pushed to branches named with a "new/" prefix; - You are allowed to push code to branches opened by other contributors, but please communicate with them if you plan to do so; - Force push and branches deletion are not allowed, if you want a branch to be deleted please ask us to do it for you. ## Supported games - A Juggler's Tale - A Plague Tale: Innocence - AER: Memories of Old - Amnesia: The Dark Descent - Among the Sleep - Anodyne - Aquaria - Aragami - Assassin's Creed - Atone: Heart of the Elder Tree - Batman: Arkham series: - Batman: Arkham Asylum - Batman: Arkham City - Batman: Arkham Origins - Batman: Arkham Knight - Bee Simulator - Brothers: A Tale of Two Sons - Brütal Legend - Death's Door - Don't Starve - Figment series: - Figment - Figment 2: Creed Valley - Grow: Song of the Evertree - Haimrik - Hammerwatch - Hellblade: Senua's Sacrifice - Hitman: Codename 47 - Hob - Hot Tin Roof: The Cat That Wore a Fedora - Inner - Jotun - Journey to the Savage Planet - Just Cause 2 - Lego games: - Lego Batman: The Videogame - Lego Harry Potter: Years 1-4 - Lila's Sky Ark - Litil Divil - Little Big Adventure series: - Little Big Adventure - Little Big Adventure 2 - Man O' War: Corsair - Warhammer Naval Battles - Medieval Dynasty - My Memory of Us - Neverending Nightmares - No Man's Sky - Phoning Home - Pine - Pirates: - Pirates (original version from 1987) - Pirates Gold (remake from 1993) - Pixel Piracy - Planet Alpha - Pony Island - Pulse - République - Restless Soul - Retrace - Retro City Rampage - Reventure - Saints Row: The Third - Secrets of Raetikon - Shelter series: - Shelter - Shelter 2 - Paws: A Shelter 2 Game - Soma - Spooky's Jump Scare Mansion - SteamWorld Heist - Styx: Shards of Darkness - Terraria - The Aquatic Adventure of the Last Human - The Coma: Recut - The Fall - The Flame in the Flood - The Last Tinker: City of Colors - The Subject - Tunic - Turnip Boy Commits Tax Evasion - Typing Chronicles series: - Epistory - Typing Chronicles - Nanotale - Typing Chronicles - Unsung Warriors - Yono and the Celestial Elephants ## Contact information ### IRC channel Some ./play.it developers and users can be reached on IRC, channel is `#play.it` on network `irc.oftc.net`. The main language on this IRC channel is English, but most of us can speak French too. ### E-mail A contact e-mail for feedback can usually be found in each ./play.it game script, as well as in the library. Open one of these files with any text editor to see the contact e-mail.